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

Revision 689, 8.5 KB checked in by eduardoalex, 15 years ago (diff)

Ticket #413

  • Property svn:eol-style set to native
  • Property svn:executable set to *
RevLine 
[2]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;
[320]28                        if (tree_folders.getNodeById(get_current_folder()))
29                                tree_folders.getNodeById(get_current_folder())._select();
[2]30                }
[345]31                cExecute ("$this.imap_functions.get_folders_list&folder="+current_folder, handler_update_folders);             
[2]32        }
33
34        Tree_Box.prototype.verify_children = function(param){
35                var aux;
36                var aux1;
37                var cont = parseInt(0);
38                for(var i=0 ; i < folders.length; i++){
39                        aux = folders[i].folder_id.split(cyrus_delimiter);
40                        aux.pop();
41                        for(var j=0; j < aux.length; j++){
42                                if(j == 0)
43                                        aux1 = aux[j];
44                                else
45                                        aux1 += cyrus_delimiter + aux[j];
46                        }
47                        if( aux1 == param){
48                                cont++;
49                        }
50                }
51                if( cont == 0){
52                        ttreeBox.del_past(param);
53                }else{
[79]54                       alert(get_lang("Delete your sub-folders first"));
[2]55                }
56                cont = parseInt(0);
57        }
58       
59        // Função para verificar ponto e espacos;
60        Tree_Box.prototype.verify = function(exp)
61        {
[63]62                var reTipo = /^(.*)(\/)(.*)$/;
63               
64                if(reTipo.test(exp)){
65                        return false;
66                }
[51]67                return true;
[2]68        }
69
70        // Função para verificar o nome da caixa;
71        Tree_Box.prototype.verify_names = function(name_folder){
[197]72            var arr_nm_folder = new Array("INBOX",trashfolder,draftsfolder,sentfolder,spamfolder);
[2]73                for(var i=0 ; i < arr_nm_folder.length; i++){
74                        if(name_folder == arr_nm_folder[i]){
75                                ttree.FOLDER = "";
76                                return true;
77                        }
78                }
79                return false;
80        }
81       
82        // Valida os nomes das pastas
83        Tree_Box.prototype.validate = function(func){
84       
85                var aux = ttree.FOLDER.split(cyrus_delimiter);
86                var aux2;
87
88                if(ttree.FOLDER != ""){
89                        if(aux.length > 1){aux2 = aux[1];}
90                        else{aux2 = aux[0];}
91                        if(this.verify_names(aux2)){
92                                if(func == "newpast")
[197]93                   alert(get_lang("It's not possible create inside: ") + (get_lang(special_folders[aux2])));
[2]94                                if(func == "rename")
[197]95                   alert(get_lang("It's not possible rename the folder: ") + (get_lang(special_folders[aux2])));
[2]96                                return false;
97                        }else{
98                                if(func == "newpast"){
[197]99                    var button = prompt(get_lang('Enter the name of the new folder:'),"");
[689]100                                       
101                                        if (button.indexOf("local_") != -1  || button.toUpperCase() == "INBOX") {
102                                                alert(get_lang("cannot create folder. try other folder name"));
103                                                return false; //Não posso criar pastas contendo a string local_                                 
104                                        }
105
[2]106                                        if(trim(button) == "" || trim(button) == null){
107                                                return false;
108                                        }else{
109                                                ttreeBox.new_past(button);
110                                        }
111                                }
112                                if(func == "rename"){
113                                        if(ttree.FOLDER == "root"){
[128]114                                alert(get_lang("It's not possible rename this folder!"));
[2]115                                                return false;
116                                        }
[69]117                                        if(ttree.FOLDER == get_current_folder()){
[197]118                        alert(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
[69]119                                                return false;
120                                        }
[128]121                    var button1 = prompt(get_lang("Enter a name for the box"), "");
[689]122                                        if (button1.indexOf("local_") != -1 || button1.toUpperCase() == "INBOX") {
123                                                alert(get_lang("cannot create folder. try other folder name"));
124                                                return false; //Não posso criar pastas contendo a string local_                                 
125                                        }
[2]126                                        if(trim(button1) == "" || trim(button1) == null){
127                                                return false;
128                                        }else{
129                                                ttreeBox.rename(button1);
130                                        }
131                                }
132                        }
133                }else{
[128]134            alert(get_lang("Select a folder!"));
[2]135                        return false;
136                }
137        }
138       
139        // Para criar a nova pasta;
140        Tree_Box.prototype.new_past = function(newp){
141
142        var aux   = ttree.FOLDER.split(cyrus_delimiter);
143        var newp2 = "";
144               
145                if(aux.length == 1 && aux[0] != "root"){
[197]146            alert(get_lang("It's not possible create inside: ") + aux[0]);
[2]147                        newp = "";
148                }else{
149                        if( aux[0] == "root"){
150                                if(!this.verify(newp)){
[128]151                    alert(get_lang("Type without spaces, dots or special characters!"));
[2]152                                        newp = "";
153                                        return false;
154                                }else{
155                                        newp2 = newp;
156                                        newp = "INBOX" + cyrus_delimiter + newp;
157                                }
158                        }else{
159                                if(!this.verify(newp)){
[128]160                    alert(get_lang("Type without spaces, dots or special characters!"));
[2]161                                        newp = "";
162                                        return false;
163                                }else{
164                                        newp2 = newp;
165                                        newp = ttree.FOLDER + cyrus_delimiter + newp;
166                                }
167                        }
168                }
169                if(newp != ""){
170                        var handler_return = function(data){           
171                                if(data != "Ok"){
172                                        alert(data);
173                                }else{
174                                        ttreeBox.name_folder = newp;
175                                        this.name_func = "newpast";
176                                        ttreeBox.update_folder();
177                                }
178                        }
179                        var args = "$this.imap_functions.create_mailbox";
180                        var params = "newp="+newp;
181                        cExecute(args,handler_return,params);
182                }       
183        }
184       
185        // Funcao para renomear a pasta;
186        Tree_Box.prototype.rename = function(rename){
187                var old_box  = ttree.FOLDER;
188                var aux = old_box.split(cyrus_delimiter);
189                var rename_new = "";
190               
191                if(old_box == "root"){
[128]192            alert(get_lang("Select a folder!"));
[2]193                        return false;
194                }
195                if(aux.length == 1){
[197]196            alert(get_lang("It's not possible rename the folder: ") + aux[0]);
[2]197                        rename = "";
198                        return false;
199                }else{
200                        if(this.verify_names(aux[1])){
[197]201                alert(get_lang("It's not possible rename the folder: ") + aux[1]);
[2]202                                rename = "";
203                                return false;
204                        }else{
205                                if(!this.verify(rename)){
[128]206                    alert(get_lang("Type without spaces, dots or special characters!"));
[2]207                                        rename = "";
208                                        return false;
209                                }else{
210                                        aux.pop();
211                                        aux.push(rename);
212                                        for(var i=0; i< aux.length; i++){
213                                                if( i == 0)
214                                                        rename_new = aux[i];
215                                                else
216                                                        rename_new += cyrus_delimiter + aux[i];
217                                        }
218                                }       
219                        }
220                }
221                if(rename != ""){
222                        var handler_return = function(data)
223                        {               
224                                ttree.FOLDER = "";
225                                ttreeBox.update_folder();                               
226                        }
227                        var args = "$this.imap_functions.ren_mailbox";
228                        var params = "rename="+rename_new+"&current="+old_box;
229                        cExecute(args,handler_return,params);
230                }
231        }
232        //
233        Tree_Box.prototype.export_all_msg = function(){
234                       
235                if(ttree.FOLDER == "root"){return false;}
236                var nm_bx = ttree.FOLDER.split(cyrus_delimiter);
237                var name_f = nm_bx[nm_bx.length -1];
238                var hand_export = function(data){
239                        if(!data){
240                                write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.'))
241                        }else
242                          download_attachments(null, null, data, null,null, name_f +'.zip');
243                }
244                cExecute("$this.exporteml.export_all",hand_export,"folder="+ttree.FOLDER);     
[53]245                write_msg(get_lang('You must wait while the messages will be exported...'));                   
[2]246        }
247       
248        // Função para deletar a pasta;
249        Tree_Box.prototype.del = function(){
250       
251                var aux = ttree.FOLDER.split(cyrus_delimiter);
252
253                if(aux[0] == "root" || ttree.FOLDER == ""){
[79]254                        alert(get_lang("Select a folder!"));
[2]255                        return false;
256                }
257               
258                if(aux.length == 1){
[197]259            alert(get_lang("It's not possible delete the folder: ") + get_lang("Inbox"));
[2]260                        return false;
261                }else{
262                        if(this.verify_names(aux[1])){
[197]263                    alert(get_lang("It's not possible delete the folder: ") + get_lang(special_folders[aux[1]]));       
[128]264                        return false;
[2]265                        }else{
266                                this.verify_children(ttree.FOLDER);
267                        }
268                }       
269        }
270       
271        Tree_Box.prototype.del_past = function(param){
272
273                var aux = param.split(cyrus_delimiter);
274                var aux1 = aux.pop();
[69]275
276                if(ttree.FOLDER == get_current_folder()){
[197]277            alert(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
[69]278                        return false;
279                }
[128]280        if(confirm(get_lang("Do you wish to exclude the folder ") + aux1+ "?")){
[2]281                        var handler_return = function(data)
282                        {               
283                                if(data != "Ok")
284                                {
285                                        alert(data);
286                                }else{
287                                        ttree.FOLDER = "";
288                                        ttreeBox.update_folder();
[128]289                    alert(get_lang("The folder %1 was successfully removed", aux1));
[2]290                                }
291                        }
292                        var args = "$this.imap_functions.delete_mailbox";
293                        var params = "del_past="+param;
294                        cExecute(args,handler_return,params);
295                }else{
296                        alert(get_lang("The folder was not deleted!"));
297                }
298       
299        }
300/* - Build Object -*/
301        var ttreeBox;
[689]302        ttreeBox = new Tree_Box();
Note: See TracBrowser for help on using the repository browser.