aboutsummaryrefslogtreecommitdiffstats
path: root/apps/workflowengine
diff options
context:
space:
mode:
Diffstat (limited to 'apps/workflowengine')
-rw-r--r--apps/workflowengine/appinfo/info.xml4
-rw-r--r--apps/workflowengine/composer/composer/ClassLoader.php12
-rw-r--r--apps/workflowengine/composer/composer/InstalledVersions.php17
-rw-r--r--apps/workflowengine/composer/composer/installed.php4
-rw-r--r--apps/workflowengine/l10n/sr.js4
-rw-r--r--apps/workflowengine/l10n/sr.json4
-rw-r--r--apps/workflowengine/l10n/sv.js5
-rw-r--r--apps/workflowengine/l10n/sv.json5
-rw-r--r--apps/workflowengine/l10n/tr.js4
-rw-r--r--apps/workflowengine/l10n/tr.json4
-rw-r--r--apps/workflowengine/lib/AppInfo/Application.php28
-rw-r--r--apps/workflowengine/lib/Check/FileSystemTags.php37
-rw-r--r--apps/workflowengine/src/components/Check.vue6
-rw-r--r--apps/workflowengine/src/components/Checks/FileMimeType.vue41
-rw-r--r--apps/workflowengine/src/components/Checks/RequestTime.vue4
-rw-r--r--apps/workflowengine/src/components/Checks/RequestURL.vue4
-rw-r--r--apps/workflowengine/src/components/Checks/RequestUserAgent.vue4
-rw-r--r--apps/workflowengine/src/components/Checks/RequestUserGroup.vue2
-rw-r--r--apps/workflowengine/src/components/Checks/file.js6
-rw-r--r--apps/workflowengine/src/components/Checks/index.js4
-rw-r--r--apps/workflowengine/src/components/Checks/request.js8
-rw-r--r--apps/workflowengine/src/components/Event.vue2
-rw-r--r--apps/workflowengine/src/components/Operation.vue2
-rw-r--r--apps/workflowengine/src/components/Rule.vue14
-rw-r--r--apps/workflowengine/src/components/Workflow.vue12
-rw-r--r--apps/workflowengine/src/store.js2
-rw-r--r--apps/workflowengine/src/workflowengine.js6
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