mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-08 08:57:03 +03:00
Add new "Move to folder" button
This commit is contained in:
parent
2c3881abc6
commit
f0e9d1a6d5
14 changed files with 312 additions and 182 deletions
|
|
@ -1,164 +1,171 @@
|
|||
<div class="b-admin-general">
|
||||
<div class="row" data-bind="visible: weakPassword">
|
||||
<div class="alert alert-error span8" style="margin-top: 10px;">
|
||||
<h4 data-i18n="TAB_GENERAL/ALERT_WARNING"></h4>
|
||||
<br />
|
||||
<div data-i18n="[html]TAB_GENERAL/HTML_ALERT_WEAK_PASSWORD"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal">
|
||||
<div class="legend i18n i18n-animation" data-i18n="TAB_GENERAL/LEGEND_INTERFACE"></div>
|
||||
<div class="control-group" style="margin-bottom: 10px;">
|
||||
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_LANGUAGE"></label>
|
||||
<div class="controls">
|
||||
<div class="flag-selector">
|
||||
<span class="flag-wrapper">
|
||||
<span data-bind="css: 'flag flag-' + language().toLowerCase()" style=""></span>
|
||||
</span>
|
||||
<span class="flag-name" tabindex="0" data-bind="text: languageFullName, click: selectLanguage, onSpace: selectLanguage, onEnter: selectLanguage"></span>
|
||||
|
||||
<div data-bind="component: {
|
||||
name: 'SaveTrigger',
|
||||
params: { value: languageTrigger }
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_LANGUAGE_ADMIN"></label>
|
||||
<div class="controls">
|
||||
<div class="flag-selector">
|
||||
<span class="flag-wrapper">
|
||||
<span data-bind="css: 'flag flag-' + languageAdmin().toLowerCase()" style=""></span>
|
||||
</span>
|
||||
<span class="flag-name" tabindex="0" data-bind="text: languageAdminFullName, click: selectLanguageAdmin, onSpace: selectLanguageAdmin, onEnter: selectLanguageAdmin"></span>
|
||||
|
||||
<div data-bind="component: {
|
||||
name: 'SaveTrigger',
|
||||
params: { value: languageAdminTrigger }
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_THEME"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Select',
|
||||
params: {
|
||||
options: themesOptions,
|
||||
value: theme,
|
||||
trigger: themeTrigger,
|
||||
optionsText: 'optText',
|
||||
optionsValue: 'optValue',
|
||||
size: 2
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_LANGUAGES_ON_SETTINGS',
|
||||
value: allowLanguagesOnSettings
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_THEMES_ON_SETTINGS',
|
||||
value: capaThemes
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_BACKGROUND_ON_SETTINGS',
|
||||
value: capaUserBackground
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_SHOW_THUMBNAILS',
|
||||
value: capaAttachmentThumbnails,
|
||||
inline: false
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_GRAVATAR',
|
||||
value: capaGravatar,
|
||||
inline: true
|
||||
}
|
||||
}"></div>
|
||||
(<a class="g-ui-link" href="http://en.gravatar.com/" target="_blank">http://en.gravatar.com/</a>)
|
||||
</div>
|
||||
</div>
|
||||
<div class="legend i18n i18n-animation" data-i18n="TAB_GENERAL/LEGEND_MAIN"></div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_ATTACHMENT_SIZE_LIMIT"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
label: 'MB',
|
||||
value: mainAttachmentLimit,
|
||||
trigger: attachmentLimitTrigger,
|
||||
size: 1
|
||||
}
|
||||
}"></div>
|
||||
<br />
|
||||
<br />
|
||||
<span class="well well-small" data-bind="visible: '' !== uploadDataDesc">
|
||||
<b>PHP:</b>
|
||||
|
||||
<span data-bind="text: uploadDataDesc"></span>
|
||||
</span>
|
||||
|
||||
<a href="#" target="_blank" class="btn btn-thin" data-bind="link: phpInfoLink()">
|
||||
<i class="icon-info"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_ADDITIONAL_ACCOUNTS',
|
||||
value: capaAdditionalAccounts
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_IDENTITIES',
|
||||
value: capaIdentities
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_TEMPLATES',
|
||||
value: capaTemplates
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
<div class="b-admin-general">
|
||||
<div class="row" data-bind="visible: weakPassword">
|
||||
<div class="alert alert-error span8" style="margin-top: 10px;">
|
||||
<h4 data-i18n="TAB_GENERAL/ALERT_WARNING"></h4>
|
||||
<br />
|
||||
<div data-i18n="[html]TAB_GENERAL/HTML_ALERT_WEAK_PASSWORD"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal">
|
||||
<div class="legend i18n i18n-animation" data-i18n="TAB_GENERAL/LEGEND_INTERFACE"></div>
|
||||
<div class="control-group" style="margin-bottom: 10px;">
|
||||
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_LANGUAGE"></label>
|
||||
<div class="controls">
|
||||
<div class="flag-selector">
|
||||
<span class="flag-wrapper">
|
||||
<span data-bind="css: 'flag flag-' + language().toLowerCase()" style=""></span>
|
||||
</span>
|
||||
<span class="flag-name" tabindex="0" data-bind="text: languageFullName, click: selectLanguage, onSpace: selectLanguage, onEnter: selectLanguage"></span>
|
||||
|
||||
<div data-bind="component: {
|
||||
name: 'SaveTrigger',
|
||||
params: { value: languageTrigger }
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_LANGUAGE_ADMIN"></label>
|
||||
<div class="controls">
|
||||
<div class="flag-selector">
|
||||
<span class="flag-wrapper">
|
||||
<span data-bind="css: 'flag flag-' + languageAdmin().toLowerCase()" style=""></span>
|
||||
</span>
|
||||
<span class="flag-name" tabindex="0" data-bind="text: languageAdminFullName, click: selectLanguageAdmin, onSpace: selectLanguageAdmin, onEnter: selectLanguageAdmin"></span>
|
||||
|
||||
<div data-bind="component: {
|
||||
name: 'SaveTrigger',
|
||||
params: { value: languageAdminTrigger }
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_THEME"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Select',
|
||||
params: {
|
||||
options: themesOptions,
|
||||
value: theme,
|
||||
trigger: themeTrigger,
|
||||
optionsText: 'optText',
|
||||
optionsValue: 'optValue',
|
||||
size: 2
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_LANGUAGES_ON_SETTINGS',
|
||||
value: allowLanguagesOnSettings
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_THEMES_ON_SETTINGS',
|
||||
value: capaThemes
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_BACKGROUND_ON_SETTINGS',
|
||||
value: capaUserBackground
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_NEW_FOLDER_MOVE',
|
||||
value: newMoveToFolder
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_SHOW_THUMBNAILS',
|
||||
value: capaAttachmentThumbnails,
|
||||
inline: false
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_GRAVATAR',
|
||||
value: capaGravatar,
|
||||
inline: true
|
||||
}
|
||||
}"></div>
|
||||
(<a class="g-ui-link" href="http://en.gravatar.com/" target="_blank">http://en.gravatar.com/</a>)
|
||||
</div>
|
||||
</div>
|
||||
<div class="legend i18n i18n-animation" data-i18n="TAB_GENERAL/LEGEND_MAIN"></div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_ATTACHMENT_SIZE_LIMIT"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
label: 'MB',
|
||||
value: mainAttachmentLimit,
|
||||
trigger: attachmentLimitTrigger,
|
||||
size: 1
|
||||
}
|
||||
}"></div>
|
||||
<br />
|
||||
<br />
|
||||
<span class="well well-small" data-bind="visible: '' !== uploadDataDesc">
|
||||
<b>PHP:</b>
|
||||
|
||||
<span data-bind="text: uploadDataDesc"></span>
|
||||
</span>
|
||||
|
||||
<a href="#" target="_blank" class="btn btn-thin" data-bind="link: phpInfoLink()">
|
||||
<i class="icon-info"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_ADDITIONAL_ACCOUNTS',
|
||||
value: capaAdditionalAccounts
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_IDENTITIES',
|
||||
value: capaIdentities
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'TAB_GENERAL/LABEL_ALLOW_TEMPLATES',
|
||||
value: capaTemplates
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -16,6 +16,7 @@
|
|||
<div class="b-folders-system" data-bind="template: { name: 'MailFolderListSystemItem', foreach: folderListSystem }"></div>
|
||||
<hr class="b-list-delimiter" />
|
||||
<div class="b-folders-user" data-bind="template: { name: 'MailFolderListItem', foreach: folderList }"></div>
|
||||
<div class="move-action-content-wrapper" data-bind="visible: moveAction"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
</a>
|
||||
</div>
|
||||
<div class="btn-group" data-bind="visible: allowReload && mobileCheckedStateHide()"> </div>
|
||||
<!-- ko if: !newMoveToFolder() -->
|
||||
<div class="btn-group dropdown colored-toggle hide-on-mobile" data-bind="visible: allowMessageListActions, registrateBootstrapDropdown: true, openDropdownTrigger: moveDropdownTrigger">
|
||||
<a id="move-dropdown-id" href="#" tabindex="-1" class="btn single btn-dark-disabled-border dropdown-toggle buttonMove" data-toggle="dropdown" data-tooltip-join="top" data-bind="command: moveCommand, tooltip: 'MESSAGE_LIST/BUTTON_MOVE_TO'">
|
||||
<i class="icon-copy visible-on-ctrl-btn"></i>
|
||||
|
|
@ -46,6 +47,15 @@
|
|||
<!-- /ko -->
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /ko -->
|
||||
<!-- ko if: newMoveToFolder() -->
|
||||
<div class="btn-group" data-bind="visible: allowMessageListActions && mobileCheckedStateShow()">
|
||||
<a id="move-dropdown-id" href="#" tabindex="-1" class="btn single btn-dark-disabled-border buttonMove" data-tooltip-join="top" data-bind="command: moveNewCommand, tooltip: 'MESSAGE_LIST/BUTTON_MOVE_TO'">
|
||||
<i class="icon-copy visible-on-ctrl-btn"></i>
|
||||
<i class="icon-folder hidden-on-ctrl-btn"></i>
|
||||
</a>
|
||||
</div>
|
||||
<!-- /ko -->
|
||||
<div class="btn-group" data-bind="visible: allowMessageListActions && mobileCheckedStateHide()"> </div>
|
||||
<div class="btn-group" data-bind="visible: allowMessageListActions && mobileCheckedStateShow()">
|
||||
<a class="btn first btn-dark-disabled-border button-archive" data-tooltip-join="top"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue