⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grid.js

📁 SugarCRM5.1 开源PHP客户关系管理系统
💻 JS
字号:
/********************************************************************************* * SugarCRM is a customer relationship management program developed by * SugarCRM, Inc. Copyright (C) 2004 - 2007 SugarCRM Inc. *  * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation with the addition of the following permission added * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. *  * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more * details. *  * You should have received a copy of the GNU General Public License along with * this program; if not, see http://www.gnu.org/licenses or write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. *  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road, * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com. *  * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. *  * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * SugarCRM" logo. If the display of the logo is not reasonably feasible for * technical reasons, the Appropriate Legal Notices must display the words * "Powered by SugarCRM". ********************************************************************************/function gridInit() {	if(SUGAR.email2.grid) {		SUGAR.email2.grid.destroy();	}		e2Grid = {		init : function() {			// changes "F" to an icon			function flaggedIcon(value) {				if(value != "") {					return "<span style='color: #f00; font-weight:bold;'>!</a>";				}			}			// changes "A" to replied icon			function repliedIcon(value) {				if(value != "") {					return "<img src='themes/Sugar/images/export.gif' class='image' border='0' width='10' align='absmiddle'>";				}			}			// example of custom renderer function			function humanReadableDate(value) {				/*var d = new Date();				var eDate = getDateObject(value);				var emailDate = new String(cal_date_format);				var today = new String(cal_date_format);				var yesterday = new String(cal_date_format);					emailDate = emailDate.replace('%Y', eDate.getFullYear());				emailDate = emailDate.replace('%m', strpad(eDate.getMonth() + 1));				emailDate = emailDate.replace('%d', eDate.getDate());					today = today.replace('%Y', d.getFullYear());				today = today.replace('%m', strpad(d.getMonth() + 1));				today = today.replace('%d', d.getDate());					yesterday = yesterday.replace('%Y', d.getFullYear());				yesterday = yesterday.replace('%m', strpad(d.getMonth() + 1));				yesterday = yesterday.replace('%d', d.getDate() - 1);								if(today == emailDate) {					value = app_strings.LBL_EMAIL_DATE_TODAY;				} else if(yesterday == emailDate) {					value = app_strings.LBL_EMAIL_DATE_YESTERDAY;				}*/								return value;			}				var colModel = new Ext.grid.DefaultColumnModel(				[					{						header: "&nbsp;", 						width: 15, 						sortable: true, 						fixed: true,						resizeable: false,						renderer: flaggedIcon,						dataIndex: 'flagged'					}, 					{						header: "&nbsp;", 						width: 15, 						sortable: true, 						fixed: true,						resizeable: false,						renderer: repliedIcon,						dataIndex: 'status'					},					{						header: app_strings.LBL_EMAIL_FROM, 						width: 125,						sortable: true,						dataIndex: 'from'					}, 					{						header: app_strings.LBL_EMAIL_SUBJECT,						width: 250, 						sortable: true,						dataIndex: 'subject'					}, 					{						header: app_strings.LBL_EMAIL_DATE_RECEIVED,						width: 100, 						sortable: true,						renderer: humanReadableDate,                        dataIndex: 'date'					}, 					{						header: 'uid',						hidden: true,                        dataIndex: 'uid'					}, 					{						header: 'mbox',						hidden: true,                        dataIndex: 'mbox'					}, 					{						header: 'ieId',						hidden: true,                        dataIndex: 'ieId'					}, 					{							header: 'site_url',						hidden: true,                        dataIndex: 'site_url'					},					{	header: 'seen',						hidden: true,                        dataIndex: 'seen'					},					{	header: 'type',						hidden: true,                        dataIndex: 'type'					}				]			);						var dataModel = new Ext.data.Store({		        // load using HTTP		        proxy: new Ext.data.HttpProxy({url: urlBase}),                                //enable sorting on the server accross all data                remoteSort: true,				        // the return will be XML, so lets set up a reader		        reader: new Ext.data.XmlReader({		               record: 'Email',		               id: 'uid',		               totalRecords: 'TotalCount'		           }, ['flagged', 'status', 'from', 'subject', 'date', 'uid', 'mbox', 'ieId', 'site_url', 'seen', 'type', 'AssignedTo'])		    });						dataModel.baseParams['to_pdf'] = 'true';			dataModel.baseParams['module'] = 'Emails';			dataModel.baseParams['action'] = 'EmailUIAjax';			dataModel.baseParams['emailUIAction'] = 'getMessageListXML';			dataModel.baseParams['mbox'] = 'INBOX';			dataModel.baseParams['ieId'] = '';			dataModel.baseParams['forceRefresh'] = 'false';			dataModel.baseParams['to_pdf'] = 'true';				if(lazyLoadFolder != null) {				dataModel.baseParams['mbox'] = lazyLoadFolder.folder;				dataModel.baseParams['ieId'] = lazyLoadFolder.ieId;								var test = new String(lazyLoadFolder.folder);				if(test.match(/SUGAR\./)) {					dataModel.baseParams['emailUIAction'] = 'getMessageListSugarFoldersXML';					dataModel.baseParams['mbox'] = test.substr(6);				}			}						//dataModel.initPaging(urlBase, SUGAR.email2.userPrefs.emailSettings.showNumInList);				// create the Grid			SUGAR.email2.grid = new Ext.grid.Grid('frameList', {					selModel: new Ext.grid.RowSelectionModel({singleSelect:false}),                    enableDrag:true,                    stripeRows: false,                    trackMouseOver: false,                    loadMask: true,					ds: dataModel,					cm: colModel,					ddGroup: 'TreeDD',					enableColumnHide: false				}			);				SUGAR.email2.grid.render();						var gridFoot = SUGAR.email2.grid.getView().getFooterPanel(true);			// add a paging toolbar to the grid's footer		    var paging = new Ext.PagingToolbar(gridFoot, dataModel, {		        pageSize      : parseInt(SUGAR.email2.userPrefs.emailSettings.showNumInList),		        displayInfo   : true,		        displayMsg    : app_strings.LBL_EMAIL_DISPLAY_MSG,		        emptyMsg      : app_strings.LBL_EMAIL_EMPTY_MSG,		        beforePageText: app_strings.LBL_EMAIL_PAGE_BEFORE,		        afterPageText : app_strings.LBL_EMAIL_PAGE_AFTER,		        firstText     : app_strings.LBL_EMAIL_TEXT_FIRST,		        prevText      : app_strings.LBL_EMAIL_TEXT_PREV,		        nextText      : app_strings.LBL_EMAIL_TEXT_NEXT,		        lastText      : app_strings.LBL_EMAIL_TEXT_LAST,		        refreshText   : app_strings.LBL_EMAIL_TEXT_REFRESH		    });						if(lazyLoadFolder != null) {				//forcePreview = true;				SUGAR.email2.grid.getDataSource().load({params:{start:0, limit:parseInt(SUGAR.email2.userPrefs.emailSettings.showNumInList)}});				//loadPage(1, SUGAR.email2.listView.setEmailListStyles);				SUGAR.email2.grid.getSelectionModel().selectFirstRow();			}			// EVENT handlers			SUGAR.email2.grid.on('dragdrop', SUGAR.email2.listView.handleDrop, SUGAR.email2.grid, false);			SUGAR.email2.grid.on('headerclick', SUGAR.email2.listView.boldUnreadRows);			SUGAR.email2.grid.on('columnmove', SUGAR.email2.listView.boldUnreadRows);			SUGAR.email2.grid.on('rowcontextmenu', SUGAR.email2.contextMenus.showEmailsListMenu);			SUGAR.email2.grid.on('rowdblclick', SUGAR.email2.listView.getEmail);			            dataModel.on('load', SUGAR.email2.listView.setEmailListStyles);			SUGAR.email2.grid.getSelectionModel().on('rowselect', SUGAR.email2.listView.handleClick);						SUGAR.email2.grid.getDataSource().on('loadexception', SUGAR.email2.listView.loadException);		}	};	e2Grid.init();};function AddressSearchGridInit() {    function moduleIcon(value) {        if(value != "") {            return "<img src='themes/default/images/" + value + ".gif' class='image' border='0' width='16' align='absmiddle'>";        }    };    function selectionCheckBox(value) {        if(value != "") {            return '<input type="checkbox" onclick="SUGAR.email2.addressBook.grid.toggleSelect(\'' + value + '\', this.checked);">';        }    };    var checkHeader = '<input type="checkbox" ';    if (SUGAR.email2.util.isIe()) {        checkHeader += 'style="top:-5px" ';    }    checkHeader += 'onclick="SUGAR.email2.addressBook.grid.toggleSelectAll(this.checked);">';    var colModel = new Ext.grid.DefaultColumnModel(	    [{            header: checkHeader,            width: 30,            renderer: selectionCheckBox,            dataIndex: 'bean_id'        },	    {	        header: '',	        width: 25,	        renderer: moduleIcon,            dataIndex: 'bean_module'        },	    {	        header: app_strings.LBL_EMAIL_ADDRESS_BOOK_NAME, 	        width: 200,	        sortable: false,	        dataIndex: 'name'	    }, 	    {	        header: app_strings.LBL_EMAIL_ADDRESS_BOOK_EMAIL_ADDR,	        width: 300, 	        sortable: false,	        dataIndex: 'email'	    } 	    ]    );    var dataModel = new Ext.data.Store({        proxy: new Ext.data.HttpProxy({url: urlBase}),        //enable sorting on the server accross all data        remoteSort: true,        // the return will be XML, so lets set up a reader        reader: new Ext.data.XmlReader({               record: 'Person',               id: 'bean_id',               totalRecords: 'TotalCount'           }, ['name', 'email', 'bean_id', 'bean_module'])    });        SUGAR.email2.addressBook.addressBookDataModel = dataModel;	var reportsDataModel = new Ext.data.Store({        proxy: new Ext.data.HttpProxy({url: urlBase}),        //enable sorting on the server accross all data        remoteSort: true,        // the return will be XML, so lets set up a reader        reader: new Ext.data.XmlReader({               record: 'Person',               id: 'bean_id',               totalRecords: 'TotalCount'           }, ['name', 'email', 'bean_id', 'bean_module'])    });    reportsDataModel.baseParams['to_pdf'] = 'true';    reportsDataModel.baseParams['reportId'] = '';    reportsDataModel.baseParams['module'] = 'Emails';    reportsDataModel.baseParams['action'] = 'EmailUIAjax';    reportsDataModel.baseParams['emailUIAction'] = 'getReportUsers';        SUGAR.email2.addressBook.reportsDataModel = reportsDataModel;       dataModel.baseParams['to_pdf'] = 'true';    dataModel.baseParams['module'] = 'Emails';    dataModel.baseParams['action'] = 'EmailUIAjax';    dataModel.baseParams['emailUIAction'] = 'getAddressSearchResults';        SUGAR.email2.addressBook.grid = new Ext.grid.Grid(Ext.DomHelper.append(document.body, {        tag : 'div',id : 'addrSearchGrid'}),         {            selModel: new Ext.grid.RowSelectionModel({singleSelect:false}),            enableDrag: false,            stripeRows: false,            trackMouseOver: false,            loadMask: true,            ds: dataModel,            cm: colModel,            enableColumnHide: false        }    );    var grid = SUGAR.email2.addressBook.grid;    grid.render();    grid.getSelectionModel().on('beforerowselect', function(selModel, rowIndex, keep) {        var row = SUGAR.email2.addressBook.grid.getDataSource().getAt(rowIndex)        if (!row.data.checked) {            return false;        }        return true;    });        grid.getSelectionModel().on('rowdeselect', function(selModel, rowIndex) {        var row = SUGAR.email2.addressBook.grid.getDataSource().getAt(rowIndex)        if (row.data.checked) {            selModel.selectRow(rowIndex, true);        }    });        grid.toggleSelect = function(id, checked) {        var row = SUGAR.email2.addressBook.grid.dataSource.getById(id);        row.data.checked = checked;        if (checked) {            SUGAR.email2.addressBook.grid.getSelectionModel().selectRow(row.store.indexOf(row), true);        } else {            SUGAR.email2.addressBook.grid.getSelectionModel().deselectRow(row.store.indexOf(row));        }    };        grid.toggleSelectAll = function(checked) {        rows = SUGAR.email2.addressBook.grid.getDataSource().getRange(0, 25);        for (var i = 0; i < rows.length; i++) {	        var row = rows[i];	        row.data.checked = checked;        }        var checkBoxes = SUGAR.email2.addressBook.grid.getGridEl().dom.getElementsByTagName('input');        for (var i = 0; i < checkBoxes.length; i++) {            checkBoxes[i].checked = checked;        }        if (checked) {            SUGAR.email2.addressBook.grid.getSelectionModel().selectAll();        } else {            SUGAR.email2.addressBook.grid.getSelectionModel().clearSelections();        }    };    	/*var layout = Ext.BorderLayout.create({	    center: {	        margins:{left:3,top:3,right:3,bottom:3},	        panels: [new Ext.GridPanel(SUGAR.email2.addressBook.grid)]	    }	}, 'adrsrchGridPanel');*/		SUGAR.email2.addressBook.grid.autoSize();	SUGAR.email2.addressBook.grid.render();}

⌨️ 快捷键说明

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