]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - jssource/src_files/include/javascript/sugar_yui_overrides.js
Release 6.5.0
[Github/sugarcrm.git] / jssource / src_files / include / javascript / sugar_yui_overrides.js
1 /*********************************************************************************
2  * SugarCRM Community Edition is a customer relationship management program developed by
3  * SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc.
4  * 
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU Affero General Public License version 3 as published by the
7  * Free Software Foundation with the addition of the following permission added
8  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
9  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
10  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
11  * 
12  * This program is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
15  * details.
16  * 
17  * You should have received a copy of the GNU Affero General Public License along with
18  * this program; if not, see http://www.gnu.org/licenses or write to the Free
19  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20  * 02110-1301 USA.
21  * 
22  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
23  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
24  * 
25  * The interactive user interfaces in modified source and object code versions
26  * of this program must display Appropriate Legal Notices, as required under
27  * Section 5 of the GNU Affero General Public License version 3.
28  * 
29  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
30  * these Appropriate Legal Notices must retain the display of the "Powered by
31  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
32  * technical reasons, the Appropriate Legal Notices must display the words
33  * "Powered by SugarCRM".
34  ********************************************************************************/
35
36
37 // Any YUI overrides can go in here
38
39 //Override for bugfixes 45438 & 45557
40 YAHOO.widget.Panel.prototype.configClose = function (type, args, obj) {
41     var val = args[0],
42         oClose = this.close,
43         strings = this.cfg.getProperty("strings"),
44         fc;
45
46     if (val) {
47         if (!oClose) {
48
49             if (!this.m_oCloseIconTemplate) {
50                 this.m_oCloseIconTemplate = document.createElement("a");
51                 this.m_oCloseIconTemplate.className = "container-close";
52                 this.m_oCloseIconTemplate.href = "#";
53             }
54
55             oClose = this.m_oCloseIconTemplate.cloneNode(true);
56
57             fc = this.innerElement.firstChild;
58
59             if (fc) {
60                 if (fc.className == this.m_oCloseIconTemplate.className) {
61                     this.innerElement.replaceChild(oClose, fc);
62                 } else {
63                     this.innerElement.insertBefore(oClose, fc);
64                 }
65             } else {
66                 this.innerElement.appendChild(oClose);
67             }
68
69             oClose.innerHTML = (strings && strings.close) ? strings.close : " ";
70
71             YAHOO.util.Event.on(oClose, "click", this._doClose, this, true);
72
73             this.close = oClose;
74
75         } else {
76             oClose.style.display = "block";
77         }
78
79     } else {
80         if (oClose) {
81             oClose.style.display = "none";
82         }
83     }
84 }
85
86 // Override for bug45669
87 // The fix is moving the code into this file 'as is'
88 YAHOO.widget.Overlay.prototype.center = function() {
89         var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
90         var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
91
92         var viewPortWidth = YAHOO.util.Dom.getClientWidth();
93         var viewPortHeight = YAHOO.util.Dom.getClientHeight();
94
95         var elementWidth = this.element.offsetWidth;
96         var elementHeight = this.element.offsetHeight;
97
98         var x = (viewPortWidth / 2) - (elementWidth / 2) + scrollX;
99         var y = (viewPortHeight / 2) - (elementHeight / 2) + scrollY;
100
101         this.element.style.left = parseInt(x, 10) + "px";
102         this.element.style.top = parseInt(y, 10) + "px";
103         this.syncPosition();
104
105         this.cfg.refireEvent("iframe");
106 }
107
108 // Override for bug45837
109 YAHOO.SUGAR.DragDropTable.prototype._deleteTrEl = function(row) {
110     var rowIndex;
111
112     // Get page row index for the element
113     if(!YAHOO.lang.isNumber(row)) {
114         rowIndex = Dom.get(row).sectionRowIndex;
115     }
116     else {
117         rowIndex = row;
118     }
119     if(YAHOO.lang.isNumber(rowIndex) && (rowIndex > -1) && (rowIndex < this._elTbody.rows.length)) {
120         // Cannot use tbody.deleteRow due to IE6 instability
121         //return this._elTbody.deleteRow(rowIndex);
122         return this._elTbody.removeChild(this._elTbody.rows[row]);
123     }
124     else {
125         return null;
126     }
127 }