mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-12-25 00:21:29 +08:00
Show/Hide folder list button
This commit is contained in:
parent
5fff5afd16
commit
ba645f5614
20 changed files with 183 additions and 125 deletions
|
@ -321,5 +321,17 @@ AbstractApp.prototype.bootstart = function ()
|
|||
}
|
||||
});
|
||||
|
||||
RL.sub('ssm.mobile-enter', function () {
|
||||
RL.data().leftPanelDisabled(true);
|
||||
});
|
||||
|
||||
RL.sub('ssm.mobile-leave', function () {
|
||||
RL.data().leftPanelDisabled(false);
|
||||
});
|
||||
|
||||
RL.data().leftPanelDisabled.subscribe(function (bValue) {
|
||||
$html.toggleClass('rl-left-panel-disabled', bValue);
|
||||
});
|
||||
|
||||
ssm.ready();
|
||||
};
|
||||
|
|
|
@ -1093,18 +1093,18 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
|
|||
}
|
||||
},
|
||||
|
||||
// fDisable = function (bDisable) {
|
||||
// if (bDisable)
|
||||
// {
|
||||
// oLeft.resizable('disable');
|
||||
// fSetWidth(5);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// oLeft.resizable('enable');
|
||||
// fSetWidth(RL.local().get(sClientSideKeyName) || 150);
|
||||
// }
|
||||
// },
|
||||
fDisable = function (bDisable) {
|
||||
if (bDisable)
|
||||
{
|
||||
oLeft.resizable('disable');
|
||||
fSetWidth(5);
|
||||
}
|
||||
else
|
||||
{
|
||||
oLeft.resizable('enable');
|
||||
fSetWidth(RL.local().get(sClientSideKeyName) || 170);
|
||||
}
|
||||
},
|
||||
|
||||
fResizeFunction = function (oEvent, oObject) {
|
||||
if (oObject && oObject.size && oObject.size.width)
|
||||
|
@ -1125,19 +1125,19 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
|
|||
|
||||
oLeft.resizable({
|
||||
'helper': 'ui-resizable-helper',
|
||||
'minWidth': 120,
|
||||
'minWidth': 170,
|
||||
'maxWidth': 400,
|
||||
'handles': 'e',
|
||||
'stop': fResizeFunction
|
||||
});
|
||||
|
||||
// RL.sub('ssm.mobile-enter', function () {
|
||||
// fDisable(true);
|
||||
// });
|
||||
//
|
||||
// RL.sub('ssm.mobile-leave', function () {
|
||||
// fDisable(false);
|
||||
// });
|
||||
RL.sub('left-panel.off', function () {
|
||||
fDisable(true);
|
||||
});
|
||||
|
||||
RL.sub('left-panel.on', function () {
|
||||
fDisable(false);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
function AbstractData()
|
||||
{
|
||||
this.leftPanelDisabled = ko.observable(false);
|
||||
this.useKeyboardShortcuts = ko.observable(true);
|
||||
|
||||
this.keyScopeReal = ko.observable(Enums.KeyState.All);
|
||||
|
@ -44,6 +45,10 @@ function AbstractData()
|
|||
key.setScope(sValue);
|
||||
});
|
||||
|
||||
this.leftPanelDisabled.subscribe(function (bValue) {
|
||||
RL.pub('left-panel.' + (bValue ? 'off' : 'on'));
|
||||
});
|
||||
|
||||
Globals.dropdownVisibility.subscribe(function (bValue) {
|
||||
if (bValue)
|
||||
{
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
#rl-center {
|
||||
.g-ui-absolute-reset;
|
||||
min-width: 700px;
|
||||
min-width: 600px;
|
||||
min-height: 400px;
|
||||
}
|
||||
|
||||
|
@ -108,18 +108,18 @@ html.ssm-state-desktop {
|
|||
}
|
||||
}
|
||||
|
||||
html.ssm-state-tablet {
|
||||
html.ssm-state-tablet, html.ssm-state-mobile {
|
||||
|
||||
#rl-left {
|
||||
width: 150px;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
#rl-right {
|
||||
left: 150px;
|
||||
left: 160px;
|
||||
}
|
||||
|
||||
#rl-sub-left {
|
||||
width: 340px;
|
||||
width: 350px;
|
||||
|
||||
.messageList .inputSearch {
|
||||
width: 220px;
|
||||
|
@ -127,7 +127,7 @@ html.ssm-state-tablet {
|
|||
}
|
||||
|
||||
#rl-sub-right {
|
||||
left: 340px;
|
||||
left: 350px;
|
||||
}
|
||||
|
||||
.b-compose.modal {
|
||||
|
@ -139,33 +139,15 @@ html.ssm-state-tablet {
|
|||
}
|
||||
}
|
||||
|
||||
html.ssm-state-mobile {
|
||||
html.rl-left-panel-disabled {
|
||||
|
||||
#rl-left {
|
||||
width: 120px;
|
||||
width: 5px !important;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#rl-right {
|
||||
left: 120px;
|
||||
}
|
||||
|
||||
#rl-sub-left {
|
||||
width: 340px;
|
||||
|
||||
.messageList .inputSearch {
|
||||
width: 220px;
|
||||
}
|
||||
}
|
||||
|
||||
#rl-sub-right {
|
||||
left: 340px;
|
||||
}
|
||||
|
||||
.b-compose.modal {
|
||||
width: 800px;
|
||||
}
|
||||
|
||||
.b-contacts-content.modal {
|
||||
width: 800px;
|
||||
left: 5px !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ function AdminPaneViewModel()
|
|||
this.version = ko.observable(RL.settingsGet('Version'));
|
||||
|
||||
this.adminManLoadingVisibility = RL.data().adminManLoadingVisibility;
|
||||
this.leftPanelDisabled = RL.data().leftPanelDisabled;
|
||||
|
||||
Knoin.constructorEnd(this);
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@ function MailBoxFolderListViewModel()
|
|||
this.folderListSystem = oData.folderListSystem;
|
||||
this.foldersChanging = oData.foldersChanging;
|
||||
|
||||
this.leftPanelDisabled = oData.leftPanelDisabled;
|
||||
|
||||
this.iDropOverTimer = 0;
|
||||
|
||||
this.allowContacts = !!RL.settingsGet('ContactsIsAllowed');
|
||||
|
|
|
@ -26,6 +26,7 @@ function MailBoxMessageListViewModel()
|
|||
this.folderMenuForMove = oData.folderMenuForMove;
|
||||
|
||||
this.useCheckboxesInList = oData.useCheckboxesInList;
|
||||
this.leftPanelDisabled = oData.leftPanelDisabled;
|
||||
|
||||
this.mainMessageListSearch = oData.mainMessageListSearch;
|
||||
this.messageListEndFolder = oData.messageListEndFolder;
|
||||
|
|
|
@ -8,6 +8,8 @@ function SettingsPaneViewModel()
|
|||
{
|
||||
KnoinAbstractViewModel.call(this, 'Right', 'SettingsPane');
|
||||
|
||||
this.leftPanelDisabled = RL.data().leftPanelDisabled;
|
||||
|
||||
Knoin.constructorEnd(this);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"name": "RainLoop",
|
||||
"title": "RainLoop Webmail",
|
||||
"version": "1.6.5",
|
||||
"release": "909",
|
||||
"release": "910",
|
||||
"description": "Simple, modern & fast web-based email client",
|
||||
"homepage": "http://rainloop.net",
|
||||
"main": "Gruntfile.js",
|
||||
|
|
|
@ -13,6 +13,12 @@
|
|||
<i class="icon-power"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group pull-right"> </div>
|
||||
<div class="btn-group pull-right" data-bind="visible: leftPanelDisabled">
|
||||
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(false); }">
|
||||
<i class="icon-resize"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content" data-bind="nano: true">
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
<a class="btn buttonContacts" data-tooltip-placement="bottom" data-bind="visible: allowContacts, click: contactsClick, tooltip: 'FOLDER_LIST/BUTTON_CONTACTS'">
|
||||
<i class="icon-address-book"></i>
|
||||
</a>
|
||||
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(true); }">
|
||||
<i class="icon-resize"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="b-content" data-bind="nano: true">
|
||||
<div class="content g-scrollbox">
|
||||
|
|
|
@ -3,6 +3,11 @@
|
|||
data-bind="css: {'message-selected': isMessageSelected, 'message-focused': message.focused, 'loading': messageListCompleteLoadingThrottle, 'hideMessageListCheckbox': !useCheckboxesInList() }">
|
||||
<div class="toolbar">
|
||||
<div class="btn-toolbar">
|
||||
<div class="btn-group" data-bind="visible: leftPanelDisabled">
|
||||
<a class="btn" data-bind="click: function () { leftPanelDisabled(false); }">
|
||||
<i class="icon-resize"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a class="btn buttonReload" data-tooltip-placement="bottom" data-bind="command: reloadCommand, tooltip: 'MESSAGE_LIST/BUTTON_RELOAD'">
|
||||
<i class="icon-spinner" data-bind="css: {'animated': messageListCompleteLoadingThrottle}"></i>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<div id="rl-sub-right">
|
||||
<div class="messageView" data-bind="css: {'message-selected': isMessageSelected, 'message-focused': message.focused}">
|
||||
<div class="toolbar g-ui-user-select-none">
|
||||
<nobr>
|
||||
<div class="messageButtons btn-toolbar">
|
||||
<div class="btn-group" data-tooltip-placement="bottom" data-bind="visible: !usePreviewPane(), tooltip: 'MESSAGE/BUTTON_CLOSE'">
|
||||
<a class="btn buttonClose" data-bind="command: closeMessage">
|
||||
|
@ -120,6 +121,7 @@
|
|||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</nobr>
|
||||
</div>
|
||||
<div class="b-content thm-message-view-background-color">
|
||||
<div>
|
||||
|
|
|
@ -6,6 +6,10 @@
|
|||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_LABELS/BUTTON_BACK"></span>
|
||||
</a>
|
||||
|
||||
<a class="btn buttonResize" data-bind="visible: leftPanelDisabled, click: function () { leftPanelDisabled(false); }">
|
||||
<i class="icon-resize"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content" data-bind="nano: true">
|
||||
|
|
|
@ -6926,7 +6926,7 @@ html.mobile * {
|
|||
margin: 0;
|
||||
border: 0;
|
||||
z-index: 0;
|
||||
min-width: 700px;
|
||||
min-width: 600px;
|
||||
min-height: 400px;
|
||||
}
|
||||
#rl-top {
|
||||
|
@ -7025,48 +7025,41 @@ html.ssm-state-desktop #rl-sub-left {
|
|||
html.ssm-state-desktop #rl-sub-right {
|
||||
left: 400px;
|
||||
}
|
||||
html.ssm-state-tablet #rl-left {
|
||||
width: 150px;
|
||||
}
|
||||
html.ssm-state-tablet #rl-right {
|
||||
left: 150px;
|
||||
}
|
||||
html.ssm-state-tablet #rl-sub-left {
|
||||
width: 340px;
|
||||
}
|
||||
html.ssm-state-tablet #rl-sub-left .messageList .inputSearch {
|
||||
width: 220px;
|
||||
}
|
||||
html.ssm-state-tablet #rl-sub-right {
|
||||
left: 340px;
|
||||
}
|
||||
html.ssm-state-tablet .b-compose.modal {
|
||||
width: 800px;
|
||||
}
|
||||
html.ssm-state-tablet .b-contacts-content.modal {
|
||||
width: 800px;
|
||||
}
|
||||
html.ssm-state-tablet #rl-left,
|
||||
html.ssm-state-mobile #rl-left {
|
||||
width: 120px;
|
||||
width: 160px;
|
||||
}
|
||||
html.ssm-state-tablet #rl-right,
|
||||
html.ssm-state-mobile #rl-right {
|
||||
left: 120px;
|
||||
left: 160px;
|
||||
}
|
||||
html.ssm-state-tablet #rl-sub-left,
|
||||
html.ssm-state-mobile #rl-sub-left {
|
||||
width: 340px;
|
||||
width: 350px;
|
||||
}
|
||||
html.ssm-state-tablet #rl-sub-left .messageList .inputSearch,
|
||||
html.ssm-state-mobile #rl-sub-left .messageList .inputSearch {
|
||||
width: 220px;
|
||||
}
|
||||
html.ssm-state-tablet #rl-sub-right,
|
||||
html.ssm-state-mobile #rl-sub-right {
|
||||
left: 340px;
|
||||
left: 350px;
|
||||
}
|
||||
html.ssm-state-tablet .b-compose.modal,
|
||||
html.ssm-state-mobile .b-compose.modal {
|
||||
width: 800px;
|
||||
}
|
||||
html.ssm-state-tablet .b-contacts-content.modal,
|
||||
html.ssm-state-mobile .b-contacts-content.modal {
|
||||
width: 800px;
|
||||
}
|
||||
html.rl-left-panel-disabled #rl-left {
|
||||
width: 5px !important;
|
||||
display: none;
|
||||
}
|
||||
html.rl-left-panel-disabled #rl-right {
|
||||
left: 5px !important;
|
||||
}
|
||||
.ui-resizable-helper {
|
||||
border-right: 5px solid #777;
|
||||
border-right-color: rgba(255, 255, 255, 0.7);
|
||||
|
|
2
rainloop/v/0.0.0/static/css/app.min.css
vendored
2
rainloop/v/0.0.0/static/css/app.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -1815,18 +1815,18 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
|
|||
}
|
||||
},
|
||||
|
||||
// fDisable = function (bDisable) {
|
||||
// if (bDisable)
|
||||
// {
|
||||
// oLeft.resizable('disable');
|
||||
// fSetWidth(5);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// oLeft.resizable('enable');
|
||||
// fSetWidth(RL.local().get(sClientSideKeyName) || 150);
|
||||
// }
|
||||
// },
|
||||
fDisable = function (bDisable) {
|
||||
if (bDisable)
|
||||
{
|
||||
oLeft.resizable('disable');
|
||||
fSetWidth(5);
|
||||
}
|
||||
else
|
||||
{
|
||||
oLeft.resizable('enable');
|
||||
fSetWidth(RL.local().get(sClientSideKeyName) || 170);
|
||||
}
|
||||
},
|
||||
|
||||
fResizeFunction = function (oEvent, oObject) {
|
||||
if (oObject && oObject.size && oObject.size.width)
|
||||
|
@ -1847,19 +1847,19 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
|
|||
|
||||
oLeft.resizable({
|
||||
'helper': 'ui-resizable-helper',
|
||||
'minWidth': 120,
|
||||
'minWidth': 170,
|
||||
'maxWidth': 400,
|
||||
'handles': 'e',
|
||||
'stop': fResizeFunction
|
||||
});
|
||||
|
||||
// RL.sub('ssm.mobile-enter', function () {
|
||||
// fDisable(true);
|
||||
// });
|
||||
//
|
||||
// RL.sub('ssm.mobile-leave', function () {
|
||||
// fDisable(false);
|
||||
// });
|
||||
RL.sub('left-panel.off', function () {
|
||||
fDisable(true);
|
||||
});
|
||||
|
||||
RL.sub('left-panel.on', function () {
|
||||
fDisable(false);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -5650,6 +5650,7 @@ function AdminPaneViewModel()
|
|||
this.version = ko.observable(RL.settingsGet('Version'));
|
||||
|
||||
this.adminManLoadingVisibility = RL.data().adminManLoadingVisibility;
|
||||
this.leftPanelDisabled = RL.data().leftPanelDisabled;
|
||||
|
||||
Knoin.constructorEnd(this);
|
||||
}
|
||||
|
@ -6654,6 +6655,7 @@ AdminLicensing.prototype.licenseExpiredMomentValue = function ()
|
|||
*/
|
||||
function AbstractData()
|
||||
{
|
||||
this.leftPanelDisabled = ko.observable(false);
|
||||
this.useKeyboardShortcuts = ko.observable(true);
|
||||
|
||||
this.keyScopeReal = ko.observable(Enums.KeyState.All);
|
||||
|
@ -6693,6 +6695,10 @@ function AbstractData()
|
|||
key.setScope(sValue);
|
||||
});
|
||||
|
||||
this.leftPanelDisabled.subscribe(function (bValue) {
|
||||
RL.pub('left-panel.' + (bValue ? 'off' : 'on'));
|
||||
});
|
||||
|
||||
Globals.dropdownVisibility.subscribe(function (bValue) {
|
||||
if (bValue)
|
||||
{
|
||||
|
@ -7957,6 +7963,18 @@ AbstractApp.prototype.bootstart = function ()
|
|||
}
|
||||
});
|
||||
|
||||
RL.sub('ssm.mobile-enter', function () {
|
||||
RL.data().leftPanelDisabled(true);
|
||||
});
|
||||
|
||||
RL.sub('ssm.mobile-leave', function () {
|
||||
RL.data().leftPanelDisabled(false);
|
||||
});
|
||||
|
||||
RL.data().leftPanelDisabled.subscribe(function (bValue) {
|
||||
$html.toggleClass('rl-left-panel-disabled', bValue);
|
||||
});
|
||||
|
||||
ssm.ready();
|
||||
};
|
||||
|
||||
|
|
8
rainloop/v/0.0.0/static/js/admin.min.js
vendored
8
rainloop/v/0.0.0/static/js/admin.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1819,18 +1819,18 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
|
|||
}
|
||||
},
|
||||
|
||||
// fDisable = function (bDisable) {
|
||||
// if (bDisable)
|
||||
// {
|
||||
// oLeft.resizable('disable');
|
||||
// fSetWidth(5);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// oLeft.resizable('enable');
|
||||
// fSetWidth(RL.local().get(sClientSideKeyName) || 150);
|
||||
// }
|
||||
// },
|
||||
fDisable = function (bDisable) {
|
||||
if (bDisable)
|
||||
{
|
||||
oLeft.resizable('disable');
|
||||
fSetWidth(5);
|
||||
}
|
||||
else
|
||||
{
|
||||
oLeft.resizable('enable');
|
||||
fSetWidth(RL.local().get(sClientSideKeyName) || 170);
|
||||
}
|
||||
},
|
||||
|
||||
fResizeFunction = function (oEvent, oObject) {
|
||||
if (oObject && oObject.size && oObject.size.width)
|
||||
|
@ -1851,19 +1851,19 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
|
|||
|
||||
oLeft.resizable({
|
||||
'helper': 'ui-resizable-helper',
|
||||
'minWidth': 120,
|
||||
'minWidth': 170,
|
||||
'maxWidth': 400,
|
||||
'handles': 'e',
|
||||
'stop': fResizeFunction
|
||||
});
|
||||
|
||||
// RL.sub('ssm.mobile-enter', function () {
|
||||
// fDisable(true);
|
||||
// });
|
||||
//
|
||||
// RL.sub('ssm.mobile-leave', function () {
|
||||
// fDisable(false);
|
||||
// });
|
||||
RL.sub('left-panel.off', function () {
|
||||
fDisable(true);
|
||||
});
|
||||
|
||||
RL.sub('left-panel.on', function () {
|
||||
fDisable(false);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -11787,6 +11787,8 @@ function MailBoxFolderListViewModel()
|
|||
this.folderListSystem = oData.folderListSystem;
|
||||
this.foldersChanging = oData.foldersChanging;
|
||||
|
||||
this.leftPanelDisabled = oData.leftPanelDisabled;
|
||||
|
||||
this.iDropOverTimer = 0;
|
||||
|
||||
this.allowContacts = !!RL.settingsGet('ContactsIsAllowed');
|
||||
|
@ -11989,6 +11991,7 @@ function MailBoxMessageListViewModel()
|
|||
this.folderMenuForMove = oData.folderMenuForMove;
|
||||
|
||||
this.useCheckboxesInList = oData.useCheckboxesInList;
|
||||
this.leftPanelDisabled = oData.leftPanelDisabled;
|
||||
|
||||
this.mainMessageListSearch = oData.mainMessageListSearch;
|
||||
this.messageListEndFolder = oData.messageListEndFolder;
|
||||
|
@ -13555,6 +13558,8 @@ function SettingsPaneViewModel()
|
|||
{
|
||||
KnoinAbstractViewModel.call(this, 'Right', 'SettingsPane');
|
||||
|
||||
this.leftPanelDisabled = RL.data().leftPanelDisabled;
|
||||
|
||||
Knoin.constructorEnd(this);
|
||||
}
|
||||
|
||||
|
@ -14930,6 +14935,7 @@ SettingsOpenPGP.prototype.deleteOpenPgpKey = function (oOpenPgpKeyToRemove)
|
|||
*/
|
||||
function AbstractData()
|
||||
{
|
||||
this.leftPanelDisabled = ko.observable(false);
|
||||
this.useKeyboardShortcuts = ko.observable(true);
|
||||
|
||||
this.keyScopeReal = ko.observable(Enums.KeyState.All);
|
||||
|
@ -14969,6 +14975,10 @@ function AbstractData()
|
|||
key.setScope(sValue);
|
||||
});
|
||||
|
||||
this.leftPanelDisabled.subscribe(function (bValue) {
|
||||
RL.pub('left-panel.' + (bValue ? 'off' : 'on'));
|
||||
});
|
||||
|
||||
Globals.dropdownVisibility.subscribe(function (bValue) {
|
||||
if (bValue)
|
||||
{
|
||||
|
@ -18468,6 +18478,18 @@ AbstractApp.prototype.bootstart = function ()
|
|||
}
|
||||
});
|
||||
|
||||
RL.sub('ssm.mobile-enter', function () {
|
||||
RL.data().leftPanelDisabled(true);
|
||||
});
|
||||
|
||||
RL.sub('ssm.mobile-leave', function () {
|
||||
RL.data().leftPanelDisabled(false);
|
||||
});
|
||||
|
||||
RL.data().leftPanelDisabled.subscribe(function (bValue) {
|
||||
$html.toggleClass('rl-left-panel-disabled', bValue);
|
||||
});
|
||||
|
||||
ssm.ready();
|
||||
};
|
||||
|
||||
|
|
8
rainloop/v/0.0.0/static/js/app.min.js
vendored
8
rainloop/v/0.0.0/static/js/app.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue