/**************************************************************************\ Início \**************************************************************************/ function Tree_Box(){ this.name_folder = ""; this.name_func = ""; connector.loadScript("TreeS"); } Tree_Box.prototype.update_folder = function(){ var handler_update_folders = function(data){ folders = data; // update element dftree_folders_tree; ttree.make_tree(data,"div_tree","folders_tree","ttree.get_folder(\"root\")",ttreeBox.name_folder,ttreeBox.name_folder,false); // update element dftree_tree_folders; if(Element('content_folders')){Element('content_folders').innerHTML = "";} draw_tree_folders(folders); // update element dftree_wfolders_tree; if (Element('dftree_wfolders_tree')){ Element('dftree_wfolders_tree').innerHTML = ''; ttree.make_tree(data,"wfolders_content_tree","wfolders_tree","","","",false); } ttree.FOLDER = ttreeBox.name_folder; if (tree_folders.getNodeById(get_current_folder())) tree_folders.getNodeById(get_current_folder())._select(); } cExecute ("$this.imap_functions.get_folders_list&folder="+current_folder, handler_update_folders); } Tree_Box.prototype.verify_children = function(param){ var aux; var aux1; var cont = parseInt(0); for(var i=0 ; i < folders.length; i++){ aux = folders[i].folder_id.split(cyrus_delimiter); aux.pop(); for(var j=0; j < aux.length; j++){ if(j == 0) aux1 = aux[j]; else aux1 += cyrus_delimiter + aux[j]; } if( aux1 == param){ cont++; } } if( cont == 0){ ttreeBox.del_past(param); }else{ alert(get_lang("Delete your sub-folders first")); } cont = parseInt(0); } // Função para verificar ponto e espacos; Tree_Box.prototype.verify = function(exp) { var reTipo = /^(.*)(\/)(.*)$/; if(reTipo.test(exp)){ return false; } return true; } // Função para verificar o nome da caixa; Tree_Box.prototype.verify_names = function(name_folder){ var arr_nm_folder = new Array("INBOX",trashfolder,draftsfolder,sentfolder,spamfolder); for(var i=0 ; i < arr_nm_folder.length; i++){ if(name_folder == arr_nm_folder[i]){ ttree.FOLDER = ""; return true; } } return false; } // Valida os nomes das pastas Tree_Box.prototype.validate = function(func){ var aux = ttree.FOLDER.split(cyrus_delimiter); var aux2; if(ttree.FOLDER != ""){ if(aux.length > 1){aux2 = aux[1];} else{aux2 = aux[0];} if(this.verify_names(aux2)){ if(func == "newpast") alert(get_lang("It's not possible create inside: ") + (get_lang(special_folders[aux2]))); if(func == "rename") alert(get_lang("It's not possible rename the folder: ") + (get_lang(special_folders[aux2]))); return false; }else{ if(func == "newpast"){ var button = prompt(get_lang('Enter the name of the new folder:'),""); if(trim(button) == "" || trim(button) == null){ return false; }else{ ttreeBox.new_past(button); } } if(func == "rename"){ if(ttree.FOLDER == "root"){ alert(get_lang("It's not possible rename this folder!")); return false; } if(ttree.FOLDER == get_current_folder()){ alert(get_lang("It's not possible rename this folder, because it is being used in the moment!")); return false; } var button1 = prompt(get_lang("Enter a name for the box"), ""); if(trim(button1) == "" || trim(button1) == null){ return false; }else{ ttreeBox.rename(button1); } } } }else{ alert(get_lang("Select a folder!")); return false; } } // Para criar a nova pasta; Tree_Box.prototype.new_past = function(newp){ var aux = ttree.FOLDER.split(cyrus_delimiter); var newp2 = ""; if(aux.length == 1 && aux[0] != "root"){ alert(get_lang("It's not possible create inside: ") + aux[0]); newp = ""; }else{ if( aux[0] == "root"){ if(!this.verify(newp)){ alert(get_lang("Type without spaces, dots or special characters!")); newp = ""; return false; }else{ newp2 = newp; newp = "INBOX" + cyrus_delimiter + newp; } }else{ if(!this.verify(newp)){ alert(get_lang("Type without spaces, dots or special characters!")); newp = ""; return false; }else{ newp2 = newp; newp = ttree.FOLDER + cyrus_delimiter + newp; } } } if(newp != ""){ var handler_return = function(data){ if(data != "Ok"){ alert(data); }else{ ttreeBox.name_folder = newp; this.name_func = "newpast"; ttreeBox.update_folder(); } } var args = "$this.imap_functions.create_mailbox"; var params = "newp="+newp; cExecute(args,handler_return,params); } } // Funcao para renomear a pasta; Tree_Box.prototype.rename = function(rename){ var old_box = ttree.FOLDER; var aux = old_box.split(cyrus_delimiter); var rename_new = ""; if(old_box == "root"){ alert(get_lang("Select a folder!")); return false; } if(aux.length == 1){ alert(get_lang("It's not possible rename the folder: ") + aux[0]); rename = ""; return false; }else{ if(this.verify_names(aux[1])){ alert(get_lang("It's not possible rename the folder: ") + aux[1]); rename = ""; return false; }else{ if(!this.verify(rename)){ alert(get_lang("Type without spaces, dots or special characters!")); rename = ""; return false; }else{ aux.pop(); aux.push(rename); for(var i=0; i< aux.length; i++){ if( i == 0) rename_new = aux[i]; else rename_new += cyrus_delimiter + aux[i]; } } } } if(rename != ""){ var handler_return = function(data) { ttree.FOLDER = ""; ttreeBox.update_folder(); } var args = "$this.imap_functions.ren_mailbox"; var params = "rename="+rename_new+"¤t="+old_box; cExecute(args,handler_return,params); } } // Tree_Box.prototype.export_all_msg = function(){ if(ttree.FOLDER == "root"){return false;} var nm_bx = ttree.FOLDER.split(cyrus_delimiter); var name_f = nm_bx[nm_bx.length -1]; var hand_export = function(data){ if(!data){ write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.')) }else download_attachments(null, null, data, null,null, name_f +'.zip'); } cExecute("$this.exporteml.export_all",hand_export,"folder="+ttree.FOLDER); write_msg(get_lang('You must wait while the messages will be exported...')); } // Função para deletar a pasta; Tree_Box.prototype.del = function(){ var aux = ttree.FOLDER.split(cyrus_delimiter); if(aux[0] == "root" || ttree.FOLDER == ""){ alert(get_lang("Select a folder!")); return false; } if(aux.length == 1){ alert(get_lang("It's not possible delete the folder: ") + get_lang("Inbox")); return false; }else{ if(this.verify_names(aux[1])){ alert(get_lang("It's not possible delete the folder: ") + get_lang(special_folders[aux[1]])); return false; }else{ this.verify_children(ttree.FOLDER); } } } Tree_Box.prototype.del_past = function(param){ var aux = param.split(cyrus_delimiter); var aux1 = aux.pop(); if(ttree.FOLDER == get_current_folder()){ alert(get_lang("It's not possible rename this folder, because it is being used in the moment!")); return false; } if(confirm(get_lang("Do you wish to exclude the folder ") + aux1+ "?")){ var handler_return = function(data) { if(data != "Ok") { alert(data); }else{ ttree.FOLDER = ""; ttreeBox.update_folder(); alert(get_lang("The folder %1 was successfully removed", aux1)); } } var args = "$this.imap_functions.delete_mailbox"; var params = "del_past="+param; cExecute(args,handler_return,params); }else{ alert(get_lang("The folder was not deleted!")); } } /* - Build Object -*/ var ttreeBox; ttreeBox = new Tree_Box();