Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3769 commits
Select commit Hold shift + click to select a range
0bdfa4e
fix(workflows): ignore auto title for renovate PRs
skjnldsv Aug 4, 2025
d3b65a9
Merge pull request #2919 from nextcloud/renovate/migrate-config
skjnldsv Aug 4, 2025
71c79e1
Chore(deps): Bump tmp from 0.2.3 to 0.2.4
dependabot[bot] Aug 6, 2025
fc47aff
Merge pull request #2923 from nextcloud/dependabot/npm_and_yarn/tmp-0…
dependabot[bot] Aug 6, 2025
259ddd6
fix(l10n): Update translations from Transifex
nextcloud-bot Aug 13, 2025
0d74028
chore(deps): update dependency typescript to ^5.9.2
renovate[bot] Aug 13, 2025
667a38a
Merge pull request #2925 from nextcloud/renovate/master-typescript
skjnldsv Aug 13, 2025
419c160
fix(l10n): Update translations from Transifex
nextcloud-bot Aug 16, 2025
488f92a
fix: sorting to align with files list
luka-nextcloud Aug 8, 2025
266abf2
Merge pull request #2924 from nextcloud/fix-sorting
skjnldsv Aug 19, 2025
fdc7e07
fix(l10n): Update translations from Transifex
nextcloud-bot Aug 21, 2025
91eaa0e
fix(l10n): Update translations from Transifex
nextcloud-bot Aug 23, 2025
4bc5e26
fix(l10n): Update translations from Transifex
nextcloud-bot Aug 24, 2025
dc79ab6
build: update node and npm engines versions
nextcloud-bot Aug 25, 2025
7a2fd75
Merge pull request #2938 from nextcloud/feat/package-node-npm-engines…
skjnldsv Aug 25, 2025
bf634d0
fix(l10n): Update translations from Transifex
nextcloud-bot Aug 27, 2025
37d909e
fix(l10n): Update translations from Transifex
nextcloud-bot Aug 28, 2025
8a81dac
style(icon): Use material symbol, outlined variant for icons
AndyScherzinger Aug 27, 2025
239f55b
Merge pull request #2941 from nextcloud/style/noid/materialSymbolOutl…
skjnldsv Aug 28, 2025
7918514
fix: make sure ownerId is a string even when Numeric
salmart-dev Aug 28, 2025
b747500
Merge pull request #2942 from nextcloud/fix/wrongOwnerType
skjnldsv Aug 28, 2025
fe00185
fix: correct typo in owner-id check that casts it to string
salmart-dev Aug 28, 2025
26ac166
Merge pull request #2946 from nextcloud/fix/wrongOwnerTypeII
skjnldsv Aug 28, 2025
fb83139
fix: viewer files router in standalone mode
skjnldsv Aug 28, 2025
0ed2228
Merge pull request #2947 from nextcloud/fix/standalone
skjnldsv Aug 28, 2025
c6e4a33
fix(l10n): Update translations from Transifex
nextcloud-bot Aug 29, 2025
4b81ab7
feat: add API package to register handlers in init scripts
susnux Aug 5, 2025
481eb41
test: adjust tests after outlined-material-icons switch
susnux Sep 2, 2025
9e3293f
Merge pull request #2922 from nextcloud/feat/viewer-api
susnux Sep 2, 2025
4bf6bf5
chore(deps): update dockerode
renovate[bot] Sep 2, 2025
8341368
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 2, 2025
1927aa3
feat: only provide fonts which are available (shipped by us)
susnux Sep 2, 2025
b5e1158
Merge pull request #2956 from nextcloud/feat/provide-fonts
susnux Sep 2, 2025
c32a41c
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 3, 2025
0d9d6ee
feat(deps): Add Nextcloud 33 support on master
nickvergessen Sep 4, 2025
4724b51
Merge pull request #2863 from nextcloud/renovate/master-dockerode
susnux Sep 4, 2025
f2eb045
fix(deps): update dependency @fontsource/roboto to ^5.2.6
renovate[bot] Aug 31, 2025
39735d0
Merge pull request #2882 from nextcloud/renovate/master-fontsource-mo…
susnux Sep 4, 2025
9ef815f
Merge pull request #2962 from nextcloud/update-master-version
Antreesy Sep 4, 2025
0f8aa10
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 6, 2025
7a870a9
chore(deps): cypress snapshot update
nextcloud-command Sep 7, 2025
23d770e
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 7, 2025
5259861
Merge pull request #2932 from nextcloud/automated/noid/master-cypress…
susnux Sep 9, 2025
b3c7488
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 10, 2025
f8e3d7c
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 11, 2025
35f190a
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 12, 2025
e519158
chore(deps): update cypress
renovate[bot] Sep 14, 2025
3865d1b
Merge pull request #2867 from nextcloud/renovate/master-cypress
szaimen Sep 15, 2025
0e29690
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 16, 2025
195ed0e
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 17, 2025
7011a56
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 18, 2025
a047e60
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 20, 2025
a45bfd4
Chore(deps-dev): Bump sha.js from 2.4.11 to 2.4.12
dependabot[bot] Sep 24, 2025
80606c6
Merge pull request #2978 from nextcloud/dependabot/npm_and_yarn/sha.j…
dependabot[bot] Sep 24, 2025
743a4d9
Chore(deps): Bump tar-fs from 2.1.3 to 2.1.4
dependabot[bot] Sep 26, 2025
b832499
Merge pull request #2979 from nextcloud/dependabot/npm_and_yarn/tar-f…
dependabot[bot] Sep 26, 2025
4c48ef0
fix(l10n): Update translations from Transifex
nextcloud-bot Sep 28, 2025
4cd421d
fix(l10n): Update translations from Transifex
nextcloud-bot Oct 5, 2025
364f86f
fix(l10n): Update translations from Transifex
nextcloud-bot Oct 7, 2025
8111971
build(dep): bump PHP requirement to 8.2
blizzz Oct 8, 2025
d5d4131
Merge pull request #2984 from nextcloud/build/php82
blizzz Oct 8, 2025
fca3731
fix(ImageEditing): controls might hide behind iPadOS home bar™️
blizzz Oct 7, 2025
b7c030f
Merge pull request #2983 from nextcloud/fix/iPadOs-home-bar
blizzz Oct 8, 2025
9d0de09
fix(Viewer): Provide `id` instead of `fileid` to `File` constructor
artonge Oct 9, 2025
1f71de4
Merge pull request #2988 from nextcloud/artonge/fix/do_not_provide_root
skjnldsv Oct 14, 2025
9bc1516
fix: added the dirPath to the node.path to file comparisons for use i…
tabedzki Sep 26, 2025
d65b0ab
Merge pull request #2991 from nextcloud/filter-bug-shared-subfolder
skjnldsv Oct 14, 2025
f81a795
fix(l10n): Update translations from Transifex
nextcloud-bot Oct 21, 2025
55564fa
fix: files root detection for publis shares
skjnldsv Oct 28, 2025
3b92b57
fix: ensure fonts are shipped
susnux Oct 28, 2025
aabb08f
Merge pull request #3005 from nextcloud/fix/undefined
skjnldsv Oct 29, 2025
e2c9798
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 3, 2025
b03c358
refactor(psalm): move psalm to level 1
CarlSchwan Nov 3, 2025
e362ad9
feat: Remove phpunit dependency
CarlSchwan Nov 3, 2025
c94fdf3
feat: move cs-fixer to vendor-bin
CarlSchwan Nov 3, 2025
f0559eb
Merge pull request #3012 from nextcloud/carl/psalm-level1
skjnldsv Nov 4, 2025
4fafb14
build: update node and npm engines versions
nextcloud-bot Nov 5, 2025
d1f7740
Merge pull request #3013 from nextcloud/feat/package-node-npm-engines…
skjnldsv Nov 6, 2025
2755f88
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 7, 2025
d9aa43c
feat: save all editorcomponents before downloading a file
silverkszlo Oct 30, 2025
6fd3a79
feat: register a downloadCallback
silverkszlo Nov 4, 2025
043a0b1
Merge pull request #3001 from nextcloud/save-file-before-download
juliusknorr Nov 13, 2025
b74b5da
Merge pull request #3006 from nextcloud/fix/fonts
sorbaugh Nov 14, 2025
855f741
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 15, 2025
3a34265
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 16, 2025
a858d7e
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 18, 2025
b8a78c8
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 19, 2025
c289bdb
fix: svg rendering
skjnldsv Nov 19, 2025
af9e808
Merge pull request #3023 from nextcloud/fix/svg
skjnldsv Nov 19, 2025
25980dc
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 20, 2025
2b5bd61
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 21, 2025
901875c
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 23, 2025
ad6cc18
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 24, 2025
27fd7f1
fix(l10n): Update translations from Transifex
nextcloud-bot Nov 25, 2025
7b3c67f
ci: update all workflow templates from organization template repository
nextcloud-bot Nov 25, 2025
d480504
ci(cypress): Revert templated changes
nickvergessen Nov 25, 2025
cdbf47e
ci(cypress): Update actions in custom workflow
nickvergessen Nov 25, 2025
c7144d5
chore: adjust unwanted workflow update from template
skjnldsv Nov 26, 2025
8695c8e
Merge pull request #3028 from nextcloud/feat/workflow-auto-update-all…
skjnldsv Nov 26, 2025
147201a
fix(l10n): Update translations from Transifex
nextcloud-bot Dec 4, 2025
57427d6
fix(l10n): Update translations from Transifex
nextcloud-bot Dec 7, 2025
92db173
fix(l10n): Update translations from Transifex
nextcloud-bot Dec 8, 2025
2de9ccd
fix(l10n): Update translations from Transifex
nextcloud-bot Dec 10, 2025
4bcbad5
fix(l10n): Update translations from Transifex
nextcloud-bot Dec 23, 2025
aa2d466
fix(l10n): Update translations from Transifex
nextcloud-bot Dec 24, 2025
ecf8a0e
fix(l10n): Update translations from Transifex
nextcloud-bot Dec 29, 2025
122027a
fix(deps): Bump `@nextcloud/files` to 4.0.0-beta.4
mejo- Dec 13, 2025
db85bf5
fix(dav): Use dav functions from `@nextcloud/files/dav`
mejo- Dec 13, 2025
52eb3fa
fix(viewerAction): Adjust to new `@nextcloud/files` 4.0 API
mejo- Dec 13, 2025
af1c4b7
fix: adjust for new sidebar API to emit event instead
susnux Dec 30, 2025
d52253c
Merge pull request #3039 from nextcloud/fix/nextcloud_files_4
juliusknorr Dec 30, 2025
6bbd1e5
fix: correctly handle files sidebar integration
susnux Jan 6, 2026
2ef1ade
fix: do not cache DAV properties
susnux Jan 14, 2026
7d1c825
Merge pull request #3047 from nextcloud/fix/sidebar
sorbaugh Jan 16, 2026
e1d71ed
fix(l10n): Update translations from Transifex
nextcloud-bot Jan 19, 2026
a0e821c
fix(l10n): Update translations from Transifex
nextcloud-bot Jan 21, 2026
77a04c9
feat(deps): Add Nextcloud 34 support on master
nickvergessen Jan 22, 2026
01556ec
fix(l10n): Update translations from Transifex
nextcloud-bot Jan 23, 2026
2686829
Merge pull request #3055 from nextcloud/update-master-version
tobiasKaminsky Jan 23, 2026
f9b1646
fix(l10n): Update translations from Transifex
nextcloud-bot Jan 29, 2026
c7a1355
fix: respect opened sidebar when showing the Viewer
Antreesy Jan 30, 2026
f8e1fed
fix: maintain app content width when opening Viewer
Antreesy Jan 30, 2026
f046408
Merge pull request #3058 from nextcloud/fix/3047/better-sidebar-support
nickvergessen Feb 6, 2026
a6c8210
chore(deps): update to `@nextcloud/files` v4.0.0 for Nextcloud 33+
susnux Feb 10, 2026
7b18545
Merge pull request #3065 from nextcloud/chore/files-v4
AndyScherzinger Feb 11, 2026
f84d87f
fix(l10n): Update translations from Transifex
nextcloud-bot Feb 16, 2026
d3c8dd8
fix(l10n): Update translations from Transifex
nextcloud-bot Feb 17, 2026
bd890e1
fix(l10n): Update translations from Transifex
nextcloud-bot Feb 22, 2026
42c25fc
fix(l10n): Update translations from Transifex
nextcloud-bot Feb 23, 2026
ac46244
fix(l10n): Update translations from Transifex
nextcloud-bot Feb 24, 2026
be9594d
fix(l10n): Update translations from Transifex
nextcloud-bot Feb 25, 2026
6570dd1
fix(ImageEditor): adjust line height to make filter names visible
susnux Feb 25, 2026
511c3ac
Merge pull request #3076 from nextcloud/fix/filter-names
sorbaugh Feb 25, 2026
ece06f2
fix(l10n): Update translations from Transifex
nextcloud-bot Mar 9, 2026
9ef9b8c
fix(l10n): Update translations from Transifex
nextcloud-bot Mar 10, 2026
3016b76
fix(l10n): Update translations from Transifex
nextcloud-bot Mar 14, 2026
38856d4
chore(deps): update dependency dompurify to v3.3.2 [security]
renovate[bot] Mar 14, 2026
c7596b7
chore: update dependencies for required PHP 8.2
susnux Mar 15, 2026
0c35a02
ci: stable31 is EOL
susnux Mar 15, 2026
2d224f5
test: adjust cypress for Nextcloud 33
susnux Mar 15, 2026
1b672ce
Merge pull request #3082 from nextcloud/renovate/master-npm-dompurify…
susnux Mar 15, 2026
83c06d4
fix(deps): update dependency react-filerobot-image-editor to ^4.9.1
renovate[bot] Mar 15, 2026
4ae5f8e
Merge pull request #3100 from nextcloud/renovate/master-react-filerob…
susnux Mar 15, 2026
62771ff
chore(deps): update dependency cypress-split to ^1.24.28
renovate[bot] Mar 15, 2026
285eb09
fix(deps): update dependency webdav to ^5.9.0
renovate[bot] Mar 15, 2026
1727588
Merge pull request #3051 from nextcloud/renovate/master-cypress
susnux Mar 16, 2026
9d60db4
Chore(deps-dev): Bump brace-expansion from 1.1.11 to 1.1.12
dependabot[bot] Mar 16, 2026
629d02c
Merge pull request #2876 from nextcloud/dependabot/npm_and_yarn/brace…
github-actions[bot] Mar 16, 2026
2b805ce
Chore(deps): Bump immutable from 5.1.2 to 5.1.5
dependabot[bot] Mar 16, 2026
157887c
Chore(deps-dev): Bump fast-xml-parser from 4.5.3 to 4.5.4
dependabot[bot] Mar 16, 2026
53cb5a8
Chore(deps): Bump minimatch and @microsoft/api-extractor
dependabot[bot] Mar 16, 2026
d99a514
Merge pull request #3103 from nextcloud/dependabot/npm_and_yarn/immut…
github-actions[bot] Mar 16, 2026
cb0b467
Chore(deps): Bump rollup from 4.41.1 to 4.59.0
dependabot[bot] Mar 16, 2026
2e678d6
Merge pull request #3105 from nextcloud/dependabot/npm_and_yarn/multi…
github-actions[bot] Mar 16, 2026
2d342d2
Chore(deps): Bump qs and @cypress/request
dependabot[bot] Mar 16, 2026
1450055
Merge pull request #3069 from nextcloud/dependabot/npm_and_yarn/multi…
github-actions[bot] Mar 16, 2026
921719b
Merge pull request #3104 from nextcloud/dependabot/npm_and_yarn/fast-…
github-actions[bot] Mar 16, 2026
3269c8c
Merge pull request #3106 from nextcloud/dependabot/npm_and_yarn/rollu…
github-actions[bot] Mar 16, 2026
003cf5a
Chore(deps-dev): Bump pbkdf2 from 3.1.2 to 3.1.5
dependabot[bot] Mar 16, 2026
2ed9f29
Merge pull request #3070 from nextcloud/dependabot/npm_and_yarn/pbkdf…
github-actions[bot] Mar 16, 2026
dfcc470
Chore(deps): Bump axios from 1.13.2 to 1.13.5
dependabot[bot] Mar 16, 2026
516f95c
Merge pull request #3067 from nextcloud/dependabot/npm_and_yarn/axios…
github-actions[bot] Mar 16, 2026
9962a69
Chore(deps-dev): Bump bamarni/composer-bin-plugin from 1.8.2 to 1.9.1
dependabot[bot] Mar 16, 2026
e0966d9
Chore(deps): Bump mdast-util-to-hast from 13.2.0 to 13.2.1
dependabot[bot] Mar 16, 2026
61bfa71
Chore(deps-dev): Bump vite from 5.4.19 to 5.4.21
dependabot[bot] Mar 16, 2026
6182d8f
Chore(deps-dev): Bump js-yaml from 4.1.0 to 4.1.1
dependabot[bot] Mar 16, 2026
4fc3d75
Merge pull request #3034 from nextcloud/dependabot/npm_and_yarn/mdast…
github-actions[bot] Mar 16, 2026
2686c4d
Merge pull request #3063 from nextcloud/dependabot/composer/bamarni/c…
github-actions[bot] Mar 16, 2026
f961912
Merge pull request #3022 from nextcloud/dependabot/npm_and_yarn/js-ya…
github-actions[bot] Mar 16, 2026
17e538d
Merge pull request #3000 from nextcloud/dependabot/npm_and_yarn/vite-…
github-actions[bot] Mar 16, 2026
9fe05e4
Merge pull request #2963 from nextcloud/renovate/master-webdav-5.x
susnux Mar 16, 2026
28a5e8d
chore(deps): update nextcloud dependencies
susnux Mar 16, 2026
dee9e58
refactor: use new `@nextcloud/dialogs` functions
susnux Mar 16, 2026
bb9de6f
chore(dev-deps): update psalm to make CI happy
susnux Mar 16, 2026
ea7bf72
chore(deps): update dependency typescript to ^5.9.3
renovate[bot] Mar 16, 2026
97ace2b
Merge pull request #2850 from nextcloud/renovate/master-major-nextcloud
susnux Mar 16, 2026
50f4a20
fix(deps): update dependency react-konva to ^18.2.14
renovate[bot] Mar 16, 2026
979d964
fix(deps): update dependency dompurify to ^3.3.3
renovate[bot] Mar 16, 2026
335313f
Merge pull request #3107 from nextcloud/renovate/master-typescript
susnux Mar 16, 2026
e2428c9
Merge pull request #2902 from nextcloud/renovate/master-react-konva-18.x
susnux Mar 16, 2026
a4d7a5c
Merge pull request #3110 from nextcloud/renovate/master-dompurify-3.x
susnux Mar 16, 2026
253dbd5
fix: add .app-navigation--close for compatibility with Vue2 apps
Antreesy Feb 6, 2026
31d251b
Merge pull request #3062 from nextcloud/backport/3061/master
susnux Mar 16, 2026
027010e
fix(l10n): Update translations from Transifex
nextcloud-bot Mar 17, 2026
d1a20ab
fix(Viewer): add fallback title setter to handle case where filename …
emberfiend Mar 18, 2026
60e10a5
Merge pull request #3079 from nextcloud/feat/single-file-share-title
juliusknorr Mar 19, 2026
b1823f9
Chore(deps-dev): Bump flatted from 3.3.3 to 3.4.2
dependabot[bot] Mar 20, 2026
f4dede2
Merge pull request #3111 from nextcloud/dependabot/npm_and_yarn/flatt…
github-actions[bot] Mar 20, 2026
5d83077
Chore(deps-dev): Bump picomatch from 2.3.1 to 2.3.2
dependabot[bot] Mar 25, 2026
eb86b65
fix(l10n): Update translations from Transifex
nextcloud-bot Mar 26, 2026
17f39dd
Chore(deps): Bump yaml from 2.8.2 to 2.8.3
dependabot[bot] Mar 26, 2026
8f9803b
Merge pull request #3125 from nextcloud/dependabot/npm_and_yarn/yaml-…
github-actions[bot] Mar 26, 2026
6790806
fix(l10n): Update translations from Transifex
nextcloud-bot Apr 1, 2026
3b67d37
fix: Try fixing too late handler registration for file actions
juliusknorr Mar 4, 2026
5dd3483
Merge pull request #3080 from nextcloud/fix/viewer-handler-loading
juliusknorr Apr 7, 2026
76bc413
fix(l10n): Update translations from Transifex
nextcloud-bot Apr 8, 2026
daf6868
Chore(deps): Bump lodash, rollup-plugin-license and @microsoft/api-ex…
dependabot[bot] Apr 8, 2026
877b7ae
Merge pull request #3132 from nextcloud/dependabot/npm_and_yarn/multi…
github-actions[bot] Apr 8, 2026
24d59a1
chore(deps): update dockerode
renovate[bot] Apr 8, 2026
1df8937
Chore(deps-dev): Bump fast-xml-parser from 4.5.4 to 4.5.6
dependabot[bot] Apr 9, 2026
36ccdcb
Merge pull request #3136 from nextcloud/dependabot/npm_and_yarn/fast-…
github-actions[bot] Apr 9, 2026
3b28dba
Chore(deps): Bump follow-redirects from 1.15.11 to 1.16.0
dependabot[bot] Apr 15, 2026
6d43013
Merge pull request #3139 from nextcloud/dependabot/npm_and_yarn/follo…
github-actions[bot] Apr 15, 2026
3033a61
chore(deps): update dependency dompurify to v3.4.0 [security]
renovate[bot] Apr 16, 2026
1e6f457
chore: Add workflow to sync and update templates
skjnldsv Apr 16, 2026
28f1620
ci(actions): Update workflow templates from organization template rep…
nextcloud-command Apr 16, 2026
d0ab1fc
Merge pull request #3141 from nextcloud/renovate/master-npm-dompurify…
skjnldsv Apr 16, 2026
45ac3e6
revert: Restore original cypress logic while keeping cypress-io/githu…
Copilot Apr 16, 2026
3e9b3aa
Merge pull request #3145 from nextcloud/automated/noid/master-update-…
skjnldsv Apr 16, 2026
3408a87
Chore(deps): Bump axios from 1.13.6 to 1.15.0
dependabot[bot] Apr 12, 2026
913ceea
Merge pull request #3138 from nextcloud/dependabot/npm_and_yarn/axios…
github-actions[bot] Apr 16, 2026
ea035fa
Chore(deps): Bump protobufjs from 7.5.3 to 7.5.5
dependabot[bot] Apr 17, 2026
68d6312
Merge pull request #3147 from nextcloud/dependabot/npm_and_yarn/proto…
github-actions[bot] Apr 17, 2026
9c8cff3
Merge pull request #3108 from nextcloud/renovate/master-dockerode
susnux Apr 17, 2026
983e5c3
fix(deps): update dependency dompurify to ^3.4.0
renovate[bot] Apr 17, 2026
4ec7e03
Merge pull request #3124 from nextcloud/dependabot/npm_and_yarn/picom…
github-actions[bot] Apr 17, 2026
48cd5a7
Merge pull request #3149 from nextcloud/renovate/master-dompurify-3.x
susnux Apr 17, 2026
0f85ee3
fix(deps): update dependency debounce to v3
renovate[bot] Apr 17, 2026
e1936e0
Merge pull request #3150 from nextcloud/renovate/master-debounce-3.x
susnux Apr 17, 2026
c3ee0aa
chore(deps): update dependency vite to v6 [security]
renovate[bot] Apr 17, 2026
f8c16dd
Merge pull request #3133 from nextcloud/renovate/master-npm-vite-vuln…
susnux Apr 18, 2026
c093be1
fix(ImageEditor): urldecode source name
susnux Apr 7, 2026
16622bd
Merge pull request #3131 from nextcloud/fix/umlauts
sorbaugh Apr 21, 2026
5b0c349
fix(l10n): Update translations from Transifex
nextcloud-bot Apr 23, 2026
a083871
Chore(deps): Bump actions/setup-node from 6.0.0 to 6.4.0
dependabot[bot] Apr 29, 2026
c117a9b
Merge pull request #3164 from nextcloud/dependabot/github_actions/act…
github-actions[bot] Apr 29, 2026
25e3b7e
Chore(deps): Bump postcss from 8.5.8 to 8.5.12
dependabot[bot] Apr 29, 2026
2e23c38
Merge pull request #3169 from nextcloud/dependabot/npm_and_yarn/postc…
github-actions[bot] Apr 30, 2026
4360b43
Chore(deps): Bump actions/github-script from 8.0.0 to 9.0.0
dependabot[bot] Apr 30, 2026
51b5d5e
Merge pull request #3170 from nextcloud/dependabot/github_actions/act…
github-actions[bot] Apr 30, 2026
7dc5d88
Chore(deps): Bump peter-evans/create-pull-request from 7.0.8 to 8.1.1
dependabot[bot] May 3, 2026
f5e4660
Merge pull request #3171 from nextcloud/dependabot/github_actions/pet…
github-actions[bot] May 3, 2026
e8d7db6
fix(l10n): Update translations from Transifex
nextcloud-bot May 5, 2026
39dfb1c
Chore(deps): Bump cypress-io/github-action from 7.1.9 to 7.2.0
dependabot[bot] May 5, 2026
022978d
Chore(deps): Bump actions/checkout from 6.0.0 to 6.0.2
dependabot[bot] May 5, 2026
976ce7a
Merge pull request #3172 from nextcloud/dependabot/github_actions/cyp…
github-actions[bot] May 5, 2026
627be17
Merge pull request #3173 from nextcloud/dependabot/github_actions/act…
github-actions[bot] May 5, 2026
df6117c
feat(deps): Add Nextcloud 35 support on master
nickvergessen May 15, 2026
d4b3dec
Merge pull request #3182 from nextcloud/update-master-version
nickvergessen May 15, 2026
ceeda89
chore: Merge viewer repository into server
susnux May 16, 2026
bfb91b9
chore(viewer): merge config files with root server configs
susnux May 16, 2026
9e75c50
chore(viewer): merge AUTHORS with server authors
susnux May 16, 2026
43a1a28
chore(viewer): setup build system for the viewer
susnux May 16, 2026
48c13a8
fix(viewer): adjust source code to build with legacy frontend
susnux May 16, 2026
6dcb1be
test(cypress): merge viewer tests with server Cypress tests
susnux May 16, 2026
a05fbd7
chore: adjust viewer cypress tests for ESLint code style
susnux May 16, 2026
7517542
test(viewer): adjust viewer Cypress tests to run with server config
susnux May 16, 2026
d2535e6
chore(viewer): setup psalm and resolve issues
susnux May 16, 2026
4394ba2
chore(viewer): resolve stylelint issues
susnux May 16, 2026
6e00e09
chore: compile assets
susnux May 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ node_modules/
!/apps/theming
!/apps/twofactor_backupcodes
!/apps/user_status
!/apps/viewer
!/apps/weather_status
!/apps/webhook_listeners
!/apps/workflowengine
Expand Down
6 changes: 6 additions & 0 deletions .tx/config
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,12 @@ source_file = translationfiles/templates/user_status.pot
source_lang = en
type = PO

[o:nextcloud:p:nextcloud:r:viewer]
file_filter = translationfiles/<lang>/viewer.po
source_file = translationfiles/templates/viewer.pot
source_lang = en
type = PO

[o:nextcloud:p:nextcloud:r:weather_status]
file_filter = translationfiles/<lang>/weather_status.po
source_file = translationfiles/templates/weather_status.pot
Expand Down
382 changes: 200 additions & 182 deletions AUTHORS

Large diffs are not rendered by default.

8 changes: 1 addition & 7 deletions REUSE.toml
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ SPDX-FileCopyrightText = "2020 Nextcloud GmbH and Nextcloud contributors"
SPDX-License-Identifier = "AGPL-3.0-or-later"

[[annotations]]
path = ["cypress/tsconfig.json", "cypress/fixtures/appstore/apps.json", "dist/*.css"]
path = ["dist/*.css"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2022 Nextcloud GmbH and Nextcloud contributors"
SPDX-License-Identifier = "AGPL-3.0-or-later"
Expand Down Expand Up @@ -381,12 +381,6 @@ precedence = "aggregate"
SPDX-FileCopyrightText = "2016 Andrew Nayenko <relan@airpost.net>"
SPDX-License-Identifier = "CC-BY-SA-3.0 OR GPL-3.0-or-later"

[[annotations]]
path = "cypress/fixtures/image.jpg"
precedence = "aggregate"
SPDX-FileCopyrightText = "2019 Tom Gainor <https://unsplash.com/@its_tgain> <https://unsplash.com/photos/mountain-cliff-under-starry-night-KidY3t8O4PE>"
SPDX-License-Identifier = "LicenseRef-Unsplash"

[[annotations]]
path = "apps/settings/tests/UserMigration/assets/account-complex.jpg"
precedence = "aggregate"
Expand Down
220 changes: 220 additions & 0 deletions apps/viewer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
<!--
- SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Files viewer for nextcloud

Show your latest holiday photos and videos like in the movies. Show a glimpse of your latest novel directly from your nextcloud. Choose the best GIF of your collection thanks to the direct view of your favorites files!

![viewer](https://raw.githubusercontent.com/nextcloud/screenshots/master/apps/Viewer/viewer.png?v=2)

## 📋 Current support
- Images
- Videos

## API

### Add the viewer to your app
In php, on your page, emit the LoadViewer event.
Check the documentation/tutorial for more info on this type of page controller sample.
``` php
use OCA\Viewer\Event\LoadViewer;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IRequest;

class PageController extends Controller {
protected $appName;

/** @var IEventDispatcher */
private $eventDispatcher;

public function __construct($appName,
IRequest $request,
IEventDispatcher $eventDispatcher) {
parent::__construct($appName, $request);

$this->appName = $appName;
$this->eventDispatcher = $eventDispatcher;
}

/**
* @NoAdminRequired
* @NoCSRFRequired
* Render default index template
*
* @return TemplateResponse
*/
public function index(): TemplateResponse {
$this->eventDispatcher->dispatch(LoadViewer::class, new LoadViewer());
$response = new TemplateResponse($this->appName, 'main');
return $response;
}
}
```
This will load all the necessary scripts and make the Viewer accessible trough javascript at `OCA.Viewer`

### Open a file
1. Open a file on WebDAV and let the viewer fetch the folder data
```js
OCA.Viewer.open({path: '/path/to/file.jpg'})
```
2. Open a file on WebDAV and provide a list of files
```js
OCA.Viewer.open({
path: '/path/to/file.jpg',
list: [
{
basename: 'file.jpg',
filename: '/path/to/file.jpg',
...
},
...
],
})
// Alternative: pass known file info so it doesn't need to be fetched
const fileInfo = {
filename: '/path/to/file.jpg',
basename: 'file.jpg',
mime: 'image/jpeg',
etag: 'xyz987',
hasPreview: true,
fileid: 13579,
}
OCA.Viewer.open({
fileinfo: fileInfo,
list: [fileInfo],
})
```
The list parameter requires an array of fileinfo. You can check how we generate a fileinfo object [here](https://github.com/nextcloud/viewer/blob/master/src/utils/fileUtils.js#L97) from a dav PROPFIND request data. There is currently no dedicated package for it, but this is coming. You can check the [photos](https://github.com/nextcloud/photos) repository where we also use it.

3. Open a file from an app's route
```js
const fileInfo1 = {
filename: 'https://next.cloud/apps/pizza/topping/pineapple.jpg',
basename: 'pineapple.jpg',
source: 'https://next.cloud/apps/pizza/topping/pineapple.jpg',
mime: 'image/jpeg',
etag: 'abc123',
hasPreview: false,
fileid: 12345,
}
const fileInfo2 = {
filename: 'https://next.cloud/apps/pizza/topping/garlic.jpg',
basename: 'garlic.jpg',
source: 'https://next.cloud/apps/pizza/topping/garlic.jpg',
mime: 'image/jpeg',
etag: 'def456',
hasPreview: false,
fileid: 67890,
}
OCA.Viewer.open({
fileInfo: fileInfo1,
list: [fileInfo1, fileInfo2],
})
```

In order to open a shared file you will need to provide the share token
so the Viewer can use it to authenticate the requests to the server.
See the `files_sharing` app
[controller](https://github.com/nextcloud/server/blob/master/apps/files_sharing/lib/Controller/ShareController.php#L404)
and
[template](https://github.com/nextcloud/server/blob/master/apps/files_sharing/templates/public.php#L18)
for an example.

### Close the viewer
```js
OCA.Viewer.close()
```

### 🔍 Add you own file view

If you want to make your app compatible with this app, you can use the methods provided by the [`@nextcloud/viewer`](https://www.npmjs.com/package/@nextcloud/viewer) npm.js package:
1. Create a vue component which use the `path` and `mime` props (they will be automatically passed by the viewer)
2. Register your mime viewer with the following:
``` js
import { registerHandler } from '@nextcloud/viewer'
import VideoView from 'VideoView.vue'

registerHandler({
// unique id
id: 'video',

// optional, it will group every view of this group and
// use the proper view when building the file list
// of the slideshow.
// e.g. you open an image/jpeg that have the `media` group
// you will be able to see the video/mpeg from the `video` handler
// files that also have the `media` group set.
group: 'media',

// the list of mimes your component is able to display
mimes: [
'video/mpeg',
'video/ogg',
'video/webm',
'video/mp4'
],

// your vue component view
component: VideoView,

// optional: callback to be called before download
// useful for saving unsaved changes, validation, logging, etc.
// if not provided, defaults to an empty function
downloadCallback: async (fileInfo) => {
// perform any pre-download operations
// e.g., save current editor state
await saveCurrentDocument(fileInfo)
}
})
```
3. Make sure your script is loaded with `\OCP\Util::addInitScript` so that the handler is registered **before** the viewer is loaded.
4. if you feel like your mime should be integrated on this repo, you can also create a pull request with your object on the `models` directory and the view on the `components` directory. Please have a look at what's already here and take example of it. 🙇‍♀️


### Legacy handler registration
> [!CAUTION]
> Using OCA.Viewer for registering your handlers is not recommended as this might break depending on the script loading order

If you want to make your app compatible with this app, you can use the `OCA.Viewer` methods
1. Create a vue component which use the `path` and `mime` props (they will be automatically passed by the viewer)
2. Register your mime viewer with the following:
``` js
import VideoView from 'VideoView.vue'

OCA.Viewer.registerHandler({
// unique id
id: 'video',

// optional, it will group every view of this group and
// use the proper view when building the file list
// of the slideshow.
// e.g. you open an image/jpeg that have the `media` group
// you will be able to see the video/mpeg from the `video` handler
// files that also have the `media` group set.
group: 'media',

// the list of mimes your component is able to display
mimes: [
'video/mpeg',
'video/ogg',
'video/webm',
'video/mp4'
],

// your vue component view
component: VideoView,

// optional: callback to be called before download
// useful for saving unsaved changes, validation, logging, etc.
// if not provided, defaults to an empty function
downloadCallback: async (fileInfo) => {
// perform any pre-download operations
// e.g., save current editor state
await saveCurrentDocument(fileInfo)
}
})
```
3. Make sure your script is loaded with `\OCP\Util::addScript` (in contrast to using the API package)!
24 changes: 24 additions & 0 deletions apps/viewer/REUSE.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
version = 1
SPDX-PackageName = "viewer"
SPDX-PackageSupplier = "2024 Nextcloud GmbH and Nextcloud contributors"
SPDX-PackageDownloadLocation = "https://github.com/nextcloud/server"

[[annotations]]
path = ["l10n/*.json", "l10n/*.js"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2019 Nextcloud Translators"
SPDX-License-Identifier = "AGPL-3.0-or-later"

[[annotations]]
path = ["src/assets/menu-sidebar-white.svg", "img/blank.mp4"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2023 Nextcloud GmbH and Nextcloud contributors"
SPDX-License-Identifier = "AGPL-3.0-or-later"

[[annotations]]
path = ["img/app.svg"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2018-2024 Google LLC"
SPDX-License-Identifier = "Apache-2.0"
22 changes: 22 additions & 0 deletions apps/viewer/appinfo/info.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!--
- SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
<id>viewer</id>
<name>Viewer</name>
<summary>Simple file viewer with slideshow for media</summary>
<description><![CDATA[Show your latest holiday photos and videos like in the movies, show a glimpse of your latest novel directly from your Nextcloud, choose the best GIF of your collection thanks to the direct preview of your favorites files and many more!]]></description>
<version>8.0.0-dev.0</version>
<licence>AGPL-3.0-or-later</licence>
<author>Nextcloud GmbH and Nextcloud contributors</author>
<namespace>Viewer</namespace>
<category>tools</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<screenshot>https://raw.githubusercontent.com/nextcloud/screenshots/master/apps/Viewer/viewer.png</screenshot>
<dependencies>
<nextcloud min-version="35" max-version="35" />
</dependencies>
</info>
22 changes: 22 additions & 0 deletions apps/viewer/composer/autoload.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

// autoload.php @generated by Composer

if (PHP_VERSION_ID < 50600) {
if (!headers_sent()) {
header('HTTP/1.1 500 Internal Server Error');
}
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
if (!ini_get('display_errors')) {
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
fwrite(STDERR, $err);
} elseif (!headers_sent()) {
echo $err;
}
}
throw new RuntimeException($err);
}

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInitViewer::getLoader();
13 changes: 13 additions & 0 deletions apps/viewer/composer/composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"config" : {
"vendor-dir": ".",
"optimize-autoloader": true,
"classmap-authoritative": true,
"autoloader-suffix": "Viewer"
},
"autoload" : {
"psr-4": {
"OCA\\Viewer\\": "../lib/"
}
}
}
18 changes: 18 additions & 0 deletions apps/viewer/composer/composer.lock

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

Loading
Loading