diff --git a/dev/Sieve/Extensions/rfc5232.js b/dev/Sieve/Extensions/rfc5232.js
index 002ad0b7a..0577cde1d 100644
--- a/dev/Sieve/Extensions/rfc5232.js
+++ b/dev/Sieve/Extensions/rfc5232.js
@@ -43,11 +43,12 @@ class FlagCommand extends ActionCommand
if (args[0] instanceof GrammarQuotedString) {
this._variablename = args[0];
}
- if (args[1] instanceof GrammarString) {
- this.list_of_flags = args[1];
- }
- } else if (args[0] instanceof GrammarString) {
+ args[0] = args[1];
+ }
+ if (args[0] instanceof GrammarStringList) {
this.list_of_flags = args[0];
+ } else if (args[0]) {
+ this.list_of_flags.push(args[0]);
}
}
}
diff --git a/dev/Sieve/Grammar.js b/dev/Sieve/Grammar.js
index e570966ba..5fb21c71e 100644
--- a/dev/Sieve/Grammar.js
+++ b/dev/Sieve/Grammar.js
@@ -18,7 +18,7 @@ export class GrammarString /*extends String*/
{
constructor(value = '')
{
- this._value = value;
+ this._value = value.toString ? value.toString() : value;
}
toString()
@@ -227,6 +227,7 @@ export class GrammarStringList extends Array
{
toString()
{
+ // if there is only a single string, the brackets are optional
if (1 < this.length) {
return '[' + this.join(',') + ']';
}
@@ -235,7 +236,7 @@ export class GrammarStringList extends Array
push(value)
{
- if (!(value instanceof GrammarString)) {
+ if (!(value instanceof GrammarQuotedString)) {
value = new GrammarQuotedString(value);
}
super.push(value);
diff --git a/dev/Sieve/View/Script.js b/dev/Sieve/View/Script.js
index c7c3dcfcf..02ebbb9ef 100644
--- a/dev/Sieve/View/Script.js
+++ b/dev/Sieve/View/Script.js
@@ -134,7 +134,7 @@ export class SieveScriptPopupView extends rl.pluginPopupView {
templateName(obj) {
const id = 'Sieve' + obj.constructor.name;
- return document.getElementById(id) ? id : null;
+ return document.getElementById(id) ? id : 'SieveCommand';
}
beforeShow(oScript) {
diff --git a/dev/Styles/User/SettingsFilters.less b/dev/Styles/User/SettingsFilters.less
index ef70221b8..ea8073585 100644
--- a/dev/Styles/User/SettingsFilters.less
+++ b/dev/Styles/User/SettingsFilters.less
@@ -34,3 +34,16 @@
height: 300px;
font-family: var(--fontMono);
}
+
+.sieve-block {
+ border: 1px solid var(--border-color, #ddd);
+ margin: 1em 0;
+ padding: 0.5em;
+}
+
+.sieve-block > div {
+ padding-left:2em;
+}
+.sieve-block > details > div {
+ padding-left:1em;
+}
diff --git a/snappymail/v/0.0.0/app/templates/Views/Sieve/AddFlagCommand.html b/snappymail/v/0.0.0/app/templates/Views/Sieve/AddFlagCommand.html
index 58bcabdf4..01cd7af92 100644
--- a/snappymail/v/0.0.0/app/templates/Views/Sieve/AddFlagCommand.html
+++ b/snappymail/v/0.0.0/app/templates/Views/Sieve/AddFlagCommand.html
@@ -1,4 +1,4 @@
addflag
-
-
+
+
diff --git a/snappymail/v/0.0.0/app/templates/Views/Sieve/AddHeaderCommand.html b/snappymail/v/0.0.0/app/templates/Views/Sieve/AddHeaderCommand.html
index d77e6acfc..0afbd1934 100644
--- a/snappymail/v/0.0.0/app/templates/Views/Sieve/AddHeaderCommand.html
+++ b/snappymail/v/0.0.0/app/templates/Views/Sieve/AddHeaderCommand.html
@@ -1,5 +1,5 @@
addheader
-
-
-
+
+
+
diff --git a/snappymail/v/0.0.0/app/templates/Views/Sieve/AddressTest.html b/snappymail/v/0.0.0/app/templates/Views/Sieve/AddressTest.html
index 370d806dc..977eb785c 100644
--- a/snappymail/v/0.0.0/app/templates/Views/Sieve/AddressTest.html
+++ b/snappymail/v/0.0.0/app/templates/Views/Sieve/AddressTest.html
@@ -1,13 +1,13 @@
address
-