Show/Hide folder list button

This commit is contained in:
RainLoop Team 2014-04-27 04:54:22 +04:00
parent 5fff5afd16
commit ba645f5614
20 changed files with 183 additions and 125 deletions

View file

@ -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(); ssm.ready();
}; };

View file

@ -1093,18 +1093,18 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
} }
}, },
// fDisable = function (bDisable) { fDisable = function (bDisable) {
// if (bDisable) if (bDisable)
// { {
// oLeft.resizable('disable'); oLeft.resizable('disable');
// fSetWidth(5); fSetWidth(5);
// } }
// else else
// { {
// oLeft.resizable('enable'); oLeft.resizable('enable');
// fSetWidth(RL.local().get(sClientSideKeyName) || 150); fSetWidth(RL.local().get(sClientSideKeyName) || 170);
// } }
// }, },
fResizeFunction = function (oEvent, oObject) { fResizeFunction = function (oEvent, oObject) {
if (oObject && oObject.size && oObject.size.width) if (oObject && oObject.size && oObject.size.width)
@ -1125,19 +1125,19 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
oLeft.resizable({ oLeft.resizable({
'helper': 'ui-resizable-helper', 'helper': 'ui-resizable-helper',
'minWidth': 120, 'minWidth': 170,
'maxWidth': 400, 'maxWidth': 400,
'handles': 'e', 'handles': 'e',
'stop': fResizeFunction 'stop': fResizeFunction
}); });
// RL.sub('ssm.mobile-enter', function () { RL.sub('left-panel.off', function () {
// fDisable(true); fDisable(true);
// }); });
//
// RL.sub('ssm.mobile-leave', function () { RL.sub('left-panel.on', function () {
// fDisable(false); fDisable(false);
// }); });
}; };
/** /**

View file

@ -5,6 +5,7 @@
*/ */
function AbstractData() function AbstractData()
{ {
this.leftPanelDisabled = ko.observable(false);
this.useKeyboardShortcuts = ko.observable(true); this.useKeyboardShortcuts = ko.observable(true);
this.keyScopeReal = ko.observable(Enums.KeyState.All); this.keyScopeReal = ko.observable(Enums.KeyState.All);
@ -44,6 +45,10 @@ function AbstractData()
key.setScope(sValue); key.setScope(sValue);
}); });
this.leftPanelDisabled.subscribe(function (bValue) {
RL.pub('left-panel.' + (bValue ? 'off' : 'on'));
});
Globals.dropdownVisibility.subscribe(function (bValue) { Globals.dropdownVisibility.subscribe(function (bValue) {
if (bValue) if (bValue)
{ {

View file

@ -15,7 +15,7 @@
#rl-center { #rl-center {
.g-ui-absolute-reset; .g-ui-absolute-reset;
min-width: 700px; min-width: 600px;
min-height: 400px; 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 { #rl-left {
width: 150px; width: 160px;
} }
#rl-right { #rl-right {
left: 150px; left: 160px;
} }
#rl-sub-left { #rl-sub-left {
width: 340px; width: 350px;
.messageList .inputSearch { .messageList .inputSearch {
width: 220px; width: 220px;
@ -127,7 +127,7 @@ html.ssm-state-tablet {
} }
#rl-sub-right { #rl-sub-right {
left: 340px; left: 350px;
} }
.b-compose.modal { .b-compose.modal {
@ -139,33 +139,15 @@ html.ssm-state-tablet {
} }
} }
html.ssm-state-mobile { html.rl-left-panel-disabled {
#rl-left { #rl-left {
width: 120px; width: 5px !important;
display: none;
} }
#rl-right { #rl-right {
left: 120px; left: 5px !important;
}
#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;
} }
} }

View file

@ -12,6 +12,7 @@ function AdminPaneViewModel()
this.version = ko.observable(RL.settingsGet('Version')); this.version = ko.observable(RL.settingsGet('Version'));
this.adminManLoadingVisibility = RL.data().adminManLoadingVisibility; this.adminManLoadingVisibility = RL.data().adminManLoadingVisibility;
this.leftPanelDisabled = RL.data().leftPanelDisabled;
Knoin.constructorEnd(this); Knoin.constructorEnd(this);
} }

View file

@ -15,6 +15,8 @@ function MailBoxFolderListViewModel()
this.folderListSystem = oData.folderListSystem; this.folderListSystem = oData.folderListSystem;
this.foldersChanging = oData.foldersChanging; this.foldersChanging = oData.foldersChanging;
this.leftPanelDisabled = oData.leftPanelDisabled;
this.iDropOverTimer = 0; this.iDropOverTimer = 0;
this.allowContacts = !!RL.settingsGet('ContactsIsAllowed'); this.allowContacts = !!RL.settingsGet('ContactsIsAllowed');

