mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-29 20:19:22 +03:00
Folder list resize optimization
This commit is contained in:
parent
53dc509d79
commit
1250efa445
26 changed files with 31233 additions and 31154 deletions
|
|
@ -1,6 +1,12 @@
|
|||
<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-toolbar">
|
||||
<div class="btn-group show-on-panel-disabled">
|
||||
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
|
||||
<i class="icon-resize"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content thm-settings-menu opacity-on-panel-disabled">
|
||||
<div class="b-admin-menu" data-bind="foreach: menu">
|
||||
<!-- ko if: disabled -->
|
||||
<span class="e-item disabled">
|
||||
|
|
@ -14,4 +20,5 @@
|
|||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content show-on-panel-disabled" data-bind="click: function () { leftPanelDisabled(false); }"></div>
|
||||
</div>
|
||||
|
|
@ -13,12 +13,6 @@
|
|||
<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">
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
<div class="b-folders g-ui-user-select-none thm-folders" data-bind="css: {'focused': folderList.focused}">
|
||||
<div class="b-toolbar btn-toolbar">
|
||||
<a class="btn buttonCompose" data-tooltip-placement="bottom" data-bind="click: composeClick, tooltip: 'FOLDER_LIST/BUTTON_COMPOSE'">
|
||||
<i class="icon-paper-plane"></i>
|
||||
</a>
|
||||
<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>
|
||||
</div>
|
||||
<div class="b-content" data-bind="nano: true">
|
||||
<div class="b-toolbar btn-toolbar">
|
||||
<a class="btn buttonCompose pull-left" data-tooltip-placement="bottom" data-bind="click: composeClick, tooltip: 'FOLDER_LIST/BUTTON_COMPOSE'">
|
||||
<i class="icon-paper-plane"></i>
|
||||
</a>
|
||||
<a class="btn buttonContacts pull-left" data-tooltip-placement="bottom" data-bind="visible: allowContacts, click: contactsClick, tooltip: 'FOLDER_LIST/BUTTON_CONTACTS'">
|
||||
<i class="icon-address-book"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="b-content opacity-on-panel-disabled" data-bind="nano: true">
|
||||
<div class="content g-scrollbox">
|
||||
<div class="content-wrapper">
|
||||
<div data-bind="template: { name: 'MailFolderListSystemItem', foreach: folderListSystem }"></div>
|
||||
|
|
@ -16,20 +16,24 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-footer btn-toolbar">
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(true); }">
|
||||
<i class="icon-resize"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group pull-right">&nbps;</div>
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn" data-bind="click: createFolder">
|
||||
<i data-bind="css: {'icon-folder-add': !foldersChanging(), 'icon-spinner animated': foldersChanging()}"></i>
|
||||
</a>
|
||||
<a class="btn" data-bind="click: configureFolders">
|
||||
<i class="icon-cog"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="b-content show-on-panel-disabled" data-bind="click: function () { leftPanelDisabled(false); }"></div>
|
||||
<div class="b-footer">
|
||||
<nobr>
|
||||
<div class="btn-toolbar">
|
||||
<div class="btn-group hide-on-panel-disabled">
|
||||
<a class="btn" data-bind="click: createFolder">
|
||||
<i data-bind="css: {'icon-folder-add': !foldersChanging(), 'icon-spinner animated': foldersChanging()}"></i>
|
||||
</a>
|
||||
<a class="btn" data-bind="click: configureFolders">
|
||||
<i class="icon-cog"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
|
||||
<i class="icon-resize"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</nobr>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -164,9 +164,6 @@
|
|||
</div>
|
||||
<div class="mainDelimiter footerDelimiter"></div>
|
||||
<div class="b-footer thm-message-list-bottom-toolbar">
|
||||
<a class="btn" data-bind="visible: leftPanelDisabled, click: function () { leftPanelDisabled(false); }">
|
||||
<i class="icon-resize"></i>
|
||||
</a>
|
||||
<span data-bind="visible: 0 < userUsageProc(), tooltip2: quotaTooltip" class="e-quota">
|
||||
<span data-bind="text: userUsageProc"></span>%
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="modal-body" style="position: relative;">
|
||||
<div class="b-list-toopbar">
|
||||
<div class="b-list-toolbar">
|
||||
<input type="search" class="i18n span3 e-search" placeholder="Search" autocorrect="off" autocapitalize="off"
|
||||
data-i18n-placeholder="CONTACTS/SEARCH_INPUT_PLACEHOLDER" data-bind="value: search" />
|
||||
</div>
|
||||
|
|
@ -111,7 +111,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-list-footer-toopbar">
|
||||
<div class="b-list-footer-toolbar">
|
||||
<div class="pull-right footer-pager">
|
||||
<!-- ko template: { name: 'Pagenator', data: contactsPagenator } --><!-- /ko -->
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,12 @@
|
|||
<div class="b-settins-left g-ui-user-select-none">
|
||||
<div class="b-toolbar">
|
||||
<div class="btn-group show-on-panel-disabled">
|
||||
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
|
||||
<i class="icon-resize"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content thm-settings-menu">
|
||||
<div class="b-content thm-settings-menu opacity-on-panel-disabled">
|
||||
<div class="b-settings-menu" data-bind="foreach: menu">
|
||||
<!-- ko if: disabled -->
|
||||
<span class="e-item disabled">
|
||||
|
|
@ -15,4 +20,5 @@
|
|||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content show-on-panel-disabled" data-bind="click: function () { leftPanelDisabled(false); }"></div>
|
||||
</div>
|
||||
|
|
@ -6,10 +6,6 @@
|
|||
|
||||
<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">
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
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
File diff suppressed because it is too large
Load diff
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
File diff suppressed because it is too large
Load diff
18
rainloop/v/0.0.0/static/js/app.min.js
vendored
18
rainloop/v/0.0.0/static/js/app.min.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -1,6 +1,6 @@
|
|||
/*! See http://www.JSON.org/js.html */
|
||||
var JSON;JSON||(JSON={}),function(){function str(a,b){var c,d,e,f,g=gap,h,i=b[a];i&&typeof i=="object"&&typeof i.toJSON=="function"&&(i=i.toJSON(a)),typeof rep=="function"&&(i=rep.call(b,a,i));switch(typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";gap+=indent,h=[];if(Object.prototype.toString.apply(i)==="[object Array]"){f=i.length;for(c=0;c<f;c+=1)h[c]=str(c,i)||"null";e=h.length===0?"[]":gap?"[\n"+gap+h.join(",\n"+gap)+"\n"+g+"]":"["+h.join(",")+"]",gap=g;return e}if(rep&&typeof rep=="object"){f=rep.length;for(c=0;c<f;c+=1)d=rep[c],typeof d=="string"&&(e=str(d,i),e&&h.push(quote(d)+(gap?": ":":")+e))}else for(d in i)Object.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&h.push(quote(d)+(gap?": ":":")+e));e=h.length===0?"{}":gap?"{\n"+gap+h.join(",\n"+gap)+"\n"+g+"}":"{"+h.join(",")+"}",gap=g;return e}}function quote(a){escapable.lastIndex=0;return escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return typeof b=="string"?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function f(a){return a<10?"0"+a:a}"use strict",typeof Date.prototype.toJSON!="function"&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;typeof JSON.stringify!="function"&&(JSON.stringify=function(a,b,c){var d;gap="",indent="";if(typeof c=="number")for(d=0;d<c;d+=1)indent+=" ";else typeof c=="string"&&(indent=c);rep=b;if(b&&typeof b!="function"&&(typeof b!="object"||typeof b.length!="number"))throw new Error("JSON.stringify");return str("",{"":a})}),typeof JSON.parse!="function"&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&typeof e=="object")for(c in e)Object.hasOwnProperty.call(e,c)&&(d=walk(e,c),d!==undefined?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver=="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")})}();
|
||||
/*! RainLoop Simple Pace v1.0 (c) 2013 RainLoop Team; Licensed under MIT */
|
||||
/*! RainLoop Simple Pace v1.0 (c) 2013 RainLoop Team; Licensed under MIT */
|
||||
!function(a){function b(){var b=this;b.el=null,b.done=!1,b.progress=0,b.addInterval=0,b.addSpeed=3,b.stopProgress=100,b.interval=a.setInterval(function(){var c=b.build();c&&a.clearInterval(b.interval)},100)}if(b.prototype.startAddInterval=function(){var b=this;b.stopAddInterval(),b.addInterval=a.setInterval(function(){0<b.progress&&b.stopProgress>b.progress&&b.add(b.addSpeed)},500)},b.prototype.stopAddInterval=function(){a.clearInterval(this.addInterval),this.addInterval=0},b.prototype.build=function(){if(null===this.el){var a=document.querySelector("body");a&&(this.el=document.createElement("div"),this.el.className="simple-pace simple-pace-active",this.el.innerHTML='<div class="simple-pace-progress"><div class="simple-pace-progress-inner"></div></div><div class="simple-pace-activity"></div>',a.firstChild?a.insertBefore(this.el,a.firstChild):a.appendChild(this.el))}return this.el},b.prototype.reset=function(){return this.progress=0,this.render()},b.prototype.update=function(b){var c=a.parseInt(b,10);return c>this.progress&&(this.progress=c,this.progress=100<this.progress?100:this.progress,this.progress=0>this.progress?0:this.progress),this.render()},b.prototype.add=function(b){return this.progress+=a.parseInt(b,10),this.progress=100<this.progress?100:this.progress,this.progress=0>this.progress?0:this.progress,this.render()},b.prototype.setSpeed=function(a,b){this.addSpeed=a,this.stopProgress=b||100},b.prototype.render=function(){var b=this.build();b&&b.children&&b.children[0]&&b.children[0].setAttribute("style","width:"+this.progress+"%"),100!==this.progress||this.done?100>this.progress&&this.done?(this.done=!1,this.startAddInterval(),b.className=b.className.replace("simple-pace-inactive",""),b.className+=" simple-pace-inactive"):100>this.progress&&!this.done&&0===this.addInterval&&this.startAddInterval():(this.done=!0,this.stopAddInterval(),a.setTimeout(function(){b.className=b.className.replace("simple-pace-active",""),b.className+=" simple-pace-inactive"},500))},!a.SimplePace){var c=new b;a.SimplePace={sleep:function(){c.setSpeed(2,95)},set:function(a){c.update(a)},add:function(a){c.add(a)}}}}(window);
|
||||
/*! RainLoop Top Driver v1.0 (c) 2013 RainLoop Team; Licensed under MIT */
|
||||
/*! RainLoop Top Driver v1.0 (c) 2013 RainLoop Team; Licensed under MIT */
|
||||
!function(a,b){function c(){}c.prototype.s=a.sessionStorage,c.prototype.t=a.top||a,c.prototype.getHash=function(){var a=null;if(this.s)a=this.s.getItem("__rlA")||null;else if(this.t){var c=this.t.name&&b&&"{"===this.t.name.toString().substr(0,1)?b.parse(this.t.name.toString()):null;a=c?c.__rlA||null:null}return a},c.prototype.setHash=function(){var c=a.rainloopAppData,d=null;this.s?this.s.setItem("__rlA",c&&c.AuthAccountHash?c.AuthAccountHash:""):this.t&&b&&(d={},d.__rlA=c&&c.AuthAccountHash?c.AuthAccountHash:"",this.t.name=b.stringify(d))},c.prototype.clearHash=function(){this.s?this.s.setItem("__rlA",""):this.t&&(this.t.name="")},a._rlhh=new c,a.__rlah=function(){return a._rlhh?a._rlhh.getHash():null},a.__rlah_set=function(){a._rlhh&&a._rlhh.setHash()},a.__rlah_clear=function(){a._rlhh&&a._rlhh.clearHash()}}(window,window.JSON);
|
||||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue