Compare commits

..

24 Commits

Author SHA1 Message Date
Jérôme Herbinet
d35d8e5a50 Translation call fix
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2024-08-26 11:20:08 +00:00
Julius Härtl
50dea78147 Merge pull request #6256 from nextcloud/automated/noid/stable30-fix-npm-audit
[stable30] Fix npm audit
2024-08-26 08:11:01 +02:00
nextcloud-command
3f3b1a11d7 fix(deps): Fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2024-08-25 03:12:45 +00:00
Julius Härtl
c29686feec Merge pull request #6244 from nextcloud/dependabot/npm_and_yarn/stable30/nextcloud/vue-8.17.0 2024-08-24 10:10:50 +02:00
dependabot[bot]
086617563d Merge pull request #6246 from nextcloud/dependabot/npm_and_yarn/stable30/nextcloud/dialogs-5.3.7 2024-08-24 03:14:33 +00:00
dependabot[bot]
c7d7f2e5fe Merge pull request #6245 from nextcloud/dependabot/npm_and_yarn/stable30/babel/runtime-7.25.4 2024-08-24 03:13:33 +00:00
dependabot[bot]
ac19f517c5 Chore(deps): Bump @nextcloud/dialogs from 5.3.6 to 5.3.7
Bumps [@nextcloud/dialogs](https://github.com/nextcloud-libraries/nextcloud-dialogs) from 5.3.6 to 5.3.7.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-dialogs/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-dialogs/blob/v5.3.7/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-dialogs/compare/v5.3.6...v5.3.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-24 01:32:05 +00:00
dependabot[bot]
9a738ee7ac Chore(deps): Bump @babel/runtime from 7.25.0 to 7.25.4
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.25.0 to 7.25.4.
- [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.25.4/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-24 01:31:55 +00:00
dependabot[bot]
b81c249164 Chore(deps): Bump @nextcloud/vue from 8.16.0 to 8.17.0
Bumps [@nextcloud/vue](https://github.com/nextcloud-libraries/nextcloud-vue) from 8.16.0 to 8.17.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-vue/compare/v8.16.0...v8.17.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-24 01:31:46 +00:00
Nextcloud bot
20f74812ea Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-24 00:39:00 +00:00
Julius Härtl
63709be9ad Merge pull request #6210 from nextcloud/dependabot/npm_and_yarn/stable30/babel/runtime-7.25.0
Chore(deps): Bump @babel/runtime from 7.24.8 to 7.25.0
2024-08-22 17:41:55 +02:00
Nextcloud bot
a94efb4905 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-22 00:38:06 +00:00
dependabot[bot]
412a5d183e Merge pull request #6224 from nextcloud/dependabot/npm_and_yarn/stable30/nextcloud/dialogs-5.3.6 2024-08-17 04:04:45 +00:00
dependabot[bot]
e144303e26 Merge pull request #6223 from nextcloud/dependabot/npm_and_yarn/stable30/cypress-13.13.3 2024-08-17 04:02:03 +00:00
dependabot[bot]
fdb3a29256 Chore(deps): Bump @nextcloud/dialogs from 5.3.5 to 5.3.6
Bumps [@nextcloud/dialogs](https://github.com/nextcloud-libraries/nextcloud-dialogs) from 5.3.5 to 5.3.6.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-dialogs/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-dialogs/blob/v5.3.6/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-dialogs/compare/v5.3.5...v5.3.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-17 02:43:53 +00:00
dependabot[bot]
de760ac6fa Chore(deps-dev): Bump cypress from 13.13.2 to 13.13.3
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.13.2 to 13.13.3.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.13.2...v13.13.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-17 02:43:20 +00:00
dependabot[bot]
1e20832cd6 Merge pull request #6207 from nextcloud/dependabot/npm_and_yarn/stable30/nextcloud/auth-2.4.0 2024-08-16 18:59:29 +00:00
dependabot[bot]
8e77849027 Merge pull request #6213 from nextcloud/dependabot/npm_and_yarn/stable30/eslint-plugin-cypress-3.5.0 2024-08-16 18:59:02 +00:00
dependabot[bot]
147dadd1ab Chore(deps-dev): Bump eslint-plugin-cypress from 3.3.0 to 3.5.0
Bumps [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress) from 3.3.0 to 3.5.0.
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v3.3.0...v3.5.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-16 20:50:47 +02:00
dependabot[bot]
bd39df04f6 Chore(deps): Bump @babel/runtime from 7.24.8 to 7.25.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.24.8 to 7.25.0.
- [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.25.0/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-16 20:50:40 +02:00
dependabot[bot]
12f30e946e Chore(deps): Bump @nextcloud/auth from 2.3.0 to 2.4.0
Bumps [@nextcloud/auth](https://github.com/nextcloud/nextcloud-auth) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/nextcloud/nextcloud-auth/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-auth/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-auth/compare/v2.3.0...v2.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-16 20:50:34 +02:00
Julius Härtl
01a6f93730 Merge pull request #6205 from nextcloud/update-stable30-target-versions
chore(CI): Adjust testing matrix for Nextcloud 30 on stable30
2024-08-16 20:50:16 +02:00
Joas Schilling
c72bec7220 chore(CI): Adjust testing matrix for Nextcloud 30 on stable30
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-16 20:06:30 +02:00
Nextcloud bot
c9a5f9e79b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-15 00:45:54 +00:00
23 changed files with 262 additions and 176 deletions

View File

@@ -13,23 +13,6 @@ updates:
- juliushaertl
- luka-nextcloud
- package-ecosystem: npm
target-branch: stable30
versioning-strategy: lockfile-only
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
open-pull-requests-limit: 30
labels:
- 3. to review
- dependencies
- package-ecosystem: npm
target-branch: stable29
versioning-strategy: lockfile-only
@@ -64,6 +47,23 @@ updates:
- 3. to review
- dependencies
- package-ecosystem: npm
target-branch: stable27
versioning-strategy: lockfile-only
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
open-pull-requests-limit: 30
labels:
- 3. to review
- dependencies
- package-ecosystem: composer
directory: "/"
schedule:

View File

@@ -22,7 +22,7 @@ jobs:
node-version: [20.x]
# containers: [1, 2, 3]
php-versions: [ '8.2' ]
server-versions: [ 'master' ]
server-versions: [ 'stable30' ]
env:
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu

View File

@@ -28,7 +28,7 @@ jobs:
matrix:
php-versions: ['8.1']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['master']
server-versions: ['stable30']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}

View File

@@ -21,7 +21,7 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ['main', 'master', 'stable30', 'stable29', 'stable28']
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
name: npm-audit-fix-${{ matrix.branches }}

View File

@@ -39,7 +39,7 @@ jobs:
echo 'Can not approve PRs from forks'
exit 1
- uses: mdecoleman/pr-branch-name@bab4c71506bcd299fb350af63bb8e53f2940a599 # v2.0.0
- uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0
id: branchname
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -20,7 +20,7 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ['main', 'master', 'stable30', 'stable29', 'stable28']
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
name: update-nextcloud-ocp-${{ matrix.branches }}

View File

@@ -20,17 +20,17 @@
- 🚀 Get your project organized
</description>
<version>2.0.0-dev.0</version>
<version>1.14.0-beta.1</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<namespace>Deck</namespace>
<types>
<dav/>
</types>
<documentation>
<user>https://deck.readthedocs.io/en/latest/User_documentation_en/</user>
<developer>https://deck.readthedocs.io/en/latest/API/</developer>
</documentation>
<namespace>Deck</namespace>
<types>
<dav/>
</types>
<category>organization</category>
<category>office</category>
<website>https://github.com/nextcloud/deck</website>
@@ -42,7 +42,7 @@
<database min-version="9.4">pgsql</database>
<database>sqlite</database>
<database min-version="8.0">mysql</database>
<nextcloud min-version="31" max-version="31"/>
<nextcloud min-version="30" max-version="30"/>
</dependencies>
<background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job>

View File

@@ -15,7 +15,7 @@
"roave/security-advisories": "dev-master",
"phpunit/phpunit": "^9",
"nextcloud/coding-standard": "^1.1",
"nextcloud/ocp": "dev-master",
"nextcloud/ocp": "dev-stable30",
"psalm/phar": "^5.13"
},
"config": {

17
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "ee1c5b69795943e43d6277064d284ae0",
"content-hash": "7242ec950e99240a95e6b6d877fdd8d2",
"packages": [
{
"name": "icecave/parity",
@@ -440,16 +440,16 @@
},
{
"name": "nextcloud/ocp",
"version": "dev-master",
"version": "dev-stable30",
"source": {
"type": "git",
"url": "https://github.com/nextcloud-deps/ocp.git",
"reference": "b0127d6fd2932bf1fdffe334ae59fdd6c8272029"
"reference": "2a005250064759f206aa1b5a1ee000dcd808ef5b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/b0127d6fd2932bf1fdffe334ae59fdd6c8272029",
"reference": "b0127d6fd2932bf1fdffe334ae59fdd6c8272029",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/2a005250064759f206aa1b5a1ee000dcd808ef5b",
"reference": "2a005250064759f206aa1b5a1ee000dcd808ef5b",
"shasum": ""
},
"require": {
@@ -459,11 +459,10 @@
"psr/event-dispatcher": "^1.0",
"psr/log": "^1.1.4"
},
"default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "31.0.0-dev"
"dev-stable30": "30.0.0-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -479,9 +478,9 @@
"description": "Composer package containing Nextcloud's public API (classes, interfaces)",
"support": {
"issues": "https://github.com/nextcloud-deps/ocp/issues",
"source": "https://github.com/nextcloud-deps/ocp/tree/master"
"source": "https://github.com/nextcloud-deps/ocp/tree/stable30"
},
"time": "2024-08-14T08:51:54+00:00"
"time": "2024-08-14T08:51:38+00:00"
},
{
"name": "nikic/php-parser",

View File

@@ -149,8 +149,9 @@ OC.L10N.register(
"Filter by tag" : "Filtrer par étiquette",
"Filter by assigned user" : "Filtrer par utilisateur",
"Unassigned" : "Non attribué",
"Filter by status" : "Filtrer par statut",
"Open and completed" : "Ouvert et terminé",
"Open" : "Ouvrir",
"Open" : "Ouvert",
"Completed" : "Terminé",
"Filter by due date" : "Filtrer par échéance",
"Overdue" : "En retard",

View File

@@ -147,8 +147,9 @@
"Filter by tag" : "Filtrer par étiquette",
"Filter by assigned user" : "Filtrer par utilisateur",
"Unassigned" : "Non attribué",
"Filter by status" : "Filtrer par statut",
"Open and completed" : "Ouvert et terminé",
"Open" : "Ouvrir",
"Open" : "Ouvert",
"Completed" : "Terminé",
"Filter by due date" : "Filtrer par échéance",
"Overdue" : "En retard",

View File

@@ -12,17 +12,27 @@ use OCA\Deck\Notification\NotificationHelper;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\Job;
use Psr\Log\LoggerInterface;
use OCP\ILogger;
class ScheduledNotifications extends Job {
/** @var CardMapper */
protected $cardMapper;
/** @var NotificationHelper */
protected $notificationHelper;
/** @var ILogger */
protected $logger;
public function __construct(
ITimeFactory $time,
protected CardMapper $cardMapper,
protected NotificationHelper $notificationHelper,
protected LoggerInterface $logger
CardMapper $cardMapper,
NotificationHelper $notificationHelper,
ILogger $logger
) {
parent::__construct($time);
$this->cardMapper = $cardMapper;
$this->notificationHelper = $notificationHelper;
$this->logger = $logger;
}
/**

View File

@@ -14,19 +14,21 @@ namespace OCA\Deck\Cron;
use OCA\Deck\Service\SessionService;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\TimedJob;
use Psr\Log\LoggerInterface;
use OCP\ILogger;
class SessionsCleanup extends TimedJob {
private $sessionService;
private $documentService;
private $logger;
private $imageService;
public function __construct(
ITimeFactory $time,
private SessionService $sessionService,
private LoggerInterface $logger,
) {
public function __construct(ITimeFactory $time,
SessionService $sessionService,
ILogger $logger) {
parent::__construct($time);
$this->sessionService = $sessionService;
$this->logger = $logger;
$this->setInterval(SessionService::SESSION_VALID_TIME);
}

View File

@@ -10,17 +10,27 @@ use OCA\Deck\Service\DefaultBoardService;
use OCA\Deck\Service\PermissionService;
use OCP\AppFramework\Middleware;
use OCP\IL10N;
use Psr\Log\LoggerInterface;
use OCP\ILogger;
class DefaultBoardMiddleware extends Middleware {
public function __construct(
private LoggerInterface $logger,
private IL10N $l10n,
private DefaultBoardService $defaultBoardService,
private PermissionService $permissionService,
private ?string $userId,
) {
/** @var ILogger */
private $logger;
/** @var IL10N */
private $l10n;
/** @var DefaultBoardService */
private $defaultBoardService;
/** @var PermissionService */
private $permissionService;
/** @var string|null */
private $userId;
public function __construct(ILogger $logger, IL10N $l10n, DefaultBoardService $defaultBoardService, PermissionService $permissionService, $userId) {
$this->logger = $logger;
$this->l10n = $l10n;
$this->defaultBoardService = $defaultBoardService;
$this->permissionService = $permissionService;
$this->userId = $userId;
}
public function beforeController($controller, $methodName) {
@@ -29,7 +39,7 @@ class DefaultBoardMiddleware extends Middleware {
$this->defaultBoardService->createDefaultBoard($this->l10n->t('Personal'), $this->userId, '0087C5');
}
} catch (\Throwable $e) {
$this->logger->error('Could not create default board', ['exception' => $e]);
$this->logger->logException($e);
}
}
}

View File

@@ -15,19 +15,28 @@ use OCP\AppFramework\Middleware;
use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCSController;
use OCP\IConfig;
use OCP\ILogger;
use OCP\IRequest;
use Psr\Log\LoggerInterface;
class ExceptionMiddleware extends Middleware {
/** @var ILogger */
private $logger;
/** @var IConfig */
private $config;
/** @var IRequest */
private $request;
/**
* SharingMiddleware constructor.
*
* @param ILogger $logger
* @param IConfig $config
*/
public function __construct(
private LoggerInterface $logger,
private IConfig $config,
private IRequest $request,
) {
public function __construct(ILogger $logger, IConfig $config, IRequest $request) {
$this->logger = $logger;
$this->config = $config;
$this->request = $request;
}
/**
@@ -60,7 +69,9 @@ class ExceptionMiddleware extends Middleware {
}
if ($exception instanceof StatusException) {
$this->logger->debug($exception->getMessage(), ['exception' => $exception]);
if ($this->config->getSystemValue('loglevel', ILogger::WARN) === ILogger::DEBUG) {
$this->logger->logException($exception);
}
if ($exception instanceof ConflictException) {
return new JSONResponse([
@@ -87,7 +98,7 @@ class ExceptionMiddleware extends Middleware {
'message' => $exceptionMessage,
'requestId' => $this->request->getId(),
];
$this->logger->error($exception->getMessage(), ['exception' => $exception]);
$this->logger->logException($exception);
if ($debugMode === true) {
$response['exception'] = (array) $exception;
}

View File

@@ -17,22 +17,26 @@ use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
use OCP\Comments\MessageTooLongException;
use OCP\Comments\NotFoundException as CommentNotFoundException;
use OCP\ILogger;
use OCP\IUserManager;
use OutOfBoundsException;
use Psr\Log\LoggerInterface;
use function is_numeric;
class CommentService {
private ICommentsManager $commentsManager;
private IUserManager $userManager;
private CardMapper $cardMapper;
private PermissionService $permissionService;
private ILogger $logger;
private ?string $userId;
public function __construct(
private ICommentsManager $commentsManager,
private PermissionService $permissionService,
private CardMapper $cardMapper,
private IUserManager $userManager,
private LoggerInterface $logger,
private ?string $userId,
) {
public function __construct(ICommentsManager $commentsManager, PermissionService $permissionService, CardMapper $cardMapper, IUserManager $userManager, ILogger $logger, ?string $userId) {
$this->commentsManager = $commentsManager;
$this->permissionService = $permissionService;
$this->cardMapper = $cardMapper;
$this->userManager = $userManager;
$this->logger = $logger;
$this->userId = $userId;
}
public function list(string $cardId, int $limit = 20, int $offset = 0): DataResponse {
@@ -183,8 +187,8 @@ class CommentService {
try {
$displayName = $this->commentsManager->resolveDisplayName($mention['type'], $mention['id']);
} catch (OutOfBoundsException $e) {
$this->logger->warning('Mention type not registered, can not resolve display name.', ['exception' => $e, 'mention_type' => $mention['type']]);
// No display name, upon client's discretion what to display.
$this->logger->logException($e);
// No displayname, upon client's discretion what to display.
$displayName = '';
}

View File

@@ -20,21 +20,37 @@ use OCP\Files\SimpleFS\ISimpleFile;
use OCP\Files\SimpleFS\ISimpleFolder;
use OCP\IConfig;
use OCP\IL10N;
use OCP\ILogger;
use OCP\IRequest;
use Psr\Log\LoggerInterface;
class FileService implements IAttachmentService {
private $l10n;
private $appData;
private $request;
private $logger;
private $rootFolder;
private $config;
private $attachmentMapper;
private $mimeTypeDetector;
public function __construct(
private IL10N $l10n,
private IAppData $appData,
private IRequest $request,
private LoggerInterface $logger,
private IRootFolder $rootFolder,
private IConfig $config,
private AttachmentMapper $attachmentMapper,
private IMimeTypeDetector $mimeTypeDetector
IL10N $l10n,
IAppData $appData,
IRequest $request,
ILogger $logger,
IRootFolder $rootFolder,
IConfig $config,
AttachmentMapper $attachmentMapper,
IMimeTypeDetector $mimeTypeDetector
) {
$this->l10n = $l10n;
$this->appData = $appData;
$this->request = $request;
$this->logger = $logger;
$this->rootFolder = $rootFolder;
$this->config = $config;
$this->attachmentMapper = $attachmentMapper;
$this->mimeTypeDetector = $mimeTypeDetector;
}
/**
@@ -177,7 +193,6 @@ class FileService implements IAttachmentService {
/**
* Workaround until ISimpleFile can be fetched as a resource
*
* @return \OCP\Files\File
* @throws \Exception
*/
private function getFileFromRootFolder(Attachment $attachment) {

126
package-lock.json generated
View File

@@ -1,20 +1,20 @@
{
"name": "deck",
"version": "2.0.0-dev.0",
"version": "1.14.0-beta.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "deck",
"version": "2.0.0-dev.0",
"version": "1.14.0-beta.1",
"license": "agpl",
"dependencies": {
"@babel/polyfill": "^7.12.1",
"@babel/runtime": "^7.25.0",
"@nextcloud/auth": "^2.4.0",
"@babel/runtime": "^7.24.8",
"@nextcloud/auth": "^2.3.0",
"@nextcloud/axios": "^2.5.0",
"@nextcloud/capabilities": "^1.2.0",
"@nextcloud/dialogs": "^6.0.0",
"@nextcloud/dialogs": "^5.3.5",
"@nextcloud/event-bus": "^3.3.1",
"@nextcloud/files": "^3.8.0",
"@nextcloud/initial-state": "^2.2.0",
@@ -55,8 +55,8 @@
"@relative-ci/agent": "^4.2.10",
"@vue/test-utils": "^2.4.6",
"@vue/vue2-jest": "^29.2.6",
"cypress": "^13.13.3",
"eslint-plugin-cypress": "^3.5.0",
"cypress": "^13.13.2",
"eslint-plugin-cypress": "^3.3.0",
"eslint-webpack-plugin": "^4.2.0",
"jest": "^29.7.0",
"jest-serializer-vue": "^3.1.0",
@@ -1917,9 +1917,9 @@
"peer": true
},
"node_modules/@babel/runtime": {
"version": "7.25.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz",
"integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==",
"version": "7.25.4",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.4.tgz",
"integrity": "sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -3526,9 +3526,9 @@
}
},
"node_modules/@nextcloud/dialogs": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@nextcloud/dialogs/-/dialogs-6.0.0.tgz",
"integrity": "sha512-Yoye/BezFN/hQCic+OHNPSESNI3k7D85YQJU1fW4s/yMi+P6VVNLixp4lbQ7xHF+po5lXZbJhultrOyoNhqaGw==",
"version": "5.3.7",
"resolved": "https://registry.npmjs.org/@nextcloud/dialogs/-/dialogs-5.3.7.tgz",
"integrity": "sha512-//pRF2GJNhW3VbVzSoE97J+DR9nZ/+IkzOzgKKDdMr65JYYMAdOs9Iew4nMf+OruDgZanGyXrfubSMVNI+1svQ==",
"dependencies": {
"@mdi/js": "^7.4.47",
"@nextcloud/auth": "^2.3.0",
@@ -3552,7 +3552,7 @@
"npm": "^10.0.0"
},
"peerDependencies": {
"@nextcloud/vue": "^8.16.0",
"@nextcloud/vue": "^8.9.1",
"vue": "^2.7.16"
}
},
@@ -3895,9 +3895,9 @@
}
},
"node_modules/@nextcloud/vue": {
"version": "8.16.0",
"resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.16.0.tgz",
"integrity": "sha512-xkoR2VeWk+WTTmXC01Z7hI0yztSf222XMPXhy9OkDNQBXmCl/idEjNnMWmxezJMyqALtFD/csouW+GS7JUVoFw==",
"version": "8.17.0",
"resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.17.0.tgz",
"integrity": "sha512-BylZZlJcGiEfBO9k/TE8iuKEzzSfmxek1fFwU2fpo0xUDxH9qQurMdTli3ix/kgXaBJgwBD8H8hjzYirpAYbXg==",
"dependencies": {
"@floating-ui/dom": "^1.1.0",
"@linusborg/vue-simple-portal": "^0.1.5",
@@ -3913,8 +3913,8 @@
"@nextcloud/sharing": "^0.2.2",
"@nextcloud/timezones": "^0.1.1",
"@nextcloud/vue-select": "^3.25.0",
"@vueuse/components": "^10.9.0",
"@vueuse/core": "^10.9.0",
"@vueuse/components": "^11.0.0",
"@vueuse/core": "^11.0.0",
"clone": "^2.1.2",
"debounce": "2.1.0",
"dompurify": "^3.0.5",
@@ -5128,19 +5128,19 @@
}
},
"node_modules/@vueuse/components": {
"version": "10.9.0",
"resolved": "https://registry.npmjs.org/@vueuse/components/-/components-10.9.0.tgz",
"integrity": "sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==",
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/@vueuse/components/-/components-11.0.1.tgz",
"integrity": "sha512-iZYHc7XcZ2NqpEaSiDXF6qcVcCzAwnA74s+ZV8aHJhdxO61BFpACGuT32Jb5oR+pVc6dfrUUspcCoYzLcFtOOA==",
"dependencies": {
"@vueuse/core": "10.9.0",
"@vueuse/shared": "10.9.0",
"vue-demi": ">=0.14.7"
"@vueuse/core": "11.0.1",
"@vueuse/shared": "11.0.1",
"vue-demi": ">=0.14.10"
}
},
"node_modules/@vueuse/components/node_modules/vue-demi": {
"version": "0.14.7",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz",
"integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
"version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
@@ -5163,23 +5163,23 @@
}
},
"node_modules/@vueuse/core": {
"version": "10.9.0",
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.9.0.tgz",
"integrity": "sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==",
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-11.0.1.tgz",
"integrity": "sha512-YTrekI18WwEyP3h168Fir94G/HNC27wvXJI21Alm0sPOwvhihfkrvHIe+5PNJq+MpgWdRcsjvE/38JaoKrgZhQ==",
"dependencies": {
"@types/web-bluetooth": "^0.0.20",
"@vueuse/metadata": "10.9.0",
"@vueuse/shared": "10.9.0",
"vue-demi": ">=0.14.7"
"@vueuse/metadata": "11.0.1",
"@vueuse/shared": "11.0.1",
"vue-demi": ">=0.14.10"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
}
},
"node_modules/@vueuse/core/node_modules/vue-demi": {
"version": "0.14.7",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz",
"integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
"version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
@@ -5202,28 +5202,28 @@
}
},
"node_modules/@vueuse/metadata": {
"version": "10.9.0",
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.9.0.tgz",
"integrity": "sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==",
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-11.0.1.tgz",
"integrity": "sha512-dTFvuHFAjLYOiSd+t9Sk7xUiuL6jbfay/eX+g+jaipXXlwKur2VCqBCZX+jfu+2vROUGcUsdn3fJR9KkpadIOg==",
"funding": {
"url": "https://github.com/sponsors/antfu"
}
},
"node_modules/@vueuse/shared": {
"version": "10.9.0",
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.9.0.tgz",
"integrity": "sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==",
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-11.0.1.tgz",
"integrity": "sha512-eAPf5CQB3HR0S76HqrhjBqFYstZfiHWZq8xF9EQmobGBkrhPfErJEhr8aMNQMqd6MkENIx2pblIEfJGlHpClug==",
"dependencies": {
"vue-demi": ">=0.14.7"
"vue-demi": ">=0.14.10"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
}
},
"node_modules/@vueuse/shared/node_modules/vue-demi": {
"version": "0.14.7",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz",
"integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
"version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
@@ -5963,9 +5963,10 @@
"dev": true
},
"node_modules/axios": {
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
"integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
"version": "1.7.5",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz",
"integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
@@ -8494,6 +8495,7 @@
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz",
"integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"bn.js": "^4.11.9",
@@ -10513,6 +10515,21 @@
"dev": true,
"license": "ISC"
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind": {
"version": "1.1.1",
"dev": true,
@@ -15432,12 +15449,13 @@
]
},
"node_modules/micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
"license": "MIT",
"dependencies": {
"braces": "^3.0.2",
"braces": "^3.0.3",
"picomatch": "^2.3.1"
},
"engines": {

View File

@@ -1,7 +1,7 @@
{
"name": "deck",
"description": "",
"version": "2.0.0-dev.0",
"version": "1.14.0-beta.1",
"authors": [
{
"name": "Julius Härtl",
@@ -31,11 +31,11 @@
},
"dependencies": {
"@babel/polyfill": "^7.12.1",
"@babel/runtime": "^7.25.0",
"@nextcloud/auth": "^2.4.0",
"@babel/runtime": "^7.24.8",
"@nextcloud/auth": "^2.3.0",
"@nextcloud/axios": "^2.5.0",
"@nextcloud/capabilities": "^1.2.0",
"@nextcloud/dialogs": "^6.0.0",
"@nextcloud/dialogs": "^5.3.5",
"@nextcloud/event-bus": "^3.3.1",
"@nextcloud/files": "^3.8.0",
"@nextcloud/initial-state": "^2.2.0",
@@ -83,8 +83,8 @@
"@relative-ci/agent": "^4.2.10",
"@vue/test-utils": "^2.4.6",
"@vue/vue2-jest": "^29.2.6",
"cypress": "^13.13.3",
"eslint-plugin-cypress": "^3.5.0",
"cypress": "^13.13.2",
"eslint-plugin-cypress": "^3.3.0",
"eslint-webpack-plugin": "^4.2.0",
"jest": "^29.7.0",
"jest-serializer-vue": "^3.1.0",

View File

@@ -4,7 +4,7 @@
-->
<template>
<div :title="t('text', 'Currently present people')"
<div :title="t('deck', 'Currently present people')"
class="avatar-list">
<div v-for="session in sessionsVisible"
:key="session.uid"

View File

@@ -27,24 +27,29 @@ use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Notification\NotificationHelper;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\ILogger;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
class ScheduledNoificationsTest extends TestCase {
protected ITimeFactory&MockObject $timeFactory;
protected CardMapper&MockObject $cardMapper;
protected NotificationHelper&MockObject $notificationHelper;
protected LoggerInterface&MockObject $logger;
protected ScheduledNotifications $scheduledNotifications;
/** @var ITimeFactory|MockObject */
protected $timeFactory;
/** @var CardMapper|MockObject */
protected $cardMapper;
/** @var NotificationHelper|MockObject */
protected $notificationHelper;
/** @var ILogger|MockObject */
protected $logger;
/** @var ScheduledNotifications */
protected $scheduledNotifications;
public function setUp(): void {
parent::setUp();
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->cardMapper = $this->createMock(CardMapper::class);
$this->notificationHelper = $this->createMock(NotificationHelper::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->logger = $this->createMock(ILogger::class);
$this->scheduledNotifications = new ScheduledNotifications($this->timeFactory, $this->cardMapper, $this->notificationHelper, $this->logger);
}

View File

@@ -32,20 +32,21 @@ use OCA\Deck\Service\PermissionService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\JSONResponse;
use OCP\IConfig;
use OCP\ILogger;
use OCP\IRequest;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class ExceptionMiddlewareTest extends \Test\TestCase {
private LoggerInterface&MockObject $logger;
private IConfig&MockObject $config;
private IRequest&MockObject $request;
private Controller&MockObject $controller;
/** @var ILogger */
private $logger;
/** @var IConfig */
private $config;
private $request;
private $controller;
private $exceptionMiddleware;
public function setUp(): void {
$this->logger = $this->createMock(LoggerInterface::class);
$this->logger = $this->createMock(ILogger::class);
$this->config = $this->createMock(IConfig::class);
$this->request = $this->createMock(IRequest::class);
$this->controller = $this->createMock(Controller::class);

View File

@@ -34,29 +34,38 @@ use OCP\Files\SimpleFS\ISimpleFile;
use OCP\Files\SimpleFS\ISimpleFolder;
use OCP\IConfig;
use OCP\IL10N;
use OCP\ILogger;
use OCP\IRequest;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
class FileServiceTest extends TestCase {
private IL10N&MockObject $l10n;
private IAppData&MockObject $appData;
private IRequest&MockObject $request;
private LoggerInterface&MockObject $logger;
private IRootFolder&MockObject $rootFolder;
private IConfig&MockObject $config;
private AttachmentMapper&MockObject $attachmentMapper;
private IMimeTypeDetector&MockObject $mimeTypeDetector;
private FileService $fileService;
/** @var IL10N|MockObject */
private $l10n;
/** @var IAppData|MockObject */
private $appData;
/** @var IRequest|MockObject */
private $request;
/** @var ILogger|MockObject */
private $logger;
/** @var FileService */
private $fileService;
/** @var IRootFolder */
private $rootFolder;
/** @var IConfig */
private $config;
/** @var AttachmentMapper|MockObject */
private $attachmentMapper;
/** @var IMimeTypeDetector|MockObject */
private $mimeTypeDetector;
public function setUp(): void {
parent::setUp();
$this->request = $this->createMock(IRequest::class);
$this->appData = $this->createMock(IAppData::class);
$this->l10n = $this->createMock(IL10N::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->logger = $this->createMock(ILogger::class);
$this->rootFolder = $this->createMock(IRootFolder::class);
$this->config = $this->createMock(IConfig::class);
$this->attachmentMapper = $this->createMock(AttachmentMapper::class);