source: trunk/expressoMail1_2/js/TreeShow.js @ 51

Revision 51, 7.4 KB checked in by niltonneto, 17 years ago (diff)

Atualizações da versão nova.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1/**************************************************************************\
2 Início
3\**************************************************************************/
4
5        function Tree_Box(){
6               
7                this.name_folder = "";
8                this.name_func   = "";
9                connector.loadScript("TreeS");
10        }
11        Tree_Box.prototype.update_folder = function(){
12
13                var handler_update_folders = function(data){
14                        folders = data;
15                        // update element dftree_folders_tree;
16                        ttree.make_tree(data,"div_tree","folders_tree","ttree.get_folder(\"root\")",ttreeBox.name_folder,ttreeBox.name_folder,false);
17                       
18                        // update element dftree_tree_folders;
19                        if(Element('content_folders')){Element('content_folders').innerHTML = "";}
20                        draw_tree_folders(folders);
21                       
22                        // update element dftree_wfolders_tree;
23                        if (Element('dftree_wfolders_tree')){
24                                Element('dftree_wfolders_tree').innerHTML = '';
25                                ttree.make_tree(data,"wfolders_content_tree","wfolders_tree","","","",false);   
26                        }
27                        ttree.FOLDER = ttreeBox.name_folder;
28                }
29                cExecute ("$this.imap_functions.get_folders_list", handler_update_folders);             
30        }
31
32        Tree_Box.prototype.verify_children = function(param){
33                var aux;
34                var aux1;
35                var cont = parseInt(0);
36                for(var i=0 ; i < folders.length; i++){
37                        aux = folders[i].folder_id.split(cyrus_delimiter);
38                        aux.pop();
39                        for(var j=0; j < aux.length; j++){
40                                if(j == 0)
41                                        aux1 = aux[j];
42                                else
43                                        aux1 += cyrus_delimiter + aux[j];
44                        }
45                        if( aux1 == param){
46                                cont++;
47                        }
48                }
49                if( cont == 0){
50                        ttreeBox.del_past(param);
51                }else{
52                        alert("Delete primeiro as sub-pastas!");
53                }
54                cont = parseInt(0);
55        }
56       
57        // Função para verificar ponto e espacos;
58        Tree_Box.prototype.verify = function(exp)
59        {
60                //var reTipo = /^[A-Z-a-z-0-9-_]+$/;
61                //if(reTipo.test(exp)){return true;}
62                //else{return false;}
63                return true;
64        }
65
66        // Função para verificar o nome da caixa;
67        Tree_Box.prototype.verify_names = function(name_folder){
68
69                var arr_nm_folder = new Array("INBOX","Enviados","Enviado","Rascunhos","Rascunho","Lixeira");
70                for(var i=0 ; i < arr_nm_folder.length; i++){
71                        if(name_folder == arr_nm_folder[i]){
72                                ttree.FOLDER = "";
73                                return true;
74                        }
75                }
76                return false;
77        }
78       
79        // Valida os nomes das pastas
80        Tree_Box.prototype.validate = function(func){
81       
82                var aux = ttree.FOLDER.split(cyrus_delimiter);
83                var aux2;
84
85                if(ttree.FOLDER != ""){
86                        if(aux.length > 1){aux2 = aux[1];}
87                        else{aux2 = aux[0];}
88                        if(this.verify_names(aux2)){
89                                if(func == "newpast")
90                                        if(aux2 == "INBOX"){alert(get_lang("It's not possible")+" criar dentro de : Caixa de Entrada" )}else{alert(get_lang("It's not possible")+" criar dentro de : " + aux2)};
91                                if(func == "rename")
92                                        if(aux2 == "INBOX"){alert(get_lang("It's not possible")+" renomear a pasta : Caixa de Entrada" )}else{alert(get_lang("It's not possible")+" renomear a pasta : " + aux2)};
93                                return false;
94                        }else{
95                                if(func == "newpast"){
96                                        var button = prompt("Digite um nome para a nova caixa : ","");
97                                        if(trim(button) == "" || trim(button) == null){
98                                                return false;
99                                        }else{
100                                                ttreeBox.new_past(button);
101                                        }
102                                }
103                                if(func == "rename"){
104                                        if(ttree.FOLDER == "root"){
105                                                alert(get_lang("It's not possible")+" renomear esta pasta!");
106                                                return false;
107                                        }
108                                        var button1 = prompt("Digite um novo nome para a caixa : ", "");
109                                        if(trim(button1) == "" || trim(button1) == null){
110                                                return false;
111                                        }else{
112                                                ttreeBox.rename(button1);
113                                        }
114                                }
115                        }
116                }else{
117                        alert("Selecione uma pasta!");
118                        return false;
119                }
120        }
121       
122        // Para criar a nova pasta;
123        Tree_Box.prototype.new_past = function(newp){
124
125        var aux   = ttree.FOLDER.split(cyrus_delimiter);
126        var newp2 = "";
127               
128                if(aux.length == 1 && aux[0] != "root"){
129                        alert(get_lang("It's not possible")+" criar dentro de : " + aux[0]);
130                        newp = "";
131                }else{
132                        if( aux[0] == "root"){
133                                if(!this.verify(newp)){
134                                        alert("Digite sem espacos, pontos e caracteres especiais!");
135                                        newp = "";
136                                        return false;
137                                }else{
138                                        newp2 = newp;
139                                        newp = "INBOX" + cyrus_delimiter + newp;
140                                }
141                        }else{
142                                if(!this.verify(newp)){
143                                        alert("Digite sem espacos, pontos e caracteres especiais!");
144                                        newp = "";
145                                        return false;
146                                }else{
147                                        newp2 = newp;
148                                        newp = ttree.FOLDER + cyrus_delimiter + newp;
149                                }
150                        }
151                }
152                if(newp != ""){
153                        var handler_return = function(data){           
154                                if(data != "Ok"){
155                                        alert(data);
156                                }else{
157                                        ttreeBox.name_folder = newp;
158                                        this.name_func = "newpast";
159                                        ttreeBox.update_folder();
160                                }
161                        }
162                        var args = "$this.imap_functions.create_mailbox";
163                        var params = "newp="+newp;
164                        cExecute(args,handler_return,params);
165                }       
166        }
167       
168        // Funcao para renomear a pasta;
169        Tree_Box.prototype.rename = function(rename){
170
171                var old_box  = ttree.FOLDER;
172                var aux = old_box.split(cyrus_delimiter);
173                var rename_new = "";
174               
175                if(old_box == "root"){
176                        alert("Selecione uma pasta!");
177                        return false;
178                }
179                if(aux.length == 1){
180                        alert(get_lang("It's not possible")+" renomear : " + aux[0]);
181                        rename = "";
182                        return false;
183                }else{
184                        if(this.verify_names(aux[1])){
185                                alert(get_lang("It's not possible")+" renomear : " + aux[1]);
186                                rename = "";
187                                return false;
188                        }else{
189                                if(!this.verify(rename)){
190                                        alert("Digite sem espacos, pontos e caracteres especiais!");
191                                        rename = "";
192                                        return false;
193                                }else{
194                                        aux.pop();
195                                        aux.push(rename);
196                                        for(var i=0; i< aux.length; i++){
197                                                if( i == 0)
198                                                        rename_new = aux[i];
199                                                else
200                                                        rename_new += cyrus_delimiter + aux[i];
201                                        }
202                                }       
203                        }
204                }
205                if(rename != ""){
206                        var handler_return = function(data)
207                        {               
208                                ttree.FOLDER = "";
209                                ttreeBox.update_folder();                               
210                        }
211                        var args = "$this.imap_functions.ren_mailbox";
212                        var params = "rename="+rename_new+"&current="+old_box;
213                        cExecute(args,handler_return,params);
214                }
215        }
216        //
217        Tree_Box.prototype.export_all_msg = function(){
218                       
219                if(ttree.FOLDER == "root"){return false;}
220                var nm_bx = ttree.FOLDER.split(cyrus_delimiter);
221                var name_f = nm_bx[nm_bx.length -1];
222                var hand_export = function(data){
223                        if(!data){
224                                write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.'))
225                        }else
226                          download_attachments(null, null, data, null,null, name_f +'.zip');
227                }
228                cExecute("$this.exporteml.export_all",hand_export,"folder="+ttree.FOLDER);     
229                write_msg(get_lang('You must wait while the messages will be export...'));                     
230        }
231       
232        // Função para deletar a pasta;
233        Tree_Box.prototype.del = function(){
234       
235                var aux = ttree.FOLDER.split(cyrus_delimiter);
236
237                if(aux[0] == "root" || ttree.FOLDER == ""){
238                        alert("Selecione uma pasta!")
239                        return false;
240                }
241               
242                if(aux.length == 1){
243                        alert(get_lang("It's not possible")+" deletar a pasta Caixa de Entrada");
244                        return false;
245                }else{
246                        if(this.verify_names(aux[1])){
247                                alert(get_lang("It's not possible")+" deletar a pasta " + aux[1]);
248                                return false;
249                        }else{
250                                this.verify_children(ttree.FOLDER);
251                        }
252                }       
253        }
254       
255        Tree_Box.prototype.del_past = function(param){
256
257                var aux = param.split(cyrus_delimiter);
258                var aux1 = aux.pop();
259               
260                if(confirm("Deseja excluir a pasta '" + aux1+"' ?")){
261                        var handler_return = function(data)
262                        {               
263                                if(data != "Ok")
264                                {
265                                        alert(data);
266                                }else{
267                                        ttree.FOLDER = "";
268                                        ttreeBox.update_folder();
269                                        alert("A pasta " + aux1 + " foi removida com sucesso!");
270                                }
271                        }
272                        var args = "$this.imap_functions.delete_mailbox";
273                        var params = "del_past="+param;
274                        cExecute(args,handler_return,params);
275                }else{
276                        alert(get_lang("The folder was not deleted!"));
277                }
278       
279        }
280/* - Build Object -*/
281        var ttreeBox;
282        ttreeBox = new Tree_Box();
Note: See TracBrowser for help on using the repository browser.