]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - jssource/src_files/include/SugarCharts/Jit/js/mySugarCharts.js
Release 6.2.0beta4
[Github/sugarcrm.git] / jssource / src_files / include / SugarCharts / Jit / js / mySugarCharts.js
1 /*********************************************************************************
2  * SugarCRM is a customer relationship management program developed by
3  * SugarCRM, Inc. Copyright (C) 2004-2011 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
38
39 SUGAR.mySugar.sugarCharts = function() {
40
41 var activeTab = activePage,
42     charts = new Object(),
43         windowWidth = 0,
44     firstLoad = (SUGAR.isIE) ? true: false;
45
46         return {
47                 loadSugarCharts: function(activeTab) {
48                         var chartFound = false;
49                         for (id in charts[activeTab]){
50                                 if(id != 'undefined'){
51                                         chartFound = true;
52                                 //alert(charts[activeTab][id]['chartType']);
53                                         loadSugarChart(
54                                                                                          charts[activeTab][id]['chartId'], 
55                                                                                          charts[activeTab][id]['jsonFilename'],
56                                                                                          charts[activeTab][id]['css'],
57                                                                                          charts[activeTab][id]['chartConfig']
58                                                                                          );
59                                 }
60                         }
61                         //clear charts array
62                         charts = new Object();
63
64                 },
65
66                 addToChartsArrayJson: function(json,activeTab) {
67                         for (id in json) {
68                                         if(json[id]['supported'] == "true") {
69                                                 SUGAR.mySugar.sugarCharts.addToChartsArray(
70                                                                                                  json[id]['chartId'], 
71                                                                                                  json[id]['filename'],
72                                                                                                  json[id]['css'],
73                                                                                                  json[id]['chartConfig'],
74                                                                                                  activeTab);
75                                         }
76                                 }
77                 },
78                 addToChartsArray: function(chartId,jsonFilename,css,chartConfig,activeTab) {
79                         
80                         if (charts[activeTab] == null){
81                                 charts[activeTab] = new Object();
82                         }
83                         charts[activeTab][chartId] = new Object();
84                         charts[activeTab][chartId]['chartId'] = chartId;
85                         charts[activeTab][chartId]['jsonFilename'] = jsonFilename;      
86                         charts[activeTab][chartId]['css'] = css;        
87                         charts[activeTab][chartId]['chartConfig'] = chartConfig;                
88         
89                 },
90                 refreshPage: function() {
91                         var newWidth = document.body.offsetWidth;                       
92                         if(newWidth != windowWidth && !firstLoad){
93                                 if(SUGAR.isIE) { 
94                                         SUGAR.mySugar.loading.show();
95                                         document.getElementById('loading_c').style.display = 'inline';
96                                         setTimeout(function() {location.reload();}, 500);
97                                                                                 
98                                 } else {
99                                         SUGAR.mySugar.retrievePage(activePage); 
100                                 }
101                                 SUGAR.mySugar.sugarCharts.loadSugarCharts(activePage);
102                                                 
103                         }
104                         firstLoad = false;              
105                         windowWidth = newWidth; 
106                         
107                 },
108                 refreshGraphs: function() {
109
110                         setTimeout("SUGAR.mySugar.sugarCharts.refreshPage()", 1000);    
111                 } 
112                 
113                 
114         }
115 }();
116
117 YAHOO.util.Event.addListener(window, 'resize', SUGAR.mySugar.sugarCharts.refreshGraphs);