More responsive interface with auto resize (#10)

This commit is contained in:
RainLoop Team 2013-12-30 01:13:35 +04:00
parent acf80b96a3
commit 17b2afcf22
32 changed files with 1093 additions and 296 deletions

View file

@ -260,4 +260,54 @@ AbstractApp.prototype.bootstart = function ()
_.delay(function () {
Utils.windowResize();
}, 1000);
ssm.addState({
id: 'mobile',
maxWidth: 767,
onEnter: function(){
$html.addClass('ssm-state-mobile');
},
onLeave: function(){
$html.removeClass('ssm-state-mobile');
}
});
ssm.addState({
id: 'tablet',
minWidth: 768,
maxWidth: 1023,
onEnter: function(){
$html.addClass('ssm-state-tablet');
},
onLeave: function(){
$html.removeClass('ssm-state-tablet');
}
});
ssm.addState({
id: 'desktop',
minWidth: 1000,
maxWidth: 1366,
onEnter: function(){
$html.addClass('ssm-state-desktop');
},
onLeave: function(){
$html.removeClass('ssm-state-desktop');
}
});
ssm.addState({
id: 'desktop-large',
minWidth: 1367,
onEnter: function(){
$html.addClass('ssm-state-desktop-large');
},
onLeave: function(){
$html.removeClass('ssm-state-desktop-large');
}
});
_.delay(function () {
ssm.ready();
}, 500);
};

View file

@ -222,13 +222,13 @@ AdminApp.prototype.bootstart = function ()
kn.startScreens([AdminSettingsScreen]);
if (!Globals.bMobileDevice)
{
_.defer(function () {
Utils.initLayoutResizer('#rl-top-resizer-left', '#rl-top-resizer-right', '#rl-center',
120, 300, 200, 600, Enums.ClientSideKeyName.FolderListSize);
});
}
// if (!Globals.bMobileDevice)
// {
// _.defer(function () {
// Utils.initLayoutResizer('#rl-top-resizer-left', '#rl-top-resizer-right', '#rl-center',
// 120, 300, 200, 600, Enums.ClientSideKeyName.FolderListSize);
// });
// }
}
else
{

View file

@ -848,13 +848,13 @@ RainLoopApp.prototype.bootstart = function ()
window.SimplePace.set(100);
}
if (!Globals.bMobileDevice)
{
_.defer(function () {
Utils.initLayoutResizer('#rl-top-resizer-left', '#rl-top-resizer-right', '#rl-center',
120, 300, 200, 600, Enums.ClientSideKeyName.FolderListSize);
});
}
// if (!Globals.bMobileDevice)
// {
// _.defer(function () {
// Utils.initLayoutResizer('#rl-top-resizer-left', '#rl-top-resizer-right', '#rl-center',
// 120, 300, 200, 600, Enums.ClientSideKeyName.FolderListSize);
// });
// }
}, this));
}

View file

