]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - jssource/src_files/modules/Administration/javascript/Async.js
Release 6.5.0
[Github/sugarcrm.git] / jssource / src_files / modules / Administration / javascript / Async.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 var AjaxObject = {
37         ret : '',
38         currentRequestObject : null,
39         timeout : 30000, // 30 second timeout default
40         forceAbort : false,
41         
42         /**
43          */
44         _reset : function() {
45                 this.timeout = 30000;
46                 this.forceAbort = false;
47         },
48     handleFailure : function(o) {
49         alert('asynchronous call failed.');
50         },
51         /**
52          */
53         startRequest : function(callback, args, forceAbort) {
54                 if(this.currentRequestObject != null) {
55                         if(this.forceAbort == true || callback.forceAbort == true) {
56                                 YAHOO.util.Connect.abort(this.currentRequestObject, null, false);
57                         }
58                 }
59                 
60                 this.currentRequestObject = YAHOO.util.Connect.asyncRequest('POST', "./index.php?module=Administration&action=Async&to_pdf=true", callback, args);
61                 this._reset();
62         },
63         
64         /**************************************************************************
65          * Place callback handlers below this comment
66          **************************************************************************/
67          
68         /**
69          * gets an estimate of how many rows to process
70          */
71         refreshEstimate : function(o) {
72                 this.ret = YAHOO.lang.JSON.parse(o.responseText);
73                 document.getElementById('repairXssDisplay').style.display = 'inline';
74                 document.getElementById('repairXssCount').value = this.ret.count;
75                 
76                 SUGAR.Administration.RepairXSS.toRepair = this.ret.toRepair;
77         },
78         showRepairXssResult : function(o) {
79                 var resultCounter = document.getElementById('repairXssResultCount');
80                 
81                 this.ret = YAHOO.lang.JSON.parse(o.responseText);
82                 document.getElementById('repairXssResults').style.display = 'inline';
83                 
84                 if(this.ret.msg == 'success') {
85                         SUGAR.Administration.RepairXSS.repairedCount += this.ret.count;
86                         resultCounter.value = SUGAR.Administration.RepairXSS.repairedCount;
87                 } else {
88                         resultCounter.value = this.ret;
89                 }
90                 
91                 SUGAR.Administration.RepairXSS.executeRepair();
92         }
93 };
94
95 /*****************************************************************************
96  *      MODEL callback object:
97  * ****************************************************************************
98         var callback = {
99                 success:AjaxObject.handleSuccess,
100                 failure:AjaxObject.handleFailure,
101                 timeout:AjaxObject.timeout,
102                 scope:AjaxObject,
103                 forceAbort:true, // optional
104                 argument:[ieId, ieName, focusFolder] // optional
105         };
106  */
107
108 var callbackRepairXssRefreshEstimate = {
109         success:AjaxObject.refreshEstimate,
110         failure:AjaxObject.handleFailure,
111         timeout:AjaxObject.timeout,
112         scope:AjaxObject
113 };
114 var callbackRepairXssExecute = {
115         success:AjaxObject.showRepairXssResult,
116         failure:AjaxObject.handleFailure,
117         timeout:AjaxObject.timeout,
118         scope:AjaxObject
119 };