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

Revision 2402, 8.9 KB checked in by amuller, 14 years ago (diff)

Ticket #1022 - Mudando critérios de req. ao entrar na cache/

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