summaryrefslogtreecommitdiffstats
path: root/apps/workflowengine/src
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2019-12-23 12:22:22 +0100
committerJulius Härtl <jus@bitgrid.net>2019-12-27 08:45:39 +0100
commit8ec66d1e954d84900f3f1bdd5cd958aef5abd3eb (patch)
tree087604e79821b7e8357be30874baed8c1fca84f3 /apps/workflowengine/src
parente7ad0448261a6706053749ea7eaf4c34ddef17ef (diff)
downloadnextcloud-server-8ec66d1e954d84900f3f1bdd5cd958aef5abd3eb.tar.gz
nextcloud-server-8ec66d1e954d84900f3f1bdd5cd958aef5abd3eb.zip
Autofocus new filter and display proper error messages
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'apps/workflowengine/src')
-rw-r--r--apps/workflowengine/src/components/Check.vue7
-rw-r--r--apps/workflowengine/src/components/Rule.vue13
-rw-r--r--apps/workflowengine/src/store.js4
3 files changed, 19 insertions, 5 deletions
diff --git a/apps/workflowengine/src/components/Check.vue b/apps/workflowengine/src/components/Check.vue
index 96d686341fe..e447fbeb4bd 100644
--- a/apps/workflowengine/src/components/Check.vue
+++ b/apps/workflowengine/src/components/Check.vue
@@ -72,7 +72,7 @@ export default {
currentOption: null,
currentOperator: null,
options: [],
- valid: true,
+ valid: false,
}
},
computed: {
@@ -107,6 +107,11 @@ export default {
this.options = Object.values(this.checks)
this.currentOption = this.checks[this.check.class]
this.currentOperator = this.operators.find((operator) => operator.operator === this.check.operator)
+
+ if (this.check.class === null) {
+ this.$nextTick(() => this.$refs.checkSelector.$el.focus())
+ }
+ this.check.invalid = !this.validate()
},
methods: {
showDelete() {
diff --git a/apps/workflowengine/src/components/Rule.vue b/apps/workflowengine/src/components/Rule.vue
index bdcd4bfc0f0..5285005f53b 100644
--- a/apps/workflowengine/src/components/Rule.vue
+++ b/apps/workflowengine/src/components/Rule.vue
@@ -30,8 +30,7 @@
@input="updateOperation" />
</Operation>
<div class="buttons">
- <button v-tooltip="ruleStatus.tooltip"
- class="status-button icon"
+ <button class="status-button icon"
:class="ruleStatus.class"
@click="saveRule">
{{ ruleStatus.title }}
@@ -43,6 +42,7 @@
{{ t('workflowengine', 'Delete') }}
</button>
</div>
+ <p v-if="error" class="error-message">{{ error }}</p>
</div>
</div>
</template>
@@ -84,7 +84,7 @@ export default {
return this.$store.getters.getOperationForRule(this.rule)
},
ruleStatus() {
- if (this.error || !this.rule.valid || this.rule.checks.some((check) => check.invalid === true)) {
+ if (this.error || !this.rule.valid || this.rule.checks.length === 0 || this.rule.checks.some((check) => check.invalid === true)) {
return {
title: t('workflowengine', 'The configuration is invalid'),
class: 'icon-close-white invalid',
@@ -174,12 +174,19 @@ export default {
.buttons {
display: block;
+ overflow: hidden;
+
button {
float: right;
height: 34px;
}
}
+ .error-message {
+ float: right;
+ margin-right: 10px;
+ }
+
.status-button {
transition: 0.5s ease all;
display: block;
diff --git a/apps/workflowengine/src/store.js b/apps/workflowengine/src/store.js
index 70b8b550053..a8be467193d 100644
--- a/apps/workflowengine/src/store.js
+++ b/apps/workflowengine/src/store.js
@@ -98,7 +98,9 @@ const store = new Vuex.Store({
entity: entity ? entity.id : rule.fixedEntity,
events,
name: '', // unused in the new ui, there for legacy reasons
- checks: [],
+ checks: [
+ { class: null, operator: null, value: '' }
+ ],
operation: rule.operation || '',
})
},