emailui.js

来自「SugarCRM5.1 开源PHP客户关系管理系统」· JavaScript 代码 · 共 2,103 行 · 第 1/5 页

JS
2,103
字号
        tmp = Ext.DomHelper.append('resultRow' + idx, {            tag : 'td',            width : '1%',            nowrap : "NOWRAP",            style : "text-align:right;",            cls : ''        }, true);        var buttonId = tmp.dom.id;        // form        tmp = Ext.DomHelper.append(buttonId, {            tag : 'form',            id : 'addForm' + idx,            method : 'get',            action : '#'        }, true);        var addFormId = tmp.dom.id;        Ext.DomHelper.append(addFormId, {            tag : 'input',            type : 'hidden',            name : 'bean_id',            value : obj.id        });        Ext.DomHelper.append(addFormId, {            tag : 'input',            type : 'hidden',            name : 'bean_module',            value : obj.module        });        Ext.DomHelper.append(addFormId, {            tag : 'input',            type : 'button',            cls : 'button',            value : app_strings.LBL_EMAIL_ADDRESS_BOOK_ADD,            onclick : "SUGAR.email2.addressBook.addContact('addForm" + idx + "');"        });    },    editContact : function() {        SUGAR.email2.contextMenus.contactsContextMenu.hide();        var element = SUGAR.email2.contactView.getSelectedNodes()[0];        var elementId = "";        if (element.className.indexOf('address-contact') > -1) {            elementId = element.id;        } else if (element.className.indexOf('address-exp-contact') > -1) {            elementId = element.id.substring(2);        }        if(elementId != "") {            // verify that it is a Sugar Contact            var contact = SUGAR.email2.addressBook._contactCache[elementId];            if(contact.module == 'Contacts') {                // lazy load settings                if(!SUGAR.email2.addressBook.editContactDialog) {                    SUGAR.email2.addressBook.editContactDialog = new Ext.LayoutDialog("editContact", {                        modal:true,                        width:600,                        height:400,                        shadow:true,                        minWidth:300,                        minHeight:300,                        center: {                            autoScroll:true,                            tabPosition: SUGAR.email2.userPrefs.emailSettings.tabPosition,                            closeOnTab: false,                            alwaysShowTabs: false                        }                    });                } // end lazy load                AjaxObject.startRequest(AjaxObject.addressBook.callback.editContact, urlStandard + "&emailUIAction=editContact&id=" + elementId);            } else {                overlay(app_strings.LBL_EMAIL_ERROR_DESC, app_strings.LBL_EMAIL_ADDRESS_BOOK_ERR_NOT_CONTACT, 'alert');            }        } else {            alert(app_strings.LBL_EMAIL_MENU_MAKE_SELECTION);        }    },        /**     * Filters contact entries based on user input     */    filter : function(inputEl) {        var ret = new Object();        var re = new RegExp(inputEl.value, "gi");        for(var i in this._contactCache) {            if(this._contactCache[i].name.match(re)) {                ret[i] = this._contactCache[i];            }        }        this.buildContactList(ret);    },    fullForm : function(id, module) {        document.location = "index.php?return_module=Emails&return_action=index&module=" + module + "&action=EditView&record=" + id;    },    /**     * returns a formatted email address from the addressBook cache     */    getFormattedAddress : function(id) {        var o = this._contactCache[id];        var primaryEmail = '';        for(var i=0; i<o.email.length; i++) {            var currentEmail = o.email[i].email_address;            if(o.email[i].primary_address == 1) {                primaryEmail = o.email[i].email_address;            }        }        var finalEmail = (primaryEmail == "") ? currentEmail : primaryEmail;        var name = new String(o.name);        var finalName = name.replace(/(<([^>]+)>)/ig, "");        var ret = finalName + " <" + finalEmail + ">";        return ret;    },    /**     * Generates the listView form that unites users, contacts, leads, and prospects     * @return string HTML     */    getPeopleListView : function() {        var sf = document.getElementById('searchForm');        // lazy load searchform        if(sf == null || typeof(sf) == 'undefined') {            var tmp = null;            // search form            Ext.DomHelper.append("contactsDialogueHTML", {                tag : 'form',                id : 'searchForm',                method : 'GET',                action : "#"            });            Ext.DomHelper.append("searchForm", {                tag : 'table',                id : 'searchTable',                cellpadding : 0,                cellspacing : 0,                border : 0,                width : "100%",                cls : 'tabForm'            });            Ext.DomHelper.append("searchTable", {                tag : 'tr',                id : 'peopleTableSearchRow'            });            // first name            Ext.DomHelper.append('peopleTableSearchRow', {                tag : 'td',                nowrap : "NOWRAP",                id : "searchNameFirst",                cls : 'dataLabel',                html : app_strings.LBL_EMAIL_ADDRESS_BOOK_FIRST_NAME + ": "            });            Ext.DomHelper.append("searchNameFirst", {                tag : "input",                type : 'text',                name : 'first_name',                id : 'input_searchNameFirst'            });            // last name            Ext.DomHelper.append('peopleTableSearchRow', {                tag : 'td',                nowrap : "NOWRAP",                id : "searchNameLast",                cls : 'dataLabel',                html : app_strings.LBL_EMAIL_ADDRESS_BOOK_LAST_NAME + ": "            });            Ext.DomHelper.append("searchNameLast", {                tag : "input",                type : 'text',                name : 'last_name',                id : 'input_searchNameLast'            });            // email            Ext.DomHelper.append('peopleTableSearchRow', {                tag : 'td',                nowrap : "NOWRAP",                id : "searchEmail",                cls : 'dataLabel',                html : app_strings.LBL_EMAIL_ADDRESS_BOOK_EMAIL_ADDR + ": "            });            Ext.DomHelper.append("searchEmail", {                tag : "input",                type : 'text',                name : 'email_address',                id : 'input_searchEmail'            });            // search button            Ext.DomHelper.append('peopleTableSearchRow', {                tag : 'td',                nowrap : "NOWRAP",                id : "searchSubmit",                cls : 'dataLabel'            });            Ext.DomHelper.append("searchSubmit", {                tag : "input",                cls : 'button',                type : 'button',                onclick : "SUGAR.email2.addressBook.searchContacts();",                value : "   " + app_strings.LBL_EMAIL_ADDRESS_BOOK_SEARCH + "   ",                id : 'input_searchSubmit'            });            Ext.DomHelper.append("contactsDialogueHTML", {                tag : "br"            });        }        return document.getElementById('contactsDialogueHTML').innerHTML;    },    /**     * Parses through Contact object and returns the primary email address     * @param object     * @return string     */    getPrimaryEmailFromContact : function(contact) {        var emails = contact.email;        for(var i=0; i<emails.length; i++) {            if(emails[i].primary_address == '1') {                return emails[i].email_address;            }        }        return '';    },    /**     * Async call to get user's contacts & groups     */    getUserContacts : function() {        if(SUGAR.email2.addressBook._contactCache.length < 1) {            AjaxObject.startRequest(callbackGetUserContacts, urlStandard + "&emailUIAction=getUserContacts");        }    },    removeContact : function() {        SUGAR.email2.contextMenus.contactsContextMenu.hide();        if(confirm(app_strings.LBL_EMAIL_CONFIRM_DELETE)) {            var str = '';            var selectedItems = SUGAR.email2.contactView.getSelectedNodes();            removeHiddenNodes(selectedItems);            for(var i=0; i < selectedItems.length; i++) {                var node = selectedItems[i];                if (node.className.indexOf('address-contact') > -1) {                    if(str != '') {                        str += "::";                    }                    str += node.id;                } else if (node.className.indexOf('address-exp-contact') > -1) {                    if(str != '') {                        str += "::";                    }                    str += node.id.substring(2);                }            }            if(str != "") {                AjaxObject.startRequest(callbackGetUserContacts, urlStandard + '&emailUIAction=removeContact&ids=' + str);            }        }    },    /**     * commits changes to a contact record from Email 2.0     * @return bool false on failure     */    saveContact : function() {        var form = document.getElementById('editContactForm');        var errors = new Array();        var emailElements = new Array();        if(form.contact_last_name.value == "") {            errors.push(app_strings.LBL_EMAIL_ERROR_CONTACT_NAME)        }        if(errors.length > 0) {            var out = new String();            out = app_strings.LBL_EMAIL_ERROR_DESC;            for(i=0; i<errors.length; i++) {                if(out != "") {                    out += "\n";                }                out += errors[i];            }            alert(out);            return false;        } else {            var send = new Object();            send.invalid = new Array();            send.optOut = new Array();            send.primary = '';            // get values and save            for(var i=0; i<form.elements.length; i++) {                var el = form.elements[i];                if(el.type == 'text' || el.type == 'hidden') {                    send[el.name] = el.value;                    // get id if is address field                    if(el.name.match(/emailAddress[0-9]/) && el.value != "") {                        emailElements.push(el.name);                    }                }            }            // handle multi-value (PHP array) values            for(var j=0; j<emailElements.length; j++) {                var indexNumber = emailElements[j].substr(12);                var optOut = document.getElementById("emailAddressOptOutFlag" + indexNumber);                var invalid = document.getElementById("emailAddressInvalidFlag" + indexNumber);                var primary = document.getElementById("emailAddressPrimaryFlag" + indexNumber);                if(optOut && optOut.checked) {                    send.optOut.push(optOut.value);                }                if(invalid && invalid.checked) {                    send.invalid.push(invalid.value);                }                if(primary && primary.checked) {                    send.primary = primary.value;                }            }            var args = JSON.stringifyNoSecurity(send);            AjaxObject.startRequest(callbackGetUserContacts, urlStandard + "&emailUIAction=saveContactEdit&args=" + args);        }    },    /**     * Sets up async call to query for matching contacts, users, etc.     */    searchContacts : function() {        var fn = document.getElementById('input_searchNameFirst').value;        var ln = document.getElementById('input_searchNameLast').value;        var em = document.getElementById('input_searchEmail').value;        this.grid.getDataSource().baseParams['first_name'] = fn;        this.grid.getDataSource().baseParams['last_name'] = ln;        this.grid.getDataSource().baseParams['email_address'] = em;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?