Merged from sub repository (filters - step 4)

This commit is contained in:
RainLoop Team 2014-12-18 00:53:46 +04:00
parent 67e45a6a6f
commit e4b286e257
58 changed files with 1176 additions and 236 deletions

View file

@ -65,8 +65,8 @@
<div data-bind="visible: licensing()">
<div class="alert alert-success span8" style="margin-left: 0; padding-top: 20px" data-bind="visible: licenseValid() && '' === licenseError()">
<h4>
<span data-bind="visible: licenseIsUnlim()">Lifetime (Premium)</span>
<span data-bind="visible: !licenseIsUnlim()">Premium</span>
Premium
<span data-bind="visible: licenseIsUnlim()">(Lifetime)</span>
</h4>
<p data-bind="visible: 0 < licenseExpired()" style="padding-top: 10px">
<b>Subscription expires:</b>

View file

@ -21,7 +21,7 @@
<div class="span5" data-bind="css: { 'testing-done': testingDone, 'testing-error': testingImapError }">
<div class="legend imap-header">
<span data-placement="bottom" data-bind="tooltipForTest: testingImapErrorDesc">
<span data-bind="text: sieveSettings() ? 'SIEVE (Filters)' : 'IMAP'">IMAP</span>
<span data-bind="text: sieveSettings() ? 'SIEVE' : 'IMAP'">IMAP</span>
</span>
</div>
<div data-bind="visible: !sieveSettings()">
@ -73,7 +73,7 @@
<span data-bind="command: sieveCommand">
<i class="icon-filter"></i>
&nbsp;
<a href="#" class="g-ui-link">Sieve (Filetrs) configuration</a>
<a href="#" class="g-ui-link">Sieve configuration</a>
</span>
</div>
</div>

View file

@ -4,29 +4,34 @@
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">&times;</button>
<h3>
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/TITLE_CREATE_FILTER"></span>
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/TITLE_CREATE_FILTER" data-bind="visible: isNew"></span>
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/TITLE_EDIT_FILTER" data-bind="visible: !isNew()"></span>
</h3>
</div>
<div class="modal-body">
<div class="row filter" data-bind="with: filter">
<div class="span9">
<br />
<input type="text" class="span5" data-bind="value: name" placeholder="Name" />
<br />
<br />
<div class="control-group" data-bind="css: {'error': name.error}">
<div class="controls">
<input type="text" class="span5" data-bind="value: name, hasFocus: name.focused" placeholder="Name"
autocorrect="off" autocapitalize="off" spellcheck="false" />
</div>
</div>
<div class="legend">
<span>
Conditions
Conditions @i18n
</span>
</div>
<div>
<div data-bind="visible: 1 < conditions().length">
<select class="span4" data-bind="value: conditionsType">
<option value="All">
Matching all of the following rules
Matching all of the following rules @i18n
</option>
<option value="Any">
Matching any of the following rules
Matching any of the following rules @i18n
</option>
</select>
</div>
@ -34,7 +39,7 @@
<div data-bind="template: {'name': template(), 'data': $data}"></div>
</div>
<div data-bind="visible: 0 === conditions().length">
All incoming messages
All incoming messages @i18n
</div>
<br />
<a class="btn" data-bind="click: addCondition, i18nInit: true">
@ -49,32 +54,23 @@
Actions
</span>
</div>
<div data-bind="template: {'name': actionTemplate()}"></div>
<br />
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'Mark as read',
label: 'Mark as read @i18n',
value: actionMarkAsRead
}
}"></div>
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'Skip other filters',
enable: enableSkipOtherFilters,
value: actionSkipOtherFiltersResult
}
}"></div>
<br />
<div data-bind="template: {'name': actionTemplate()}"></div>
</div>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonSave">
<i class="icon-folder-add"></i>
<a class="btn buttonSave" data-bind="command: saveFilter">
<i class="icon-ok"></i>
&nbsp;&nbsp;
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/BUTTON_CREATE"></span>
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/BUTTON_DONE"></span>
</a>
</div>
</div>

View file

