summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--program/js/app.js73
-rw-r--r--skins/default/functions.js139
2 files changed, 110 insertions, 102 deletions
diff --git a/program/js/app.js b/program/js/app.js
index f00263c9b..79ba528a6 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -5671,13 +5671,11 @@ function rcube_webmail()
// replace content of quota display
this.set_quota = function(content)
{
- if (content && this.gui_objects.quotadisplay) {
- if (typeof content === 'object' && content.type == 'image')
- this.percent_indicator(this.gui_objects.quotadisplay, content);
- else
- $(this.gui_objects.quotadisplay).html(content.percent+'%').attr('title', content.title);
- }
+ if (this.gui_objects.quotadisplay && content && content.type == 'text')
+ $(this.gui_objects.quotadisplay).html(content.percent+'%').attr('title', content.title);
+
this.triggerEvent('setquota', content);
+ this.env.quota_content = content;
};
// update the mailboxlist
@@ -5786,69 +5784,6 @@ function rcube_webmail()
elem.onclick = function() { rcmail.load_headers(elem); };
};
- // percent (quota) indicator
- this.percent_indicator = function(obj, data)
- {
- if (!data || !obj)
- return false;
-
- var limit_high = 80,
- limit_mid = 55,
- width = data.width ? data.width : this.env.indicator_width ? this.env.indicator_width : 100,
- height = data.height ? data.height : this.env.indicator_height ? this.env.indicator_height : 14,
- quota = data.percent ? Math.abs(parseInt(data.percent)) : 0,
- quota_width = parseInt(quota / 100 * width),
- pos = $(obj).position();
-
- // workarounds for Opera and Webkit bugs
- pos.top = Math.max(0, pos.top);
- pos.left = Math.max(0, pos.left);
-
- this.env.indicator_width = width;
- this.env.indicator_height = height;
-
- // overlimit
- if (quota_width > width) {
- quota_width = width;
- quota = 100;
- }
-
- if (data.title)
- data.title = this.get_label('quota') + ': ' + data.title;
-
- // main div
- var main = $('<div>');
- main.css({position: 'absolute', top: pos.top, left: pos.left,
- width: width + 'px', height: height + 'px', zIndex: 100, lineHeight: height + 'px'})
- .attr('title', data.title).addClass('quota_text').html(quota + '%');
- // used bar
- var bar1 = $('<div>');
- bar1.css({position: 'absolute', top: pos.top + 1, left: pos.left + 1,
- width: quota_width + 'px', height: height + 'px', zIndex: 99});
- // background
- var bar2 = $('<div>');
- bar2.css({position: 'absolute', top: pos.top + 1, left: pos.left + 1,
- width: width + 'px', height: height + 'px', zIndex: 98})
- .addClass('quota_bg');
-
- if (quota >= limit_high) {
- main.addClass(' quota_text_high');
- bar1.addClass('quota_high');
- }
- else if(quota >= limit_mid) {
- main.addClass(' quota_text_mid');
- bar1.addClass('quota_mid');
- }
- else {
- main.addClass(' quota_text_low');
- bar1.addClass('quota_low');
- }
-
- // replace quota image
- $(obj).html('').append(bar1).append(bar2).append(main);
- // update #quotaimg title
- $('#quotaimg').attr('title', data.title);
- };
/********************************************************/
/********* html to text conversion functions *********/
diff --git a/skins/default/functions.js b/skins/default/functions.js
index c4fb022d9..539f6ff06 100644
--- a/skins/default/functions.js
+++ b/skins/default/functions.js
@@ -559,39 +559,6 @@ prev_sibling: function(elm)
};
-var rcmail_ui;
-
-function rcube_init_mail_ui()
-{
- rcmail_ui = new rcube_mail_ui();
- rcube_event.add_listener({ object:rcmail_ui, method:'body_mouseup', event:'mouseup' });
- rcube_event.add_listener({ object:rcmail_ui, method:'body_keydown', event:'keydown' });
-
- $('iframe').load(iframe_events)
- .contents().mouseup(function(e){rcmail_ui.body_mouseup(e)});
-
- if (rcmail.env.task == 'mail') {
- rcmail.addEventListener('menu-open', 'open_listmenu', rcmail_ui);
- rcmail.addEventListener('menu-save', 'save_listmenu', rcmail_ui);
- rcmail.addEventListener('aftersend-attachment', 'uploadmenu', rcmail_ui);
- rcmail.addEventListener('aftertoggle-editor', 'resize_compose_body_ev', rcmail_ui);
- rcmail.gui_object('message_dragmenu', 'dragmessagemenu');
-
- if (rcmail.gui_objects.mailboxlist) {
- rcmail.addEventListener('responseaftermark', rcube_render_mailboxlist);
- rcmail.addEventListener('responseaftergetunread', rcube_render_mailboxlist);
- rcmail.addEventListener('responseaftercheck-recent', rcube_render_mailboxlist);
- rcmail.addEventListener('aftercollapse-folder', rcube_render_mailboxlist);
- }
-
- if (rcmail.env.action == 'compose')
- rcmail_ui.init_compose_form();
- }
- else if (rcmail.env.task == 'addressbook') {
- rcmail.addEventListener('afterupload-photo', function(){ rcmail_ui.show_popup('uploadform', false); });
- }
-}
-
// Events handling in iframes (eg. preview pane)
function iframe_events()
{
@@ -671,8 +638,114 @@ function fit_string_to_size(str, elem, len)
return result;
}
+function update_quota(data)
+{
+ percent_indicator(rcmail.gui_objects.quotadisplay, data);
+}
+
+// percent (quota) indicator
+function percent_indicator(obj, data)
+{
+ if (!data || !obj)
+ return false;
+
+ var limit_high = 80,
+ limit_mid = 55,
+ width = data.width ? data.width : rcmail.env.indicator_width ? rcmail.env.indicator_width : 100,
+ height = data.height ? data.height : rcmail.env.indicator_height ? rcmail.env.indicator_height : 14,
+ quota = data.percent ? Math.abs(parseInt(data.percent)) : 0,
+ quota_width = parseInt(quota / 100 * width),
+ pos = $(obj).position();
+
+ // workarounds for Opera and Webkit bugs
+ pos.top = Math.max(0, pos.top);
+ pos.left = Math.max(0, pos.left);
+
+ rcmail.env.indicator_width = width;
+ rcmail.env.indicator_height = height;
+
+ // overlimit
+ if (quota_width > width) {
+ quota_width = width;
+ quota = 100;
+ }
+
+ if (data.title)
+ data.title = rcmail.get_label('quota') + ': ' + data.title;
+
+ // main div
+ var main = $('<div>');
+ main.css({position: 'absolute', top: pos.top, left: pos.left,
+ width: width + 'px', height: height + 'px', zIndex: 100, lineHeight: height + 'px'})
+ .attr('title', data.title).addClass('quota_text').html(quota + '%');
+ // used bar
+ var bar1 = $('<div>');
+ bar1.css({position: 'absolute', top: pos.top + 1, left: pos.left + 1,
+ width: quota_width + 'px', height: height + 'px', zIndex: 99});
+ // background
+ var bar2 = $('<div>');
+ bar2.css({position: 'absolute', top: pos.top + 1, left: pos.left + 1,
+ width: width + 'px', height: height + 'px', zIndex: 98})
+ .addClass('quota_bg');
+
+ if (quota >= limit_high) {
+ main.addClass(' quota_text_high');
+ bar1.addClass('quota_high');
+ }
+ else if(quota >= limit_mid) {
+ main.addClass(' quota_text_mid');
+ bar1.addClass('quota_mid');
+ }
+ else {
+ main.addClass(' quota_text_low');
+ bar1.addClass('quota_low');
+ }
+
+ // replace quota image
+ $(obj).html('').append(bar1).append(bar2).append(main);
+ // update #quotaimg title
+ $('#quotaimg').attr('title', data.title);
+}
+
// Optional parameters used by TinyMCE
var rcmail_editor_settings = {
skin : "default", // "default", "o2k7"
skin_variant : "" // "", "silver", "black"
};
+
+var rcmail_ui;
+
+function rcube_init_mail_ui()
+{
+ rcmail_ui = new rcube_mail_ui();
+ rcube_event.add_listener({ object:rcmail_ui, method:'body_mouseup', event:'mouseup' });
+ rcube_event.add_listener({ object:rcmail_ui, method:'body_keydown', event:'keydown' });
+
+ if (rcmail.env.quota_content)
+ update_quota(rcmail.env.quota_content);
+ rcmail.addEventListener('setquota', update_quota);
+
+ $('iframe').load(iframe_events)
+ .contents().mouseup(function(e){rcmail_ui.body_mouseup(e)});
+
+ if (rcmail.env.task == 'mail') {
+ rcmail.addEventListener('menu-open', 'open_listmenu', rcmail_ui);
+ rcmail.addEventListener('menu-save', 'save_listmenu', rcmail_ui);
+ rcmail.addEventListener('aftersend-attachment', 'uploadmenu', rcmail_ui);
+ rcmail.addEventListener('aftertoggle-editor', 'resize_compose_body_ev', rcmail_ui);
+ rcmail.gui_object('message_dragmenu', 'dragmessagemenu');
+
+ if (rcmail.gui_objects.mailboxlist) {
+ rcmail.addEventListener('responseaftermark', rcube_render_mailboxlist);
+ rcmail.addEventListener('responseaftergetunread', rcube_render_mailboxlist);
+ rcmail.addEventListener('responseaftercheck-recent', rcube_render_mailboxlist);
+ rcmail.addEventListener('aftercollapse-folder', rcube_render_mailboxlist);
+ }
+
+ if (rcmail.env.action == 'compose')
+ rcmail_ui.init_compose_form();
+ }
+ else if (rcmail.env.task == 'addressbook') {
+ rcmail.addEventListener('afterupload-photo', function(){ rcmail_ui.show_popup('uploadform', false); });
+ }
+}