mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-05 23:47:03 +03:00
Privacy/GDPR friendly version (removed: Social, Gravatar, Facebook, Google, Twitter, DropBox, OwnCloud)
Also removed: POP3, OAuth2 and update feature Added: admin password_hash/password_verify Requires: PHP 7.3+ Replaced: CRLF with LF Replaced: pclZip with ZipArchive
This commit is contained in:
parent
15ceddc202
commit
2cada68f41
293 changed files with 23728 additions and 85420 deletions
|
|
@ -1,47 +1,47 @@
|
|||
<div class="b-login-content">
|
||||
<div class="loginFormWrapper" data-bind="css: {'afterLoginHide': formHidden}">
|
||||
<center>
|
||||
<div class="alert alertError" data-bind="visible: '' !== submitError()">
|
||||
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
</div>
|
||||
<div class="wrapper-parent">
|
||||
<form class="wrapper submitting-pane loginForm thm-login thm-login-text" action="#/" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}">
|
||||
<div class="controls" data-bind="css: {'error': loginError, 'animated': loginErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="text" class="input-block-level inputLogin checkAutocomplete"
|
||||
name="RainLoopAdminLogin" id="RainLoopAdminLogin"
|
||||
style="padding-right: 35px;"
|
||||
autocomplete="username" autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_LOGIN"
|
||||
data-bind="textInput: login, hasFocus: loginFocus, disable: submitRequest" />
|
||||
<span class="add-on">
|
||||
<i class="icon-user"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls" data-bind="css: {'error': passwordError, 'animated': passwordErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="password" class="input-block-level inputPassword checkAutocomplete"
|
||||
placeholder="Password" name="RainLoopAdminPassword" id="RainLoopAdminPassword"
|
||||
style="padding-right: 35px;"
|
||||
autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_PASSWORD"
|
||||
data-bind="textInput: password, disable: submitRequest" />
|
||||
<span class="add-on" tabindex="-1" data-tooltip-join="left" data-bind="command: submitCommand, tooltip: 'LOGIN/BUTTON_LOGIN'">
|
||||
<i class="icon-key" data-bind="visible: '' === password()"></i>
|
||||
<button type="submit" class="btn-submit-icon-wrp" data-bind="visible: '' !== password()">
|
||||
<i class="icon-right-middle login-submit-icon"></i>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls controls-submit-wrp" data-bind="css: {'display-none': hideSubmitButton}">
|
||||
<button type="submit" class="btn btn-large btn-block buttonLogin" data-bind="command: submitCommand">
|
||||
<span data-i18n="LOGIN/BUTTON_LOGIN"></span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</center>
|
||||
</div>
|
||||
<div class="loginAfter"></div>
|
||||
<div class="b-login-content">
|
||||
<div class="loginFormWrapper" data-bind="css: {'afterLoginHide': formHidden}">
|
||||
<center>
|
||||
<div class="alert alertError" data-bind="visible: '' !== submitError()">
|
||||
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
</div>
|
||||
<div class="wrapper-parent">
|
||||
<form class="wrapper submitting-pane loginForm thm-login thm-login-text" action="#/" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}">
|
||||
<div class="controls" data-bind="css: {'error': loginError, 'animated': loginErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="text" class="input-block-level inputLogin checkAutocomplete"
|
||||
name="RainLoopAdminLogin" id="RainLoopAdminLogin"
|
||||
style="padding-right: 35px;"
|
||||
autocomplete="username" autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_LOGIN"
|
||||
data-bind="textInput: login, hasFocus: loginFocus, disable: submitRequest" />
|
||||
<span class="add-on">
|
||||
<i class="icon-user"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls" data-bind="css: {'error': passwordError, 'animated': passwordErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="password" class="input-block-level inputPassword checkAutocomplete"
|
||||
placeholder="Password" name="RainLoopAdminPassword" id="RainLoopAdminPassword"
|
||||
style="padding-right: 35px;"
|
||||
autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_PASSWORD"
|
||||
data-bind="textInput: password, disable: submitRequest" />
|
||||
<span class="add-on" tabindex="-1" data-tooltip-join="left" data-bind="command: submitCommand, tooltip: 'LOGIN/BUTTON_LOGIN'">
|
||||
<i class="icon-key" data-bind="visible: '' === password()"></i>
|
||||
<button type="submit" class="btn-submit-icon-wrp" data-bind="visible: '' !== password()">
|
||||
<i class="icon-right-middle login-submit-icon"></i>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls controls-submit-wrp" data-bind="css: {'display-none': hideSubmitButton}">
|
||||
<button type="submit" class="btn btn-large btn-block buttonLogin" data-bind="command: submitCommand">
|
||||
<span data-i18n="LOGIN/BUTTON_LOGIN"></span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</center>
|
||||
</div>
|
||||
<div class="loginAfter"></div>
|
||||
<div>
|
||||
|
|
@ -1,87 +1,79 @@
|
|||
<div class="b-admin-about">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend" data-i18n="TAB_ABOUT/LEGEND_ABOUT"></div>
|
||||
<div class="row" style="min-width: 800px;">
|
||||
<div class="span4">
|
||||
<div class="rl-logo"></div>
|
||||
<div style="margin-left: 30px;">
|
||||
2019 © <span data-i18n="TAB_ABOUT/LABEL_ALL_RIGHTS_RESERVED"></span>
|
||||
<br />
|
||||
<a class="g-ui-link" href="http://www.rainloop.net/" target="_blank" style="padding-left: 0">http://rainloop.net/</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rl-desc" style="float: left">
|
||||
<h1 style="margin-bottom: 0;">RainLoop</h1>
|
||||
<h4 style="margin-top: 0;">
|
||||
<span data-bind="text: version"></span>
|
||||
<span data-bind="visible: 'stable' !== coreType()" style="padding-left: 3px; color: red; font-weight: normal">
|
||||
(<span data-bind="text: coreType"></span> channel)
|
||||
</span>
|
||||
</h4>
|
||||
<h4 style="color: #aaa; font-weight: normal;" data-i18n="TAB_ABOUT/LABEL_TAG_HINT"></h4>
|
||||
<h5 style="font-weight: normal; margin-top: 40px;" data-bind="visible: !community">
|
||||
<div data-bind="visible: 'error' === statusType()">
|
||||
<i class="icon-warning" style="color: red"></i>
|
||||
|
||||
<span data-bind="text: errorDesc"></span>
|
||||
</div>
|
||||
<div data-bind="visible: 'available' === statusType()">
|
||||
<i class="icon-bolt" style="color: red"></i>
|
||||
|
||||
<span data-bind="html: coreRemoteVersionHtmlDesc"></span>
|
||||
<span data-bind="visible: '' !== coreRemoteRelease()">
|
||||
(<span data-bind="text: coreRemoteRelease"></span>)
|
||||
</span>
|
||||
<br />
|
||||
<span data-bind="if: coreWarning">
|
||||
<br />
|
||||
<i class="icon-warning" style="color: red"></i>
|
||||
|
||||
<b data-i18n="HINTS/WARNING"></b>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/HINT_READ_CHANGE_LOG"></span>
|
||||
<br />
|
||||
</span>
|
||||
<br />
|
||||
<span data-bind="visible: coreUpdatable() && coreAccess()">
|
||||
<a class="btn" data-bind="click: updateCoreData">
|
||||
<i class="icon-sync"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/BUTTON_UPDATE"></span>
|
||||
</a>
|
||||
|
||||
</span>
|
||||
<span data-bind="visible: coreAccess()">
|
||||
<a class="btn" href="http://www.rainloop.net/downloads/" target="_blank">
|
||||
<i class="icon-download"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/BUTTON_DOWNLOAD"></span>
|
||||
</a>
|
||||
|
||||
<a class="btn" href="http://www.rainloop.net/changelog/" target="_blank">
|
||||
<i class="icon-file-text"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/BUTTON_CHANGELOG"></span>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
<div data-bind="visible: 'up-to-date' === statusType()">
|
||||
<i class="icon-ok" style="color: green"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/HINT_IS_UP_TO_DATE"></span>
|
||||
</div>
|
||||
<div data-bind="visible: 'updating' === statusType()">
|
||||
<i class="icon-spinner animated"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/LABEL_UPDATING"></span>…
|
||||
</div>
|
||||
<div data-bind="visible: 'checking' === statusType()">
|
||||
<i class="icon-spinner animated"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/LABEL_CHECKING"></span>…
|
||||
</div>
|
||||
</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-admin-about">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend" data-i18n="TAB_ABOUT/LEGEND_ABOUT"></div>
|
||||
<div class="row" style="min-width: 800px;">
|
||||
<div class="span4">
|
||||
<div class="rl-logo"></div>
|
||||
<div style="margin-left: 30px;">
|
||||
2019 © <span data-i18n="TAB_ABOUT/LABEL_ALL_RIGHTS_RESERVED"></span>
|
||||
<br />
|
||||
<a class="g-ui-link" href="http://www.rainloop.net/" target="_blank" style="padding-left: 0">http://rainloop.net/</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rl-desc" style="float: left">
|
||||
<h1 style="margin-bottom: 0;">RainLoop</h1>
|
||||
<h4 style="margin-top: 0;">
|
||||
<span data-bind="text: version"></span>
|
||||
<span data-bind="visible: 'stable' !== coreType()" style="padding-left: 3px; color: red; font-weight: normal">
|
||||
(<span data-bind="text: coreType"></span> channel)
|
||||
</span>
|
||||
</h4>
|
||||
<h4 style="color: #aaa; font-weight: normal;" data-i18n="TAB_ABOUT/LABEL_TAG_HINT"></h4>
|
||||
<h5 style="font-weight: normal; margin-top: 40px;" data-bind="visible: !community">
|
||||
<div data-bind="visible: 'error' === statusType()">
|
||||
<i class="icon-warning" style="color: red"></i>
|
||||
|
||||
<span data-bind="text: errorDesc"></span>
|
||||
</div>
|
||||
<div data-bind="visible: 'available' === statusType()">
|
||||
<i class="icon-bolt" style="color: red"></i>
|
||||
|
||||
<span data-bind="html: coreRemoteVersionHtmlDesc"></span>
|
||||
<span data-bind="visible: '' !== coreRemoteRelease()">
|
||||
(<span data-bind="text: coreRemoteRelease"></span>)
|
||||
</span>
|
||||
<br />
|
||||
<span data-bind="if: coreWarning">
|
||||
<br />
|
||||
<i class="icon-warning" style="color: red"></i>
|
||||
|
||||
<b data-i18n="HINTS/WARNING"></b>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/HINT_READ_CHANGE_LOG"></span>
|
||||
<br />
|
||||
</span>
|
||||
<br />
|
||||
<span data-bind="visible: coreAccess()">
|
||||
<a class="btn" href="http://www.rainloop.net/downloads/" target="_blank">
|
||||
<i class="icon-download"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/BUTTON_DOWNLOAD"></span>
|
||||
</a>
|
||||
|
||||
<a class="btn" href="http://www.rainloop.net/changelog/" target="_blank">
|
||||
<i class="icon-file-text"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/BUTTON_CHANGELOG"></span>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
<div data-bind="visible: 'up-to-date' === statusType()">
|
||||
<i class="icon-ok" style="color: green"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/HINT_IS_UP_TO_DATE"></span>
|
||||
</div>
|
||||
<div data-bind="visible: 'updating' === statusType()">
|
||||
<i class="icon-spinner animated"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/LABEL_UPDATING"></span>…
|
||||
</div>
|
||||
<div data-bind="visible: 'checking' === statusType()">
|
||||
<i class="icon-spinner animated"></i>
|
||||
|
||||
<span data-i18n="TAB_ABOUT/LABEL_CHECKING"></span>…
|
||||
</div>
|
||||
</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
<tr class="e-item" data-bind="css: {'disabled': disabled }">
|
||||
<td class="e-action">
|
||||
<span class="domain-name" data-bind="text: name"></span>
|
||||
<span class="domain-alias" data-bind="if: alias">(alias)</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(oDomain) { $root.deleteDomain(oDomain); }">
|
||||
<span data-i18n="TAB_DOMAINS/DELETE_ARE_YOU_SURE"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-domain" data-bind="visible: !deleteAccess(), click: function (oDomain) { $root.domainForDeletion(oDomain); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="disabled-domain" data-bind="click: function (oDomain) { $root.disableDomain(oDomain); }">
|
||||
<i data-bind="css: {'icon-checkbox-checked': !disabled(), 'icon-checkbox-unchecked': disabled}"></i>
|
||||
</span>
|
||||
</td>
|
||||
<tr class="e-item" data-bind="css: {'disabled': disabled }">
|
||||
<td class="e-action">
|
||||
<span class="domain-name" data-bind="text: name"></span>
|
||||
<span class="domain-alias" data-bind="if: alias">(alias)</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(oDomain) { $root.deleteDomain(oDomain); }">
|
||||
<span data-i18n="TAB_DOMAINS/DELETE_ARE_YOU_SURE"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-domain" data-bind="visible: !deleteAccess(), click: function (oDomain) { $root.domainForDeletion(oDomain); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="disabled-domain" data-bind="click: function (oDomain) { $root.disableDomain(oDomain); }">
|
||||
<i data-bind="css: {'icon-checkbox-checked': !disabled(), 'icon-checkbox-unchecked': disabled}"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -1,181 +1,172 @@
|
|||
<div class="b-admin-general">
|
||||
<div class="row" data-bind="visible: weakPassword">
|
||||
<div class="alert alert-warning 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="row" data-bind="visible: dataFolderAccess">
|
||||
<div class="alert alert-error span8" style="margin-top: 10px;">
|
||||
<h4 data-i18n="TAB_GENERAL/ALERT_WARNING"></h4>
|
||||
<br />
|
||||
<span data-i18n="TAB_GENERAL/ALERT_DATA_ACCESS"></span>
|
||||
|
||||
<a href="https://www.rainloop.net/docs/installation/#notice"
|
||||
target="_blank"><strong>https://www.rainloop.net/docs/installation</strong></a>
|
||||
</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()"></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()"></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>
|
||||
<div class="b-admin-general">
|
||||
<div class="row" data-bind="visible: weakPassword">
|
||||
<div class="alert alert-warning 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="row" data-bind="visible: dataFolderAccess">
|
||||
<div class="alert alert-error span8" style="margin-top: 10px;">
|
||||
<h4 data-i18n="TAB_GENERAL/ALERT_WARNING"></h4>
|
||||
<br />
|
||||
<span data-i18n="TAB_GENERAL/ALERT_DATA_ACCESS"></span>
|
||||
|
||||
<a href="https://www.rainloop.net/docs/installation/#notice"
|
||||
target="_blank"><strong>https://www.rainloop.net/docs/installation</strong></a>
|
||||
</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()"></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()"></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>
|
||||
</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>
|
||||
|
|
|
|||
|
|
@ -1,87 +0,0 @@
|
|||
<div class="b-admin-licensing" >
|
||||
<div class="row">
|
||||
<div class="alert alert-info span8" style="margin-top: 10px;">
|
||||
<span data-i18n="[html]TAB_LICENSING/HTML_ALERT_TOP_1"></span>
|
||||
|
||||
<a href=http://www.rainloop.net/licensing/ target=_blank>RainLoop Software License</a>.
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_LICENSING/LABEL_YOUR_DOMAIN"></label>
|
||||
<div class="controls">
|
||||
<span class="help-inline" style="padding-top: 5px;">
|
||||
<strong data-bind="text: adminDomain"></strong>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: !subscriptionEnabled()">
|
||||
<label class="control-label" style="padding-top: 14px" data-i18n="TAB_LICENSING/LABEL_VERSION"></label>
|
||||
<div class="controls">
|
||||
<div class="alert alert-block span6" style="margin-left: 0">
|
||||
<h4>Basic</h4>
|
||||
<br />
|
||||
<p data-i18n="TAB_LICENSING/TYPE_BASIC_HINT_2"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: subscriptionEnabled">
|
||||
<label class="control-label" style="padding-top: 20px" data-i18n="TAB_LICENSING/LABEL_VERSION"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="visible: licensingProcess()" style="padding-top: 20px">
|
||||
<i class="icon-spinner animated"></i>
|
||||
|
||||
<span data-i18n="TAB_LICENSING/LABEL_CHECKING"></span>…
|
||||
</div>
|
||||
<div data-bind="visible: !licensingProcess()">
|
||||
<div class="alert alert-block span6" style="margin-left: 0; padding-top: 20px" data-bind="visible: !licensing()">
|
||||
<h4>Basic</h4>
|
||||
<br />
|
||||
<p data-i18n="TAB_LICENSING/TYPE_BASIC_HINT"></p>
|
||||
</div>
|
||||
<div data-bind="visible: licensing()">
|
||||
<div class="alert alert-success span6" style="margin-left: 0; margin-top: 10px; padding-top: 20px" data-bind="visible: licenseValid() && '' === licenseError()">
|
||||
<h4>
|
||||
<snan>Premium</snan>
|
||||
<span data-bind="visible: licenseIsUnlim()">
|
||||
|
||||
(<snan data-i18n="TAB_LICENSING/TYPE_PREMIUM_LIFETIME"></snan>)
|
||||
</span>
|
||||
</h4>
|
||||
<p data-bind="visible: 0 < licenseExpired()" style="padding-top: 10px">
|
||||
<b data-i18n="TAB_LICENSING/LABEL_SUB_EXPIRES"></b>:
|
||||
|
||||
<span data-bind="text: licenseExpiredMomentValue()"></span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="alert alert-error span6" style="margin-left: 0; margin-top: 10px;" data-bind="visible: !licenseValid() && '' !== licenseError(), text: licenseError"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: subscriptionEnabled() && !licensingProcess()">
|
||||
<div class="controls">
|
||||
<a class="btn" data-bind="click: showActivationForm">
|
||||
<i class="icon-happy-smiley"></i>
|
||||
|
||||
<span data-i18n="TAB_LICENSING/BUTTON_ACTIVATE"></span>
|
||||
</a>
|
||||
|
||||
<a class="btn" href="http://www.rainloop.net/purchase/" target="_black">
|
||||
<i class="icon-purchase"></i>
|
||||
|
||||
<span data-i18n="TAB_LICENSING/BUTTON_PURCHASE"></span>
|
||||
</a>
|
||||
<!--
|
||||
|
||||
<a class="btn" data-bind="click: showTrialForm, visible: !licensing()">
|
||||
<i class="icon-eye"></i>
|
||||
|
||||
<span data-i18n="TAB_LICENSING/BUTTON_TRIAL"></span>
|
||||
</a>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,202 +0,0 @@
|
|||
<div class="adminSecurity">
|
||||
<div class="row">
|
||||
<div class="alert alert-info span8" style="margin-top: 10px;">
|
||||
<span data-i18n="TAB_INTEGRATIONS/TOP_ALERT"></span>
|
||||
|
||||
<a href="http://rainloop.net/docs/social/" target="_blank">http://rainloop.net/docs/social/</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal g-ui-user-select-none">
|
||||
<div class="legend" data-i18n="TAB_INTEGRATIONS/LEGEND_GOOGLE"></div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: { value: googleEnable, label: 'TAB_INTEGRATIONS/LABEL_ENABLE_GOOGLE' }
|
||||
}"></div>
|
||||
<div data-bind="visible: googleEnable">
|
||||
<br />
|
||||
<blockquote>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
value: googleEnableAuth,
|
||||
label: 'TAB_INTEGRATIONS/LABEL_GOOGLE_AUTH'
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
value: googleEnableAuthGmail,
|
||||
label: 'TAB_INTEGRATIONS/LABEL_GOOGLE_AUTH_GMAIL'
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
value: googleEnableDrive,
|
||||
label: 'TAB_INTEGRATIONS/LABEL_GOOGLE_DRIVE'
|
||||
}
|
||||
}"></div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
value: googleEnablePreview,
|
||||
label: 'TAB_INTEGRATIONS/LABEL_GOOGLE_PREVIEW'
|
||||
}
|
||||
}"></div>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_INTEGRATIONS/LABEL_GOOGLE_CLIENT_ID"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
value: googleClientID,
|
||||
trigger: googleTrigger1,
|
||||
enable: googleEnableRequireClientSettings,
|
||||
size: 5
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_INTEGRATIONS/LABEL_GOOGLE_CLIENT_SECRET"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
value: googleClientSecret,
|
||||
trigger: googleTrigger2,
|
||||
enable: googleEnableRequireClientSettings,
|
||||
size: 5
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_INTEGRATIONS/LABEL_GOOGLE_API_KEY"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
value: googleApiKey,
|
||||
trigger: googleTrigger3,
|
||||
size: 5,
|
||||
enable: googleEnableRequireApiKey
|
||||
}
|
||||
}"></div>
|
||||
<blockquote style="margin-top: 10px; margin-bottom: 0">
|
||||
<p class="muted" data-i18n="TAB_INTEGRATIONS/HINT_GOOGLE_API_KEY"></p>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
<div class="legend">
|
||||
<span data-i18n="TAB_INTEGRATIONS/LEGEND_FACEBOOK"></span>
|
||||
<span style="color: #ccc; font-size: 14px;" data-bind="visible: !facebookSupported()">(<span
|
||||
data-i18n="HINTS/REQUIRES_PHP_54"></span>)</span>
|
||||
</div>
|
||||
<div data-bind="if: facebookSupported">
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: { value: facebookEnable, label: 'TAB_INTEGRATIONS/LABEL_ENABLE_FACEBOOK' }
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_INTEGRATIONS/LABEL_FACEBOOK_APP_ID"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
value: facebookAppID,
|
||||
trigger: facebookTrigger1,
|
||||
enable: facebookEnable,
|
||||
size: 5
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_INTEGRATIONS/LABEL_FACEBOOK_APP_SECRET"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
value: facebookAppSecret,
|
||||
trigger: facebookTrigger2,
|
||||
enable: facebookEnable,
|
||||
size: 5
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="legend" data-i18n="TAB_INTEGRATIONS/LEGEND_TWITTER"></div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: { value: twitterEnable, label: 'TAB_INTEGRATIONS/LABEL_ENABLE_TWITTER' }
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_INTEGRATIONS/LABEL_TWITTER_CONSUMER_KEY"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
value: twitterConsumerKey,
|
||||
trigger: twitterTrigger1,
|
||||
enable: twitterEnable,
|
||||
size: 5
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_INTEGRATIONS/LABEL_TWITTER_CONSUMER_SECRET"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
value: twitterConsumerSecret,
|
||||
trigger: twitterTrigger2,
|
||||
enable: twitterEnable,
|
||||
size: 5
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="legend" data-i18n="TAB_INTEGRATIONS/LEGEND_DROPBOX"></div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: { value: dropboxEnable, label: 'TAB_INTEGRATIONS/LABEL_ENABLE_DROPBOX' }
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_INTEGRATIONS/LABEL_DROPBOX_API_KEY"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
value: dropboxApiKey,
|
||||
trigger: dropboxTrigger1,
|
||||
enable: dropboxEnable,
|
||||
size: 5
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue