]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - jssource/src_files/modules/Documents/documents.js
Release 6.1.4
[Github/sugarcrm.git] / jssource / src_files / modules / Documents / documents.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 var rhandle=new RevisionListHandler();
40 var from_popup_return  = false;
41 function document_set_return(popup_reply_data)
42 {
43         from_popup_return = true;
44         var form_name = popup_reply_data.form_name;
45         var name_to_value_array = popup_reply_data.name_to_value_array;
46         related_doc_id='EMPTY';
47         for (var the_key in name_to_value_array)
48         {
49                 if(the_key == 'toJSON')
50                 {
51                         /* just ignore */
52                 }
53                 else
54                 {
55                         var displayValue=name_to_value_array[the_key];
56                         displayValue=displayValue.replace(''',"'");  //restore escaped single quote.
57                         displayValue=displayValue.replace( '&',"&");  //restore escaped &.
58                         displayValue=displayValue.replace( '>',">");  //restore escaped >.
59                         displayValue=displayValue.replace( '&lt;',"<");  //restore escaped <.
60                         displayValue=displayValue.replace( '&quot; ',"\"");  //restore escaped ".
61                         if (the_key == 'related_doc_id') {
62                                 related_doc_id =displayValue;
63                         }
64                         window.document.forms[form_name].elements[the_key].value = displayValue;
65                 }
66         }
67         related_doc_id=JSON.stringifyNoSecurity(related_doc_id);
68         //make request for document revisions data.
69         var conditions  = new Array();
70     conditions[conditions.length] = {"name":"document_id","op":"starts_with","value":related_doc_id};
71         var query = new Array();
72         var query = {"module":"DocumentRevisions","field_list":['id','revision','date_entered'],"conditions":conditions,"order":'date_entered desc'};
73     
74     //make the call call synchronous for now...
75     //todo: convert to async, test on mozilla..
76     result = global_rpcClient.call_method('query',query,true);
77     rhandle.display(result);
78     
79         //req_id = global_rpcClient.call_method('query',query);
80     //register the callback mathod.
81         //global_request_registry[req_id] = [rhandle, 'display'];
82 }
83
84
85 function RevisionListHandler() { }
86
87 RevisionListHandler.prototype.display = function(result) {
88         var names = result['list'];
89         var rev_tag=document.getElementById('related_doc_rev_id');
90         rev_tag.options.length=0;
91         
92         for(i=0; i < names.length; i++) { 
93                 rev_tag.options[i] = new Option(names[i].fields['revision'],names[i].fields['id'],false,false);
94         }
95         rev_tag.disabled=false;
96 }
97
98
99 function setvalue(source) {
100         src = new String(source.value);
101         target=new String(source.form.document_name.value);
102
103         if (target.length == 0) {
104                 lastindex=src.lastIndexOf("/");
105                 if (lastindex == -1) {
106                         lastindex=src.lastIndexOf("\\");
107                 } 
108                 if (lastindex == -1) {
109                         source.form.document_name.value=src;
110                         source.form.escaped_document_name.value = src;
111                 } else {
112                         source.form.document_name.value=src.substr(++lastindex, src.length);
113                         source.form.escaped_document_name.value = src.substr(lastindex, src.length);
114                 }       
115         }                       
116 }
117
118 function toggle_template_type(istemplate) {
119         template_type = document.getElementById('template_type');
120         if (istemplate.checked) {
121                 //template_type.enabled=true;
122                 template_type.disabled=false;
123         } else {
124                 //template_type.enabled=false;
125                 template_type.disabled=true;                                    
126         }
127 }