📄 ajax.js
字号:
SUGAR.email2.addFileDialog.hide(); // focus attachments SUGAR.email2.composeLayout.showAttachmentPanel(idx); }};/////////////////////////////////////////////////////////////////////////////// PER MODULE CALLBACK OBJECTSAjaxObject.accounts = { saveOutboundCleanup : function(o) { var ret = JSON.parse(o.responseText); SUGAR.mailers = ret.mailers; SUGAR.email2.accounts.rebuildMailerOptions(); SUGAR.email2.accounts.outboundDialog.hide(); /*// clear out form var form = document.getElementById('outboundEmailForm'); for(i=0; i<form.elements.length; i++) { if(form.elements[i].name == 'mail_smtpport') { form.elements[i].value = 25; } else if(form.elements[i].type != 'button') { form.elements[i].value = ''; } else if(form.elements[i].type == 'checkbox') { form.elements[i].checked = false; } }*/ // preselect new SMTP server var sel = document.forms['ieAccount'].elements['outbound_email']; for(i=0; i<sel.options.length; i++) { if(sel.options[i].value == ret.newId) { sel.options[i].selected = true; return; } } }, callbackEditOutbound : { success : function(o) { var ret = JSON.parse(o.responseText); // show overlay SUGAR.email2.accounts.showAddSmtp(); // fill values document.getElementById("mail_id").value = ret.id; document.getElementById("mail_sendtype").value = ret.mail_sendtype; document.getElementById("mail_name").value = ret.name; document.getElementById("mail_smtpserver").value = ret.mail_smtpserver; document.getElementById("mail_smtpport").value = ret.mail_smtpport; document.getElementById("mail_smtpuser").value = ret.mail_smtpuser; document.getElementById("mail_smtppass").value = ret.mail_smtppass; document.getElementById("mail_smtpauth_req").checked = (ret.mail_smtpauth_req == 1) ? true : false; document.getElementById("mail_smtpssl").checked = (ret.mail_smtpssl == 1) ? true : false; }, failure : AjaxObject.handleFailure, timeout : AjaxObject.timeout, scope : AjaxObject }, callbackCheckMailProgress : { success : function(o) { if (typeof(SUGAR.email2.accounts.totalMsgCount) == "undefined") { SUGAR.email2.accounts.totalMsgCount = -1; } //Check for server timeout / errors var ret = JSON.parse(o.responseText); var done = false; if (typeof(o.responseText) == 'undefined' || o.responseText == "" || ret == false) { hideOverlay(); overlay(app_strings.LBL_EMAIL_ERROR_DESC, app_strings.LBL_EMAIL_ERROR_TIMEOUT, 'alert'); SUGAR.email2.accounts.totalMsgCount = -1; //SUGAR.email2.folders.rebuildFolders(); done = true; } var currIeId = ret['ieid']; var serverCount = ret.count; if (ret['status'] == 'done') { for(i=0; i < SUGAR.email2.accounts.ieIds.length; i++) { if (i == SUGAR.email2.accounts.ieIds.length - 1) { //We are all done done = true; break; } else if (SUGAR.email2.accounts.ieIds[i] == currIeId) { //Go to next account currIeId = SUGAR.email2.accounts.ieIds[i+1]; ret.count = 0; SUGAR.email2.accounts.totalMsgCount = -1; break; } } } else if (ret.mbox && ret.totalcount && ret.count) { SUGAR.email2.accounts.totalMsgCount = ret.totalcount; if (ret.count >= ret.totalcount) { serverCount = 0; } } else if (SUGAR.email2.accounts.totalMsgCount < 0 && ret.totalcount) { SUGAR.email2.accounts.totalMsgCount = ret.totalcount; } else { hideOverlay(); overlay(app_strings.LBL_EMAIL_ERROR_DESC, app_strings.LBL_EMAIL_ERROR_TIMEOUT, 'alert'); SUGAR.email2.accounts.totalMsgCount = -1; done = true; } if (done) { SUGAR.email2.accounts.totalMsgCount = -1; hideOverlay(); SUGAR.email2.folders.rebuildFolders(); SUGAR.email2.grid.getDataSource().reload(); } else if (SUGAR.email2.accounts.totalMsgCount < 0) { Ext.MessageBox.updateProgress(0, "Checking Account " + (i + 2) + " of " + SUGAR.email2.accounts.ieIds.length); AjaxObject.startRequest(AjaxObject.accounts.callbackCheckMailProgress, urlStandard + '&emailUIAction=checkEmailProgress&ieId=' + currIeId + "¤tCount=0&synch=" + ret.synch); } else { Ext.MessageBox.updateProgress(ret.count / SUGAR.email2.accounts.totalMsgCount, "Downloaded " + ret.count + " of " + SUGAR.email2.accounts.totalMsgCount + " emails"); AjaxObject.startRequest(AjaxObject.accounts.callbackCheckMailProgress, urlStandard + '&emailUIAction=checkEmailProgress&ieId=' + currIeId + "¤tCount=" + serverCount + '&mbox=' + ret.mbox + '&synch=' + ret.synch); } }, failure : AjaxObject.handleFailure, timeout : AjaxObject.timeout, scope : AjaxObject }};AjaxObject.addressBook = { /** * displays search results for a user querying on what contacts, users, leads, prospects they have access to */ displaySearchResults : function(o) { // prep header var header = { tag : 'table', id : 'peopleTable', cellpadding : 0, cellspacing : 0, border : 0, width : "100%", cls : 'tabForm' }; if(document.getElementById("peopleTable")) { //SUGAR.email2.util.removeElementRecursive(document.getElementById("peopleTable")); document.getElementById("peopleTable").innerHTML = ""; } else { Ext.DomHelper.append("contactsDialogueHTML", header); } Ext.DomHelper.append("peopleTable", { tag : 'tr', id : 'peopleTableHeaderRow' }); Ext.DomHelper.append('peopleTableHeaderRow', { tag : 'td', width : "1%", cls : 'dataLabel', html : " " }); Ext.DomHelper.append('peopleTableHeaderRow', { tag : 'td', width : "30%", cls : 'dataLabel', html : app_strings.LBL_EMAIL_ADDRESS_BOOK_NAME }); Ext.DomHelper.append('peopleTableHeaderRow', { tag : 'td', width : "39%", cls : 'dataLabel', html : app_strings.LBL_EMAIL_ADDRESS_BOOK_EMAIL_ADDR }); Ext.DomHelper.append('peopleTableHeaderRow', { tag : 'td', width : "30%", cls : 'dataLabel' }); var ret = JSON.parse(o.responseText); for(var i in ret) { if (i > -1) { SUGAR.email2.addressBook.displaySearchResultRow(i, ret[i]); } } // cn: bug 13912 - IE's dom is fubar. fix with IE-hack if(SUGAR.email2.util.isIe()) { document.getElementById('contactsDialogueHTML').innerHTML = document.getElementById('contactsDialogueHTML').innerHTML; } }, /** * Retrieves Contacts (assigned and hand-selected) for the current user */ getUserContacts : function(o) { var ret = JSON.parse(o.responseText); SUGAR.email2.addressBook._contactCache = ret; SUGAR.email2.addressBook.buildContactList(ret); if(SUGAR.email2.addressBook.editContactDialog && SUGAR.email2.addressBook.editContactDialog.isVisible()) { SUGAR.email2.addressBook.editContactDialog.hide(); } }, /** * sets the edit contact mini-form in HTML */ setEditContactForm : function(o) { var ret = JSON.parse(o.responseText); var layout = SUGAR.email2.addressBook.editContactDialog.getLayout(); var panel = new Ext.ContentPanel('editContactTab', {title: ret.contactName}); //Prepare global variables to be read by the edit form module='Contacts'; panel.setContent(ret.form); SUGAR.email2.addressBook.editContactDialog.beginUpdate(); SUGAR.email2.addressBook.editContactDialog.setTitle(app_strings.LBL_EMAIL_EDIT_CONTACT); layout.add('center', panel); prefillEmailAddresses(ret.prefillData); SUGAR.email2.addressBook.editContactDialog.endUpdate(); SUGAR.email2.addressBook.editContactDialog.show(); SUGAR.email2.addressBook.editContactDialog.resizeTo(600, 400); }};/** * AddressBook callbacks */AjaxObject.addressBook.callback = { editContact : { success : AjaxObject.addressBook.setEditContactForm, failure : AjaxObject.handleFailure, timeout : AjaxObject.timeout, scope : AjaxObject }, search : { success : AjaxObject.addressBook.displaySearchResults, failure : AjaxObject.handleFailure, timeout : AjaxObject.timeout, scope : AjaxObject }};/////////////////////////////////////////////////////////////////////////////////// COMPOSE LAYOUTAjaxObject.composeLayout = { /** * Populates the record id */ saveDraftCleanup : function(o) { hideOverlay(); var ret = JSON.parse(o.responseText); SUGAR.email2.composeLayout.forceCloseCompose(ret.composeLayoutId); }};AjaxObject.composeLayout.callback = { saveDraft : { success : AjaxObject.composeLayout.saveDraftCleanup, failure : AjaxObject.handleFailure, timeout : AjaxObject.timeout, scope : AjaxObject }};AjaxObject.detailView = { /** * Pops-up a printable view of an email */ displayPrintable : function(o) { var ret = JSON.parse(o.responseText); var displayTemplate = new Ext.DomHelper.Template(SUGAR.email2.templates['viewPrintable']); // 2 below must be in global context meta = ret.meta; meta['panelId'] = SUGAR.email2.util.getPanelId(); email = ret.meta.email; if (typeof(email.cc) == 'undefined') { email.cc = ""; } var out = displayTemplate.applyTemplate({ 'app_strings' : app_strings, 'theme' : theme, 'idx' : 'Preview', 'meta' : meta, 'email' : meta.email }); // open popup window var popup = window.open('modules/Emails/templates/_blank.html', 'printwin' , 'scrollbars=yes,menubar=no,height=600,width=800,resizable=yes,toolbar=no,location=no,status=no'); popup.document.write(out); popup.document.close(); }, /** * Takes formatted response and creates a modal pop-over containing a title and content */ displayView : function(o) { var ret = JSON.parse(o.responseText); if(!SUGAR.email2.detailView.viewDialog) { SUGAR.email2.detailView.viewDialog = new Ext.LayoutDialog("viewDialog", { iframe : true, modal : true, width : 800, height : 450, shadow : true, minWidth: 300, minHeight: 300, center: { autoScroll:true, closeOnTab: false, alwaysShowTabs: false } }); } // end lazy load SUGAR.email2.detailView.viewDialog.setTitle(ret.title); var view = new Ext.ContentPanel('viewDialogContent', { title : ret.title, width : "100%", height : "100%" }); view.setContent(ret.html); SUGAR.email2.detailView.viewDialog.beginUpdate(); SUGAR.email2.detailView.viewDialog.getLayout().add('center', view); SUGAR.email2.detailView.viewDialog.show(); SUGAR.email2.detailView.viewDialog.endUpdate(); SUGAR.email2.detailView.viewDialog.resizeTo(800, 450); }, /** * Generates a modal popup to populate with the contents of bean's full EditView */ showQuickCreateForm : function(o) { var ret = JSON.parse(o.responseText); if(!SUGAR.email2.detailView.quickCreateDialog) { SUGAR.email2.detailView.quickCreateDialog = new Ext.LayoutDialog("quickCreate", { iframe : true, modal : true, width : 800, height : 450, shadow : true, minWidth: 300, minHeight: 300, title : app_strings.LBL_EMAIL_QUICK_CREATE, center: { autoScroll:true, closeOnTab: false, alwaysShowTabs: false } }); } // end lazy load var qcEditView = new Ext.ContentPanel('quickCreateContent', { title : app_strings.LBL_EMAIL_QUICK_CREATE, width : "100%", height : "100%" }); qcEditView.setContent(ret.html);/* var editForm = document.getElementById('form_EmailQCView_' + ret.module); editForm.id = 'EditView'; editForm.name = 'EditView';*/ SUGAR.util.evalScript(ret.html); SUGAR.email2.detailView.quickCreateDialog.ieId = ret.ieId; SUGAR.email2.detailView.quickCreateDialog.uid = ret.uid; SUGAR.email2.detailView.quickCreateDialog.mbox = ret.mbox; SUGAR.email2.detailView.quickCreateDialog.qcmodule = ret.module; SUGAR.email2.detailView.quickCreateDialog.beginUpdate(); SUGAR.email2.detailView.quickCreateDialog.getLayout().add('center', qcEditView); SUGAR.email2.detailView.quickCreateDialog.show(); SUGAR.email2.detailView.quickCreateDialog.endUpdate(); SUGAR.email2.detailView.quickCreateDialog.resizeTo(800, 450); var editForm = document.getElementById('form_EmailQCView_' + ret.module); if (editForm) { editForm.module.value = 'Emails'; prefillEmailAddresses(ret.emailAddress); } }, saveQuickCreateForm : function(o) { hideOverlay(); SUGAR.email2.detailView.quickCreateDialog.hide(); validate['EditView'] = [ ]; }, saveQuickCreateFormAndReply : function(o) { hideOverlay(); var ret = JSON.parse(o.responseText); SUGAR.email2.detailView.quickCreateDialog.hide(); var qcd = SUGAR.email2.detailView.quickCreateDialog; var type = (qcd.qcmodule == 'Cases') ? 'replyCase' : 'reply'; if (ret) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -