Compare commits

...

660 Commits

Author SHA1 Message Date
John Molakvoæ f85947fdc6
Merge pull request #2474 from nextcloud/fix/size-metadata-provider/rotation 2024-05-14 18:25:37 +02:00
provokateurin edafa9f348
fix(SizeMetadataProvider): Swap the width and height if the image is rotated
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-05-14 09:50:43 +02:00
Marcel Klehr 781a0e9b65
Merge pull request #2468 from nextcloud/fix/faces-viewer
fix(faces): Fix call to Viewer.open
2024-05-13 19:02:39 +02:00
nextcloud-command deffcf1e40 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-05-13 16:08:27 +00:00
Marcel Klehr 544864a590 fix(faces): Fix call to Viewer.open
fixes https://github.com/nextcloud/recognize/issues/1109

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2024-05-13 18:04:54 +02:00
Louis bac5df44af
Merge pull request #2466 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2024-05-07 13:52:34 +02:00
nextcloud-command 9e087deba5 fix(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2024-05-07 11:08:06 +02:00
Andy Scherzinger f6bce80153
Merge pull request #2459 from nextcloud/chore/noid/spdx
Add SPDX header
2024-05-07 11:07:39 +02:00
Louis Chemineau a503253a4b
Update PublicAlbumAuthBackend licence to 3.0 or later
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-05-07 10:50:33 +02:00
Louis Chemineau 1e65890e41
Use proper arg name in PublicRootCollection::getChild
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-05-07 09:19:10 +02:00
nextcloud-command 3a51b64d28 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-05-06 19:05:42 +00:00
dependabot[bot] 15c3185069
Merge pull request #2461 from nextcloud/dependabot/composer/psalm/phar-5.24.0 2024-05-04 06:32:39 +00:00
dependabot[bot] f25f2e2d38
Chore(deps-dev): Bump psalm/phar from 5.23.1 to 5.24.0
Bumps [psalm/phar](https://github.com/psalm/phar) from 5.23.1 to 5.24.0.
- [Release notes](https://github.com/psalm/phar/releases)
- [Commits](https://github.com/psalm/phar/compare/5.23.1...5.24.0)

---
updated-dependencies:
- dependency-name: psalm/phar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-04 03:21:00 +00:00
Andy Scherzinger 32579d92e5
chore: optimize svg size
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-03 14:47:01 +02:00
nextcloud-command 02cd9d84fc chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-05-03 09:45:24 +00:00
Andy Scherzinger 659538a9da
chore(ci): Add reuse check
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-03 11:40:12 +02:00
Andy Scherzinger 903f0daf23
chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-03 11:28:13 +02:00
Nextcloud bot 53a2778ad2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-05-02 01:19:54 +00:00
Louis ba49ff1167
Merge pull request #2456 from nextcloud/artonge/chore/add_block_merge_eol_workflow
Add block-merge-eol workflow
2024-04-29 20:14:08 +02:00
Louis Chemineau 60bf72bb0c
Add block-merge-eol workflow
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-04-29 10:48:53 +02:00
Louis 32b902c665
Merge pull request #2455 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-04-29 10:39:46 +02:00
Louis eda813f194
Merge pull request #2449 from nextcloud/feat/workflow-auto-update-dependabot-approve-merge.yml
Updating dependabot-approve-merge.yml workflow from template
2024-04-29 10:39:11 +02:00
Louis 481e89d136
Merge pull request #2448 from nextcloud/feat/workflow-auto-update-pr-feedback.yml
Updating pr-feedback.yml workflow from template
2024-04-29 10:38:21 +02:00
Nextcloud bot e0971fb26c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-29 01:20:21 +00:00
nextcloud-command ce947b6cc8 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-04-28 02:37:02 +00:00
dependabot[bot] 467c16d42a
Merge pull request #2450 from nextcloud/dependabot/npm_and_yarn/postcss-8.4.38 2024-04-27 05:39:00 +00:00
dependabot[bot] 3b80ae7c15
Chore(deps-dev): Bump postcss from 8.4.35 to 8.4.38
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.35 to 8.4.38.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.35...8.4.38)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-27 01:24:11 +00:00
Nextcloud bot b1574f35c3 Updating dependabot-approve-merge.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-26 18:16:22 +00:00
Nextcloud bot 59f86c3c3b Updating pr-feedback.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-26 17:50:20 +00:00
Nextcloud bot 6c207b0521
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-26 01:22:20 +00:00
Louis 5efbe568a0
Merge pull request #2079 from nextcloud/dependabot/npm_and_yarn/dockerode-and-types/dockerode-3.3.5
Chore(deps-dev): Bump dockerode and @types/dockerode
2024-04-25 23:17:35 +02:00
Louis 2f8bfcab80
Merge pull request #2347 from nextcloud/dependabot/npm_and_yarn/cypress-visual-regression-5.0.0
Chore(deps-dev): Bump cypress-visual-regression from 4.0.0 to 5.0.0
2024-04-25 23:09:22 +02:00
Louis 19d4d26d8e
Merge pull request #2346 from nextcloud/dependabot/npm_and_yarn/nextcloud/router-3.0.0
Chore(deps): Bump @nextcloud/router from 2.2.0 to 3.0.0
2024-04-25 18:10:08 +02:00
dependabot[bot] fa999fac9a Chore(deps): Bump @nextcloud/router from 2.2.0 to 3.0.0
Bumps [@nextcloud/router](https://github.com/nextcloud/nextcloud-router) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/nextcloud/nextcloud-router/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-router/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-router/compare/v2.2.0...v3.0.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/router"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-04-25 15:55:50 +00:00
dependabot[bot] aaae4133b8 Chore(deps-dev): Bump cypress-visual-regression from 4.0.0 to 5.0.0
Bumps [cypress-visual-regression](https://github.com/cypress-visual-regression/cypress-visual-regression) from 4.0.0 to 5.0.0.
- [Changelog](https://github.com/cypress-visual-regression/cypress-visual-regression/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cypress-visual-regression/cypress-visual-regression/commits)

---
updated-dependencies:
- dependency-name: cypress-visual-regression
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-25 17:48:38 +02:00
dependabot[bot] d3c697466d
Chore(deps-dev): Bump dockerode and @types/dockerode
Bumps [dockerode](https://github.com/apocas/dockerode) and [@types/dockerode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode). These dependencies needed to be updated together.

Updates `dockerode` from 3.3.4 to 3.3.5
- [Release notes](https://github.com/apocas/dockerode/releases)
- [Commits](https://github.com/apocas/dockerode/compare/v3.3.4...v3.3.5)

Updates `@types/dockerode` from 3.3.14 to 3.3.20
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dockerode)

---
updated-dependencies:
- dependency-name: dockerode
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: "@types/dockerode"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-25 17:38:19 +02:00
Nextcloud bot 2c5dc6398d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-25 01:20:58 +00:00
Nextcloud bot 789e24d318
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-24 01:20:56 +00:00
Nextcloud bot 04a287ff22
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-23 01:20:35 +00:00
dependabot[bot] c67793ef9f
Merge pull request #2421 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.19 2024-04-22 16:49:59 +00:00
Louis 2b2811010e
Merge pull request #2426 from nextcloud/artonge/feat/allow_mutliple_source_folders
feat: Allow multiple source folders
2024-04-22 18:41:42 +02:00
Louis Chemineau df19108ed7
feat: Allow multiple source folders
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-04-22 17:27:02 +02:00
Louis 2376b7d81d
Merge pull request #2441 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-04-21 21:33:14 +02:00
Louis 5256516b63
Merge pull request #2443 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2024-04-21 21:22:15 +02:00
nextcloud-command d11a6e76b9 fix(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2024-04-21 03:09:58 +00:00
nextcloud-command e7f1ed2859 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-04-21 02:33:34 +00:00
Joas Schilling 1de86bf9cc
Merge pull request #2434 from nextcloud/artonge/feat/check_download_attribute_when_sharing
Check download attribute when fetching previews
2024-04-18 11:49:23 +02:00
Louis Chemineau a6c2e30f58
feat: Check download attribute when fetching previews
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-04-18 10:18:53 +02:00
Pytal 1b4e3b5a2d
Merge pull request #2431 from nextcloud/fix/folder-viewer
fix: Open Viewer when clicking on photo in folder
2024-04-17 00:54:36 -07:00
Christopher Ng a9a945e2e2 chore: compile assets
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-04-16 11:02:49 -07:00
Christopher Ng 7566eedaf8 fix: Open Viewer when clicking on photo in folder
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-04-16 11:02:49 -07:00
Thomas Citharel 7208122d0a
Merge pull request #2428 from nextcloud/disable-links-to-install-apps-if-no-appstore
fix(3rd-party apps): do not link to maps/recognize install page if the appstore isn't enabled
2024-04-15 11:52:19 +02:00
Thomas Citharel 4c2f100926
fix(3rd-party apps): do not link to maps/recognize install page if the appstore isn't enabled
Even if the user is admin, they might not have access to the app store.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-04-15 11:01:26 +02:00
Louis 119b2fbfb4
Merge pull request #2430 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-04-15 10:46:03 +02:00
nextcloud-command ee50d8e072 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-04-14 03:29:46 +00:00
Nextcloud bot fa6f075180
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-14 01:19:36 +00:00
Nextcloud bot b91900e0e4
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-13 01:22:25 +00:00
Nextcloud bot c08710cbbd
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-12 01:19:38 +00:00
Louis 16d6cdaba4
Merge pull request #2425 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-04-08 09:23:50 +02:00
Nextcloud bot 47aad5dbc7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-08 01:19:39 +00:00
nextcloud-command 6cdeb08f24 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-04-07 02:29:37 +00:00
Nextcloud bot 0ba45aa829
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-07 01:19:38 +00:00
dependabot[bot] 9d00032f44
Chore(deps-dev): Bump phpunit/phpunit from 9.6.18 to 9.6.19
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.18 to 9.6.19.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.19/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.18...9.6.19)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-06 02:33:37 +00:00
Nextcloud bot 765655ec55
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-02 01:18:48 +00:00
Louis 5d89129aa3
Merge pull request #2418 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2024-03-31 19:58:12 +02:00
Louis 31f9dd8d33
Merge pull request #2417 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-03-31 19:49:36 +02:00
nextcloud-command 68893bfe7a fix(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2024-03-31 03:12:06 +00:00
nextcloud-command e8cf869c6c chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-03-31 02:34:15 +00:00
Nextcloud bot 5a1c23bd07
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-31 01:19:49 +00:00
Nextcloud bot eaa30da99a
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-30 01:20:33 +00:00
Nextcloud bot eb2f2901f5
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-29 01:25:03 +00:00
Louis 2f035c0226
Merge pull request #2408 from nextcloud/update-master-version
feat(deps): Add Nextcloud 30 support on master
2024-03-28 16:25:12 +01:00
Joas Schilling f81b43acfa feat(deps): Add Nextcloud 30 support on master
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-03-28 15:12:31 +00:00
Nextcloud bot c396dbffb2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-26 01:19:24 +00:00
Nextcloud bot 231c5be279
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-25 01:18:35 +00:00
Louis ae37380783
Merge pull request #2403 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-03-24 20:32:08 +01:00
nextcloud-command 7c1ba40f04 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-03-24 02:33:51 +00:00
Nextcloud bot 2909add862
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-24 01:20:40 +00:00
dependabot[bot] e1e4149c96
Merge pull request #2401 from nextcloud/dependabot/npm_and_yarn/webpack-dev-middleware-5.3.4 2024-03-23 04:58:13 +00:00
dependabot[bot] a4efa3808f
Chore(deps-dev): Bump webpack-dev-middleware from 5.3.3 to 5.3.4
Bumps [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) from 5.3.3 to 5.3.4.
- [Release notes](https://github.com/webpack/webpack-dev-middleware/releases)
- [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v5.3.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-middleware/compare/v5.3.3...v5.3.4)

---
updated-dependencies:
- dependency-name: webpack-dev-middleware
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-23 04:44:55 +00:00
dependabot[bot] 6b368559f5
Merge pull request #2400 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.18 2024-03-23 04:44:23 +00:00
dependabot[bot] b87ad9ac71
Chore(deps-dev): Bump phpunit/phpunit from 9.6.17 to 9.6.18
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.17 to 9.6.18.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.18/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.17...9.6.18)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-23 03:20:57 +00:00
Nextcloud bot 20c4e66d7a
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-22 01:17:44 +00:00
Andy Scherzinger 3ef9bff6b2
Merge pull request #2316 from nextcloud/automated/update-workflows/default
chore: update workflows from templates
2024-03-21 14:04:33 +01:00
Louis Chemineau b725181eee
chore: update workflows from templates
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-21 13:56:40 +01:00
Marcel Klehr d0b303997c
Merge pull request #1121 from nextcloud/feat/dashboard/onthisday
Add dashboard widget: On this day
2024-03-20 14:49:44 +01:00
Louis Chemineau 2b40dc0f78
Compile assets
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-20 14:26:50 +01:00
Louis Chemineau 8de134984c
Add dashboard widget: On this day
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-20 14:25:39 +01:00
Louis c297a2d3de
Merge pull request #2384 from nextcloud/dependabot/composer/psalm/phar-5.23.1
Chore(deps-dev): Bump psalm/phar from 5.22.2 to 5.23.1
2024-03-18 13:34:45 +01:00
Louis d256ccb8a2
Merge pull request #2393 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2024-03-18 11:59:36 +01:00
Louis 634208ed68
Merge pull request #2386 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-03-18 11:26:54 +01:00
Louis a5fe6b1192
Merge pull request #2383 from nextcloud/feat/workflow-auto-update-phpunit-mysql.yml
Updating phpunit-mysql.yml workflow from template
2024-03-18 10:44:30 +01:00
nextcloud-command c5986e0bd8 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2024-03-17 03:10:40 +00:00
nextcloud-command e84b0352e4 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-03-17 02:31:41 +00:00
dependabot[bot] 137798ec3b
Chore(deps-dev): Bump psalm/phar from 5.22.2 to 5.23.1
Bumps [psalm/phar](https://github.com/psalm/phar) from 5.22.2 to 5.23.1.
- [Release notes](https://github.com/psalm/phar/releases)
- [Commits](https://github.com/psalm/phar/compare/5.22.2...5.23.1)

---
updated-dependencies:
- dependency-name: psalm/phar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-16 02:23:05 +00:00
Nextcloud bot 66f93e506c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-16 01:18:34 +00:00
Nextcloud bot a0958f71f6 Updating phpunit-mysql.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-15 16:23:44 +00:00
Nextcloud bot 300312b941
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-14 01:19:45 +00:00
Nextcloud bot b642c3fd2f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-13 01:28:34 +00:00
Nextcloud bot c884d7ead2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-12 01:19:37 +00:00
Louis c3fe696465
Merge pull request #2377 from nextcloud/rakekniven-patch-1
fix(i18n): Adapted wording
2024-03-11 14:06:06 +01:00
rakekniven c3d82d7cab fix(i18n): Adapted wording
Fixes #2357

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-03-11 08:52:32 +00:00
Louis b37f7ad2b9
Merge pull request #2379 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-03-11 09:50:15 +01:00
nextcloud-command e09c4aeed0 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-03-10 02:33:15 +00:00
Nextcloud bot e3075f057f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-09 01:45:48 +00:00
Louis 4cbae20b4b
Merge pull request #2375 from nextcloud/artonge/feat/blurhash
Use blurhash as preview
2024-03-07 14:26:43 +01:00
Louis Chemineau 7edd2b13fe
chore: Compile assets
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-07 12:21:53 +01:00
Louis Chemineau 8322503ef1
perf: Add hot cache in preview service
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-07 11:57:49 +01:00
Louis Chemineau 27e7570954
fix: Reset File state on file update
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-07 11:57:49 +01:00
Louis Chemineau 12f6e25a7d
feat: Use blurhash as preview
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-07 11:57:49 +01:00
Louis 3b43678533
Merge pull request #2376 from nextcloud/artonge/improve_source_directory_default
Create source directory if it does not exists
2024-03-07 10:47:43 +01:00
Louis Chemineau 7f1fad67e2
Compile assets
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-07 10:18:15 +01:00
Louis Chemineau a3dc67412b
Fix semantic of html for source directory
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-07 10:14:06 +01:00
Louis Chemineau 72b4186bf9
Create source directory if it does not exists
Add button to update source directory in timeline

Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-07 10:14:06 +01:00
Nextcloud bot cfacd98204
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-07 01:27:48 +00:00
Nextcloud bot 4e18c74b0d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-05 01:19:45 +00:00
Louis 561241b833
Merge pull request #2374 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-03-04 06:45:49 +00:00
nextcloud-command 55179f0131 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-03-03 02:36:57 +00:00
Julia Kirschenheuter 45b90bb655
Merge pull request #2368 from nextcloud/chore/bump-ncvue-to_8.8.1
chore(deps): Bump nextcloud/vue from `8.6.2` to `8.8.1`
2024-03-01 09:16:14 +01:00
nextcloud-command d907e73f41 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-02-29 17:23:05 +00:00
julia.kirschenheuter 26ad6c77d0 chore(deps): Bump nextcloud/vue from `8.6.2` to `8.8.1`
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2024-02-29 15:49:01 +01:00
Louis 4e74f08a96
Merge pull request #2367 from nextcloud/readme-bugfix
Readme - correct typos, small style edits
2024-02-28 14:24:30 +01:00
Brent Gervais 17104f3dce
correct typos
Signed-off-by: Brent Gervais <7018928+gerbrent@users.noreply.github.com>
2024-02-28 00:20:45 -07:00
Nextcloud bot e42bb0f7ed
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-28 01:29:14 +00:00
Nextcloud bot 4ffa73afba
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-27 01:18:29 +00:00
dependabot[bot] f8387e4ada
Merge pull request #2363 from nextcloud/dependabot/composer/psalm/phar-5.22.2 2024-02-26 08:06:48 +00:00
dependabot[bot] b46e8810ef
Chore(deps-dev): Bump psalm/phar from 5.22.1 to 5.22.2
Bumps [psalm/phar](https://github.com/psalm/phar) from 5.22.1 to 5.22.2.
- [Release notes](https://github.com/psalm/phar/releases)
- [Commits](https://github.com/psalm/phar/compare/5.22.1...5.22.2)

---
updated-dependencies:
- dependency-name: psalm/phar
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 07:43:22 +00:00
Louis 957f927e5b
Merge pull request #2365 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-02-26 08:41:54 +01:00
nextcloud-command 3c2a8fdbc5 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-02-25 02:29:55 +00:00
Nextcloud bot e0afbaf2e2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-25 01:21:36 +00:00
dependabot[bot] 8149cf1449
Merge pull request #2362 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.17 2024-02-24 04:26:56 +00:00
dependabot[bot] 6e9bb2613a
Chore(deps-dev): Bump phpunit/phpunit from 9.6.16 to 9.6.17
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.16 to 9.6.17.
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.17/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.16...9.6.17)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-24 02:28:42 +00:00
Louis a2b0c46c41
Merge pull request #2359 from nextcloud/feat/workflow-auto-update-command-compile.yml
Updating command-compile.yml workflow from template
2024-02-21 10:08:36 +01:00
Nextcloud bot 0102abbafc
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-21 01:18:16 +00:00
Nextcloud bot 5b623aa944 Updating command-compile.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-20 19:04:18 +00:00
Maxence Lange 83c34b5c49
Merge pull request #2344 from nextcloud/enh/noid/init-metadata-on-repair-step
initMetadata on a repair step
2024-02-20 12:29:59 -01:00
Louis 9e75e53c5e
Merge pull request #2356 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-02-20 11:43:18 +01:00
Nextcloud bot c1ceaa41fe
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-20 01:17:38 +00:00
Maxence Lange 9cefac5407 initMetadata on a repair step
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2024-02-19 11:14:58 -01:00
Nextcloud bot f79944c18d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-19 01:18:03 +00:00
nextcloud-command ec2efa1e3b chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-02-18 02:30:34 +00:00
Nextcloud bot 3350af4d40
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-18 01:19:17 +00:00
dependabot[bot] 09c7cbcf20
Merge pull request #2351 from nextcloud/dependabot/composer/psalm/phar-5.22.1 2024-02-17 03:37:05 +00:00
dependabot[bot] bf2215b83d
Chore(deps-dev): Bump psalm/phar from 5.21.1 to 5.22.1
Bumps [psalm/phar](https://github.com/psalm/phar) from 5.21.1 to 5.22.1.
- [Release notes](https://github.com/psalm/phar/releases)
- [Commits](https://github.com/psalm/phar/compare/5.21.1...5.22.1)

---
updated-dependencies:
- dependency-name: psalm/phar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-17 02:48:41 +00:00
Nextcloud bot f580e34e9b
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-17 01:19:22 +00:00
Nextcloud bot 81a70ea0d5
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-16 01:19:15 +00:00
Louis f45f8d358b
Merge pull request #2319 from nextcloud/artonge/feat/photos_locations
Add config to select source directories
2024-02-15 15:51:30 +00:00
Louis Chemineau b110ae702d
Compile assets
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:25:01 +01:00
Louis Chemineau 57aea9b6c4
Improve errors handling
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau 289c4b8930
Remove warning during compilation
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau 1cbfa656d3
Upload test images in the /Photos directory
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau 3e0a2d3fb6
Fix lint errors
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau c357cb2d21
Update root folder icon and label for upload location
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau 2cebaf08f8
Run lint:fix
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau aec581164f
Use photosSourceFolder in photos search
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau 8f16b065c6
Restrict source folder selection to 1
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau e3c39266b1
Update photosLocationFolder when photosLocation change
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau d96558f885
use userConfig store in all components
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau bc85b66765
Use store to manage user config
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis Chemineau e038644eb1
Add config to select source directories
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-15 16:24:02 +01:00
Louis ce3ed19b19
Merge pull request #2337 from nextcloud/dependabot/npm_and_yarn/postcss-8.4.35
Chore(deps-dev): Bump postcss from 8.4.31 to 8.4.35
2024-02-13 18:05:24 +01:00
Louis 3dbfb4ca64
Merge pull request #2338 from nextcloud/dependabot/npm_and_yarn/nextcloud/stylelint-config-2.4.0
Chore(deps-dev): Bump @nextcloud/stylelint-config from 2.3.1 to 2.4.0
2024-02-13 18:05:13 +01:00
Louis b379a8fd79
Merge pull request #2340 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-02-12 13:24:49 +01:00
nextcloud-command 9550bed0e0 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-02-11 02:26:59 +00:00
Nextcloud bot 991431edf4
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-11 01:19:18 +00:00
dependabot[bot] cb80b0ca66
Chore(deps-dev): Bump postcss from 8.4.31 to 8.4.35
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.31 to 8.4.35.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.31...8.4.35)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-10 04:24:09 +00:00
dependabot[bot] 5c9c47f8b6
Merge pull request #2339 from nextcloud/dependabot/npm_and_yarn/ts-node-10.9.2 2024-02-10 04:23:13 +00:00
dependabot[bot] 290b0ebcfd
Chore(deps-dev): Bump ts-node from 10.9.1 to 10.9.2
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.9.1 to 10.9.2.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Changelog](https://github.com/TypeStrong/ts-node/blob/main/development-docs/release-template.md)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v10.9.1...v10.9.2)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-10 02:49:07 +00:00
dependabot[bot] 086879497c
Chore(deps-dev): Bump @nextcloud/stylelint-config from 2.3.1 to 2.4.0
Bumps [@nextcloud/stylelint-config](https://github.com/nextcloud/stylelint-config) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/nextcloud/stylelint-config/releases)
- [Changelog](https://github.com/nextcloud-libraries/stylelint-config/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/stylelint-config/compare/v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/stylelint-config"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-10 02:48:43 +00:00
Nextcloud bot 30f94dcd38
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-09 01:18:22 +00:00
Nextcloud bot f368154b6d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-08 01:19:01 +00:00
Pytal d3f1e2dafc
Merge pull request #2323 from nextcloud/bump/bump-ncvue-to-v8.6.2
Bump NcVue to `v8.6.2`
2024-02-07 12:02:14 -08:00
nextcloud-command 0327276a23 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-02-07 19:06:50 +00:00
julia.kirschenheuter cbd91f4dc5 Bump NcVue to `v8.6.2`
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-02-07 11:04:03 -08:00
Louis e5ae1ac4ad
Merge pull request #2324 from nextcloud/artonge/fix/back_arrow
Fix back arrow position in wide screens
2024-02-07 18:05:20 +01:00
Louis Chemineau 92eb933de9
Compile assets
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-07 15:35:31 +01:00
Louis Chemineau 52cbd432fe
Fix back arrow position in wide screens
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-02-07 15:34:19 +01:00
Julia Kirschenheuter 1f85e5b4c1
Merge pull request #2296 from nextcloud/enh/migrate-to-ncdialog
enh: Migrate photos picker to use NcDialog
2024-02-07 12:51:00 +01:00
Ferdinand Thiessen 02170f8c4b
chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-02-07 11:48:30 +01:00
Ferdinand Thiessen 263d7f4bf1
fix: Add labels to NcSelect
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Pytal <24800714+Pytal@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-02-07 11:48:29 +01:00
Ferdinand Thiessen 5f03c45728
enh: Migrate photos picker to use NcDialog
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-02-07 11:48:27 +01:00
Louis 8f699e99c4
Merge pull request #2313 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-02-05 14:54:15 +01:00
Louis 2cb2ef41cd
Merge pull request #2315 from nextcloud/feat/workflow-auto-update-command-compile.yml
Updating command-compile.yml workflow from template
2024-02-05 14:53:29 +01:00
Nextcloud bot 9783246b0e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-05 01:17:49 +00:00
Nextcloud bot 1a5bd5719e Updating command-compile.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-04 20:40:36 +00:00
nextcloud-command 52f50b4c40 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-02-04 02:32:08 +00:00
Nextcloud bot a5acffae8f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-04 01:21:15 +00:00
dependabot[bot] 7b69943859
Merge pull request #2302 from nextcloud/dependabot/composer/nextcloud/coding-standard-1.2.1 2024-02-04 00:40:24 +00:00
dependabot[bot] c43ac27dc4
Merge pull request #2291 from nextcloud/dependabot/npm_and_yarn/cypress-visual-regression-4.0.0 2024-02-04 00:30:03 +00:00
Ferdinand Thiessen bc32170e20
fix: Coding styles
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-02-04 01:26:40 +01:00
dependabot[bot] 6e428180fd
Merge pull request #2301 from nextcloud/dependabot/composer/psalm/phar-5.21.1 2024-02-04 00:25:03 +00:00
Ferdinand Thiessen ef2cbaa0ec
fix: Adjust cypress config
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-02-04 01:17:01 +01:00
dependabot[bot] d3789732cb
Merge pull request #2307 from nextcloud/dependabot/npm_and_yarn/camelcase-8.0.0 2024-02-03 21:39:53 +00:00
nextcloud-command 835f3ae43f chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-02-03 21:14:49 +00:00
dependabot[bot] bcd628ca6a
Chore(deps): Bump camelcase from 7.0.0 to 8.0.0
Bumps [camelcase](https://github.com/sindresorhus/camelcase) from 7.0.0 to 8.0.0.
- [Release notes](https://github.com/sindresorhus/camelcase/releases)
- [Commits](https://github.com/sindresorhus/camelcase/compare/v7.0.0...v8.0.0)

---
updated-dependencies:
- dependency-name: camelcase
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 03:04:31 +00:00
dependabot[bot] 7706aed502
Chore(deps-dev): Bump nextcloud/coding-standard from 1.1.1 to 1.2.1
Bumps [nextcloud/coding-standard](https://github.com/nextcloud/coding-standard) from 1.1.1 to 1.2.1.
- [Release notes](https://github.com/nextcloud/coding-standard/releases)
- [Changelog](https://github.com/nextcloud/coding-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/coding-standard/compare/v1.1.1...v1.2.1)

---
updated-dependencies:
- dependency-name: nextcloud/coding-standard
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 02:13:29 +00:00
dependabot[bot] 1189abd587
Chore(deps-dev): Bump psalm/phar from 5.20.0 to 5.21.1
Bumps [psalm/phar](https://github.com/psalm/phar) from 5.20.0 to 5.21.1.
- [Release notes](https://github.com/psalm/phar/releases)
- [Commits](https://github.com/psalm/phar/compare/5.20.0...5.21.1)

---
updated-dependencies:
- dependency-name: psalm/phar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 02:13:25 +00:00
Nextcloud bot b6dd6619a6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-03 01:18:51 +00:00
Nextcloud bot 01f713e261
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-02 01:19:31 +00:00
Pytal 1c0bf8f529
Merge pull request #2297 from nextcloud/enh/a11y/modal-to-dialog
enh(a11y): Fix modal close button overlapping content
2024-02-01 10:33:06 -08:00
Nextcloud bot 60da94d60c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-01 01:19:44 +00:00
nextcloud-command 6976a88f96 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-31 20:42:37 +00:00
Christopher Ng c11d798309 enh(a11y): Fix modal close button overlapping content
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-01-31 12:16:16 -08:00
Pytal 901627f294
Merge pull request #2256 from nextcloud/fix/a11y/focus-trap-add-to-album
fix: Fix focus loop on tab navigation in Add to album modal
2024-01-30 15:14:00 -08:00
nextcloud-command 0a25bfc6b7 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-30 14:54:25 -08:00
Christopher Ng be273a0aa9 fix(a11y): Fix focus loop on tab in Add to album modal
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-01-30 14:54:25 -08:00
Louis Chemineau 8f1a989bc9 Migrate remaining instances of UploadPicker
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-30 14:54:25 -08:00
Louis Chemineau 0baea861ca Reduce width of nav item in narrow screens
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-30 14:54:25 -08:00
Louis Chemineau f8dab4ddd0 Use NcButton in FilsePicker nav
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-30 14:54:24 -08:00
Louis Chemineau f431f60338 Pass the Album as a Folder to the UploadPicker
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-30 14:54:24 -08:00
Christopher Ng 0d59fd4c97 fix: Migrate to new Entry API
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-01-30 14:54:24 -08:00
Christopher Ng bb79f5a645
chore: Bump @nextcloud deps
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-01-30 10:22:39 +01:00
Louis 7ad19e0d7b
Merge pull request #2085 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2024-01-29 23:31:20 +01:00
Louis Chemineau f883fc6813
Use axios instead of @nc/axios in e2e tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-29 18:16:22 +01:00
nextcloud-command d62a3e5d77
chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-29 18:16:22 +01:00
Louis b76048ffd0
Merge pull request #2269 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-01-29 15:52:13 +01:00
Louis 0e8a81f246
Merge pull request #2290 from nextcloud/fix/header-navigation-styling
Do not mess with `@nextcloud/vue` styles and fix navigation header a11y
2024-01-29 11:00:22 +01:00
nextcloud-command de3f1b0f92 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-01-28 02:36:10 +00:00
dependabot[bot] d72c5e670d
Chore(deps-dev): Bump cypress-visual-regression from 2.1.1 to 4.0.0
Bumps [cypress-visual-regression](https://github.com/cypress-visual-regression/cypress-visual-regression) from 2.1.1 to 4.0.0.
- [Changelog](https://github.com/cypress-visual-regression/cypress-visual-regression/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cypress-visual-regression/cypress-visual-regression/commits)

---
updated-dependencies:
- dependency-name: cypress-visual-regression
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-27 02:30:15 +00:00
Nextcloud bot eb162b494e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-27 01:36:27 +00:00
Ferdinand Thiessen a4461e2798
chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-01-26 18:06:39 +01:00
Ferdinand Thiessen 53970b657e
fix(Albums): Consistent (aria-)label and make icon only on small devices
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-01-26 18:05:41 +01:00
Ferdinand Thiessen d24c849c31
fix(HeaderNavigation): Do not mess with `@nextcloud/vue` styles and make navigation accessible
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-01-26 17:55:19 +01:00
Nextcloud bot e152f84fee
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-26 01:18:47 +00:00
Louis 3d93169181
Merge pull request #2205 from frederikb96/patch-1
Fix Fatal Error in Album setCollaborator function - redefining computeKey function
2024-01-25 18:15:00 +01:00
Frederik Berg c77b9046a1 Fix Fatal Error in Album setCollaborator function - redefining computeKey
When calling setCollaborator function two times after another, computeKey is redefined and leads to a fatal error. Fixed by defining it as an anonymous function instead :)

Signed-off-by: Frederik Berg <83548283+frederikb96@users.noreply.github.com>
2024-01-25 16:55:18 +01:00
Louis bac24f84d5
Merge pull request #2280 from nextcloud/artonge/feat/large_exif_entries
Filter out large EXIF entries
2024-01-25 16:49:14 +01:00
Louis Chemineau b8a0e7c1ad
Filter out large EXIF entries
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-25 16:15:58 +01:00
Nextcloud bot b7c09df368
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-25 01:18:24 +00:00
Pytal 46927d70d5
Merge pull request #2231 from nextcloud/fix/a11y/new-album-return-focus
fix(a11y): Return focus to Add button on dialog close
2024-01-24 10:39:41 -08:00
nextcloud-command 2a73aca62d chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-24 18:18:09 +00:00
Christopher Ng 5e9efe18a3 fix(a11y): Return focus to Add button on dialog close
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-01-24 10:11:38 -08:00
Christopher Ng b435561c73 fix: Remove redundant autofocus attr
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-01-24 10:11:38 -08:00
Louis 6667dbec3d
Merge pull request #2279 from jakkarth/issue/2225
Just because an array key doesn't imply the value at that key isn't null.
2024-01-24 18:35:00 +01:00
JS Moore 718f93c066
Just because an array key doesn't imply the value at that key isn't null.
Fixes nextcloud/photos#2225.

Signed-off-by: JS Moore <js@jsmoore.dev>
2024-01-24 09:57:23 -05:00
Pytal 62fddcf13e
Merge pull request #2277 from nextcloud/deps/nextcloud/vue-8.5.0
chore: Bump @nextcloud/vue to v8.5.0
2024-01-24 00:07:17 -08:00
Nextcloud bot af055b784c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-24 01:18:47 +00:00
Christopher Ng 3183dd88d8 chore: compile assets
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-23 19:09:21 +00:00
Christopher Ng 298a71eacf chore: Bump @nextcloud/vue to v8.5.0
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-01-23 10:55:22 -08:00
dependabot[bot] 2b9c29927d
Merge pull request #2268 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.16 2024-01-23 17:59:33 +00:00
Ferdinand Thiessen b37af9e23c
Merge pull request #2275 from nextcloud/fix/41900-fix-description-for-favorite-images
fix(files): Fix description for favorite images and remove image description
2024-01-23 18:42:14 +01:00
nextcloud-command 6360bdad45 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-23 17:21:37 +00:00
julia.kirschenheuter 7ed7001926 fix(files): Fix description for favorite images and remove image description
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2024-01-23 14:19:36 +01:00
Nextcloud bot 48b3e4acb9
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-23 01:27:13 +00:00
Pytal a6b07acbba
Merge pull request #2255 from nextcloud/fix/a11y/folder-contrast
enh(a11y): Update folder design to fix contrast issues
2024-01-22 14:28:24 -08:00
nextcloud-command 87100f3a24 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-22 20:41:46 +00:00
Christopher Ng 0dc150b434 enh(a11y): Update folder design to fix contrast issues
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-01-22 12:33:56 -08:00
Ferdinand Thiessen 15806565eb
Merge pull request #2271 from nextcloud/fix/2239-add-missing-label
Add missing label to "back" button
2024-01-22 21:11:17 +01:00
nextcloud-command e114e0c134 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-22 19:48:07 +00:00
julia.kirschenheuter a25e275330 fix(files): add missing label to "back" button
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2024-01-22 20:27:58 +01:00
Julia Kirschenheuter 26d64f0737
Merge pull request #2264 from nextcloud/fix/a11y/heading-hierarchy
fix(a11y): Fix heading hierarchy in some places
2024-01-22 13:57:39 +01:00
Nextcloud bot 73eb2329bc
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-21 01:37:19 +00:00
nextcloud-command 05f3bbbc92 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-20 13:13:35 -06:00
Christopher Ng 314049b9ee fix(a11y): Fix heading hierarchy in some places
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-01-20 13:13:35 -06:00
dependabot[bot] 354f1f91d4
Merge pull request #2267 from nextcloud/dependabot/composer/psalm/phar-5.20.0 2024-01-20 05:14:28 +00:00
dependabot[bot] 756d288559
Chore(deps-dev): Bump phpunit/phpunit from 9.6.15 to 9.6.16
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.15 to 9.6.16.
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.16/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.15...9.6.16)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-20 03:16:48 +00:00
dependabot[bot] 5c25c111a5
Chore(deps-dev): Bump psalm/phar from 5.19.0 to 5.20.0
Bumps [psalm/phar](https://github.com/psalm/phar) from 5.19.0 to 5.20.0.
- [Release notes](https://github.com/psalm/phar/releases)
- [Commits](https://github.com/psalm/phar/compare/5.19.0...5.20.0)

---
updated-dependencies:
- dependency-name: psalm/phar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-20 03:16:44 +00:00
Simon L 003726b58c
Merge pull request #2262 from nextcloud/enh/2258/fix-modal
also fix additional place regarding album modal header
2024-01-19 14:18:44 +01:00
nextcloud-command b36fd45c29 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-19 11:46:35 +00:00
Simon L 2bc7735038 also fix additional place regarding album modal header
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-01-19 12:32:58 +01:00
Louis 240184d3a5
Merge pull request #2154 from nextcloud/enh/noid/disable-place-setting
add setting 'disable_place'
2024-01-18 17:28:14 +01:00
Louis 83996a38db
Update lib/Command/UpdateReverseGeocodingFilesCommand.php
Use plural in exception

Signed-off-by: Louis <louis@chmn.me>
2024-01-18 17:18:19 +01:00
Maxence Lange da806b3080 add setting 'disable_places'
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2024-01-18 14:49:18 -01:00
Louis 8f7e291c89
Merge pull request #2254 from nextcloud/feat/package-node-npm-engines-update
Update npm and node engines versions
2024-01-17 10:07:07 +01:00
Louis 16407600f5
Merge pull request #2202 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2024-01-17 10:06:32 +01:00
nextcloud-command 6e77a78e91 Update npm and node engines versions
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-16 13:18:48 +00:00
Julia Kirschenheuter 33b71cebb0
Merge pull request #2249 from nextcloud/fix/2248-Clean_up_headings
Clean up headings
2024-01-15 14:23:43 +01:00
julia.kirschenheuter 975333552c chore(assets): Recompile assets
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2024-01-15 13:30:25 +01:00
nextcloud-command 6442af5220 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2024-01-14 02:41:29 +00:00
Nextcloud bot ad61921da3
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-14 01:20:14 +00:00
dependabot[bot] 4c7c00ea3f
Merge pull request #2251 from nextcloud/dependabot/composer/psalm/phar-5.19.0 2024-01-13 04:11:19 +00:00
dependabot[bot] 6f5dd53118
Chore(deps-dev): Bump psalm/phar from 5.18.0 to 5.19.0
Bumps [psalm/phar](https://github.com/psalm/phar) from 5.18.0 to 5.19.0.
- [Release notes](https://github.com/psalm/phar/releases)
- [Commits](https://github.com/psalm/phar/compare/5.18.0...5.19.0)

---
updated-dependencies:
- dependency-name: psalm/phar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-13 02:35:51 +00:00
julia.kirschenheuter 6294334718 fix(photos): adapt headings and `<h1>` styles
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2024-01-12 16:02:44 +01:00
Nextcloud bot ee703b8ccd
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-12 01:17:31 +00:00
dependabot[bot] 4166921225
Merge pull request #2246 from nextcloud/dependabot/npm_and_yarn/follow-redirects-1.15.4 2024-01-10 22:33:52 +00:00
dependabot[bot] 7dd459de5b
Chore(deps): Bump follow-redirects from 1.15.2 to 1.15.4
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.2 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.2...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-10 22:23:53 +00:00
Louis 067d2f0e44
Merge pull request #2244 from nextcloud/artonge/fix/better_handling_of_non_local_files
Request background job to generate metadata on non-local files
2024-01-09 18:15:31 +01:00
Louis Chemineau ca4c89e15d
Request background job to generate metadata on non-local files
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-09 18:02:31 +01:00
Nextcloud bot 0da3ffb272
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-08 01:20:47 +00:00
Nextcloud bot 8c4a24d37f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-06 01:19:41 +00:00
Nextcloud bot c443c7f693
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-05 01:22:32 +00:00
Louis 6682968ede
Merge pull request #2228 from nextcloud/artonge/feat/allow_hide_people_nav_entry
Allow to hide "People" nav entry for admin
2024-01-04 09:32:27 +00:00
Nextcloud bot 202327ac3b
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-04 01:20:38 +00:00
nextcloud-command ccfcacddcc chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-03 22:37:22 +00:00
Louis Chemineau ee3a46c85c Allow to hide People nav entry for admin
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-03 20:27:47 +01:00
Louis 38610e7352
Merge pull request #2227 from nextcloud/artonge/feat/order_collections_files_by_taken_date
Order collections files by taken date
2024-01-03 20:03:38 +01:00
Nextcloud bot 45836e7f0a
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-03 01:20:15 +00:00
nextcloud-command a39cea3780 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-02 20:09:42 +00:00
Louis Chemineau 0390e5b796 Order collections files by taken date
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-02 20:53:52 +01:00
Louis dd266f2bff
Merge pull request #2226 from nextcloud/artonge/fix/search_on_files_without_metadata
Also sort by getlastmodified when searching for photos
2024-01-02 20:53:21 +01:00
nextcloud-command 0040f87f5f chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-01-02 16:53:32 +00:00
Louis Chemineau 1f1c54a46d
Also sort by getlastmodified when searching for photos
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-01-02 17:50:27 +01:00
Eduardo Morales d84be2aca6
Merge pull request #2222 from nextcloud/bump-nc-vue-to-8.4.0
Bump NcVue to 8.4.0
2023-12-27 10:48:37 -06:00
julia.kirschenheuter 6316505128 Bump NcVue to 8.4.0
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-27 14:21:22 +00:00
Nextcloud bot ccb21ae484
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-24 01:25:17 +00:00
dependabot[bot] 17ef3121f0
Merge pull request #2217 from nextcloud/dependabot/composer/psalm/phar-5.18.0 2023-12-23 03:30:50 +00:00
dependabot[bot] e049f28237
Chore(deps-dev): Bump psalm/phar from 5.17.0 to 5.18.0
Bumps [psalm/phar](https://github.com/psalm/phar) from 5.17.0 to 5.18.0.
- [Release notes](https://github.com/psalm/phar/releases)
- [Commits](https://github.com/psalm/phar/compare/5.17.0...5.18.0)

---
updated-dependencies:
- dependency-name: psalm/phar
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-23 02:43:56 +00:00
Nextcloud bot be4af8baa5
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-23 01:19:26 +00:00
Julia Kirschenheuter 7608ef23e5
Merge pull request #2212 from nextcloud/fix/glitch-buttons-on-mobile
fix: glitch buttons on mobile
2023-12-22 17:00:24 +01:00
Grigorii K. Shartsev 22f31b5377 chore(assets): Recompile assets
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-22 12:31:26 +00:00
Grigorii K. Shartsev 7eb0f56b58 fix: glitch button content on dynamic default slot
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2023-12-22 12:43:22 +01:00
Louis 5f3676d2ed
Merge pull request #2209 from nextcloud/fix/refetch-on-anchor-links
fix: refetch only on path change, not on anchor links (e.g. "skip to" links)
2023-12-21 13:11:22 +01:00
Grigorii K. Shartsev 3ce6e75378 chore(assets): Recompile assets
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2023-12-21 12:33:09 +01:00
Grigorii K. Shartsev fca0a9ead0 fix: refetch only on path change
Otherwise anchor links changing fragment (#hash) also trigger refetching

Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2023-12-21 12:33:09 +01:00
Varun Patil 538580f774
Merge pull request #2206 from nextcloud/pulsejet/mpmte
Fix TypeError with invalid coordinates (fix #2187)
2023-12-20 16:42:56 +05:30
Varun Patil 58d285e7e6 Fix TypeError with invalid coordinates (fix #2187)
Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2023-12-20 11:25:38 +01:00
Nextcloud bot 25e013b011
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-20 01:16:58 +00:00
Eduardo Morales 82fdcf4b3a
Merge pull request #2196 from nextcloud/fix/2160-create_accessible_ckeckboxes_for_media
Adapt focus-visible styles for checkboxes on images
2023-12-19 04:33:27 -06:00
julia.kirschenheuter 062819c0b2 Adapt focus-visible styles for checkboxes on images
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-19 10:21:13 +00:00
dependabot[bot] ab8cc60d6d
Merge pull request #2200 from nextcloud/dependabot/composer/sabre/dav-4.6.0 2023-12-16 03:31:29 +00:00
dependabot[bot] 44026e6b96
Chore(deps-dev): Bump sabre/dav from 4.5.1 to 4.6.0
Bumps [sabre/dav](https://github.com/sabre-io/dav) from 4.5.1 to 4.6.0.
- [Release notes](https://github.com/sabre-io/dav/releases)
- [Changelog](https://github.com/sabre-io/dav/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sabre-io/dav/compare/4.5.1...4.6.0)

---
updated-dependencies:
- dependency-name: sabre/dav
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-16 02:21:51 +00:00
Nextcloud bot ab1726dc8e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-15 01:17:39 +00:00
Côme Chilliet 3ee3ae4b20
Merge pull request #2186 from nextcloud/fix/catch-and-log-date-errors
Catch and log error thrown while parsing dates from metadata
2023-12-14 14:23:40 +01:00
Nextcloud bot fe1d6b71d8
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-14 01:17:02 +00:00
Louis 7a82840b0c
Merge pull request #2180 from frederikb96/frederikb96/noid/readme-dev-setup
Update README.md to include viewer dependency for dev setup
2023-12-13 12:48:21 +01:00
Frederik Berg 9609a841fe
Add information that main branch is needed of viewer app
Co-authored-by: Louis <louis@chmn.me>
Signed-off-by: Frederik Berg <83548283+frederikb96@users.noreply.github.com>
2023-12-13 11:33:16 +01:00
Louis 42764bc8eb
Merge pull request #2172 from mchugh19/occ-albumAdd
Add OCC comand add-photo-to-album
2023-12-13 11:12:30 +01:00
Christian McHugh 3e2cb7a734 Require user when querying album name from DB
Signed-off-by: Christian McHugh <mchugh19@hotmail.com>
2023-12-13 10:52:07 +01:00
Christian McHugh b892270d78 lint fixes
Signed-off-by: Christian McHugh <mchugh19@hotmail.com>
2023-12-13 10:52:07 +01:00
Christian McHugh 852811cb2e improve wording slightly
Signed-off-by: Christian McHugh <mchugh19@hotmail.com>
2023-12-13 10:52:07 +01:00
Christian McHugh 8b1acd6cb5 Add get album by name and simplify command logic
Signed-off-by: Christian McHugh <mchugh19@hotmail.com>
2023-12-13 10:52:07 +01:00
Christian McHugh a218a5f9b2 Apply suggestions from code review
Co-authored-by: Louis <louis@chmn.me>
Signed-off-by: Christian McHugh <mchugh19@hotmail.com>
2023-12-13 10:52:07 +01:00
Christian McHugh 0aef574b01 remove empty space
Signed-off-by: Christian McHugh <mchugh19@hotmail.com>
2023-12-13 10:52:07 +01:00
Christian McHugh c563f9e55c Add album creation to occ
Signed-off-by: Christian McHugh <mchugh19@hotmail.com>
2023-12-13 10:52:07 +01:00
Christian McHugh e8ef520ba9 uppercase
Signed-off-by: Christian McHugh <mchugh19@hotmail.com>
2023-12-13 10:52:07 +01:00
Christian McHugh 8a7aaea323 Add OCC comand add-photo-to-album
Signed-off-by: Christian McHugh <mchugh19@hotmail.com>
2023-12-13 10:52:07 +01:00
Louis dabd93e263
Merge pull request #2190 from nextcloud/fix/a11y-favorite
fix: Adjust favorite icon to be accessible
2023-12-13 10:51:42 +01:00
Ferdinand Thiessen 5bb7b9f1f4
fix: Adjust favorite icon to be accessible
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-13 01:11:35 +01:00
Louis 9f73a6a164
Merge pull request #2189 from nextcloud/artonge/debt/backend_deps
Rationalize dependencies
2023-12-12 19:23:35 +01:00
Louis Chemineau ea4f4599f8
Rationalize dependencies
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-12-12 16:01:49 +01:00
Nextcloud bot db51bc4f61
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-12 01:17:26 +00:00
Côme Chilliet 5c9bb54360
Catch and log error thrown while parsing dates from metadata
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-12-11 11:39:55 +01:00
Pytal 38f560b73a
Merge pull request #2183 from nextcloud/enh/a11y/app-nav-label
enh: Add navigation label
2023-12-06 18:37:27 -08:00
nextcloud-command a045d6d4bd chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-07 02:12:55 +00:00
Nextcloud bot 78d58a8bdb
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-07 01:18:21 +00:00
Christopher Ng d048104ffe enh: Add navigation label
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-12-06 16:51:28 -08:00
Louis 559933fc05
Merge pull request #2182 from nextcloud/artonge/fix/checkbox_layout
Fix checkbox layout
2023-12-07 01:39:12 +01:00
Louis Chemineau 5f6725af9f
chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-12-06 18:41:57 +01:00
Louis Chemineau b862e8e77a
Fix checkbox layout
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-12-06 18:41:57 +01:00
Louis 334f080ab3
Merge pull request #2175 from nextcloud/enh/noid/show-inline
show title and close of modal inline
2023-12-06 15:53:28 +01:00
nextcloud-command 8f1196e912 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-06 14:05:57 +00:00
Frederik Berg 38e0235abf
Update README.md to include viewer dependency for dev setup
Signed-off-by: Frederik Berg <83548283+frederikb96@users.noreply.github.com>
2023-12-06 14:25:12 +01:00
Simon L 46fb961f0d show title and close of modal inline
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-12-05 13:52:32 +01:00
Joas Schilling afaffd823b
Merge pull request #2171 from nextcloud/bugfix/noid/fix-is-not-null-queries
fix(DB): Fix "IS NOT NULL" database queries
2023-12-04 21:20:02 +01:00
Joas Schilling d836e048a9
fix(DB): Fix "IS NOT NULL" database queries
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-04 13:11:52 +01:00
Julius Härtl aa82646be1
Merge pull request #2166 from nextcloud/bugfix/skip-empty-files
fix: Skip empty files in metadata providers
2023-12-04 10:49:34 +01:00
Git'Fellow 7c09d26797
Merge pull request #2163 from nextcloud/dontCheckOnNull
Don't check display name on null
2023-12-04 10:17:33 +01:00
Julius Härtl 2eb4b83f99
fix: Skip empty files in metadata providers
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-12-04 08:42:20 +01:00
Nextcloud bot edceea6ccb
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-04 01:16:21 +00:00
Marcel Klehr 6e49882de9
Merge pull request #2007 from nextcloud/fix/specialchars-in-face-names
Fix links to faces with special chars
2023-12-03 11:37:15 +01:00
nextcloud-command 987056c7c7 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-03 10:25:43 +00:00
Marcel Klehr 4f28927242 Fix links to faces with special chars
fixes #1886

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-12-03 11:21:49 +01:00
Git'Fellow f27fee79a6
Merge pull request #1897 from joshtrichards/jr-photos-addons
Add link to Recognize app in README
2023-12-03 10:25:47 +01:00
Git'Fellow e8b2f5cdb1
Don't check display name on null
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-12-03 10:15:11 +01:00
dependabot[bot] f80b3c29ab
Merge pull request #2162 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.15 2023-12-02 04:31:41 +00:00
dependabot[bot] d6b992a877
Chore(deps-dev): Bump phpunit/phpunit from 9.6.13 to 9.6.15
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.13 to 9.6.15.
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.15/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.13...9.6.15)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-02 02:38:03 +00:00
Nextcloud bot bb732a3afc
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-01 01:17:45 +00:00
Nextcloud bot aa275c62ec
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-28 01:28:17 +00:00
Nextcloud bot 5b98bafb2b
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-27 01:23:05 +00:00
Nextcloud bot 0c781bf0c9
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-26 01:22:13 +00:00
Nextcloud bot 6c14a11a8b
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-25 01:26:48 +00:00
Nextcloud bot 2e4a52b44c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-24 01:52:03 +00:00
dependabot[bot] 7c6505c5d5
Merge pull request #2148 from nextcloud/dependabot/composer/sabre/dav-4.5.1 2023-11-23 16:46:40 +00:00
dependabot[bot] 595e9c7bda
Chore(deps-dev): Bump sabre/dav from 4.5.0 to 4.5.1
Bumps [sabre/dav](https://github.com/sabre-io/dav) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/sabre-io/dav/releases)
- [Changelog](https://github.com/sabre-io/dav/blob/4.5.1/CHANGELOG.md)
- [Commits](https://github.com/sabre-io/dav/compare/4.5.0...4.5.1)

---
updated-dependencies:
- dependency-name: sabre/dav
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-23 15:26:15 +00:00
Louis e6b26f63de
Merge pull request #2147 from nextcloud/update-master-version
feat(deps): Add Nextcloud 29 support on master
2023-11-23 16:25:34 +01:00
Joas Schilling c54194263f
feat(deps): Add Nextcloud 29 support on master
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-23 14:25:21 +01:00
Nextcloud bot 2b531dc93e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-23 01:25:10 +00:00
Louis aa1db1d2b7
Merge pull request #2142 from nextcloud/artonge/fix/sidebar_icon
Use information outline as sidebar icon
2023-11-21 15:42:13 +01:00
Louis Chemineau 99bdfc167b
Use information outline as sidebar icon
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-21 13:47:29 +01:00
Louis a6288c195a
Merge pull request #2141 from nextcloud/artonge/fix/use_nc_url_to_download_cities
Use NC URL to download cities list
2023-11-21 12:30:36 +01:00
Louis Chemineau 55778c13ae
Use NC URL to download cities list
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-21 11:45:12 +01:00
Nextcloud bot ba2862be81
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-21 01:26:46 +00:00
Louis 80d94b4b00
Merge pull request #2139 from nextcloud/artonge/perf/from_f2v
Port virtual list perf improvements from F2V
2023-11-20 19:38:36 +01:00
Louis Chemineau 54d24ab43f
Port virtual list perf improvements from F2V
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-20 18:05:57 +01:00
dependabot[bot] b4b5950bf3
Merge pull request #2138 from nextcloud/dependabot/composer/sabre/dav-4.5.0 2023-11-18 04:02:11 +00:00
dependabot[bot] 8bdab00653
Chore(deps-dev): Bump sabre/dav from 4.4.0 to 4.5.0
Bumps [sabre/dav](https://github.com/sabre-io/dav) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/sabre-io/dav/releases)
- [Changelog](https://github.com/sabre-io/dav/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sabre-io/dav/compare/4.4.0...4.5.0)

---
updated-dependencies:
- dependency-name: sabre/dav
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-18 02:42:29 +00:00
Pytal de294ed081
Merge pull request #2136 from nextcloud/deps/nextcloud/vue-8.2.0
chore: Bump @nextcloud/vue to v8.2.0
2023-11-17 17:25:25 -08:00
Christopher Ng a4fe7a0825 chore: compile assets
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-18 01:04:45 +00:00
Christopher Ng 4a2b554cd7 chore: Bump @nextcloud/vue to v8.2.0
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-11-17 16:27:08 -08:00
Louis c350bdafef
Merge pull request #2135 from nextcloud/artonge/fix/exif_display_conditions
Fix EXIF display conditions
2023-11-16 19:34:33 +01:00
Louis Chemineau 2a898cafdc
Fix EXIF display conditions
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-16 15:49:33 +01:00
Louis b9b84c69a9
Merge pull request #2130 from nextcloud/artonge/fix/sidebar_tab_build
Add sidebar to the build entries
2023-11-15 22:21:16 +01:00
Louis Chemineau 6718b1a89d
Add sidebar to the build entries
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-15 22:00:08 +01:00
Pytal 9c205b00f4
Merge pull request #2129 from nextcloud/enh/a11y/backwards-kb-tab
fix(a11y): Backwards photos tabulation
2023-11-15 10:34:31 -08:00
Christopher Ng 5f378d62da chore: compile assets
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-15 18:10:25 +00:00
Christopher Ng a700c747c1 fix(a11y): Backwards photos tabulation
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-11-15 10:02:45 -08:00
Pytal 44ec2b55e7
Merge pull request #2118 from nextcloud/enh/app-nav-data-id
enh: Add unique DOM identifiers for nav entries
2023-11-15 10:01:42 -08:00
Christopher Ng d8f41242bd enh: Add unique DOM identifiers for nav entries
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-15 17:48:07 +00:00
Louis cd41849b4d
Merge pull request #2128 from nextcloud/pulsejet/crash-fix-1
metadata: fix crash when datetime has invalid format
2023-11-14 17:53:42 +01:00
Varun Patil d724e7ac1e metadata: fix crash when datetime has invalid format
For any reason if the date time is not in the correct format, the
entire scan process crashed.

Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2023-11-13 19:25:44 -08:00
Nextcloud bot 31d7734f2c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-14 01:24:36 +00:00
Louis 628fd822d9
Merge pull request #2127 from nextcloud/artonge/feat/live_photos
Add overlay on live photo
2023-11-13 18:40:25 +01:00
Louis Chemineau b3161a104f
Add overlay on live photo
And hide the .mov file

Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-13 17:58:05 +01:00
Louis 2340fc3a05
Merge pull request #2125 from nextcloud/artonge/sort_by_taken_date
Use original date time to order files in UI
2023-11-13 15:26:09 +01:00
nextcloud-command 7a2c013177 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-13 11:16:29 +00:00
Louis Chemineau b43050dc86
Use original date time to order files in UI
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-13 12:06:04 +01:00
Louis Chemineau 38c1be55f8
Generate original date time for video files too
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-13 12:05:21 +01:00
Maxence Lange 951dacafdd
Merge pull request #2119 from nextcloud/fix/2117/quick-fix-init-metadata
init metadata
2023-11-13 08:38:01 -01:00
Nextcloud bot bf5b40c96a
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-13 01:22:37 +00:00
Nextcloud bot 2f77c319bf
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-12 01:24:02 +00:00
Nextcloud bot 8a39fc3545
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-11 01:20:08 +00:00
Maxence Lange b9a42e66d4 init metadata on boot 2023-11-10 18:38:38 -01:00
Nextcloud bot 0847cbc56c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-10 01:21:27 +00:00
Louis d54e672fdb
Merge pull request #2115 from nextcloud/artonge/feat/display_exif_data
Display EXIF data
2023-11-10 00:46:30 +01:00
Louis Chemineau 925cf21d1b
Fix psalm
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 23:37:24 +01:00
Louis Chemineau a6902c17d9
Fix psalm
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 18:29:41 +01:00
Louis Chemineau d248160aec
Compile assets
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 18:27:16 +01:00
Louis Chemineau 9ba51444c0
Fix eslint
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 15:35:32 +01:00
Louis Chemineau 88f9312750
Create photos sidebar tab
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 15:26:02 +01:00
Louis Chemineau 5d5bcee6a6
Do not flatten deep objects
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 15:25:51 +01:00
Louis Chemineau 5c46f44301
Declare /photos endpoints to allow refresh
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 15:25:51 +01:00
Louis 03ea178777
Merge pull request #2104 from nextcloud/artonge/feat/use_new_metadata_api
Use new metadata API for providers
2023-11-09 15:05:58 +01:00
Louis Chemineau 52d0983322
Fix psalm
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 14:51:38 +01:00
Louis Chemineau 084d748514
Update nextcloud/ocp
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 13:17:12 +01:00
Louis Chemineau a87c19ee24
Use new metadata API for providers
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 13:17:12 +01:00
Louis Chemineau e08724d368
Fix psalm
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 11:57:48 +01:00
Louis Chemineau b7337588dd
Update nextcloud/ocp
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 11:50:15 +01:00
Louis Chemineau c1e561407a
Use new metadata API for providers
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-09 11:50:14 +01:00
Simon L 5edd0b76d0
Merge pull request #2111 from nextcloud/enh/noid/update-vue-beta.9
update vue to 8.0.0-beta.9
2023-11-01 18:30:38 +01:00
Nextcloud bot 003610847d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-01 01:26:23 +00:00
nextcloud-command 6a9802ca7c chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-10-31 16:05:41 +00:00
Simon L 18cd990f19 fix ESlint
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-31 16:18:09 +01:00
nextcloud-command 6e216fae18 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-10-31 15:01:25 +00:00
root 2563e7bd29 update vue to 8.0.0-beta.9
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-31 15:25:39 +01:00
Nextcloud bot 4fd475d84c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-30 01:22:37 +00:00
Nextcloud bot 829f7c6862
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-28 01:24:57 +00:00
Nextcloud bot fc53060fbd
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-27 01:24:43 +00:00
Nextcloud bot ca3b4512a9
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-26 01:24:51 +00:00
Louis 5dd5af6323
Merge pull request #2103 from nextcloud/artonge/fix/available_action_public_album_photos
Filter out some permission for public albums
2023-10-25 21:26:13 +02:00
Louis Chemineau f0aae14c83
Filter out some permission for public albums
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-10-25 16:17:26 +02:00
Nextcloud bot e7243b21c8
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-25 01:41:01 +00:00
Nextcloud bot 5f3f83af93
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-24 01:24:53 +00:00
Grigorii K. Shartsev c76a8bd08e
Merge pull request #2099 from nextcloud/fix/new-album-layout
Fix new album form layout
2023-10-23 14:09:55 +05:00
Grigorii K. Shartsev 7562a46910 chore(assets): Re-compile assets
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2023-10-23 10:35:50 +02:00
Grigorii K. Shartsev f393de3e29 fix: adjust new album form layout
- Remove incorrect `<label>`
- Set icon size 20px
- Fix buttons margin

Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2023-10-23 10:33:39 +02:00
Grigorii K. Shartsev fb96c79144
Merge pull request #2098 from nextcloud/fix/show-settings-button
fix: open settings button
2023-10-23 13:08:06 +05:00
nextcloud-command f361649f01 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-10-21 15:07:47 +00:00
Grigorii K. Shartsev cfe9479901 chore(assets): Re-compile assets
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2023-10-21 16:53:35 +02:00
Grigorii K. Shartsev 29a41260ed fix: use button for show settings instead of nav item
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2023-10-21 16:15:06 +02:00
dependabot[bot] d96a87788e
Merge pull request #2096 from nextcloud/dependabot/npm_and_yarn/babel/traverse-7.23.2 2023-10-19 11:19:38 +00:00
dependabot[bot] d52e520872
Chore(deps-dev): Bump @babel/traverse from 7.22.5 to 7.23.2
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.22.5 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-19 09:27:34 +00:00
Nextcloud bot c1b6e21af9
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-18 01:50:11 +00:00
Julia Kirschenheuter cd573540e2
Merge pull request #2087 from nextcloud/fix/36965-fix-fit-of-buttons-on-modal
Fix buttons on new album modal window
2023-10-17 17:03:17 +02:00
julia.kirschenheuter b3a3df5470 Fix buttons on new album modal window
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-10-17 14:46:06 +00:00
Louis 00484696b5
Merge pull request #2094 from nextcloud/pulsejet/fix-rgcs-folder
perf: make geoNameFolder lazy
2023-10-17 11:08:00 +02:00
Varun Patil 783888ed66 perf: make geoNameFolder lazy
This class gets injected in DAV and the folder is fetched
without ever being used, causing some useless queries, even
for completely unrelated DAV requests.

Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2023-10-16 17:45:27 -07:00
Louis 3502b1d40c
Merge pull request #2086 from nextcloud/fix/36965-fix-width-of-action-buttons-in-header
Reduce width on title and content for header navigation
2023-10-16 13:03:09 +02:00
julia.kirschenheuter ba4576c104 Reduce width on title and content for header navigation
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-10-16 10:45:39 +00:00
Nextcloud bot 7432abf3ad
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-15 01:24:01 +00:00
Nextcloud bot 8c10d884cc
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-12 01:22:37 +00:00
Nextcloud bot 2324087e34
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-11 01:29:01 +00:00
Nextcloud bot 4cb28e6473
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-07 02:14:45 +00:00
Louis 1ca8c4c5e0
Merge pull request #2060 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.13
Chore(deps-dev): Bump phpunit/phpunit from 9.6.10 to 9.6.13
2023-10-04 18:28:51 +02:00
Louis Chemineau 71c08cb5fc
Add workflow for other DBs
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-10-04 18:11:18 +02:00
Louis 59c58345b7
Merge pull request #2000 from nextcloud/dependabot/npm_and_yarn/vue-material-design-icons-5.2.0
Chore(deps): Bump vue-material-design-icons from 5.1.2 to 5.2.0
2023-10-04 16:26:48 +02:00
dependabot[bot] 09edaaa0bc Chore(deps): Bump vue-material-design-icons from 5.1.2 to 5.2.0
Bumps [vue-material-design-icons](https://github.com/robcresswell/vue-material-design-icons) from 5.1.2 to 5.2.0.
- [Release notes](https://github.com/robcresswell/vue-material-design-icons/releases)
- [Changelog](https://github.com/robcresswell/vue-material-design-icons/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/robcresswell/vue-material-design-icons/compare/5.1.2...5.2.0)

---
updated-dependencies:
- dependency-name: vue-material-design-icons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-04 16:16:09 +02:00
Louis 5d35da70c2
Merge pull request #2071 from nextcloud/dependabot/npm_and_yarn/postcss-8.4.31
Chore(deps-dev): Bump postcss from 8.4.27 to 8.4.31
2023-10-04 14:48:41 +02:00
dependabot[bot] e721c6af64
Chore(deps-dev): Bump postcss from 8.4.27 to 8.4.31
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.27 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.27...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-04 12:20:54 +00:00
Louis 07c30e5902
Merge pull request #2001 from nextcloud/dependabot/npm_and_yarn/cypress-wait-until-2.0.1
Chore(deps-dev): Bump cypress-wait-until from 1.7.2 to 2.0.1
2023-10-04 14:19:34 +02:00
dependabot[bot] 04238f5ae3 Chore(deps-dev): Bump cypress-wait-until from 1.7.2 to 2.0.1
Bumps [cypress-wait-until](https://github.com/NoriSte/cypress-wait-until) from 1.7.2 to 2.0.1.
- [Release notes](https://github.com/NoriSte/cypress-wait-until/releases)
- [Changelog](https://github.com/NoriSte/cypress-wait-until/blob/master/release.config.js)
- [Commits](https://github.com/NoriSte/cypress-wait-until/commits/v2.0.1)

---
updated-dependencies:
- dependency-name: cypress-wait-until
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-04 12:14:49 +02:00
Nextcloud bot 9fe8752c9e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-03 01:23:18 +00:00
dependabot[bot] 6b01dce7cd
Merge pull request #2068 from nextcloud/dependabot/npm_and_yarn/tslib-2.6.2 2023-09-30 03:41:31 +00:00
dependabot[bot] 1f07aa576f
Chore(deps-dev): Bump tslib from 2.5.0 to 2.6.2
Bumps [tslib](https://github.com/Microsoft/tslib) from 2.5.0 to 2.6.2.
- [Release notes](https://github.com/Microsoft/tslib/releases)
- [Commits](https://github.com/Microsoft/tslib/compare/2.5.0...v2.6.2)

---
updated-dependencies:
- dependency-name: tslib
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-30 01:19:00 +00:00
Nextcloud bot 23aaf75943
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-28 01:24:09 +00:00
Louis b2886c3d91
Merge pull request #2064 from nextcloud/artonge/deps/audit/master/sept_2023
Run npm audit fix
2023-09-27 11:22:33 +02:00
Louis Chemineau 39f28491bf
Run npm audit fix
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-09-27 11:02:58 +02:00
Nextcloud bot 42f18b224f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-27 01:23:46 +00:00
dependabot[bot] afdd4a1b6a Chore(deps-dev): Bump phpunit/phpunit from 9.6.10 to 9.6.13
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.10 to 9.6.13.
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.13/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.10...9.6.13)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-26 23:49:10 +02:00
Louis 25137effc1
Merge pull request #2054 from nextcloud/artonge/bump/cypress/v13
Bump cypress to v13
2023-09-25 18:12:24 +02:00
Louis Chemineau 53d1e08d08
Fix wait for request logic in e2e tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-09-25 17:04:37 +02:00
Nextcloud bot 3ab3c0accd
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-24 01:24:26 +00:00
Louis Chemineau 0f0cd60976
Bump cypress to v13
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-09-21 11:15:44 +02:00
Louis c1652200a5
Merge pull request #2053 from nextcloud/artonge/fix/fix_preview_in_insecure_env
Wrap cache query ni a try/catch
2023-09-20 12:28:09 +02:00
Louis Chemineau 10121175b8
Wrap cache query ni a try/catch
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-09-20 10:44:02 +02:00
Louis fc3c7d6e78
Merge pull request #2052 from nextcloud/artonge/recycle_dom_element_in_cirtual_scrolling
Recycle DOM elements in virtual scrolling
2023-09-20 10:28:50 +02:00
Nextcloud bot 9c00f9be69
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-20 01:24:04 +00:00
Louis Chemineau 36337f57e2
Recycle DOM elements in virtual scrolling
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-09-19 14:18:55 +02:00
Nextcloud bot b232711d12
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-19 01:20:31 +00:00
Nextcloud bot 7307706163
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-17 01:23:03 +00:00
Nextcloud bot eee46b7a76
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-16 01:23:16 +00:00
Louis d07560b724
Merge pull request #2049 from nextcloud/artonge/fix/translations
Use t for translations
2023-09-15 12:42:07 +02:00
Louis Chemineau a8c278c46e
Use t for translations
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-09-15 12:13:14 +02:00
Nextcloud bot 6884f4d3de
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-13 01:21:02 +00:00
dependabot[bot] 618328d406
Merge pull request #2045 from nextcloud/dependabot/npm_and_yarn/vue/vue2-jest-29.2.6 2023-09-09 04:28:34 +00:00
dependabot[bot] 32ebe06a72
Chore(deps-dev): Bump @vue/vue2-jest from 29.2.4 to 29.2.6
Bumps [@vue/vue2-jest](https://github.com/vuejs/vue-jest) from 29.2.4 to 29.2.6.
- [Release notes](https://github.com/vuejs/vue-jest/releases)
- [Commits](https://github.com/vuejs/vue-jest/compare/v29.2.4...v29.2.6)

---
updated-dependencies:
- dependency-name: "@vue/vue2-jest"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-09 02:37:47 +00:00
Nextcloud bot 12f98ba76f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-31 01:31:50 +00:00
Andy Scherzinger c5cae7223b
Merge pull request #2020 from nextcloud/deps/nextcloud/vue-8.0.0-beta.3
Upgrade @nextcloud/vue to v8 beta
2023-08-29 19:41:38 +02:00
Christopher Ng ecd731cf71 chore: compile assets
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-08-29 17:28:55 +00:00
Christopher Ng da3d19e1fa chore: Remove unused label visible prop
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-08-29 10:11:34 -07:00
Christopher Ng c6679c6e87 chore: Migrate to new @nextcloud/vue API
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-08-29 10:11:34 -07:00
Christopher Ng 784aa9eb52 chore(deps): Upgrade @nextcloud/vue to v8 beta
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-08-29 10:11:34 -07:00
Louis ac0d5d078e
Merge pull request #2034 from nextcloud/techdebt/noid/user-IThrottler-interface-for-DI
techdebt(DI): Use public IThrottler interface which exists since 25
2023-08-28 16:43:12 +02:00
Joas Schilling 1c9229df56
techdebt(DI): Use public IThrottler interface which exists since Nextcloud 25
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-08-28 15:54:36 +02:00
Nextcloud bot f09f78c901
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-10 01:23:13 +00:00
dependabot[bot] d8404ed341
Merge pull request #1996 from nextcloud/dependabot/npm_and_yarn/vue/test-utils-1.3.6 2023-08-09 10:48:47 +00:00
dependabot[bot] 150fb055a3
Chore(deps-dev): Bump @vue/test-utils from 1.3.3 to 1.3.6
Bumps [@vue/test-utils](https://github.com/vuejs/test-utils) from 1.3.3 to 1.3.6.
- [Release notes](https://github.com/vuejs/test-utils/releases)
- [Commits](https://github.com/vuejs/test-utils/commits)

---
updated-dependencies:
- dependency-name: "@vue/test-utils"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-09 09:52:14 +00:00
John Molakvoæ bb1b8d27d3
chore(dependabot): remove unsupported versions
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2023-08-09 11:50:51 +02:00
dependabot[bot] 7de4c2ffb3
Merge pull request #1983 from nextcloud/dependabot/npm_and_yarn/autoprefixer-10.4.14 2023-08-09 09:46:23 +00:00
dependabot[bot] 1d80f4cdf4 Chore(deps-dev): Bump autoprefixer from 10.4.13 to 10.4.14
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.13 to 10.4.14.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.13...10.4.14)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-09 11:33:15 +02:00
dependabot[bot] 5735412f8a
Merge pull request #1954 from nextcloud/dependabot/npm_and_yarn/word-wrap-1.2.4 2023-08-09 08:20:39 +00:00
dependabot[bot] e074f4976c
Chore(deps-dev): Bump word-wrap from 1.2.3 to 1.2.4
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-09 10:10:39 +02:00
John Molakvoæ 582334774b
Merge pull request #1944 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.10 2023-08-09 10:02:00 +02:00
John Molakvoæ 49d03cb7db
Merge pull request #1988 from nextcloud/dependabot/npm_and_yarn/@nextcloud 2023-08-09 10:01:46 +02:00
John Molakvoæ d5d99257f6
chore(deps): upgrade `@nextcloud` family
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-08-09 09:48:05 +02:00
Nextcloud bot 674a3c0369
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-09 01:47:26 +00:00
John Molakvoæ 7c2905b609
Merge pull request #1839 from nextcloud/dependabot/composer/nextcloud/coding-standard-1.1.1 2023-08-08 17:48:15 +02:00
dependabot[bot] 435fd992e8
Chore(deps-dev): Bump nextcloud/coding-standard from 1.0.0 to 1.1.1
Bumps [nextcloud/coding-standard](https://github.com/nextcloud/coding-standard) from 1.0.0 to 1.1.1.
- [Release notes](https://github.com/nextcloud/coding-standard/releases)
- [Changelog](https://github.com/nextcloud/coding-standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/coding-standard/compare/v1.0.0...v1.1.1)

---
updated-dependencies:
- dependency-name: nextcloud/coding-standard
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-08 16:57:08 +02:00
John Molakvoæ add39f5ac1
Merge pull request #1982 from nextcloud/dependabot/npm_and_yarn/qs-6.11.2 2023-08-08 16:19:46 +02:00
John Molakvoæ bdc1077e52
Merge pull request #1984 from nextcloud/dependabot/npm_and_yarn/postcss-loader-7.3.3 2023-08-08 16:19:33 +02:00
John Molakvoæ adadb2e1cc
Merge pull request #1985 from nextcloud/dependabot/npm_and_yarn/nextcloud/initial-state-2.1.0 2023-08-08 16:19:24 +02:00
dependabot[bot] 7ed650d4e5
Chore(deps): Bump qs from 6.11.0 to 6.11.2
Bumps [qs](https://github.com/ljharb/qs) from 6.11.0 to 6.11.2.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.11.0...v6.11.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-08 14:18:50 +00:00
John Molakvoæ 830a4b3383
Merge pull request #1938 from nextcloud/automated/noid/master-fix-npm-audit 2023-08-08 16:17:44 +02:00
Nextcloud bot 5173b50537
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-07 01:27:13 +00:00
nextcloud-command 61197e8a80 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-08-06 03:39:27 +00:00
dependabot[bot] eb9645c007
Chore(deps): Bump @nextcloud/initial-state from 2.0.0 to 2.1.0
Bumps [@nextcloud/initial-state](https://github.com/nextcloud/nextcloud-initial-state) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/nextcloud/nextcloud-initial-state/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-initial-state/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-initial-state/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/initial-state"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-05 03:22:18 +00:00
dependabot[bot] 4b2318ccfc
Chore(deps-dev): Bump postcss-loader from 7.0.2 to 7.3.3
Bumps [postcss-loader](https://github.com/webpack-contrib/postcss-loader) from 7.0.2 to 7.3.3.
- [Release notes](https://github.com/webpack-contrib/postcss-loader/releases)
- [Changelog](https://github.com/webpack-contrib/postcss-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/postcss-loader/compare/v7.0.2...v7.3.3)

---
updated-dependencies:
- dependency-name: postcss-loader
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-05 03:21:58 +00:00
Nextcloud bot 6839196c58
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-05 01:26:22 +00:00
Nextcloud bot da81e0e940
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-04 01:27:16 +00:00
Nextcloud bot 5d2b2da5a8
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-02 01:49:58 +00:00
Nextcloud bot 00515372de
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-01 01:26:01 +00:00
Nextcloud bot 9bb280f15b
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-28 01:29:05 +00:00
Marcel Klehr c3a9c3697e
Merge pull request #1881 from nextcloud/enh/use-faces-props-in-overview
enh(faces): Avoid O(n) API calls on faces overview
2023-07-27 14:16:26 +02:00
Marcel Klehr c0bfa53234 compile js
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-07-27 14:05:21 +02:00
Marcel Klehr fbbfd6af91 Compile frontend js files
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-07-27 13:54:21 +02:00
Marcel Klehr 7750c16503 fix(eslint): Fix lint errors
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-07-27 13:52:32 +02:00
Marcel Klehr 21703793ef enh(faces): Avoid O(n) API calls on faces overview
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-07-27 13:52:32 +02:00
Nextcloud bot 95dd5eabc0
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-26 01:52:10 +00:00
Nextcloud bot d86522d144
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-19 01:22:07 +00:00
Nextcloud bot 19ea8810f9
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-17 01:19:06 +00:00
Nextcloud bot 33a4e23f80
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-16 01:18:43 +00:00
dependabot[bot] 13ac8a5c77
Chore(deps-dev): Bump phpunit/phpunit from 9.6.9 to 9.6.10
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.9 to 9.6.10.
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.10/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.9...9.6.10)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-15 01:00:57 +00:00
Nextcloud bot fab4db90d6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-14 01:24:09 +00:00
Nextcloud bot 7b328567b9
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-13 01:25:03 +00:00
Nextcloud bot fea5021f2b
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-12 01:16:04 +00:00
Nextcloud bot d83a3adb6f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-11 01:27:03 +00:00
Nextcloud bot b977444509
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-10 01:24:10 +00:00
Nextcloud bot 701b3581a2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-09 01:29:37 +00:00
Nextcloud bot 38d7a63a6b
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-07 01:21:09 +00:00
Nextcloud bot afb697b575
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-06 01:24:00 +00:00
Louis 6dea250f6b
Merge pull request #1895 from nextcloud/artonge/feat/add_unselect_all
Add unselect all button
2023-07-05 22:12:29 +02:00
Louis Chemineau 53194d9b12 Add unselect all
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-07-05 14:46:09 +02:00
Louis 0c9284239f
Merge pull request #1916 from nextcloud/artonge-patch-1
Create pr-feedback.yml
2023-07-05 14:03:52 +02:00
Nextcloud bot ebffb60a89
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-05 01:20:14 +00:00
Louis d4ea11f51e
Merge pull request #1912 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2023-07-04 16:42:14 +02:00
Nextcloud bot 81389e903c
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-04 01:22:33 +00:00
Louis 5d10470079
Create pr-feedback.yml
Signed-off-by: Louis <6653109+artonge@users.noreply.github.com>
2023-07-03 10:50:11 +02:00
nextcloud-command 89045b9f2b chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-07-02 03:29:42 +00:00
Nextcloud bot 1b2ceb66c6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-01 01:20:35 +00:00
Arthur Schiwon 06a2b99dd1
Merge pull request #1770 from nextcloud/enh/noid/systemtags-perf
Adapt to SystemTags optimizations on server
2023-06-30 14:17:18 +02:00
John Molakvoæ 6793200b12
Merge pull request #1907 from nextcloud/feat/workflow-auto-update-cypress.yml 2023-06-29 23:00:30 +02:00
John Molakvoæ 51d36d602a
fix: remove cypress component test from template
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2023-06-29 22:39:23 +02:00
Nextcloud bot e7731bfa9e Updating cypress.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-29 20:19:26 +00:00
Arthur Schiwon 56f71fb346
build: js assets
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-28 21:21:24 +02:00
Arthur Schiwon 7a7fb0dae5
style: cleanup and remove duplicated code
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-28 21:21:23 +02:00
Arthur Schiwon 0f77d3e34f
chore: satisfy linter
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-28 21:12:46 +02:00
Arthur Schiwon a1a5cc15fb
fix: remove now unneeded tags-count initial state
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-28 21:12:46 +02:00
Arthur Schiwon 49bc8faced
Adapt to SystemTags optimizations on server
Essentially, the tags overview fetches all info from systemtags-current,
which contains all necessary data. Only on tags details view, files are
actually being requested per REPORT.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-28 21:12:46 +02:00
dependabot[bot] 76fdc794db
Merge pull request #1892 from nextcloud/dependabot/composer/phpunit/phpunit-9.6.9 2023-06-28 14:15:34 +00:00
dependabot[bot] 5cc148191a Chore(deps-dev): Bump phpunit/phpunit from 9.6.8 to 9.6.9
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.8 to 9.6.9.
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.9/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.8...9.6.9)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-28 15:00:32 +02:00
Louis 4ad931048b
Merge pull request #1557 from nextcloud/dependabot/npm_and_yarn/wait-on-7.0.1
Bump wait-on from 6.0.1 to 7.0.1
2023-06-28 14:15:00 +02:00
dependabot[bot] 9d394b294f
Bump wait-on from 6.0.1 to 7.0.1
Bumps [wait-on](https://github.com/jeffbski/wait-on) from 6.0.1 to 7.0.1.
- [Release notes](https://github.com/jeffbski/wait-on/releases)
- [Commits](https://github.com/jeffbski/wait-on/compare/v6.0.1...v7.0.1)

---
updated-dependencies:
- dependency-name: wait-on
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-28 12:01:32 +00:00
Louis 8ab7e98cbb
Merge pull request #1904 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2023-06-28 10:26:37 +02:00
nextcloud-command 6a2aefc19b chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-28 10:13:52 +02:00
Nextcloud bot 52f32ef792
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-28 01:25:34 +00:00
Louis 0800408332
Merge pull request #1906 from nextcloud/1675-correct-aria-label-on-create-album-button
Match visible text with aria-labels
2023-06-27 14:20:52 +02:00
Nextcloud bot 9e96f3497f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-27 01:30:40 +00:00
fenn-cs faa2dd0262 Match visible text with aria-labels
When the visible button label does not match the aria-label button
activation via voice input cannot be guaranteed.

Resolves : https://github.com/nextcloud/photos/issues/1675

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-06-26 17:16:39 +00:00
Nextcloud bot b90d48e730
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-26 01:26:23 +00:00
Nextcloud bot 7878c7a7b9
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-25 01:24:44 +00:00
Nextcloud bot 71c3a004f6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-24 01:20:25 +00:00
Nextcloud bot af7ecfddbd
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-23 01:57:39 +00:00
Nextcloud bot 6db50b6a6e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-22 01:25:19 +00:00
Louis 2122358e82
Merge pull request #1898 from nextcloud/automated/update-engines/default
chore: update node engines to next LTS
2023-06-21 17:24:02 +02:00
Louis 7c5b0279d8
Merge pull request #1882 from nextcloud/artonge/split_sections
Split sections in independent lists
2023-06-21 17:22:58 +02:00
Louis Chemineau 296e0cef64 Compile assets
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-21 16:46:58 +02:00
Louis Chemineau 54d6f3f3cd Improve title of FilePicker's modal
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-21 16:15:00 +02:00
Louis Chemineau 2ae1b368e9 Simplify FilesListViewer's computed properties
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-21 16:15:00 +02:00
Louis Chemineau e3ee0deb08 Use nav, ul and li for FilePicker's sidebar
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-21 16:15:00 +02:00
Louis Chemineau 538d9b2731 Harmonize "Collaborative albums" titles
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-21 16:15:00 +02:00
Louis Chemineau 5d111a18cb Split sections in independent lists
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-21 16:15:00 +02:00
John Molakvoæ d6aff35e03
chore: update node engines to next LTS (node 20 / npm 9)
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-06-21 12:32:17 +02:00
Josh Richards f1f2bf9292
Add links to add-ons often associated with Photos
Fixes #1483

Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2023-06-20 17:05:44 -04:00
Nextcloud bot d7da7987eb
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-20 01:17:49 +00:00
Louis ef5d4010bb
Merge pull request #1876 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2023-06-18 10:20:45 +02:00
nextcloud-command fcc3216628 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-06-18 03:25:11 +00:00
Nextcloud bot f722e42049
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-17 01:11:34 +00:00
Nextcloud bot f6473df6f4
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-16 01:11:46 +00:00
Louis 7580ae57aa
Merge pull request #1888 from nextcloud/artonge/fix/reset_selection_state
Reset selection state in route change
2023-06-15 16:26:14 +02:00
Louis Chemineau 490b2238c0 Reset selection state in route change
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-15 13:55:08 +02:00
Nextcloud bot 8c3020b9fc
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-14 01:14:57 +00:00
Nextcloud bot 04ab09b96f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-13 01:11:54 +00:00
Nextcloud bot 54772dd414
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-12 01:10:33 +00:00
Nextcloud bot 19d1fe464d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-11 01:31:26 +00:00
Nextcloud bot 66583f0852
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-10 01:10:11 +00:00
Louis 8b91aa11ae
Merge pull request #1621 from nextcloud/artonge/debt/consolidate_fontend
Consolidate fontend logic
2023-06-09 09:07:52 +02:00
Nextcloud bot f080e43d31
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-09 01:14:21 +00:00
Louis Chemineau a10d2a9501 Compile assets
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-09 00:16:23 +02:00
Louis Chemineau 5d582bb29b Use collection for SharedAlbums
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-09 00:14:38 +02:00
Louis Chemineau 05a0752e60 Use collection for AlbumPicker
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-09 00:14:38 +02:00
Louis Chemineau dedf1d13bb Switch publicAlbums to collections helpers and improve typing
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-09 00:14:38 +02:00
Louis Chemineau 201e915fae Switch albums to collections helpers and improve typing
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-09 00:14:38 +02:00
Louis Chemineau 64497715de Fully type Collection components
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-09 00:14:38 +02:00
Louis 63ec265f49
Merge pull request #1867 from nextcloud/artonge/fix/sementic_list
Make file list semantically correct
2023-06-09 00:03:10 +02:00
Louis Chemineau 3d06e68e9d Make file list semantically correct
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-08 23:50:11 +02:00
Louis ffe9d42a5e
Merge pull request #1862 from nextcloud/artonge/fix/upload_progress_bar_position_in_albums
Prevent progress bar overflow when uploading in album content
2023-06-08 13:16:11 +02:00
Louis Chemineau 7405dd5572 Prevent progress bar overflow when uploading in album content
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-08 11:34:58 +02:00
Nextcloud bot 7fdb9c8356
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-08 01:11:59 +00:00
Nextcloud bot 804abe96dc
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-07 01:12:40 +00:00
Louis 939d3d2380
Merge pull request #1856 from nextcloud/artonge/fix/reload_view_on_layout_change
Update view when layout setting changes
2023-06-06 21:05:19 +02:00
Louis Chemineau 5650701bc6 Update view when layout setting changes
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-06 17:32:56 +02:00
Louis 6803dc4d33
Merge pull request #1826 from nextcloud/artonge/tests/add_more_e2e_tests
Add more e2e tests
2023-06-06 12:17:39 +02:00
Louis Chemineau 93806f4b63 Update cypress workflow
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-06 11:17:34 +02:00
Louis Chemineau 9f81e25f22 Only visit Photos' root view in 2e2 tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-06 11:17:34 +02:00
Louis Chemineau fd4e609cd8 Increase timeout
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-06 11:17:34 +02:00
Louis Chemineau a92220d90f Wait for some request to finish in tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-06 11:17:23 +02:00
Louis Chemineau 280f845ee6 Compile assets
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-06 11:17:22 +02:00
Louis Chemineau 0b3266c9b5 Do not retry tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-06 11:17:11 +02:00
Louis Chemineau f6a1432a39 Only run components testing in component CI step
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:50 +02:00
Louis Chemineau 412273357a Prevent deletion when album is receive from group share
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:50 +02:00
Louis Chemineau ce1bd6586b Test public links
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:50 +02:00
Louis Chemineau 7e8666fcfc List shared albums in album picker
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:50 +02:00
Louis Chemineau 1abc322c08 Use NcSelect for collaborator form
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:50 +02:00
Louis Chemineau 5e50009b44 Test adding files to a shared album from timeline
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:50 +02:00
Louis Chemineau fedd3aebcf Remove user from collaborators when it is deleted
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:50 +02:00
Louis Chemineau 884d8bbc02 Add more shared albums tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:50 +02:00
Louis Chemineau d51470e4ab Test if multiple collaborators work
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:49 +02:00
Louis Chemineau 06ea103f0a Add test to test if a delete file break an album
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:49 +02:00
Louis Chemineau 1d8058a50c Support browsers that do not support caches
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:49 +02:00
Louis Chemineau 9cf35eca57 Add jest's types
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 18:12:49 +02:00
Louis e6ea82d1c6
Merge pull request #1832 from nextcloud/enhancement/unassigned-faces
enh(faces): Implement UnassignedFaces view
2023-06-05 18:06:46 +02:00
Louis 6c11b606d6
Merge pull request #1837 from nextcloud/fix-query-for-photo-albums
fix: use owner instead of owner_id to delete photos by owner
2023-06-05 14:17:21 +02:00
Daniel Kesselberg 8a410adc25
fix: use owner instead of owner_id to delete photos by owner
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-06-02 12:17:54 +02:00
Louis b4109cc612
Merge pull request #1831 from nextcloud/automated/update-workflows
chore: update workflows from templates
2023-06-01 14:32:11 +02:00
John Molakvoæ d0c035f76a
chore: update workflows from templates
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-06-01 13:07:09 +02:00
Nextcloud bot 119fc31443
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-01 01:11:14 +00:00
Nextcloud bot 608e37441d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-31 01:11:26 +00:00
nextcloud-command ad970ca93d Compile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-30 11:19:15 +00:00
Nextcloud bot 90d1fb9b73
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-30 01:09:55 +00:00
Marcel Klehr 8d999721a5 enh(faces): Implement UnassignedFaces view
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-05-28 15:33:22 +02:00
Nextcloud bot 63d87b03a1
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-28 01:12:47 +00:00
Nextcloud bot 23a2960624
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-27 01:11:25 +00:00
Nextcloud bot ad28891439
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-26 01:11:20 +00:00
Louis 1f48b3dbcd
Merge pull request #1829 from nextcloud/artonge/update_nc/lint
Update @nc/eslint-config and apply linting rules
2023-05-25 18:48:35 +02:00
Louis Chemineau 4103fbdf5d Apply linting rules
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-05-25 12:47:39 +02:00
Arthur Schiwon 57f9739060
Merge pull request #1828 from nextcloud/enh/a11y-photos-dir
Accessible Photos directory settings
2023-05-25 11:53:43 +02:00
Christopher Ng 10f33ab5c5 Accessible Photos directory settings
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-25 02:20:45 +00:00
Nextcloud bot 2636165314
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-25 01:14:53 +00:00
Louis 67a355b095
Merge pull request #1758 from nextcloud/automated/noid/master-update-nextcloud-ocp
[master] Update nextcloud/ocp dependency
2023-05-24 10:49:55 +02:00
Louis c0c6ef1fa6
Merge pull request #1821 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2023-05-24 10:49:07 +02:00
Nextcloud bot c6b5daa424
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-23 01:08:12 +00:00
Louis f3c095b396
Merge pull request #1823 from nextcloud/pulsejet/fix-link-del
fix: properly handle public link share deletion
2023-05-22 23:44:47 +02:00
Varun Patil ed48a3f3ca fix: properly handle public link share deletion
IShare::getSharedWith returns null for public links, and so
AlbumMapper::removeFileWithOwner throws a TypeError (500)

Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2023-05-22 14:34:39 -07:00
Nextcloud bot a88446c916
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-22 01:08:17 +00:00
nextcloud-command a8589031ae chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-05-21 03:38:30 +00:00
nextcloud-command c6e4d015d4 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2023-05-21 02:58:05 +00:00
Nextcloud bot de859998d7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-21 01:07:53 +00:00
Nextcloud bot 432d5afd65
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-18 01:08:30 +00:00
Louis 893e03d74c
Merge pull request #1807 from nextcloud/update-master-version
feat(deps): Add Nextcloud 28 support on master
2023-05-18 00:03:50 +02:00
Louis 6631d395f4 Add stable27 to npm-audit-fix workflow
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-05-17 16:14:00 +02:00
Joas Schilling 4fa845218a
feat(deps): Add Nextcloud 28 support on master
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-17 15:17:20 +02:00
560 changed files with 40525 additions and 48419 deletions

View File

@ -30,7 +30,23 @@ updates:
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable25
target-branch: stable29
labels:
- "3. to review"
- "dependencies"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable28
labels:
- "3. to review"
- "dependencies"
@ -46,23 +62,7 @@ updates:
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable24
labels:
- "3. to review"
- "dependencies"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable23
target-branch: stable27
labels:
- "3. to review"
- "dependencies"

37
.github/workflows/block-merge-eol.yml vendored Normal file
View File

@ -0,0 +1,37 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Block merges for EOL
on: pull_request
permissions:
contents: read
concurrency:
group: block-merge-eol-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-merges-eol:
name: Block merges for EOL branches
# Only run on stableXX branches
if: startsWith( github.base_ref, 'stable')
runs-on: ubuntu-latest
steps:
- name: Download updater config
run: curl https://raw.githubusercontent.com/nextcloud/updater_server/production/config/config.php --output config.php
- name: Set server major version environment
run: |
# retrieve version number from branch reference
server_major=$(echo "${{ github.base_ref }}" | sed -En 's/stable//p')
echo "server_major=$server_major" >> $GITHUB_ENV
- name: Checking if ${{ env.server_major }} is EOL
run: |
php -r 'echo json_encode(require_once "config.php");' | jq --arg version "${{ env.server_major }}" '.stable[$version]["100"].eol // .beta[$version]["100"].eol // "NotEOL"' | grep -q "NotEOL"

View File

@ -3,19 +3,34 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Pull request checks
name: Block merges during freezes
on: pull_request
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: block-merge-freeze-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-merges-during-freeze:
name: Block merges during freezes
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest-low
steps:
- name: Download version.php from ${{ github.base_ref }}
run: curl https://raw.githubusercontent.com/nextcloud/server/${{ github.base_ref }}/version.php --output version.php
- name: Register server reference to fallback to master branch
run: |
server_ref="$(if [ "${{ github.base_ref }}" = "main" ]; then echo -n "master"; else echo -n "${{ github.base_ref }}"; fi)"
echo "server_ref=$server_ref" >> $GITHUB_ENV
- name: Download version.php from ${{ env.server_ref }}
run: curl https://raw.githubusercontent.com/nextcloud/server/${{ env.server_ref }}/version.php --output version.php
- name: Run check
run: cat version.php | grep 'OC_VersionString' | grep -i -v 'RC'

View File

@ -15,23 +15,24 @@ jobs:
arg1: ${{ steps.command.outputs.arg1 }}
arg2: ${{ steps.command.outputs.arg2 }}
head_ref: ${{ steps.comment-branch.outputs.head_ref }}
base_ref: ${{ steps.comment-branch.outputs.base_ref }}
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@e591dbfe838300c007028e1219ca82cc26e8d7c5 # v2.1
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v2
with:
require: write
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@5adcb0bb0f9fb3f95ef05400558bdb3f329ee808 # v2.1.0
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "+1"
reactions: "+1"
- name: Parse command
uses: skjnldsv/parse-command-comment@e9cb9d1df338afed4295a59bbe27b4da53fd38a8 # master
uses: skjnldsv/parse-command-comment@5c955203c52424151e6d0e58fb9de8a9f6a605a1 # v2
id: command
# Init path depending on which command is run
@ -39,13 +40,13 @@ jobs:
id: git-path
run: |
if ${{ startsWith(steps.command.outputs.arg1, '/') }}; then
echo "path=${{ github.workspace }}${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT
echo "path=${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT
else
echo "path=${{ github.workspace }}${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT
echo "path=${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT
fi
- name: Init branch
uses: xt0rted/pull-request-comment-branch@653a7d5ca8bd91d3c5cb83286063314d0b063b8e # v1
uses: xt0rted/pull-request-comment-branch@d97294d304604fa98a2600a6e2f916a84b596dc7 # v1
id: comment-branch
process:
@ -53,8 +54,14 @@ jobs:
needs: init
steps:
- name: Restore cached git repository
uses: buildjet/cache@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
path: .git
key: git-repo
- name: Checkout ${{ needs.init.outputs.head_ref }}
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
fetch-depth: 0
@ -66,52 +73,68 @@ jobs:
git config --local user.name "nextcloud-command"
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # v1.2
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: package-engines-versions
with:
fallbackNode: '^16'
fallbackNpm: '^7'
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
cache: npm
- name: Set up npm ${{ steps.package-engines-versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.package-engines-versions.outputs.npmVersion }}"
- name: Rebase to ${{ needs.init.outputs.base_ref }}
if: ${{ contains(needs.init.outputs.arg1, 'rebase') }}
run: |
git fetch origin ${{ needs.init.outputs.base_ref }}:${{ needs.init.outputs.base_ref }}
git rebase origin/${{ needs.init.outputs.base_ref }}
- name: Install dependencies & build
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: |
npm ci
npm run build --if-present
- name: Commit and push default
if: ${{ needs.init.outputs.arg1 != 'fixup' && needs.init.outputs.arg1 != 'amend' }}
- name: Commit default
if: ${{ !contains(needs.init.outputs.arg1, 'fixup') && !contains(needs.init.outputs.arg1, 'amend') }}
run: |
git add ${{ needs.init.outputs.git_path }}
git commit --signoff -m 'Compile assets'
git push origin ${{ needs.init.outputs.head_ref }}
- name: Commit and push fixup
if: ${{ needs.init.outputs.arg1 == 'fixup' }}
git add ${{ github.workspace }}${{ needs.init.outputs.git_path }}
git commit --signoff -m 'chore(assets): Recompile assets'
- name: Commit fixup
if: ${{ contains(needs.init.outputs.arg1, 'fixup') }}
run: |
git add ${{ needs.init.outputs.git_path }}
git add ${{ github.workspace }}${{ needs.init.outputs.git_path }}
git commit --fixup=HEAD --signoff
git push origin ${{ needs.init.outputs.head_ref }}
- name: Commit and push amend
if: ${{ needs.init.outputs.arg1 == 'amend' }}
- name: Commit amend
if: ${{ contains(needs.init.outputs.arg1, 'amend') }}
run: |
git add ${{ needs.init.outputs.git_path }}
git add ${{ github.workspace }}${{ needs.init.outputs.git_path }}
git commit --amend --no-edit --signoff
git push --force origin ${{ needs.init.outputs.head_ref }}
# Remove any [skip ci] from the amended commit
git commit --amend -m "$(git log -1 --format='%B' | sed '/\[skip ci\]/d')"
- name: Push normally
if: ${{ !contains(needs.init.outputs.arg1, 'rebase') && !contains(needs.init.outputs.arg1, 'amend') }}
run: git push origin ${{ needs.init.outputs.head_ref }}
- name: Force push
if: ${{ contains(needs.init.outputs.arg1, 'rebase') || contains(needs.init.outputs.arg1, 'amend') }}
run: git push --force origin ${{ needs.init.outputs.head_ref }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@5adcb0bb0f9fb3f95ef05400558bdb3f329ee808 # v2.1.0
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "-1"
reactions: "-1"

View File

@ -23,7 +23,7 @@ jobs:
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@5adcb0bb0f9fb3f95ef05400558bdb3f329ee808 # v2.1.0
uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@ -31,18 +31,18 @@ jobs:
reaction-type: "+1"
- name: Checkout the latest code
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase
uses: cirrus-actions/rebase@6e572f08c244e2f04f9beb85a943eb618218714d # 1.7
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@5adcb0bb0f9fb3f95ef05400558bdb3f329ee808 # v2.1.0
uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}

View File

@ -1,38 +1,55 @@
name: Cypress
on:
pull_request:
push:
branches:
- master
- stable*
on: pull_request
concurrency:
group: cypress-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
APP_NAME: photos
BRANCH: ${{ github.base_ref }}
# Adjust APP_NAME if your repository name is different
APP_NAME: ${{ github.event.repository.name }}
# This represents the server branch to checkout.
# Usually it's the base branch of the PR, but for pushes it's the branch itself.
# e.g. 'main', 'stable27' or 'feature/my-feature
# n.b. server will use head_ref, as we want to test the PR branch.
BRANCH: ${{ github.base_ref || github.ref_name }}
jobs:
init:
runs-on: ubuntu-latest
outputs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
env:
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout app
uses: actions/checkout@v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install server dependencies
run: composer install
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
with:
files: "composer.json"
- name: Install composer dependencies
if: steps.check_composer.outputs.files_exists == 'true'
run: composer install --no-dev
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@v2.0
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
fallbackNode: "^14"
fallbackNpm: "^7"
fallbackNode: "^20"
fallbackNpm: "^10"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
cache: "npm"
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
@ -42,11 +59,12 @@ jobs:
run: |
npm ci
TESTING=true npm run build --if-present
- name: Save context
uses: actions/cache@v3
uses: buildjet/cache/save@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
key: cypress-context-${{ github.run_id }}
path: /home/runner/work/photos
path: ./
cypress:
runs-on: ubuntu-latest
@ -55,27 +73,39 @@ jobs:
strategy:
fail-fast: false
matrix:
# run multiple copies of the current job in parallel
containers: ["component", 1, 2]
# Run multiple copies of the current job in parallel
# Please increase the number or runners as your tests suite grows
containers: [1, 2, 3]
name: runner ${{ matrix.containers }}
steps:
- name: Restore context
uses: actions/cache@v3
uses: buildjet/cache/restore@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
fail-on-cache-miss: true
key: cypress-context-${{ github.run_id }}
path: /home/runner/work/photos
path: ./
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ needs.init.outputs.nodeVersion }}
- name: Set up npm ${{ needs.init.outputs.npmVersion }}
run: npm i -g npm@"${{ needs.init.outputs.npmVersion }}"
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@v5
uses: cypress-io/github-action@1b70233146622b69e789ccdd4f9452adc638d25a # v6.6.1
with:
record: true
parallel: true
record: ${{ secrets.CYPRESS_RECORD_KEY && true }}
parallel: ${{ secrets.CYPRESS_RECORD_KEY && true }}
# cypress run type
component: ${{ matrix.containers == 'component' }}
group: ${{ secrets.CYPRESS_RECORD_KEY && env.CYPRESS_GROUP }}
# cypress env
ci-build-id: ${{ github.sha }}-${{ github.run_number }}
tag: ${{ github.event_name }}
ci-build-id: ${{ secrets.CYPRESS_RECORD_KEY && env.CYPRESS_BUILD_ID }}
tag: ${{ secrets.CYPRESS_RECORD_KEY && github.event_name }}
env:
# Needs to be prefixed with CYPRESS_
CYPRESS_BRANCH: ${{ env.BRANCH }}
@ -85,21 +115,23 @@ jobs:
TESTING: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_BUILD_ID: ${{ github.sha }}-${{ github.run_number }}
CYPRESS_GROUP: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }}
- name: Upload snapshots
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
if: always()
with:
name: snapshots_${{ matrix.containers }}
path: cypress/snapshots
- name: Extract NC logs
if: always()
run: docker-compose --project-directory cypress logs > nextcloud.log
if: failure() && matrix.containers != 'component'
run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log
- name: Upload NC logs
uses: actions/upload-artifact@v3
if: always()
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
if: failure() && matrix.containers != 'component'
with:
name: nc_logs_${{ matrix.containers }}
path: nextcloud.log

View File

@ -2,6 +2,9 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Dependabot
@ -21,8 +24,8 @@ concurrency:
jobs:
auto-approve-merge:
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]' || github.actor == 'renovate[bot]'
runs-on: ubuntu-latest-low
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write

View File

@ -3,7 +3,7 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Pull request checks
name: Block fixup and squash commits
on:
pull_request:
@ -24,10 +24,10 @@ jobs:
pull-requests: write
name: Block fixup and squash commits
runs-on: ubuntu-latest
runs-on: ubuntu-latest-low
steps:
- name: Run check
uses: xt0rted/block-autosquash-commits-action@79880c36b4811fe549cfffe20233df88876024e7 # v2
uses: skjnldsv/block-fixup-merge-action@42d26e1b536ce61e5cf467d65fb76caf4aa85acf # v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -6,7 +6,7 @@
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: Lint
name: Lint eslint
on:
pull_request:

View File

@ -6,22 +6,9 @@
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: Lint
name: Lint eslint
on:
pull_request:
paths:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
on: pull_request
permissions:
contents: read
@ -31,24 +18,52 @@ concurrency:
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
lint:
runs-on: ubuntu-latest
name: eslint
needs: changes
if: needs.changes.outputs.src != 'false'
name: NPM lint
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # v1.2
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
fallbackNode: '^16'
fallbackNpm: '^7'
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@ -56,7 +71,25 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: npm ci
- name: Lint
run: npm run lint
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, lint]
if: always()
# This is the summary, we just avoid to rename it so that branch protection rules still match
name: eslint
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi

View File

@ -3,7 +3,7 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint
name: Lint php-cs
on: pull_request
@ -22,13 +22,19 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up php
uses: shivammathur/setup-php@1a18b2267f80291a81ca1d33e7c851fe09e7dfc4 # v2
- name: Get php version
id: versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
- name: Set up php${{ steps.versions.outputs.php-available }}
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: 8.1
php-version: ${{ steps.versions.outputs.php-available }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -3,15 +3,9 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint
name: Lint php
on:
pull_request:
push:
branches:
- main
- master
- stable*
on: pull_request
permissions:
contents: read
@ -21,23 +15,37 @@ concurrency:
cancel-in-progress: true
jobs:
matrix:
runs-on: ubuntu-latest-low
outputs:
php-versions: ${{ steps.versions.outputs.php-versions }}
steps:
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.0.0
php-lint:
runs-on: ubuntu-latest
needs: matrix
strategy:
matrix:
php-versions: [ "8.0", "8.1", "8.2" ]
php-versions: ${{fromJson(needs.matrix.outputs.php-versions)}}
name: php-lint
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@1a18b2267f80291a81ca1d33e7c851fe09e7dfc4 # v2
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -47,7 +55,7 @@ jobs:
summary:
permissions:
contents: none
runs-on: ubuntu-latest
runs-on: ubuntu-latest-low
needs: php-lint
if: always()

View File

@ -3,7 +3,7 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Lint
name: Lint stylelint
on: pull_request
@ -22,17 +22,17 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # v1.2
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
fallbackNode: '^16'
fallbackNpm: '^7'
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@ -40,6 +40,8 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
run: npm ci
- name: Lint

View File

@ -5,23 +5,7 @@
name: Node
on:
pull_request:
paths:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
push:
branches:
- main
- master
- stable*
on: pull_request
permissions:
contents: read
@ -31,23 +15,49 @@ concurrency:
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
build:
runs-on: ubuntu-latest
name: node
needs: changes
if: needs.changes.outputs.src != 'false'
name: NPM build
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # v1.2
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
fallbackNode: '^16'
fallbackNpm: '^7'
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@ -55,6 +65,9 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install dependencies & build
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: |
npm ci
npm run build --if-present
@ -69,3 +82,18 @@ jobs:
git status
git --no-pager diff
exit 1 # make it red to grab attention
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, build]
if: always()
# This is the summary, we just avoid to rename it so that branch protection rules still match
name: node
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.build.result != 'success' }}; then exit 1; fi

View File

@ -9,7 +9,7 @@ on:
workflow_dispatch:
schedule:
# At 2:30 on Sundays
- cron: "30 2 * * 0"
- cron: '30 2 * * 0'
jobs:
build:
@ -18,25 +18,25 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ["main", "master", "stable26", "stable25", "stable24"]
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
name: npm-audit-fix-${{ matrix.branches }}
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: ${{ matrix.branches }}
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@1bdcee71fa343c46b18dc6aceffb4cd1e35209c6 # v1.2
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
fallbackNode: "^16"
fallbackNpm: "^7"
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@ -49,16 +49,18 @@ jobs:
- name: Run npm ci and npm run build
if: always()
env:
CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
npm run build --if-present
- name: Create Pull Request
if: always()
uses: peter-evans/create-pull-request@284f54f989303d2699d373481a0cfa13ad5a6666 # v5
uses: peter-evans/create-pull-request@a4f52f8033a6168103c2538976c07b467e8163bc # v6.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore(deps): fix npm audit"
commit-message: "fix(deps): fix npm audit"
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true

185
.github/workflows/phpunit-mysql.yml vendored Normal file
View File

@ -0,0 +1,185 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit MySQL
on: pull_request
permissions:
contents: read
concurrency:
group: phpunit-mysql-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
matrix:
runs-on: ubuntu-latest-low
outputs:
matrix: ${{ steps.versions.outputs.sparse-matrix }}
steps:
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
with:
matrix: '{"mysql-versions": ["8.1"]}'
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'appinfo/**'
- 'lib/**'
- 'templates/**'
- 'tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
phpunit-mysql:
runs-on: ubuntu-latest
needs: [changes, matrix]
if: needs.changes.outputs.src != 'false'
strategy:
matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
name: MySQL ${{ matrix.mysql-versions }} PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
services:
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
steps:
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
submodules: true
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Enable ONLY_FULL_GROUP_BY MySQL option
run: |
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- name: Check composer file existence
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
with:
files: apps/${{ env.APP_NAME }}/composer.json
- name: Set up dependencies
# Only run if phpunit config file exists
if: steps.check_composer.outputs.files_exists == 'true'
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
- name: Check PHPUnit script is defined
id: check_phpunit
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:unit " | wc -l | grep 1
- name: PHPUnit
# Only run if phpunit config file exists
if: steps.check_phpunit.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:unit
- name: Check PHPUnit integration script is defined
id: check_integration
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:integration " | wc -l | grep 1
- name: Run Nextcloud
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
run: php -S localhost:8080 &
- name: PHPUnit integration
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:integration
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
- name: Skipped
# Fail the action when neither unit nor integration tests ran
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
run: |
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
exit 1
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-mysql]
if: always()
name: phpunit-mysql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi

193
.github/workflows/phpunit-oci.yml vendored Normal file
View File

@ -0,0 +1,193 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit OCI
on: pull_request
permissions:
contents: read
concurrency:
group: phpunit-oci-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
matrix:
runs-on: ubuntu-latest-low
outputs:
php-version: ${{ steps.versions.outputs.php-available-list }}
server-max: ${{ steps.versions.outputs.branches-max-list }}
steps:
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'appinfo/**'
- 'lib/**'
- 'templates/**'
- 'tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
phpunit-oci:
runs-on: ubuntu-22.04
needs: [changes, matrix]
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ${{ fromJson(needs.matrix.outputs.php-version) }}
server-versions: ${{ fromJson(needs.matrix.outputs.server-max) }}
name: OCI PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
services:
oracle:
image: ghcr.io/gvenzl/oracle-xe:11
# Provide passwords and other environment variables to container
env:
ORACLE_RANDOM_PASSWORD: true
APP_USER: autotest
APP_USER_PASSWORD: owncloud
# Forward Oracle port
ports:
- 1521:1521/tcp
# Provide healthcheck script options for startup
options: >-
--health-cmd healthcheck.sh
--health-interval 10s
--health-timeout 5s
--health-retries 10
steps:
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
submodules: true
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, oci8
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check composer file existence
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
with:
files: apps/${{ env.APP_NAME }}/composer.json
- name: Set up dependencies
# Only run if phpunit config file exists
if: steps.check_composer.outputs.files_exists == 'true'
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 1521
run: |
mkdir data
./occ maintenance:install --verbose --database=oci --database-name=XE --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=autotest --database-pass=owncloud --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
- name: Check PHPUnit script is defined
id: check_phpunit
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:unit " | wc -l | grep 1
- name: PHPUnit
# Only run if phpunit config file exists
if: steps.check_phpunit.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:unit
- name: Check PHPUnit integration script is defined
id: check_integration
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:integration " | wc -l | grep 1
- name: Run Nextcloud
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
run: php -S localhost:8080 &
- name: PHPUnit integration
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:integration
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
- name: Skipped
# Fail the action when neither unit nor integration tests ran
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
run: |
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
exit 1
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-oci]
if: always()
name: phpunit-oci-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-oci.result != 'success' }}; then exit 1; fi

183
.github/workflows/phpunit-pgsql.yml vendored Normal file
View File

@ -0,0 +1,183 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit PostgreSQL
on: pull_request
permissions:
contents: read
concurrency:
group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
matrix:
runs-on: ubuntu-latest-low
outputs:
php-version: ${{ steps.versions.outputs.php-available-list }}
server-max: ${{ steps.versions.outputs.branches-max-list }}
steps:
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'appinfo/**'
- 'lib/**'
- 'templates/**'
- 'tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
phpunit-pgsql:
runs-on: ubuntu-latest
needs: [changes, matrix]
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ${{ fromJson(needs.matrix.outputs.php-version) }}
server-versions: ${{ fromJson(needs.matrix.outputs.server-max) }}
name: PostgreSQL PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
services:
postgres:
image: ghcr.io/nextcloud/continuous-integration-postgres-14:latest
ports:
- 4444:5432/tcp
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
submodules: true
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check composer file existence
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
with:
files: apps/${{ env.APP_NAME }}/composer.json
- name: Set up dependencies
# Only run if phpunit config file exists
if: steps.check_composer.outputs.files_exists == 'true'
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
- name: Check PHPUnit script is defined
id: check_phpunit
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:unit " | wc -l | grep 1
- name: PHPUnit
# Only run if phpunit config file exists
if: steps.check_phpunit.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:unit
- name: Check PHPUnit integration script is defined
id: check_integration
continue-on-error: true
working-directory: apps/${{ env.APP_NAME }}
run: |
composer run --list | grep "^ test:integration " | wc -l | grep 1
- name: Run Nextcloud
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
run: php -S localhost:8080 &
- name: PHPUnit integration
# Only run if phpunit integration config file exists
if: steps.check_integration.outcome == 'success'
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:integration
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
- name: Skipped
# Fail the action when neither unit nor integration tests ran
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
run: |
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
exit 1
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-pgsql]
if: always()
name: phpunit-pgsql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi

View File

@ -3,27 +3,9 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit
name: PHPUnit SQLite
on:
pull_request:
paths:
- '.github/workflows/**'
- 'appinfo/**'
- 'lib/**'
- 'templates/**'
- 'tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
push:
branches:
- main
- master
- stable*
on: pull_request
permissions:
contents: read
@ -33,13 +15,55 @@ concurrency:
cancel-in-progress: true
jobs:
matrix:
runs-on: ubuntu-latest-low
outputs:
php-version: ${{ steps.versions.outputs.php-available-list }}
server-max: ${{ steps.versions.outputs.branches-max-list }}
steps:
- name: Checkout app
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'appinfo/**'
- 'lib/**'
- 'templates/**'
- 'tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
phpunit-sqlite:
runs-on: ubuntu-latest
needs: [changes, matrix]
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.0', '8.1']
server-versions: ['master']
php-versions: ${{ fromJson(needs.matrix.outputs.php-version) }}
server-versions: ${{ fromJson(needs.matrix.outputs.server-max) }}
name: SQLite PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
steps:
- name: Set app env
@ -48,29 +72,31 @@ jobs:
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- name: Checkout server
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
submodules: true
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout app
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@1a18b2267f80291a81ca1d33e7c851fe09e7dfc4 # v2
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check composer file existence
id: check_composer
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
with:
files: apps/${{ env.APP_NAME }}/composer.json
@ -85,7 +111,7 @@ jobs:
DB_PORT: 4444
run: |
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
- name: Check PHPUnit script is defined
@ -119,6 +145,11 @@ jobs:
working-directory: apps/${{ env.APP_NAME }}
run: composer run test:integration
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
- name: Skipped
# Fail the action when neither unit nor integration tests ran
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
@ -129,8 +160,8 @@ jobs:
summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: phpunit-sqlite
runs-on: ubuntu-latest-low
needs: [changes, phpunit-sqlite]
if: always()
@ -138,4 +169,4 @@ jobs:
steps:
- name: Summary status
run: if ${{ needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi

View File

@ -3,7 +3,7 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit
name: PHPUnit summary
on:
pull_request:

41
.github/workflows/pr-feedback.yml vendored Normal file
View File

@ -0,0 +1,41 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2023 Marcel Klehr <mklehr@gmx.net>
# SPDX-FileCopyrightText: 2023 Joas Schilling <213943+nickvergessen@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Daniel Kesselberg <mail@danielkesselberg.de>
# SPDX-FileCopyrightText: 2023 Florian Steffens <florian.steffens@nextcloud.com>
# SPDX-License-Identifier: MIT
name: 'Ask for feedback on PRs'
on:
schedule:
- cron: '30 1 * * *'
jobs:
pr-feedback:
runs-on: ubuntu-latest
steps:
- name: The get-github-handles-from-website action
uses: marcelklehr/get-github-handles-from-website-action@a739600f6b91da4957f51db0792697afbb2f143c # v1.0.0
id: scrape
with:
website: 'https://nextcloud.com/team/'
- uses: marcelklehr/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4
with:
feedback-message: |
Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
Thank you for contributing to Nextcloud and we hope to hear from you soon!
days-before-feedback: 14
start-date: "2023-07-10"
exempt-authors: "${{ steps.scrape.outputs.users }},nextcloud-command,nextcloud-android-bot,skjnldsv,datenangebot"
exempt-bots: true

View File

@ -5,13 +5,7 @@
name: Static analysis
on:
pull_request:
push:
branches:
- master
- main
- stable*
on: pull_request
concurrency:
group: psalm-${{ github.head_ref || github.run_id }}
@ -21,16 +15,22 @@ jobs:
static-analysis:
runs-on: ubuntu-latest
name: Nextcloud
name: static-psalm-analysis
steps:
- name: Checkout
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up php
uses: shivammathur/setup-php@1a18b2267f80291a81ca1d33e7c851fe09e7dfc4 # v2
- name: Get php version
id: versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
- name: Set up php${{ steps.versions.outputs.php-available }}
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: 8.1
php-version: ${{ steps.versions.outputs.php-available }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

20
.github/workflows/reuse.yml vendored Normal file
View File

@ -0,0 +1,20 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. <https://fsfe.org>
#
# SPDX-License-Identifier: CC0-1.0
name: REUSE Compliance Check
on: [pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
- name: REUSE Compliance Check
uses: fsfe/reuse-action@a46482ca367aef4454a87620aa37c2be4b2f8106 # v3.0.0

View File

@ -17,42 +17,90 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ["master", "stable26", "stable25", "stable24"]
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
name: update-nextcloud-ocp-${{ matrix.branches }}
steps:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- id: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: ${{ matrix.branches }}
submodules: true
continue-on-error: true
- name: Set up php8.1
uses: shivammathur/setup-php@1a18b2267f80291a81ca1d33e7c851fe09e7dfc4 # v2
- name: Set up php8.2
if: steps.checkout.outcome == 'success'
uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: 8.1
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
php-version: 8.2
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Read codeowners
if: steps.checkout.outcome == 'success'
id: codeowners
run: |
grep '/appinfo/info.xml' .github/CODEOWNERS | cut -f 2- -d ' ' | xargs | awk '{ print "codeowners="$0 }' >> $GITHUB_OUTPUT
continue-on-error: true
- name: Composer install
if: steps.checkout.outcome == 'success'
run: composer install
- name: Composer update nextcloud/ocp
id: update_branch
if: ${{ steps.checkout.outcome == 'success' && matrix.branches != 'main' }}
run: composer require --dev nextcloud/ocp:dev-${{ matrix.branches }}
continue-on-error: true
- name: Reset checkout dirs
- name: Raise on issue on failure
uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0
if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_branch.conclusion == 'failure' }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
title: Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}
body: Please check the output of the GitHub action and manually resolve the issues<br>${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}<br>${{ steps.codeowners.outputs.codeowners }}
- name: Composer update nextcloud/ocp
id: update_main
if: ${{ steps.checkout.outcome == 'success' && matrix.branches == 'main' }}
run: composer require --dev nextcloud/ocp:dev-master
- name: Raise on issue on failure
uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0
if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_main.conclusion == 'failure' }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
title: Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}
body: Please check the output of the GitHub action and manually resolve the issues<br>${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}<br>${{ steps.codeowners.outputs.codeowners }}
- name: Reset checkout 3rdparty
if: steps.checkout.outcome == 'success'
run: |
git clean -f 3rdparty
git checkout 3rdparty
continue-on-error: true
- name: Reset checkout vendor
if: steps.checkout.outcome == 'success'
run: |
git clean -f vendor
git checkout vendor
continue-on-error: true
- name: Reset checkout vendor-bin
if: steps.checkout.outcome == 'success'
run: |
git clean -f vendor-bin
git checkout 3rdparty vendor vendor-bin
git checkout vendor-bin
continue-on-error: true
- name: Create Pull Request
uses: peter-evans/create-pull-request@18f7dc018cc2cd597073088f7c7591b9d1c02672 # v3
if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@a4f52f8033a6168103c2538976c07b467e8163bc # v6.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore(dev-deps): Bump nextcloud/ocp package"

20
.reuse/dep5 Normal file
View File

@ -0,0 +1,20 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: photos
Upstream-Contact: Nextcloud <info@nextcloud.com>
Source: https://github.com/nextcloud/photos
Files: .gitattributes .github/* .editorconfig babel.config.js .php-cs-fixer.dist.php package-lock.json package.json composer.json composer.lock webpack.js stylelint.config.js .eslintrc.js .gitignore .jshintrc .l10nignore action/.gitignore action/package.json action/package-lock.json action/dist/index.js tests/* psalm.xml cypress/.env cypress/.eslintrc.js cypress/docker-compose.yml cypress/plugins/index.js cypress/tsconfig.json cypress.config.ts vendor-bin/*/composer.json stylelint.config.cjs vendor-bin/*/composer.lock .tx/config webpack.config.js tsconfig.json vite.config.ts js/vendor.LICENSE.txt krankerl.toml .npmignore cypress/fixtures/* postcss.config.js cypress/dockerNode.ts jest.config.js
Copyright: none
License: CC0-1.0
Files: l10n/*.js l10n/*.json js/*.js.map js/*.js js/*.mjs js/*.mjs.map js/templates/*.handlebars screenshots/screenshot1.png src/assets/file-placeholder.svg
Copyright: 2019 Nextcloud GmbH and Nextcloud contributors
License: AGPL-3.0-or-later
Files: img/app.svg img/photos.svg img/yourphotos.svg src/assets/image.svg src/assets/video.svg
Copyright: 2018-2024 Google LLC
License: Apache-2.0
Files: src/assets/Illustrations/empty.svg src/assets/Illustrations/folder.svg src/assets/Illustrations/images.svg
Copyright: 2024 Katerina Limpitsouni
License: LicenseRef-unDrawLicense

19
AUTHORS.md Normal file
View File

@ -0,0 +1,19 @@
<!--
- SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: CC0-1.0
-->
# Authors
- Carl Schwan <carl@carlschwan.eu>
- Christian McHugh <mchugh19@hotmail.com>
- Corentin Mors <medias@pixelswap.fr>
- Ferdinand Thiessen <opensource@fthiessen.de>
- Jakob Röhrl <jakob.roehrl@web.de>
- John Molakvoæ <skjnldsv@protonmail.com>
- Louis Chemineau <louis@chmn.me>
- Marcel Klehr <mklehr@gmx.net>
- Maxence Lange <maxence@artificial-owl.com>
- Richard Steinmetz <richard@steinmetz.cloud>
- Robin Appelman <robin@icewind.nl>
- Roeland Jago Douma <roeland@famdouma.nl>
- Thomas Citharel <nextcloud@tcit.fr>

View File

@ -0,0 +1,235 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software.
A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.
The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.
An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based on the Program.
To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work.
A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.
You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <http://www.gnu.org/licenses/>.

73
LICENSES/Apache-2.0.txt Normal file
View File

@ -0,0 +1,73 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
(a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

121
LICENSES/CC0-1.0.txt Normal file
View File

@ -0,0 +1,121 @@
Creative Commons Legal Code
CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.

View File

@ -0,0 +1,44 @@
unDraw
/license
Read below for the actual license but the gist is that you can use the
illustrations in any project, commercial or personal without attribution or
any costs. Just dont try to replicate unDraw, redistribute in packs the
illustrations or create integrations for it.
a rule of thumb (tldr)
If you are working on something and want to use illustrations to improve its
appearance, modified or not, without the need for attribution or cost, you
are good to go. If you find unDraw or its illustrations to be in the center of
what you are doing (e.g. sell or re-distribute one/some of them, add them in
an app), then you probably should not proceed.
full license text
Copyright 2024 Katerina Limpitsouni
All images, assets and vectors published on unDraw can be used for free.
You can use them for noncommercial and commercial purposes. You do not
need to ask permission from or provide credit to the creator or unDraw.
More precisely, unDraw grants you an nonexclusive, worldwide copyright license
to download, copy, modify, distribute, perform, and use the assets
provided from unDraw for free, including for commercial purposes, without
permission from or attributing the creator or unDraw. This license does not
include the right to compile assets, vectors or images from unDraw to
replicate a similar or competing service, in any form or distribute the assets
in packs or otherwise. This extends to automated and non-automated ways
to link, embed, scrape, search or download the assets included on the
website without our consent.
Regarding brand logos that are included:
Are registered trademarks of their respected owners. Are included on a
promotional basis and do not represent an association with unDraw or its
users. Do not indicate any kind of endorsement of the trademark holder
towards unDraw, nor vice versa. Are provided with the sole purpose to
represent the actual brand/service/company that has registered the
trademark and must not be used otherwise.
A copy can be found at https://undraw.co/license

9
LICENSES/MIT.txt Normal file
View File

@ -0,0 +1,9 @@
MIT License
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
all: dev-setup lint build-js-production test
# Dev env management

View File

@ -1,5 +1,11 @@
<!--
- SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: CC0-1.0
-->
# Nextcloud Photos
[![REUSE status](https://api.reuse.software/badge/github.com/nextcloud/photos)](https://api.reuse.software/info/github.com/nextcloud/photos)
**📸 Your memories under your control**
![Work in progress screenshot of Nextcloud Photos App](screenshots/screenshot1.png)
@ -14,9 +20,13 @@
## 🚀 Installation
In your Nextcloud, simply enable the Photos app through the Apps management.
The Nextcloud Photos app is only included in nextcloud v18 and higher.
The Nextcloud Photos app is included in Nextcloud 18 and higher.
Consider installing the [preview generator](https://github.com/rullzer/previewgenerator) for pre-generating thumbnails.
Optional add-ons that make the Photos app even better:
* Install [Recognize for Nextcloud](https://github.com/nextcloud/recognize) for AI-powered automatic face and object recognition. Includes automated tagging/categorizing.
* Install the [preview generator](https://github.com/rullzer/previewgenerator) if pre-generating thumbnails is desired.
* Install [Imaginary](https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#previews) to speed up preview generation.
## Mobile Photos
@ -30,6 +40,9 @@ If you'd like to join, just go through the [issues list](https://github.com/next
## 🏗 Development setup
This app requires the [Viewer app](https://github.com/nextcloud/viewer) to be installed and enabled.
Follow its development setup and then continue here.
1. ☁ Clone this into your `apps` folder of your Nextcloud.
1. 👩‍💻 In a terminal, run the command `make dev-setup` to install the dependencies.
1. 🏗 Then to build the Javascript whenever you make changes, run `make build-js`. To create a pull request use `make build-js-production`. Watch changes with: `make watch-js`.

View File

@ -1,11 +1,15 @@
<?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>photos</id>
<name>Photos</name>
<summary>Your memories under your control</summary>
<description>Your memories under your control</description>
<version>2.3.0</version>
<version>3.0.0</version>
<licence>agpl</licence>
<author mail="skjnldsv@protonmail.com">John Molakvoæ</author>
<namespace>Photos</namespace>
@ -20,7 +24,7 @@
<repository>https://github.com/nextcloud/photos.git</repository>
<default_enable />
<dependencies>
<nextcloud min-version="27" max-version="27" />
<nextcloud min-version="30" max-version="30" />
</dependencies>
<navigations>
<navigation>
@ -32,7 +36,8 @@
<commands>
<command>OCA\Photos\Command\UpdateReverseGeocodingFilesCommand</command>
<command>OCA\Photos\Command\MapMediaToPlaceCommand</command>
<command>OCA\Photos\Command\AlbumAddCommand</command>
<command>OCA\Photos\Command\AlbumCreateCommand</command>
</commands>
<sabre>
@ -48,4 +53,14 @@
<background-jobs>
<job>OCA\Photos\Jobs\AutomaticPlaceMapperJob</job>
</background-jobs>
<repair-steps>
<install>
<step>OCA\Photos\RepairStep\InitMetadata</step>
</install>
<post-migration>
<step>OCA\Photos\RepairStep\InitMetadata</step>
</post-migration>
</repair-steps>
</info>

View File

@ -1,24 +1,7 @@
<?php
/**
* @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
return [
@ -28,6 +11,7 @@ return [
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
['name' => 'page#index', 'url' => '/thisday', 'verb' => 'GET', 'postfix' => 'thisday'],
['name' => 'page#index', 'url' => '/photos', 'verb' => 'GET', 'postfix' => 'photos'],
['name' => 'page#index', 'url' => '/videos', 'verb' => 'GET', 'postfix' => 'videos'],
['name' => 'page#index', 'url' => '/favorites', 'verb' => 'GET', 'postfix' => 'favorites'],
['name' => 'page#index', 'url' => '/albums/{path}', 'verb' => 'GET', 'postfix' => 'albums',

View File

@ -9,7 +9,7 @@
"bamarni/composer-bin-plugin": true
},
"platform": {
"php": "8.0"
"php": "8.0.2"
}
},
"autoload": {
@ -21,19 +21,20 @@
"cs:fix": "php-cs-fixer fix",
"cs:check": "php-cs-fixer fix --dry-run --diff",
"lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l",
"psalm": "psalm --threads=1",
"psalm:update-baseline": "psalm --threads=1 --update-baseline",
"psalm:clear": "psalm --clear-cache && psalm --clear-global-cache",
"psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MissingParamType,InvalidFalsableReturnType",
"psalm": "psalm.phar --threads=1",
"psalm:update-baseline": "psalm.phar --threads=1 --update-baseline",
"psalm:clear": "psalm.phar --clear-cache && psalm --clear-global-cache",
"psalm:fix": "psalm.phar --alter --issues=InvalidReturnType,InvalidNullableReturnType,MissingParamType,InvalidFalsableReturnType",
"test:unit": "echo 'Only testing installation of the app'"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8",
"nextcloud/coding-standard": "1.0",
"nextcloud/coding-standard": "1.2.1",
"nextcloud/ocp": "dev-master",
"phpunit/phpunit": "^9",
"psalm/phar": "^5.17",
"sabre/dav": "^4.2.1",
"vimeo/psalm": "^4.22"
"symfony/console": "5.4.24"
},
"require": {
"hexogen/kdtree": "^0.2.5"

2441
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,8 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
require_once __DIR__ . '/../vendor/autoload.php';

View File

@ -8,7 +8,7 @@ import {
import { defineConfig } from 'cypress'
import browserify from '@cypress/browserify-preprocessor'
import getCompareSnapshotsPlugin from 'cypress-visual-regression/dist/plugin'
import { configureVisualRegression } from 'cypress-visual-regression/dist/plugin'
export default defineConfig({
projectId: 'okzqgr',
@ -17,9 +17,10 @@ export default defineConfig({
viewportWidth: 1280,
viewportHeight: 720,
// Tries again 2 more times on failure
requestTimeout: 20000,
retries: {
runMode: 2,
runMode: 0,
// do not retry in `cypress open`
openMode: 0,
},
@ -46,7 +47,7 @@ export default defineConfig({
async setupNodeEvents(on, config) {
// Fix browserslist extend https://github.com/cypress-io/cypress/issues/2983#issuecomment-570616682
on('file:preprocessor', browserify({ typescript: require.resolve('typescript') }))
getCompareSnapshotsPlugin(on, config)
configureVisualRegression(on)
// Disable spell checking to prevent rendering differences
on('before:browser:launch', (browser, launchOptions) => {

View File

@ -1,33 +1,19 @@
/**
* @copyright Copyright (c) 2022 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import {
addFilesToAlbumFromAlbum,
addFilesToAlbumFromAlbumFromHeader,
createAnAlbumFromAlbums,
deleteAnAlbumFromAlbumContent,
goToAlbum,
removeSelectionFromAlbum,
} from './albumsUtils'
import {
downloadSelection,
deleteSelection,
favoriteSelection,
mkdir,
selectMedia,
unfavoriteSelection,
unselectMedia,
@ -42,69 +28,68 @@ Cypress.on('uncaught:exception', (err) => {
}
})
describe('Manage albums', () => {
before(function() {
describe('Manage albums', { testIsolation: true }, () => {
let user = null
beforeEach(function () {
cy.createRandomUser()
.then((user) => {
.then(_user => {
user = _user
mkdir(user, '/Photos')
uploadTestMedia(user)
cy.login(user)
cy.visit('/apps/photos')
})
})
beforeEach(() => {
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos/albums`)
createAnAlbumFromAlbums('albums_test')
addFilesToAlbumFromAlbum('albums_test', [0, 1, 2])
})
afterEach(() => {
deleteAnAlbumFromAlbumContent()
cy.contains('There is no album yet!').click()
it('Create an album, populate it and delete it', () => {
cy.get('[data-test="media"]').should('have.length', 3)
})
it('Add and remove a file to an album from an album', () => {
it('Remove a file to an album from an album content view', () => {
selectMedia([0])
removeSelectionFromAlbum()
})
it('Add and remove multiple files to an album from an album', () => {
it('Remove multiple files to an album from an album content view', () => {
selectMedia([0, 1])
removeSelectionFromAlbum()
})
it('Favorite a file from an album', () => {
it('Favorite a file from an album content view', () => {
selectMedia([0])
favoriteSelection()
cy.get('[data-test="media"]').eq(0).find('[aria-label="The file is in the favorites"]')
cy.get('[data-test="media"]').eq(0).find('[aria-label="Favorite"]')
unfavoriteSelection()
unselectMedia([0])
cy.get('[aria-label="The file is in the favorites"]').should('not.exist')
cy.get('[aria-label="Favorite"]').should('not.exist')
})
it('Favorite multiple files from an album', () => {
it('Favorite multiple files from an album content view', () => {
selectMedia([1, 2])
favoriteSelection()
cy.get('[data-test="media"]').eq(1).find('[aria-label="The file is in the favorites"]')
cy.get('[data-test="media"]').eq(2).find('[aria-label="The file is in the favorites"]')
cy.get('[data-test="media"]').eq(1).find('[aria-label="Favorite"]')
cy.get('[data-test="media"]').eq(2).find('[aria-label="Favorite"]')
unfavoriteSelection()
unselectMedia([1, 2])
cy.get('[aria-label="The file is in the favorites"]').should('not.exist')
cy.get('[aria-label="Favorite"]').should('not.exist')
})
// it('Download a file from an album', () => {
// it('Download a file from an album content view', () => {
// selectMedia([0])
// downloadSelection()
// unselectMedia([0])
// })
// it('Download multiple files from an album', () => {
// it('Download multiple files from an album content view', () => {
// selectMedia([1, 2])
// downloadSelection()
// unselectMedia([1, 2])
// })
// it('Download all files from an album', () => {
// it('Download all files from an album content view', () => {
// selectMedia([1, 2])
// downloadSelection()
// unselectMedia([1, 2])
@ -145,4 +130,14 @@ describe('Manage albums', () => {
cy.get('form [name="location"]').clear()
cy.contains('Save').click()
})
it('Delete a file that was added to an album', () => {
addFilesToAlbumFromAlbumFromHeader('albums_test', [3])
cy.get('[data-test="media"]').should('have.length', 4)
cy.visit('/apps/photos')
selectMedia([3])
deleteSelection()
goToAlbum('albums_test')
cy.get('[data-test="media"]').should('have.length', 3)
})
})

View File

@ -1,26 +1,9 @@
/**
* @copyright Copyright (c) 2023 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { selectMedia } from "./photosUtils"
import { selectMedia } from './photosUtils'
export function createAnAlbumFromTimeline(albumName: string) {
cy.contains('Add').click()
@ -30,9 +13,11 @@ export function createAnAlbumFromTimeline(albumName: string) {
}
export function createAnAlbumFromAlbums(albumName: string) {
cy.intercept({ times: 1, method: 'PROPFIND', url: `**/dav/photos/**/albums/${albumName}` }).as('propFind')
cy.contains('New album').click()
cy.get('form [name="name"]').type(albumName)
cy.contains('Create album').click()
cy.wait('@propFind')
}
export function deleteAnAlbumFromAlbumContent() {
@ -41,32 +26,62 @@ export function deleteAnAlbumFromAlbumContent() {
}
export function addFilesToAlbumFromTimeline(albumName: string) {
cy.intercept({ times: 1, method: 'COPY', url: '**/dav/files/**' }).as('copy')
cy.intercept({ times: 1, method: 'PROPFIND', url: '**/dav/photos/**/albums/' }).as('propFindAlbums')
cy.intercept({ times: 1, method: 'PROPFIND', url: '**/dav/photos/**/sharedalbums/' }).as('propFindSharedAlbums')
cy.contains('Add to album').click()
cy.wait('@propFindAlbums')
cy.wait('@propFindSharedAlbums')
cy.get('.album-picker ul').contains(albumName).click()
cy.wait('@copy')
}
export function addFilesToAlbumFromAlbum(albumName: string, itemsIndex: number[]) {
cy.intercept({ times: 1, method: 'SEARCH', url: '**/dav/' }).as('search')
cy.get('[aria-label="Add photos to this album"]').click()
cy.get('.file-picker__file-list').within(() => {
cy.wait('@search')
cy.get('.photos-picker__file-list').within(() => {
selectMedia(itemsIndex)
})
cy.intercept({ times: itemsIndex.length, method: 'COPY', url: '**/dav/files/**' }).as('copy')
cy.intercept({ times: 1, method: 'PROPFIND', url: `**/dav/photos/**/albums/${albumName}` }).as('propFind')
cy.contains(`Add to ${albumName}`).click()
cy.wait('@copy')
cy.wait('@propFind')
}
export function addFilesToAlbumFromAlbumFromHeader(albumName: string, itemsIndex: number[]) {
cy.contains('New').click()
cy.contains('Add photos to this album').click()
cy.get('.photos-picker__file-list').within(() => {
selectMedia(itemsIndex)
})
cy.intercept({ times: 1, method: 'PROPFIND', url: `**/dav/photos/**/albums/${albumName}` }).as('propFind')
cy.contains(`Add to ${albumName}`).click()
cy.wait('@propFind')
}
export function removeSelectionFromAlbum() {
cy.intercept({ times: 1, method: 'DELETE', url: '**/dav/photos/**' }).as('delete')
cy.get('[aria-label="Open actions menu"]').click()
cy.contains('Remove selection from album').click()
cy.wait('@delete')
}
export function goToAlbum(albumName: string) {
cy.intercept({ times: 1, method: 'PROPFIND', url: '**/dav/photos/**/albums' }).as('propFindAlbums')
cy.intercept({ times: 1, method: 'PROPFIND', url: `**/dav/photos/**/albums/${albumName}` }).as('propFindAlbumContent')
cy.get('.app-navigation__list').contains('Albums').click()
cy.wait('@propFindAlbums')
cy.get('ul.collections__list').contains(albumName).click()
cy.wait('@propFindAlbumContent')
}
export function addCollaborators(collaborators: string[]) {
cy.get('[aria-label="Manage collaborators for this album"]').click()
collaborators.forEach((collaborator: string) => {
cy.get('[aria-label="Search for collaborators"').type(collaborator)
cy.get('#sharing-search-input').type(collaborator)
cy.contains(collaborator).click()
})
cy.contains('Save').click()
@ -85,3 +100,20 @@ export function removeCollaborators(collaborators: string[]) {
})
cy.contains('Save').click()
}
export function createPublicShare() {
cy.get('[aria-label="Manage collaborators for this album"]').click()
cy.intercept({ times: 1, method: 'PROPPATCH', url: '**/dav/photos/*/albums/*' }).as('patchCall')
cy.intercept({ times: 1, method: 'PROPFIND', url: '**/dav/photos/*/albums/*' }).as('propFind')
cy.get('[aria-label="Create public link share"]').click()
cy.wait('@patchCall')
cy.wait('@propFind')
return cy.get('[aria-label="Copy the public link"]')
.invoke('attr', 'title') as Cypress.Chainable<string>
}
export function deletePublicShare() {
cy.get('[aria-label="Manage collaborators for this album"]').click()
cy.get('[aria-label="Delete the public link"]').click()
}

View File

@ -1,30 +1,16 @@
/**
* @copyright Copyright (c) 2023 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { User } from "@nextcloud/cypress"
import type { User } from '@nextcloud/cypress'
import axios from 'axios'
export function uploadTestMedia(user: User) {
export function uploadTestMedia(user: User, destination = '/Photos') {
cy.exec('ls cypress/fixtures/media')
.then((result) => {
for (const fileName of result.stdout.split('\n')) {
cy.uploadFile(user, `media/${fileName}`, 'image/png', `/${fileName}`)
cy.uploadFile(user, `media/${fileName}`, 'image/png', `/${destination}/${fileName}`)
}
})
}
@ -66,19 +52,32 @@ export function downloadAllFiles() {
}
export function deleteSelection() {
cy.intercept({ method: 'DELETE' }).as('deleteRequests')
cy.intercept({ times: 1, method: 'DELETE' }).as('deleteRequests')
cy.get('[aria-label="Open actions menu"]').click()
cy.contains('Delete selection')
.click()
.wait('@deleteRequests')
}
export function goToSharedAlbum(albumName: string) {
cy.get('.app-navigation__list').contains('Collaborative albums').click()
cy.get('ul.collections__list').contains(albumName).click()
}
export function removeSharedAlbums() {
cy.get('[aria-label="Open actions menu"]').click()
cy.contains('Delete album').click()
export function mkdir(user: User, target: string) {
// eslint-disable-next-line cypress/unsafe-to-chain-command
cy.clearCookies()
.then({ timeout: 8000 }, async () => {
try {
const rootPath = `${Cypress.env('baseUrl')}/remote.php/dav/files/${encodeURIComponent(user.userId)}`
const filePath = target.split('/').map(encodeURIComponent).join('/')
const response = await axios({
url: `${rootPath}${filePath}`,
method: 'MKCOL',
auth: {
username: user.userId,
password: user.password,
},
})
cy.log(`Created directory ${target}`, response)
} catch (error) {
cy.log('error', error)
throw new Error('Unable to process fixture')
}
})
}

View File

@ -1,25 +1,8 @@
/**
* @copyright Copyright (c) 2022 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { uploadTestMedia } from './photosUtils'
import { mkdir, uploadTestMedia } from './photosUtils'
import { navigateToPlace, runOccCommand } from './placesUtils'
const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/
@ -31,11 +14,12 @@ Cypress.on('uncaught:exception', (err) => {
})
describe('Manage places', () => {
before(function() {
before(function () {
cy.createRandomUser()
.then((user) => {
mkdir(user, '/Photos')
uploadTestMedia(user)
runOccCommand(`photos:map-media-to-place --user ${user.userId}`)
runOccCommand('files:scan --all --generate-metadata')
cy.login(user)
cy.visit('/apps/photos')
})

View File

@ -1,23 +1,6 @@
/**
* @copyright Copyright (c) 2023 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
export function navigateToCollection(collectionType: string, collectionName: string) {

View File

@ -1,31 +1,48 @@
/**
* @copyright Copyright (c) 2023 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { selectMedia } from "./photosUtils"
export function goToSharedAlbum(albumName: string) {
cy.intercept({ times: 1, method: 'PROPFIND', url: '**/dav/photos/**/sharedalbums' }).as('propFindSharedAlbums')
cy.intercept({ times: 1, method: 'PROPFIND', url: `**/dav/photos/*/sharedalbums/${albumName}*/` }).as('propFindSharedAlbumContent')
cy.get('.app-navigation__list').contains('Collaborative albums').click()
cy.wait('@propFindSharedAlbums')
cy.get('ul.collections__list').contains(albumName).click()
cy.wait('@propFindSharedAlbumContent')
}
export function removeSharedAlbums() {
cy.get('[aria-label="Open actions menu"]').click()
cy.contains('Delete album').click()
}
export function addFilesToSharedAlbumFromSharedAlbumFromHeader(albumName: string, itemsIndex: number[]) {
cy.intercept({ times: 1, method: 'SEARCH', url: '**/dav/' }).as('search')
cy.contains('Add').click()
cy.wait('@search')
cy.get('.photos-picker__file-list').within(() => {
selectMedia(itemsIndex)
})
cy.intercept({ times: itemsIndex.length, method: 'COPY', url: '**/dav/files/**' }).as('copy')
cy.intercept({ times: 1, method: 'PROPFIND', url: `**/dav/photos/*/sharedalbums/${albumName}*/` }).as('propFind')
cy.contains(`Add to ${albumName}`).click()
cy.wait('@copy')
cy.wait('@propFind')
}
export function addFilesToSharedAlbumFromAlbum(albumName: string, itemsIndex: number[]) {
cy.intercept({ times: 1, method: 'SEARCH', url: '**/dav/' }).as('search')
cy.get('[aria-label="Add photos to this album"]').click()
cy.wait('@search')
cy.get('.photos-picker__file-list').within(() => {
selectMedia(itemsIndex)
})
cy.intercept({ times: itemsIndex.length, method: 'COPY', url: '**/dav/files/**' }).as('copy')
cy.intercept({ times: 1, method: 'PROPFIND', url: `**/dav/photos/*/sharedalbums/${albumName}*/` }).as('propFind')
cy.contains(`Add to ${albumName}`).click()
cy.wait('@copy')
cy.wait('@propFind')
}

View File

@ -1,45 +1,35 @@
import { randHash } from '../utils'
/**
* @copyright Copyright (c) 2022 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { User } from '@nextcloud/cypress'
import {
addCollaborators,
addFilesToAlbumFromAlbum,
createAnAlbumFromAlbums,
createPublicShare,
deletePublicShare,
goToAlbum,
removeCollaborators,
removeSelectionFromAlbum,
} from './albumsUtils'
import {
deleteSelection,
downloadAllFiles,
downloadSelection,
goToSharedAlbum,
removeSharedAlbums,
mkdir,
selectMedia,
uploadTestMedia,
} from './photosUtils'
import { randHash } from '../utils'
import {
addFilesToSharedAlbumFromAlbum,
addFilesToSharedAlbumFromSharedAlbumFromHeader,
goToSharedAlbum,
removeSharedAlbums,
} from './sharedAlbumUtils'
import {
randHash,
} from '../utils/index.js'
const alice = new User(`alice_${randHash()}`)
const bob = new User(`bob_${randHash()}`)
@ -56,11 +46,14 @@ Cypress.on('uncaught:exception', (err) => {
describe('Manage shared albums', () => {
before(() => {
cy.createUser(alice)
cy.createUser(bob).then(() => {
uploadTestMedia(bob)
})
cy.createUser(bob)
cy.createUser(charlie)
mkdir(alice, '/Photos')
mkdir(bob, '/Photos')
mkdir(charlie, '/Photos')
uploadTestMedia(alice)
uploadTestMedia(bob)
uploadTestMedia(charlie)
})
context('Adding and removing files in a shared album', () => {
@ -73,10 +66,10 @@ describe('Manage shared albums', () => {
it('Add and remove a file to a shared album from a shared album', () => {
cy.login(bob)
cy.visit('apps/photos/albums')
cy.visit('apps/photos')
goToSharedAlbum('shared_album_test1')
cy.get('[data-test="media"]').should('have.length', 0)
addFilesToAlbumFromAlbum('shared_album_test1', [0])
addFilesToSharedAlbumFromAlbum('shared_album_test1', [0])
cy.get('[data-test="media"]').should('have.length', 1)
selectMedia([0])
removeSelectionFromAlbum()
@ -86,7 +79,7 @@ describe('Manage shared albums', () => {
it('Add and remove multiple files to a shared album from a shared album', () => {
goToSharedAlbum('shared_album_test1')
cy.get('[data-test="media"]').should('have.length', 0)
addFilesToAlbumFromAlbum('shared_album_test1', [1, 2])
addFilesToSharedAlbumFromAlbum('shared_album_test1', [1, 2])
cy.get('[data-test="media"]').should('have.length', 2)
selectMedia([0, 1])
removeSelectionFromAlbum()
@ -94,34 +87,34 @@ describe('Manage shared albums', () => {
})
})
context('Download files from a shared album', () => {
xcontext('Download files from a shared album', () => {
before(() => {
cy.login(alice)
cy.visit('apps/photos/albums')
cy.visit('apps/photos')
createAnAlbumFromAlbums('shared_album_test2')
addCollaborators([bob.userId])
cy.login(bob)
cy.visit('apps/photos/sharedalbums')
cy.visit('apps/photos')
goToSharedAlbum('shared_album_test2')
addFilesToAlbumFromAlbum('shared_album_test2', [0, 1, 2])
addFilesToSharedAlbumFromAlbum('shared_album_test2', [0, 1, 2])
})
xit('Download a file from a shared album', () => {
it('Download a file from a shared album', () => {
goToSharedAlbum('shared_album_test2')
selectMedia([0])
downloadSelection()
selectMedia([0])
})
xit('Download multiple files from a shared album', () => {
it('Download multiple files from a shared album', () => {
goToSharedAlbum('shared_album_test2')
selectMedia([1, 2])
downloadSelection()
selectMedia([1, 2])
})
xit('Download all files from a shared album', () => {
it('Download all files from a shared album', () => {
goToSharedAlbum('shared_album_test2')
downloadAllFiles()
})
@ -137,7 +130,7 @@ describe('Manage shared albums', () => {
it('Remove shared album', () => {
cy.login(bob)
cy.visit('apps/photos/albums')
cy.visit('apps/photos')
goToSharedAlbum('shared_album_test3')
removeSharedAlbums()
})
@ -188,4 +181,148 @@ describe('Manage shared albums', () => {
cy.get(`[data-test="shared_album_test5 (${charlie.userId})"]`).should('have.length', 1)
})
})
context('Multiple collaborators should see each other\'s pictures', () => {
before(() => {
cy.login(alice)
cy.visit('apps/photos/albums')
createAnAlbumFromAlbums('shared_album_test6')
addCollaborators([bob.userId, charlie.userId])
})
it('It should display picture from all collaborators', () => {
cy.login(alice)
cy.visit('/apps/photos')
goToAlbum('shared_album_test6')
cy.get('[data-test="media"]').should('have.length', 0)
addFilesToAlbumFromAlbum('shared_album_test6', [0])
cy.get('[data-test="media"]').should('have.length', 1)
cy.login(bob)
cy.visit('apps/photos')
goToSharedAlbum('shared_album_test6')
cy.get('[data-test="media"]').should('have.length', 1)
addFilesToSharedAlbumFromSharedAlbumFromHeader('shared_album_test6', [1])
cy.get('[data-test="media"]').should('have.length', 2)
cy.login(charlie)
cy.visit('apps/photos')
goToSharedAlbum('shared_album_test6')
cy.get('[data-test="media"]').should('have.length', 2)
addFilesToSharedAlbumFromSharedAlbumFromHeader('shared_album_test6', [2])
cy.get('[data-test="media"]').should('have.length', 3)
})
it('Removing a collaborator should remove its pictures', () => {
cy.login(alice)
cy.visit('/apps/photos')
goToAlbum('shared_album_test6')
removeCollaborators([bob.userId])
cy.intercept({ times: 1, method: 'PROPFIND', url: '**/dav/photos/**/albums/shared_album_test6' }).as('propFind')
cy.reload()
cy.wait('@propFind')
cy.get('[data-test="media"]').should('have.length', 2)
})
it('Collaborator should be able to remove all pictures from the shared album', () => {
cy.login(charlie)
cy.visit('apps/photos')
goToSharedAlbum('shared_album_test6')
selectMedia([0, 1])
removeSelectionFromAlbum()
cy.get('[data-test="media"]').should('have.length', 0)
cy.login(alice)
cy.visit('/apps/photos')
goToAlbum('shared_album_test6')
cy.get('[data-test="media"]').should('have.length', 0)
})
})
context('Users and files events should impact albums', () => {
before(() => {
cy.login(alice)
cy.visit('apps/photos/albums')
createAnAlbumFromAlbums('shared_album_test7')
addCollaborators([bob.userId, charlie.userId])
addFilesToAlbumFromAlbum('shared_album_test7', [0])
cy.login(bob)
cy.visit('apps/photos')
goToSharedAlbum('shared_album_test7')
addFilesToSharedAlbumFromSharedAlbumFromHeader('shared_album_test7', [1])
cy.login(charlie)
cy.visit('apps/photos')
goToSharedAlbum('shared_album_test7')
addFilesToSharedAlbumFromSharedAlbumFromHeader('shared_album_test7', [2])
cy.get('[data-test="media"]').should('have.length', 3)
})
it('Deleting a file should remove it from the albums', () => {
cy.login(bob)
cy.visit('/apps/photos')
selectMedia([1])
deleteSelection()
goToSharedAlbum('shared_album_test7')
cy.get('[data-test="media"]').should('have.length', 2)
cy.login(alice)
cy.visit('/apps/photos')
goToAlbum('shared_album_test7')
cy.get('[data-test="media"]').should('have.length', 2)
})
it('Deleting a user should remove it from the collaborator list of albums and remove its pictures', () => {
cy.deleteUser(charlie)
cy.login(alice)
cy.visit('/apps/photos')
goToAlbum('shared_album_test7')
cy.get('[data-test="media"]').should('have.length', 1)
cy.get('[aria-label="Manage collaborators for this album"]').click()
cy.get('.manage-collaborators__selection__item').should('have.length', 1)
})
it('Deleting a user should remove its albums for collaborators', () => {
cy.deleteUser(alice)
cy.login(bob)
cy.visit('apps/photos/sharedalbums')
cy.get('body').should('not.contain', `shared_album_test7 (${alice.userId})`)
cy.createUser(alice)
mkdir(alice, '/Photos')
uploadTestMedia(alice)
})
})
context('Public share should work', () => {
before(() => {
cy.login(alice)
cy.visit('apps/photos/albums')
createAnAlbumFromAlbums('shared_album_test8')
addFilesToAlbumFromAlbum('shared_album_test8', [0, 1, 2])
})
it('Create a public link', () => {
createPublicShare()
.then(publicLink => {
cy.logout()
cy.intercept({ times: 1, method: 'PROPFIND', url: '**/dav/photospublic/*' }).as('propFindAlbum')
cy.intercept({ times: 1, method: 'PROPFIND', url: '**/dav/photospublic/*/' }).as('propFindContent')
cy.visit(publicLink)
cy.wait('@propFindAlbum')
cy.wait('@propFindContent')
cy.contains('shared_album_test8')
cy.get('[data-test="media"]').should('have.length', 3)
cy.login(alice)
cy.visit('/apps/photos')
goToAlbum('shared_album_test8')
deletePublicShare()
cy.intercept({ times: 1, method: 'PROPFIND', url: '**/dav/photospublic/*' }).as('propFindAlbum')
cy.visit(publicLink)
cy.wait('@propFindAlbum')
cy.contains('This collection does not exist')
})
})
})
})

View File

@ -1,26 +1,12 @@
/**
* @copyright Copyright (c) 2022 Louis Chmn <louis@chmn.me>
*
* @author Louis Chmn <louis@chmn.me>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { User } from '@nextcloud/cypress'
import {
addCollaborators,
addFilesToAlbumFromTimeline,
createAnAlbumFromAlbums,
createAnAlbumFromTimeline,
deleteAnAlbumFromAlbumContent,
goToAlbum,
@ -30,11 +16,18 @@ import {
deleteSelection,
downloadSelection,
favoriteSelection,
mkdir,
selectMedia,
unfavoriteSelection,
unselectMedia,
uploadTestMedia,
} from './photosUtils'
import {
goToSharedAlbum,
} from './sharedAlbumUtils'
import {
randHash,
} from '../utils/index.js'
const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/
Cypress.on('uncaught:exception', (err) => {
@ -44,37 +37,43 @@ Cypress.on('uncaught:exception', (err) => {
}
})
const alice = new User(`alice_${randHash()}`)
const bob = new User(`bob_${randHash()}`)
describe('View list of photos in the main timeline', () => {
before(() => {
cy.createRandomUser()
.then((user) => {
uploadTestMedia(user)
cy.login(user)
cy.visit('/apps/photos')
})
cy.createUser(alice).then(() => {
mkdir(alice, '/Photos')
uploadTestMedia(alice)
})
cy.createUser(bob).then(() => {
mkdir(bob, '/Photos')
uploadTestMedia(bob)
})
cy.login(alice)
})
beforeEach(() => {
cy.visit(`${Cypress.env('baseUrl')}/index.php/apps/photos`)
cy.visit('/apps/photos')
})
it('Favorite a file from a timeline', () => {
selectMedia([0])
favoriteSelection()
cy.get('[data-test="media"]').eq(0).find('[aria-label="The file is in the favorites"]')
cy.get('[data-test="media"]').eq(0).find('[aria-label="Favorite"]')
unfavoriteSelection()
unselectMedia([0])
cy.get('[aria-label="The file is in the favorites"]').should('not.exist')
cy.get('[aria-label="Favorite"]').should('not.exist')
})
it('Favorite multiple files from a timeline', () => {
selectMedia([1, 2])
favoriteSelection()
cy.get('[data-test="media"]').eq(1).find('[aria-label="The file is in the favorites"]')
cy.get('[data-test="media"]').eq(2).find('[aria-label="The file is in the favorites"]')
cy.get('[data-test="media"]').eq(1).find('[aria-label="Favorite"]')
cy.get('[data-test="media"]').eq(2).find('[aria-label="Favorite"]')
unfavoriteSelection()
unselectMedia([1, 2])
cy.get('[aria-label="The file is in the favorites"]').should('not.exist')
cy.get('[aria-label="Favorite"]').should('not.exist')
})
it('Download a file from a timeline', () => {
@ -107,6 +106,27 @@ describe('View list of photos in the main timeline', () => {
deleteAnAlbumFromAlbumContent()
})
it('Add file to a shared album from a timeline', () => {
cy.visit('apps/photos/albums')
createAnAlbumFromAlbums('timeline_test_shared_album')
addCollaborators([bob.userId])
cy.login(bob)
cy.visit('apps/photos')
selectMedia([0])
addFilesToAlbumFromTimeline('timeline_test_shared_album')
goToSharedAlbum('timeline_test_shared_album')
cy.get('[data-test="media"]').should('have.length', 1)
})
it('Add multiple files to a shared album from a timeline', () => {
cy.login(bob)
cy.visit('apps/photos')
selectMedia([1, 2])
addFilesToAlbumFromTimeline('timeline_test_shared_album')
goToSharedAlbum('timeline_test_shared_album')
cy.get('[data-test="media"]').should('have.length', 3)
})
it('Delete a file from photos', () => {
cy.get('[data-test="media"]').should('have.length', 5)
selectMedia([0])

View File

@ -1,32 +1,17 @@
/**
* @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
/* eslint-disable n/no-unpublished-import */
import axios from '@nextcloud/axios'
import axios from 'axios'
import { addCommands, User } from '@nextcloud/cypress'
import { addCompareSnapshotCommand } from 'cypress-visual-regression/dist/command'
import { basename } from 'path'
// Add custom commands
import 'cypress-wait-until'
addCommands()
addCompareSnapshotCommand()
// Register this file's custom commands types
declare global {
@ -85,31 +70,31 @@ Cypress.Commands.add('uploadFile', (user, fixture = 'image.jpg', mimeType = 'ima
*/
Cypress.Commands.add('uploadContent', (user, blob, mimeType, target) => {
cy.clearCookies()
.then(async () => {
const fileName = basename(target)
.then(async () => {
const fileName = basename(target)
// Process paths
const rootPath = `${Cypress.env('baseUrl')}/remote.php/dav/files/${encodeURIComponent(user.userId)}`
const filePath = target.split('/').map(encodeURIComponent).join('/')
try {
const file = new File([blob], fileName, { type: mimeType })
await axios({
url: `${rootPath}${filePath}`,
method: 'PUT',
data: file,
headers: {
'Content-Type': mimeType,
},
auth: {
username: user.userId,
password: user.password,
},
}).then(response => {
cy.log(`Uploaded content as ${fileName}`, response)
})
} catch (error) {
cy.log('error', error)
throw new Error(`Unable to process fixture`)
}
})
// Process paths
const rootPath = `${Cypress.env('baseUrl')}/remote.php/dav/files/${encodeURIComponent(user.userId)}`
const filePath = target.split('/').map(encodeURIComponent).join('/')
try {
const file = new File([blob], fileName, { type: mimeType })
await axios({
url: `${rootPath}${filePath}`,
method: 'PUT',
data: file,
headers: {
'Content-Type': mimeType,
},
auth: {
username: user.userId,
password: user.password,
},
}).then(response => {
cy.log(`Uploaded content as ${fileName}`, response)
})
} catch (error) {
cy.log('error', error)
throw new Error('Unable to process fixture')
}
})
})

View File

@ -1,4 +1,8 @@
<!DOCTYPE html>
<!--
- SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
<html>
<head>
<meta charset="utf-8">

View File

@ -1,23 +1,6 @@
/**
* @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { mount } from 'cypress/vue2'

View File

@ -1,22 +1,5 @@
/**
* @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import './commands'

View File

@ -1,23 +1,6 @@
/**
* @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
export const getSearchParams = url => {

View File

@ -1,4 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.0" viewBox="0 0 32 32">
<path fill="#fff" d="m2.6876 4c-0.395 0.0765-0.6946 0.4668-0.6875 0.875v22.25c0 0.46 0.424 0.876 0.875 0.876h26.25c0.4511-0.000012 0.87498-0.41692 0.875-0.875v-21.906c-0.001-0.6731-0.529-1.2229-1.031-1.219zm1.3124 1.9999 24 0.000014v10l-2-2-6 8-6-6-8 8h-2zm5.0002 2c-1.6569 0-3 1.3431-3 3s1.3431 3 3 3 3-1.3431 3-3-1.3431-3-3-3z"/>
</svg>
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M5 21c-.55 0-1.021-.196-1.412-.587A1.927 1.927 0 0 1 3 19V5c0-.55.196-1.021.588-1.413A1.926 1.926 0 0 1 5 3h14c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413v14a1.93 1.93 0 0 1-.587 1.413A1.93 1.93 0 0 1 19 21H5Zm0-2h14V5H5v14Zm1-2h12l-3.75-5-3 4L9 13l-3 4Zm-1 2V5v14Zm3.5-9a1.45 1.45 0 0 0 1.063-.437A1.45 1.45 0 0 0 10 8.5c0-.417-.146-.771-.437-1.062A1.447 1.447 0 0 0 8.5 7c-.417 0-.771.146-1.062.438A1.443 1.443 0 0 0 7 8.5c0 .417.146.771.438 1.063.291.291.645.437 1.062.437Z" style="fill:#fff;fill-rule:nonzero" transform="translate(-2.663 -2.663) scale(1.55418)"/></svg>

Before

Width:  |  Height:  |  Size: 493 B

After

Width:  |  Height:  |  Size: 760 B

View File

@ -1,4 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.0" viewBox="0 0 32 32">
<path fill="#fff" d="m2.6876 4c-0.395 0.0765-0.6946 0.4668-0.6875 0.875v22.25c0 0.46 0.424 0.876 0.875 0.876h26.25c0.4511-0.000012 0.87498-0.41692 0.875-0.875v-21.906c-0.001-0.6731-0.529-1.2229-1.031-1.219zm1.3124 1.9999 24 0.000014v10l-2-2-6 8-6-6-8 8h-2zm5.0002 2c-1.6569 0-3 1.3431-3 3s1.3431 3 3 3 3-1.3431 3-3-1.3431-3-3-3z"/>
</svg>
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M5 21c-.55 0-1.021-.196-1.412-.587A1.927 1.927 0 0 1 3 19V5c0-.55.196-1.021.588-1.413A1.926 1.926 0 0 1 5 3h14c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413v14a1.93 1.93 0 0 1-.587 1.413A1.93 1.93 0 0 1 19 21H5Zm0-2h14V5H5v14Zm1-2h12l-3.75-5-3 4L9 13l-3 4Zm-1 2V5v14Zm3.5-9a1.45 1.45 0 0 0 1.063-.437A1.45 1.45 0 0 0 10 8.5c0-.417-.146-.771-.437-1.062A1.447 1.447 0 0 0 8.5 7c-.417 0-.771.146-1.062.438A1.443 1.443 0 0 0 7 8.5c0 .417.146.771.438 1.063.291.291.645.437 1.062.437Z" style="fill:#fff;fill-rule:nonzero" transform="translate(-2.663 -2.663) scale(1.55418)"/></svg>

Before

Width:  |  Height:  |  Size: 493 B

After

Width:  |  Height:  |  Size: 760 B

View File

@ -1 +1 @@
<svg width="32" height="32" version="1.0" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><path d="m0.6875 2c-0.395 0.0765-0.6946 0.4668-0.6875 0.875v22.25c0 0.46 0.424 0.87695 0.875 0.87695h1.125v-4.002-17.125-0.875h0.6875 23.312v0.0019531h2v-0.78125c-1e-3 -0.6731-0.52925-1.2226-1.0312-1.2188l-26.281-0.0019531zm4 4c-0.395 0.0765-0.6946 0.4668-0.6875 0.875v22.25c0 0.46 0.424 0.87695 0.875 0.87695h26.25c0.4511-1.2e-5 0.87498-0.41692 0.875-0.875v-21.906c-1e-3 -0.6731-0.52925-1.2226-1.0312-1.2188l-26.281-0.0019531zm1.3125 2h24v10l-2-2-6 8-6-6-8 8h-2v-18zm5 2c-1.6569 0-3 1.3431-3 3s1.3431 3 3 3 3-1.3431 3-3-1.3431-3-3-3z" color="#000000" style="text-indent:0;text-transform:none"/></svg>
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M9 14h10l-3.45-4.5-2.3 3-1.55-2L9 14Zm-1 4c-.55 0-1.021-.196-1.412-.587A1.927 1.927 0 0 1 6 16V4c0-.55.196-1.021.588-1.413A1.926 1.926 0 0 1 8 2h12c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413v12a1.93 1.93 0 0 1-.587 1.413A1.93 1.93 0 0 1 20 18H8Zm0-2h12V4H8v12Zm-4 6c-.55 0-1.021-.196-1.412-.587A1.927 1.927 0 0 1 2 20V6h2v14h14v2H4ZM8 4v12V4Z" style="fill-rule:nonzero" transform="translate(-.797 -.797) scale(1.39859)"/></svg>

Before

Width:  |  Height:  |  Size: 699 B

After

Width:  |  Height:  |  Size: 615 B

BIN
js/photos-dashboard.js Normal file

Binary file not shown.

Binary file not shown.

BIN
js/photos-dashboard.js.map Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More