Changeset 5464 in subversion
- Timestamp:
- Nov 22, 2011 8:26:11 AM (19 months ago)
- File:
-
- 1 edited
-
trunk/roundcubemail/program/js/app.js (modified) (37 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/roundcubemail/program/js/app.js
r5450 r5464 129 129 this.init = function() 130 130 { 131 var p = this;131 var n, p = this; 132 132 this.task = this.env.task; 133 133 … … 139 139 140 140 // find all registered gui containers 141 for ( varn in this.gui_containers)141 for (n in this.gui_containers) 142 142 this.gui_containers[n] = $('#'+this.gui_containers[n]); 143 143 144 144 // find all registered gui objects 145 for ( varn in this.gui_objects)145 for (n in this.gui_objects) 146 146 this.gui_objects[n] = rcube_find_object(this.gui_objects[n]); 147 147 … … 381 381 382 382 // 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 385 387 $('#rcmlogintz').val(stdtz); 386 388 $('#rcmlogindst').val(tz > stdtz ? 1 : 0); … … 443 445 this.command = function(command, props, obj) 444 446 { 445 var ret ;447 var ret, uid, cid, url, flag; 446 448 447 449 if (obj && obj.blur) … … 522 524 523 525 case 'open': 524 var uid;525 526 if (uid = this.get_single_uid()) { 526 527 obj.href = '?_task='+this.env.task+'&_action=show&_mbox='+urlencode(this.env.mailbox)+'&_uid='+uid; … … 591 592 case 'show': 592 593 if (this.task == 'mail') { 593 varuid = this.get_single_uid();594 uid = this.get_single_uid(); 594 595 if (uid && (!this.env.uid || uid != this.env.uid)) { 595 596 if (this.env.mailbox == this.env.drafts_mailbox) … … 600 601 } 601 602 else if (this.task == 'addressbook') { 602 varcid = props ? props : this.get_single_cid();603 cid = props ? props : this.get_single_cid(); 603 604 if (cid && !(this.env.action == 'show' && cid == this.env.cid)) 604 605 this.load_contact(cid, 'show'); … … 616 617 617 618 case 'edit': 618 var cid;619 619 if (this.task=='addressbook' && (cid = this.get_single_cid())) 620 620 this.load_contact(cid, 'edit'); … … 622 622 this.load_identity(props, 'edit-identity'); 623 623 else if (this.task=='mail' && (cid = this.get_single_uid())) { 624 varurl = (this.env.mailbox == this.env.drafts_mailbox) ? '_draft_uid=' : '_uid=';624 url = (this.env.mailbox == this.env.drafts_mailbox) ? '_draft_uid=' : '_uid='; 625 625 this.goto_url('compose', url+cid+'&_mbox='+urlencode(this.env.mailbox), true); 626 626 } … … 700 700 break; 701 701 702 var uid,flag = 'read';702 flag = 'read'; 703 703 704 704 if (props._row.uid) { … … 720 720 break; 721 721 722 var uid,flag = 'flagged';722 flag = 'flagged'; 723 723 724 724 if (props._row.uid) { … … 816 816 817 817 case 'compose': 818 varurl = this.url('mail/compose');818 url = this.url('mail/compose'); 819 819 820 820 if (this.task == 'mail') { … … 926 926 case 'reply-list': 927 927 case 'reply': 928 var uid;929 928 if (uid = this.get_single_uid()) { 930 varurl = '_reply_uid='+uid+'&_mbox='+urlencode(this.env.mailbox);929 url = '_reply_uid='+uid+'&_mbox='+urlencode(this.env.mailbox); 931 930 if (command == 'reply-all') 932 931 // do reply-list, when list is detected and popup menu wasn't used … … 941 940 case 'forward-attachment': 942 941 case 'forward': 943 var uid, url;944 942 if (uid = this.get_single_uid()) { 945 943 url = '_forward_uid='+uid+'&_mbox='+urlencode(this.env.mailbox); … … 951 949 952 950 case 'print': 953 var uid;954 951 if (uid = this.get_single_uid()) { 955 952 ref.printwin = window.open(this.env.comm_path+'&_action=print&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(this.env.safemode ? '&_safe=1' : '')); … … 963 960 964 961 case 'viewsource': 965 var uid;966 962 if (uid = this.get_single_uid()) { 967 963 ref.sourcewin = window.open(this.env.comm_path+'&_action=viewsource&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)); … … 972 968 973 969 case 'download': 974 var uid;975 970 if (uid = this.get_single_uid()) 976 971 this.goto_url('viewsource', '&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+'&_save=1'); … … 1069 1064 this.enable_command = function() 1070 1065 { 1071 var args = Array.prototype.slice.call(arguments),1066 var i, n, args = Array.prototype.slice.call(arguments), 1072 1067 enable = args.pop(), cmd; 1073 1068 1074 for ( varn=0; n<args.length; n++) {1069 for (n=0; n<args.length; n++) { 1075 1070 cmd = args[n]; 1076 1071 // argument of type array … … 1081 1076 // push array elements into commands array 1082 1077 else { 1083 for ( vari in cmd)1078 for (i in cmd) 1084 1079 args.push(cmd[i]); 1085 1080 } … … 1254 1249 this.initialListScrollTop = this.gui_objects.folderlist.parentNode.scrollTop; 1255 1250 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 1259 1255 this.env.folderlist_coords = { x1:pos.left, y1:pos.top, x2:pos.left + list.width(), y2:pos.top + list.height() }; 1260 1256 1261 1257 this.env.folder_coords = []; 1262 for ( vark in model) {1258 for (k in model) { 1263 1259 if (li = this.get_folder_li(k)) { 1264 1260 // only visible folders … … 1296 1292 { 1297 1293 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; 1304 1301 1305 1302 if (this.contact_list && this.contact_list.draglayer) 1306 1303 oldclass = this.contact_list.draglayer.attr('class'); 1307 1304 1308 mouse = rcube_event.get_mouse_pos(e); 1309 pos = this.env.folderlist_coords; 1310 mouse.y += toffset; 1305 mouse.y += -moffset-boffset; 1311 1306 1312 1307 // if mouse pointer is outside of folderlist … … 1323 1318 1324 1319 // over the folders 1325 for ( vark in this.env.folder_coords) {1320 for (k in this.env.folder_coords) { 1326 1321 pos = this.env.folder_coords[k]; 1327 1322 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))) { 1329 1324 li = this.get_folder_li(k); 1330 1325 div = $(li.getElementsByTagName('div')[0]); … … 1337 1332 this.folder_auto_expand = k; 1338 1333 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); 1342 1337 } else if (this.folder_auto_timer) { 1343 1338 window.clearTimeout(this.folder_auto_timer); … … 3354 3349 this.remove_from_attachment_list = function(name) 3355 3350 { 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(); 3366 3353 }; 3367 3354 … … 3700 3687 3701 3688 // display search results 3702 var ul, li, text, init,3689 var i, len, ul, li, text, init, 3703 3690 value = this.ksearch_value, 3704 3691 data = this.ksearch_data, … … 3731 3718 3732 3719 // 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++) { 3735 3722 text = typeof results[i] === 'object' ? results[i].name : results[i]; 3736 3723 li = document.createElement('LI'); … … 3753 3740 } 3754 3741 3755 if ( results && results.length)3742 if (len) 3756 3743 this.env.contacts = this.env.contacts.concat(results); 3757 3744 … … 4036 4023 this.delete_contacts = function() 4037 4024 { 4038 // exit if no mailbox specified or if selection is empty4039 4025 var selection = this.contact_list.get_selection(), 4040 4026 undelete = this.env.address_sources[this.env.source].undelete; 4041 4027 4028 // exit if no mailbox specified or if selection is empty 4042 4029 if (!(selection.length || this.env.cid) || (!undelete && !confirm(this.get_label('deletecontactconfirm')))) 4043 4030 return; … … 4423 4410 4424 4411 this.init_edit_field(col, input); 4425 4412 4426 4413 if (colprop.type == 'date' && $.datepicker) 4427 4414 input.datepicker(); … … 5161 5148 this.set_button = function(command, state) 5162 5149 { 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++) { 5169 5154 button = a_buttons[n]; 5170 5155 obj = document.getElementById(button.id); … … 5201 5186 this.set_alttext = function(command, label) 5202 5187 { 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]; 5209 5193 obj = document.getElementById(button.id); 5210 5194 5211 if (button.type =='image' && obj) {5195 if (button.type == 'image' && obj) { 5212 5196 obj.setAttribute('alt', this.get_label(label)); 5213 5197 if ((link = obj.parentNode) && link.tagName.toLowerCase() == 'a') … … 5222 5206 this.button_over = function(command, id) 5223 5207 { 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++) { 5230 5212 button = a_buttons[n]; 5231 5213 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) { 5234 5216 if (button.type == 'image') 5235 elm.src = button.over;5217 obj.src = button.over; 5236 5218 else 5237 elm.className = button.over;5219 obj.className = button.over; 5238 5220 } 5239 5221 } … … 5244 5226 this.button_sel = function(command, id) 5245 5227 { 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++) { 5252 5232 button = a_buttons[n]; 5253 5233 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) { 5256 5236 if (button.type == 'image') 5257 elm.src = button.sel;5237 obj.src = button.sel; 5258 5238 else 5259 elm.className = button.sel;5239 obj.className = button.sel; 5260 5240 } 5261 5241 this.buttons_sel[id] = command; … … 5267 5247 this.button_out = function(command, id) 5268 5248 { 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++) { 5275 5253 button = a_buttons[n]; 5276 5254 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) { 5279 5257 if (button.type == 'image') 5280 elm.src = button.act;5258 obj.src = button.act; 5281 5259 else 5282 elm.className = button.act; 5283 } 5284 } 5285 } 5286 }; 5287 5260 obj.className = button.act; 5261 } 5262 } 5263 } 5264 }; 5288 5265 5289 5266 this.focus_textfield = function(elem) … … 5611 5588 this.toggle_prefer_html = function(checkbox) 5612 5589 { 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); 5616 5591 }; 5617 5592 5618 5593 this.toggle_preview_pane = function(checkbox) 5619 5594 { 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); 5623 5596 }; 5624 5597 … … 5736 5709 $.ajax({ type: 'POST', url: url, data: htmlText, contentType: 'application/octet-stream', 5737 5710 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); } 5739 5712 }); 5740 5713 }; … … 5743 5716 { 5744 5717 var lock = this.set_busy(true, 'converting'); 5745 $( document.getElementById(id)).val(plainText ? '<pre>'+plainText+'</pre>' : '');5718 $('#'+id).val(plainText ? '<pre>'+plainText+'</pre>' : ''); 5746 5719 this.set_busy(false, null, lock); 5747 5720 };
Note: See TracChangeset
for help on using the changeset viewer.