View file

@ -26,6 +26,7 @@ function MailBoxMessageListViewModel()
this.folderMenuForMove = oData.folderMenuForMove; this.folderMenuForMove = oData.folderMenuForMove;
this.useCheckboxesInList = oData.useCheckboxesInList; this.useCheckboxesInList = oData.useCheckboxesInList;
this.leftPanelDisabled = oData.leftPanelDisabled;
this.mainMessageListSearch = oData.mainMessageListSearch; this.mainMessageListSearch = oData.mainMessageListSearch;
this.messageListEndFolder = oData.messageListEndFolder; this.messageListEndFolder = oData.messageListEndFolder;

View file

@ -8,6 +8,8 @@ function SettingsPaneViewModel()
{ {
KnoinAbstractViewModel.call(this, 'Right', 'SettingsPane'); KnoinAbstractViewModel.call(this, 'Right', 'SettingsPane');
this.leftPanelDisabled = RL.data().leftPanelDisabled;
Knoin.constructorEnd(this); Knoin.constructorEnd(this);
} }

View file

@ -2,7 +2,7 @@
"name": "RainLoop", "name": "RainLoop",
"title": "RainLoop Webmail", "title": "RainLoop Webmail",
"version": "1.6.5", "version": "1.6.5",
"release": "909", "release": "910",
"description": "Simple, modern & fast web-based email client", "description": "Simple, modern & fast web-based email client",
"homepage": "http://rainloop.net", "homepage": "http://rainloop.net",
"main": "Gruntfile.js", "main": "Gruntfile.js",

View file

@ -13,6 +13,12 @@
<i class="icon-power"></i> <i class="icon-power"></i>
</a> </a>
</div> </div>
<div class="btn-group pull-right">&nbsp;</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> </div>
<div class="b-content" data-bind="nano: true"> <div class="b-content" data-bind="nano: true">

View file

@ -6,6 +6,9 @@
<a class="btn buttonContacts" data-tooltip-placement="bottom" data-bind="visible: allowContacts, click: contactsClick, tooltip: 'FOLDER_LIST/BUTTON_CONTACTS'"> <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> <i class="icon-address-book"></i>
</a> </a>
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(true); }">
<i class="icon-resize"></i>
</a>
</div> </div>
<div class="b-content" data-bind="nano: true"> <div class="b-content" data-bind="nano: true">
<div class="content g-scrollbox"> <div class="content g-scrollbox">

View file

@ -3,6 +3,11 @@
data-bind="css: {'message-selected': isMessageSelected, 'message-focused': message.focused, 'loading': messageListCompleteLoadingThrottle, 'hideMessageListCheckbox': !useCheckboxesInList() }"> data-bind="css: {'message-selected': isMessageSelected, 'message-focused': message.focused, 'loading': messageListCompleteLoadingThrottle, 'hideMessageListCheckbox': !useCheckboxesInList() }">
<div class="toolbar"> <div class="toolbar">
<div class="btn-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"> <div class="btn-group">
<a class="btn buttonReload" data-tooltip-placement="bottom" data-bind="command: reloadCommand, tooltip: 'MESSAGE_LIST/BUTTON_RELOAD'"> <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> <i class="icon-spinner" data-bind="css: {'animated': messageListCompleteLoadingThrottle}"></i>

View file

@ -1,6 +1,7 @@
<div id="rl-sub-right"> <div id="rl-sub-right">
<div class="messageView" data-bind="css: {'message-selected': isMessageSelected, 'message-focused': message.focused}"> <div class="messageView" data-bind="css: {'message-selected': isMessageSelected, 'message-focused': message.focused}">
<div class="toolbar g-ui-user-select-none"> <div class="toolbar g-ui-user-select-none">
<nobr>
<div class="messageButtons btn-toolbar"> <div class="messageButtons btn-toolbar">
<div class="btn-group" data-tooltip-placement="bottom" data-bind="visible: !usePreviewPane(), tooltip: 'MESSAGE/BUTTON_CLOSE'"> <div class="btn-group" data-tooltip-placement="bottom" data-bind="visible: !usePreviewPane(), tooltip: 'MESSAGE/BUTTON_CLOSE'">
<a class="btn buttonClose" data-bind="command: closeMessage"> <a class="btn buttonClose" data-bind="command: closeMessage">
@ -120,6 +121,7 @@
</a> </a>
</div> </div>
</div> </div>
</nobr>
</div> </div>
<div class="b-content thm-message-view-background-color"> <div class="b-content thm-message-view-background-color">
<div> <div>

View file

