From 2c1937220e6e0eab0e527e6ebeec716a846afd70 Mon Sep 17 00:00:00 2001 From: alecpl Date: Mon, 27 Feb 2012 08:43:16 +0000 Subject: [PATCH] - Move percent_indicator from app.js into the skin --- program/js/app.js | 73 ++----------------- skins/default/functions.js | 139 ++++++++++++++++++++++++++++--------- 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 = $('
'); - 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 = $('
'); - bar1.css({position: 'absolute', top: pos.top + 1, left: pos.left + 1, - width: quota_width + 'px', height: height + 'px', zIndex: 99}); - // background - var bar2 = $('
'); - 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 = $('
'); + 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 = $('
'); + bar1.css({position: 'absolute', top: pos.top + 1, left: pos.left + 1, + width: quota_width + 'px', height: height + 'px', zIndex: 99}); + // background + var bar2 = $('
'); + 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); }); + } +}