summaryrefslogtreecommitdiff
path: root/skins
diff options
context:
space:
mode:
Diffstat (limited to 'skins')
-rw-r--r--skins/classic/common.css51
-rw-r--r--skins/classic/functions.js1
-rw-r--r--skins/classic/includes/messagetoolbar.html5
-rw-r--r--skins/classic/mail.css74
-rw-r--r--skins/classic/splitter.js82
-rw-r--r--skins/classic/templates/message.html4
-rw-r--r--skins/larry/images/listicons.pngbin26546 -> 37369 bytes
-rw-r--r--skins/larry/includes/mailtoolbar.html2
-rw-r--r--skins/larry/mail.css6
-rw-r--r--skins/larry/styles.css46
-rw-r--r--skins/larry/templates/mail.html4
-rw-r--r--skins/larry/templates/message.html4
-rw-r--r--skins/larry/ui.js60
13 files changed, 241 insertions, 98 deletions
diff --git a/skins/classic/common.css b/skins/classic/common.css
index 186be2485..10bc91c09 100644
--- a/skins/classic/common.css
+++ b/skins/classic/common.css
@@ -965,6 +965,57 @@ ul.toolbarmenu li.separator_above
}
+/*** folder selector ***/
+
+#folder-selector li a
+{
+ padding: 0;
+}
+
+#folder-selector li a span
+{
+ background: url(images/icons/folders.png) no-repeat 6px 0;
+ display: block;
+ height: 15px;
+ min-height: 14px;
+ padding: 2px 4px 2px 28px;
+ overflow: hidden;
+ max-width: 120px;
+ text-overflow: ellipsis;
+}
+
+#folder-selector li a.virtual
+{
+ color: #A0A0A0;
+}
+
+#folder-selector li a.active:hover span
+{
+ color: white;
+}
+
+#folder-selector li a.inbox span
+{
+ background-position: 6px -18px;
+}
+#folder-selector li a.drafts span
+{
+ background-position: 6px -37px;
+}
+#folder-selector li a.sent span
+{
+ background-position: 6px -54px;
+}
+#folder-selector li a.trash span
+{
+ background-position: 6px -91px;
+}
+#folder-selector li a.junk span
+{
+ background-position: 6px -73px;
+}
+
+
/***** tabbed interface elements *****/
div.tabsbar,
diff --git a/skins/classic/functions.js b/skins/classic/functions.js
index 2b7886d38..4312d57bc 100644
--- a/skins/classic/functions.js
+++ b/skins/classic/functions.js
@@ -419,6 +419,7 @@ body_mouseup: function(evt, p)
&& !this.popups[i].toggle
&& (!this.popups[i].editable || !this.target_overlaps(target, this.popups[i].id))
&& (!this.popups[i].sticky || !rcube_mouse_is_over(evt, rcube_find_object(this.popups[i].id)))
+ && !$(target).is('.folder-selector-link') && !$(target).children('.folder-selector-link').length
) {
window.setTimeout('rcmail_ui.show_popup("'+i+'",false);', 50);
}
diff --git a/skins/classic/includes/messagetoolbar.html b/skins/classic/includes/messagetoolbar.html
index 8f8efd291..8d98c7e42 100644
--- a/skins/classic/includes/messagetoolbar.html
+++ b/skins/classic/includes/messagetoolbar.html
@@ -20,9 +20,6 @@
<roundcube:container name="toolbar" id="messagetoolbar" />
<roundcube:button name="markmenulink" id="markmenulink" type="link" class="button markmessage" title="markmessages" onclick="rcmail_ui.show_popup('markmenu');return false" content=" " />
<roundcube:button name="messagemenulink" id="messagemenulink" type="link" class="button messagemenu" title="moreactions" onclick="rcmail_ui.show_popup('messagemenu');return false" content=" " />
-<roundcube:if condition="template:name == 'message'" />
-<roundcube:object name="mailboxlist" type="select" noSelection="moveto" maxlength="25" onchange="rcmail.command('move', this.options[this.selectedIndex].value)" class="mboxlist" folder_filter="mail" />
-<roundcube:endif />
</div>
<div id="forwardmenu" class="popupmenu">
@@ -46,6 +43,8 @@
<li><roundcube:button class="printlink" command="print" label="printmessage" classAct="printlink active" /></li>
<li><roundcube:button class="downloadlink" command="download" label="emlsave" classAct="downloadlink active" /></li>
<li><roundcube:button class="editlink" command="edit" prop="new" label="editasnew" classAct="editlink active" /></li>
+ <li><roundcube:button class="movelink" command="move" label="moveto" classAct="copylink active" innerclass="folder-selector-link" /></li>
+ <li><roundcube:button class="copylink" command="copy" label="copyto" classAct="movelink active" innerclass="folder-selector-link" /></li>
<li class="separator_below"><roundcube:button class="sourcelink" command="viewsource" label="viewsource" classAct="sourcelink active" /></li>
<li><roundcube:button class="openlink" command="open" label="openinextwin" target="_blank" classAct="openlink active" /></li>
<roundcube:container name="messagemenu" id="messagemenu" />
diff --git a/skins/classic/mail.css b/skins/classic/mail.css
index e5d55e05c..bf07383c9 100644
--- a/skins/classic/mail.css
+++ b/skins/classic/mail.css
@@ -175,23 +175,6 @@
background-position: -512px 0;
}
-#messagetoolbar select.mboxlist
-{
- position: relative;
- margin: 0 8px;
- top: 7px;
-}
-
-#messagetoolbar select.mboxlist option
-{
- padding-left: 15px;
-}
-
-#messagetoolbar select.mboxlist option[value=""]
-{
- padding-left: 2px;
-}
-
#messagemenu li a.active:hover,
#attachmentmenu li a.active:hover,
#markmessagemenu li a.active:hover
@@ -412,36 +395,35 @@
display: block;
position: relative;
font-size: 11px;
- background: url(images/icons/folders.png) 5px 0 no-repeat;
border-bottom: 1px solid #EBEBEB;
}
#mailboxlist li ul li:last-child
{
- border-bottom: none;
+ border-bottom: 0 none;
}
-#mailboxlist li.inbox
+#mailboxlist li.inbox a
{
background-position: 5px -18px;
}
-#mailboxlist li.drafts
+#mailboxlist li.drafts a
{
background-position: 5px -37px;
}
-#mailboxlist li.sent
+#mailboxlist li.sent a
{
background-position: 5px -54px;
}
-#mailboxlist li.junk
+#mailboxlist li.junk a
{
background-position: 5px -73px;
}
-#mailboxlist li.trash
+#mailboxlist li.trash a
{
background-position: 5px -91px;
}
@@ -456,6 +438,7 @@
padding-bottom: 2px;
text-decoration: none;
height: 15px;
+ background: url(images/icons/folders.png) 5px 0 no-repeat;
}
#mailboxlist li.unread
@@ -497,13 +480,50 @@
padding: 0;
margin: 0;
border-top: 1px solid #EBEBEB;
- padding-left: 15px;
- background-position: 25px 1px;
background-color: #FFF;
- color: blue;
font-weight: normal;
}
+#mailboxlist li.mailbox ul li a {
+ padding-left: 40px; /* 24 + 1 x 16 */
+ background-position: 20px 0; /* 4 + 1 x 16 */
+}
+#mailboxlist li.mailbox ul li div.treetoggle {
+ left: 23px !important;
+}
+
+#mailboxlist li.mailbox ul ul li.mailbox a {
+ padding-left: 56px; /* 2x */
+ background-position: 36px 0;
+}
+#mailboxlist li.mailbox ul ul li div.treetoggle {
+ left: 39px !important;
+}
+
+#mailboxlist li.mailbox ul ul ul li.mailbox a {
+ padding-left: 72px; /* 3x */
+ background-position: 52px 0;
+}
+#mailboxlist li.mailbox ul ul ul li div.treetoggle {
+ left: 55px !important;
+}
+
+#mailboxlist li.mailbox ul ul ul ul li.mailbox a {
+ padding-left: 88px; /* 4x */
+ background-position: 68px 0;
+}
+#mailboxlist li.mailbox ul ul ul ul li div.treetoggle {
+ left: 71px !important;
+}
+
+/* indent folders on levels > 4 */
+#mailboxlist li.mailbox ul ul ul ul ul li {
+ padding-left: 16px;
+}
+#mailboxlist li.mailbox ul ul ul ul ul li div.treetoggle {
+ left: 87px !important;
+}
+
#listcontrols
{
position: relative;
diff --git a/skins/classic/splitter.js b/skins/classic/splitter.js
index b94f0bd6f..cec6a4713 100644
--- a/skins/classic/splitter.js
+++ b/skins/classic/splitter.js
@@ -17,6 +17,8 @@ function rcube_splitter(attrib)
this.drag_active = false;
this.callback = attrib.callback;
+ var me = this;
+
this.init = function()
{
this.p1 = document.getElementById(this.p1id);
@@ -42,9 +44,9 @@ function rcube_splitter(attrib)
this.elm.unselectable = 'on';
// add the mouse event listeners
- rcube_event.add_listener({element: this.elm, event:'mousedown', object:this, method:'onDragStart'});
+ $(this.elm).mousedown(onDragStart);
if (bw.ie)
- rcube_event.add_listener({element: window, event:'resize', object:this, method:'onResize'});
+ $(window).resize(onResize);
// read saved position from cookie
var cookie = rcmail.get_cookie(this.id);
@@ -90,19 +92,19 @@ function rcube_splitter(attrib)
/**
* Handler for mousedown events
*/
- this.onDragStart = function(e)
+ function onDragStart(e)
{
+ me.drag_active = true;
+
// disable text selection while dragging the splitter
if (bw.konq || bw.chrome || bw.safari)
document.body.style.webkitUserSelect = 'none';
- this.p1pos = this.relative ? $(this.p1).position() : $(this.p1).offset();
- this.p2pos = this.relative ? $(this.p2).position() : $(this.p2).offset();
- this.drag_active = true;
+ me.p1pos = me.relative ? $(me.p1).position() : $(me.p1).offset();
+ me.p2pos = me.relative ? $(me.p2).position() : $(me.p2).offset();
// start listening to mousemove events
- rcube_event.add_listener({element:document, event:'mousemove', object:this, method:'onDrag'});
- rcube_event.add_listener({element:document, event:'mouseup', object:this, method:'onDragStop'});
+ $(document).bind('mousemove.'+me.id, onDrag).bind('mouseup.'+me.id, onDragStop);
// enable dragging above iframes
$('iframe').each(function() {
@@ -119,68 +121,64 @@ function rcube_splitter(attrib)
/**
* Handler for mousemove events
*/
- this.onDrag = function(e)
+ function onDrag(e)
{
- if (!this.drag_active)
+ if (!me.drag_active)
return false;
- ref = this;
-
// with timing events dragging action is more responsive
- window.clearTimeout(this.ts);
- this.ts = window.setTimeout(function() { ref.onDragAction(e); }, 1);
+ window.clearTimeout(me.ts);
+ me.ts = window.setTimeout(function() { onDragAction(e); }, 1);
return false;
};
- this.onDragAction = function(e)
+ function onDragAction(e)
{
var pos = rcube_event.get_mouse_pos(e);
- if (this.relative) {
- var parent = $(this.p1.parentNode).offset();
+ if (me.relative) {
+ var parent = $(me.p1.parentNode).offset();
pos.x -= parent.left;
pos.y -= parent.top;
}
- if (this.horizontal) {
- if (((pos.y - this.layer.height * 1.5) > this.p1pos.top) && ((pos.y + this.layer.height * 1.5) < (this.p2pos.top + this.p2.offsetHeight))) {
- this.pos = pos.y;
- this.resize();
+ if (me.horizontal) {
+ if (((pos.y - me.layer.height * 1.5) > me.p1pos.top) && ((pos.y + me.layer.height * 1.5) < (me.p2pos.top + me.p2.offsetHeight))) {
+ me.pos = pos.y;
+ me.resize();
}
}
- else {
- if (((pos.x - this.layer.width * 1.5) > this.p1pos.left) && ((pos.x + this.layer.width * 1.5) < (this.p2pos.left + this.p2.offsetWidth))) {
- this.pos = pos.x;
- this.resize();
- }
+ else if (((pos.x - me.layer.width * 1.5) > me.p1pos.left) && ((pos.x + me.layer.width * 1.5) < (me.p2pos.left + me.p2.offsetWidth))) {
+ me.pos = pos.x;
+ me.resize();
}
- this.p1pos = this.relative ? $(this.p1).position() : $(this.p1).offset();
- this.p2pos = this.relative ? $(this.p2).position() : $(this.p2).offset();
+ me.p1pos = me.relative ? $(me.p1).position() : $(me.p1).offset();
+ me.p2pos = me.relative ? $(me.p2).position() : $(me.p2).offset();
};
/**
* Handler for mouseup events
*/
- this.onDragStop = function(e)
+ function onDragStop(e)
{
+ me.drag_active = false;
+
// resume the ability to highlight text
if (bw.konq || bw.chrome || bw.safari)
document.body.style.webkitUserSelect = 'auto';
// cancel the listening for drag events
- rcube_event.remove_listener({element:document, event:'mousemove', object:this, method:'onDrag'});
- rcube_event.remove_listener({element:document, event:'mouseup', object:this, method:'onDragStop'});
- this.drag_active = false;
+ $(document).unbind('.' + me.id);
// remove temp divs
- $('div.iframe-splitter-fix').each(function() { this.parentNode.removeChild(this); });
+ $('div.iframe-splitter-fix').remove();
- this.set_cookie();
+ me.set_cookie();
- if (typeof this.callback == 'function')
- this.callback(this);
+ if (typeof me.callback == 'function')
+ me.callback(me);
return bw.safari ? true : rcube_event.cancel(e);
};
@@ -188,15 +186,15 @@ function rcube_splitter(attrib)
/**
* Handler for window resize events
*/
- this.onResize = function(e)
+ function onResize(e)
{
- if (this.horizontal) {
- var new_height = parseInt(this.p2.parentNode.offsetHeight, 10) - parseInt(this.p2.style.top, 10) - (bw.ie8 ? 2 : 0);
- this.p2.style.height = (new_height > 0 ? new_height : 0) +'px';
+ if (me.horizontal) {
+ var new_height = parseInt(me.p2.parentNode.offsetHeight, 10) - parseInt(me.p2.style.top, 10) - (bw.ie8 ? 2 : 0);
+ me.p2.style.height = (new_height > 0 ? new_height : 0) +'px';
}
else {
- var new_width = parseInt(this.p2.parentNode.offsetWidth, 10) - parseInt(this.p2.style.left, 10);
- this.p2.style.width = (new_width > 0 ? new_width : 0) + 'px';
+ var new_width = parseInt(me.p2.parentNode.offsetWidth, 10) - parseInt(me.p2.style.left, 10);
+ me.p2.style.width = (new_width > 0 ? new_width : 0) + 'px';
}
};
diff --git a/skins/classic/templates/message.html b/skins/classic/templates/message.html
index bd4fbf277..3ab0a2e5e 100644
--- a/skins/classic/templates/message.html
+++ b/skins/classic/templates/message.html
@@ -30,11 +30,13 @@
<div id="mailboxlist-container">
<div id="mailboxlist-title" class="boxtitle"><roundcube:label name="mailboxlist" /></div>
<div class="boxlistcontent">
- <roundcube:object name="mailboxlist" id="mailboxlist" class="treelist" maxlength="25" />
+ <roundcube:object name="mailboxlist" id="mailboxlist" class="treelist" folder_filter="mail" />
</div>
<div class="boxfooter"></div>
</div>
</div>
+<roundcube:else />
+<roundcube:object name="mailboxlist" folder_filter="mail" type="js" />
<roundcube:endif />
<div id="messageframe">
diff --git a/skins/larry/images/listicons.png b/skins/larry/images/listicons.png
index 8a17cc5bd..49342a318 100644
--- a/skins/larry/images/listicons.png
+++ b/skins/larry/images/listicons.png
Binary files differ
diff --git a/skins/larry/includes/mailtoolbar.html b/skins/larry/includes/mailtoolbar.html
index 59f2d581a..5708a94f1 100644
--- a/skins/larry/includes/mailtoolbar.html
+++ b/skins/larry/includes/mailtoolbar.html
@@ -39,6 +39,8 @@
<li><roundcube:button command="download" label="emlsave" class="icon" classAct="icon active" innerclass="icon download" /></li>
<li><roundcube:button command="edit" prop="new" label="editasnew" class="icon" classAct="icon active" innerclass="icon edit" /></li>
<li><roundcube:button command="viewsource" label="viewsource" class="icon" classAct="icon active" innerclass="icon viewsource" /></li>
+ <li><roundcube:button command="move" label="moveto" class="icon" classAct="icon active" innerclass="icon move folder-selector-link" /></li>
+ <li><roundcube:button command="copy" label="copyto" class="icon" classAct="icon active" innerclass="icon copy folder-selector-link" /></li>
<li><roundcube:button command="open" label="openinextwin" target="_blank" class="icon" classAct="icon active" innerclass="icon extwin" /></li>
<roundcube:container name="messagemenu" id="messagemenu" />
</ul>
diff --git a/skins/larry/mail.css b/skins/larry/mail.css
index 8e1634ad7..d3b09c087 100644
--- a/skins/larry/mail.css
+++ b/skins/larry/mail.css
@@ -417,12 +417,6 @@ a.iconbutton.threadmode.selected {
right: 0;
}
-#messagetoolbar .toolbarselect {
- position: absolute;
- bottom: 6px;
- right: 3px;
-}
-
#messagesearchtools {
position: absolute;
right: 0;
diff --git a/skins/larry/styles.css b/skins/larry/styles.css
index 0b2c0904f..21d93c106 100644
--- a/skins/larry/styles.css
+++ b/skins/larry/styles.css
@@ -616,6 +616,15 @@ a.iconlink.upload {
background: url(images/ajaxloader_dark.gif) 0 4px no-repeat;
}
+#messagestack div a {
+ color: #94c0da;
+}
+
+#messagestack div a:hover {
+ text-decoration: underline;
+ cursor: pointer;
+}
+
.ui-dialog.error .ui-dialog-title,
.ui-dialog.warning .ui-dialog-title,
.ui-dialog.confirmation .ui-dialog-title {
@@ -1133,6 +1142,9 @@ ul.listing {
ul.listing li {
background-color: #d9ecf4;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
ul.listing li ul {
@@ -2007,11 +2019,11 @@ select.decorated option {
#quotadisplay {
left: 6px;
+ height: 18px;
font-size: 12px;
font-weight: bold;
text-shadow: 0px 1px 1px #fff;
padding-left: 30px;
- height: 18px;
background: url(images/quota.png) -100px 0 no-repeat;
}
@@ -2317,6 +2329,38 @@ ul.toolbarmenu li span.conversation {
z-index: 255;
}
+/*** folder selector ***/
+
+#folder-selector li a span {
+ background: url("images/listicons.png") 4px -2021px no-repeat;
+ display: block;
+ height: 17px;
+ min-height: 14px;
+ padding: 4px 4px 1px 28px;
+ overflow: hidden;
+ max-width: 120px;
+ text-overflow: ellipsis;
+}
+
+#folder-selector li a.virtual {
+ opacity: .2;
+}
+
+#folder-selector li a.inbox span {
+ background-position: 4px -2049px;
+}
+#folder-selector li a.drafts span {
+ background-position: 4px -1388px;
+}
+#folder-selector li a.sent span {
+ background-position: 4px -2074px;
+}
+#folder-selector li a.trash span {
+ background-position: 4px -1508px;
+}
+#folder-selector li a.junk span {
+ background-position: 4px -2100px;
+}
/*** attachment list ***/
diff --git a/skins/larry/templates/mail.html b/skins/larry/templates/mail.html
index 2e7c0c105..8f19b9f7f 100644
--- a/skins/larry/templates/mail.html
+++ b/skins/larry/templates/mail.html
@@ -5,8 +5,8 @@
<roundcube:include file="/includes/links.html" />
<style type="text/css">
<roundcube:if condition="config:preview_pane == true" />
- #mailview-top { height: <roundcube:exp expression="!empty(cookie:mailviewsplitter) ? cookie:mailviewsplitter-48 : 276" />px; }
- #mailview-bottom { top: <roundcube:exp expression="!empty(cookie:mailviewsplitter) ? cookie:mailviewsplitter+6 : 330" />px; height: auto; display: block; }
+ #mailview-top { height: 276px; }
+ #mailview-bottom { top: 330px; height: auto; display: block; }
#mailpreviewframe { display: block; }
<roundcube:endif />
</style>
diff --git a/skins/larry/templates/message.html b/skins/larry/templates/message.html
index e63705f76..df92b7511 100644
--- a/skins/larry/templates/message.html
+++ b/skins/larry/templates/message.html
@@ -16,9 +16,6 @@
<roundcube:button command="list" type="link" class="button back disabled" classAct="button back" classSel="button back pressed" label="back" />
<roundcube:endif />
<roundcube:include file="/includes/mailtoolbar.html" />
- <div class="toolbarselect">
- <roundcube:object name="mailboxlist" type="select" noSelection="moveto" maxlength="25" onchange="rcmail.command('move', this.options[this.selectedIndex].value)" class="mailboxlist decorated" folder_filter="mail" />
- </div>
</div>
<roundcube:if condition="!env:extwin" />
@@ -36,6 +33,7 @@
<div id="mailview-right" class="offset uibox">
<roundcube:else />
+<roundcube:object name="mailboxlist" folder_filter="mail" type="js" />
<div id="mailview-right" class="offset fullwidth uibox">
<roundcube:endif />
diff --git a/skins/larry/ui.js b/skins/larry/ui.js
index 9183291c5..3c4740df2 100644
--- a/skins/larry/ui.js
+++ b/skins/larry/ui.js
@@ -31,6 +31,7 @@ function rcube_mail_ui()
var me = this;
var mailviewsplit;
var compose_headers = {};
+ var prefs;
// export public methods
this.set = setenv;
@@ -74,7 +75,25 @@ function rcube_mail_ui()
*/
function get_pref(key)
{
- return rcmail.get_cookie(key);
+ if (!prefs) {
+ prefs = window.localStorage ? rcmail.local_storage_get_item('prefs.larry', {}) : {};
+ }
+
+ // fall-back to cookies
+ if (prefs[key] == null) {
+ var cookie = rcmail.get_cookie(key);
+ if (cookie != null) {
+ prefs[key] = cookie;
+
+ // copy value to local storage and remove cookie
+ if (window.localStorage) {
+ rcmail.local_storage_set_item('prefs.larry', prefs);
+ rcmail.set_cookie(key, cookie, new Date()); // expire cookie
+ }
+ }
+ }
+
+ return prefs[key];
}
/**
@@ -82,9 +101,18 @@ function rcube_mail_ui()
*/
function save_pref(key, val)
{
- var exp = new Date();
- exp.setYear(exp.getFullYear() + 1);
- rcmail.set_cookie(key, val, exp);
+ prefs[key] = val;
+
+ // write prefs to local storage
+ if (window.localStorage) {
+ rcmail.local_storage_set_item('prefs.larry', prefs);
+ }
+ else {
+ // store value in cookie
+ var exp = new Date();
+ exp.setYear(exp.getFullYear() + 1);
+ rcmail.set_cookie(key, val, exp);
+ }
}
/**
@@ -345,8 +373,10 @@ function rcube_mail_ui()
function body_mouseup(e)
{
var config, obj, target = e.target;
+
if (target.className == 'inner')
target = e.target.parentNode;
+
for (var id in popups) {
obj = popups[id];
config = popupconfig[id];
@@ -355,9 +385,10 @@ function rcube_mail_ui()
&& !config.toggle
&& (!config.editable || !target_overlaps(target, obj.get(0)))
&& (!config.sticky || !rcube_mouse_is_over(e, obj.get(0)))
+ && !$(target).is('.folder-selector-link')
) {
var myid = id+'';
- window.setTimeout(function(){ show_popupmenu(myid, false) }, 10);
+ window.setTimeout(function() { show_popupmenu(myid, false); }, 10);
}
}
}
@@ -408,6 +439,9 @@ function rcube_mail_ui()
// show a popup dialog on errors
if (p.type == 'error' && rcmail.env.task != 'login') {
+ // hide original message object, we don't want both
+ rcmail.hide_message(p.object);
+
if (me.message_timer) {
window.clearTimeout(me.message_timer);
}
@@ -416,8 +450,10 @@ function rcube_mail_ui()
}
var msg = p.message,
- pos = $(p.object).offset();
- pos.top -= (rcmail.env.task == 'login' ? 20 : 160);
+ dialog_close = function() {
+ // check if dialog is still displayed, to prevent from js error
+ me.messagedialog.is(':visible') && me.messagedialog.dialog('destroy').hide();
+ };
if (me.messagedialog.is(':visible'))
msg = me.messagedialog.html() + '<p>' + p.message + '</p>';
@@ -428,16 +464,14 @@ function rcube_mail_ui()
closeOnEscape: true,
dialogClass: 'popupmessage ' + p.type,
title: env.errortitle,
- close: function() {
- me.messagedialog.dialog('destroy').hide();
- },
- position: ['center', pos.top],
- hide: { effect:'drop', direction:'right' },
+ close: dialog_close,
+ position: ['center', 'center'],
+ hide: {effect: 'fadeOut'},
width: 420,
minHeight: 90
}).show();
- me.message_timer = window.setTimeout(function(){ me.messagedialog.dialog('close'); }, Math.max(3000, p.timeout / 2));
+ me.message_timer = window.setTimeout(dialog_close, p.timeout);
}
}