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

Revision 2, 7.4 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/**************************************************************************\
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        }
64
65        // Função para verificar o nome da caixa;
66        Tree_Box.prototype.verify_names = function(name_folder){
67
68                var arr_nm_folder = new Array("INBOX","Enviados","Enviado","Rascunhos","Rascunho","Lixeira");
69                for(var i=0 ; i < arr_nm_folder.length; i++){
70                        if(name_folder == arr_nm_folder[i]){
71                                ttree.FOLDER = "";
72                                return true;
73                        }
74                }
75                return false;
76        }
77       
78        // Valida os nomes das pastas
79        Tree_Box.prototype.validate = function(func){
80       
81                var aux = ttree.FOLDER.split(cyrus_delimiter);
82                var aux2;
83
84                if(ttree.FOLDER != ""){
85                        if(aux.length > 1){aux2 = aux[1];}
86                        else{aux2 = aux[0];}
87                        if(this.verify_names(aux2)){
88                                if(func == "newpast")
89                                        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)};
90                                if(func == "rename")
91                                        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)};
92                                return false;
93                        }else{
94                                if(func == "newpast"){
95                                        var button = prompt("Digite um nome para a nova caixa : ","");
96                                        if(trim(button) == "" || trim(button) == null){
97                                                return false;
98                                        }else{
99                                                ttreeBox.new_past(button);
100                                        }
101                                }
102                                if(func == "rename"){
103                                        if(ttree.FOLDER == "root"){
104                                                alert(get_lang("It's not possible")+" renomear esta pasta!");
105                                                return false;
106                                        }
107                                        var button1 = prompt("Digite um novo nome para a caixa : ", "");
108                                        if(trim(button1) == "" || trim(button1) == null){
109                                                return false;
110                                        }else{
111                                                ttreeBox.rename(button1);
112                                        }
113                                }
114                        }
115                }else{
116                        alert("Selecione uma pasta!");
117                        return false;
118                }
119        }
120       
121        // Para criar a nova pasta;
122        Tree_Box.prototype.new_past = function(newp){
123
124        var aux   = ttree.FOLDER.split(cyrus_delimiter);
125        var newp2 = "";
126               
127                if(aux.length == 1 && aux[0] != "root"){
128                        alert(get_lang("It's not possible")+" criar dentro de : " + aux[0]);
129                        newp = "";
130                }else{
131                        if( aux[0] == "root"){
132                                if(!this.verify(newp)){
133                                        alert("Digite sem espacos, pontos e caracteres especiais!");
134                                        newp = "";
135                                        return false;
136                                }else{
137                                        newp2 = newp;
138                                        newp = "INBOX" + cyrus_delimiter + newp;
139                                }
140                        }else{
141                                if(!this.verify(newp)){
142                                        alert("Digite sem espacos, pontos e caracteres especiais!");
143                                        newp = "";
144                                        return false;
145                                }else{
146                                        newp2 = newp;
147                                        newp = ttree.FOLDER + cyrus_delimiter + newp;
148                                }
149                        }
150                }
151                if(newp != ""){
152                        var handler_return = function(data){           
153                                if(data != "Ok"){
154                                        alert(data);
155                                }else{
156                                        ttreeBox.name_folder = newp;
157                                        this.name_func = "newpast";
158                                        ttreeBox.update_folder();
159                                }
160                        }
161                        var args = "$this.imap_functions.create_mailbox";
162                        var params = "newp="+newp;
163                        cExecute(args,handler_return,params);
164                }       
165        }
166       
167        // Funcao para renomear a pasta;
168        Tree_Box.prototype.rename = function(rename){
169
170                var old_box  = ttree.FOLDER;
171                var aux = old_box.split(cyrus_delimiter);
172                var rename_new = "";
173               
174                if(old_box == "root"){
175                        alert("Selecione uma pasta!");
176                        return false;
177                }
178                if(aux.length == 1){
179                        alert(get_lang("It's not possible")+" renomear : " + aux[0]);
180                        rename = "";
181                        return false;
182                }else{
183                        if(this.verify_names(aux[1])){
184                                alert(get_lang("It's not possible")+" renomear : " + aux[1]);
185                                rename = "";
186                                return false;
187                        }else{
188                                if(!this.verify(rename)){
189                                        alert("Digite sem espacos, pontos e caracteres especiais!");
190                                        rename = "";
191                                        return false;
192                                }else{
193                                        aux.pop();
194                                        aux.push(rename);
195                                        for(var i=0; i< aux.length; i++){
196                                                if( i == 0)
197                                                        rename_new = aux[i];
198                                                else
199                                                        rename_new += cyrus_delimiter + aux[i];
200                                        }
201                                }       
202                        }
203                }
204                if(rename != ""){
205                        var handler_return = function(data)
206                        {               
207                                ttree.FOLDER = "";
208                                ttreeBox.update_folder();                               
209                        }
210                        var args = "$this.imap_functions.ren_mailbox";
211                        var params = "rename="+rename_new+"&current="+old_box;
212                        cExecute(args,handler_return,params);
213                }
214        }
215        //
216        Tree_Box.prototype.export_all_msg = function(){
217                       
218                if(ttree.FOLDER == "root"){return false;}
219                var nm_bx = ttree.FOLDER.split(cyrus_delimiter);
220                var name_f = nm_bx[nm_bx.length -1];
221                var hand_export = function(data){
222                        if(!data){
223                                write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.'))
224                        }else
225                          download_attachments(null, null, data, null,null, name_f +'.zip');
226                }
227                cExecute("$this.exporteml.export_all",hand_export,"folder="+ttree.FOLDER);     
228                write_msg(get_lang('You must wait while the messages will be export...'));                     
229        }
230       
231        // Função para deletar a pasta;
232        Tree_Box.prototype.del = function(){
233       
234                var aux = ttree.FOLDER.split(cyrus_delimiter);
235
236                if(aux[0] == "root" || ttree.FOLDER == ""){
237                        alert("Selecione uma pasta!")
238                        return false;
239                }
240               
241                if(aux.length == 1){
242                        alert(get_lang("It's not possible")+" deletar a pasta Caixa de Entrada");
243                        return false;
244                }else{
245                        if(this.verify_names(aux[1])){
246                                alert(get_lang("It's not possible")+" deletar a pasta " + aux[1]);
247                                return false;
248                        }else{
249                                this.verify_children(ttree.FOLDER);
250                        }
251                }       
252        }
253       
254        Tree_Box.prototype.del_past = function(param){
255
256                var aux = param.split(cyrus_delimiter);
257                var aux1 = aux.pop();
258               
259                if(confirm("Deseja excluir a pasta '" + aux1+"' ?")){
260                        var handler_return = function(data)
261                        {               
262                                if(data != "Ok")
263                                {
264                                        alert(data);
265                                }else{
266                                        ttree.FOLDER = "";
267                                        ttreeBox.update_folder();
268                                        alert("A pasta " + aux1 + " foi removida com sucesso!");
269                                }
270                        }
271                        var args = "$this.imap_functions.delete_mailbox";
272                        var params = "del_past="+param;
273                        cExecute(args,handler_return,params);
274                }else{
275                        alert(get_lang("The folder was not deleted!"));
276                }
277       
278        }
279/* - Build Object -*/
280        var ttreeBox;
281        ttreeBox = new Tree_Box();
Note: See TracBrowser for help on using the repository browser.