@ -113,16 +113,16 @@ MailBoxScreen.prototype.onStart = function ()
}, this);
};
MailBoxScreen.prototype.onBuild = function ()
{
if (!Globals.bMobileDevice)
{
_.defer(function () {
Utils.initLayoutResizer('#rl-resizer-left', '#rl-resizer-right', '#rl-right',
350, 800, 350, 350, Enums.ClientSideKeyName.MailBoxListSize);
});
}
};
//MailBoxScreen.prototype.onBuild = function ()
//{
// if (!Globals.bMobileDevice)
// {
// _.defer(function () {
// Utils.initLayoutResizer('#rl-resizer-left', '#rl-resizer-right', '#rl-right',
// 350, 800, 350, 350, Enums.ClientSideKeyName.MailBoxListSize);
// });
// }
//};
/**
* @return {Array}

View file

@ -67,6 +67,25 @@ html.rl-started-trigger.no-mobile #rl-content {
.rl-anim {
&.csstransitions.no-mobile {
#rl-left {
.transition(width 0.3s ease-out);
}
#rl-right {
.transition(left 0.3s ease-out);
}
#rl-sub-left, #rl-sub-left .messageList .inputSearch {
.transition(width 0.3s ease-out);
}
#rl-sub-right {
.transition(left 0.3s ease-out);
}
}
&.csstransitions.no-mobile #rl-content {
.transition(opacity 0.3s ease-out);
}

View file

@ -1,5 +1,5 @@
@contacts-popup-left-width: 270px;
@contacts-popup-left-width: 250px;
.b-contacts-content {

View file

@ -1,4 +1,13 @@
#rl-bg {
z-index: -1;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
#rl-content {
height: 100%;
width: 100%;
@ -6,7 +15,7 @@
#rl-center {
.g-ui-absolute-reset;
min-width: 900px;
min-width: 700px;
min-height: 400px;
}
@ -18,6 +27,7 @@
#rl-bottom {
.g-ui-absolute-reset;
top: auto;
z-index: 1;
}
@ -26,82 +36,149 @@
.g-ui-absolute-reset;
right: auto;
width: 100%;
width: @rlLeftWidth;
}
#rl-right {
.g-ui-absolute-reset;
z-index: 1;
}
#rl-resizer-right {
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 35%;
}
#rl-resizer-left {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 65%;
min-width: 350px;
}
#rl-top-resizer-right {
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: @rlLeftWidth;
}
#rl-top-resizer-left {
#rl-sub-left {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: auto;
// width: @rlLeftWidth;
min-width: 120px;
width: 350px;
}
#rl-bg {
z-index: -1;
#rl-sub-right {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
top: 0;
bottom: 0;
left: 350px;
}
html.mobile {
#rl-top-resizer-left {
width: @rlLeftWidth - 60;
html.ssm-state-desktop-large {
#rl-left {
width: @rlLeftWidth + 20;
}
#rl-top-resizer-right {
left: @rlLeftWidth - 60;
#rl-right {
left: @rlLeftWidth + 20;
}
#rl-resizer-left {
#rl-sub-left {
width: 500px;
}
#rl-sub-right {
left: 500px;
}
.b-compose.modal {
width: 1000px;
}
.b-contacts-content.modal {
width: 1000px;
}
}
html.ssm-state-desktop {
#rl-left {
width: @rlLeftWidth;
}
#rl-right {
left: @rlLeftWidth;
}
#rl-sub-left {
width: 350px;
}
#rl-resizer-right {
#rl-sub-right {
left: 350px;
}
}
html.ssm-state-tablet {
#rl-left {
width: 150px;
}
#rl-right {
left: 150px;
}
#rl-sub-left {
width: 320px;
.messageList .inputSearch {
width: 230px;
}
}
#rl-sub-right {
left: 320px;
}
.b-compose.modal {
width: 700px;
}
.b-contacts-content.modal {
width: 700px;
}
}
html.ssm-state-mobile {
#rl-left {
width: 120px;
}
#rl-right {
left: 120px;
}
#rl-sub-left {
width: 280px;
.messageList .inputSearch {
width: 200px;
}
}
#rl-sub-right {
left: 280px;
}
.b-compose.modal {
width: 600px;
}
.b-contacts-content.modal {
width: 600px;
}
}
html.rl-no-preview-pane {
#rl-resizer-left {
#rl-sub-left {
right: @rlBottomMargin !important;
width: inherit;
.messageList .inputSearch {
width: 300px !important;
}
}
#rl-resizer-right {
#rl-sub-right {
left: 0 !important;
}

View file

@ -1,96 +1,97 @@
.rl-view-model {
&.RL-Login, &.RL-LoginNew, &.RL-AdminLogin {
height: 100%;
}
}
.b-login-content {
height: 100%;
text-align: center;
margin-left: -230px;
.loginFormWrapper {
display: inline-block;
vertical-align: middle;
text-align: center;
width: 380px;
.loginForm {
background-color: #efefef;
text-align: left;
color: #333;
margin: 0;
float: none;
}
.control-label {
font-size: 16px;
line-height: 30px;
}
.control-group {
margin-bottom: 25px;
}
.wrapper {
padding: 40px 40px 10px 40px;
}
#recaptcha_image img {
border: 1px solid #ccc;
.border-radius(3px);
}
.inputLoginForm, .inputEmail, .inputLogin, .inputPassword {
font-size: 18px;
height: 30px;
line-height: 29px;
}
.signMeLabel {
margin-top: 5px;
}
.input-append .add-on {
position: relative;
height: 30px;
background: none;
margin-left: -35px;
z-index: 1000;
border: 0px;
}
.input-append .add-on i {
font-size: 17px;
line-height: 29px;
color: #999;
}
.control-group.error .add-on i {
color: #b94a48;
}
}
.buttonLogin {
margin: 0;
}
.alert {
margin: 0 0 20px 0;
text-align: left;
}
.loginAfter {
display: inline-block;
height: 90%;
vertical-align: middle;
width: 0px;
}
.flag-selector {
margin-bottom: 0;
}
}
.rl-view-model {
&.RL-Login, &.RL-LoginNew, &.RL-AdminLogin {
position: relative;
height: 100%;
z-index: 5;
}
}
.b-login-content {
height: 100%;
text-align: center;
.loginFormWrapper {
display: inline-block;
vertical-align: middle;
text-align: center;
width: 380px;
.loginForm {
background-color: #efefef;
text-align: left;
color: #333;
margin: 0;
float: none;
}
.control-label {
font-size: 16px;
line-height: 30px;
}
.control-group {
margin-bottom: 25px;
}
.wrapper {
padding: 40px 40px 10px 40px;
}
#recaptcha_image img {
border: 1px solid #ccc;
.border-radius(3px);
}
.inputLoginForm, .inputEmail, .inputLogin, .inputPassword {
font-size: 18px;
height: 30px;
line-height: 29px;
}
.signMeLabel {
margin-top: 5px;
}
.input-append .add-on {
position: relative;
height: 30px;
background: none;
margin-left: -35px;
z-index: 1000;
border: 0px;
}
.input-append .add-on i {
font-size: 17px;
line-height: 29px;
color: #999;
}
.control-group.error .add-on i {
color: #b94a48;
}
}
.buttonLogin {
margin: 0;
}
.alert {
margin: 0 0 20px 0;
text-align: left;
}
.loginAfter {
display: inline-block;
height: 90%;
vertical-align: middle;
width: 0px;
}
.flag-selector {
margin-bottom: 0;
}
}

View file

@ -14,7 +14,6 @@ html.rl-no-preview-pane {
left: 0;
height: 30px;
padding: 10px @rlMainBorderSize;
min-width: 280px;
z-index: 102;
}
@ -25,7 +24,6 @@ html.rl-no-preview-pane {
left: 0;
height: 30px;
padding: 7px;
min-width: 300px;
z-index: 101;
background-color: #eee;
@ -76,7 +74,6 @@ html.rl-no-preview-pane {
left: 0;
height: 29px;
padding: 10px 8px 10px 11px;
min-width: 280px;
z-index: 101;
background-color: #eee;
@ -117,7 +114,6 @@ html.rl-no-preview-pane {
overflow-x: hidden;
overflow-y: auto;
z-index: 101;
min-width: 300px;
.box-sizing(border-box);

View file

@ -1,28 +1,28 @@
@rlSyncFile: "images/sync.gif";
@rlSyncFileStop: "images/sync.png";
@rlEditorSprite: "images/editor.png";
@rlLeftWidth: 230px;
@rlInputBorderSize: 1px;
@rlMainBorderSize: 1px;
@rlLowBorderSize: 1px;
@rlMainBorderRadius: 5px;
@rlLowBorderRadius: 3px;
@rlMainShadow: 0px 2px 8px rgba(0, 0, 0, 0.3);
@rlLowMargin: 8px;
@rlBottomMargin: 5px;
@rlMainDarkColor: #aaa;
@rlMessageDelimiterColor: #999;
// bootstart
@btnBorderRadius: 2px;
@tooltipColor: #eee;
@tooltipBackground: #333;
@tooltipArrowWidth: 5px;
@tooltipArrowColor: #333;
@rlSyncFile: "images/sync.gif";
@rlSyncFileStop: "images/sync.png";
@rlEditorSprite: "images/editor.png";
@rlLeftWidth: 200px;
@rlInputBorderSize: 1px;
@rlMainBorderSize: 1px;
@rlLowBorderSize: 1px;
@rlMainBorderRadius: 5px;
@rlLowBorderRadius: 3px;
@rlMainShadow: 0px 2px 8px rgba(0, 0, 0, 0.3);
@rlLowMargin: 8px;
@rlBottomMargin: 5px;
@rlMainDarkColor: #aaa;
@rlMessageDelimiterColor: #999;
// bootstart
@btnBorderRadius: 2px;
@tooltipColor: #eee;
@tooltipBackground: #333;
@tooltipArrowWidth: 5px;
@tooltipArrowColor: #333;

View file

@ -6,7 +6,7 @@
*/
function AdminLoginViewModel()
{
KnoinAbstractViewModel.call(this, 'Right', 'AdminLogin');
KnoinAbstractViewModel.call(this, 'Center', 'AdminLogin');
this.login = ko.observable('');
this.password = ko.observable('');

View file

@ -6,7 +6,7 @@
*/
function LoginViewModel()
{
KnoinAbstractViewModel.call(this, 'Right', 'Login');
KnoinAbstractViewModel.call(this, 'Center', 'Login');
var oData = RL.data();