Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
5f4615f
Fix roles getting unselected in ACL tab
Arnei Apr 13, 2026
14f818f
Always sort asc first for new column
Arnei Apr 23, 2026
9a9a244
Fix warning wrongly appearing on template change
Arnei Apr 23, 2026
05cbf1f
Update i18n to major version 26
Arnei Apr 24, 2026
d039207
Move to node 24 in gh workflows
Arnei Apr 24, 2026
150053a
Improve acl tab performance for systems with many roles
Arnei Apr 28, 2026
3bb963f
Merge pull request #1589 from Arnei/acl-tab-performance
Arnei Apr 29, 2026
e93a4d5
Merge pull request #1576 from Arnei/roles-getting-unselected
Arnei Apr 29, 2026
e8c37ff
Bump actions/github-script from 7 to 9
dependabot[bot] May 1, 2026
6f26e6f
Bump react-tooltip from 5.30.1 to 6.0.0
dependabot[bot] May 1, 2026
c4dca32
Merge branch 'column-reverse-order-new' of Arnei/opencast-admin-inter…
gregorydlogan May 4, 2026
2446e77
Add translation for "Needs Cutting" filter
Arnei May 7, 2026
b1db886
Fix Imprint/Privacy page breaking the app
Arnei May 8, 2026
3b327cc
Removing automated PR filing in favour of https://github.com/opencast…
gregorydlogan May 12, 2026
5dcfe61
Merge branch 'r/18.x' of gregorydlogan/admin-interface into r/18.x
gregorydlogan May 12, 2026
61ba8eb
Merge branch 'r/18.x' into r/19.x
gregorydlogan May 12, 2026
ad580a7
Merge branch 'warning-wrong-on-template-change' of Arnei/opencast-adm…
gregorydlogan May 12, 2026
8d4e394
Merge branch 'needs-cutting-translation' of Arnei/opencast-admin-inte…
gregorydlogan May 12, 2026
1b7ba11
Merge branch 'fix-about-page-broken' of Arnei/opencast-admin-interfac…
gregorydlogan May 12, 2026
fb19e05
Merge branch 'r/19.x' into r/20.x
gregorydlogan May 12, 2026
8bfafa3
Merge branch 'r/20.x' into develop
gregorydlogan May 12, 2026
b060391
Merge branch 'update-i18n-major-version-26' of Arnei/opencast-admin-i…
gregorydlogan May 12, 2026
b18da70
Merge branch 'dependabot/github_actions/actions/github-script-9' of o…
gregorydlogan May 12, 2026
33fb990
Merge branch 'dependabot/npm_and_yarn/react-tooltip-6.0.0' of opencas…
gregorydlogan May 12, 2026
e58fc4c
Merge branch 'move-to-node-24' of Arnei/opencast-admin-interface into…
gregorydlogan May 12, 2026
bc66a5a
Using the parent pom's node version
gregorydlogan May 6, 2026
2f35598
Bumping node version, and ensuring that our version and the main pare…
gregorydlogan May 6, 2026
8fd3004
Special handline for push vs pull request
gregorydlogan May 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 11 additions & 62 deletions .github/workflows/deploy-main-branches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false

env:
NODE_VERSION: 24

jobs:
detect-repo-owner:
name: Detect branch and appropriate server
Expand Down Expand Up @@ -44,10 +47,17 @@ jobs:
- name: Checkout sources
uses: actions/checkout@v5

- name: Ensure our node version matches the main repo's version
run: |
[[ "$(curl -s https://raw.githubusercontent.com/opencast/opencast/refs/heads/${{ github.ref_name }}/pom.xml | \
grep node.version | grep -Eo 'v[0-9.]+' | cut -f 1 -d '.' | cut -c 2-)" == "$NODE_VERSION" ]] \
&& exit 0 \
|| (echo "Node version does not match"; exit 1)

- name: Get Node.js
uses: actions/setup-node@v5
with:
node-version: 20
node-version: $NODE_VERSION

- name: Run npm ci
run: npm ci
Expand Down Expand Up @@ -97,64 +107,3 @@ jobs:

- name: Push updates
run: git push origin gh-pages --force


file-upstream-admin-pr:
name: Create upstream admin PR to incorporate build
runs-on: ubuntu-latest
needs: detect-repo-owner
permissions:
contents: write # For the release
pull-requests: write # For the PR in the upstream repo

steps:
- name: Prepare git
run: |
git config --global user.name "Admin Interface Commit Bot"
git config --global user.email "cloud@opencast.org"

- name: Prepare GitHub SSH key
env:
DEPLOY_KEY: ${{ secrets.MODULE_PR_DEPLOY_KEY }}
run: |
install -dm 700 ~/.ssh/
echo "${DEPLOY_KEY}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan github.com >> ~/.ssh/known_hosts

- name: Clone upstream repository
run: |
git clone -b ${{ github.ref_name }} "git@github.com:${{ github.repository_owner }}/opencast.git" opencast
cd opencast
git checkout -b t/admin-${{ needs.detect-repo-owner.outputs.branch }}

