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

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

* empty log message *

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