Get the Sieve GUI partially working

This commit is contained in:
the-djmaze 2024-09-22 18:53:42 +02:00
parent 55c5910590
commit 7e45ffab74
11 changed files with 33 additions and 8 deletions

View file

@ -40,7 +40,7 @@ export class AddressTest extends TestCommand
this.header_list = new GrammarStringList;
this.key_list = new GrammarStringList;
// rfc5260#section-6
this.index = new GrammarNumber;
this.index = new GrammarNumber('');
this.last = false;
// rfc5703#section-6
// this.mime
@ -234,7 +234,7 @@ export class HeaderTest extends TestCommand
this.header_names = new GrammarStringList;
this.key_list = new GrammarStringList;
// rfc5260#section-6
this.index = new GrammarNumber;
this.index = new GrammarNumber('');
this.last = false;
// rfc5703#section-6
this.mime = false;

View file

@ -1,6 +1,7 @@
import { AbstractModel } from 'Sieve/Model/Abstract';
import { FilterModel } from 'Sieve/Model/Filter';
import { koArrayWithDestroy } from 'Sieve/Utils';
import { parseScript } from 'Sieve/Parser';
const SIEVE_FILE_NAME = 'rainloop.user';
@ -299,6 +300,10 @@ export class SieveScriptModel extends AbstractModel
return SIEVE_FILE_NAME === this.name();
}
parse() {
return parseScript(this.body(), this.name());
}
/**
* @static
* @param {FetchJsonScript} json

View file

@ -291,5 +291,6 @@ export const parseScript = (script, name = 'script.sieve') => {
}
tree.requires = requires;
tree.toString = () => tree.join('\r\n');
return tree;
};

View file

@ -132,6 +132,11 @@ export class SieveScriptPopupView extends rl.pluginPopupView {
});
}
templateName(obj) {
const id = 'Sieve' + obj.constructor.name;
return document.getElementById(id) ? id : null;
}
beforeShow(oScript) {
// onShow(oScript) {
this.sieveCapabilities(capa.join(' '));