- name: Update the admin submodule
working-directory: opencast
run: |
# Note: This could be a race condition in that rapid submodule pushes can trigger multiple PRs in short order
# and we don't have a guarantee that the update triggered by commit A does not end up finding commit B
# We are going to ignore this possibility since we almost universally want the *latest* commit, though this
# could end up causing the commit message, and the actual submodule hash to differ.
git submodule update --init --remote modules/admin
git add modules/admin
git commit -m "Updating admin-service to ${{ github.sha }}"
# This token is an account wide token which allows creation of PRs and pushes.
echo "${{ secrets.MODULE_PR_TOKEN }}" > token.txt
gh auth login --with-token < token.txt
export CURRENT_PR=$(gh pr list -R ${{ github.repository_owner }}/opencast --head t/admin-${{ needs.detect-repo-owner.outputs.branch }} --json number --jq '.[].number')
git push origin t/admin-${{ needs.detect-repo-owner.outputs.branch }} --force
if [ -n "$CURRENT_PR" ]; then
gh pr edit $CURRENT_PR \
--body "Updating Opencast ${{ needs.detect-repo-owner.outputs.branch }} Admin Interface module to [${{ github.sha }}](https://github.com/${{ github.repository_owner }}/admin-interface/commit/${{ github.sha }})" \
-R ${{ github.repository_owner }}/opencast
else
gh pr create \
--title "Update ${{ needs.detect-repo-owner.outputs.branch }} Admin Interface" \
--body "Updating Opencast ${{ needs.detect-repo-owner.outputs.branch }} Admin Interface module to [${{ github.sha }}](https://github.com/${{ github.repository_owner }}/admin-interface/commit/${{ github.sha }})" \
--head=${{ github.repository_owner }}:t/admin-${{ needs.detect-repo-owner.outputs.branch }} \
--base ${{ github.ref_name }} \
-R ${{ github.repository_owner }}/opencast
#FIXME: fine grained PATs can't apply labels
#FIXME: classic PATs don't have the permissions because the PR isn't in an opencastproject (the user) repo
#--label admin-ui --label maintenance \
fi
14 changes: 12 additions & 2 deletions .github/workflows/pr-deploy-test-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ concurrency:
group: pull-request-page
cancel-in-progress: false

env:
NODE_VERSION: 24

jobs:
detect-repo-owner:
if: github.repository_owner == 'opencast'
Expand Down Expand Up @@ -50,10 +53,17 @@ jobs:
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}

- name: Ensure our node version matches the main repo's version
run: |
[[ "$(curl -s https://raw.githubusercontent.com/opencast/opencast/refs/heads/${{ github.base_ref }}/pom.xml | \
grep node.version | grep -Eo 'v[0-9.]+' | cut -f 1 -d '.' | cut -c 2-)" == "$NODE_VERSION" ]] \
&& exit 0 \
|| (echo "Node version does not match"; exit 1)

- name: Get Node.js
uses: actions/setup-node@v5
with:
node-version: 20
node-version: $NODE_VERSION

- name: Run npm ci
run: npm ci
Expand Down Expand Up @@ -158,7 +168,7 @@ jobs:

- name: Check for changes in translations
if: steps.filter_locales.outputs.locales == true
uses: actions/github-script@v7
uses: actions/github-script@v9
with:
script: |
core.setFailed('You should not alter translations outside of Crowdin.')
20 changes: 19 additions & 1 deletion .github/workflows/pr-test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,35 @@ on:
- 'dependabot/**'
pull_request:

env:
NODE_VERSION: 24

jobs:
check-npm-build:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v5

- name: Ensure our node version matches the main repo's version
if: github.event_name == 'pull_request'
run: |
[[ "$(curl -s https://raw.githubusercontent.com/opencast/opencast/refs/heads/${{ github.base_ref }}/pom.xml | \
grep node.version | grep -Eo 'v[0-9.]+' | cut -f 1 -d '.' | cut -c 2-)" == "$NODE_VERSION" ]] \
&& exit 0 \
|| (echo "Node version does not match"; exit 1)
- name: Ensure our node version matches the main repo's version
if: github.event_name == 'push'
run: |
[[ "$(curl -s https://raw.githubusercontent.com/opencast/opencast/refs/heads/${{ github.ref_name }}/pom.xml | \
grep node.version | grep -Eo 'v[0-9.]+' | cut -f 1 -d '.' | cut -c 2-)" == "$NODE_VERSION" ]] \
&& exit 0 \
|| (echo "Node version does not match"; exit 1)

- name: Get Node.js
uses: actions/setup-node@v5
with:
node-version: 20
node-version: $NODE_VERSION

- name: Run npm ci
run: npm ci
Expand Down
92 changes: 56 additions & 36 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,22 @@
"focus-trap-react": "^12.0.0",
"formik": "^2.4.9",
"http-proxy-middleware": "^3.0.5",
"i18next": "25.8.11",
"i18next": "26.0.7",
"i18next-browser-languagedetector": "^8.2.1",
"i18next-http-backend": "^3.0.5",
"i18next-http-backend": "^3.0.6",
"lodash": "^4.17.23",
"react": "^19.2.4",
"react-chartjs-2": "^5.3.1",
"react-datepicker": "^8.8.0",
"react-dom": "^19.2.4",
"react-hotkeys-hook": "^5.2.4",
"react-i18next": "16.5.0",
"react-i18next": "17.0.4",
"react-icons": "^5.5.0",
"react-redux": "^9.2.0",
"react-router": "^7.13.0",
"react-select": "^5.10.2",
"react-textarea-autosize": "^8.5.9",
"react-tooltip": "^5.30.0",
"react-tooltip": "^6.0.0",
"react-window": "^2.2.7",
"redux": "^5.0.1",
"redux-persist": "^6.0.0",
Expand Down Expand Up @@ -67,14 +67,14 @@
"@types/node": "^25.3.0",
"@types/react-dom": "^19.2.3",
"@types/uuid": "^11.0.0",
"@vitejs/plugin-react": "^6.0.1",
"eslint": "^9.39.2",
"prop-types": "^15.8.1",
"sass": "^1.97.3",
"typescript": "^5.9.3",
"typescript-eslint": "^8.56.0",
"uuid": "^13.0.0",
"vite": "^8.0.9",
"@vitejs/plugin-react": "^6.0.1",
"vitest": "^4.0.18"
}
}
Loading
Loading