From 0bd380426587644eb312242fac289359a4bf5861 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Mon, 23 Sep 2024 03:54:31 +0200
Subject: [PATCH] New Sieve GUI improvements #80
---
dev/Sieve/Extensions/rfc5232.js | 9 +--
dev/Sieve/Grammar.js | 5 +-
dev/Sieve/View/Script.js | 2 +-
dev/Styles/User/SettingsFilters.less | 13 +++++
.../templates/Views/Sieve/AddFlagCommand.html | 4 +-
.../Views/Sieve/AddHeaderCommand.html | 6 +-
.../templates/Views/Sieve/AddressTest.html | 10 ++--
.../app/templates/Views/Sieve/BodyTest.html | 2 +-
.../Views/Sieve/CurrentDateTest.html | 6 +-
.../app/templates/Views/Sieve/DateTest.html | 14 ++---
.../Views/Sieve/DeleteHeaderCommand.html | 10 ++--
.../templates/Views/Sieve/ElsIfCommand.html | 18 +++---
.../templates/Views/Sieve/ElseCommand.html | 14 +++--
.../templates/Views/Sieve/EncloseCommand.html | 4 +-
.../templates/Views/Sieve/EnvelopeTest.html | 6 +-
.../Views/Sieve/EnvironmentTest.html | 4 +-
.../templates/Views/Sieve/ErejectCommand.html | 2 +-
.../templates/Views/Sieve/ErrorCommand.html | 2 +-
.../app/templates/Views/Sieve/ExistsTest.html | 2 +-
.../Views/Sieve/ExtractTextCommand.html | 4 +-
.../Views/Sieve/FileIntoCommand.html | 2 +-
.../Views/Sieve/ForEveryPartCommand.html | 2 +-
.../templates/Views/Sieve/GlobalCommand.html | 2 +-
.../templates/Views/Sieve/HasFlagTest.html | 4 +-
.../app/templates/Views/Sieve/HeaderTest.html | 58 +++++++++++--------
.../app/templates/Views/Sieve/IHaveTest.html | 2 +-
.../app/templates/Views/Sieve/IfCommand.html | 18 +++---
.../templates/Views/Sieve/IncludeCommand.html | 8 +--
.../Views/Sieve/MailboxExistsTest.html | 2 +-
.../Views/Sieve/MetadataExistsTest.html | 4 +-
.../templates/Views/Sieve/MetadataTest.html | 6 +-
.../templates/Views/Sieve/NotifyCommand.html | 10 ++--
.../Sieve/NotifyMethodCapabilityTest.html | 6 +-
.../templates/Views/Sieve/RejectCommand.html | 2 +-
.../Views/Sieve/RemoveFlagCommand.html | 4 +-
.../templates/Views/Sieve/ReplaceCommand.html | 8 +--
.../Views/Sieve/ServerMetadataExistsTest.html | 2 +-
.../Views/Sieve/ServerMetadataTest.html | 4 +-
.../app/templates/Views/Sieve/SetCommand.html | 4 +-
.../templates/Views/Sieve/SetFlagCommand.html | 4 +-
.../app/templates/Views/Sieve/SizeTest.html | 4 +-
.../templates/Views/Sieve/SpamTestTest.html | 4 +-
.../app/templates/Views/Sieve/StringTest.html | 4 +-
.../Views/Sieve/VacationCommand.html | 16 ++---
.../Views/Sieve/ValidExtListTest.html | 2 +-
.../Views/Sieve/ValidNotifyMethodTest.html | 2 +-
.../templates/Views/Sieve/VirusTestTest.html | 2 +-
.../app/templates/Views/Sieve/_Command.html | 2 +
48 files changed, 181 insertions(+), 144 deletions(-)
create mode 100644 snappymail/v/0.0.0/app/templates/Views/Sieve/_Command.html
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
-