mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-05 23:47:03 +03:00
v1.2.7.415
This commit is contained in:
parent
5c1e7bc676
commit
54e2645fcf
436 changed files with 407 additions and 347 deletions
67
rainloop/v/1.2.7.415/app/templates/BadBrowser.html
Normal file
67
rainloop/v/1.2.7.415/app/templates/BadBrowser.html
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="robots" content="noindex, nofollow, noodp" />
|
||||
<title>{{ErrorTitle}}</title>
|
||||
<style>
|
||||
|
||||
html, body {
|
||||
font-family: arial, sans-serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.content {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
text-align: center;
|
||||
width: 600px;
|
||||
margin: -200px 0px 0px -250px;
|
||||
background: #FFF;
|
||||
line-height: 150%;
|
||||
border-bottom: 1px solid #E4E4E4;
|
||||
}
|
||||
|
||||
.error-header {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.error-desc {
|
||||
padding: 10px;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.browsers {
|
||||
width: 450px;
|
||||
height: 115px;
|
||||
margin: 10px auto 0px;
|
||||
}
|
||||
|
||||
.browsers a {
|
||||
float: left;
|
||||
width: 150px;
|
||||
height: 20px;
|
||||
padding: 80px 0px 7px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body class="content">
|
||||
<div class="error-header">
|
||||
{{ErrorHeader}}
|
||||
</div>
|
||||
<br />
|
||||
<div class="error-desc">
|
||||
{{ErrorDesc}}
|
||||
<br />
|
||||
<div class="browsers">
|
||||
<a href="http://www.google.com/chrome/" target="_blank" style="background: url('{{BaseWebStaticPath}}browsers/chrome.gif') no-repeat 50% 6px;">Google Chrome</a>
|
||||
<a href="http://www.mozilla-europe.org/" target="_blank" style="background: url('{{BaseWebStaticPath}}browsers/firefox.gif') no-repeat 50% 7px;">Mozilla Firefox</a>
|
||||
<a href="http://www.opera.com/" target="_blank" style="background: url('{{BaseWebStaticPath}}browsers/opera.gif') no-repeat 50% 7px;">Opera</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
53
rainloop/v/1.2.7.415/app/templates/Error.html
Normal file
53
rainloop/v/1.2.7.415/app/templates/Error.html
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="robots" content="noindex, nofollow, noodp" />
|
||||
<title>{{ErrorTitle}}</title>
|
||||
<style>
|
||||
|
||||
html, body {
|
||||
font-family: arial, sans-serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.content {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
text-align: center;
|
||||
width: 600px;
|
||||
margin: -200px 0px 0px -250px;
|
||||
background: #FFF;
|
||||
line-height: 150%;
|
||||
border-bottom: 1px solid #E4E4E4;
|
||||
}
|
||||
|
||||
.error-header {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.error-desc {
|
||||
padding: 10px;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body class="content">
|
||||
<div class="error-header">
|
||||
{{ErrorHeader}}
|
||||
</div>
|
||||
<br />
|
||||
<div class="error-desc">
|
||||
{{ErrorDesc}}
|
||||
<br />
|
||||
<div style="display: {{BackLinkVisibility}}">
|
||||
<br />
|
||||
<a href="{{BackHref}}">{{BackLink}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
74
rainloop/v/1.2.7.415/app/templates/Index.html
Normal file
74
rainloop/v/1.2.7.415/app/templates/Index.html
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="viewport" content="user-scalable=no" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<noscript>
|
||||
<meta http-equiv="refresh" content="0; URL={{BaseIndexFile}}?/NoScript" />
|
||||
</noscript>
|
||||
<!--[if lte IE 7]>
|
||||
<meta http-equiv="refresh" content="0; URL={{BaseIndexFile}}?/BadBrowser" />
|
||||
<![endif]-->
|
||||
<script>
|
||||
if (!navigator || !navigator.cookieEnabled) {
|
||||
document.location.replace('{{BaseIndexFile}}?/NoCookie');
|
||||
}
|
||||
</script>
|
||||
<meta name="robots" content="noindex, nofollow, noodp" />
|
||||
<title></title>
|
||||
<link rel="shortcut icon" href="{{BaseAppFaviconFile}}" />
|
||||
<link type="text/css" rel="stylesheet" href="{{BaseAppMainCssLink}}" />
|
||||
<script>
|
||||
window._headBoot = ['{{BaseAppJqueryScriptLink}}', '{{BaseAppLibsScriptLink}}'];
|
||||
</script>
|
||||
<script src="{{BaseAppBootScriptLink}}"></script>
|
||||
<script>
|
||||
document.write(unescape('%3Cscript src="{{BaseAppDataScriptLink}}' + (window.__rlah ? window.__rlah() || '0' : '0') + '/"%3E%3C/script%3E'))
|
||||
</script>
|
||||
<script>
|
||||
if (window.rainloopAppData)
|
||||
{
|
||||
if (window.rainloopAppData['Theme'] && window.rainloopAppData['NewThemeLink']) {
|
||||
var sHref = window.rainloopAppData['NewThemeLink'];
|
||||
if ('Custom' === window.rainloopAppData['Theme']) {
|
||||
sHref = sHref.replace('/Css/0/User/-/Custom/-/', '/Css/' + (window.__rlah ? window.__rlah() || '0' : '0') + '/User/-/Custom/-/');
|
||||
}
|
||||
|
||||
document.write('<link type="text/css" type="text/css" rel="stylesheet" href="' + sHref + '" id="rlThemeLink" />');
|
||||
sHref = null;
|
||||
}
|
||||
if (window.rainloopAppData['LangLink']) {
|
||||
window._headBoot.push(window.rainloopAppData['LangLink']);
|
||||
}
|
||||
window._headBoot.push('{{BaseAppMainScriptLink}}');
|
||||
if (window.rainloopAppData['PluginsLink']) {
|
||||
window._headBoot.push(window.rainloopAppData['PluginsLink']);
|
||||
}
|
||||
|
||||
if (window._headBoot && window.head && window.head.js && 0 < window._headBoot.length)
|
||||
{
|
||||
for (var iIndex = 0, iLen = window._headBoot.length; iIndex < iLen; iIndex++) {
|
||||
window.head.js(window._headBoot[iIndex]);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body class="thm-body">
|
||||
<div id="rl-loading" class="thm-loading">RainLoop</div>
|
||||
<div id="rl-content">
|
||||
<div id="rl-popups"></div>
|
||||
<div id="rl-center">
|
||||
<div id="rl-top"></div>
|
||||
<div id="rl-left"></div>
|
||||
<div id="rl-right"></div>
|
||||
<div id="rl-bottom"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="rl-hidden">
|
||||
{{BaseTemplates}}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
|
||||
// MAIN
|
||||
@main-color: #333;
|
||||
@main-background-color: #48525C;
|
||||
@main-background-image: link;
|
||||
|
||||
// LOADING
|
||||
@loading-color: #ddd;
|
||||
@loading-text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
|
||||
|
||||
// LOGIN
|
||||
@login-color: #eee;
|
||||
@login-background-color: #2b333d;
|
||||
@login-rgba-background-color: rgba(0,0,0,0.5);
|
||||
@login-box-shadow: 0px 2px 10px rgba(0,0,0,0.5);
|
||||
@login-border: none;
|
||||
@login-border-radius: 7px;
|
||||
|
||||
// MENU
|
||||
@dropdown-menu-color: #333;
|
||||
@dropdown-menu-background-color: #fff;
|
||||
@dropdown-menu-hover-background-color: #48525C;
|
||||
@dropdown-menu-hover-color: #eee;
|
||||
@dropdown-menu-disable-color: #999;
|
||||
|
||||
// FOLDERS
|
||||
@folders-color: #fff;
|
||||
@folders-disabled-color: #aaa;
|
||||
@folders-selected-color: #fff;
|
||||
@folders-selected-background-color: #2b333d;
|
||||
@folders-selected-rgba-background-color: rgba(0,0,0,0.5);
|
||||
@folders-hover-color: #fff;
|
||||
@folders-hover-background-color: #2b333d;
|
||||
@folders-hover-rgba-background-color: rgba(0,0,0,0.5);
|
||||
@folders-drop-color: #fff;
|
||||
@folders-drop-background-color: #2b333d;
|
||||
@folders-drop-rgba-background-color: rgba(0,0,0,0.5);
|
||||
|
||||
// SETTINGS
|
||||
@settings-menu-color: #fff;
|
||||
@settings-menu-disabled-color: #aaa;
|
||||
@settings-menu-selected-color: #fff;
|
||||
@settings-menu-selected-background-color: #2b333d;
|
||||
@settings-menu-selected-rgba-background-color: rgba(0,0,0,0.5);
|
||||
@settings-menu-hover-color: #fff;
|
||||
@settings-menu-hover-background-color: #2b333d;
|
||||
@settings-menu-hover-rgba-background-color: rgba(0,0,0,0.5);
|
||||
|
||||
// MESSAGE LIST
|
||||
@message-list-toolbar-background-color: #eee;
|
||||
@message-list-toolbar-gradient-start: #f4f4f4;
|
||||
@message-list-toolbar-gradient-end: #dfdfdf;
|
||||
|
||||
// MESSAGE
|
||||
@message-background-color: #fff;
|
||||
@message-rgba-background-color: rgba(255,255,255,0.95);
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
|
||||
// MAIN
|
||||
@main-color: #333;
|
||||
@main-background-color: #eee;
|
||||
@main-background-image: link;
|
||||
|
||||
// LOADING
|
||||
@loading-color: #000;
|
||||
|
||||
// LOGIN
|
||||
@login-color: #eee;
|
||||
@login-background-color: #757575;
|
||||
@login-rgba-background-color: rgba(0,0,0,0.5);
|
||||
@login-box-shadow: none;
|
||||
@login-border: none;
|
||||
@login-border-radius: 7px;
|
||||
|
||||
// MENU
|
||||
@dropdown-menu-color: #333;
|
||||
@dropdown-menu-background-color: #fff;
|
||||
@dropdown-menu-hover-background-color: #757575;
|
||||
@dropdown-menu-hover-color: #eee;
|
||||
@dropdown-menu-disable-color: #999;
|
||||
|
||||
// FOLDERS
|
||||
@folders-color: #000;
|
||||
@folders-disabled-color: #999;
|
||||
@folders-selected-color: #eee;
|
||||
@folders-selected-background-color: #757575;
|
||||
@folders-selected-rgba-background-color: rgba(0,0,0,0.5);
|
||||
@folders-hover-color: #eee;
|
||||
@folders-hover-background-color: #757575;
|
||||
@folders-hover-rgba-background-color: rgba(0,0,0,0.5);
|
||||
@folders-drop-color: #eee;
|
||||
@folders-drop-background-color: #757575;
|
||||
@folders-drop-rgba-background-color: rgba(0,0,0,0.5);
|
||||
|
||||
// SETTINGS
|
||||
@settings-menu-color: #000;
|
||||
@settings-menu-disabled-color: #999;
|
||||
@settings-menu-selected-color: #eee;
|
||||
@settings-menu-selected-background-color: #757575;
|
||||
@settings-menu-selected-rgba-background-color: rgba(0,0,0,0.5);
|
||||
@settings-menu-hover-color: #eee;
|
||||
@settings-menu-hover-background-color: #757575;
|
||||
@settings-menu-hover-rgba-background-color: rgba(0,0,0,0.5);
|
||||
|
||||
// MESSAGE LIST
|
||||
@message-list-toolbar-background-color: #eee;
|
||||
@message-list-toolbar-gradient-start: #f4f4f4;
|
||||
@message-list-toolbar-gradient-end: #dfdfdf;
|
||||
|
||||
// MESSAGE
|
||||
@message-background-color: #fff;
|
||||
@message-rgba-background-color: rgba(255,255,255,0.95);
|
||||
148
rainloop/v/1.2.7.415/app/templates/Themes/template.less
Normal file
148
rainloop/v/1.2.7.415/app/templates/Themes/template.less
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
|
||||
// mixins +++
|
||||
.thm-linear-gradient-mixin(@start, @end) when (iscolor(@start)) and (iscolor(@end)) {
|
||||
background-color: mix(@start, @end, 60%) !important;
|
||||
background-image: -moz-linear-gradient(top, @start, @end) !important; // FF 3.6+
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start), to(@end)) !important; // Safari 4+, Chrome 2+
|
||||
background-image: -webkit-linear-gradient(top, @start, @end) !important; // Safari 5.1+, Chrome 10+
|
||||
background-image: -o-linear-gradient(top, @start, @end !important); // Opera 11.10
|
||||
background-image: linear-gradient(to bottom, @start, @end) !important; // Standard, IE10
|
||||
background-repeat: repeat-x !important;
|
||||
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start),argb(@end))) !important; // IE9 and down
|
||||
}
|
||||
|
||||
.thm-border-radius(@radius) when (ispixel(@radius)) {
|
||||
-webkit-border-radius: @radius !important;
|
||||
-moz-border-radius: @radius !important;
|
||||
border-radius: @radius !important;
|
||||
}
|
||||
|
||||
.thm-box-shadow(@shadow) {
|
||||
-webkit-box-shadow: @shadow !important;
|
||||
-moz-box-shadow: @shadow !important;
|
||||
box-shadow: @shadow !important;
|
||||
}
|
||||
.thm-body-background-image(@value) when (isstring(@value)) {
|
||||
background-image: url("@{base}@{value}") !important;
|
||||
}
|
||||
.thm-body-background-image(@value) when not (isstring(@value)) {
|
||||
background-image: @value !important;
|
||||
}
|
||||
.thm-rgba-background-color(@simple, @rgba) when (@rgba = false) {
|
||||
background-color: @simple !important;
|
||||
}
|
||||
.thm-rgba-background-color(@simple, @rgba) when not (@rgba = false) {
|
||||
background-color: @simple !important;
|
||||
background-color: @rgba !important;
|
||||
}
|
||||
// --- mixins
|
||||
|
||||
.thm-body {
|
||||
color: @main-color;
|
||||
background-color: @main-background-color;
|
||||
.thm-body-background-image(@main-background-image);
|
||||
}
|
||||
|
||||
.thm-loading {
|
||||
color: @loading-color !important;
|
||||
text-shadow: @loading-text-shadow !important;
|
||||
}
|
||||
|
||||
.thm-login {
|
||||
color: @login-color !important;
|
||||
border: @login-border !important;
|
||||
.thm-rgba-background-color(@login-background-color, @login-rgba-background-color);
|
||||
.thm-linear-gradient-mixin(@login-gradient-start, @login-gradient-end);
|
||||
.thm-border-radius(@login-border-radius);
|
||||
.thm-box-shadow(@login-box-shadow);
|
||||
|
||||
.legend, .checkboxSignMe {
|
||||
color: @login-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.g-ui-menu {
|
||||
color: @dropdown-menu-color !important;
|
||||
background-color: @dropdown-menu-background-color !important;
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item > .e-link {
|
||||
color: @dropdown-menu-color !important;
|
||||
background-color: @dropdown-menu-background-color !important;
|
||||
|
||||
> i {
|
||||
color: @dropdown-menu-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item > .e-link:hover {
|
||||
color: @dropdown-menu-hover-color !important;
|
||||
background-color: @dropdown-menu-hover-background-color !important;
|
||||
|
||||
> i {
|
||||
color: @dropdown-menu-hover-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item.disable > .e-link, .g-ui-menu .e-item.disable > .e-link:hover {
|
||||
color: @dropdown-menu-disable-color !important;
|
||||
background-color: @dropdown-menu-background-color !important;
|
||||
|
||||
> i {
|
||||
color: @dropdown-menu-disable-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-message-list-top-toolbar, .thm-message-list-bottom-toolbar {
|
||||
.thm-rgba-background-color(@message-list-toolbar-background-color, @message-list-toolbar-rgba-background-color);
|
||||
.thm-linear-gradient-mixin(@message-list-toolbar-gradient-start, @message-list-toolbar-gradient-end);
|
||||
}
|
||||
|
||||
.thm-folders .e-link {
|
||||
|
||||
color: @folders-disabled-color !important;
|
||||
|
||||
&.selectable {
|
||||
color: @folders-color !important;
|
||||
}
|
||||
|
||||
&.selectable:hover {
|
||||
color: @folders-hover-color !important;
|
||||
.thm-rgba-background-color(@folders-hover-background-color, @folders-hover-rgba-background-color);
|
||||
}
|
||||
|
||||
&.selectable.selected {
|
||||
color: @folders-selected-color !important;
|
||||
.thm-rgba-background-color(@folders-selected-background-color, @folders-selected-rgba-background-color);
|
||||
}
|
||||
|
||||
&.selectable.droppableHover {
|
||||
color: @folders-drop-color !important;
|
||||
.thm-rgba-background-color(@folders-drop-background-color, @folders-drop-rgba-background-color);
|
||||
}
|
||||
}
|
||||
|
||||
.thm-settings-menu .e-item {
|
||||
|
||||
.e-link {
|
||||
color: @settings-menu-disabled-color !important;
|
||||
}
|
||||
|
||||
&.selectable .e-link {
|
||||
color: @settings-menu-color !important;
|
||||
}
|
||||
|
||||
&.selectable:hover .e-link {
|
||||
.thm-rgba-background-color(@settings-menu-hover-background-color, @settings-menu-hover-rgba-background-color);
|
||||
color: @settings-menu-hover-color !important;
|
||||
}
|
||||
|
||||
&.selectable.selected .e-link {
|
||||
.thm-rgba-background-color(@settings-menu-selected-background-color, @settings-menu-selected-rgba-background-color);
|
||||
color: @settings-menu-selected-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-message-view-background-color {
|
||||
.thm-rgba-background-color(@message-background-color, @message-rgba-background-color);
|
||||
}
|
||||
59
rainloop/v/1.2.7.415/app/templates/Themes/values.less
Normal file
59
rainloop/v/1.2.7.415/app/templates/Themes/values.less
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
|
||||
// MAIN
|
||||
@main-color: #333;
|
||||
@main-background-color: #e3e3e3;
|
||||
@main-background-image: none; // "images/background.png"
|
||||
|
||||
// LOADING
|
||||
@loading-color: #000; // #ddd
|
||||
@loading-text-shadow: none; // 0px 1px 0px rgba(0, 0, 0, 0.5);
|
||||
|
||||
// LOGIN
|
||||
@login-color: #555;
|
||||
@login-background-color: #eee;
|
||||
@login-rgba-background-color: false; // rgba(0,0,0,0.7)
|
||||
@login-box-shadow: none; // 0px 2px 10px rgba(0,0,0,0.5)
|
||||
@login-border: 1px solid #ccc;
|
||||
@login-border-radius: 7px;
|
||||
@login-gradient-start: none; // #f4f4f4
|
||||
@login-gradient-end: none; // #dfdfdf
|
||||
|
||||
// MENU
|
||||
@dropdown-menu-color: #333;
|
||||
@dropdown-menu-background-color: #fff;
|
||||
@dropdown-menu-hover-background-color: #444;
|
||||
@dropdown-menu-hover-color: #eee;
|
||||
@dropdown-menu-disable-color: #999;
|
||||
|
||||
// FOLDERS
|
||||
@folders-color: #333;
|
||||
@folders-disabled-color: #666;
|
||||
@folders-selected-color: #eee;
|
||||
@folders-selected-background-color: #333;
|
||||
@folders-selected-rgba-background-color: false;
|
||||
@folders-hover-color: #eee;
|
||||
@folders-hover-background-color: #333;
|
||||
@folders-hover-rgba-background-color: false;
|
||||
@folders-drop-color: #eee;
|
||||
@folders-drop-background-color: #333;
|
||||
@folders-drop-rgba-background-color: false;
|
||||
|
||||
// SETTINGS
|
||||
@settings-menu-color: #333;
|
||||
@settings-menu-disabled-color: #666;
|
||||
@settings-menu-selected-color: #eee;
|
||||
@settings-menu-selected-background-color: #333;
|
||||
@settings-menu-selected-rgba-background-color: false;
|
||||
@settings-menu-hover-color: #eee;
|
||||
@settings-menu-hover-background-color: #333;
|
||||
@settings-menu-hover-rgba-background-color: false;
|
||||
|
||||
// MESSAGE LIST
|
||||
@message-list-toolbar-background-color: #eee;
|
||||
@message-list-toolbar-rgba-background-color: false;
|
||||
@message-list-toolbar-gradient-start: none; // #f4f4f4
|
||||
@message-list-toolbar-gradient-end: none; // #dfdfdf
|
||||
|
||||
// MESSAGE
|
||||
@message-background-color: #fff;
|
||||
@message-rgba-background-color: false;
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<tr class="e-item" data-bind="css: {'disabled': disabled }">
|
||||
<td class="e-action">
|
||||
<span class="domain-name" data-bind="text: name"></span>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete" data-bind="css: {'delete-access': deleteAccess()}, click: function(oDomain) { $root.deleteDomain(oDomain); }">
|
||||
<span>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="disable-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>
|
||||
31
rainloop/v/1.2.7.415/app/templates/Views/AdminDomains.html
Normal file
31
rainloop/v/1.2.7.415/app/templates/Views/AdminDomains.html
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<div class="b-admin-domains" >
|
||||
<div class="legend">
|
||||
Domains
|
||||
</div>
|
||||
<div>
|
||||
<blockquote>
|
||||
<p class="muted">
|
||||
List of domains webmail is allowed to access.
|
||||
</p>
|
||||
</blockquote>
|
||||
<a class="btn" data-bind="click: createDomain">
|
||||
<i class="icon-plus"></i>
|
||||
|
||||
Add Domain
|
||||
</a>
|
||||
<div class="process-place" data-bind="style: {'visibility': visibility }">
|
||||
<i class="icon-spinner-2 animated"></i>
|
||||
|
||||
loading...
|
||||
</div>
|
||||
<table class="table table-hover b-admin-domains-list-table" data-bind="i18nUpdate: domains">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 140px" />
|
||||
<col style="width: 1%" />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="template: { name: 'AdminDomainListItem', foreach: domains }"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
56
rainloop/v/1.2.7.415/app/templates/Views/AdminGeneral.html
Normal file
56
rainloop/v/1.2.7.415/app/templates/Views/AdminGeneral.html
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
<div class="b-admin-general">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
General
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
Title
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" data-bind="value: title" />
|
||||
<div data-bind="saveTrigger: titleTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
Language
|
||||
</label>
|
||||
<div class="controls">
|
||||
<select data-bind="options: languagesOptions, value: mainLanguage, optionsText: 'optText', optionsValue: 'optValue'"></select>
|
||||
<div data-bind="saveTrigger: languageTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
Theme
|
||||
</label>
|
||||
<div class="controls">
|
||||
<select data-bind="options: themesOptions, value: mainTheme, optionsText: 'optText', optionsValue: 'optValue'"></select>
|
||||
<div data-bind="saveTrigger: themeTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label data-bind="click: function () { allowCustomTheme(!allowCustomTheme()); }">
|
||||
<i data-bind="css: allowCustomTheme() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
Allow customized theme
|
||||
</label>
|
||||
<label data-bind="click: function () { allowAdditionalAccounts(!allowAdditionalAccounts()); }">
|
||||
<i data-bind="css: allowAdditionalAccounts() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
Allow additional accounts
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div data-bind="visible: !contactsSupported">
|
||||
<br />
|
||||
<div class="alert alert-block span8">
|
||||
<h4>Notice!</h4>
|
||||
<br />
|
||||
<strong>Contacts</strong> functions are not supported.
|
||||
<br />
|
||||
You need to install or enable <strong>PDO (sqlite)</strong> exstenstion on your server.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
60
rainloop/v/1.2.7.415/app/templates/Views/AdminLicensing.html
Normal file
60
rainloop/v/1.2.7.415/app/templates/Views/AdminLicensing.html
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
<div class="b-admin-licensing" >
|
||||
<div class="row">
|
||||
<div class="alert alert-info span10">
|
||||
RainLoop Webmail is licensed under <strong>Creative Commons Attribution-NonCommercial 3.0 (CC BY-NC 3.0)</strong> license.
|
||||
<br />
|
||||
You are free to use it for your personal or non-profit projects.
|
||||
<br />
|
||||
<br />
|
||||
Commercial use of <strong>RainLoop Webmail</strong> requires getting a <a href="http://rainloop.net/purchase/" target="_blank">permission</a>.
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-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">
|
||||
<div class="controls">
|
||||
<div data-bind="visible: licensingProcess()">
|
||||
<i class="icon-spinner-2 animated"></i>
|
||||
|
||||
checking...
|
||||
</div>
|
||||
<div data-bind="visible: !licensingProcess()">
|
||||
<div class="alert alert-block span8" style="margin-left: 0" data-bind="visible: !licensing()">
|
||||
This domain isn't licensed for commercial use.
|
||||
</div>
|
||||
<div data-bind="visible: licensing()">
|
||||
<div class="alert alert-success span8" style="margin-left: 0" data-bind="visible: licenseValid() && '' === licenseError()">
|
||||
<p>
|
||||
This domain is licensed for commercial use
|
||||
</p>
|
||||
<p data-bind="visible: 0 < licenseExpired()">
|
||||
<b>Subscription expires:</b>
|
||||
|
||||
<span data-bind="text: licenseExpiredMomentValue()"></span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="alert alert-error span8" style="margin-left: 0" data-bind="visible: !licenseValid() && '' !== licenseError(), text: licenseError"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: !licensingProcess()">
|
||||
<div class="controls">
|
||||
<button class="btn" data-bind="click: showActivationForm">
|
||||
<i class="icon-love"></i>
|
||||
|
||||
Activate Subscription Key
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
35
rainloop/v/1.2.7.415/app/templates/Views/AdminLogin.html
Normal file
35
rainloop/v/1.2.7.415/app/templates/Views/AdminLogin.html
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<div class="b-login-content">
|
||||
<div class="loginFormWrapper">
|
||||
<center>
|
||||
<div class="alert" data-bind="visible: '' !== submitError()">
|
||||
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
</div>
|
||||
<form class="form-horizontal span4 wrapper loginForm thm-login" action="#/" onsubmit="return false;" data-bind="command: submitCommand">
|
||||
<div class="control-group" data-bind="css: {'error': loginError}">
|
||||
<div class="input-append">
|
||||
<input class="inputLogin span4" placeholder="Login" type="text" autocomplete="off" data-bind="value: login, hasFocus: loginFocus" />
|
||||
<span class="add-on">
|
||||
<i class="icon-user"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': passwordError}">
|
||||
<div class="input-append">
|
||||
<input class="inputPassword span4" placeholder="Password" type="password" autocomplete="off" data-bind="value: password" />
|
||||
<span class="add-on">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<button type="submit" class="btn btn-large span4 buttonLogin" data-bind="command: submitCommand">
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: submitRequest"></i>
|
||||
<span data-bind="visible: !submitRequest()">Log into the admin panel</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</center>
|
||||
</div>
|
||||
<div class="loginAfter"></div>
|
||||
<div>
|
||||
17
rainloop/v/1.2.7.415/app/templates/Views/AdminMenu.html
Normal file
17
rainloop/v/1.2.7.415/app/templates/Views/AdminMenu.html
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<div class="b-admin-left g-ui-user-select-none">
|
||||
<div class="b-toolbar"></div>
|
||||
<div class="b-content thm-settings-menu">
|
||||
<div class="b-admin-menu" data-bind="foreach: menu">
|
||||
<!-- ko if: disabled -->
|
||||
<span class="e-item disabled">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</span>
|
||||
<!-- /ko -->
|
||||
<!-- ko ifnot: disabled -->
|
||||
<a class="e-item selectable" href="#" data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route) }">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</a>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
46
rainloop/v/1.2.7.415/app/templates/Views/AdminPackages.html
Normal file
46
rainloop/v/1.2.7.415/app/templates/Views/AdminPackages.html
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<div class="b-admin-packages">
|
||||
|
||||
<div class="alert" data-bind="visible: !packagesReal() && !packagesLoading()">
|
||||
Cannot access the repository at the moment.
|
||||
</div>
|
||||
|
||||
<div class="alert" data-bind="visible: !packagesMainUpdatable() && !packagesLoading()">
|
||||
Unable to update RainLoop Webmail source!
|
||||
</div>
|
||||
|
||||
<div class="alert" data-bind="visible: '' !== packagesError()">
|
||||
<button type="button" class="close" data-bind="click: function () { packagesError('') }">×</button>
|
||||
<span data-bind="text: packagesError"></span>
|
||||
</div>
|
||||
|
||||
<div class="process-place" data-bind="style: {'visibility': visibility }">
|
||||
<i class="icon-spinner-2 animated"></i>
|
||||
|
||||
loading...
|
||||
</div>
|
||||
|
||||
<div data-bind="visible: 0 < packagesAvailableForUpdate().length">
|
||||
<div class="legend">
|
||||
Available for Update (<span data-bind="text: packagesAvailableForUpdate().length"></span>)
|
||||
</div>
|
||||
<div data-bind="template: { name: 'AdminPackagesTable', data: {f: packagesAvailableForUpdate} }"></div>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<div data-bind="visible: 0 < packagesCurrent().length">
|
||||
<div class="legend">
|
||||
Installed Packages
|
||||
</div>
|
||||
<div data-bind="template: { name: 'AdminPackagesTable', data: {f: packagesCurrent} }"></div>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<div data-bind="visible: 0 < packagesAvailableForInstallation().length">
|
||||
<div class="legend">
|
||||
Available for Installation
|
||||
</div>
|
||||
<div data-bind="template: { name: 'AdminPackagesTable', data: {f: packagesAvailableForInstallation} }"></div>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<tr class="e-item">
|
||||
<td class="package-name-parent">
|
||||
<span class="package-name" data-bind="text: name, css: {'core': 'core' === type}"></span>
|
||||
<span class="package-installed pull-right" data-bind="text: installed"></span>
|
||||
<div class="package-desc" data-bind="text: desc"></div>
|
||||
</td>
|
||||
<td class="package-version-parent">
|
||||
<span class="package-version" data-bind="text: version"></span>
|
||||
</td>
|
||||
<td class="package-release-parent">
|
||||
<span class="package-release" data-bind="text: release"></span>
|
||||
</td>
|
||||
<td class="package-actions-parent">
|
||||
<i class="icon-download e-action button-download" data-bind="visible: !loading() && canBeUpdated, click: function () { $root.installPackage($data); }"></i>
|
||||
|
||||
<i class="icon-trash e-action button-delete" data-bind="visible: !loading() && canBeDeleted, click: function () { $root.deletePackage($data); }"></i>
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: loading"></i>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<table class="table table-hover table-bordered b-admin-packages-list-table" data-bind="i18nUpdate: f">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 100px" />
|
||||
<col style="width: 100px" />
|
||||
<col style="width: 80px" />
|
||||
</colgroup>
|
||||
<tbody data-bind="template: { name: 'AdminPackagesListItem', foreach: f }"></tbody>
|
||||
</table>
|
||||
23
rainloop/v/1.2.7.415/app/templates/Views/AdminPane.html
Normal file
23
rainloop/v/1.2.7.415/app/templates/Views/AdminPane.html
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<div class="b-admin-right g-ui-user-select-none">
|
||||
<div class="b-toolbar">
|
||||
<div class="btn-toolbar">
|
||||
<h4 class="pull-left">
|
||||
Admin Panel
|
||||
|
||||
(<span data-bind="text: adminDomain"></span>)
|
||||
</h4>
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn btn-narrow" data-bind="click: logoutClick">
|
||||
<i class="icon-switch"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content" data-bind="nano: true">
|
||||
<div class="content g-scrollbox">
|
||||
<div class="content-wrapper">
|
||||
<div id="rl-settings-subscreen" class="b-settings-content"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<tr class="e-item" data-bind="css: {'disabled': disabled }">
|
||||
<td>
|
||||
<span class="plugin-name" data-bind="text: name"></span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="configure-plugin" data-bind="click: function (oPlugin) { $root.configurePlugin(oPlugin); }">
|
||||
<i class="icon-settings5 e-action"></i>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="disable-plugin" data-bind="click: function (oPlugin) { $root.disablePlugin(oPlugin); }">
|
||||
<i data-bind="css: {'e-action icon-checkbox-checked': !disabled(), 'e-action icon-checkbox-unchecked': disabled}"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<div class="b-admin-plugin-property">
|
||||
<label class="control-label">
|
||||
<span data-bind="text: Label, visible: 5 !== Type"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<!-- ko if: 0 === Type || 1 === Type -->
|
||||
<input type="text" data-bind="value: value" />
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 3 === Type -->
|
||||
<input type="password" data-bind="value: value" />
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 2 === Type -->
|
||||
<textarea data-bind="value: value"></textarea>
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 4 === Type -->
|
||||
<select data-bind="options: Default, value: value"></select>
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 5 === Type -->
|
||||
<label data-bind="click: function () { value(!value()); }">
|
||||
<i data-bind="css: value() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span data-bind="text: Label"></span>
|
||||
</label>
|
||||
<!-- /ko -->
|
||||
<span class="help-block" style="color: #ccc" data-bind="text: Desc, visible: '' !== Desc"></span>
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
48
rainloop/v/1.2.7.415/app/templates/Views/AdminPlugins.html
Normal file
48
rainloop/v/1.2.7.415/app/templates/Views/AdminPlugins.html
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
<div class="b-admin-plugins">
|
||||
|
||||
<div class="row">
|
||||
<div class="alert span8" data-bind="visible: '' !== pluginsError()">
|
||||
<button type="button" class="close" data-bind="click: function () { pluginsError('') }">×</button>
|
||||
<span data-bind="text: pluginsError"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="process-place" data-bind="style: {'visibility': visibility }">
|
||||
<i class="icon-spinner-2 animated"></i>
|
||||
|
||||
loading...
|
||||
</div>
|
||||
|
||||
<div class="legend">
|
||||
Plugins
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label data-bind="click: function () { enabledPlugins(!enabledPlugins()); }">
|
||||
<i data-bind="css: enabledPlugins() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
Enable plugins
|
||||
</label>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="alert alert-info span8" data-bind="visible: 0 === plugins().length">
|
||||
No plugins have yet been installed.
|
||||
<br />
|
||||
<br />
|
||||
<strong><a href="#/packages">Click here install new!</a></strong>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span8">
|
||||
<table class="table table-hover b-admin-plugins-list-table " data-bind="i18nUpdate: plugins, visible: 0 < plugins().length">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 30px" />
|
||||
<col style="width: 30px" />
|
||||
</colgroup>
|
||||
<tbody data-bind="template: { name: 'AdminPluginListItem', foreach: plugins }"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
51
rainloop/v/1.2.7.415/app/templates/Views/AdminSecurity.html
Normal file
51
rainloop/v/1.2.7.415/app/templates/Views/AdminSecurity.html
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<div class="adminSecurity">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
Security
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label data-bind="click: function () { csrfProtection(!csrfProtection()); }">
|
||||
<i data-bind="css: csrfProtection() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<abbr title="Cross-site request forgery" class="initialism">CSRF</abbr> protection
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<a href="#" target="_blank" class="g-ui-link" data-bind="link: phpInfoLink()">Show PHP information</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
Changer Admin Password
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
Current password
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: adminPassword, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
New password
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: adminPasswordNew, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<a class="btn" data-bind="command: saveNewAdminPasswordCommand, css: { 'btn-success': adminPasswordUpdateSuccess, 'btn-danger': adminPasswordUpdateError }">
|
||||
<i class="icon-key" data-bind="css: {'icon-white': adminPasswordUpdateSuccess() || adminPasswordUpdateError() }"></i>
|
||||
|
||||
Update Password
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
117
rainloop/v/1.2.7.415/app/templates/Views/AdminSocial.html
Normal file
117
rainloop/v/1.2.7.415/app/templates/Views/AdminSocial.html
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
<div class="adminSecurity">
|
||||
<div class="row">
|
||||
<div class="alert alert-info span10">
|
||||
Detailed information on social integration is found at
|
||||
<a href="http://rainloop.net/docs/social/" target="_blank">http://rainloop.net/docs/social/</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
Google
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label data-bind="click: function () { googleEnable(!googleEnable()); }">
|
||||
<i data-bind="css: googleEnable() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
Enable Google Integration
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
Client ID
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: googleClientID" />
|
||||
<div data-bind="saveTrigger: googleTrigger1"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
Client Secret
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: googleClientSecret" />
|
||||
<div data-bind="saveTrigger: googleTrigger2"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="legend">
|
||||
Facebook
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label data-bind="click: function () { facebookEnable(!facebookEnable()); }">
|
||||
<i data-bind="css: facebookEnable() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
Enable Facebook Integration
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
App ID
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: facebookAppID" />
|
||||
<div data-bind="saveTrigger: facebookTrigger1"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
App Secret
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: facebookAppSecret" />
|
||||
<div data-bind="saveTrigger: facebookTrigger2"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="legend">
|
||||
Twitter
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label data-bind="click: function () { twitterEnable(!twitterEnable()); }">
|
||||
<i data-bind="css: twitterEnable() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
Enable Twitter Integration
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
Consumer Key
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: twitterConsumerKey" />
|
||||
<div data-bind="saveTrigger: twitterTrigger1"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
Consumer Secret
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: twitterConsumerSecret" />
|
||||
<div data-bind="saveTrigger: twitterTrigger2"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="legend">
|
||||
Dropbox
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label data-bind="click: function () { dropboxEnable(!dropboxEnable()); }">
|
||||
<i data-bind="css: dropboxEnable() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
Enable Dropbox Integration
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
Api Key
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: dropboxApiKey" />
|
||||
<div data-bind="saveTrigger: dropboxTrigger1"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<div class="b-attacment">
|
||||
<label>
|
||||
<input type="checkbox" data-bind="checked: enabled" />
|
||||
|
||||
<span class="name" data-bind="text: fileName"></span>
|
||||
(<span class="size" data-bind="text: friendlySize"></span>)
|
||||
</label>
|
||||
</div>
|
||||
<br />
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<div class="b-attacment-in-process" data-bind="css: {'error': '' !== error(), 'uploading': uploading, 'waiting': waiting }, in18nInit: true">
|
||||
<a class="close" data-bind="click: cancel">×</a>
|
||||
<span class="uploading"><i class="icon-spinner-2 animated"></i></span>
|
||||
<span class="namedStr">
|
||||
<span class="name" data-bind="text: fileName"></span>
|
||||
|
||||
(<span class="size" data-bind="text: friendlySize"></span>)
|
||||
<span class="upload-progress" data-bind="text: progress"></span>
|
||||
</span>
|
||||
<div class="error">
|
||||
<span data-bind="text: error"></span>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
89
rainloop/v/1.2.7.415/app/templates/Views/Login.html
Normal file
89
rainloop/v/1.2.7.415/app/templates/Views/Login.html
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<div class="b-login-content">
|
||||
<div class="loginFormWrapper">
|
||||
<center>
|
||||
<div class="alert" data-bind="visible: '' !== submitError()">
|
||||
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
</div>
|
||||
<form class="form-horizontal span4 wrapper loginForm thm-login" action="#/" onsubmit="return false;" data-bind="command: submitCommand">
|
||||
{{INCLUDE/TopControlGroup/PLACE}}
|
||||
<div class="control-group" data-bind="css: {'error': emailError}">
|
||||
<div class="input-append">
|
||||
<input class="i18n inputEmail span4" type="email" autocomplete="off"
|
||||
data-bind="value: email, hasFocus: emailFocus" data-i18n-placeholder="LOGIN/LABEL_EMAIL" />
|
||||
<span class="add-on">
|
||||
<i class="icon-envelope"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': loginError}, visible: allowCustomLogin()">
|
||||
<div class="input-append">
|
||||
<input class="i18n inputLogin span4" type="text" autocomplete="off"
|
||||
data-bind="value: login, hasFocus: loginFocus" data-i18n-placeholder="LOGIN/LABEL_LOGIN" />
|
||||
<span class="add-on">
|
||||
<i class="icon-user"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': passwordError}">
|
||||
<div class="input-append">
|
||||
<input class="i18n inputPassword span4" type="password" autocomplete="off"
|
||||
data-bind="value: password" data-i18n-placeholder="LOGIN/LABEL_PASSWORD" />
|
||||
<span class="add-on">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<center>
|
||||
{{INCLUDE/BottomControlGroup/PLACE}}
|
||||
</center>
|
||||
<div class="control-group">
|
||||
<button type="submit" class="btn btn-large span4 buttonLogin" data-bind="command: submitCommand">
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: submitRequest"></i>
|
||||
<span class="i18n" data-i18n-text="LOGIN/BUTTON_SIGN_IN" data-bind="visible: !submitRequest()"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="pull-left signMeLabel" data-bind="click: function () { signMe(!signMe()); }, visible: signMeVisibility">
|
||||
<i data-bind="css: signMe() ? 'checkboxSignMe icon-checkbox-checked' : 'checkboxSignMe icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="LOGIN/LABEL_SIGN_ME"></span>
|
||||
</label>
|
||||
<div class="pull-right" data-bind="visible: facebookLoginEnabled() || googleLoginEnabled() || twitterLoginEnabled()">
|
||||
<div class="btn-group">
|
||||
<a class="btn dropdown-toggle buttonLoginMore" data-toggle="dropdown">
|
||||
<i class="icon-reorder"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu g-ui-menu">
|
||||
{{INCLUDE/MenuDropdownTop/PLACE}}
|
||||
<li class="e-item">
|
||||
<a class="e-link" data-bind="command: facebookCommand, visible: facebookLoginEnabled">
|
||||
<i class="icon-facebook-2"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="LOGIN/TITLE_SIGN_IN_FACEBOOK"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item">
|
||||
<a class="e-link" data-bind="command: googleCommand, visible: googleLoginEnabled">
|
||||
<i class="icon-google"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="LOGIN/TITLE_SIGN_IN_GOOGLE"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item">
|
||||
<a class="e-link" data-bind="command: twitterCommand, visible: twitterLoginEnabled">
|
||||
<i class="icon-twitter"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="LOGIN/TITLE_SIGN_IN_TWITTER"></span>
|
||||
</a>
|
||||
</li>
|
||||
{{INCLUDE/MenuDropdownBottom/PLACE}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</center>
|
||||
<div class="loginAfter"></div>
|
||||
</div>
|
||||
19
rainloop/v/1.2.7.415/app/templates/Views/MailFolderList.html
Normal file
19
rainloop/v/1.2.7.415/app/templates/Views/MailFolderList.html
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<div class="b-folders g-ui-user-select-none thm-folders">
|
||||
<div class="b-toolbar btn-toolbar">
|
||||
<a class="btn buttonCompose" data-placement="bottom" data-bind="click: composeClick, tooltip: 'FOLDER_LIST/BUTTON_COMPOSE'">
|
||||
<i class="icon-pencil"></i>
|
||||
</a>
|
||||
<a class="btn buttonContacts" data-placement="bottom" data-bind="visible: allowContacts, click: contactsClick, tooltip: 'FOLDER_LIST/BUTTON_CONTACTS'">
|
||||
<i class="icon-phonebook"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="b-content" data-bind="nano: true">
|
||||
<div class="content g-scrollbox">
|
||||
<div class="content-wrapper">
|
||||
<div data-bind="template: { name: 'MailFolderListSystemItem', foreach: folderListSystem }"></div>
|
||||
<hr class="b-list-delimiter" />
|
||||
<div data-bind="template: { name: 'MailFolderListItem', foreach: folderList }"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<div class="e-item" data-bind="visible: visible">
|
||||
<a class="e-link" data-bind="droppable: function (oEvent, oUi) { $root.messagesDrop($data, oUi); }, css: { 'selected': selected() && !isSystemFolder(), 'selectable': selectableForFolderList, 'hidden' : hidden, 'print-count': 0 < printableUnreadCount().length, 'system': isSystemFolder, 'anim-action-class': actionBlink }">
|
||||
<i data-bind="css: collapsedCss()"></i>
|
||||
<span class="name" data-bind="text: name"></span><!-- <span class="badge pull-right count" data-bind="text: printableUnreadCount"></span> -->
|
||||
</a>
|
||||
<div class="b-sub-folders" data-bind="template: { name: 'MailFolderListItem', foreach: subFolders }, css: { 'unpaddig-folder' : isUnpaddigFolder, 'collapsed': collapsed() }"></div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<div class="e-item b-folder-system-item">
|
||||
<a class="e-link" data-bind="droppable: function (oEvent, oUi) { $root.messagesDrop($data, oUi); }, css: { 'selected': selected, 'selectable': selectable, 'print-count': 0 < printableUnreadCount().length, 'anim-action-class': actionBlink }">
|
||||
<span class="name" data-bind="text: localName()"></span> <span class="badge pull-right count" data-bind="text: printableUnreadCount"></span>
|
||||
</a>
|
||||
</div>
|
||||
163
rainloop/v/1.2.7.415/app/templates/Views/MailMessageList.html
Normal file
163
rainloop/v/1.2.7.415/app/templates/Views/MailMessageList.html
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
<div id="rl-resizer-left">
|
||||
<div class="messageList g-ui-user-select-none" data-bind="css: {'message-selected': isMessageSelected, 'loading': messageListCompleteLoadingThrottle, 'hideMessageListCheckbox': !useCheckboxesInList() }">
|
||||
<div class="toolbar">
|
||||
<div class="btn-toolbar">
|
||||
<div class="btn-group">
|
||||
<a class="btn dropdown-toggle buttonMove" data-toggle="dropdown" data-placement="bottom" data-bind="command: moveCommand, tooltip: 'MESSAGE_LIST/BUTTON_MOVE_TO'">
|
||||
<i class="icon-legacyfilemanager"></i>
|
||||
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu g-ui-menu" data-bind="foreach: folderMenuForMove">
|
||||
<li class="e-item" data-bind="css: { 'disable': disable }, click: function () { if (!disable) $root.moveSelectedMessagesToFolder(id); }">
|
||||
<a class="e-link" data-bind="text: name"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-danger buttonDelete" data-placement="bottom" data-bind="command: deleteCommand, tooltip: 'MESSAGE_LIST/BUTTON_DELETE'">
|
||||
<i class="icon-trash icon-white"></i>
|
||||
<span data-bind="text: 1 < messageListCheckedOrSelectedUidsWithSubMails().length ? ' (' + messageListCheckedOrSelectedUidsWithSubMails().length + ')' : ''"></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group" data-placement="bottom" data-bind="visible: !isSpamFolder(), tooltip: 'MESSAGE_LIST/BUTTON_SPAM'">
|
||||
<a class="btn buttonSpam" data-bind="command: spamCommand">
|
||||
<i class="icon-bug"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a class="btn dropdown-toggle buttonMore" data-toggle="dropdown" data-placement="right" data-bind="tooltip: 'MESSAGE_LIST/BUTTON_MORE'">
|
||||
<i class="icon-reorder"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu g-ui-menu">
|
||||
<li class="e-item" data-bind="click: listUnsetSeen, css: {'disable': !hasCheckedOrSelectedLines()}">
|
||||
<a class="e-link">
|
||||
<i class="icon2-none"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/MENU_UNSET_SEEN"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item" data-bind="click: listSetSeen, css: {'disable': !hasCheckedOrSelectedLines()}">
|
||||
<a class="e-link">
|
||||
<i class="icon2-none"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/MENU_SET_SEEN"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item" data-bind="click: listSetFlags, css: {'disable': !hasCheckedOrSelectedLines()}">
|
||||
<a class="e-link">
|
||||
<i class="icon2-none"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/MENU_SET_FLAG"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item" data-bind="click: listUnsetFlags, css: {'disable': !hasCheckedOrSelectedLines()}">
|
||||
<a class="e-link">
|
||||
<i class="icon2-none"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/MENU_UNSET_FLAG"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item" data-bind="click: listSetAllSeen, css: {'disable': !hasMessages()}">
|
||||
<a class="e-link">
|
||||
<i class="icon2-none"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/MENU_SET_ALL_SEEN"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li class="e-item" data-bind="command: multyForwardCommand">
|
||||
<a class="e-link">
|
||||
<i class="icon-reply-all"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/BUTTON_MULTY_FORWARD"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li class="e-item" data-bind="command: deleteWithoutMoveCommand">
|
||||
<a class="e-link">
|
||||
<i class="icon-trash"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/BUTTON_DELETE_WITHOUT_MOVE"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item" data-bind="command: clearCommand">
|
||||
<a class="e-link">
|
||||
<i class="icon-fire"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/BUTTON_EMPTY_FOLDER"></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-message-list-wrapper">
|
||||
<div class="second-toolbar thm-message-list-top-toolbar">
|
||||
<div class="form-inline">
|
||||
<div class="input-append pull-right">
|
||||
<input class="i18n span4 inputSearch" style="width: 258px;" type="text" tabindex="-1" placeholder="" data-i18n-placeholder="SEARCH/MAIN_INPUT_PLACEHOLDER" data-bind="value: inputProxyMessageListSearch, onEnter: searchEnterAction, hasfocus: inputMessageListSearchFocus" />
|
||||
<a class="btn buttonMoreSearch" data-bind="click: advancedSearchClick">
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
</div>
|
||||
<i class="checkboxCkeckAll" data-bind="css: checkAll() ? (isIncompleteChecked() ? 'icon-checkbox-partial' : 'icon-checkbox-checked') : 'icon-checkbox-unchecked', visible: !messageListCompleteLoadingThrottle()"></i>
|
||||
<i class="icon-spinner-2 animated" style="margin-top: 4px;" data-bind="visible: messageListCompleteLoadingThrottle"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mainDelimiter toolbarDelimiter"></div>
|
||||
<div class="b-content" data-bind="nano: true, initDom: dragOverBodyArea">
|
||||
<div class="content g-scrollbox">
|
||||
<div class="content-wrapper">
|
||||
<div class="listSearchDesc" data-bind="visible: '' !== messageListSearchDesc()">
|
||||
<a class="btn btn-small pull-right searchCancelButton" data-bind="click: cancelSearch">
|
||||
<i class="icon-remove"></i>
|
||||
</a>
|
||||
<span data-bind="text: messageListSearchDesc"></span>:
|
||||
</div>
|
||||
<div class="listDragOver" data-bind="css: {'viewAppendArea': dragOver() && '' === messageListError() && !popupVisibility(), 'dragOverEnter': dragOverEnter }, initDom: dragOverArea">
|
||||
<i class="icon-arrow-down-2 e-icon"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/PUT_MESSAGE_HERE"></span>
|
||||
</div>
|
||||
<div class="listClear" data-bind="visible: '' === messageListSearchDesc() && '' === messageListError() && 0 < messageList().length && (isSpamFolder() || isTrashFolder())">
|
||||
<span class="g-ui-link i18n" data-i18n-text="MESSAGE_LIST/BUTTON_EMPTY_FOLDER" data-bind="command: clearCommand"></span>
|
||||
</div>
|
||||
<div class="listError" data-bind="visible: !dragOver() && '' !== messageListError()">
|
||||
<span class="error" data-bind="text: messageListError"></span>
|
||||
</div>
|
||||
<div class="listEmptyList" data-bind="visible: !dragOver() && 0 === messageList().length && !messageListCompleteLoadingThrottle() && '' === messageListError() && '' === messageListSearch()">
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/EMPTY_LIST"></span>
|
||||
</div>
|
||||
<div class="listEmptyListLoading" data-bind="visible: !dragOver() && 0 === messageList().length &&
|
||||
messageListCompleteLoadingThrottle() && '' === messageListError()">
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/LIST_LOADING"></span><span class="textLoadingAnimationD1">.</span><span class="textLoadingAnimationD2">.</span><span class="textLoadingAnimationD3">.</span>
|
||||
</div>
|
||||
<div class="listEmptySearchList" data-bind="visible: !dragOver() && 0 === messageList().length && !messageListCompleteLoadingThrottle() && '' === messageListError() && '' !== messageListSearch()">
|
||||
<span class="i18n" data-i18n-text="MESSAGE_LIST/EMPTY_SEARCH_LIST"></span>
|
||||
</div>
|
||||
<div data-bind="draggable: dragAndDronHelper">
|
||||
<div class="messageListPlace" data-bind="template: { name: messageListItemTemplate(), foreach: messageList }"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mainDelimiter footerDelimiter"></div>
|
||||
<div class="b-footer thm-message-list-bottom-toolbar">
|
||||
<a class="btn buttonReload" data-placement="right" data-bind="command: reloadCommand, tooltip: 'MESSAGE_LIST/BUTTON_RELOAD'">
|
||||
<i class="icon-spinner-2" data-bind="css: {'animated': messageListCompleteLoadingThrottle}"></i>
|
||||
</a>
|
||||
<span data-bind="visible: 0 < userUsageProc(), tooltip2: quotaTooltip" class="e-quota">
|
||||
<span data-bind="text: userUsageProc"></span>%
|
||||
</span>
|
||||
<div class="pull-right">
|
||||
<div class="pagenator g-ui-user-select-none" data-bind="foreach: messageListPagenator">
|
||||
<a class="page" data-bind="css: { 'current': current, 'custom': custom }, title: title">
|
||||
<span class="pageNumber" data-bind="text: name"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
<div class="messageListItem" data-bind="css: lineAsCcc()">
|
||||
<div class="unseenParent">
|
||||
|
||||
</div>
|
||||
<div class="delimiter"></div>
|
||||
<div class="wrapper">
|
||||
<div class="flagParent">
|
||||
<span class="flagOn">
|
||||
<i class="icon-favorite"></i>
|
||||
</span>
|
||||
<span class="flagOnHalf">
|
||||
<i class="icon-favorite2"></i>
|
||||
</span>
|
||||
<span class="flagOff">
|
||||
<i class="icon-favorite2"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="dateParent actionHandle dragHandle">
|
||||
<span class="date" data-bind="text: momentShortDate, title: fullFormatDateValue"></span>
|
||||
</div>
|
||||
<div class="checkedParent">
|
||||
<i class="checkboxMessage" data-bind="css: checked() || selected() ? 'checkboxMessage icon-checkbox-checked' : 'checkboxMessage icon-checkbox-unchecked'"></i>
|
||||
</div>
|
||||
<div class="senderParent actionHandle dragHandle">
|
||||
<span class="threadsCountParent fullThreadHandle" data-bind="visible: '' !== threadsLenResult(), css: { 'lastSelected': !lastInCollapsedThread() }">
|
||||
<span lass="threadsCount" data-bind="visible: !lastInCollapsedThreadLoading(), text: threadsLenResult"></span>
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: lastInCollapsedThreadLoading"></i>
|
||||
</span>
|
||||
<span class="replyFlag"><i class="icon-reply"></i> </span>
|
||||
<span class="forwardFlag"><i class="icon-forward"></i> </span>
|
||||
<span class="sender" data-bind="text: senderEmailsString"></span>
|
||||
|
||||
</div>
|
||||
<div class="attachmentParent actionHandle dragHandle">
|
||||
<span class="attachment">
|
||||
<i class="icon-attachment"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="subjectParent actionHandle dragHandle">
|
||||
<span class="subject" data-bind="text: subject"></span>
|
||||
<span class="subject emptySubjectText" data-bind="text: $root.emptySubjectValue"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<div class="messageListItem e-single-line" data-bind="css: lineAsCcc()">
|
||||
<div class="unseenParent">
|
||||
|
||||
</div>
|
||||
<div class="delimiter"></div>
|
||||
<div class="wrapper">
|
||||
<div class="dateParent actionHandle dragHandle">
|
||||
<span class="date" data-bind="text: momentShortDate, title: fullFormatDateValue"></span>
|
||||
</div>
|
||||
<div class="checkedParent">
|
||||
<i class="checkboxMessage" data-bind="css: checked() || selected() ? 'checkboxMessage icon-checkbox-checked' : 'checkboxMessage icon-checkbox-unchecked'"></i>
|
||||
</div>
|
||||
<div class="flagParent">
|
||||
<span class="flagOn">
|
||||
<i class="icon-favorite"></i>
|
||||
</span>
|
||||
<span class="flagOnHalf">
|
||||
<i class="icon-favorite2"></i>
|
||||
</span>
|
||||
<span class="flagOff">
|
||||
<i class="icon-favorite2"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="senderParent actionHandle dragHandle">
|
||||
<span class="threadsCountParent fullThreadHandle" data-bind="visible: '' !== threadsLenResult(), css: { 'lastSelected': !lastInCollapsedThread() }">
|
||||
<span lass="threadsCount" data-bind="visible: !lastInCollapsedThreadLoading(), text: threadsLenResult"></span>
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: lastInCollapsedThreadLoading"></i>
|
||||
</span>
|
||||
<span class="replyFlag"><i class="icon-reply"></i> </span>
|
||||
<span class="forwardFlag"><i class="icon-forward"></i> </span>
|
||||
<span class="sender" data-bind="text: senderEmailsString"></span>
|
||||
|
||||
</div>
|
||||
<div class="attachmentParent actionHandle dragHandle">
|
||||
<span class="attachment">
|
||||
<i class="icon-attachment"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="subjectParent actionHandle dragHandle">
|
||||
<span class="subject" data-bind="text: subject"></span>
|
||||
<span class="subject emptySubjectText" data-bind="text: $root.emptySubjectValue"></span>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
192
rainloop/v/1.2.7.415/app/templates/Views/MailMessageView.html
Normal file
192
rainloop/v/1.2.7.415/app/templates/Views/MailMessageView.html
Normal file
|
|
@ -0,0 +1,192 @@
|
|||
<div id="rl-resizer-right">
|
||||
<div class="messageView" data-bind="css: {'message-selected': isMessageSelected}">
|
||||
<div class="toolbar g-ui-user-select-none">
|
||||
<div class="messageButtons btn-toolbar">
|
||||
<div class="btn-group" data-placement="bottom" data-bind="visible: !$root.usePreviewPane(), tooltip: 'MESSAGE/BUTTON_CLOSE'">
|
||||
<a class="btn buttonClose" data-bind="command: $root.closeMessage">
|
||||
<i class="icon-remove"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group" data-placement="bottom" data-bind="visible: $root.isDraftFolder(), tooltip: 'MESSAGE/BUTTON_EDIT'">
|
||||
<a class="btn btn-success buttonEdit" data-bind="click: function() { $root.editMessage(); }, command: $root.messageVisibilityCommand">
|
||||
<i class="icon-edit2 icon-white"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group" data-bind="visible: !$root.isDraftFolder()">
|
||||
<a class="btn buttonReply" data-placement="bottom" data-bind="command: $root.replyCommand, tooltip: 'MESSAGE/BUTTON_REPLY'">
|
||||
<i class="icon-reply"></i>
|
||||
</a>
|
||||
<a class="btn buttonReplyAll" data-placement="bottom" data-bind="command: $root.replyAllCommand, tooltip: 'MESSAGE/BUTTON_REPLY_ALL'">
|
||||
<i class="icon-reply-all"></i>
|
||||
</a>
|
||||
<a class="btn buttonForward" data-placement="bottom" data-bind=" command: $root.forwardCommand, tooltip: 'MESSAGE/BUTTON_FORWARD'">
|
||||
<i class="icon-forward"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a class="btn dropdown-toggle buttonMore" data-placement="right" data-toggle="dropdown" data-bind="command: $root.messageVisibilityCommand, tooltip: 'MESSAGE/BUTTON_MORE'">
|
||||
<i class="icon-reorder"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu g-ui-menu">
|
||||
<li class="e-item" data-bind="visible: !$root.isDraftFolder()">
|
||||
<a class="e-link" data-bind="command: $root.forwardAsAttachmentCommand">
|
||||
<i class="icon-reply"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE/BUTTON_FORWARD_AS_ATTACHMENT"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider" data-bind="visible: !$root.isDraftFolder()"></li>
|
||||
<li class="e-item">
|
||||
<a target="_blank" class="e-link" data-bind="click: function () { if (message()) { message().viewPopupMessage(); }}">
|
||||
<i class="icon-opennewwindow"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE/BUTTON_IN_NEW_WINDOW"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item">
|
||||
<a target="_blank" class="e-link" data-bind="click: function () { if (message()) { message().printMessage(); }} ">
|
||||
<i class="icon-print"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE/MENU_PRINT"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li class="e-item">
|
||||
<a target="_blank" class="e-link" data-bind="link: viewViewLink()">
|
||||
<i class="icon-file-css"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE/MENU_VIEW_ORIGINAL"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item">
|
||||
<a target="_blank" class="e-link" data-bind="link: viewDownloadLink()">
|
||||
<i class="icon-download"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="MESSAGE/MENU_DOWNLOAD_ORIGINAL"></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content thm-message-view-background-color">
|
||||
<div>
|
||||
<div class="b-message-view-desc" data-bind="visible: !message() && '' === $root.messageError()">
|
||||
<span class="i18n" data-i18n-text="MESSAGE/MESSAGE_VIEW_DESC"></span>
|
||||
</div>
|
||||
<div class="b-message-view-desc error" data-bind="visible: !message() && '' !== $root.messageError()">
|
||||
<span class="text" data-bind="text: $root.messageError()"></span>
|
||||
</div>
|
||||
<div data-bind="visible: message">
|
||||
<div class="messageItem" data-bind="css: viewLineAsCcc(), nano: true">
|
||||
<div class="content g-scrollbox">
|
||||
<div class="content-wrapper">
|
||||
<div>
|
||||
<span class="buttonUp" data-bind="click: scrollToTop">
|
||||
<i class="icon-arrow-up--upload"></i>
|
||||
</span>
|
||||
<span class="buttonFull" data-bind="click: fullScreen">
|
||||
<i class="icon-scaleup"></i>
|
||||
</span>
|
||||
<span class="buttonUnFull" data-bind="click: unFullScreen">
|
||||
<i class="icon-scaledown"></i>
|
||||
</span>
|
||||
<div class="messageItemHeader">
|
||||
<div>
|
||||
<img class="fromPic" data-bind="visible: viewUserPicVisible, attr: {'src': viewUserPic() }">
|
||||
<div style="overflow: hidden;">
|
||||
<div class="subjectParent" data-bind="event: { 'dblclick': toggleFullScreen }">
|
||||
<span class="subject" data-bind="text: viewSubject, title: viewSubject"></span>
|
||||
<span class="i18n emptySubjectText" data-i18n-text="MESSAGE/EMPTY_SUBJECT_TEXT"></span>
|
||||
</div>
|
||||
<div class="senderParent">
|
||||
<div class="g-ui-user-select-none" style="float: left; cursor: pointer;" data-bind="click: function() { $root.showFullInfo(!$root.showFullInfo()); }">
|
||||
<i class="icon-arrow-right" data-bind="css: $root.showFullInfo() ? 'icon-arrow-down' : 'icon-arrow-right'"></i>
|
||||
</div>
|
||||
<div class="informationShort" data-bind="event: { 'dblclick': toggleFullScreen }">
|
||||
<span data-bind="visible: !$root.isDraftOrSentFolder()">
|
||||
<span class="from" data-bind="html: viewFromShort, title: viewFrom"></span>
|
||||
</span>
|
||||
<span data-bind="visible: $root.isDraftOrSentFolder()">
|
||||
<span class="i18n uiLabel labelTo" data-i18n-text="MESSAGE/LABEL_TO"></span>:
|
||||
<span class="to" data-bind="html: viewToShort, title: viewTo"></span>
|
||||
</span>
|
||||
(<span class="date" data-bind="text: viewDate"></span>)
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="informationFull" data-bind="visible: $root.showFullInfo()">
|
||||
<div data-bind="visible: '' !== viewFrom()">
|
||||
<span class="i18n uiLabel labelFrom" data-i18n-text="MESSAGE/LABEL_FROM"></span>:
|
||||
|
||||
<span class="from" data-bind="text: viewFrom, title: viewFrom"></span>
|
||||
</div>
|
||||
<div data-bind="visible: '' !== viewTo()">
|
||||
<span class="i18n uiLabel labelTo" data-i18n-text="MESSAGE/LABEL_TO"></span>:
|
||||
|
||||
<span class="to" data-bind="text: viewTo, title: viewTo"></span>
|
||||
</div>
|
||||
<div data-bind="visible: '' !== viewCc()">
|
||||
<span class="i18n uiLabel labelCc" data-i18n-text="MESSAGE/LABEL_CC"></span>:
|
||||
|
||||
<span class="cc" data-bind="text: viewCc, title: viewCc"></span>
|
||||
</div>
|
||||
<div data-bind="visible: '' !== viewBcc()">
|
||||
<span class="i18n uiLabel labelBcc" data-i18n-text="MESSAGE/LABEL_BCC"></span>:
|
||||
|
||||
<span class="bcc" data-bind="text: viewBcc, title: viewBcc"></span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="i18n uiLabel labelBcc" data-i18n-text="MESSAGE/LABEL_DATE"></span>:
|
||||
|
||||
<span class="date" data-bind="text: viewDate"></span>
|
||||
|
||||
(<span class="date" data-bind="text: viewMoment"></span>)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="line-loading e-strip-animation" data-bind="visible: $root.messageLoadingThrottle()"></div>
|
||||
|
||||
<div class="loading g-ui-min-height-300" data-bind="visible: $root.messageLoadingThrottle()">
|
||||
<span class="i18n text" data-i18n-text="MESSAGE/MESSAGE_LOADING"></span><span class="textLoadingAnimationD1">.</span><span class="textLoadingAnimationD2">.</span><span class="textLoadingAnimationD3">.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="g-ui-min-height-300" data-bind="visible: !$root.messageLoadingThrottle()">
|
||||
<div class="showImages" data-bind="visible: message() && message().hasImages(), click: function() { $root.showImages(message()); }">
|
||||
<i class="icon-image"></i>
|
||||
|
||||
<span class="i18n text" data-i18n-text="MESSAGE/BUTTON_SHOW_IMAGES"></span>
|
||||
</div>
|
||||
<div class="attachmentsPlace" data-bind="visible: message() && message().hasVisibleAttachments()">
|
||||
<ul class="attachmentList" data-bind="foreach: message() ? message().attachments() : []">
|
||||
<li class="attachmentItem" draggable="true" data-bind="visible: !isLinked, title: fileName, event: { 'dragstart': eventDragStart }">
|
||||
<div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden;">
|
||||
<i class="attachmentIcon" data-bind="css: iconClass()"></i>
|
||||
|
||||
<span class="attachmentName" data-bind="text: fileName"></span>
|
||||
</div>
|
||||
<div>
|
||||
<a class="attachmentPreview magnificPopupImage pull-left"
|
||||
data-bind="visible: isImage(), attr: {href: linkPreview(), title: fileName}" target="_blank">
|
||||
<i class="icon-eye"></i>
|
||||
</a>
|
||||
<span class="attachmentSize pull-right" data-bind="text: friendlySize"></span>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="bodyText g-ui-min-height-300" data-bind="initDom: messagesBodiesDom"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
62
rainloop/v/1.2.7.415/app/templates/Views/PopupsActivate.html
Normal file
62
rainloop/v/1.2.7.415/app/templates/Views/PopupsActivate.html
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-activate-content" data-bind="modal: modalVisibility">
|
||||
<div>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
<span data-bind="visible: !activateProcess()">Activate Subscription Key?</span>
|
||||
<span data-bind="visible: activateProcess">Activation...</span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
Domain
|
||||
</label>
|
||||
<div class="controls">
|
||||
<h4 class="help-inline" data-bind="text: domain" style="margin-top: 5px;"></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': '' !== activateText() && activateText.isError(), 'success': '' !== activateText() && !activateText.isError() }">
|
||||
<label class="control-label">
|
||||
Subscription Key
|
||||
</label>
|
||||
<div class="controls ">
|
||||
<input type="text" class="span5" data-bind="visible: !activateProcess() && !activationSuccessed(), value: key, valueUpdate: 'afterkeydown', hasFocus: key.focus"></input>
|
||||
<h4 class="help-inline" style="margin-top: 5px;" data-bind="text: key, visible: activateProcess() || activationSuccessed()"></h4>
|
||||
<div class="help-block" data-bind="text: activateText"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="alert">
|
||||
<p>
|
||||
After activation, commercial subscription for <strong data-bind="text: domain"></strong> will be extended.
|
||||
</p>
|
||||
<p>
|
||||
Once started, the process of activation cannot be aborted or cancelled.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class="btn" href="http://rainloop.net/purchase/" target="_black">
|
||||
<i class="icon-cart"></i>
|
||||
|
||||
Purchase
|
||||
</a>
|
||||
<a class="btn buttonActivate" data-bind="visible: !activationSuccessed(), command: activateCommand">
|
||||
<i class="icon-key" data-bind="css: {'icon-key': !activateProcess(), 'icon-spinner-2 animated': activateProcess()}" ></i>
|
||||
|
||||
Activate
|
||||
</a>
|
||||
<span style="color: green" data-bind="visible: activationSuccessed">
|
||||
|
||||
<i class="icon-ok"></i>
|
||||
|
||||
Activated
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-account-add-content" data-bind="modal: modalVisibility">
|
||||
<div>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
<span class="i18n" data-i18n-text="POPUPS_ADD_ACCOUNT/TITLE_ADD_ACCOUNT"></span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-horizontal">
|
||||
<div class="alert" data-bind="visible: '' !== submitError()">
|
||||
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': emailError}">
|
||||
<label class="i18n control-label" data-i18n-text="LOGIN/LABEL_EMAIL"></label>
|
||||
<div class="controls">
|
||||
<input class="inputEmail input-large" type="email" autocomplete="off"
|
||||
data-bind="value: email, valueUpdate: 'afterkeydown', onEnter: addAccountCommand, hasfocus: emailFocus" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': loginError}, visible: allowCustomLogin()">
|
||||
<label class="i18n control-label" data-i18n-text="LOGIN/LABEL_LOGIN"></label>
|
||||
<div class="controls">
|
||||
<input class="inputLogin input-large" type="text" autocomplete="off"
|
||||
data-bind="value: login, onEnter: addAccountCommand, hasfocus: loginFocus" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': passwordError}">
|
||||
<label class="i18n control-label" data-i18n-text="LOGIN/LABEL_PASSWORD"></label>
|
||||
<div class="controls">
|
||||
<input class="inputPassword input-large" type="password" autocomplete="off"
|
||||
data-bind="value: password, onEnter: addAccountCommand" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class="btn buttonAddAccount" data-bind="command: addAccountCommand">
|
||||
<i data-bind="css: {'icon-user-add': !submitRequest(), 'icon-spinner-2 animated': submitRequest()}"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="POPUPS_ADD_ACCOUNT/BUTTON_ADD_ACCOUNT"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-advanced-search-content" data-bind="modal: modalVisibility">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
<span class="i18n" data-i18n-text="SEARCH/TITLE_ADV"></span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" action="#/" autocomplete="off" onsubmit="return false;" data-bind="command: searchCommand">
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SEARCH/LABEL_ADV_FROM"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputFrom" type="text" data-bind="value: from, onEnter: searchCommand, hasfocus: fromFocus, onEsc: cancelCommand" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SEARCH/LABEL_ADV_TO"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputFrom" type="text" data-bind="value: to, onEnter: searchCommand, onEsc: cancelCommand" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SEARCH/LABEL_ADV_SUBJECT"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputFrom" type="text" data-bind="value: subject, onEnter: searchCommand, onEsc: cancelCommand" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="span4">
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SEARCH/LABEL_ADV_TEXT"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputFrom" type="text" data-bind="value: text, onEnter: searchCommand, onEsc: cancelCommand" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SEARCH/LABEL_ADV_DATE"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<select data-bind="value: selectedDateValue">
|
||||
<option value="-1" class="i18n" data-i18n-text="SEARCH/LABEL_ADV_DATE_ALL"></option>
|
||||
<option value="3" class="i18n" data-i18n-text="SEARCH/LABEL_ADV_DATE_3_DAYS"></option>
|
||||
<option value="7" class="i18n" data-i18n-text="SEARCH/LABEL_ADV_DATE_7_DAYS"></option>
|
||||
<option value="30" class="i18n" data-i18n-text="SEARCH/LABEL_ADV_DATE_MONTH"></option>
|
||||
<option value="90" class="i18n" data-i18n-text="SEARCH/LABEL_ADV_DATE_3_MONTHS"></option>
|
||||
<option value="180" class="i18n" data-i18n-text="SEARCH/LABEL_ADV_DATE_6_MONTHS"></option>
|
||||
<option value="365" class="i18n" data-i18n-text="SEARCH/LABEL_ADV_DATE_YEAR"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
</label>
|
||||
<div class="controls">
|
||||
<label data-bind="click: function () { hasAttachments(!hasAttachments()); }">
|
||||
<i data-bind="css: hasAttachments() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SEARCH/LABEL_ADV_HAS_ATTACHMENTS"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn buttonAdvSearch" data-bind="command: searchCommand">
|
||||
<i class="icon-search"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SEARCH/BUTTON_ADV_SEARCH"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
113
rainloop/v/1.2.7.415/app/templates/Views/PopupsCompose.html
Normal file
113
rainloop/v/1.2.7.415/app/templates/Views/PopupsCompose.html
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-compose" data-backdrop="static" data-bind="modal: modalVisibility, css: {'loading': saving() || sending()}">
|
||||
<div class="modal-header b-header-toolbar g-ui-user-select-none">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<a class="btn btn-large button-send" data-bind="command: sendCommand, css: {'btn-danger': sendError, 'btn-warning': sendSuccessButSaveError }">
|
||||
<i data-bind="css: {'icon-rocket': !sending(), 'icon-spinner-2 animated': sending(), 'icon-white': sendError() || sendSuccessButSaveError()}"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="COMPOSE/BUTTON_SEND"></span>
|
||||
</a>
|
||||
<a class="btn button-save" data-bind="command: saveCommand, css: {'btn-danger': savedError }">
|
||||
<i data-bind="css: {'icon-floppy': !saving(), 'icon-spinner-2 animated': saving(), 'icon-white': savedError()}"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="COMPOSE/BUTTON_SAVE"></span>
|
||||
</a>
|
||||
<a class="btn btn-danger button-delete" data-bind="command: deleteCommand">
|
||||
<i class="icon-trash icon-white"></i>
|
||||
</a>
|
||||
<span class="saved-text" data-bind="text: savedOrSendingText, css: { 'errorDesc': savedError }"></span>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div>
|
||||
<div class="b-header g-ui-user-select-none">
|
||||
<div class="g-ui-table">
|
||||
<div class="e-row">
|
||||
<div class="e-cell e-label">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="COMPOSE/TITLE_FROM"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="e-cell e-value">
|
||||
<strong class="pull-left" data-bind="text: formattedFrom()"></strong>
|
||||
<span class="pull-right" data-bind="visible: !showCcAndBcc()">
|
||||
<span class="i18n g-ui-link" data-i18n-text="COMPOSE/LINK_SHOW_INPUTS" data-bind="click: function () { showCcAndBcc(true); }"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row">
|
||||
<div class="e-cell e-label">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="COMPOSE/TITLE_TO"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="e-cell e-value">
|
||||
<input type="text" data-bind="select2: to" />
|
||||
<span class="help-block error-desc" data-bind="visible: emptyToError">
|
||||
<span class="i18n" data-i18n-text="COMPOSE/EMPTY_TO_ERROR_DESC"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row" data-bind="visible: showCcAndBcc">
|
||||
<div class="e-cell e-label">
|
||||
<span class="i18n" data-i18n-text="COMPOSE/TITLE_CC"></span>
|
||||
</div>
|
||||
<div class="e-cell e-value">
|
||||
<input type="text" data-bind="select2: cc" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row" data-bind="visible: showCcAndBcc">
|
||||
<div class="e-cell e-label">
|
||||
<span class="i18n" data-i18n-text="COMPOSE/TITLE_BCC"></span>
|
||||
</div>
|
||||
<div class="e-cell e-value">
|
||||
<input type="text" data-bind="select2: bcc" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row">
|
||||
<div class="e-cell e-label">
|
||||
<span class="i18n" data-i18n-text="COMPOSE/TITLE_SUBJECT"></span>
|
||||
</div>
|
||||
<div class="e-cell e-value">
|
||||
<input type="text" size="70" data-bind="value: subject" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row">
|
||||
<div class="e-cell e-label"></div>
|
||||
<div class="e-cell e-value">
|
||||
<div class="b-appachments pull-left" data-bind="visible: 0 < attachments().length">
|
||||
<div data-bind="template: { name: 'ComposeAttachment', foreach: attachmentsInReady }"></div>
|
||||
<div data-bind="template: { name: 'ComposeAttachmentInProcess', foreach: attachmentsInProcess }"></div>
|
||||
</div>
|
||||
<div data-bind="visible: addAttachmentEnabled">
|
||||
<div class="b-attachment-place" data-bind="visible: dragAndDropEnabled() && dragAndDropVisible(), initDom: composeUploaderDropPlace, css: {'dragAndDropOver': dragAndDropOver}">
|
||||
<span class="i18n" data-i18n-text="COMPOSE/ATTACH_DROP_FILES_DESC"></span>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<div class="btn-group">
|
||||
<a class="btn" data-placement="top" data-bind="initDom: composeUploaderButton, tooltip: 'COMPOSE/ATTACH_FILES'">
|
||||
<i class="icon-attachment"></i>
|
||||
</a>
|
||||
<a class="btn" data-placement="top" data-bind="visible: dropboxEnabled, command: dropboxCommand, tooltip: 'COMPOSE/DROPBOX'">
|
||||
<i class="icon-dropbox"></i>
|
||||
</a>
|
||||
<a class="btn" data-placement="top" data-bind="visible: driveEnabled, command: driveCommand, tooltip: 'COMPOSE/GOOGLE_DRIVE'">
|
||||
<i class="icon-google-drive"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-bind="initDom: composeEditorToolbar"></div>
|
||||
</div>
|
||||
|
||||
<div class="textAreaParent" style="height: 200px; min-height: 200px" data-bind="initResizeTrigger: [resizer(), 200, 30]">
|
||||
<textarea style="height: 100%; width: 100%" data-bind="initDom: composeEditorTextArea"></textarea>
|
||||
<div style="height: 100%" data-bind="initDom: composeEditorHtmlArea"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
104
rainloop/v/1.2.7.415/app/templates/Views/PopupsContacts.html
Normal file
104
rainloop/v/1.2.7.415/app/templates/Views/PopupsContacts.html
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-contacts-content" data-bind="modal: modalVisibility">
|
||||
<div class="modal-header b-header-toolbar g-ui-user-select-none">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<a class="btn button-create-contact" data-bind="command: newCommand">
|
||||
<i class="icon-plus"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="CONTACTS/BUTTON_ADD_CONTACT"></span>
|
||||
</a>
|
||||
<a class="btn btn-success button-new-message" data-bind="command: newMessageCommand">
|
||||
<i class="icon-envelope icon-white"></i>
|
||||
</a>
|
||||
<a class="btn btn-danger button-delete" data-bind="command: deleteCommand">
|
||||
<i class="icon-trash icon-white"></i>
|
||||
<span data-bind="text: 1 < contactsCheckedOrSelected().length ? ' (' + contactsCheckedOrSelected().length + ')' : ''"></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="modal-body" style="position: relative">
|
||||
<div class="b-list-toopbar">
|
||||
<input class="i18n span3 e-search" type="text" placeholder="Search" data-18n-placeholder="CONTACS/SEARCH_INPUT_PLACEHOLDER" data-bind="value: search" />
|
||||
</div>
|
||||
<div class="b-list-content g-ui-user-select-none" data-bind="nano: true, css: {'hideContactListCheckbox': !useCheckboxesInList()}">
|
||||
<div class="content g-scrollbox">
|
||||
<div class="content-wrapper">
|
||||
<div class="listClear" data-bind="visible: viewClearSearch() && '' !== search()">
|
||||
<span class="g-ui-link i18n" data-i18n-text="CONTACTS/CLEAR_SEARCH" data-bind="command: clearCommand"></span>
|
||||
</div>
|
||||
<div class="listEmptyList" data-bind="visible: 0 === contacts().length && '' === search() && !contacts.loading()">
|
||||
<span class="i18n" data-i18n-text="CONTACTS/EMPTY_LIST"></span>
|
||||
</div>
|
||||
<div class="listEmptyListLoading" data-bind="visible: 0 === contacts().length && '' === search() && contacts.loading()">
|
||||
<span class="i18n" data-i18n-text="CONTACTS/LIST_LOADING"></span><span class="textLoadingAnimationD1">.</span><span class="textLoadingAnimationD2">.</span><span class="textLoadingAnimationD3">.</span>
|
||||
</div>
|
||||
<div class="listEmptySearchList" data-bind="visible: 0 === contacts().length && '' !== search() && !contacts.loading()">
|
||||
<span class="i18n" data-i18n-text="CONTACTS/EMPTY_SEARCH"></span>
|
||||
</div>
|
||||
<div class="e-contact-foreach" data-bind="foreach: contacts, visible: 0 < contacts().length">
|
||||
<div class="e-contact-item g-ui-user-select-none" data-bind="css: lineAsCcc()">
|
||||
<div class="unseenParent">
|
||||
|
||||
</div>
|
||||
<div class="delimiter"></div>
|
||||
<div class="wrapper">
|
||||
<div class="checkedParent">
|
||||
<i class="checkboxItem" data-bind="css: checked() || selected() ? 'checkboxMessage icon-checkbox-checked' : 'checkboxMessage icon-checkbox-unchecked'"></i>
|
||||
</div>
|
||||
<div class="nameParent actionHandle">
|
||||
<span class="listName" data-bind="text: listName"></span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-view-content" data-bind="nano: true">
|
||||
<div class="content g-scrollbox">
|
||||
<div class="content-wrapper">
|
||||
<div class="b-contact-view-desc" data-bind="visible: emptySelection">
|
||||
<span class="i18n" data-i18n-text="CONTACTS/CONTACT_VIEW_DESC"></span>
|
||||
</div>
|
||||
<div data-bind="visible: !emptySelection()">
|
||||
<div class="form-horizontal top-part">
|
||||
<div class="control-group">
|
||||
<div class="control-label" data-bind="initDom: imageUploader">
|
||||
<div class="image-wrapper" style="width: 100px; height: 100px;">
|
||||
<img data-bind="initDom: imageDom" style="width: 100px; height: 100px;" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls">
|
||||
<div class="top-row">
|
||||
<span class="contactEmptyValueClick" data-bind="visible: !viewName.focused() && '' === viewName(), click: function() { viewName.focused(true); }">display name</span>
|
||||
<span class="contactValueClick" data-bind="visible: !viewName.focused() && '' !== viewName(), click: function() { viewName.focused(true); }, text: viewName"></span>
|
||||
<input class="contactValueInput span5" type="text" placeholder="display name" data-bind="value: viewName, visible: viewName.focused, hasfocus: viewName.focused, onEnter: function () { viewName.focused(false); }">
|
||||
</div>
|
||||
<div class="top-row" data-bind="css: { hasError: viewEmail.hasError() }">
|
||||
<span class="contactEmptyValueClick" data-bind="visible: !viewEmail.focused() && '' === viewEmail(), click: function() { viewEmail.focused(true); }">email</span>
|
||||
<span class="contactValueClick" data-bind="visible: !viewEmail.focused() && !viewEmail.hasError() && '' !== viewEmail(), click: function() { viewEmail.focused(true); }, text: viewEmail"></span>
|
||||
<input class="contactValueInput span5" type="text" placeholder="email" data-bind="value: viewEmail, visible: viewEmail.hasError() || viewEmail.focused(), hasfocus: viewEmail.focused, onEnter: function () { viewEmail.focused(false); }">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="control-label">
|
||||
</div>
|
||||
<div class="controls">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn button-save-contact" data-bind="command: saveCommand">
|
||||
<i data-bind="css: {'icon-ok': !viewSaving(), 'icon-spinner-2 animated': viewSaving()}"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="CONTACTS/BUTTON_CREATE_CONTACT" data-bind="visible: '' === viewID()"></span>
|
||||
<span class="i18n" data-i18n-text="CONTACTS/BUTTON_UPDATE_CONTACT" data-bind="visible: '' !== viewID()"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
94
rainloop/v/1.2.7.415/app/templates/Views/PopupsDomain.html
Normal file
94
rainloop/v/1.2.7.415/app/templates/Views/PopupsDomain.html
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-domain-content" data-bind="modal: modalVisibility">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-bind="text: headerText"></h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal domain-form" action="#/" onsubmit="return false;">
|
||||
<div class="row" data-bind="visible: !edit()">
|
||||
<div class="span6">
|
||||
Name
|
||||
<br />
|
||||
<input type="text" data-bind="value: name, valueUpdate: 'afterkeydown'" />
|
||||
<span class="error-desc" data-bind="text: savingError"></span>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="span4" data-bind="css: { 'testing-done': testingDone, 'testing-error': testingImapError }">
|
||||
<div class="legend imap-header">
|
||||
IMAP
|
||||
</div>
|
||||
Server
|
||||
<br />
|
||||
<input type="text" data-bind="value: imapServer, valueUpdate: 'afterkeydown', hasfocus: imapServerFocus" />
|
||||
<br />
|
||||
<br />
|
||||
Port
|
||||
<br />
|
||||
<input type="text" data-bind="value: imapPort, valueUpdate: 'afterkeydown'" />
|
||||
<br />
|
||||
<br />
|
||||
Secure
|
||||
<br />
|
||||
<select class="span2" data-bind="value: imapSecure">
|
||||
<option value="0">None</option>
|
||||
<option value="1">SSL</option>
|
||||
<option value="2">TLS</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="span4" data-bind="css: { 'testing-done': testingDone, 'testing-error': testingSmtpError }">
|
||||
<div class="legend smtp-header">
|
||||
SMTP
|
||||
</div>
|
||||
Server
|
||||
<br />
|
||||
<input type="text" data-bind="value: smtpServer, valueUpdate: 'afterkeydown', hasfocus: smtpServerFocus" />
|
||||
<br />
|
||||
<br />
|
||||
Port
|
||||
<br />
|
||||
<input type="text" data-bind="value: smtpPort, valueUpdate: 'afterkeydown'" />
|
||||
<br />
|
||||
<br />
|
||||
Secure
|
||||
<br />
|
||||
<select class="span2" data-bind="value: smtpSecure">
|
||||
<option value="0">None</option>
|
||||
<option value="1">SSL</option>
|
||||
<option value="2">TLS</option>
|
||||
</select>
|
||||
<br />
|
||||
<br />
|
||||
<label data-bind="click: function () { smtpAuth(!smtpAuth()); }">
|
||||
<i data-bind="css: smtpAuth() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
Use authentication
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class="btn button-test-connection pull-left" data-bind="command: testConnectionCommand, css: {
|
||||
'btn-success': testingDone() && !testingImapError() && !testingSmtpError(),
|
||||
'btn-danger': testingDone() && (testingImapError() || testingSmtpError()) }">
|
||||
<i data-bind="css: {'icon-info': !testing(), 'icon-spinner-2 animated': testing(), 'icon-white': testingDone()}"></i>
|
||||
|
||||
Test Connection
|
||||
</a>
|
||||
<a class="btn buttonClose" data-bind="command: cancelCommand">
|
||||
<i class="icon-remove"></i>
|
||||
|
||||
Close
|
||||
</a>
|
||||
<a class="btn buttonClear" data-bind="command: createOrAddCommand">
|
||||
<i data-bind="css: edit() ? 'icon-ok' : 'icon-plus', visible: !saving()"></i>
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: saving"></i>
|
||||
|
||||
<span data-bind="text: edit() ? 'Update' : 'Add'"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-folder-clear-content" data-bind="modal: modalVisibility">
|
||||
<div>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
<span class="i18n" data-i18n-text="POPUPS_CLEAR_FOLDER/TITLE_CLEAR_FOLDER" data-bind="visible: !clearingProcess()"></span>
|
||||
<span class="i18n" data-i18n-text="POPUPS_CLEAR_FOLDER/TITLE_CLEARING_PROCESS" data-bind="visible: clearingProcess"></span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div>
|
||||
<i class="icon-warning" style="color:red" />
|
||||
|
||||
<strong>
|
||||
<span class="i18n" data-i18n-html="POPUPS_CLEAR_FOLDER/DANGER_DESC_WARNING"></span>
|
||||
</strong>
|
||||
<br />
|
||||
<br />
|
||||
<span data-bind="html: dangerDescHtml"></span>
|
||||
<br />
|
||||
<span class="i18n" data-i18n-html="POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_2"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class="btn btn-danger buttonClear" data-bind="command: clearCommand">
|
||||
<i class="icon-fire" data-bind="css: {'icon-fire': !clearingProcess(), 'icon-spinner-2 animated': clearingProcess()}" ></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="POPUPS_CLEAR_FOLDER/BUTTON_CLEAR"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-folder-create-content" data-bind="modal: modalVisibility">
|
||||
<div>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
<span class="i18n" data-i18n-text="POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="POPUPS_CREATE_FOLDER/LABEL_NAME"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputName" type="text" data-bind="value: folderName, valueUpdate: 'afterkeydown', onEnter: createFolder, hasfocus: focusTrigger" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="POPUPS_CREATE_FOLDER/LABEL_PARENT"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<select data-bind="options: parentFolderSelectList, value: selectedParentValue,
|
||||
optionsText: 'name', optionsValue: 'id', optionsAfterRender: defautOptionsAfterRender"></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class="btn buttonCreate" data-bind="command: createFolder">
|
||||
<i class="icon-add-to-list"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="POPUPS_CREATE_FOLDER/BUTTON_CREATE"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-folder-system-content" data-bind="modal: modalVisibility">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
<span class="i18n" data-i18n-text="POPUPS_SYSTEM_FOLDERS/TITLE_SYSTEM_FOLDERS"></span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-horizontal">
|
||||
<div class="alert" data-bind="visible: '' !== notification()">
|
||||
<span data-bind="text: notification"></span>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="POPUPS_SYSTEM_FOLDERS/LABEL_SENT"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<select data-bind="options: folderSelectList, value: sentFolder,
|
||||
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defautOptionsAfterRender"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="POPUPS_SYSTEM_FOLDERS/LABEL_DRAFTS"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<select data-bind="options: folderSelectList, value: draftFolder,
|
||||
optionsText: 'name', optionsValue: 'id', optionsAfterRender: defautOptionsAfterRender"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="POPUPS_SYSTEM_FOLDERS/LABEL_SPAM"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<select data-bind="options: folderSelectList, value: spamFolder,
|
||||
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defautOptionsAfterRender"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="POPUPS_SYSTEM_FOLDERS/LABEL_TRASH"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<select data-bind="options: folderSelectList, value: trashFolder,
|
||||
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defautOptionsAfterRender"></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
37
rainloop/v/1.2.7.415/app/templates/Views/PopupsPlugin.html
Normal file
37
rainloop/v/1.2.7.415/app/templates/Views/PopupsPlugin.html
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-plugin-content" data-bind="modal: modalVisibility">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h4>
|
||||
Plugin "<span data-bind="text: name"></span>"
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal plugin-form" action="#/" onsubmit="return false;">
|
||||
<div class="well" data-bind="text: readme, visible: hasReadme()"></div>
|
||||
<div class="well" data-bind="visible: !hasReadme() && !hasConfiguration()">
|
||||
Nothing to configure
|
||||
</div>
|
||||
<div class="alert" data-bind="visible: '' !== saveError()">
|
||||
<button type="button" class="close" data-bind="click: function () { saveError('') }">×</button>
|
||||
<span data-bind="text: saveError"></span>
|
||||
</div>
|
||||
<div data-bind="foreach: configures, visible: hasConfiguration">
|
||||
<div data-bind="template: { name: 'AdminPluginProperty' }"></div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class="btn buttonClose" data-bind="command: cancelCommand">
|
||||
<i class="icon-remove"></i>
|
||||
|
||||
Close
|
||||
</a>
|
||||
<a class="btn buttonClear" data-bind="command: saveCommand, visible: hasConfiguration">
|
||||
<i class="icon-ok"></i>
|
||||
|
||||
Save
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
font-family: arial, sans-serif;
|
||||
}
|
||||
|
||||
.tbl {width:100%;font-family:normal 11px Tahoma, Arial, Helvetica, "sans-serif"}
|
||||
.tt {padding:5px;border:solid #ddd;border-width:0px 0px 1px 0px}
|
||||
.tv {padding:5px;border:solid #ddd;border-width:0px 0px 1px 1px}
|
||||
.tb {padding:15px}
|
||||
a {color: blue; text-decoration: underline}
|
||||
a:visited {color: #609}
|
||||
a:active {color: red}
|
||||
blockquote {border-left: 2px solid black; margin: 0; padding: 0px 10px}
|
||||
pre {margin: 0px; padding: 0px; font-family: arial, sans-serif; background: #fff; border: none; white-space: normal}
|
||||
</style>
|
||||
|
||||
<table cellpadding="0" cellspacing="0" class="tbl">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_FROM"></td>
|
||||
<td class="tv" data-bind="text: popupFrom"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_TO"></td>
|
||||
<td class="tv" data-bind="text: popupTo"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupCc">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_CC"></td>
|
||||
<td class="tv" data-bind="text: popupCc"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupBcc">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_BCC"></td>
|
||||
<td class="tv" data-bind="text: popupBcc"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupDate">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_DATE"></td>
|
||||
<td class="tv" data-bind="text: popupDate"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_SUBJECT"></td>
|
||||
<td class="tv" data-bind="text: popupSubject"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupAttachments">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_ATTACHMENTS"></td>
|
||||
<td class="tv" data-bind="text: popupAttachments"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="tb">
|
||||
<div data-bind="html: popupBody"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<div class="b-settings-accounts">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_ACCOUNTS/LEGEND_ACCOUNTS"></span>
|
||||
</div>
|
||||
</div>
|
||||
<a class="btn" data-bind="click: addNewAccount">
|
||||
<i class="icon-user-add"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_ACCOUNTS/BUTTON_ADD_ACCOUNT"></span>
|
||||
</a>
|
||||
<div class="process-place" data-bind="style: {'visibility': visibility }">
|
||||
<i class="icon-spinner-2 animated"></i>
|
||||
|
||||
<span data-bind="text: processText"></span>
|
||||
</div>
|
||||
<table class="table table-hover list-table" data-bind="i18nUpdate: accounts">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="foreach: accounts">
|
||||
<tr class="account-item">
|
||||
<td>
|
||||
<span class="account-name" data-bind="text: email"></span>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete" data-bind="css: {'delete-access': deleteAccess()}, click: function(oAccount) { $root.deleteAccount(oAccount); }">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_ACCOUNTS/DELETING_ASK"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-account" data-bind="visible: !deleteAccess() && canBeDalete(), click: function (oAccount) { $root.accountForDeletion(oAccount); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<div class="b-settings-general">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LEGEND_CHANGE_PASSWORD"></span>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LABEL_CURRENT_PASSWORD"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: currentPassword, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LABEL_NEW_PASSWORD"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: newPassword, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<a class="btn" data-bind="command: saveNewPasswordCommand, css: { 'btn-success': passwordUpdateSuccess, 'btn-danger': passwordUpdateError }">
|
||||
<i data-bind="css: {'icon-spinner-2 animated': changeProcess(), 'icon-key': !changeProcess(), 'icon-white': passwordUpdateSuccess() || passwordUpdateError() }"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/BUTTON_UPDATE_PASSWORD"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
<div class="settingsCustom">
|
||||
CUSTOM
|
||||
</div>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<tr class="folder-item" data-bind="css: { 'selectable': selectable, 'gmailFolder' : isGmailFolder }">
|
||||
<td>
|
||||
<span class="folder-padding" data-bind="css: 'deep-' + deep"> </span>
|
||||
<span class="folder-name" data-bind="text: name, visible: !edited(), css: { 'e-action': canBeEdited, 'can-be-edited': canBeEdited }, click: function (oFolder) { $root.folderForEdit(oFolder); }"></span>
|
||||
|
||||
<span class="folder-system-name" data-bind="text: manageFolderSystemName, visible: isSystemFolder"></span>
|
||||
<input type="text" class="folder-name-input" data-bind="value: nameForEdit, visible: edited, hasfocus: edited, onEnter: function (oFolder) { $root.folderEditOnEnter(oFolder); }, onEsc: function (oFolder) { $root.folderEditOnEsc(oFolder); }" />
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete" data-bind="css: {'delete-access': deleteAccess()}, click: function(oFolder) { $root.deleteFolder(oFolder); }">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_FOLDERS/DELETING_ASK"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="delete-folder" data-bind="visible: canBeDeleted() && !deleteAccess(), click: function (oFolder) { $root.folderForDeletion(oFolder); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="unsubscribe-folder" data-bind="visible: canBeSubScribed() && !subScribed(), click: function(oFolder) { $root.subscribeFolder(oFolder); }">
|
||||
<i class="icon-eye"></i>
|
||||
</span>
|
||||
<span class="subscribe-folder" data-bind="visible: canBeSubScribed() && subScribed(), click: function(oFolder) { $root.unSubscribeFolder(oFolder); }">
|
||||
<i class="icon-eye"></i>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- ko template: { name: 'SettingsFolderItem', foreach: subFolders } --><!-- /ko -->
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<div class="b-settings-folders" data-bind="css: { 'ignore-folder-subscribe': ignoreFolderSubscribe() }">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_FOLDERS/LEGEND_FOLDERS"></span>
|
||||
</div>
|
||||
</div>
|
||||
<a class="btn" data-bind="click: createFolder">
|
||||
<i class="icon-add-to-list"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_FOLDERS/BUTTON_CREATE"></span>
|
||||
</a>
|
||||
|
||||
<a class="btn" data-bind="click: systemFolder">
|
||||
<i class="icon-wrench"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_FOLDERS/BUTTON_SYSTEM"></span>
|
||||
</a>
|
||||
<div class="alert folders-list-error" data-bind="visible: '' !== foldersListError()">
|
||||
<button type="button" class="close" data-bind="click: function () { foldersListError(''); }">×</button>
|
||||
<span data-bind="text: foldersListError"></span>
|
||||
</div>
|
||||
<div class="process-place" data-bind="style: {'visibility': visibility }">
|
||||
<i class="icon-spinner-2 animated"></i>
|
||||
|
||||
<span data-bind="text: processText"></span>
|
||||
</div>
|
||||
<table class="table table-hover list-table" data-bind="i18nUpdate: folderList">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 1%" />
|
||||
<col style="width: 1%" />
|
||||
</colgroup>
|
||||
<tbody data-bind="template: { name: 'SettingsFolderItem', foreach: folderList }"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
106
rainloop/v/1.2.7.415/app/templates/Views/SettingsGeneral.html
Normal file
106
rainloop/v/1.2.7.415/app/templates/Views/SettingsGeneral.html
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
<div class="b-settings-general">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LEGEND_GENERAL"></span>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_LANGUAGE"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<select data-bind="options: languagesOptions, value: mainLanguage, optionsText: 'optText', optionsValue: 'optValue'"></select>
|
||||
<div data-bind="saveTrigger: languageTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" style="padding-top: 0;">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_EDITOR"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<label>
|
||||
<input type="radio" name="richTextEditorType" value="Html" data-bind="checked: editorDefaultType" style="display: none" />
|
||||
<i data-bind="css: 'Html' === editorDefaultType() ? ' icon-radio-checked' : 'icon-radio-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_EDITOR_HTML_AS_DEFAULT"></span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="radio" name="richTextEditorType" value="Plain" data-bind="checked: editorDefaultType" style="display: none" />
|
||||
<i data-bind="css: 'Plain' === editorDefaultType() ? ' icon-radio-checked' : 'icon-radio-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_EDITOR_PLAIN_AS_DEFAULT"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_VIEW_OPTIONS"></span>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<select class="span2" data-bind="value: mainMessagesPerPage" style="width: 70px;">
|
||||
<option value="10">10</option>
|
||||
<option value="20">20</option>
|
||||
<option value="30">30</option>
|
||||
<option value="50">50</option>
|
||||
<option value="100">100</option>
|
||||
</select>
|
||||
<span class="i18n help-inline" data-i18n-text="SETTINGS_GENERAL/LABEL_MESSAGE_PER_PAGE"></span>
|
||||
<div data-bind="saveTrigger: mppTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label data-bind="click: function () { showImages(!showImages()); }">
|
||||
<i data-bind="css: showImages() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_SHOW_IMAGES"></span>
|
||||
</label>
|
||||
<label data-bind="click: function () { useCheckboxesInList(!useCheckboxesInList()); }">
|
||||
<i data-bind="css: useCheckboxesInList() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_USE_CHECKBOXES_IN_LIST"></span>
|
||||
</label>
|
||||
<label data-bind="click: function () { usePreviewPane(!usePreviewPane()); }">
|
||||
<i data-bind="css: usePreviewPane() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_USE_PREVIEW_PANE"></span>
|
||||
</label>
|
||||
<label data-bind="click: function () { useThreads(!useThreads()); }">
|
||||
<i data-bind="css: useThreads() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_USE_THREADS"></span>
|
||||
</label>
|
||||
<label data-bind="click: function () { replySameFolder(!replySameFolder()); }">
|
||||
<i data-bind="css: replySameFolder() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_REPLY_SAME_FOLDER"></span>
|
||||
</label>
|
||||
<!--
|
||||
<label data-bind="click: function () { showAnimation(!showAnimation()); }">
|
||||
<i data-bind="css: showAnimation() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_SHOW_ANIMATION"></span>
|
||||
</label>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal" data-bind="visible: isDesctopNotificationsSupported()">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_CHROME_NOTIFICATION"></span>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<div data-bind="visible: isDesctopNotificationsSupported">
|
||||
<label data-bind="css: { 'denied-by-browser': isDesctopNotificationsDenied }, click: function () { if (!isDesctopNotificationsDenied()) { useDesktopNotifications(!useDesktopNotifications()); }}">
|
||||
<i data-bind="css: useDesktopNotifications() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span class="i18n notification-desc" data-i18n-text="SETTINGS_GENERAL/LABEL_CHROME_NOTIFICATION_DESC"></span>
|
||||
<span class="i18n notification-desc-denied" data-i18n-text="SETTINGS_GENERAL/LABEL_CHROME_NOTIFICATION_DESC_DENIED"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
18
rainloop/v/1.2.7.415/app/templates/Views/SettingsMenu.html
Normal file
18
rainloop/v/1.2.7.415/app/templates/Views/SettingsMenu.html
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<div class="b-settins-left g-ui-user-select-none">
|
||||
<div class="b-toolbar">
|
||||
</div>
|
||||
<div class="b-content thm-settings-menu">
|
||||
<div class="b-settings-menu" data-bind="foreach: menu">
|
||||
<!-- ko if: disabled -->
|
||||
<span class="e-item disabled">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</span>
|
||||
<!-- /ko -->
|
||||
<!-- ko ifnot: disabled -->
|
||||
<a class="e-item selectable" href="#" data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route) }">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</a>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
18
rainloop/v/1.2.7.415/app/templates/Views/SettingsPane.html
Normal file
18
rainloop/v/1.2.7.415/app/templates/Views/SettingsPane.html
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<div class="b-settins-right g-ui-user-select-none">
|
||||
<div class="b-toolbar">
|
||||
<div class="btn-toolbar">
|
||||
<a class="btn button-back" data-bind="click: backToMailBoxClick">
|
||||
<i class="icon-arrow-left"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_LABELS/BUTTON_BACK"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content" data-bind="nano: true">
|
||||
<div class="content g-scrollbox">
|
||||
<div class="content-wrapper">
|
||||
<div id="rl-settings-subscreen" class="b-settings-content"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
<div class="b-settings-personal">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_PERSONAL/LEGEND_PERSONAL"></span>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_PERSONAL/LABEL_DISPLAY_NAME"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="input-xlarge" type="text" data-bind="value: displayName" />
|
||||
<div data-bind="saveTrigger: nameTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" style="display: none">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_PERSONAL/LABEL_REPLY_TO"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="input-xlarge" type="text" data-bind="value: replyTo" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_PERSONAL/LABEL_SIGNATURE"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<textarea class="input-xxlarge" data-bind="value: signature" rows="7"></textarea>
|
||||
<div style="vertical-align: top;" data-bind="saveTrigger: signatureTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
101
rainloop/v/1.2.7.415/app/templates/Views/SettingsSocial.html
Normal file
101
rainloop/v/1.2.7.415/app/templates/Views/SettingsSocial.html
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
<div class="b-settings-social">
|
||||
<div class="form-horizontal" data-bind="visible: googleEnable">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_SOCIAL/LEGEND_GOOGLE"></span>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: !googleLoggined()">
|
||||
<button class="btn" data-bind="command: connectGoogle">
|
||||
<i class="icon-google" data-bind="visible: !googleActions()"></i>
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: googleActions()"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_SOCIAL/BUTTON_GOOGLE_CONNECT"></span>
|
||||
</button>
|
||||
<br />
|
||||
<br />
|
||||
<blockquote>
|
||||
<p class="i18n muted" style="width: 700px" data-i18n-text="SETTINGS_SOCIAL/MAIN_GOOGLE_DESC"></p>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: googleLoggined">
|
||||
<strong>
|
||||
<i class="icon-google"></i>
|
||||
|
||||
<span data-bind="text: googleUserName"></span>
|
||||
</strong>
|
||||
<br />
|
||||
<br />
|
||||
<button class="btn" data-bind="command: disconnectGoogle">
|
||||
<i class="icon-remove" data-bind="visible: !googleActions()"></i>
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: googleActions()"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_SOCIAL/BUTTON_GOOGLE_DISCONNECT"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal" data-bind="visible: facebookEnable">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_SOCIAL/LEGEND_FACEBOOK"></span>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: !facebookLoggined()">
|
||||
<button class="btn" data-bind="command: connectFacebook">
|
||||
<i class="icon-facebook" data-bind="visible: !facebookActions()"></i>
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: facebookActions()"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_SOCIAL/BUTTON_FACEBOOK_CONNECT"></span>
|
||||
</button>
|
||||
<br />
|
||||
<br />
|
||||
<blockquote>
|
||||
<p class="i18n muted" style="width: 700px" data-i18n-text="SETTINGS_SOCIAL/MAIN_FACEBOOK_DESC"></p>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: facebookLoggined">
|
||||
<strong>
|
||||
<i class="icon-facebook"></i>
|
||||
|
||||
<span data-bind="text: facebookUserName"></span>
|
||||
</strong>
|
||||
<br />
|
||||
<br />
|
||||
<button class="btn" data-bind="command: disconnectFacebook">
|
||||
<i class="icon-remove" data-bind="visible: !facebookActions()"></i>
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: facebookActions()"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_SOCIAL/BUTTON_FACEBOOK_DISCONNECT"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal" data-bind="visible: twitterEnable">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_SOCIAL/LEGEND_TWITTER"></span>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: !twitterLoggined()">
|
||||
<button class="btn" data-bind="command: connectTwitter">
|
||||
<i class="icon-twitter" data-bind="visible: !twitterActions()"></i>
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: twitterActions()"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_SOCIAL/BUTTON_TWITTER_CONNECT"></span>
|
||||
</button>
|
||||
<br />
|
||||
<br />
|
||||
<blockquote>
|
||||
<p class="i18n muted" style="width: 700px" data-i18n-text="SETTINGS_SOCIAL/MAIN_TWITTER_DESC"></p>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: twitterLoggined">
|
||||
<strong>
|
||||
<i class="icon-twitter"></i>
|
||||
|
||||
<span data-bind="text: twitterUserName"></span>
|
||||
</strong>
|
||||
<br />
|
||||
<br />
|
||||
<button class="btn" data-bind="command: disconnectTwitter">
|
||||
<i class="icon-remove" data-bind="visible: !twitterActions()"></i>
|
||||
<i class="icon-spinner-2 animated" data-bind="visible: twitterActions()"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_SOCIAL/BUTTON_TWITTER_DISCONNECT"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
59
rainloop/v/1.2.7.415/app/templates/Views/SettingsThemes.html
Normal file
59
rainloop/v/1.2.7.415/app/templates/Views/SettingsThemes.html
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
<div class="b-settings-themes">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_THEMES/LEGEND_THEMES"></span>
|
||||
<div class="themeTrigger" data-bind="saveTrigger: themeTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-themes-list" data-bind="foreach: themesObjects">
|
||||
<div class="e-item" data-bind="click: function () { $root.mainTheme(name); }, css: { 'selected': selected }">
|
||||
<div class="e-name" data-bind="text: nameDisplay"></div>
|
||||
<img class="e-image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-bind="attr: { 'src': themePreviewSrc }" />
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
<div class="form-horizontal" data-bind="visible: showCustomThemeConfig">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_THEMES/LEGEND_THEMES_CUSTOM"></span>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" style="padding-top: 0;">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_THEMES/LABEL_CUSTOM_TYPE"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<label>
|
||||
<input type="radio" name="customThemeType" value="Light" data-bind="checked: customThemeType" style="display: none" />
|
||||
<i data-bind="css: 'Light' === customThemeType() ? ' icon-radio-checked' : 'icon-radio-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_THEMES/LABEL_CUSTOM_TYPE_LIGHT"></span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="radio" name="customThemeType" value="Dark" data-bind="checked: customThemeType" style="display: none" />
|
||||
<i data-bind="css: 'Dark' === customThemeType() ? ' icon-radio-checked' : 'icon-radio-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_THEMES/LABEL_CUSTOM_TYPE_DARK"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" style="padding-top: 0;">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_THEMES/LABEL_CUSTOM_BACKGROUND_IMAGE"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<div data-bind="visible: '' !== customThemeImg()">
|
||||
<strong data-bind="text: customThemeImg"></strong>
|
||||
|
||||
<i class="icon-remove" style="cursor: pointer" data-bind="click: removeCustomThemeImg"></i>
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
<a class="btn" data-bind="visible: '' === customThemeImg(), initDom: customThemeUploaderButton">
|
||||
<i data-bind="css: {'icon-image': !customThemeUploaderProgress(), 'icon-spinner-2 animated': customThemeUploaderProgress()}"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_THEMES/BUTTON_UPLOAD_BACKGROUND_IMAGE"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
63
rainloop/v/1.2.7.415/app/templates/Views/SystemDropDown.html
Normal file
63
rainloop/v/1.2.7.415/app/templates/Views/SystemDropDown.html
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<div class="b-system-drop-down g-ui-user-select-none">
|
||||
<div class="b-toolbar">
|
||||
<div class="btn-toolbar">
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn btn-narrow" data-bind="click: logoutClick">
|
||||
<i class="icon-switch"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group pull-right">
|
||||
|
||||
</div>
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn btn-ellipsis btn-block dropdown-toggle system-dropdown" data-placement="left" data-toggle="dropdown"
|
||||
data-tooltip-class="tooltip-big" data-bind="tooltip2: emailTitle">
|
||||
<i data-bind="css: {'icon-user': !loading(), 'icon-spinner-2 animated': loading()}"></i>
|
||||
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu g-ui-menu">
|
||||
<!-- ko if: accounts().length -->
|
||||
<!-- ko foreach: accounts -->
|
||||
<li class="e-item">
|
||||
<a class="e-link" 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>
|
||||
|
||||
<span data-bind="text: email"></span>
|
||||
</a>
|
||||
</li>
|
||||
<!-- /ko -->
|
||||
<li class="divider"></li>
|
||||
<!-- /ko -->
|
||||
<!-- ko if: allowAddAccount -->
|
||||
<li class="e-item">
|
||||
<a class="e-link" data-bind="click: addAccountClick">
|
||||
<i class="icon-user-add"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="TOP_TOOLBAR/BUTTON_ADD_ACCOUNT"></span>
|
||||
</a>
|
||||
</li>
|
||||
<!-- /ko -->
|
||||
<li class="e-item">
|
||||
<a class="e-link" data-bind="click: settingsClick">
|
||||
<i class="icon-cog"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="TOP_TOOLBAR/BUTTON_SETTINGS"></span>
|
||||
</a>
|
||||
</li>
|
||||
<!--
|
||||
<li class="divider"></li>
|
||||
<li class="e-item">
|
||||
<a class="e-link" data-bind="click: logoutClick">
|
||||
<i class="icon-switch"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="TOP_TOOLBAR/BUTTON_LOGOUT"></span>
|
||||
</a>
|
||||
</li>
|
||||
-->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue