source: trunk/contactcenter/js/ccIEContacts.js @ 5131

Revision 5131, 11.9 KB checked in by wmerlotto, 12 years ago (diff)

Ticket #2305 - Enviando alteracoes, desenvolvidas internamente na Prognus, do modulo contactcenter.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1        function cIEContacts () {
2                this.win;
3                this.el;               
4                this.wWidth = 610;
5                this.wHeight = 255;
6        }
7       
8        cIEContacts.prototype.changeOptions = function(type){   
9                if(type == 'i') {
10                        Element('export_span').style.display = 'none';
11                        Element('import_span').style.display = '';
12                }
13                else{
14                        Element('import_span').style.display = 'none';
15                        Element('export_span').style.display = '';             
16                }       
17        }
18       
19        cIEContacts.prototype.showFailures = function(data){
20                if (data == 'undefined')
21                        return;
22                if (data){
23                        var lang_clean = Element('cc_msg_clean').value;
24                        var info_box = document.getElementById('s_info2');
25                        info_box.innerHTML = data;
26                        info_box.style.visibility = '';
27                        var cleanButton = document.createElement('input');
28                        cleanButton.type='button';
29                        cleanButton.value=lang_clean;
30                        cleanButton.onclick= function() { ccIEContacts.cleanInfo() };
31                        info_box.appendChild(cleanButton);
32                        }
33        }
34
35        cIEContacts.prototype.cleanInfo = function(){
36        var info_box = document.getElementById('s_info2');
37        info_box.innerHTML = '';
38        }       
39       
40        cIEContacts.prototype.showList = function(){
41
42                if (!this.el){         
43                        this.el = document.createElement("DIV");
44                        this.el.style.visibility = "hidden";
45                        this.el.style.position = "absolute";
46                        this.el.style.left = "0px";
47                        this.el.style.top = "0px";
48                        this.el.style.width = this.wWidth       + 'px';
49                        this.el.style.height = this.wHeight + 100+'px';
50                        if(is_ie) {
51                                this.el.style.width = "650";
52                                this.el.style.overflowY = "auto";       
53                                this.el.style.overflowX = "hidden";
54                        }                                                                                                       
55                        else {                                                                 
56                                this.el.style.overflowY = "auto";
57                                this.el.style.overflow = "-moz-scrollbars-vertical";
58                        }
59                        this.el.id = 'cc_rectIEContacts';
60                        document.body.appendChild(this.el);
61
62                        var lang_import_contacts = Element('cc_msg_import_contacts').value;
63            var lang_close_win = Element('cc_msg_close_win').value
64            var lang_export_contacts = Element('cc_msg_export_contacts').value;
65            var lang_expresso_info_csv = Element('cc_msg_expresso_info_csv').value;
66            var lang_expresso_default = Element('cc_msg_expresso_default').value;
67            var lang_choose_contacts_file       = Element('cc_msg_choose_contacts_file').value;
68            var lang_msg_choose_type            = Element('cc_msg_choose_file_type').value;
69                        var lang_msg_expresso_info_csv  = Element('cc_msg_expresso_info_csv').value;
70                        var lang_msg_export_csv                 = Element('cc_msg_export_csv').value;
71                        var lang_msg_automatic = Element('cc_msg_automatic').value;
72            var lang_close = Element('cc_msg_close').value;
73                        var lang_moz_tb = Element('cc_msg_moz_thunderbird').value;
74                        var lang_outl_pt = Element('cc_msg_outlook_express_pt').value;
75                        var lang_outl_en = Element('cc_msg_outlook_express_en').value;
76                        var lang_outl2k_pt = Element('cc_msg_outlook_2k_pt').value;
77                        var lang_outl2k_en = Element('cc_msg_outlook_2k_en').value;
78                        var lang_outl03 = Element('cc_msg_outlook_2003').value;
79                        var lang_expresso_default_csv = Element('cc_msg_expresso_default_csv').value;
80
81               
82                        this.el.innerHTML =
83                        '<div align="left" id="divAppbox" width="90%" ><table width="100%" border=0>'+
84                        '<tr><td style="border-bottom:1px solid black"><input onclick="javascript:ccIEContacts.changeOptions(this.value)" id="type" type="radio" name="type" value="i" style="border:0" checked>'+lang_import_contacts+
85                        '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input onclick="javascript:ccIEContacts.changeOptions(this.value)" id="type" type="radio" name="type" style="border:0" value="e"/>'+lang_export_contacts+' <br></td></tr>'+
86                        '</table>'+
87                        '<table border=0 height="100%"  width="100%" id="import_span">'+
88                        '<tr><td>'+
89                        '<font color="DARKBLUE" size="2">'+lang_expresso_info_csv+'</font></td></tr>'+
90                        '<tr><td height="75px" valign="top">'+
91                        '<form name="formCSV" method="POST" enctype="multipart/form-data">'+ lang_msg_choose_type +
92                        ':&nbsp;<select id="typeImport"><option value="auto" selected>'+lang_msg_automatic+'</option>'+
93                        '<option value="outlook">'+("Outlook Express")+'</option>'+
94                        '<option value="outlook2000">'+("Outlook 2000")+'</option>'+
95                        '<option value="outlook2003">'+("Outlook 2003")+'</option>'+
96                        '<option value="thunderbird">'+("Mozilla Thunderbird")+'</option>'+
97                        '<option value="expresso" selected>'+lang_expresso_default+'</option></select><br>'+
98                        '<br> Selecione um grupo:&nbsp;' + Element('cc_select_groups').value + '<br>' +
99                        '<br>'+lang_choose_contacts_file+'<br><br>'+           
100                        '<input id="import_file" type="file" name="import_file">'+
101                        '</form></td></tr>'+
102                        '<tr><td height="10px" align="center" nowrap><span style="visibility:hidden" id="s_info"></span></td></tr>'+
103                        '<tr><td height="10px" align="center"></td></tr>'+
104                        '<tr><td nowrap><center><input id="import_button" type="button" value='+lang_import_contacts+' onClick="javascript:ccIEContacts.importCSV(this)">&nbsp;&nbsp;&nbsp;&nbsp;'+
105                        '<input type="button" value='+lang_close_win+' onClick="javascript:ccIEContacts.close()"></center></td></tr>'+
106                        '<tr><td height="10px" align="center" nowrap><span style="visibility:hidden" id="s_info2"></span></td></tr></table>'+
107                        '<table border=0  height="100%"  width="100%" style="display:none" id="export_span">'+
108                        '<tr><td>'+                                             
109                        '<font color="DARKBLUE" size="2">'+ lang_msg_expresso_info_csv+'</font></td></tr>'+
110                        '<tr><td height="85px" valign="top">'+lang_msg_export_csv+'<br><br>'+
111                        '<select id="typeExport">'+
112                        '<option value="expresso" selected>'+lang_expresso_default_csv+'</option>'+
113                        '<option value="outlook_pt-BR">'+lang_outl_pt+'</option>'+
114                        '<option value="outlook_en">'+lang_outl_en+'</option>'+
115                        '<option value="outlook2000_pt-BR">'+lang_outl2k_pt+'</option>'+
116                        '<option value="outlook2000_en">'+lang_outl2k_en+'</option>'+
117                        '<option value="outlook2003">'+lang_outl03+'</option>'+
118                        '<option value="thunderbird">'+lang_moz_tb+'</option>'+
119                        '</select>'+                   
120                        '</td></tr>'+
121                        '<tr><td nowrap><center><input id="export_button" type="button" value='+lang_export_contacts+ ' onClick="javascript:ccIEContacts.exportCSV(this)">&nbsp;&nbsp;&nbsp;&nbsp;'+
122                        '<input type="button" value='+lang_close_win+ ' onClick="javascript:ccIEContacts.close()"></center></td></tr>'+
123                        '</table></div>';
124                }               
125                this.showWindow();
126                if(Element('s_info'))
127                        Element('s_info').style.visibility = 'hidden';
128                ccIEContacts.cleanInfo();
129        }
130       
131        cIEContacts.prototype.showWindow = function ()
132        {                                               
133                if(!this.win) {
134       
135                                this.win = new dJSWin({                 
136                                id: 'ccIEContacts',
137                                content_id: this.el.id,
138                                width: (this.wWidth +(is_ie ? 41 : 0))  +'px',
139                                height: this.wHeight +100+'px',
140                                title_color: '#3978d6',
141                                bg_color: '#eee',
142                                title: Element('cc_msg_ie_personal').value,
143                                title_text_color: 'white',
144                                button_x_img: '../phpgwapi/images/winclose.gif',
145                                border: true });
146                       
147                        this.win.draw();                       
148                }
149               
150                this.win.open();
151        }
152       
153        cIEContacts.prototype.importWriteStatus = function(args){
154
155                // array args
156                // args[0] - status (success, error ou importing)
157                // args[1] - numero de contatos novos;
158                // args[2] - numero de contatos falhos;
159                // args[3] - numero de contatos sobrescritos;
160                var form = document.formCSV;
161                var status = '';
162
163                var lang_import_fail = Element('cc_msg_import_fail').value;
164                var lang_importing = Element('cc_msg_importing_contacts').value;
165                var lang_import_finish = Element('cc_msg_import_finished').value;
166                var lang_new = Element('cc_msg_new').value;
167                var lang_failure = Element('cc_msg_failure').value;
168                var lang_exists = Element('cc_msg_exists').value;
169                var lang_show_more_info = Element('cc_msg_show_more_info').value;
170
171                var l_1         = '<font face="Verdana" size="1" color="GREEN">['+args[1]+lang_new+']</font>';
172                var l_2         = '<font face="Verdana" size="1" color="RED">['+args[2]+lang_failure+']</font>';
173                var l_3         = '<font face="Verdana" size="1" color="DARKBLUE">['+args[3]+lang_exists+']</font>';
174                if(args[2])
175                var l_4         = '<br><a font face="Verdana" size="1" href="javascript:ccIEContacts.showFailures(\''+args[4]+'\')">'+lang_show_more_info+'</a>';
176                var l_error     = '<span style="height:15px;background:#cc4444">&nbsp;&nbsp;<font face="Verdana" size="1" color="WHITE">'+lang_import_fail+ '&nbsp;</font></span>';
177                var l_importing = '<span style="height:15px;background:rgb(250, 209, 99)">&nbsp;&nbsp;<font face="Verdana" size="1" color="DARKBLUE">'+lang_importing + '&nbsp;</font></span>';
178
179                if(args[0] == 'success') {
180
181                        for(i = 1; i < 4; i++) {
182                                status += "&nbsp;"+eval('l_'+i);
183                        }
184                        if(args[2]){
185                                status += "&nbsp;"+eval('l_4');
186                        }
187                        Element('s_info').innerHTML = '&nbsp;&nbsp;<font face="Verdana" size="1" color="BLACK"><b>'+lang_import_finish+'</b></font><br>&nbsp;'+status;
188                }
189                else
190                        Element('s_info').innerHTML = eval('l_'+args[0]);
191               
192                Element("s_info").style.visibility = '';
193
194                var recreate_fileupload = function () {
195                        var import_file = document.createElement("INPUT");
196                        import_file.type = "FILE";
197                        import_file.name = "import_file";
198                        import_file.id = "import_file";
199                        form.appendChild(import_file);
200                        Element('import_button').disabled = false;
201                        form.style.visibility = '';
202                }                               
203
204                if(args[0] != 'importing') {
205                        recreate_fileupload();
206                        setTimeout("Element('s_info').style.visibility = 'hidden'", 12000);
207                }
208        }
209       
210        cIEContacts.prototype.importCSV = function ()
211        {               
212                ccIEContacts.cleanInfo();
213                var lang_msg_invalid_csv = Element('cc_msg_invalid_csv').value;
214                var form = document.formCSV;
215                if ((form.import_file.value.length < 10) ||
216                (form.import_file.value.substring(form.import_file.value.length - 4, form.import_file.value.length).toLowerCase() != ".csv")){
217                        alert(lang_msg_invalid_csv);
218                        return;
219                }
220               
221                var _this = this;
222                Element('import_button').disabled = true;
223
224                var handler_import = function (responseText){
225                        var args = new Array();
226
227                        var data = unserialize(responseText);
228                        if(data.error)
229                                args[0] = 'error';
230                        else {
231                                args[0] = 'success';
232                                args[1] = data._new ? data._new : 0;
233                                args[2] = data._failure ? data._failure : 0;
234                                args[3] = data._existing ? data._existing : 0;
235                                args[4] = data._failure_status
236                                if(args[1] > 0)
237                                        ccTree.setCatalog("0.0");
238                        }
239                        _this.importWriteStatus(args);
240                }               
241
242                if(! (divUpload = Element('divUpload'))) {
243                        divUpload               = document.createElement('DIV');               
244                        divUpload.id    = 'divUpload';
245                        document.body.appendChild(divUpload);
246                }
247
248                divUpload.innerHTML= '<iframe style="display:none;width:0px;height:0px" id="importCSVFile" name="importCSVFile"></iframe>';
249
250                var _onload = function(){
251                        var typeImport = Element('typeImport').value;
252                        var id_group = Element('id_group').value;
253                       
254                        Connector.newRequest('import_contacts','../index.php?menuaction=contactcenter.ui_data.data_manager&method=import_contacts&typeImport='+typeImport+'&id_group='+id_group,'GET',handler_import);
255                }
256
257                if (Element('importCSVFile').attachEvent)
258                        Element('importCSVFile').attachEvent("onload", _onload);
259                else
260                        Element('importCSVFile').onload = _onload;
261                                       
262                form.action ="inc/cc_updown.php";
263                form.target ="importCSVFile";           
264                form.submit();
265
266                form.removeChild(form.import_file);
267                form.style.visibility = 'hidden';
268                this.importWriteStatus(new Array('importing'));
269
270        }
271       
272        cIEContacts.prototype.close = function() {
273                this.win.close();
274        }
275       
276        cIEContacts.prototype.exportCSV = function() {
277                var lang_export_error = Element('cc_msg_export_error');
278                var handler_export = function(data) {
279                        if(!data){
280                                alert(lang_export_error );
281                                return;
282                        }                               
283                       
284                        var div_download = document.getElementById("id_div_download");
285       
286                        if (!div_download){
287                                div_download = document.createElement("DIV");
288                                div_download.id="id_div_download";
289                                document.body.appendChild(div_download);
290                        }               
291                        div_download.innerHTML="<iframe style='display:none;width:0;height:0' name='attachment' src='inc/cc_updown.php?&file_name=expresso.csv&file_path="+data+"'></iframe>";
292                        Element('export_button').disabled = false;
293                }               
294                var typeExport = Element("typeExport");
295                Element('export_button').disabled = true;
296                Connector.newRequest('export_contacts', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=export_contacts', 'POST', handler_export, 'typeExport='+typeExport.value);
297        }
298
299/* Build the Object */
300        var     ccIEContacts = new cIEContacts();
Note: See TracBrowser for help on using the repository browser.