Changeset 5464 in subversion


Ignore:
Timestamp:
Nov 22, 2011 8:26:11 AM (19 months ago)
Author:
alec
Message:
  • Code improvements
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/program/js/app.js

    r5450 r5464  
    129129  this.init = function() 
    130130  { 
    131     var p = this; 
     131    var n, p = this; 
    132132    this.task = this.env.task; 
    133133 
     
    139139 
    140140    // find all registered gui containers 
    141     for (var n in this.gui_containers) 
     141    for (n in this.gui_containers) 
    142142      this.gui_containers[n] = $('#'+this.gui_containers[n]); 
    143143 
    144144    // find all registered gui objects 
    145     for (var n in this.gui_objects) 
     145    for (n in this.gui_objects) 
    146146      this.gui_objects[n] = rcube_find_object(this.gui_objects[n]); 
    147147 
     
    381381 
    382382        // detect client timezone 
    383         var tz = new Date().getTimezoneOffset() / -60; 
    384         var stdtz = new Date().getStdTimezoneOffset() / -60; 
     383        var dt = new Date(), 
     384          tz = dt.getTimezoneOffset() / -60, 
     385          stdtz = dt.getStdTimezoneOffset() / -60; 
     386 
    385387        $('#rcmlogintz').val(stdtz); 
    386388        $('#rcmlogindst').val(tz > stdtz ? 1 : 0); 
     
    443445  this.command = function(command, props, obj) 
    444446  { 
    445     var ret; 
     447    var ret, uid, cid, url, flag; 
    446448 
    447449    if (obj && obj.blur) 
     
    522524 
    523525      case 'open': 
    524         var uid; 
    525526        if (uid = this.get_single_uid()) { 
    526527          obj.href = '?_task='+this.env.task+'&_action=show&_mbox='+urlencode(this.env.mailbox)+'&_uid='+uid; 
     
    591592      case 'show': 
    592593        if (this.task == 'mail') { 
    593           var uid = this.get_single_uid(); 
     594          uid = this.get_single_uid(); 
    594595          if (uid && (!this.env.uid || uid != this.env.uid)) { 
    595596            if (this.env.mailbox == this.env.drafts_mailbox) 
     
    600601        } 
    601602        else if (this.task == 'addressbook') { 
    602           var cid = props ? props : this.get_single_cid(); 
     603          cid = props ? props : this.get_single_cid(); 
    603604          if (cid && !(this.env.action == 'show' && cid == this.env.cid)) 
    604605            this.load_contact(cid, 'show'); 
     
    616617 
    617618      case 'edit': 
    618         var cid; 
    619619        if (this.task=='addressbook' && (cid = this.get_single_cid())) 
    620620          this.load_contact(cid, 'edit'); 
     
    622622          this.load_identity(props, 'edit-identity'); 
    623623        else if (this.task=='mail' && (cid = this.get_single_uid())) { 
    624           var url = (this.env.mailbox == this.env.drafts_mailbox) ? '_draft_uid=' : '_uid='; 
     624          url = (this.env.mailbox == this.env.drafts_mailbox) ? '_draft_uid=' : '_uid='; 
    625625          this.goto_url('compose', url+cid+'&_mbox='+urlencode(this.env.mailbox), true); 
    626626        } 
     
    700700          break; 
    701701 
    702         var uid, flag = 'read'; 
     702        flag = 'read'; 
    703703 
    704704        if (props._row.uid) { 
     
    720720          break; 
    721721 
    722         var uid, flag = 'flagged'; 
     722        flag = 'flagged'; 
    723723 
    724724        if (props._row.uid) { 
     
    816816 
    817817      case 'compose': 
    818         var url = this.url('mail/compose'); 
     818        url = this.url('mail/compose'); 
    819819 
    820820        if (this.task == 'mail') { 
     
    926926      case 'reply-list': 
    927927      case 'reply': 
    928         var uid; 
    929928        if (uid = this.get_single_uid()) { 
    930           var url = '_reply_uid='+uid+'&_mbox='+urlencode(this.env.mailbox); 
     929          url = '_reply_uid='+uid+'&_mbox='+urlencode(this.env.mailbox); 
    931930          if (command == 'reply-all') 
    932931            // do reply-list, when list is detected and popup menu wasn't used  
     
    941940      case 'forward-attachment': 
    942941      case 'forward': 
    943         var uid, url; 
    944942        if (uid = this.get_single_uid()) { 
    945943          url = '_forward_uid='+uid+'&_mbox='+urlencode(this.env.mailbox); 
     
    951949 
    952950      case 'print': 
    953         var uid; 
    954951        if (uid = this.get_single_uid()) { 
    955952          ref.printwin = window.open(this.env.comm_path+'&_action=print&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(this.env.safemode ? '&_safe=1' : '')); 
     
    963960 
    964961      case 'viewsource': 
    965         var uid; 
    966962        if (uid = this.get_single_uid()) { 
    967963          ref.sourcewin = window.open(this.env.comm_path+'&_action=viewsource&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)); 
     
    972968 
    973969      case 'download': 
    974         var uid; 
    975970        if (uid = this.get_single_uid()) 
    976971          this.goto_url('viewsource', '&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+'&_save=1'); 
     
    10691064  this.enable_command = function() 
    10701065  { 
    1071     var args = Array.prototype.slice.call(arguments), 
     1066    var i, n, args = Array.prototype.slice.call(arguments), 
    10721067      enable = args.pop(), cmd; 
    10731068 
    1074     for (var n=0; n<args.length; n++) { 
     1069    for (n=0; n<args.length; n++) { 
    10751070      cmd = args[n]; 
    10761071      // argument of type array 
     
    10811076      // push array elements into commands array 
    10821077      else { 
    1083         for (var i in cmd) 
     1078        for (i in cmd) 
    10841079          args.push(cmd[i]); 
    10851080      } 
     
    12541249      this.initialListScrollTop = this.gui_objects.folderlist.parentNode.scrollTop; 
    12551250 
    1256       var li, pos, list, height; 
    1257       list = $(this.gui_objects.folderlist); 
    1258       pos = list.offset(); 
     1251      var k, li, height, 
     1252        list = $(this.gui_objects.folderlist); 
     1253        pos = list.offset(); 
     1254 
    12591255      this.env.folderlist_coords = { x1:pos.left, y1:pos.top, x2:pos.left + list.width(), y2:pos.top + list.height() }; 
    12601256 
    12611257      this.env.folder_coords = []; 
    1262       for (var k in model) { 
     1258      for (k in model) { 
    12631259        if (li = this.get_folder_li(k)) { 
    12641260          // only visible folders 
     
    12961292  { 
    12971293    if (this.gui_objects.folderlist && this.env.folder_coords) { 
    1298       // offsets to compensate for scrolling while dragging a message 
    1299       var boffset = bw.ie ? -document.documentElement.scrollTop : this.initialBodyScrollTop; 
    1300       var moffset = this.initialListScrollTop-this.gui_objects.folderlist.parentNode.scrollTop; 
    1301       var toffset = -moffset-boffset; 
    1302       var li, div, pos, mouse, check, oldclass, 
    1303         layerclass = 'draglayernormal'; 
     1294      var k, li, div, check, oldclass, 
     1295        layerclass = 'draglayernormal', 
     1296        mouse = rcube_event.get_mouse_pos(e), 
     1297        pos = this.env.folderlist_coords, 
     1298        // offsets to compensate for scrolling while dragging a message 
     1299        boffset = bw.ie ? -document.documentElement.scrollTop : this.initialBodyScrollTop, 
     1300        moffset = this.initialListScrollTop-this.gui_objects.folderlist.parentNode.scrollTop; 
    13041301 
    13051302      if (this.contact_list && this.contact_list.draglayer) 
    13061303        oldclass = this.contact_list.draglayer.attr('class'); 
    13071304 
    1308       mouse = rcube_event.get_mouse_pos(e); 
    1309       pos = this.env.folderlist_coords; 
    1310       mouse.y += toffset; 
     1305      mouse.y += -moffset-boffset; 
    13111306 
    13121307      // if mouse pointer is outside of folderlist 
     
    13231318 
    13241319      // over the folders 
    1325       for (var k in this.env.folder_coords) { 
     1320      for (k in this.env.folder_coords) { 
    13261321        pos = this.env.folder_coords[k]; 
    13271322        if (mouse.x >= pos.x1 && mouse.x < pos.x2 && mouse.y >= pos.y1 && mouse.y < pos.y2){ 
    1328          if ((check = this.check_droptarget(k))) { 
     1323          if ((check = this.check_droptarget(k))) { 
    13291324            li = this.get_folder_li(k); 
    13301325            div = $(li.getElementsByTagName('div')[0]); 
     
    13371332              this.folder_auto_expand = k; 
    13381333              this.folder_auto_timer = window.setTimeout(function() { 
    1339                   rcmail.command('collapse-folder', rcmail.folder_auto_expand); 
    1340                   rcmail.drag_start(null); 
    1341                 }, 1000); 
     1334                rcmail.command('collapse-folder', rcmail.folder_auto_expand); 
     1335                rcmail.drag_start(null); 
     1336              }, 1000); 
    13421337            } else if (this.folder_auto_timer) { 
    13431338              window.clearTimeout(this.folder_auto_timer); 
     
    33543349  this.remove_from_attachment_list = function(name) 
    33553350  { 
    3356     if (this.env.attachments[name]) 
    3357       delete this.env.attachments[name]; 
    3358  
    3359     if (!this.gui_objects.attachmentlist) 
    3360       return false; 
    3361  
    3362     var list = this.gui_objects.attachmentlist.getElementsByTagName("li"); 
    3363     for (i=0; i<list.length; i++) 
    3364       if (list[i].id == name) 
    3365         this.gui_objects.attachmentlist.removeChild(list[i]); 
     3351    delete this.env.attachments[name]; 
     3352    $('#'+name).remove(); 
    33663353  }; 
    33673354 
     
    37003687 
    37013688    // display search results 
    3702     var ul, li, text, init, 
     3689    var i, len, ul, li, text, init, 
    37033690      value = this.ksearch_value, 
    37043691      data = this.ksearch_data, 
     
    37313718 
    37323719    // add each result line to list 
    3733     if (results && results.length) { 
    3734       for (i=0; i < results.length && maxlen > 0; i++) { 
     3720    if (results && (len = results.length)) { 
     3721      for (i=0; i < len && maxlen > 0; i++) { 
    37353722        text = typeof results[i] === 'object' ? results[i].name : results[i]; 
    37363723        li = document.createElement('LI'); 
     
    37533740    } 
    37543741 
    3755     if (results && results.length) 
     3742    if (len) 
    37563743      this.env.contacts = this.env.contacts.concat(results); 
    37573744 
     
    40364023  this.delete_contacts = function() 
    40374024  { 
    4038     // exit if no mailbox specified or if selection is empty 
    40394025    var selection = this.contact_list.get_selection(), 
    40404026      undelete = this.env.address_sources[this.env.source].undelete; 
    40414027 
     4028    // exit if no mailbox specified or if selection is empty 
    40424029    if (!(selection.length || this.env.cid) || (!undelete && !confirm(this.get_label('deletecontactconfirm')))) 
    40434030      return; 
     
    44234410 
    44244411          this.init_edit_field(col, input); 
    4425            
     4412 
    44264413          if (colprop.type == 'date' && $.datepicker) 
    44274414            input.datepicker(); 
     
    51615148  this.set_button = function(command, state) 
    51625149  { 
    5163     var button, obj, a_buttons = this.buttons[command]; 
    5164  
    5165     if (!a_buttons || !a_buttons.length) 
    5166       return false; 
    5167  
    5168     for (var n=0; n<a_buttons.length; n++) { 
     5150    var n, button, obj, a_buttons = this.buttons[command], 
     5151      len = a_buttons ? a_buttons.length : 0; 
     5152 
     5153    for (n=0; n<len; n++) { 
    51695154      button = a_buttons[n]; 
    51705155      obj = document.getElementById(button.id); 
     
    52015186  this.set_alttext = function(command, label) 
    52025187  { 
    5203     if (!this.buttons[command] || !this.buttons[command].length) 
    5204       return; 
    5205  
    5206     var button, obj, link; 
    5207     for (var n=0; n<this.buttons[command].length; n++) { 
    5208       button = this.buttons[command][n]; 
     5188    var n, button, obj, link, a_buttons = this.buttons[command], 
     5189      len = a_buttons ? a_buttons.length : 0; 
     5190 
     5191    for (n=0; n<len; n++) { 
     5192      button = a_buttons[n]; 
    52095193      obj = document.getElementById(button.id); 
    52105194 
    5211       if (button.type=='image' && obj) { 
     5195      if (button.type == 'image' && obj) { 
    52125196        obj.setAttribute('alt', this.get_label(label)); 
    52135197        if ((link = obj.parentNode) && link.tagName.toLowerCase() == 'a') 
     
    52225206  this.button_over = function(command, id) 
    52235207  { 
    5224     var button, elm, a_buttons = this.buttons[command]; 
    5225  
    5226     if (!a_buttons || !a_buttons.length) 
    5227       return false; 
    5228  
    5229     for (var n=0; n<a_buttons.length; n++) { 
     5208    var n, button, obj, a_buttons = this.buttons[command], 
     5209      len = a_buttons ? a_buttons.length : 0; 
     5210 
     5211    for (n=0; n<len; n++) { 
    52305212      button = a_buttons[n]; 
    52315213      if (button.id == id && button.status == 'act') { 
    5232         elm = document.getElementById(button.id); 
    5233         if (elm && button.over) { 
     5214        obj = document.getElementById(button.id); 
     5215        if (obj && button.over) { 
    52345216          if (button.type == 'image') 
    5235             elm.src = button.over; 
     5217            obj.src = button.over; 
    52365218          else 
    5237             elm.className = button.over; 
     5219            obj.className = button.over; 
    52385220        } 
    52395221      } 
     
    52445226  this.button_sel = function(command, id) 
    52455227  { 
    5246     var button, elm, a_buttons = this.buttons[command]; 
    5247  
    5248     if (!a_buttons || !a_buttons.length) 
    5249       return; 
    5250  
    5251     for (var n=0; n<a_buttons.length; n++) { 
     5228    var n, button, obj, a_buttons = this.buttons[command], 
     5229      len = a_buttons ? a_buttons.length : 0; 
     5230 
     5231    for (n=0; n<len; n++) { 
    52525232      button = a_buttons[n]; 
    52535233      if (button.id == id && button.status == 'act') { 
    5254         elm = document.getElementById(button.id); 
    5255         if (elm && button.sel) { 
     5234        obj = document.getElementById(button.id); 
     5235        if (obj && button.sel) { 
    52565236          if (button.type == 'image') 
    5257             elm.src = button.sel; 
     5237            obj.src = button.sel; 
    52585238          else 
    5259             elm.className = button.sel; 
     5239            obj.className = button.sel; 
    52605240        } 
    52615241        this.buttons_sel[id] = command; 
     
    52675247  this.button_out = function(command, id) 
    52685248  { 
    5269     var button, elm, a_buttons = this.buttons[command]; 
    5270  
    5271     if (!a_buttons || !a_buttons.length) 
    5272       return; 
    5273  
    5274     for (var n=0; n<a_buttons.length; n++) { 
     5249    var n, button, obj, a_buttons = this.buttons[command], 
     5250      len = a_buttons ? a_buttons.length : 0; 
     5251 
     5252    for (n=0; n<len; n++) { 
    52755253      button = a_buttons[n]; 
    52765254      if (button.id == id && button.status == 'act') { 
    5277         elm = document.getElementById(button.id); 
    5278         if (elm && button.act) { 
     5255        obj = document.getElementById(button.id); 
     5256        if (obj && button.act) { 
    52795257          if (button.type == 'image') 
    5280             elm.src = button.act; 
     5258            obj.src = button.act; 
    52815259          else 
    5282             elm.className = button.act; 
    5283         } 
    5284       } 
    5285     } 
    5286   }; 
    5287  
     5260            obj.className = button.act; 
     5261        } 
     5262      } 
     5263    } 
     5264  }; 
    52885265 
    52895266  this.focus_textfield = function(elem) 
     
    56115588  this.toggle_prefer_html = function(checkbox) 
    56125589  { 
    5613     var elem; 
    5614     if (elem = document.getElementById('rcmfd_addrbook_show_images')) 
    5615       elem.disabled = !checkbox.checked; 
     5590    $('#rcmfd_addrbook_show_images').prop('disabled', !checkbox.checked); 
    56165591  }; 
    56175592 
    56185593  this.toggle_preview_pane = function(checkbox) 
    56195594  { 
    5620     var elem; 
    5621     if (elem = document.getElementById('rcmfd_preview_pane_mark_read')) 
    5622       elem.disabled = !checkbox.checked; 
     5595    $('#rcmfd_preview_pane_mark_read').prop('disabled', !checkbox.checked); 
    56235596  }; 
    56245597 
     
    57365709    $.ajax({ type: 'POST', url: url, data: htmlText, contentType: 'application/octet-stream', 
    57375710      error: function(o, status, err) { rcmail.http_error(o, status, err, lock); }, 
    5738       success: function(data) { rcmail.set_busy(false, null, lock); $(document.getElementById(id)).val(data); rcmail.log(data); } 
     5711      success: function(data) { rcmail.set_busy(false, null, lock); $('#'+id).val(data); rcmail.log(data); } 
    57395712    }); 
    57405713  }; 
     
    57435716  { 
    57445717    var lock = this.set_busy(true, 'converting'); 
    5745     $(document.getElementById(id)).val(plainText ? '<pre>'+plainText+'</pre>' : ''); 
     5718    $('#'+id).val(plainText ? '<pre>'+plainText+'</pre>' : ''); 
    57465719    this.set_busy(false, null, lock); 
    57475720  }; 
Note: See TracChangeset for help on using the changeset viewer.