@ -6,6 +6,10 @@
&nbsp;&nbsp; &nbsp;&nbsp;
<span class="i18n" data-i18n-text="SETTINGS_LABELS/BUTTON_BACK"></span> <span class="i18n" data-i18n-text="SETTINGS_LABELS/BUTTON_BACK"></span>
</a> </a>
&nbsp;&nbsp;
<a class="btn buttonResize" data-bind="visible: leftPanelDisabled, click: function () { leftPanelDisabled(false); }">
<i class="icon-resize"></i>
</a>
</div> </div>
</div> </div>
<div class="b-content" data-bind="nano: true"> <div class="b-content" data-bind="nano: true">

View file

@ -6926,7 +6926,7 @@ html.mobile * {
margin: 0; margin: 0;
border: 0; border: 0;
z-index: 0; z-index: 0;
min-width: 700px; min-width: 600px;
min-height: 400px; min-height: 400px;
} }
#rl-top { #rl-top {
@ -7025,48 +7025,41 @@ html.ssm-state-desktop #rl-sub-left {
html.ssm-state-desktop #rl-sub-right { html.ssm-state-desktop #rl-sub-right {
left: 400px; left: 400px;
} }
html.ssm-state-tablet #rl-left { 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-mobile #rl-left { html.ssm-state-mobile #rl-left {
width: 120px; width: 160px;
} }
html.ssm-state-tablet #rl-right,
html.ssm-state-mobile #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 { 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 { html.ssm-state-mobile #rl-sub-left .messageList .inputSearch {
width: 220px; width: 220px;
} }
html.ssm-state-tablet #rl-sub-right,
html.ssm-state-mobile #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 { html.ssm-state-mobile .b-compose.modal {
width: 800px; width: 800px;
} }
html.ssm-state-tablet .b-contacts-content.modal,
html.ssm-state-mobile .b-contacts-content.modal { html.ssm-state-mobile .b-contacts-content.modal {
width: 800px; 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 { .ui-resizable-helper {
border-right: 5px solid #777; border-right: 5px solid #777;
border-right-color: rgba(255, 255, 255, 0.7); border-right-color: rgba(255, 255, 255, 0.7);

File diff suppressed because one or more lines are too long

View file

@ -1815,18 +1815,18 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
} }
}, },
// fDisable = function (bDisable) { fDisable = function (bDisable) {
// if (bDisable) if (bDisable)
// { {
// oLeft.resizable('disable'); oLeft.resizable('disable');
// fSetWidth(5); fSetWidth(5);
// } }
// else else
// { {
// oLeft.resizable('enable'); oLeft.resizable('enable');
// fSetWidth(RL.local().get(sClientSideKeyName) || 150); fSetWidth(RL.local().get(sClientSideKeyName) || 170);
// } }
// }, },
fResizeFunction = function (oEvent, oObject) { fResizeFunction = function (oEvent, oObject) {
if (oObject && oObject.size && oObject.size.width) if (oObject && oObject.size && oObject.size.width)
@ -1847,19 +1847,19 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
oLeft.resizable({ oLeft.resizable({
'helper': 'ui-resizable-helper', 'helper': 'ui-resizable-helper',
'minWidth': 120, 'minWidth': 170,
'maxWidth': 400, 'maxWidth': 400,
'handles': 'e', 'handles': 'e',
'stop': fResizeFunction 'stop': fResizeFunction
}); });
// RL.sub('ssm.mobile-enter', function () { RL.sub('left-panel.off', function () {
// fDisable(true); fDisable(true);
// }); });
//
// RL.sub('ssm.mobile-leave', function () { RL.sub('left-panel.on', function () {
// fDisable(false); fDisable(false);
// }); });
}; };
/** /**
@ -5650,6 +5650,7 @@ function AdminPaneViewModel()
this.version = ko.observable(RL.settingsGet('Version')); this.version = ko.observable(RL.settingsGet('Version'));
this.adminManLoadingVisibility = RL.data().adminManLoadingVisibility; this.adminManLoadingVisibility = RL.data().adminManLoadingVisibility;
this.leftPanelDisabled = RL.data().leftPanelDisabled;
Knoin.constructorEnd(this); Knoin.constructorEnd(this);
} }
@ -6654,6 +6655,7 @@ AdminLicensing.prototype.licenseExpiredMomentValue = function ()
*/ */
function AbstractData() function AbstractData()
{ {
this.leftPanelDisabled = ko.observable(false);
this.useKeyboardShortcuts = ko.observable(true); this.useKeyboardShortcuts = ko.observable(true);
this.keyScopeReal = ko.observable(Enums.KeyState.All); this.keyScopeReal = ko.observable(Enums.KeyState.All);
@ -6693,6 +6695,10 @@ function AbstractData()
key.setScope(sValue); key.setScope(sValue);
}); });
this.leftPanelDisabled.subscribe(function (bValue) {
RL.pub('left-panel.' + (bValue ? 'off' : 'on'));
});
Globals.dropdownVisibility.subscribe(function (bValue) { Globals.dropdownVisibility.subscribe(function (bValue) {
if (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(); ssm.ready();
}; };

File diff suppressed because one or more lines are too long

View file

@ -1819,18 +1819,18 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
} }
}, },
// fDisable = function (bDisable) { fDisable = function (bDisable) {
// if (bDisable) if (bDisable)
// { {
// oLeft.resizable('disable'); oLeft.resizable('disable');
// fSetWidth(5); fSetWidth(5);
// } }
// else else
// { {
// oLeft.resizable('enable'); oLeft.resizable('enable');
// fSetWidth(RL.local().get(sClientSideKeyName) || 150); fSetWidth(RL.local().get(sClientSideKeyName) || 170);
// } }
// }, },
fResizeFunction = function (oEvent, oObject) { fResizeFunction = function (oEvent, oObject) {
if (oObject && oObject.size && oObject.size.width) if (oObject && oObject.size && oObject.size.width)
@ -1851,19 +1851,19 @@ Utils.initLayoutResizer = function (sLeft, sRight, sClientSideKeyName)
oLeft.resizable({ oLeft.resizable({
'helper': 'ui-resizable-helper', 'helper': 'ui-resizable-helper',
'minWidth': 120, 'minWidth': 170,
'maxWidth': 400, 'maxWidth': 400,
'handles': 'e', 'handles': 'e',
'stop': fResizeFunction 'stop': fResizeFunction
}); });
// RL.sub('ssm.mobile-enter', function () { RL.sub('left-panel.off', function () {
// fDisable(true); fDisable(true);
// }); });
//
// RL.sub('ssm.mobile-leave', function () { RL.sub('left-panel.on', function () {
// fDisable(false); fDisable(false);
// }); });
}; };
/** /**
@ -11787,6 +11787,8 @@ function MailBoxFolderListViewModel()
this.folderListSystem = oData.folderListSystem; this.folderListSystem = oData.folderListSystem;
this.foldersChanging = oData.foldersChanging; this.foldersChanging = oData.foldersChanging;
this.leftPanelDisabled = oData.leftPanelDisabled;
this.iDropOverTimer = 0; this.iDropOverTimer = 0;
this.allowContacts = !!RL.settingsGet('ContactsIsAllowed'); this.allowContacts = !!RL.settingsGet('ContactsIsAllowed');
@ -11989,6 +11991,7 @@ function MailBoxMessageListViewModel()
this.folderMenuForMove = oData.folderMenuForMove; this.folderMenuForMove = oData.folderMenuForMove;
this.useCheckboxesInList = oData.useCheckboxesInList; this.useCheckboxesInList = oData.useCheckboxesInList;
this.leftPanelDisabled = oData.leftPanelDisabled;
this.mainMessageListSearch = oData.mainMessageListSearch; this.mainMessageListSearch = oData.mainMessageListSearch;
this.messageListEndFolder = oData.messageListEndFolder; this.messageListEndFolder = oData.messageListEndFolder;
@ -13555,6 +13558,8 @@ function SettingsPaneViewModel()
{ {
KnoinAbstractViewModel.call(this, 'Right', 'SettingsPane'); KnoinAbstractViewModel.call(this, 'Right', 'SettingsPane');
this.leftPanelDisabled = RL.data().leftPanelDisabled;
Knoin.constructorEnd(this); Knoin.constructorEnd(this);
} }
@ -14930,6 +14935,7 @@ SettingsOpenPGP.prototype.deleteOpenPgpKey = function (oOpenPgpKeyToRemove)
*/ */
function AbstractData() function AbstractData()
{ {
this.leftPanelDisabled = ko.observable(false);
this.useKeyboardShortcuts = ko.observable(true); this.useKeyboardShortcuts = ko.observable(true);
this.keyScopeReal = ko.observable(Enums.KeyState.All); this.keyScopeReal = ko.observable(Enums.KeyState.All);
@ -14969,6 +14975,10 @@ function AbstractData()
key.setScope(sValue); key.setScope(sValue);
}); });
this.leftPanelDisabled.subscribe(function (bValue) {
RL.pub('left-panel.' + (bValue ? 'off' : 'on'));
});
Globals.dropdownVisibility.subscribe(function (bValue) { Globals.dropdownVisibility.subscribe(function (bValue) {
if (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(); ssm.ready();
}; };

File diff suppressed because one or more lines are too long