diff options
Diffstat (limited to 'apps/workflowengine')
27 files changed, 142 insertions, 103 deletions
diff --git a/apps/workflowengine/appinfo/info.xml b/apps/workflowengine/appinfo/info.xml index 0ec29afd388..2c6b44eaa4f 100644 --- a/apps/workflowengine/appinfo/info.xml +++ b/apps/workflowengine/appinfo/info.xml @@ -5,7 +5,7 @@ <name>Nextcloud workflow engine</name> <summary>Nextcloud workflow engine</summary> <description>Nextcloud workflow engine</description> - <version>2.8.0</version> + <version>2.9.0</version> <licence>agpl</licence> <author>Arthur Schiwon</author> <author>Julius Härtl</author> @@ -22,7 +22,7 @@ <repository>https://github.com/nextcloud/server.git</repository> <dependencies> - <nextcloud min-version="26" max-version="26"/> + <nextcloud min-version="27" max-version="27"/> </dependencies> <background-jobs> diff --git a/apps/workflowengine/composer/composer/ClassLoader.php b/apps/workflowengine/composer/composer/ClassLoader.php index fd56bd7d840..a72151c77c8 100644 --- a/apps/workflowengine/composer/composer/ClassLoader.php +++ b/apps/workflowengine/composer/composer/ClassLoader.php @@ -429,7 +429,8 @@ class ClassLoader public function loadClass($class) { if ($file = $this->findFile($class)) { - (self::$includeFile)($file); + $includeFile = self::$includeFile; + $includeFile($file); return true; } @@ -560,7 +561,10 @@ class ClassLoader return false; } - private static function initializeIncludeClosure(): void + /** + * @return void + */ + private static function initializeIncludeClosure() { if (self::$includeFile !== null) { return; @@ -574,8 +578,8 @@ class ClassLoader * @param string $file * @return void */ - self::$includeFile = static function($file) { + self::$includeFile = \Closure::bind(static function($file) { include $file; - }; + }, null, null); } } diff --git a/apps/workflowengine/composer/composer/InstalledVersions.php b/apps/workflowengine/composer/composer/InstalledVersions.php index c6b54af7ba2..51e734a774b 100644 --- a/apps/workflowengine/composer/composer/InstalledVersions.php +++ b/apps/workflowengine/composer/composer/InstalledVersions.php @@ -98,7 +98,7 @@ class InstalledVersions { foreach (self::getInstalled() as $installed) { if (isset($installed['versions'][$packageName])) { - return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']); + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; } } @@ -119,7 +119,7 @@ class InstalledVersions */ public static function satisfies(VersionParser $parser, $packageName, $constraint) { - $constraint = $parser->parseConstraints($constraint); + $constraint = $parser->parseConstraints((string) $constraint); $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); return $provided->matches($constraint); @@ -328,7 +328,9 @@ class InstalledVersions if (isset(self::$installedByVendor[$vendorDir])) { $installed[] = self::$installedByVendor[$vendorDir]; } elseif (is_file($vendorDir.'/composer/installed.php')) { - $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ + $required = require $vendorDir.'/composer/installed.php'; + $installed[] = self::$installedByVendor[$vendorDir] = $required; if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { self::$installed = $installed[count($installed) - 1]; } @@ -340,12 +342,17 @@ class InstalledVersions // only require the installed.php file if this file is loaded from its dumped location, // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 if (substr(__DIR__, -8, 1) !== 'C') { - self::$installed = require __DIR__ . '/installed.php'; + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; } else { self::$installed = array(); } } - $installed[] = self::$installed; + + if (self::$installed !== array()) { + $installed[] = self::$installed; + } return $installed; } diff --git a/apps/workflowengine/composer/composer/installed.php b/apps/workflowengine/composer/composer/installed.php index a1f6a8636b4..1426826287d 100644 --- a/apps/workflowengine/composer/composer/installed.php +++ b/apps/workflowengine/composer/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => 'd51429a47232bbf46a2be832ecfa711f102da802', + 'reference' => 'dd3d689e04a5e1d558da937ca72980e0e2c7c404', 'type' => 'library', 'install_path' => __DIR__ . '/../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => 'd51429a47232bbf46a2be832ecfa711f102da802', + 'reference' => 'dd3d689e04a5e1d558da937ca72980e0e2c7c404', 'type' => 'library', 'install_path' => __DIR__ . '/../', 'aliases' => array(), diff --git a/apps/workflowengine/l10n/sr.js b/apps/workflowengine/l10n/sr.js index 4fdb39121aa..2ec55222278 100644 --- a/apps/workflowengine/l10n/sr.js +++ b/apps/workflowengine/l10n/sr.js @@ -36,10 +36,12 @@ OC.L10N.register( "Operation %s does not exist" : "Операција %s не постоји", "Operation %s is invalid" : "Операција %s није исправна", "At least one check needs to be provided" : "Треба да се зада бар једна провера", + "The provided operation data is too long" : "Наведени операциони подаци су сувише дугачки", "Invalid check provided" : "Задата неисправна потврда", "Check %s does not exist" : "Проверите да ли %s постоји", "Check %s is invalid" : "Проверите да ли је %s исправно", "Check %s is not allowed with this entity" : "Провера %s није дозвољена са овим ентитетом", + "The provided check value is too long" : "Наведена вредност за проверу је сувише дугачка", "Check #%s does not exist" : "Проверите да ли #%s постоји", "Check %s is invalid or does not exist" : "Проверите да ли је %s неисправно или не постоји", "Flow" : "Ток", @@ -52,6 +54,7 @@ OC.L10N.register( "Images" : "Слике", "Office documents" : "Канцеларијски документи", "PDF documents" : "PDF документи", + "Custom MIME type" : "Прилагођени MIME тип", "Custom mimetype" : "Произвољни MIME тип", "Please enter a valid time span" : "Унесите исправан временски распон", "Select a request URL" : "Одабери адресу захтева", @@ -77,6 +80,7 @@ OC.L10N.register( "Available flows" : "Доступни токови", "For details on how to write your own flow, check out the development documentation." : "За детаље како написати сопствени ток, погледајте програмерску документацију.", "More flows" : "Још токова", + "Browse the App Store" : "Прегледајте Продавницу апликација", "Show less" : "Прикажи мање", "Show more" : "Прикажи више", "Configured flows" : "Подешени токови", diff --git a/apps/workflowengine/l10n/sr.json b/apps/workflowengine/l10n/sr.json index 36af647a4ba..36cc52bf388 100644 --- a/apps/workflowengine/l10n/sr.json +++ b/apps/workflowengine/l10n/sr.json @@ -34,10 +34,12 @@ "Operation %s does not exist" : "Операција %s не постоји", "Operation %s is invalid" : "Операција %s није исправна", "At least one check needs to be provided" : "Треба да се зада бар једна провера", + "The provided operation data is too long" : "Наведени операциони подаци су сувише дугачки", "Invalid check provided" : "Задата неисправна потврда", "Check %s does not exist" : "Проверите да ли %s постоји", "Check %s is invalid" : "Проверите да ли је %s исправно", "Check %s is not allowed with this entity" : "Провера %s није дозвољена са овим ентитетом", + "The provided check value is too long" : "Наведена вредност за проверу је сувише дугачка", "Check #%s does not exist" : "Проверите да ли #%s постоји", "Check %s is invalid or does not exist" : "Проверите да ли је %s неисправно или не постоји", "Flow" : "Ток", @@ -50,6 +52,7 @@ "Images" : "Слике", "Office documents" : "Канцеларијски документи", "PDF documents" : "PDF документи", + "Custom MIME type" : "Прилагођени MIME тип", "Custom mimetype" : "Произвољни MIME тип", "Please enter a valid time span" : "Унесите исправан временски распон", "Select a request URL" : "Одабери адресу захтева", @@ -75,6 +78,7 @@ "Available flows" : "Доступни токови", "For details on how to write your own flow, check out the development documentation." : "За детаље како написати сопствени ток, погледајте програмерску документацију.", "More flows" : "Још токова", + "Browse the App Store" : "Прегледајте Продавницу апликација", "Show less" : "Прикажи мање", "Show more" : "Прикажи више", "Configured flows" : "Подешени токови", diff --git a/apps/workflowengine/l10n/sv.js b/apps/workflowengine/l10n/sv.js index a4a5a6141a3..e786e38b021 100644 --- a/apps/workflowengine/l10n/sv.js +++ b/apps/workflowengine/l10n/sv.js @@ -36,10 +36,12 @@ OC.L10N.register( "Operation %s does not exist" : "Operationen %s existerar inte", "Operation %s is invalid" : "Operationen %s är ogiltig", "At least one check needs to be provided" : "Minst en kontroll måste tillhandahållas", + "The provided operation data is too long" : "Den angivna operationsdatan är för lång", "Invalid check provided" : "Ogiltig kontroll angavs", "Check %s does not exist" : "Kontroll av %s existerar inte", "Check %s is invalid" : "Kontroll av %s är ogiltig", "Check %s is not allowed with this entity" : "Kontroll %s tillåts inte med denna enhet", + "The provided check value is too long" : "Det angivna kontrollvärdet är för långt", "Check #%s does not exist" : "Kontroll av #%s existerar inte", "Check %s is invalid or does not exist" : "Kontroll av %s är ogiltig eller existerar inte", "Flow" : "Flöde", @@ -50,8 +52,9 @@ OC.L10N.register( "e.g. httpd/unix-directory" : "t.ex. httpd/unix-directory", "Folder" : "Mapp", "Images" : "Bilder", - "Office documents" : "Officedokument", + "Office documents" : "Office-dokument", "PDF documents" : "PDF-dokument", + "Custom MIME type" : "Anpassad MIME-typ", "Custom mimetype" : "Anpassad mimetyp", "Please enter a valid time span" : "Ange ett giltigt tidsintervall", "Select a request URL" : "Välj en webbadress för begäran", diff --git a/apps/workflowengine/l10n/sv.json b/apps/workflowengine/l10n/sv.json index 6221181080c..4e318c7c770 100644 --- a/apps/workflowengine/l10n/sv.json +++ b/apps/workflowengine/l10n/sv.json @@ -34,10 +34,12 @@ "Operation %s does not exist" : "Operationen %s existerar inte", "Operation %s is invalid" : "Operationen %s är ogiltig", "At least one check needs to be provided" : "Minst en kontroll måste tillhandahållas", + "The provided operation data is too long" : "Den angivna operationsdatan är för lång", "Invalid check provided" : "Ogiltig kontroll angavs", "Check %s does not exist" : "Kontroll av %s existerar inte", "Check %s is invalid" : "Kontroll av %s är ogiltig", "Check %s is not allowed with this entity" : "Kontroll %s tillåts inte med denna enhet", + "The provided check value is too long" : "Det angivna kontrollvärdet är för långt", "Check #%s does not exist" : "Kontroll av #%s existerar inte", "Check %s is invalid or does not exist" : "Kontroll av %s är ogiltig eller existerar inte", "Flow" : "Flöde", @@ -48,8 +50,9 @@ "e.g. httpd/unix-directory" : "t.ex. httpd/unix-directory", "Folder" : "Mapp", "Images" : "Bilder", - "Office documents" : "Officedokument", + "Office documents" : "Office-dokument", "PDF documents" : "PDF-dokument", + "Custom MIME type" : "Anpassad MIME-typ", "Custom mimetype" : "Anpassad mimetyp", "Please enter a valid time span" : "Ange ett giltigt tidsintervall", "Select a request URL" : "Välj en webbadress för begäran", diff --git a/apps/workflowengine/l10n/tr.js b/apps/workflowengine/l10n/tr.js index b211ffe2c72..fcd8ed039c0 100644 --- a/apps/workflowengine/l10n/tr.js +++ b/apps/workflowengine/l10n/tr.js @@ -104,7 +104,7 @@ OC.L10N.register( "File system tag" : "Dosya sistemi etiketi", "is tagged with" : "şununla etiketlenmiş", "is not tagged with" : "şununla etiketlenmemiş", - "Request URL" : "İstek Adresi", + "Request URL" : "İstek adresi", "Request time" : "İstek zamanı", "between" : "şunların arasında olan", "not between" : "şunların arasında olmayan", @@ -115,6 +115,6 @@ OC.L10N.register( "Select a tag" : "Etiket seçin", "No results" : "Herhangi bir sonuç bulunamadı", "%s (invisible)" : "%s (görünmez)", - "%s (restricted)" : "%s (kısıtlı)" + "%s (restricted)" : "%s (kısıtlanmış)" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/workflowengine/l10n/tr.json b/apps/workflowengine/l10n/tr.json index c5d0ecedfa9..fbb120ed96d 100644 --- a/apps/workflowengine/l10n/tr.json +++ b/apps/workflowengine/l10n/tr.json @@ -102,7 +102,7 @@ "File system tag" : "Dosya sistemi etiketi", "is tagged with" : "şununla etiketlenmiş", "is not tagged with" : "şununla etiketlenmemiş", - "Request URL" : "İstek Adresi", + "Request URL" : "İstek adresi", "Request time" : "İstek zamanı", "between" : "şunların arasında olan", "not between" : "şunların arasında olmayan", @@ -113,6 +113,6 @@ "Select a tag" : "Etiket seçin", "No results" : "Herhangi bir sonuç bulunamadı", "%s (invisible)" : "%s (görünmez)", - "%s (restricted)" : "%s (kısıtlı)" + "%s (restricted)" : "%s (kısıtlanmış)" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/lib/AppInfo/Application.php b/apps/workflowengine/lib/AppInfo/Application.php index fb5514fecef..19ff530f2ae 100644 --- a/apps/workflowengine/lib/AppInfo/Application.php +++ b/apps/workflowengine/lib/AppInfo/Application.php @@ -36,16 +36,14 @@ use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; use OCP\AppFramework\Bootstrap\IBootstrap; use OCP\AppFramework\Bootstrap\IRegistrationContext; -use OCP\AppFramework\QueryException; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventDispatcher; -use OCP\ILogger; -use OCP\IServerContainer; use OCP\WorkflowEngine\Events\LoadSettingsScriptsEvent; use OCP\WorkflowEngine\IEntity; -use OCP\WorkflowEngine\IEntityCompat; use OCP\WorkflowEngine\IOperation; -use OCP\WorkflowEngine\IOperationCompat; +use Psr\Container\ContainerExceptionInterface; +use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; class Application extends App implements IBootstrap { public const APP_ID = 'workflowengine'; @@ -68,10 +66,10 @@ class Application extends App implements IBootstrap { } private function registerRuleListeners(IEventDispatcher $dispatcher, - IServerContainer $container, - ILogger $logger): void { + ContainerInterface $container, + LoggerInterface $logger): void { /** @var Manager $manager */ - $manager = $container->query(Manager::class); + $manager = $container->get(Manager::class); $configuredEvents = $manager->getAllConfiguredEvents(); foreach ($configuredEvents as $operationClass => $events) { @@ -83,9 +81,9 @@ class Application extends App implements IBootstrap { $ruleMatcher = $manager->getRuleMatcher(); try { /** @var IEntity $entity */ - $entity = $container->query($entityClass); + $entity = $container->get($entityClass); /** @var IOperation $operation */ - $operation = $container->query($operationClass); + $operation = $container->get($operationClass); $ruleMatcher->setEventName($eventName); $ruleMatcher->setEntity($entity); @@ -98,16 +96,12 @@ class Application extends App implements IBootstrap { ->setEventName($eventName); /** @var Logger $flowLogger */ - $flowLogger = $container->query(Logger::class); + $flowLogger = $container->get(Logger::class); $flowLogger->logEventInit($ctx); if ($event instanceof Event) { $entity->prepareRuleMatcher($ruleMatcher, $eventName, $event); $operation->onEvent($eventName, $event, $ruleMatcher); - } elseif ($entity instanceof IEntityCompat && $operation instanceof IOperationCompat) { - // TODO: Remove this block (and the compat classes) in the first major release in 2023 - $entity->prepareRuleMatcherCompat($ruleMatcher, $eventName, $event); - $operation->onEventCompat($eventName, $event, $ruleMatcher); } else { $logger->debug( 'Cannot handle event {name} of {event} against entity {entity} and operation {operation}', @@ -121,8 +115,8 @@ class Application extends App implements IBootstrap { ); } $flowLogger->logEventDone($ctx); - } catch (QueryException $e) { - // Ignore query exceptions since they might occur when an entity/operation were setup before by an app that is disabled now + } catch (ContainerExceptionInterface $e) { + // Ignore query exceptions since they might occur when an entity/operation were set up before by an app that is disabled now } } ); diff --git a/apps/workflowengine/lib/Check/FileSystemTags.php b/apps/workflowengine/lib/Check/FileSystemTags.php index 008f47eca78..351364c5562 100644 --- a/apps/workflowengine/lib/Check/FileSystemTags.php +++ b/apps/workflowengine/lib/Check/FileSystemTags.php @@ -30,7 +30,10 @@ use OCA\Files_Sharing\SharedStorage; use OCA\WorkflowEngine\Entity\File; use OCP\Files\Cache\ICache; use OCP\Files\IHomeStorage; +use OCP\IGroupManager; use OCP\IL10N; +use OCP\IUser; +use OCP\IUserSession; use OCP\SystemTag\ISystemTagManager; use OCP\SystemTag\ISystemTagObjectMapper; use OCP\SystemTag\TagNotFoundException; @@ -55,16 +58,23 @@ class FileSystemTags implements ICheck, IFileCheck { /** @var ISystemTagObjectMapper */ protected $systemTagObjectMapper; - - /** - * @param IL10N $l - * @param ISystemTagManager $systemTagManager - * @param ISystemTagObjectMapper $systemTagObjectMapper - */ - public function __construct(IL10N $l, ISystemTagManager $systemTagManager, ISystemTagObjectMapper $systemTagObjectMapper) { + /** @var IUserSession */ + protected $userSession; + /** @var IGroupManager */ + protected $groupManager; + + public function __construct( + IL10N $l, + ISystemTagManager $systemTagManager, + ISystemTagObjectMapper $systemTagObjectMapper, + IUserSession $userSession, + IGroupManager $groupManager + ) { $this->l = $l; $this->systemTagManager = $systemTagManager; $this->systemTagObjectMapper = $systemTagObjectMapper; + $this->userSession = $userSession; + $this->groupManager = $groupManager; } /** @@ -88,7 +98,18 @@ class FileSystemTags implements ICheck, IFileCheck { } try { - $this->systemTagManager->getTagsByIds($value); + $tags = $this->systemTagManager->getTagsByIds($value); + + $user = $this->userSession->getUser(); + $isAdmin = $user instanceof IUser && $this->groupManager->isAdmin($user->getUID()); + + if (!$isAdmin) { + foreach ($tags as $tag) { + if (!$tag->isUserVisible()) { + throw new \UnexpectedValueException($this->l->t('The given tag id is invalid'), 4); + } + } + } } catch (TagNotFoundException $e) { throw new \UnexpectedValueException($this->l->t('The given tag id is invalid'), 2); } catch (\InvalidArgumentException $e) { diff --git a/apps/workflowengine/src/components/Check.vue b/apps/workflowengine/src/components/Check.vue index 459c97a0d05..427835a7ec7 100644 --- a/apps/workflowengine/src/components/Check.vue +++ b/apps/workflowengine/src/components/Check.vue @@ -41,9 +41,9 @@ </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' -import NcActions from '@nextcloud/vue/dist/Components/NcActions' -import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton' +import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js' +import NcActions from '@nextcloud/vue/dist/Components/NcActions.js' +import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js' import ClickOutside from 'vue-click-outside' export default { diff --git a/apps/workflowengine/src/components/Checks/FileMimeType.vue b/apps/workflowengine/src/components/Checks/FileMimeType.vue index 86f1a6b8cb1..472edda613a 100644 --- a/apps/workflowengine/src/components/Checks/FileMimeType.vue +++ b/apps/workflowengine/src/components/Checks/FileMimeType.vue @@ -19,7 +19,6 @@ - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> - <template> <div> <NcMultiselect :value="currentValue" @@ -56,8 +55,8 @@ </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' -import valueMixin from './../../mixins/valueMixin' +import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js' +import valueMixin from './../../mixins/valueMixin.js' import { imagePath } from '@nextcloud/router' export default { @@ -144,24 +143,24 @@ export default { } </script> <style scoped lang="scss"> - .multiselect, input[type='text'] { - width: 100%; - } - .multiselect >>> .multiselect__content-wrapper li>span, - .multiselect >>> .multiselect__single { - display: flex; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } +.multiselect, input[type='text'] { + width: 100%; +} +.multiselect::v-deep .multiselect__content-wrapper li > span, +.multiselect::v-deep .multiselect__single { + display: flex; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} - .option__icon { - display: inline-block; - min-width: 30px; - background-position: left; - } +.option__icon { + display: inline-block; + min-width: 30px; + background-position: left; +} - .option__icon-img { - margin-right: 14px; - } +.option__icon-img { + margin-right: 14px; +} </style> diff --git a/apps/workflowengine/src/components/Checks/RequestTime.vue b/apps/workflowengine/src/components/Checks/RequestTime.vue index d8bfaff63a5..79a91c0e544 100644 --- a/apps/workflowengine/src/components/Checks/RequestTime.vue +++ b/apps/workflowengine/src/components/Checks/RequestTime.vue @@ -20,9 +20,9 @@ </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' +import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js' import moment from 'moment-timezone' -import valueMixin from '../../mixins/valueMixin' +import valueMixin from '../../mixins/valueMixin.js' const zones = moment.tz.names() export default { diff --git a/apps/workflowengine/src/components/Checks/RequestURL.vue b/apps/workflowengine/src/components/Checks/RequestURL.vue index 1a5b5cc7f87..28184a52eb5 100644 --- a/apps/workflowengine/src/components/Checks/RequestURL.vue +++ b/apps/workflowengine/src/components/Checks/RequestURL.vue @@ -50,8 +50,8 @@ </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' -import valueMixin from '../../mixins/valueMixin' +import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js' +import valueMixin from '../../mixins/valueMixin.js' export default { name: 'RequestURL', diff --git a/apps/workflowengine/src/components/Checks/RequestUserAgent.vue b/apps/workflowengine/src/components/Checks/RequestUserAgent.vue index c4a5265ac99..1d00bdc238d 100644 --- a/apps/workflowengine/src/components/Checks/RequestUserAgent.vue +++ b/apps/workflowengine/src/components/Checks/RequestUserAgent.vue @@ -52,8 +52,8 @@ </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' -import valueMixin from '../../mixins/valueMixin' +import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js' +import valueMixin from '../../mixins/valueMixin.js' export default { name: 'RequestUserAgent', diff --git a/apps/workflowengine/src/components/Checks/RequestUserGroup.vue b/apps/workflowengine/src/components/Checks/RequestUserGroup.vue index ba55d88c81c..cfb9c7dcc98 100644 --- a/apps/workflowengine/src/components/Checks/RequestUserGroup.vue +++ b/apps/workflowengine/src/components/Checks/RequestUserGroup.vue @@ -34,7 +34,7 @@ </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' +import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js' import axios from '@nextcloud/axios' import { generateOcsUrl } from '@nextcloud/router' diff --git a/apps/workflowengine/src/components/Checks/file.js b/apps/workflowengine/src/components/Checks/file.js index b244199c2cc..627eb393706 100644 --- a/apps/workflowengine/src/components/Checks/file.js +++ b/apps/workflowengine/src/components/Checks/file.js @@ -21,9 +21,9 @@ * */ -import { stringValidator, validateIPv4, validateIPv6 } from '../../helpers/validators' -import FileMimeType from './FileMimeType' -import FileSystemTag from './FileSystemTag' +import { stringValidator, validateIPv4, validateIPv6 } from '../../helpers/validators.js' +import FileMimeType from './FileMimeType.vue' +import FileSystemTag from './FileSystemTag.vue' const stringOrRegexOperators = () => { return [ diff --git a/apps/workflowengine/src/components/Checks/index.js b/apps/workflowengine/src/components/Checks/index.js index 11db7fafa9c..e342b3571c7 100644 --- a/apps/workflowengine/src/components/Checks/index.js +++ b/apps/workflowengine/src/components/Checks/index.js @@ -20,7 +20,7 @@ * */ -import FileChecks from './file' -import RequestChecks from './request' +import FileChecks from './file.js' +import RequestChecks from './request.js' export default [...FileChecks, ...RequestChecks] diff --git a/apps/workflowengine/src/components/Checks/request.js b/apps/workflowengine/src/components/Checks/request.js index c5ed0ece439..9f33bac6676 100644 --- a/apps/workflowengine/src/components/Checks/request.js +++ b/apps/workflowengine/src/components/Checks/request.js @@ -20,10 +20,10 @@ * */ -import RequestUserAgent from './RequestUserAgent' -import RequestTime from './RequestTime' -import RequestURL from './RequestURL' -import RequestUserGroup from './RequestUserGroup' +import RequestUserAgent from './RequestUserAgent.vue' +import RequestTime from './RequestTime.vue' +import RequestURL from './RequestURL.vue' +import RequestUserGroup from './RequestUserGroup.vue' const RequestChecks = [ { diff --git a/apps/workflowengine/src/components/Event.vue b/apps/workflowengine/src/components/Event.vue index be0030095e1..b2a68c16dbd 100644 --- a/apps/workflowengine/src/components/Event.vue +++ b/apps/workflowengine/src/components/Event.vue @@ -27,7 +27,7 @@ </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' +import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js' import { showWarning } from '@nextcloud/dialogs' export default { diff --git a/apps/workflowengine/src/components/Operation.vue b/apps/workflowengine/src/components/Operation.vue index 64875605b0b..7f338b20172 100644 --- a/apps/workflowengine/src/components/Operation.vue +++ b/apps/workflowengine/src/components/Operation.vue @@ -15,7 +15,7 @@ </template> <script> -import NcButton from '@nextcloud/vue/dist/Components/NcButton' +import NcButton from '@nextcloud/vue/dist/Components/NcButton.js' export default { name: 'Operation', diff --git a/apps/workflowengine/src/components/Rule.vue b/apps/workflowengine/src/components/Rule.vue index 4c5162da926..6b0abed88c8 100644 --- a/apps/workflowengine/src/components/Rule.vue +++ b/apps/workflowengine/src/components/Rule.vue @@ -53,17 +53,17 @@ </template> <script> -import Tooltip from '@nextcloud/vue/dist/Directives/Tooltip' -import NcActions from '@nextcloud/vue/dist/Components/NcActions' -import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton' -import NcButton from '@nextcloud/vue/dist/Components/NcButton' +import Tooltip from '@nextcloud/vue/dist/Directives/Tooltip.js' +import NcActions from '@nextcloud/vue/dist/Components/NcActions.js' +import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js' +import NcButton from '@nextcloud/vue/dist/Components/NcButton.js' import ArrowRight from 'vue-material-design-icons/ArrowRight.vue' import CheckMark from 'vue-material-design-icons/Check.vue' import Close from 'vue-material-design-icons/Close.vue' -import Event from './Event' -import Check from './Check' -import Operation from './Operation' +import Event from './Event.vue' +import Check from './Check.vue' +import Operation from './Operation.vue' export default { name: 'Rule', diff --git a/apps/workflowengine/src/components/Workflow.vue b/apps/workflowengine/src/components/Workflow.vue index bc33d03014d..937d89763dc 100644 --- a/apps/workflowengine/src/components/Workflow.vue +++ b/apps/workflowengine/src/components/Workflow.vue @@ -49,15 +49,15 @@ </template> <script> -import Rule from './Rule' -import Operation from './Operation' -import NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection' -import NcButton from '@nextcloud/vue/dist/Components/NcButton' +import Rule from './Rule.vue' +import Operation from './Operation.vue' +import NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js' +import NcButton from '@nextcloud/vue/dist/Components/NcButton.js' import { mapGetters, mapState } from 'vuex' import { generateUrl } from '@nextcloud/router' import { loadState } from '@nextcloud/initial-state' -import MenuUp from 'vue-material-design-icons/MenuUp' -import MenuDown from 'vue-material-design-icons/MenuDown' +import MenuUp from 'vue-material-design-icons/MenuUp.vue' +import MenuDown from 'vue-material-design-icons/MenuDown.vue' const ACTION_LIMIT = 3 diff --git a/apps/workflowengine/src/store.js b/apps/workflowengine/src/store.js index 1de22622c5a..49c881e67b6 100644 --- a/apps/workflowengine/src/store.js +++ b/apps/workflowengine/src/store.js @@ -27,7 +27,7 @@ import Vue from 'vue' import Vuex, { Store } from 'vuex' import axios from '@nextcloud/axios' -import { getApiUrl } from './helpers/api' +import { getApiUrl } from './helpers/api.js' import { confirmPassword } from '@nextcloud/password-confirmation' import '@nextcloud/password-confirmation/dist/style.css' import { loadState } from '@nextcloud/initial-state' diff --git a/apps/workflowengine/src/workflowengine.js b/apps/workflowengine/src/workflowengine.js index e3f3fc2d9c3..ae7efffba42 100644 --- a/apps/workflowengine/src/workflowengine.js +++ b/apps/workflowengine/src/workflowengine.js @@ -23,9 +23,9 @@ import Vue from 'vue' import Vuex from 'vuex' -import store from './store' -import Settings from './components/Workflow' -import ShippedChecks from './components/Checks' +import store from './store.js' +import Settings from './components/Workflow.vue' +import ShippedChecks from './components/Checks/index.js' /** * A plugin for displaying a custom value field for checks |