@ -5,15 +5,57 @@
</div>
</div>
<div class="row">
<div data-bind="foreach: filters, i18nUpdate: filters">
<span data-bind="text: name" ></span>
<br />
<div class="span8">
<a class="btn" data-bind="click: addFilter">
<i class="icon-plus"></i>
&nbsp;&nbsp;
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/BUTTON_ADD_FILTER"></span>
</a>
&nbsp;&nbsp;&nbsp;
<a class="btn" data-bind="command: saveChanges">
<i data-bind="css: {'icon-floppy': !filters.saving(), 'icon-spinner animated': filters.saving()}"></i>
&nbsp;&nbsp;
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/BUTTON_SAVE"></span>
</a>
</div>
</div>
<div class="row">
<div class="span8">
<div class="process-place g-ui-user-select-none" data-bind="style: {'visibility': visibility }">
<i class="icon-spinner animated"></i>
&nbsp;&nbsp;
<span data-bind="text: processText"></span>
</div>
<table class="table table-hover list-table g-ui-user-select-none" data-bind="i18nUpdate: filters">
<colgroup>
<col style="width: 30px" />
<col />
<col style="width: 140px" />
<col style="width: 1%" />
</colgroup>
<tbody data-bind="sortable: {data: filters, options: scrollableOptions()}">
<tr class="filter-item">
<td>
<span class="disabled-filter" data-bind="click: function () { $root.haveChanges(true); enabled(!enabled()); }">
<i data-bind="css: {'icon-checkbox-checked': enabled, 'icon-checkbox-unchecked': !enabled()}"></i>
</span>
</td>
<td class="e-action">
<span class="filter-name" data-bind="text: name()"></span>
</td>
<td>
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function(oFilter) { $root.deleteFilter(oFilter); }">
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/DELETING_ASK"></span>
</a>
</td>
<td>
<span class="delete-filter" data-bind="visible: !deleteAccess() && canBeDalete(), click: function (oFilter) { $root.filterForDeletion(oFilter); }">
<i class="icon-trash"></i>
</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<br />
<a class="btn" data-bind="click: addFilter">
<i class="icon-filter"></i>
&nbsp;&nbsp;
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/BUTTON_ADD_FILTER"></span>
</a>
</div>

View file

@ -1 +1 @@
<select data-bind="options: actionTypeOptions, value: actionType, optionsText: 'name', optionsValue: 'id'"></select>
<select data-bind="options: $root.actionTypeOptions, value: actionType, optionsText: 'name', optionsValue: 'id'"></select>

View file

@ -1,4 +1,4 @@
<select data-bind="options: actionTypeOptions, value: actionType, optionsText: 'name', optionsValue: 'id'"></select>
<select data-bind="options: $root.actionTypeOptions, value: actionType, optionsText: 'name', optionsValue: 'id'"></select>
&nbsp;
<select data-bind="options: $root.folderSelectList, value: $root.selectedFolderValue,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defautOptionsAfterRender"></select>

View file

@ -1,3 +1,3 @@
<select data-bind="options: actionTypeOptions, value: actionType, optionsText: 'name', optionsValue: 'id'"></select>
<select data-bind="options: $root.actionTypeOptions, value: actionType, optionsText: 'name', optionsValue: 'id'"></select>
&nbsp;
<input type="text" data-bind="value: actionValue" />

View file

@ -1,9 +1,9 @@
<select class="span3" data-bind="options: fieldOptions, value: field, optionsText: 'name', optionsValue: 'id'"></select>
<select class="span3" data-bind="options: $root.fieldOptions, value: field, optionsText: 'name', optionsValue: 'id'"></select>
&nbsp;
<select class="span2" data-bind="options: typeOptions, value: type, optionsText: 'name', optionsValue: 'id'"></select>
<select class="span2" data-bind="options: $root.typeOptions, value: type, optionsText: 'name', optionsValue: 'id'"></select>
&nbsp;
<input class="span3" type="text" data-bind="value: value" />
&nbsp;
<span class="delete-action button-delete pull-right" data-bind="click: removeSelf">
<span class="delete-action button-delete pull-right" data-bind="click: function (oCondition) { $root.removeCondition(oCondition); }">
<i class="icon-trash"></i>
</span>

View file

@ -11,19 +11,26 @@
<span class="caret"></span>
</a>
<ul class="dropdown-menu g-ui-menu" tabindex="-1" role="menu" aria-labelledby="top-system-dropdown-id">
<!-- ko if: accounts().length -->
<!-- ko foreach: accounts -->
<li class="e-item" role="presentation">
<a class="e-link menuitem" href="#" data-bind="click: $root.accountClick, attr: {'href': changeAccountLink() }">
<i class="icon-ok" data-bind="visible: $root.accountEmail() === email"></i>
<i class="icon-user" data-bind="visible: $root.accountEmail() !== email"></i>
&nbsp;&nbsp;
<span data-bind="text: email"></span>
</a>
</li>
<!-- /ko -->
<li class="divider" role="presentation"></li>
<!-- ko foreach: accounts -->
<li class="e-item" role="presentation">
<a class="e-link menuitem account-item" href="#" data-bind="click: $root.accountClick,
attr: {'href': changeAccountLink()}, css: {current: $root.accountEmail() === email}">
<b class="pull-right counter" data-bind="visible: 0 < count()">
<span data-bind="text: count, visible: 100 > count()"></span>
<span data-bind="visible: 99 < count()">99+</span>
</b>
<i class="icon-ok"></i>
<i class="icon-user"></i>
&nbsp;&nbsp;
<span class="email-title" data-bind="text: email"></span>
</a>
</li>
<!-- /ko -->
<li class="divider" role="presentation"></li>
<!-- /ko -->
<!-- ko if: capaAdditionalAccounts -->
<li class="e-item" role="presentation">
<a class="e-link menuitem" href="#" tabindex="-1" data-bind="click: addAccountClick">