📄 prototypeoverloads.js
字号:
}; //This Class recognizes what elements in //the contacts view are drag dropable and whenExt.extend(ContactsDragZone, Ext.dd.DragZone, { setContacts : function(contactArray) { this.contacts = contactArray; }, addContact : function(contactObject) { this.contacts.push(contactObject); }, getContact : function(index) { return this.contacts[index]; }, getContactFromEmail : function(emailId) { for(i in this.contacts) { var contact = this.contacts[i]; for(j in contact.email) { if (contact.email[j].id && contact.email[j].id == emailId) { return contact; } } } return null; }, getPrimaryEmail : function(contactId) { var contact = this.contacts[contactId]; for(j in contact.email) { if (contact.email[j].id && contact.email[j].primary_address == "1") { return contact.email[j]; } } return null; }, toggleContact : function(view, index, node, e) { e = Ext.EventObject.setEvent(e); e.preventDefault(); if (node.className.indexOf('address-contact') > -1) { var expNode = view.getNode('ex' + node.id); expNode.style.display = ""; var contact = view.dragz.getContact(node.id); for(i in contact.email) { if (contact.email[i].id) { view.getNode(contact.email[i].id).style.display = ""; } } var i = 0; node.style.display="none"; view.clearSelections(true); view.select(expNode); } //Collapse Expanded Contact else if (node.className.indexOf('address-exp-contact') > -1) { var origId = node.id.substring(2); var colNode = view.getNode(origId); colNode.style.display = ""; var contact = view.dragz.getContact(origId); for(i in contact.email) { if (contact.email[i].id) { view.getNode(contact.email[i].id).style.display = "none"; } } node.style.display="none"; view.clearSelections(true); view.select(colNode); } }, toggleList : function(view, index, node, e) { e = Ext.EventObject.setEvent(e); e.preventDefault(); if (node.className.indexOf('address-list') > -1) { var length = node.getAttribute('size'); if (length > 0) { var emails = view.getNodes(index + 1, index + parseInt(length)); for(var i=0; i < emails.length; i++) { if (emails[i]) { emails[i].style.display = (emails[i].style.display == 'none') ? '' : 'none'; } } } } view.clearSelections(true); view.select(node); }, //initizlized Drag-Drop objects and proxies. getDragData : function(e){ e = Ext.EventObject.setEvent(e); e.preventDefault(); var target = e.getTarget('.address-contact') || e.getTarget('.address-email'); if(target){ var view = this.view; if(!view.isSelected(target)){ view.select(target, e.ctrlKey); } var selNodes = view.getSelectedNodes(); var dragData = { } if(selNodes.length == 1){ dragData.nodes = target; var proxy = document.createElement('div'); if (target.className.indexOf('address-contact') != -1) { var email = view.getNode(view.dragz.getPrimaryEmail(target.id).id); proxy.innerHTML = target.innerHTML + email.innerHTML; } else { var id = view.dragz.getContactFromEmail(target.id).id; proxy.innerHTML = view.getNode(id).innerHTML + target.innerHTML; } dragData.ddel = proxy; dragData.single = true; }else{ dragData.nodes = []; var div = document.createElement('div'); // create the multi element drag "ghost" div.className = 'contacts-multi-proxy'; for(var i = 0, len = selNodes.length; i < len; i++){ if (selNodes[i].className.indexOf('address-exp-contact') < 0 && selNodes[i].style.display != "none") { //Append the default email to a contact drag proxy var proxy = document.createElement('div'); if (selNodes[i].className.indexOf('address-contact') != -1) { var email = view.getNode(view.dragz.getPrimaryEmail(selNodes[i].id).id); proxy.innerHTML = selNodes[i].innerHTML + email.innerHTML; } else { var id = view.dragz.getContactFromEmail(selNodes[i].id).id; proxy.innerHTML = view.getNode(id).innerHTML + selNodes[i].innerHTML; } div.appendChild(proxy); dragData.nodes.push(selNodes[i]); } } dragData.ddel = div; dragData.multi = true; } return dragData; } var target = e.getTarget('.address-list'); if (target) { var view = this.view; if(!view.isSelected(target)){ view.select(target, e.ctrlKey); } var selNodes = view.getSelectedNodes(); var dragData = { } if(selNodes.length == 1){ dragData.nodes = target; dragData.ddel = target; dragData.single = true; } else { dragData.nodes = []; var div = document.createElement('div'); // create the multi element drag "ghost" div.className = 'contacts-multi-proxy'; for(var i = 0, len = selNodes.length; i < len; i++){ if (selNodes[i].className.indexOf('address-list') > -1) { //Append the default email to a contact drag proxy var proxy = document.createElement('div'); proxy.innerHTML = selNodes[i].innerHTML; div.appendChild(proxy); dragData.nodes.push(selNodes[i]); } } dragData.ddel = div; dragData.multi = true; } return dragData; } return false; }});ListDropZone = function(view, config){ this.view = view; ListDropZone.superclass.constructor.call(this, view.el, config);}; //This Class handels contacts dropped onto Mailing ListsExt.extend(ListDropZone, Ext.dd.DropZone, { getTargetFromEvent : function(e){ e = Ext.EventObject.setEvent(e); //e.preventDefault(); var target = e.getTarget('.address-list'); if(target){ var view = this.view; if(!view.isSelected(target)){ view.select(target, e.ctrlKey); } return target; } return null; }, onNodeOver : function(node, source, e, data ) { if (source.id == 'contacts') { return "x-dd-drop-ok-add"; } else { return this.dropNotAllowed; } }, onNodeDrop : function(node, source, e, data) { if (source.id == 'contacts') { SUGAR.email2.addressBook.addContactsToMailinglist(node, data); } }});/** * Workaround for sliding panel noted here: http://extjs.com/forum/showthread.php?t=11899 */Ext.override(Ext.SplitLayoutRegion, { initAutoHide: function(){ if (this.autoHide !== false) { if (!this.autoHideHd) { var st = new Ext.util.DelayedTask(this.slideIn, this); this.autoHideHd = { "mouseout": function(e){ if (!e.within(this.el, true)) { var box = this.el.getBox(); if (e.getPageX() > -1 && e.getPageY() > -1 && (e.getPageX() < box.x || e.getPageX() > box.right || e.getPageY() < box.y || e.getPageY() > box.bottom)) { st.delay(500); } } }, "mouseover": function(e){ st.cancel(); }, scope: this }; } this.el.on(this.autoHideHd); } }}); /* * override tinyMCE methods for IE7 (specific to SugarCRM, since the normal code works fine in their examples) */ tinyMCE.loadScript = function(url) { var i; for (i=0; i<this.loadedFiles.length; i++) { if (this.loadedFiles[i] == url) return; } if (tinyMCE.settings.strict_loading_mode) { this.pendingFiles[this.pendingFiles.length] = url; } else if(this.isIE) { /* * SUGARCRM - added this else if() clause */ var script = document.createElement('script'); script.type = 'text/javascript'; script.src = url; document.getElementsByTagName('head')[0].appendChild(script); } else { document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></script>'); } this.loadedFiles[this.loadedFiles.length] = url;} tinyMCE.loadCSS = function(url) { var ar = url.replace(/\s+/, '').split(','); var lflen = 0, csslen = 0; var skip = false; var x = 0, i = 0, nl, le; for (x = 0,csslen = ar.length; x<csslen; x++) { if (ar[x] != null && ar[x] != 'null' && ar[x].length > 0) { /* Make sure it doesn't exist. */ for (i=0, lflen=this.loadedFiles.length; i<lflen; i++) { if (this.loadedFiles[i] == ar[x]) { skip = true; break; } } if (!skip) { /* * SUGARCRM - added "this.isIE || ..." */ if (this.isIE || tinyMCE.settings.strict_loading_mode) { nl = document.getElementsByTagName("head"); le = document.createElement('link'); le.setAttribute('href', ar[x]); le.setAttribute('rel', 'stylesheet'); le.setAttribute('type', 'text/css'); nl[0].appendChild(le); } else document.write('<link href="' + ar[x] + '" rel="stylesheet" type="text/css" />'); this.loadedFiles[this.loadedFiles.length] = ar[x]; } } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -