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

Revision 2, 8.8 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

  • 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 = 395;
5                this.wHeight = 240;
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.showList = function(){
20
21                if (!this.el){         
22                        this.el = document.createElement("DIV");
23                        this.el.style.visibility = "hidden";
24                        this.el.style.position = "absolute";
25                        this.el.style.left = "0px";
26                        this.el.style.top = "0px";
27                        this.el.style.width = this.wWidth       + 'px';
28                        this.el.style.height = this.wHeight + 'px';
29                        this.el.id = 'cc_rectIEContacts';
30                        document.body.appendChild(this.el);
31                        this.el.innerHTML =
32                        '<div align="left" id="divAppbox"><table width="100%" border=0>'+
33                        '<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>Importar Contatos'+
34                        '&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"/>Exportar Contatos<br></td></tr>'+
35                        '</table>'+
36                        '<table border=0 height="208px"  width="100%" id="import_span">'+
37                        '<tr><td>'+
38                        '<font color="DARKBLUE" size="2">O Expresso suporta a importação de contatos no formato de arquivo CSV.</font></td></tr>'+
39                        '<tr><td height="75px" valign="top">'+
40                        '<form name="formCSV" method="POST" enctype="multipart/form-data">'+                                                                           
41                        'Selecione o tipo do arquivo:&nbsp;<select id="typeImport">'+
42                        '<option value="outlook">Outlook Express</option>'+
43                        '<option value="thunderbird">Mozilla Thunderbird</option>'+
44                        '<option value="expresso" selected>Expresso (padrão)</option></select><br>'+
45                        '<br>Selecione o arquivo que contém os contatos a serem importados:<br><br>'+                   
46                        '<input id="import_file" type="file" name="import_file">'+
47                        '</form></td></tr>'+
48                        '<tr><td height="10px" align="center" nowrap><span style="visibility:hidden" id="s_info"></span></td></tr>'+
49                        '<tr><td height="10px" align="center"></td></tr>'+
50                        '<tr><td nowrap><center><input id="import_button" type="button" value="Importar Contatos" onClick="javascript:ccIEContacts.importCSV(this)">&nbsp;&nbsp;&nbsp;&nbsp;'+
51                        '<input type="button" value="Fechar" onClick="javascript:ccIEContacts.close()"></center></td></tr>'+
52                        '</table>'+
53                        '<table border=0  height="208px"  width="100%" style="display:none" id="export_span">'+
54                        '<tr><td>'+                                             
55                        '<font color="DARKBLUE" size="2">O Expresso suporta a exportação de contatos no formato de arquivo CSV.</font></td></tr>'+
56                        '<tr><td height="85px" valign="top">'+                                         
57                        'Selecione o tipo do formato que deseja exportar seus contatos:<br><br>'+
58                        '<input style="border:0" id="typeExport_0" name="radio" type="radio" value="expresso" checked/>Exportar como CSV do Expresso (padrão)<br>'+
59                        '<input style="border:0" id="typeExport_1" name="radio" type="radio" value="outlook_pt-BR">Exportar como CSV do Outlook Express (Português)<br>'+
60                        '<input style="border:0" id="typeExport_2" name="radio" type="radio" value="outlook_en">Exportar como CSV do Outlook Express (Inglês)<br>'+
61                        '<input style="border:0" id="typeExport_3" name="radio" type="radio" value="thunderbird">Exportar como CSV do Mozilla Thunderbird'+
62                        '</td></tr>'+
63                        '<tr><td align="center">&nbsp;</td></tr>'+
64                        '<tr><td nowrap><center><input id="export_button" type="button" value="Exportar Contatos" onClick="javascript:ccIEContacts.exportCSV(this)">&nbsp;&nbsp;&nbsp;&nbsp;'+
65                        '<input type="button" value="Fechar" onClick="javascript:ccIEContacts.close()"></center></td></tr>'+
66                        '</table></div>';
67                }               
68                this.showWindow();
69        }
70               
71        cIEContacts.prototype.showWindow = function ()
72        {                                               
73                if(!this.win) {
74
75                        this.win = new dJSWin({                 
76                                id: 'ccIEContacts',
77                                content_id: this.el.id,
78                                width: (this.wWidth +(is_ie ? 41 : 0))  +'px',
79                                height: this.wHeight +'px',
80                                title_color: '#3978d6',
81                                bg_color: '#eee',
82                                title: "Importar / Exportar Contatos Pessoais",                                         
83                                title_text_color: 'white',
84                                button_x_img: '../phpgwapi/images/winclose.gif',
85                                border: true });
86                       
87                        this.win.draw();                       
88                }
89               
90                this.win.open();
91        }
92       
93        cIEContacts.prototype.importWriteStatus = function(args){
94
95                // array args
96                // args[0] - status (success, error ou importing)
97                // args[1] - numero de contatos novos;
98                // args[2] - numero de contatos falhos;
99                // args[3] - numero de contatos sobrescritos;
100                var form = document.formCSV;
101                var status = '';
102
103                var l_1         = '<font face="Verdana" size="1" color="GREEN">['+args[1]+' novos]</font>';
104                var l_2         = '<font face="Verdana" size="1" color="RED">['+args[2]+' falharam]</font>';
105                var l_3         = '<font face="Verdana" size="1" color="DARKBLUE">['+args[3]+' já existiam]</font>';
106                var l_error     = '<span style="height:15px;background:#cc4444">&nbsp;&nbsp;<font face="Verdana" size="1" color="WHITE">A importação falhou. Verifique o formato do arquivo.&nbsp;</font></span>';
107                var l_importing = '<span style="height:15px;background:rgb(250, 209, 99)">&nbsp;&nbsp;<font face="Verdana" size="1" color="DARKBLUE">Importando contatos ....&nbsp;</font></span>';
108
109                if(args[0] == 'success') {
110
111                        for(i = 1; i < 4; i++) {
112                                status += "&nbsp;"+eval('l_'+i);
113                        }
114                        Element('s_info').innerHTML = '&nbsp;&nbsp;<font face="Verdana" size="1" color="BLACK"><b>A importação foi concluída.</b></font><br>&nbsp;'+status;
115                }
116                else
117                        Element('s_info').innerHTML = eval('l_'+args[0]);
118               
119                Element("s_info").style.visibility = '';
120
121                var recreate_fileupload = function () {
122                        var import_file = document.createElement("INPUT");
123                        import_file.type = "FILE";
124                        import_file.name = "import_file";
125                        import_file.id = "import_file";
126                        form.appendChild(import_file);
127                        Element('import_button').disabled = false;
128                        form.style.visibility = '';
129                }                               
130
131                if(args[0] != 'importing') {
132                        recreate_fileupload();
133                        setTimeout("Element('s_info').style.visibility = 'hidden'", 12000);
134                }
135        }
136       
137        cIEContacts.prototype.importCSV = function ()
138        {               
139                var form = document.formCSV;
140               
141                if ((form.import_file.value.length < 10) ||
142                (form.import_file.value.substring(form.import_file.value.length - 4, form.import_file.value.length) != ".csv")){
143                        alert('Selecione um arquivo CSV válido para importar seus contatos.');
144                        return;
145                }
146               
147                var _this = this;
148                Element('import_button').disabled = true;
149
150                var handler_import = function (responseText){
151                        var args = new Array();
152
153                        var data = unserialize(responseText);
154                        if(data.error)
155                                args[0] = 'error';
156                        else {
157                                args[0] = 'success';
158                                args[1] = data._new ? data._new : 0;
159                                args[2] = data._failure ? data._failure : 0;
160                                args[3] = data._existing ? data._existing : 0;
161                        }
162                        _this.importWriteStatus(args);
163                }               
164
165                if(! (divUpload = Element('divUpload'))) {
166                        divUpload               = document.createElement('DIV');               
167                        divUpload.id    = 'divUpload';
168                        document.body.appendChild(divUpload);
169                }
170
171                divUpload.innerHTML= '<iframe style="display:none;width:0px;height:0px" id="importCSVFile" name="importCSVFile"></iframe>';
172
173                var _onload = function(){
174                        var typeImport = Element('typeImport').value;
175
176                        Connector.newRequest('import_contacts','../index.php?menuaction=contactcenter.ui_data.data_manager&method=import_contacts&typeImport='+typeImport,'GET',handler_import);
177                }
178
179                if (Element('importCSVFile').attachEvent)
180                        Element('importCSVFile').attachEvent("onload", _onload);
181                else
182                        Element('importCSVFile').onload = _onload;
183                                       
184                form.action ="inc/cc_updown.php";
185                form.target ="importCSVFile";           
186                form.submit();
187
188                form.removeChild(form.import_file);
189                form.style.visibility = 'hidden';
190                this.importWriteStatus(new Array('importing'));
191
192        }
193       
194        cIEContacts.prototype.close = function() {
195                this.win.close();
196        }
197       
198        cIEContacts.prototype.exportCSV = function() {
199
200                var handler_export = function(data) {
201                        if(!data){
202                                alert("Ocorreu um erro durante a exportação.");
203                                return;
204                        }                               
205                       
206                        var div_download = document.getElementById("id_div_download");
207       
208                        if (!div_download){
209                                div_download = document.createElement("DIV");
210                                div_download.id="id_div_download";
211                                document.body.appendChild(div_download);
212                        }               
213                        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>";
214                        Element('export_button').disabled = false;
215                }               
216                var typeExport = Element("typeExport");
217
218                for(var index = 0; index < 4; index++){
219                        if(Element('typeExport_'+index).checked)
220                                break;                 
221                }
222
223                Element('export_button').disabled = true;
224                Connector.newRequest('export_contacts', '../index.php?menuaction=contactcenter.ui_data.data_manager&method=export_contacts', 'POST', handler_export, 'typeExport='+Element('typeExport_'+index).value);
225        }
226
227/* Build the Object */
228        var     ccIEContacts = new cIEContacts();
Note: See TracBrowser for help on using the repository browser.