| | |
| | | var n, p = this; |
| | | this.task = this.env.task; |
| | | |
| | | // check browser |
| | | if (this.env.server_error != 409 && (!bw.dom || !bw.xmlhttp_test() || (bw.mz && bw.vendver < 1.9))) { |
| | | // check browser capabilities (never use version checks here) |
| | | if (this.env.server_error != 409 && (!bw.dom || !bw.xmlhttp_test())) { |
| | | this.goto_url('error', '_code=0x199'); |
| | | return; |
| | | } |
| | |
| | | url = {}; |
| | | |
| | | if (this.task == 'mail') { |
| | | url._mbox = this.env.mailbox; |
| | | url = {_mbox: this.env.mailbox, _search: this.env.search_request}; |
| | | if (props) |
| | | url._to = props; |
| | | // also send search request so we can go back to search result after message is sent |
| | | if (this.env.search_request) |
| | | url._search = this.env.search_request; |
| | | } |
| | | // modify url if we're in addressbook |
| | | else if (this.task == 'addressbook') { |
| | |
| | | case 'reply-list': |
| | | case 'reply': |
| | | if (uid = this.get_single_uid()) { |
| | | url = {_reply_uid: uid, _mbox: this.env.mailbox}; |
| | | url = {_reply_uid: uid, _mbox: this.env.mailbox, _search: this.env.search_request}; |
| | | // do reply-list, when list is detected and popup menu wasn't used |
| | | if (command == 'reply-all') |
| | | // do reply-list, when list is detected and popup menu wasn't used |
| | | url._all = (!props && this.env.reply_all_mode == 1 && this.commands['reply-list'] ? 'list' : 'all'); |
| | | else if (command == 'reply-list') |
| | | url._all = 'list'; |
| | |
| | | // attach events |
| | | $.each(fn, function(i, f) { |
| | | row[i].onclick = function(e) { f(e); return rcube_event.cancel(e); }; |
| | | if (bw.touch) { |
| | | if (bw.touch && row[i].addEventListener) { |
| | | row[i].addEventListener('touchend', function(e) { |
| | | if (e.changedTouches.length == 1) { |
| | | f(e); |
| | |
| | | var submit_data = function() { |
| | | var multiple = files.length > 1, |
| | | ts = new Date().getTime(), |
| | | content = '<span>' + (multiple ? ref.get_label('uploadingmany') : files[0].name) + '</span>'; |
| | | // jQuery way to escape filename (#1490530) |
| | | content = $('<span>').text(multiple ? ref.get_label('uploadingmany') : files[0].name).html(); |
| | | |
| | | // add to attachments list |
| | | if (!ref.add2attachment_list(ts, { name:'', html:content, classname:'uploading', complete:false })) |
| | |
| | | if (!this.env.browser_capabilities) |
| | | this.env.browser_capabilities = {}; |
| | | |
| | | if (this.env.browser_capabilities.pdf === undefined) |
| | | this.env.browser_capabilities.pdf = this.pdf_support_check(); |
| | | |
| | | if (this.env.browser_capabilities.flash === undefined) |
| | | this.env.browser_capabilities.flash = this.flash_support_check(); |
| | | |
| | | if (this.env.browser_capabilities.tif === undefined) |
| | | this.tif_support_check(); |
| | | $.each(['pdf', 'flash', 'tif'], function() { |
| | | if (ref.env.browser_capabilities[this] === undefined) |
| | | ref.env.browser_capabilities[this] = ref[this + '_support_check'](); |
| | | }); |
| | | }; |
| | | |
| | | // Returns browser capabilities string |
| | |
| | | |
| | | this.tif_support_check = function() |
| | | { |
| | | var img = new Image(); |
| | | window.setTimeout(function() { |
| | | var img = new Image(); |
| | | img.onload = function() { ref.env.browser_capabilities.tif = 1; }; |
| | | img.onerror = function() { ref.env.browser_capabilities.tif = 0; }; |
| | | img.src = 'program/resources/blank.tif'; |
| | | }, 10); |
| | | |
| | | img.onload = function() { rcmail.env.browser_capabilities.tif = 1; }; |
| | | img.onerror = function() { rcmail.env.browser_capabilities.tif = 0; }; |
| | | img.src = 'program/resources/blank.tif'; |
| | | return 0; |
| | | }; |
| | | |
| | | this.pdf_support_check = function() |
| | | { |
| | | var plugin = navigator.mimeTypes ? navigator.mimeTypes["application/pdf"] : {}, |
| | | var i, plugin = navigator.mimeTypes ? navigator.mimeTypes["application/pdf"] : {}, |
| | | plugins = navigator.plugins, |
| | | len = plugins.length, |
| | | regex = /Adobe Reader|PDF|Acrobat/i; |
| | |
| | | return 1; |
| | | } |
| | | |
| | | window.setTimeout(function() { |
| | | $('<object>').css({position: 'absolute', left: '-10000px'}) |
| | | .attr({data: 'program/resources/dummy.pdf', width: 1, height: 1, type: 'application/pdf'}) |
| | | .load(function() { ref.env.browser_capabilities.pdf = 1; }) |
| | | .error(function() { ref.env.browser_capabilities.pdf = 0; }) |
| | | .appendTo($('body')); |
| | | }, 10); |
| | | |
| | | return 0; |
| | | }; |
| | | |