mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-08 00:47:04 +03:00
New Sieve GUI improvements #80
This commit is contained in:
parent
ffc2da33f8
commit
0bd3804265
48 changed files with 181 additions and 144 deletions
|
|
@ -43,11 +43,12 @@ class FlagCommand extends ActionCommand
|
||||||
if (args[0] instanceof GrammarQuotedString) {
|
if (args[0] instanceof GrammarQuotedString) {
|
||||||
this._variablename = args[0];
|
this._variablename = args[0];
|
||||||
}
|
}
|
||||||
if (args[1] instanceof GrammarString) {
|
args[0] = args[1];
|
||||||
this.list_of_flags = args[1];
|
}
|
||||||
}
|
if (args[0] instanceof GrammarStringList) {
|
||||||
} else if (args[0] instanceof GrammarString) {
|
|
||||||
this.list_of_flags = args[0];
|
this.list_of_flags = args[0];
|
||||||
|
} else if (args[0]) {
|
||||||
|
this.list_of_flags.push(args[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ export class GrammarString /*extends String*/
|
||||||
{
|
{
|
||||||
constructor(value = '')
|
constructor(value = '')
|
||||||
{
|
{
|
||||||
this._value = value;
|
this._value = value.toString ? value.toString() : value;
|
||||||
}
|
}
|
||||||
|
|
||||||
toString()
|
toString()
|
||||||
|
|
@ -227,6 +227,7 @@ export class GrammarStringList extends Array
|
||||||
{
|
{
|
||||||
toString()
|
toString()
|
||||||
{
|
{
|
||||||
|
// if there is only a single string, the brackets are optional
|
||||||
if (1 < this.length) {
|
if (1 < this.length) {
|
||||||
return '[' + this.join(',') + ']';
|
return '[' + this.join(',') + ']';
|
||||||
}
|
}
|
||||||
|
|
@ -235,7 +236,7 @@ export class GrammarStringList extends Array
|
||||||
|
|
||||||
push(value)
|
push(value)
|
||||||
{
|
{
|
||||||
if (!(value instanceof GrammarString)) {
|
if (!(value instanceof GrammarQuotedString)) {
|
||||||
value = new GrammarQuotedString(value);
|
value = new GrammarQuotedString(value);
|
||||||
}
|
}
|
||||||
super.push(value);
|
super.push(value);
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,7 @@ export class SieveScriptPopupView extends rl.pluginPopupView {
|
||||||
|
|
||||||
templateName(obj) {
|
templateName(obj) {
|
||||||
const id = 'Sieve' + obj.constructor.name;
|
const id = 'Sieve' + obj.constructor.name;
|
||||||
return document.getElementById(id) ? id : null;
|
return document.getElementById(id) ? id : 'SieveCommand';
|
||||||
}
|
}
|
||||||
|
|
||||||
beforeShow(oScript) {
|
beforeShow(oScript) {
|
||||||
|
|
|
||||||
|
|
@ -34,3 +34,16 @@
|
||||||
height: 300px;
|
height: 300px;
|
||||||
font-family: var(--fontMono);
|
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;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5232 -->
|
<!-- rfc5232 -->
|
||||||
addflag
|
addflag
|
||||||
<input type="text" name="_variablename" data-bind="textInput: _variablename">
|
<input type="text" data-bind="textInput: variablename">
|
||||||
<textarea name="source">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: list_of_flags" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- rfc5293 -->
|
<!-- rfc5293 -->
|
||||||
addheader
|
addheader
|
||||||
<label><input type="checkbox" name="last"> last</label>
|
<label><input type="checkbox"> last</label>
|
||||||
<input type="text" name="field_name" data-bind="textInput: field_name">
|
<input type="text" data-bind="textInput: field_name">
|
||||||
<input type="text" name="value" data-bind="textInput: value">
|
<input type="text" data-bind="textInput: value">
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<!-- rfc5228 -->
|
<!-- rfc5228 -->
|
||||||
address
|
address
|
||||||
<select name="address_part">
|
<select>
|
||||||
<option>:localpart</option>
|
<option>:localpart</option>
|
||||||
<option>:domain</option>
|
<option>:domain</option>
|
||||||
<option>:all</option>
|
<option>:all</option>
|
||||||
</select>
|
</select>
|
||||||
<textarea name="header_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: header_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
<textarea name="key_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
<input type="number" name="index">
|
<input type="number">
|
||||||
<input type="checkbox" name="last">
|
<input type="checkbox">
|
||||||
// mime
|
// mime
|
||||||
// anychild
|
// anychild
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5173 -->
|
<!-- rfc5173 -->
|
||||||
body
|
body
|
||||||
body_transform = ''; // :raw, :content <string-list>, :text
|
body_transform = ''; // :raw, :content <string-list>, :text
|
||||||
<textarea name="key_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- rfc5260 -->
|
<!-- rfc5260 -->
|
||||||
currentdate
|
currentdate
|
||||||
<input type="text" name="zone" data-bind="textInput: zone">
|
<input type="text" data-bind="textInput: zone">
|
||||||
<input type="text" name="date_part" data-bind="textInput: date_part">
|
<input type="text" data-bind="textInput: date_part">
|
||||||
<textarea name="key_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
<!-- rfc5260 -->
|
<!-- rfc5260 -->
|
||||||
date
|
date
|
||||||
<input type="text" name="zone" data-bind="textInput: zone">
|
<input type="text" data-bind="textInput: zone">
|
||||||
<label><input type="checkbox" name="originalzone"> originalzone</label>
|
<label><input type="checkbox"> originalzone</label>
|
||||||
<input type="text" name="header_name" data-bind="textInput: header_name">
|
<input type="text" data-bind="textInput: header_name">
|
||||||
<input type="text" name="date_part" data-bind="textInput: date_part">
|
<input type="text" data-bind="textInput: date_part">
|
||||||
<textarea name="key_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
<input type="number" name="index">
|
<input type="number">
|
||||||
<label><input type="checkbox" name="last"> last</label>
|
<label><input type="checkbox"> last</label>
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<!-- rfc5293 -->
|
<!-- rfc5293 -->
|
||||||
deleteheader
|
deleteheader
|
||||||
<input type="number" name="index">
|
<input type="number">
|
||||||
<label><input type="checkbox" name="last"> last</label>
|
<label><input type="checkbox"> last</label>
|
||||||
comparator = '',
|
comparator = '',
|
||||||
<select name="match_type">
|
<select>
|
||||||
<option>:is</option>
|
<option>:is</option>
|
||||||
<option>:contains</option>
|
<option>:contains</option>
|
||||||
<option>:matches</option>
|
<option>:matches</option>
|
||||||
<option data-bind="visible root.capa.extlists">:list</option>
|
<option data-bind="visible root.capa.extlists">:list</option>
|
||||||
</select>
|
</select>
|
||||||
<input type="text" name="field_name" data-bind="textInput: field_name">
|
<input type="text" data-bind="textInput: field_name">
|
||||||
<textarea name="source">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: source" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
<!-- rfc5228 -->
|
<!-- rfc5228 -->
|
||||||
elsif
|
<div class="sieve-block">
|
||||||
<div data-bind="template: {name: $root.templateName(test), data: test}"></div>
|
<details>
|
||||||
{
|
<summary data-bind="text: 'elsif ' + test"></summary>
|
||||||
<div style="padding-left:4em" data-bind="foreach: commands">
|
<div data-bind="template: {name: $root.templateName(test), data: test}"></div>
|
||||||
<div data-bind="template: {name: $root.templateName($data)}"></div>
|
</details>
|
||||||
</div>
|
{
|
||||||
}
|
<div data-bind="foreach: commands">
|
||||||
|
<div data-bind="template: {name: $root.templateName($data)}"></div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
<!-- rfc5228 -->
|
<!-- rfc5228 -->
|
||||||
else
|
<div class="sieve-block">
|
||||||
{
|
<span>else</span>
|
||||||
<div style="padding-left:4em" data-bind="foreach: commands">
|
{
|
||||||
<div data-bind="template: {name: $root.templateName($data)}"></div>
|
<div data-bind="foreach: commands">
|
||||||
</div>
|
<div data-bind="template: {name: $root.templateName($data)}"></div>
|
||||||
}
|
</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5703 -->
|
<!-- rfc5703 -->
|
||||||
enclose
|
enclose
|
||||||
<input type="text" name="_subject" data-bind="textInput: _subject">
|
<input type="text" data-bind="textInput: _subject">
|
||||||
<textarea name="source">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: source" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
<!-- rfc5228 -->
|
<!-- rfc5228 -->
|
||||||
envelope
|
envelope
|
||||||
<select name="address_part">
|
<select>
|
||||||
<option>:localpart</option>
|
<option>:localpart</option>
|
||||||
<option>:domain</option>
|
<option>:domain</option>
|
||||||
<option>:all</option>
|
<option>:all</option>
|
||||||
</select>
|
</select>
|
||||||
<textarea name="envelope_part">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: envelope_part" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
<textarea name="key_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5183 -->
|
<!-- rfc5183 -->
|
||||||
environment
|
environment
|
||||||
<input type="text" name="name" data-bind="textInput: name">
|
<input type="text" data-bind="textInput: name">
|
||||||
<textarea name="key_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<!-- rfc5429 -->
|
<!-- rfc5429 -->
|
||||||
ereject
|
ereject
|
||||||
<input type="text" name="_reason" data-bind="textInput: _reason">
|
<input type="text" data-bind="textInput: _reason">
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<!-- rfc5463 -->
|
<!-- rfc5463 -->
|
||||||
error
|
error
|
||||||
<input type="text" name="message" data-bind="textInput: message">
|
<input type="text" data-bind="textInput: message">
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- rfc5228 -->
|
<!-- rfc5228 -->
|
||||||
exists
|
exists
|
||||||
<textarea name="header_names">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: header_names" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
// mime
|
// mime
|
||||||
// anychild
|
// anychild
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- rfc5703 -->
|
<!-- rfc5703 -->
|
||||||
extracttext
|
extracttext
|
||||||
modifiers = [];
|
modifiers = [];
|
||||||
<input type="number" name="_first">
|
<input type="number">
|
||||||
<input type="text" name="varname" data-bind="textInput: varname">
|
<input type="text" data-bind="textInput: varname">
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- rfc5228 -->
|
<!-- rfc5228 -->
|
||||||
fileinto
|
fileinto
|
||||||
|
<input type="text" data-bind="textInput: mailbox">
|
||||||
<label data-bind="root.capa.copy"><input type="checkbox" data-bind="checked: copy"> copy</label><!-- rfc3894 -->
|
<label data-bind="root.capa.copy"><input type="checkbox" data-bind="checked: copy"> copy</label><!-- rfc3894 -->
|
||||||
<label data-bind="root.capa.mailbox"><input type="checkbox" data-bind="checked: create"> create</label><!-- rfc5490 -->
|
<label data-bind="root.capa.mailbox"><input type="checkbox" data-bind="checked: create"> create</label><!-- rfc5490 -->
|
||||||
<input type="text" data-bind="textInput: mailbox">
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5703 -->
|
<!-- rfc5703 -->
|
||||||
foreverypart
|
foreverypart
|
||||||
<input type="text" name="_name" data-bind="textInput: _name">
|
<input type="text" data-bind="textInput: _name">
|
||||||
<div data-bind="template: { name: 'SieveCommand', foreach: commands, as: 'command' }"></div>
|
<div data-bind="template: { name: 'SieveCommand', foreach: commands, as: 'command' }"></div>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<!-- rfc6609 -->
|
<!-- rfc6609 -->
|
||||||
global
|
global
|
||||||
<textarea name="source">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: source" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5232 -->
|
<!-- rfc5232 -->
|
||||||
hasflag
|
hasflag
|
||||||
<textarea name="variable_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: variable_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
<textarea name="list_of_flags">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: list_of_flags" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,35 @@
|
||||||
<!-- rfc5228 -->
|
<!-- rfc5228 -->
|
||||||
header
|
<input type="text" data-bind="textInput: header_names" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
<textarea name="header_names" data-bind="textInput: header_names">GrammarStringList</textarea>
|
<br/>
|
||||||
<select name="match_type" data-bind="value: match_type">
|
<select data-bind="value: match_type">
|
||||||
<option>:is</option>
|
<option>:is</option>
|
||||||
<option>:contains</option>
|
<option>:contains</option>
|
||||||
<option>:matches</option>
|
<option>:matches</option>
|
||||||
</select>
|
</select>
|
||||||
<!--
|
<br/>
|
||||||
<select name="address_part" data-bind="value: address_part">
|
<!--
|
||||||
<option>:localpart</option>
|
<select data-bind="value: address_part">
|
||||||
<option>:domain</option>
|
<option>:localpart</option>
|
||||||
<option>:all</option>
|
<option>:domain</option>
|
||||||
</select>
|
<option>:all</option>
|
||||||
-->
|
</select>
|
||||||
<textarea name="key_list" data-bind="textInput: key_list">GrammarStringList</textarea>
|
-->
|
||||||
<input type="number" name="index" data-bind="textInput: index">
|
<br/>
|
||||||
<label><input type="checkbox" name="last"> last</label>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
<label><input type="checkbox" name="mime"> mime</label>
|
<br/>
|
||||||
<label><input type="checkbox" name="anychild"> anychild</label>
|
<input type="number" data-bind="textInput: index">
|
||||||
<!-- when ":mime" is used: -->
|
<br/>
|
||||||
<label><input type="checkbox" name="type"> type</label>
|
<label><input type="checkbox"> last</label>
|
||||||
<label><input type="checkbox" name="subtype"> subtype</label>
|
<br/>
|
||||||
<label><input type="checkbox" name="contenttype"> contenttype</label>
|
<label><input type="checkbox"> mime</label>
|
||||||
<textarea name="param" data-bind="textInput: param">GrammarStringList</textarea>
|
<br/>
|
||||||
|
<label><input type="checkbox"> anychild</label>
|
||||||
|
<br/>
|
||||||
|
<!-- when ":mime" is used: -->
|
||||||
|
<label><input type="checkbox"> type</label>
|
||||||
|
<br/>
|
||||||
|
<label><input type="checkbox"> subtype</label>
|
||||||
|
<br/>
|
||||||
|
<label><input type="checkbox"> contenttype</label>
|
||||||
|
<br/>
|
||||||
|
<input type="text" data-bind="textInput: param" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<!-- rfc5463 -->
|
<!-- rfc5463 -->
|
||||||
ihave
|
ihave
|
||||||
<textarea name="capabilities">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: capabilities" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
<!-- rfc5228 -->
|
<!-- rfc5228 -->
|
||||||
if
|
<div class="sieve-block">
|
||||||
<div data-bind="template: {name: $root.templateName(test), data: test}"></div>
|
<details>
|
||||||
{
|
<summary data-bind="text: 'if ' + test"></summary>
|
||||||
<div style="padding-left:4em" data-bind="foreach: commands">
|
<div data-bind="template: {name: $root.templateName(test), data: test}"></div>
|
||||||
<div data-bind="template: {name: $root.templateName($data)}"></div>
|
</details>
|
||||||
</div>
|
{
|
||||||
}
|
<div data-bind="foreach: commands">
|
||||||
|
<div data-bind="template: {name: $root.templateName($data)}"></div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<!-- rfc6609 -->
|
<!-- rfc6609 -->
|
||||||
include
|
include
|
||||||
<label><input type="checkbox" name="global"> global</label> // ':personal' / ':global';
|
<label><input type="checkbox"> global</label> // ':personal' / ':global';
|
||||||
<label><input type="checkbox" name="once"> once</label>
|
<label><input type="checkbox"> once</label>
|
||||||
<label><input type="checkbox" name="optional"> optional</label>
|
<label><input type="checkbox"> optional</label>
|
||||||
<input type="text" name="value" data-bind="textInput: value">
|
<input type="text" data-bind="textInput: value">
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<!-- rfc5490 -->
|
<!-- rfc5490 -->
|
||||||
mailboxexists
|
mailboxexists
|
||||||
<textarea name="mailbox_names">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: mailbox_names" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5490 -->
|
<!-- rfc5490 -->
|
||||||
metadataexists
|
metadataexists
|
||||||
<input type="text" name="mailbox" data-bind="textInput: mailbox">
|
<input type="text" data-bind="textInput: mailbox">
|
||||||
<textarea name="annotation_names">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: annotation_names" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- rfc5490 -->
|
<!-- rfc5490 -->
|
||||||
metadata
|
metadata
|
||||||
<input type="text" name="mailbox" data-bind="textInput: mailbox">
|
<input type="text" data-bind="textInput: mailbox">
|
||||||
<input type="text" name="annotation_name" data-bind="textInput: annotation_name">
|
<input type="text" data-bind="textInput: annotation_name">
|
||||||
<textarea name="key_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<!-- rfc5435 -->
|
<!-- rfc5435 -->
|
||||||
notify
|
notify
|
||||||
<input type="text" name="_method" data-bind="textInput: _method">
|
<input type="text" data-bind="textInput: _method">
|
||||||
<input type="text" name="_from" data-bind="textInput: _from">
|
<input type="text" data-bind="textInput: _from">
|
||||||
<input type="number" name="_importance">
|
<input type="number">
|
||||||
<textarea name="source">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: source" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
<input type="text" name="_message" data-bind="textInput: _message">
|
<input type="text" data-bind="textInput: _message">
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- rfc5435 -->
|
<!-- rfc5435 -->
|
||||||
notifymethodcapability
|
notifymethodcapability
|
||||||
<input type="text" name="notification_uri" data-bind="textInput: notification_uri">
|
<input type="text" data-bind="textInput: notification_uri">
|
||||||
<input type="text" name="notification_capability" data-bind="textInput: notification_capability">
|
<input type="text" data-bind="textInput: notification_capability">
|
||||||
<textarea name="key_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<!-- rfc5429 -->
|
<!-- rfc5429 -->
|
||||||
reject
|
reject
|
||||||
<input type="text" name="_reason" data-bind="textInput: _reason">
|
<input type="text" data-bind="textInput: _reason">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5232 -->
|
<!-- rfc5232 -->
|
||||||
removeflag
|
removeflag
|
||||||
<input type="text" name="_variablename" data-bind="textInput: _variablename">
|
<input type="text" data-bind="textInput: variablename">
|
||||||
<textarea name="source">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: list_of_flags" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<!-- rfc5703 -->
|
<!-- rfc5703 -->
|
||||||
replace
|
replace
|
||||||
<label><input type="checkbox" name="mime"> mime</label>
|
<label><input type="checkbox"> mime</label>
|
||||||
<input type="text" name="_subject" data-bind="textInput: _subject">
|
<input type="text" data-bind="textInput: _subject">
|
||||||
<input type="text" name="_from" data-bind="textInput: _from">
|
<input type="text" data-bind="textInput: _from">
|
||||||
<input type="text" name="replacement" data-bind="textInput: replacement">
|
<input type="text" data-bind="textInput: replacement">
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<!-- rfc5490 -->
|
<!-- rfc5490 -->
|
||||||
servermetadataexists
|
servermetadataexists
|
||||||
<textarea name="annotation_names">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: annotation_names" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5490 -->
|
<!-- rfc5490 -->
|
||||||
servermetadata
|
servermetadata
|
||||||
<input type="text" name="annotation_name" data-bind="textInput: annotation_name">
|
<input type="text" data-bind="textInput: annotation_name">
|
||||||
<textarea name="key_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- rfc5229 -->
|
<!-- rfc5229 -->
|
||||||
set
|
set
|
||||||
modifiers = [];
|
modifiers = [];
|
||||||
<input type="text" name="_name" data-bind="textInput: _name">
|
<input type="text" data-bind="textInput: _name">
|
||||||
<input type="text" name="_value" data-bind="textInput: _value">
|
<input type="text" data-bind="textInput: _value">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5232 -->
|
<!-- rfc5232 -->
|
||||||
setflag
|
setflag
|
||||||
<input type="text" name="_variablename" data-bind="textInput: _variablename">
|
<input type="text" data-bind="textInput: variablename">
|
||||||
<textarea name="source">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: list_of_flags" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<!-- rfc5228 -->
|
<!-- rfc5228 -->
|
||||||
size
|
size
|
||||||
<select name="mode">
|
<select>
|
||||||
<option>:over</option>
|
<option>:over</option>
|
||||||
<option>:under</option>
|
<option>:under</option>
|
||||||
</select>
|
</select>
|
||||||
<input type="number" name="limit">
|
<input type="number">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5235 -->
|
<!-- rfc5235 -->
|
||||||
spamtest
|
spamtest
|
||||||
<input type="number" name="percent">
|
<input type="number">
|
||||||
<input type="text" name="value" data-bind="textInput: value">
|
<input type="text" data-bind="textInput: value">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- rfc5229 -->
|
<!-- rfc5229 -->
|
||||||
string
|
string
|
||||||
<textarea name="source">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: source" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
<textarea name="key_list">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: key_list" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<!-- rfc5230 -->
|
<!-- rfc5230 -->
|
||||||
vacation
|
vacation
|
||||||
<input type="number" name="_days">
|
<input type="number">
|
||||||
<input type="number" name="_seconds">
|
<input type="number">
|
||||||
<input type="text" name="_subject" data-bind="textInput: _subject">
|
<input type="text" data-bind="textInput: _subject">
|
||||||
<input type="text" name="_from" data-bind="textInput: _from">
|
<input type="text" data-bind="textInput: _from">
|
||||||
<textarea name="source">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: source" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
<label><input type="checkbox" name="mime"> mime</label>
|
<label><input type="checkbox"> mime</label>
|
||||||
<input type="text" name="_handle" data-bind="textInput: _handle">
|
<input type="text" data-bind="textInput: _handle">
|
||||||
<input type="text" name="_reason" data-bind="textInput: _reason"> // QuotedString / MultiLine
|
<input type="text" data-bind="textInput: _reason"> // QuotedString / MultiLine
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<!-- rfc6134 -->
|
<!-- rfc6134 -->
|
||||||
validextlist
|
validextlist
|
||||||
<textarea name="ext_list_names">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: ext_list_names" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<!-- rfc5435 -->
|
<!-- rfc5435 -->
|
||||||
validnotifymethod
|
validnotifymethod
|
||||||
<textarea name="notification_uris">GrammarStringList</textarea>
|
<input type="text" data-bind="textInput: notification_uris" pattern='".+"|\[".+"(,".+")*\]'>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<!-- rfc5235 -->
|
<!-- rfc5235 -->
|
||||||
virustest
|
virustest
|
||||||
<input type="text" name="value" data-bind="textInput: value"> // 1 - 5
|
<input type="text" data-bind="textInput: value"> // 1 - 5
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
<!-- for every command that has no template -->
|
||||||
|
<div data-bind="text: $data"></div>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue