Make layout fully responsive using matchMedia('(max-width: 799px)')

This commit is contained in:
the-djmaze 2023-02-23 13:54:32 +01:00
parent 1dbd9bda0c
commit e1833ae032
64 changed files with 239 additions and 434 deletions

View file

@ -96,7 +96,7 @@ export const EditorDefaultType = {
* @enum {number} * @enum {number}
*/ */
export const Layout = { export const Layout = {
NoPreview: 0, // NoPreview: 0,
SidePreview: 1, SidePreview: 1,
BottomPreview: 2 BottomPreview: 2
}; };

View file

@ -86,7 +86,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
layoutTypes: () => { layoutTypes: () => {
translateTrigger(); translateTrigger();
return [ return [
{ id: Layout.NoPreview, name: i18n('SETTINGS_GENERAL/LAYOUT_NO_SPLIT') }, { id: 0, name: i18n('SETTINGS_GENERAL/LAYOUT_NO_SPLIT') },
{ id: Layout.SidePreview, name: i18n('SETTINGS_GENERAL/LAYOUT_VERTICAL_SPLIT') }, { id: Layout.SidePreview, name: i18n('SETTINGS_GENERAL/LAYOUT_VERTICAL_SPLIT') },
{ id: Layout.BottomPreview, name: i18n('SETTINGS_GENERAL/LAYOUT_HORIZONTAL_SPLIT') } { id: Layout.BottomPreview, name: i18n('SETTINGS_GENERAL/LAYOUT_HORIZONTAL_SPLIT') }
]; ];

View file

@ -8,6 +8,9 @@ import { addSubscribablesTo } from 'External/ko';
let __themeTimer = 0; let __themeTimer = 0;
export const export const
// Also see Styles/_Values.less @maxMobileWidth
isMobile = matchMedia('(max-width: 799px)'),
ThemeStore = { ThemeStore = {
theme: ko.observable(''), theme: ko.observable(''),
themes: ko.observableArray(), themes: ko.observableArray(),
@ -16,7 +19,7 @@ export const
fontSansSerif: ko.observable(''), fontSansSerif: ko.observable(''),
fontSerif: ko.observable(''), fontSerif: ko.observable(''),
fontMono: ko.observable(''), fontMono: ko.observable(''),
isMobile: ko.observable($htmlCL.contains('rl-mobile')), isMobile: ko.observable(false),
populate: () => { populate: () => {
const themes = Settings.app('themes'); const themes = Settings.app('themes');
@ -62,8 +65,6 @@ export const
convertThemeName = theme => theme.replace(/@[a-z]+$/, '').replace(/([A-Z])/g, ' $1').trim(); convertThemeName = theme => theme.replace(/@[a-z]+$/, '').replace(/([A-Z])/g, ' $1').trim();
addSubscribablesTo(ThemeStore, { addSubscribablesTo(ThemeStore, {
isMobile: value => $htmlCL.toggle('rl-mobile', value),
fontSansSerif: value => { fontSansSerif: value => {
if (null != value) { if (null != value) {
let cl = appEl.classList; let cl = appEl.classList;
@ -97,3 +98,9 @@ addSubscribablesTo(ThemeStore, {
appEl.style.backgroundImage = value ? "url("+serverRequestRaw('UserBackground', value)+")" : null; appEl.style.backgroundImage = value ? "url("+serverRequestRaw('UserBackground', value)+")" : null;
} }
}); });
isMobile.onchange = e => {
ThemeStore.isMobile(e.matches);
$htmlCL.toggle('rl-mobile', e.matches);
};
isMobile.onchange(isMobile);

View file

@ -49,11 +49,10 @@ export const SettingsUserStore = new class {
self.init(); self.init();
self.usePreviewPane = koComputable(() => Layout.NoPreview !== self.layout() && !ThemeStore.isMobile()); self.usePreviewPane = koComputable(() => self.layout() && !ThemeStore.isMobile());
const toggleLayout = () => { const toggleLayout = () => {
const value = ThemeStore.isMobile() ? Layout.NoPreview : self.layout(); const value = ThemeStore.isMobile() ? 0 : self.layout();
$htmlCL.toggle('rl-no-preview-pane', Layout.NoPreview === value);
$htmlCL.toggle('rl-side-preview-pane', Layout.SidePreview === value); $htmlCL.toggle('rl-side-preview-pane', Layout.SidePreview === value);
$htmlCL.toggle('rl-bottom-preview-pane', Layout.BottomPreview === value); $htmlCL.toggle('rl-bottom-preview-pane', Layout.BottomPreview === value);
fireEvent('rl-layout', value); fireEvent('rl-layout', value);

View file

@ -73,7 +73,7 @@
} }
/* desktop */ /* desktop */
@media screen and (min-width: 1000px) { @media screen and (min-width: @maxMobileWidth + 1px) {
.toggleLeft { .toggleLeft {
display: none; display: none;
} }
@ -86,8 +86,7 @@
} }
} }
/* mobile and tablet */ @media screen and (max-width: @maxMobileWidth) {
@media screen and (max-width: 999px) {
#rl-right { #rl-right {
min-width: calc(100% - @rlLowMargin); min-width: calc(100% - @rlLowMargin);
} }

View file

@ -4,7 +4,7 @@ html.list-loading body {
cursor: progress; cursor: progress;
} }
@media screen and (min-width: 1000px) { @media screen and (min-width: @maxMobileWidth + 1px) {
#rl-app { #rl-app {
background-image: var(--main-bg-image); background-image: var(--main-bg-image);
background-size: var(--main-bg-size); background-size: var(--main-bg-size);
@ -73,13 +73,14 @@ dialog:not(.animate) {
/** /**
* https://github.com/the-djmaze/snappymail/issues/686 * https://github.com/the-djmaze/snappymail/issues/686
@media screen and (max-width: 999px) {
*/ */
.rl-mobile dialog { @media screen and (max-width: @maxMobileWidth) {
dialog {
margin: 0 auto; margin: 0 auto;
/* max-height: calc(100vh - 86px);*/ /* max-height: calc(100vh - 86px);*/
/* max-height: 100dvh;*/ /* max-height: 100dvh;*/
width: 100%; width: 100%;
}
} }
dialog > header { dialog > header {

View file

@ -171,8 +171,7 @@ summary.legend {
color: var(--error-clr, #b94a48); color: var(--error-clr, #b94a48);
} }
/* mobile and tablet */ @media screen and (max-width: @maxMobileWidth) {
@media screen and (max-width: 999px) {
.form-horizontal { .form-horizontal {
.control-group { .control-group {
> label { > label {

View file

@ -10,7 +10,7 @@
100% {background-position: 60px 0;} 100% {background-position: 60px 0;}
} }
@media screen and (min-width: 1000px) { @media screen and (min-width: @maxMobileWidth + 1px) {
.b-folders li .anim-action-class { .b-folders li .anim-action-class {
animation: highlight-folder-row 0.5s linear; animation: highlight-folder-row 0.5s linear;

View file

@ -195,7 +195,7 @@
} }
} }
html:not(.rl-mobile) { @media screen and (min-width: @maxMobileWidth + 1px) {
.hideContactListCheckbox { .hideContactListCheckbox {
.checkboxItem { .checkboxItem {
visibility: hidden; visibility: hidden;

View file

@ -44,7 +44,6 @@
} }
.b-toolbar { .b-toolbar {
padding: 10px 0 10px @rlLowMargin;
color: #fff; color: #fff;
} }

View file

@ -12,6 +12,10 @@
/* transition: width 0.3s ease-out;*/ /* transition: width 0.3s ease-out;*/
width: @rlLeftWidth; width: @rlLeftWidth;
z-index: 0; z-index: 0;
.b-toolbar {
padding: 10px 0 10px @rlLowMargin;
}
} }
#rl-right:not([hidden]) { #rl-right:not([hidden]) {
@ -19,9 +23,6 @@
flex-grow: 1; flex-grow: 1;
width: 20%; width: 20%;
} }
.rl-bottom-preview-pane #rl-right {
flex-direction: column;
}
/* /*
.resizable::after { .resizable::after {
@ -41,47 +42,12 @@
} }
*/ */
.resizer {
background: #aaa;
background: rgba(255,255,255,0.5);
display: none;
opacity: 0;
position: absolute;
z-index: 102;
}
.resizer:hover {
opacity: 1;
}
html:not(.rl-left-panel-disabled) #rl-left { html:not(.rl-left-panel-disabled) #rl-left {
resize: horizontal; overflow: auto; resize: horizontal; overflow: auto;
min-width: 155px; min-width: 155px;
max-width: 350px; max-width: 350px;
} }
#rl-left > .resizer,
.rl-side-preview-pane #V-MailMessageList .resizer {
cursor: ew-resize;
cursor: col-resize;
right: 0;
top: 0;
bottom: 0;
width: 5px;
}
.rl-bottom-preview-pane #V-MailMessageList .resizer {
cursor: ns-resize;
cursor: row-resize;
bottom: 0;
left: 0;
right: 0;
height: 5px;
}
html:not(.rl-left-panel-disabled) #rl-left > .resizer,
#V-MailMessageList .resizer {
display: block;
}
#top-system-dropdown-id::after, #top-system-dropdown-id::after,
#button-add-prop-dropdown-id::after { #button-add-prop-dropdown-id::after {
content: '▼'; content: '▼';
@ -140,38 +106,6 @@ html:not(.rl-left-panel-disabled) #rl-left > .resizer,
margin-right: 8px; margin-right: 8px;
} }
/* desktop */
@media screen and (min-width: 1000px) {
}
/* desktop-large */
@media screen and (min-width: 1401px) {
#rl-left {
width: @rlLeftWidth + 20;
}
}
/* mobile and tablet */
@media screen and (max-width: 999px) {
#rl-left {
width: 155px;
}
#rl-app {
#V-SettingsPane {
margin-right: 0;
}
#rl-settings-subscreen {
padding: 10px;
}
}
.dropdown-menu a {
line-height: 2.5;
}
}
html:not(.rl-ctrl-key-pressed) .visible-on-ctrl-btn, html:not(.rl-ctrl-key-pressed) .visible-on-ctrl-btn,
html.rl-ctrl-key-pressed .hidden-on-ctrl-btn, html.rl-ctrl-key-pressed .hidden-on-ctrl-btn,
.show-on-panel-disabled { .show-on-panel-disabled {
@ -197,32 +131,6 @@ html.rl-left-panel-disabled {
} }
} }
html.rl-mobile #rl-left > .resizer,
html.rl-no-preview-pane #rl-right .resizer {
display: none !important;
}
html.rl-mobile {
#rl-left {
background: var(--main-bg-color, #aaa);
border-right: 1px solid var(--border-color, #ddd);
position: fixed;
left: 0;
top: 0;
bottom: 0;
width: 50vw;
z-index: 3;
}
&.rl-left-panel-disabled #rl-left {
display: none;
}
}
html.rl-mobile .hide-mobile,
html:not(.rl-mobile) .show-mobile {
display: none !important;
}
.e-paginator { .e-paginator {
a { a {
@ -243,3 +151,94 @@ html:not(.rl-mobile) .show-mobile {
} }
} }
} }
@media screen and (max-width: @maxMobileWidth) {
#rl-app {
#V-SettingsPane {
margin-right: 0;
}
#rl-settings-subscreen {
padding: 10px;
}
}
#rl-left {
background: var(--main-bg-color, #aaa);
border-right: 1px solid var(--border-color, #ddd);
position: fixed;
left: 0;
top: 0;
bottom: 0;
width: 155px;
z-index: 3;
}
.rl-left-panel-disabled #rl-left {
display: none;
}
.dropdown-menu a {
line-height: 2.5;
}
.hide-mobile,
#rl-left .resizer,
#rl-right .resizer {
display: none !important;
}
}
/* desktop */
@media screen and (min-width: @maxMobileWidth + 1px) {
.toggleLeft,
#V-MailMessageList .buttonCompose {
display: none !important;
}
.rl-bottom-preview-pane #rl-right {
flex-direction: column;
}
.resizer {
background: #aaa;
background: rgba(255,255,255,0.5);
display: none;
opacity: 0;
position: absolute;
z-index: 102;
}
.resizer:hover {
opacity: 1;
}
#rl-left > .resizer,
.rl-side-preview-pane #V-MailMessageList .resizer {
cursor: ew-resize;
cursor: col-resize;
right: 0;
top: 0;
bottom: 0;
width: 5px;
}
.rl-bottom-preview-pane #V-MailMessageList .resizer {
cursor: ns-resize;
cursor: row-resize;
bottom: 0;
left: 0;
right: 0;
height: 5px;
}
html:not(.rl-left-panel-disabled) #rl-left > .resizer,
#V-MailMessageList .resizer {
display: block;
}
html:not(.rl-bottom-preview-pane):not(.rl-side-preview-pane) #rl-right .resizer {
display: none !important;
}
}
/* desktop-large */
@media screen and (min-width: 1401px) {
#rl-left {
width: @rlLeftWidth + 20;
}
}

View file

@ -1,34 +1,7 @@
html.rl-mobile, html.rl-no-preview-pane {
.message-selected #V-MailMessageList {
display: none;
}
}
#V-MailMessageList { #V-MailMessageList {
position: relative; position: relative;
} }
.rl-side-preview-pane #V-MailMessageList {
height: 100%;
}
.rl-no-preview-pane #V-MailMessageList {
height: 100%;
width: 100%;
}
.rl-side-preview-pane #V-MailMessageList .messageList {
max-width: 50vw;
min-width: 320px;
overflow: auto;
resize: horizontal;
width: 35vw;
}
.rl-bottom-preview-pane #V-MailMessageList .messageList {
height: 35vh;
max-height: 50vh;
min-height: 200px;
overflow: auto;
resize: vertical;
}
#V-MailMessageList.focused .messageList { #V-MailMessageList.focused .messageList {
border-color: #9d9d9d; border-color: #9d9d9d;
@ -196,18 +169,6 @@ html.rl-mobile, html.rl-no-preview-pane {
} }
} }
html:not(.rl-mobile) {
.hideMessageListCheckbox {
.checkboxCheckAll {
visibility: hidden;
}
.messageCheckbox {
display: none;
}
}
}
.messageListItem > div + div { .messageListItem > div + div {
display: flex; display: flex;
overflow: hidden; overflow: hidden;
@ -396,12 +357,50 @@ html:not(.rl-mobile) {
} }
} }
@media screen and (min-width: 1000px) { html:not(.rl-bottom-preview-pane):not(.rl-side-preview-pane) {
.message-selected #V-MailMessageList {
display: none;
}
#V-MailMessageList {
height: 100%;
width: 100%;
}
}
@media screen and (min-width: @maxMobileWidth + 1px) {
.messageList { .messageList {
.listDragOver { .listDragOver {
transition: all 400ms ease; transition: all 400ms ease;
} }
} }
.hideMessageListCheckbox {
.checkboxCheckAll {
visibility: hidden;
}
.checkboxMessage {
display: none;
}
}
.rl-side-preview-pane #V-MailMessageList {
height: 100%;
}
.rl-side-preview-pane #V-MailMessageList .messageList {
max-width: 50vw;
min-width: 320px;
overflow: auto;
resize: horizontal;
width: 35vw;
}
.rl-bottom-preview-pane #V-MailMessageList .messageList {
height: 35vh;
max-height: 50vh;
min-height: 200px;
overflow: auto;
resize: vertical;
}
} }
/* desktop-large */ /* desktop-large */

View file

@ -30,25 +30,11 @@
} }
} }
html.rl-no-preview-pane {
#rl-right:not(.message-selected) #V-MailMessageView {
display: none;
}
}
#V-MailMessageView .top-toolbar { #V-MailMessageView .top-toolbar {
color: #fff; color: #fff;
padding: 10px 0; padding: 10px 0;
}
html.rl-no-preview-pane #V-MailMessageView .top-toolbar {
padding-left: 1px;
}
html:not(.rl-no-preview-pane) #V-MailMessageView .top-toolbar {
visibility: hidden; visibility: hidden;
} }
html.rl-bottom-preview-pane #V-MailMessageView .top-toolbar {
display: none;
}
.messageView { .messageView {
background-color: #fff; background-color: #fff;
@ -475,13 +461,27 @@ html.rl-bottom-preview-pane #V-MailMessageView .top-toolbar {
} }
} }
html.rl-no-preview-pane .messageView { html:not(.rl-bottom-preview-pane):not(.rl-side-preview-pane) {
#rl-right:not(.message-selected) #V-MailMessageView {
display: none;
}
#V-MailMessageView .top-toolbar {
padding-left: 1px;
visibility: visible;
}
.messageView {
border: 1px solid var(--border-color, #aaa); border: 1px solid var(--border-color, #aaa);
box-shadow: var(--smMainShadow); box-shadow: var(--smMainShadow);
}
} }
html.rl-bottom-preview-pane .messageView { html.rl-bottom-preview-pane {
#V-MailMessageView .top-toolbar {
display: none;
}
.messageView {
height: 100%; height: 100%;
}
} }
html.rl-fullscreen { html.rl-fullscreen {

View file

@ -1,24 +1,5 @@
#V-SettingsMenu { #V-SettingsMenu {
.b-footer {
position: absolute;
bottom: 10px;
right: 0;
left: 0;
padding: 0 10px 0 5px;
z-index: 101;
}
.b-content {
position: absolute;
top: 50px + @rlLowMargin + 10px;
bottom: @rlLowMargin;
left: 0;
right: 0;
overflow: hidden;
}
nav { nav {
a { a {
@ -55,11 +36,8 @@
.btn-toolbar { .btn-toolbar {
position: absolute; position: absolute;
top: 0; top: 8px;
right: 0; left: @rlLowMargin;
left: 0;
padding: 8px 0;
color: #fff;
} }
td { td {

View file

@ -58,6 +58,7 @@
font-size: 16px; font-size: 16px;
line-height: 29px; line-height: 29px;
max-width: 25vw; max-width: 25vw;
margin: 0;
overflow: hidden; overflow: hidden;
padding: 1px 8px; padding: 1px 8px;
text-overflow: ellipsis; text-overflow: ellipsis;

View file

@ -2,11 +2,16 @@
@rlLeftWidth: 200px; @rlLeftWidth: 200px;
@rlLowMargin: 8px; @rlLowMargin: 8px;
/* mobile and tablet */
@maxMobileWidth: 799px;
:root { :root {
--smDialogShrink: 20px; --smDialogShrink: 20px;
--smMainShadow: 0 2px 8px rgba(0, 0, 0, 0.2); --smMainShadow: 0 2px 8px rgba(0, 0, 0, 0.2);
} }
.rl-mobile { /* For Firefox */
/* For Firefox */ @media screen and (max-width: @maxMobileWidth) {
:root {
--smDialogShrink: 25px; --smDialogShrink: 25px;
}
} }

View file

@ -573,7 +573,7 @@ export class MailMessageList extends AbstractViewRight {
fToggle = () => { fToggle = () => {
let layout = SettingsUserStore.layout(); let layout = SettingsUserStore.layout();
setLayoutResizer(top, ClientSideKeyNameMessageListSize, setLayoutResizer(top, ClientSideKeyNameMessageListSize,
(ThemeStore.isMobile() || Layout.NoPreview === layout) (ThemeStore.isMobile() || !layout)
? 0 ? 0
: (Layout.SidePreview === layout ? 'Width' : 'Height') : (Layout.SidePreview === layout ? 'Width' : 'Height')
); );

View file

@ -1,5 +1,6 @@
import { settings } from 'Common/Links'; import { settings } from 'Common/Links';
import { mailbox } from 'Common/Links';
import { getFolderInboxName } from 'Common/Cache';
import { AbstractViewLeft } from 'Knoin/AbstractViews'; import { AbstractViewLeft } from 'Knoin/AbstractViews';
export class SettingsMenuUserView extends AbstractViewLeft { export class SettingsMenuUserView extends AbstractViewLeft {
@ -15,4 +16,8 @@ export class SettingsMenuUserView extends AbstractViewLeft {
link(route) { link(route) {
return settings(route); return settings(route);
} }
backToInbox() {
hasher.setHash(mailbox(getFolderInboxName()));
}
} }

View file

@ -1,5 +1,3 @@
import { mailbox } from 'Common/Links';
import { getFolderInboxName } from 'Common/Cache';
import { leftPanelDisabled, toggleLeftPanel } from 'Common/Globals'; import { leftPanelDisabled, toggleLeftPanel } from 'Common/Globals';
import { MessageUserStore } from 'Stores/User/Message'; import { MessageUserStore } from 'Stores/User/Message';
@ -25,8 +23,4 @@ export class SettingsPaneUserView extends AbstractViewRight {
ThemeStore.isMobile() && !event.target.closestWithin('.toggleLeft', dom) && leftPanelDisabled(true) ThemeStore.isMobile() && !event.target.closestWithin('.toggleLeft', dom) && leftPanelDisabled(true)
); );
} }
backToInbox() {
hasher.setHash(mailbox(getFolderInboxName()));
}
} }

View file

@ -12,9 +12,7 @@ import { KeyboardShortcutsHelpPopupView } from 'View/Popup/KeyboardShortcutsHelp
import { AccountPopupView } from 'View/Popup/Account'; import { AccountPopupView } from 'View/Popup/Account';
import { ContactsPopupView } from 'View/Popup/Contacts'; import { ContactsPopupView } from 'View/Popup/Contacts';
import { doc, leftPanelDisabled, fireEvent, stopEvent, SettingsCapa, registerShortcut } from 'Common/Globals'; import { fireEvent, stopEvent, SettingsCapa, registerShortcut } from 'Common/Globals';
import { ThemeStore } from 'Stores/Theme';
import Remote from 'Remote/User/Fetch'; import Remote from 'Remote/User/Fetch';
import { getNotification } from 'Common/Translator'; import { getNotification } from 'Common/Translator';
@ -111,14 +109,6 @@ export class SystemDropDownUserView extends AbstractViewRight {
this.allowContacts && showScreenPopup(ContactsPopupView); this.allowContacts && showScreenPopup(ContactsPopupView);
} }
toggleLayout()
{
const mobile = !ThemeStore.isMobile();
doc.cookie = 'rllayout=' + (mobile ? 'mobile' : 'desktop') + '; samesite=strict';
ThemeStore.isMobile(mobile);
leftPanelDisabled(mobile);
}
logoutClick() { logoutClick() {
rl.app.logout(); rl.app.logout();
} }

View file

@ -4,7 +4,6 @@ const
qUri = path => doc.location.pathname.replace(/\/+$/,'') + '/?/' + path, qUri = path => doc.location.pathname.replace(/\/+$/,'') + '/?/' + path,
eId = id => doc.getElementById('rl-'+id), eId = id => doc.getElementById('rl-'+id),
admin = '1' == eId('app')?.dataset?.admin, admin = '1' == eId('app')?.dataset?.admin,
layout = doc.cookie.match(/(^|;) ?rllayout=([^;]+)/) || '',
toggle = div => { toggle = div => {
eId('loading').hidden = true; eId('loading').hidden = true;
@ -41,8 +40,6 @@ try {
let RL_APP_DATA = {}; let RL_APP_DATA = {};
doc.documentElement.classList.toggle('rl-mobile', 'mobile' === layout[2] || (!layout && 1000 > innerWidth));
window.rl = { window.rl = {
adminArea: () => admin, adminArea: () => admin,
@ -109,9 +106,7 @@ window.rl = {
init = Object.assign({ headers: {} }, init); init = Object.assign({ headers: {} }, init);
init.headers.Accept = 'application/json'; init.headers.Accept = 'application/json';
return rl.fetch(resource, init, postData).then(response => { return rl.fetch(resource, init, postData).then(response => {
if (!response.ok) { if (response.ok) {
return Promise.reject('Network response error: ' + response.status);
}
/* TODO: use this for non-developers? /* TODO: use this for non-developers?
response.clone() response.clone()
let data = response.text(); let data = response.text();
@ -130,6 +125,8 @@ window.rl = {
} }
*/ */
return response.json(); return response.json();
}
return Promise.reject('Network response error: ' + response.status);
}); });
} }
}; };

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "ضفّ حساب" "BUTTON_ADD_ACCOUNT": "ضفّ حساب"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobile version",
"BUTTON_DESKTOP_VERSION": "Desktop version"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "البحث المطور", "TITLE_ADV": "البحث المطور",
"TEXT": "النص", "TEXT": "النص",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Добави акаунт" "BUTTON_ADD_ACCOUNT": "Добави акаунт"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Мобилна версия",
"BUTTON_DESKTOP_VERSION": "Десктоп версия"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Разширено търсене", "TITLE_ADV": "Разширено търсене",
"TEXT": "Текст", "TEXT": "Текст",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Přidat účet" "BUTTON_ADD_ACCOUNT": "Přidat účet"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobilní verze",
"BUTTON_DESKTOP_VERSION": "Desktop verze"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Rozšířené hledání", "TITLE_ADV": "Rozšířené hledání",
"TEXT": "Text", "TEXT": "Text",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Tilføj konto" "BUTTON_ADD_ACCOUNT": "Tilføj konto"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobil udgave",
"BUTTON_DESKTOP_VERSION": "Desktop udgave"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Avanceret søgning", "TITLE_ADV": "Avanceret søgning",
"TEXT": "Tekst", "TEXT": "Tekst",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Konto hinzufügen" "BUTTON_ADD_ACCOUNT": "Konto hinzufügen"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobile Version",
"BUTTON_DESKTOP_VERSION": "Desktop Version"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Erweiterte Suche", "TITLE_ADV": "Erweiterte Suche",
"TEXT": "Text", "TEXT": "Text",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Προσθήκη λογαριασμού" "BUTTON_ADD_ACCOUNT": "Προσθήκη λογαριασμού"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobile version",
"BUTTON_DESKTOP_VERSION": "Desktop version"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Προχωρημένη αναζήτηση", "TITLE_ADV": "Προχωρημένη αναζήτηση",
"TEXT": "Κείμενο", "TEXT": "Κείμενο",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Add Account" "BUTTON_ADD_ACCOUNT": "Add Account"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobile version",
"BUTTON_DESKTOP_VERSION": "Desktop version"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Advanced Search", "TITLE_ADV": "Advanced Search",
"TEXT": "Text", "TEXT": "Text",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Add Account" "BUTTON_ADD_ACCOUNT": "Add Account"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobile version",
"BUTTON_DESKTOP_VERSION": "Desktop version"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Advanced Search", "TITLE_ADV": "Advanced Search",
"TEXT": "Text", "TEXT": "Text",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Agregar cuenta" "BUTTON_ADD_ACCOUNT": "Agregar cuenta"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Versión móvil",
"BUTTON_DESKTOP_VERSION": "Versión escritorio"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Búsqueda avanzada", "TITLE_ADV": "Búsqueda avanzada",
"TEXT": "Texto", "TEXT": "Texto",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Lisa konto" "BUTTON_ADD_ACCOUNT": "Lisa konto"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobiiliversioon",
"BUTTON_DESKTOP_VERSION": "Töölauaversioon"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Täpsem otsing", "TITLE_ADV": "Täpsem otsing",
"TEXT": "Tekst", "TEXT": "Tekst",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Gehitu kontua" "BUTTON_ADD_ACCOUNT": "Gehitu kontua"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mugikorreko bertsioa",
"BUTTON_DESKTOP_VERSION": "Mahaigaineko bertsioa"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Bilaketa aurreratua", "TITLE_ADV": "Bilaketa aurreratua",
"TEXT": "Testua", "TEXT": "Testua",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "ساخت کاربر" "BUTTON_ADD_ACCOUNT": "ساخت کاربر"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "نسخه موبایل",
"BUTTON_DESKTOP_VERSION": "نسخه رومیزی"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "جستجوی پیشرفته", "TITLE_ADV": "جستجوی پیشرفته",
"TEXT": "متن", "TEXT": "متن",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Lisää tili" "BUTTON_ADD_ACCOUNT": "Lisää tili"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobiiliversio",
"BUTTON_DESKTOP_VERSION": "Työpöytäversio"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Tarkka haku", "TITLE_ADV": "Tarkka haku",
"TEXT": "Teksti", "TEXT": "Teksti",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Ajouter un compte" "BUTTON_ADD_ACCOUNT": "Ajouter un compte"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Version mobile",
"BUTTON_DESKTOP_VERSION": "Version grand écran"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Recherche avancée", "TITLE_ADV": "Recherche avancée",
"TEXT": "Texte", "TEXT": "Texte",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Fiók hozzáadás" "BUTTON_ADD_ACCOUNT": "Fiók hozzáadás"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobil verzió",
"BUTTON_DESKTOP_VERSION": "Asztali verzió"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Részletes keresés", "TITLE_ADV": "Részletes keresés",
"TEXT": "Szöveg", "TEXT": "Szöveg",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Tambah Akun" "BUTTON_ADD_ACCOUNT": "Tambah Akun"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Versi Mobile",
"BUTTON_DESKTOP_VERSION": "Versi Desktop"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Pencarian Rinci", "TITLE_ADV": "Pencarian Rinci",
"TEXT": "Teks", "TEXT": "Teks",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Bæta við aðgangi" "BUTTON_ADD_ACCOUNT": "Bæta við aðgangi"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Farsímaútgáfa",
"BUTTON_DESKTOP_VERSION": "Vinnutölvuútgáfa"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Ítarleg leit", "TITLE_ADV": "Ítarleg leit",
"TEXT": "Texti", "TEXT": "Texti",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Aggiungi account" "BUTTON_ADD_ACCOUNT": "Aggiungi account"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Versione mobile",
"BUTTON_DESKTOP_VERSION": "Versione desktop"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Ricerca avanzata", "TITLE_ADV": "Ricerca avanzata",
"TEXT": "Messaggio", "TEXT": "Messaggio",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "アカウントを追加" "BUTTON_ADD_ACCOUNT": "アカウントを追加"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "モバイル版",
"BUTTON_DESKTOP_VERSION": "デスクトップ版"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "高度な検索", "TITLE_ADV": "高度な検索",
"TEXT": "キーワード", "TEXT": "キーワード",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "계정 추가" "BUTTON_ADD_ACCOUNT": "계정 추가"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "모바일 버전",
"BUTTON_DESKTOP_VERSION": "데스크탑 버전"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "고급 검색", "TITLE_ADV": "고급 검색",
"TEXT": "본문", "TEXT": "본문",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Pridėti paskyrą" "BUTTON_ADD_ACCOUNT": "Pridėti paskyrą"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobili versija",
"BUTTON_DESKTOP_VERSION": "Standartinė versija"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Detali paieška", "TITLE_ADV": "Detali paieška",
"TEXT": "Laiško Tekstas", "TEXT": "Laiško Tekstas",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Pievienot kontu" "BUTTON_ADD_ACCOUNT": "Pievienot kontu"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobilā versija",
"BUTTON_DESKTOP_VERSION": "Darba virsmas versija"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Papildus meklēšana", "TITLE_ADV": "Papildus meklēšana",
"TEXT": "Teksts", "TEXT": "Teksts",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Legg til konto" "BUTTON_ADD_ACCOUNT": "Legg til konto"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobilversjon",
"BUTTON_DESKTOP_VERSION": "Skrivebordsversjon"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Avansert søk", "TITLE_ADV": "Avansert søk",
"TEXT": "Tekst", "TEXT": "Tekst",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Account toevoegen" "BUTTON_ADD_ACCOUNT": "Account toevoegen"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobiele versie",
"BUTTON_DESKTOP_VERSION": "Desktop versie"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Geavanceerd zoeken", "TITLE_ADV": "Geavanceerd zoeken",
"TEXT": "Tekst", "TEXT": "Tekst",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Dodaj konto" "BUTTON_ADD_ACCOUNT": "Dodaj konto"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Wersja mobilna",
"BUTTON_DESKTOP_VERSION": "Wersja desktopowa"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Wyszukiwanie zaawansowane", "TITLE_ADV": "Wyszukiwanie zaawansowane",
"TEXT": "Tekst", "TEXT": "Tekst",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Adicionar Conta" "BUTTON_ADD_ACCOUNT": "Adicionar Conta"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Versão Mobile",
"BUTTON_DESKTOP_VERSION": "Versão Desktop"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Pesquisa Avançada", "TITLE_ADV": "Pesquisa Avançada",
"TEXT": "Texto", "TEXT": "Texto",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Adicionar conta" "BUTTON_ADD_ACCOUNT": "Adicionar conta"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Versão móvel",
"BUTTON_DESKTOP_VERSION": "Versão computador"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Pesquisa avançada", "TITLE_ADV": "Pesquisa avançada",
"TEXT": "Texto", "TEXT": "Texto",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Adicionar conta" "BUTTON_ADD_ACCOUNT": "Adicionar conta"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Versão móvel",
"BUTTON_DESKTOP_VERSION": "Versão computador"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Pesquisa avançada", "TITLE_ADV": "Pesquisa avançada",
"TEXT": "Texto", "TEXT": "Texto",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Adaugă un cont" "BUTTON_ADD_ACCOUNT": "Adaugă un cont"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Versiunea de mobil",
"BUTTON_DESKTOP_VERSION": "Versiunea desktop"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Căutare avansată", "TITLE_ADV": "Căutare avansată",
"TEXT": "Conținut", "TEXT": "Conținut",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Добавить ещё аккаунт" "BUTTON_ADD_ACCOUNT": "Добавить ещё аккаунт"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Мобильная версия",
"BUTTON_DESKTOP_VERSION": "Полная версия"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Расширенный поиск писем", "TITLE_ADV": "Расширенный поиск писем",
"TEXT": "Текст", "TEXT": "Текст",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Pridať účet" "BUTTON_ADD_ACCOUNT": "Pridať účet"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Verzia pre mobil",
"BUTTON_DESKTOP_VERSION": "Verzia pre desktop"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Rozšírené hľadanie", "TITLE_ADV": "Rozšírené hľadanie",
"TEXT": "Text", "TEXT": "Text",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Dodaj račun" "BUTTON_ADD_ACCOUNT": "Dodaj račun"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobilna različica",
"BUTTON_DESKTOP_VERSION": "Namizna različica"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Napredno iskanje", "TITLE_ADV": "Napredno iskanje",
"TEXT": "Besedilo", "TEXT": "Besedilo",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Lägg till konto" "BUTTON_ADD_ACCOUNT": "Lägg till konto"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobilversion",
"BUTTON_DESKTOP_VERSION": "Datorversion"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Avancerad sök", "TITLE_ADV": "Avancerad sök",
"TEXT": "Text", "TEXT": "Text",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Hesap Ekle" "BUTTON_ADD_ACCOUNT": "Hesap Ekle"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobil versiyonu",
"BUTTON_DESKTOP_VERSION": "Masaüstü versiyonu"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Detaylı Arama", "TITLE_ADV": "Detaylı Arama",
"TEXT": "Metin", "TEXT": "Metin",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Додати ще акаунт" "BUTTON_ADD_ACCOUNT": "Додати ще акаунт"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Мобільна версія",
"BUTTON_DESKTOP_VERSION": "Повна версія"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Розширений пошук листів", "TITLE_ADV": "Розширений пошук листів",
"TEXT": "Текст", "TEXT": "Текст",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "Thêm tài khoản" "BUTTON_ADD_ACCOUNT": "Thêm tài khoản"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Phiên bản điện thoại",
"BUTTON_DESKTOP_VERSION": "Phiên bản máy tính"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "Tìm kiếm nâng cao", "TITLE_ADV": "Tìm kiếm nâng cao",
"TEXT": "Nội dung trong mail", "TEXT": "Nội dung trong mail",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "添加账户" "BUTTON_ADD_ACCOUNT": "添加账户"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "移动端版本",
"BUTTON_DESKTOP_VERSION": "桌面端版本"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "高级搜索", "TITLE_ADV": "高级搜索",
"TEXT": "内容", "TEXT": "内容",

View file

@ -46,10 +46,6 @@
"TOP_TOOLBAR": { "TOP_TOOLBAR": {
"BUTTON_ADD_ACCOUNT": "添加帳戶" "BUTTON_ADD_ACCOUNT": "添加帳戶"
}, },
"MOBILE": {
"BUTTON_MOBILE_VERSION": "Mobile version",
"BUTTON_DESKTOP_VERSION": "Desktop version"
},
"SEARCH": { "SEARCH": {
"TITLE_ADV": "高級搜索", "TITLE_ADV": "高級搜索",
"TEXT": "內容", "TEXT": "內容",

View file

@ -1,19 +1,15 @@
<div class="btn-toolbar"> <div class="btn-toolbar">
<!-- ko if: isMobile() -->
<a class="btn btn-thin fontastic toggleLeft" data-bind="click: toggleLeftPanel, text: leftPanelDisabled() ? '' : ''"></a> <a class="btn btn-thin fontastic toggleLeft" data-bind="click: toggleLeftPanel, text: leftPanelDisabled() ? '' : ''"></a>
<a class="btn buttonCompose" data-bind="click: composeClick, css: {'btn-warning': composeInEdit, 'btn-success': !composeInEdit()}, visible: mobileCheckedStateHide()" data-i18n="[title]FOLDER_LIST/BUTTON_NEW_MESSAGE"> <a class="btn buttonCompose" data-bind="click: composeClick, css: {'btn-warning': composeInEdit, 'btn-success': !composeInEdit()}, visible: mobileCheckedStateHide()" data-i18n="[title]FOLDER_LIST/BUTTON_NEW_MESSAGE">
<i class="icon-paper-plane"></i> <i class="icon-paper-plane"></i>
</a> </a>
<!-- /ko -->
<a class="btn" data-bind="click: reload, visible: mobileCheckedStateHide()" data-i18n="[title]MESSAGE_LIST/BUTTON_RELOAD"> <a class="btn" data-bind="click: reload, visible: mobileCheckedStateHide()" data-i18n="[title]MESSAGE_LIST/BUTTON_RELOAD">
<i class="icon-spinner not-animated"></i> <i class="icon-spinner not-animated"></i>
</a> </a>
<div class="btn-group" data-bind="visible: mobileCheckedStateShow()"> <a href="#" tabindex="-1" class="btn" data-bind="visible: mobileCheckedStateShow(), command: moveCommand" data-i18n="[title]GLOBAL/MOVE_TO">
<a href="#" tabindex="-1" class="btn" data-bind="command: moveCommand" data-i18n="[title]GLOBAL/MOVE_TO">
<i class="icon-copy visible-on-ctrl-btn"></i> <i class="icon-copy visible-on-ctrl-btn"></i>
<i class="fontastic hidden-on-ctrl-btn">📁</i> <i class="fontastic hidden-on-ctrl-btn">📁</i>
</a> </a>
</div>
<div class="btn-group" data-bind="visible: mobileCheckedStateShow()"> <div class="btn-group" data-bind="visible: mobileCheckedStateShow()">
<a class="btn fontastic" data-bind="visible: archiveAllowed, command: archiveCommand" data-i18n="[title]GLOBAL/TO_ARCHIVE">🗄</a> <a class="btn fontastic" data-bind="visible: archiveAllowed, command: archiveCommand" data-i18n="[title]GLOBAL/TO_ARCHIVE">🗄</a>
<a class="btn fontastic" data-bind="visible: canMarkAsSpam, command: spamCommand" data-i18n="[title]GLOBAL/SPAM"></a> <a class="btn fontastic" data-bind="visible: canMarkAsSpam, command: spamCommand" data-i18n="[title]GLOBAL/SPAM"></a>

View file

@ -1,7 +1,7 @@
<nav class="b-content" data-bind="foreach: menu"> <div class="b-toolbar btn-toolbar">
<a class="btn btn-thin fontastic toggleLeft" data-bind="click: toggleLeftPanel, text: leftPanelDisabled() ? '' : ''"></a>
<a class="btn" data-bind="click: backToInbox" data-icon="⬅" data-i18n="GLOBAL/BACK"></a>
</div>
<nav data-bind="foreach: menu">
<a data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route), 'data-i18n': label }"></a> <a data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route), 'data-i18n': label }"></a>
</nav> </nav>
<div class="b-content show-on-panel-disabled" data-bind="click: toggleLeftPanel"></div>
<div class="b-footer">
<a class="btn fontastic" data-bind="click: toggleLeftPanel, text: leftPanelDisabled() ? '' : ''"></a>
</div>

View file

@ -1,9 +1,4 @@
<div class="btn-toolbar"> <div class="btn-toolbar" data-bind="visible: leftPanelDisabled">
<!-- ko if: isMobile() --> <a class="btn btn-thin fontastic toggleLeft" data-bind="click: toggleLeftPanel"></a>
<div class="btn-group" style="margin-left: -1px">
<a class="btn btn-thin fontastic toggleLeft" data-bind="click: toggleLeftPanel, text: leftPanelDisabled() ? '' : ''"></a>
</div>
<!-- /ko -->
<a class="btn" data-bind="click: backToInbox" data-icon="⬅" data-i18n="GLOBAL/BACK"></a>
</div> </div>
<div id="rl-settings-subscreen"></div> <div id="rl-settings-subscreen"></div>

View file

@ -36,10 +36,6 @@
<a href="#" tabindex="-1" data-bind="click: settingsHelp" data-icon="🛈" data-i18n="GLOBAL/HELP"></a> <a href="#" tabindex="-1" data-bind="click: settingsHelp" data-icon="🛈" data-i18n="GLOBAL/HELP"></a>
</li> </li>
<li class="dividerbar" role="presentation"> <li class="dividerbar" role="presentation">
<a href="#" tabindex="-1" data-bind="click: toggleLayout" data-icon="💻" class="show-mobile" data-i18n="MOBILE/BUTTON_DESKTOP_VERSION"></a>
<a href="#" tabindex="-1" data-bind="click: toggleLayout" data-icon="📱" class="hide-mobile" data-i18n="MOBILE/BUTTON_MOBILE_VERSION"></a>
</li>
<li role="presentation">
<a href="#" tabindex="-1" data-bind="click: logoutClick" data-icon="⏻" data-i18n="GLOBAL/LOGOUT"></a> <a href="#" tabindex="-1" data-bind="click: logoutClick" data-icon="⏻" data-i18n="GLOBAL/LOGOUT"></a>
</li> </li>
</menu> </menu>

View file

@ -5,38 +5,36 @@
// Make the div behave like a button // Make the div behave like a button
.btn-group { .btn-group {
margin-right: 3px;
position: relative; position: relative;
white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page) white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page)
} }
.btn-group + .btn-group {
margin-left: 3px;
}
// Optional: Group multiple button groups together for a toolbar // Optional: Group multiple button groups together for a toolbar
.btn-toolbar { .btn-toolbar {
.btn-group { .btn-group {
display: inline-block; display: inline-block;
} }
.btn + .btn, * {
.btn-group + .btn, margin-right: 3px;
.btn + .btn-group { }
margin-left: 3px; *:last-child {
margin-right: 0;
} }
} }
// Float them, remove border radius, then re-add to first and last elements // Float them, remove border radius, then re-add to first and last elements
.btn-group > .btn { .btn-group > * {
position: relative;
border-radius: 0; border-radius: 0;
position: relative;
margin-right: 0;
} }
.btn-group > .btn + .btn { .btn-group > * + * {
margin-left: -1px; margin-left: -1px;
} }
// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match // Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
.btn-group > .btn:first-child { .btn-group > .btn:first-child {
margin-left: 0;
border-top-left-radius: 3px; border-top-left-radius: 3px;
border-bottom-left-radius: 3px; border-bottom-left-radius: 3px;
} }