'; for (x in expresso_mail_archive.folders[w]){ strFolders += '\n----------' + x + ':= ' + expresso_mail_archive.folders[w][x]; } strFolders += '\n<---'; } strFolders += '\n---'; alert(lfolders.length + ' folders mapeados, com default = ' + expresso_mail_archive.currentfolder + '\nfolders list:\n\n' + strFolders); */ //If something UI related have been flagged, handle it if (expresso_mail_archive.drawdata){ //window.alert('com drawdata e treeName = ' + expresso_mail_archive.drawdata.treeName); expresso_mail_archive.drawFolderTree(); } } } //getFolderList callback Fail MailArchiver.prototype.getFoldersListOperationFailure = function(error, http_msg){ window.alert('List folders mistake:' + error + '\nhttp_error = ' + http_msg); } //drawFolderTree operation, if requested to MailArchiver.prototype.drawFolderTree = function(){ //window.alert('na api de foldertree'); var localBaseName = 'local_'; var objectTree = expresso_mail_archive.drawdata.treeObject; var evalobjectTree = eval(expresso_mail_archive.drawdata.treeName); //Add nodes to tree if(typeof(evalobjectTree) == 'object'){ if(expresso_mail_archive.folders.length > 0){ //window.alert('vai adicionar ' + expresso_mail_archive.folders.length + ' elementos na tree'); //window.alert('arvore ja tem ' + evalobjectTree.length + ' nodos'); for(i=0; i ('+data[i].folder_unseen+')', onClick:"change_folder('"+data[i].folder_id+"','"+data[i].folder_name+"')", plusSign:data[i].folder_hasChildren}); var n_demo = new dNode({id: localBaseName + expresso_mail_archive.folders[i]["id"], caption: folder_caption + ' ('+expresso_mail_archive.folders[i]["unseen"]+')', onClick: "change_folder('"+ localBaseName + expresso_mail_archive.folders[i]["id"] +"','"+ localBaseName + expresso_mail_archive.folders[i]["id"]+"', '" + expresso_mail_archive.drawdata.treeName + "')", plusSign:expresso_mail_archive.folders[i]["haschild"]}); //var n_demo = new dNode({id: localBaseName + expresso_mail_archive.folders[i]["name"], caption: folder_caption, onClick: "change_folder('"+ localBaseName + expresso_mail_archive.folders[i]["name"] +"','"+ localBaseName + expresso_mail_archive.folders[i]["name"]+"', '" + expresso_mail_archive.drawdata.treeName + "')", plusSign:expresso_mail_archive.folders[i]["haschild"]}); //Adjust the id node names if(expresso_mail_archive.currentfolder){ if(expresso_mail_archive.currentfolder.substr(0,5) != 'local'){ evalobjectTree.add(n_demo, localBaseName + expresso_mail_archive.currentfolder); } else{ evalobjectTree.add(n_demo,expresso_mail_archive.currentfolder); } } else { expresso_mail_archive.currentfolder = 'local_root'; evalobjectTree.add(n_demo,expresso_mail_archive.currentfolder); } } //window.alert('refrescando...'); //evalobjectTree.update_folder('local_root'); } } } //getFaultInfo operation MailArchiver.prototype.getFaultInfo = function(){ try{ ArchiveServices.getFaultInfo(expresso_mail_archive.getFaultInfoOperationOK, expresso_mail_archive.getFaultInfoOperationFailure, sessid); } catch(e){ write_msg(get_lang('getFaultInfo invoke fails = ' + e),true); } } //getFaultInfo callback OK MailArchiver.prototype.getFaultInfoOperationOK = function(faultinfo){ try{ write_msg(get_lang('MailArchiver remote service reports the following error:' + faultinfo.getReturn().getSoapFaultString(), true)); } catch(e){ write_msg(get_lang('Ops! It was not possible to capture service error data.', true)); } } //getFaultInfo callback Fail MailArchiver.prototype.getFaultInfoOperationFailure = function(errorCode, errorDesc){ try{ write_msg(get_lang('SoapFault capture fails at:' + errorCode + ' | ' + errorDesc, true)); } catch(e){ write_msg(get_lang('Service error mapping', true)); } } //createFolder operation MailArchiver.prototype.createFolder = function(parentFolder, folderName){ try{ ArchiveServices.createFolder(expresso_mail_archive.createFolderOperationOK, expresso_mail_archive.createFolderOperationFailure, sessid, parentFolder, folderName); } catch (e){ window.alert('Ops...create folder fails at:\n' + e); } } //createFolder callback OK MailArchiver.prototype.createFolderOperationOK = function (folderObject){ draw_tree_local_folders(); ttreeBox.update_folder(); } //createFolder callback Fail MailArchiver.prototype.createFolderOperationFailure = function (message){ window.alert('Folder creation fails...\n->' + message.getReturn()); } //deleteFolder operation MailArchiver.prototype.deleteFolder = function(folderName){ try{ ArchiveServices.deleteFolder(expresso_mail_archive.deleteFolderOperationOK, expresso_mail_archive.deleteFolderOperationFailure, sessid, folderName, true); } catch (e){ window.alert('Ops...delete folder fails at:\n' + e); } } //deleteFolder callback OK MailArchiver.prototype.deleteFolderOperationOK = function (folderObject){ window.alert('delete ok'); //var fo = IterateIt(folderObject); write_msg(get_lang("The folder " + expresso_mail_archive.drawdata.folderName + " was successfully removed")); connector.purgeCache(); ttreeBox.name_folder = "root"; ttreeBox.update_folder(); draw_tree_local_folders(); ttreeBox.update_folder(); } //deleteFolder callback Fail MailArchiver.prototype.deleteFolderOperationFailure = function (message){ window.alert('Folder deletion fails...\n->' + message.getReturn()); } //renameFolder operation MailArchiver.prototype.renameFolder = function(folderId, newFolderName){ try{ ArchiveServices.renameFolder(expresso_mail_archive.renameFolderOperationOK, expresso_mail_archive.renameFolderOperationFailure, sessid, folderId, newFolderName); } catch (e){ window.alert('Ops...renaming folder fails at:\n' + e); } } //renameFolder callback OK MailArchiver.prototype.renameFolderOperationOK = function (returnService){ var evalobjectTree = eval(expresso_mail_archive.drawdata.treeName); evalobjectTree.update_folder(); } //renameFolder callback Fail MailArchiver.prototype.renameFolderOperationFailure = function (ServiceFault){ window.alert('Folder rename fails...\n->' + ServiceFault.getReturn()); alert(get_lang("cannot rename folder. try other folder name")); } //getFolderInfo operation MailArchiver.prototype.getFolderInfo = function (folderId){ try{ ArchiveServices.getFolderInfo(expresso_mail_archive.getFolderInfoOperationOK, expresso_mail_archive.getFolderInfoOperationFailure, sessid, folderId); } catch (e){ window.alert('Ops...getFolderInfo fails at:\n' + e); } } //getFolderInfo callback OK MailArchiver.prototype.getFolderInfoOperationOK = function(returnService){ var folder_info = {id : returnService.getReturn().getId(), name : returnService.getReturn().getName(), parent : returnService.getReturn().getParentId(), numfolders: returnService.getReturn().getFolderCount(), nummessages: returnService.getReturn().getMessageCount(), unseen: returnService.getReturn().getUnseenCount()}; expresso_mail_archive.folder = folder_info; } //getFolderInfo callback Fail MailArchiver.prototype.getFolderInfoOperationFailure = function (ServiceFault){ window.alert('getFolderInfo service fails...\n->' + ServiceFault.getReturn()); expresso_mail_archive.folder_data = true; } function foo(){ var a = 0; a++; } //listMessages operation //OLD local_messages.prototype.get_local_range_msgs = function(folder,msg_range_begin,emails_per_page,sort,sort_reverse,search,preview_msg_subject,preview_msg_tip) { //ONLINE messages_proxy.prototype.messages_list = function(folder,msg_range_begin,emails_per_page,sort_box_type,search_box_type,sort_box_reverse,preview_msg_subject,preview_msg_tip,call_back,tree_name) { //sys call = proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); MailArchiver.prototype.listMessages = function(){ try{ var folderid = expresso_mail_archive.currentfolder; //window.alert('folderid = ' + folderid); //var testing_data_xml = ''; //var testing_data_json_mapped = '{"query":{"@lowerIndex":"0", "@upperIndex":"50", "folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date", "@desc":"subject"}]}}'; //window.alert('Query config lower = ' + expresso_mail_archive.queryconfig.lowerIndex + ' - upper = ' + expresso_mail_archive.queryconfig.upperIndex + ' folder = ' + expresso_mail_archive.queryconfig.folder); //if (expresso_mail_archive.queryconfig.folder != null) var query_data = expresso_mail_archive.queryconfig.query(); //else // var testing_data = testing_data_json_mapped; //window.alert('vai chamar o listMessages com testing_data = ' + testing_data); expresso_mail_archive.getFolderInfo(folderid);//invoked to compute messages count //window.alert('Há ' + expresso_mail_archive.folder.nummessages +' no folder ' + expresso_mail_archive.folder.name); ArchiveServices.listMessages(expresso_mail_archive.listMessagesOperationOK, expresso_mail_archive.listMessagesOperationFailure, sessid, query_data); } catch (e){ window.alert('Ops...listMessages fails at:\n' + e); } } //listMessages callback OK MailArchiver.prototype.listMessagesOperationOK = function(returnService){ var msglist = new Array(); expresso_mail_archive.ServiceReturnObject = new Array(); //window.alert('messages data\n\n' + print_r(returnService.getReturn())); /*window.alert('Dados da mensagem:\n->From ' + returnService.getReturn()[0].getFrom() +'\n->To ' + returnService.getReturn()[0].getTo() +'\n->Subject ' + returnService.getReturn()[0].getSubject() +'\n->Date ' + returnService.getReturn()[0].getDate() +'\n->Date ' + returnService.getReturn()[0].getSize() +'\n->ID ' + returnService.getReturn()[0].getId()); */ for(var i=0; i< returnService.getReturn().length; i++){ //window.alert('quer deserializar:\n\n' + print_r(returnService.getReturn()[i])); var ExpSerialized = expresso_mail_archive.pattern.toExpressoHeader(returnService.getReturn()[i]); //window.alert('expSerialized ' + i + '\n\n --\n\n' + print_r(ExpSerialized)); //var test = connector.unserialize(ExpSerialized); //window.alert('unserialized = \n\n' + test); msglist.push(connector.unserialize(ExpSerialized));//usando connector.unserialize sobre o header mapeado no layout abaixo expresso_mail_archive.ServiceReturnObject.push(returnService.getReturn()[i]); //add each one service return data into this embeded object array //window.alert('ServiceReturnObject.lenght = ' + expresso_mail_archive.ServiceReturnObject.length + '\n\n:' + expresso_mail_archive.ServiceReturnObject[i]); } msglist["num_msgs"] = returnService.getReturn().length; msglist["tot_unseen"] = expresso_mail_archive.folder.unseen; //window.alert('print_r\n\n' + print_r(msglist)); expresso_mail_archive.messageslisted = msglist; //window.alert('expresso_mail_archive.message_list.length = ' + expresso_mail_archive.message_list.length); //window.alert(print_r(expresso_mail_archive.message_list)); expresso_mail_archive.drawdata = {messagesList:msglist}; expresso_mail_archive.drawMessagesList(); } //listMessages callback Fail MailArchiver.prototype.listMessagesOperationFailure = function(ServiceFault){ window.alert('listmessages FALHOU!\n' + ServiceFault.getReturn()); } MailArchiver.prototype.getFolderMessagesNumber = function(){ var n = 0; for(var i=0; i < expresso_mail_archive.folders.length; i++){ if(expresso_mail_archive.folders[i]["id"] == expresso_mail_archive.currentfolder){ n = expresso_mail_archive.folders[i]["messages"]; } } return(n); } MailArchiver.prototype.drawMessagesList = function(){ var data_to_draw = expresso_mail_archive.drawdata.messagesList; //window.alert('data to draw = ' + data_to_draw.length + '\ndata_to_draw[0].from.full = ' + print_r(data_to_draw)); //window.alert('Current folder = ' + expresso_mail_archive.currentfolder + ' com ' + expresso_mail_archive.folders.length + ' folders.'); var fcaption = expresso_mail_archive.currentfolder; /*for (var w=0; w < expresso_mail_archive.folders.length; w++){ //window.alert('comparando folder "' + expresso_mail_archive.folders[w]["id"] + '" com o corrente "' + expresso_mail_archive.currentfolder + '"\nEnquanto que o folder.name obtido do getfolderinfo é "' + expresso_mail_archive.folder.name + '"'); if(expresso_mail_archive.folders[w]["id"] == expresso_mail_archive.currentfolder){ fcaption = expresso_mail_archive.folders[w]["name"]; window.alert('folder found!\n -> ' + fcaption); break; } }*/ var fcaption = expresso_mail_archive.folder.name; //var folder_num_msgs = expresso_mail_archive.getFolderMessagesNumber(); var folder_num_msgs = expresso_mail_archive.folder.nummessages; //window.alert('num = ' + folder_num_msgs); alternate_border(0); Element("border_id_0").innerHTML = " " + lang_folder(fcaption) + ' [  / ]'; draw_box(data_to_draw, 'local_' + expresso_mail_archive.currentfolder, true); //draw_paging(expresso_mail_archive.drawdata.messagesList.length); //draw_paging(preferences.max_email_per_page); draw_paging(folder_num_msgs); Element("tot_m").innerHTML = folder_num_msgs; Element('new_m').innerHTML = data_to_draw['tot_unseen'] ? ''+data_to_draw['tot_unseen']+'' : 0; //update_menu(); } MailArchiver.prototype.getMessageHeaders = function(msgId){ var msgfound = false; var headerMsg; //Get message header info, from message list operation previously invoked for (var w=0; w < expresso_mail_archive.messageslisted.length; w++){ //window.alert('comparando messageslisted "' +expresso_mail_archive.messageslisted[w]["msg_number"]+ '" com o id parametrizado "' +msgId+ '"'); if(expresso_mail_archive.messageslisted[w]["msg_number"] == msgId){ headerMsg = expresso_mail_archive.messageslisted[w]; msgfound = true; break; } } //Message does not exists at message list. it will not be loaded. if(!msgfound){ alert('ops... the message"'+msgId+'" was not found at messages list, so it cannot be readed!') headerMsg = null; return; } //window.alert('getMessageHeaders\n\n' + print_r(headerMsg)); return(headerMsg); } MailArchiver.prototype.getMessage = function(msgdata){ try{ if((msgdata.length <= 0) || (msgdata == null)){ window.alert('no msgdata received. aborting local message load') return; } expresso_mail_archive.currentmessage = expresso_mail_archive.getMessageHeaders(msgdata)["msg_number"]; //window.alert('current message guid = ' + expresso_mail_archive.currentmessage); //window.alert('vai invocar getMessageBody com msgid=' + expresso_mail_archive.currentmessage); ArchiveServices.getMessageBody(expresso_mail_archive.getMessageOperationOK, expresso_mail_archive.getMessageOperationFailure, sessid, expresso_mail_archive.currentmessage); } catch(e){ window.alert('Ops...getMessage fails at:\n' + e); } } MailArchiver.prototype.getMessageOperationOK = function(returnService){ if(returnService.getReturn().length <= 0){ window.alert('Oh no: service return data is zero length...'); return; } //window.alert('Get header info from message "' + expresso_mail_archive.currentmessage + '"'); var msgBody = returnService.getReturn(); //window.alert('getMessageOperationOK headers get..'); var msgHeaders = expresso_mail_archive.getMessageHeaders(expresso_mail_archive.currentmessage); //var expSerializedMessage = expresso_mail_archive.toExpressoMessage(msgHeaders, msgBody); var expSerializedMessage = expresso_mail_archive.pattern.toExpressoMail(msgHeaders, msgBody); //window.alert('Serialized data\n\n' + print_r(expSerializedMessage)); show_msg(expSerializedMessage); } MailArchiver.prototype.getMessageOperationFailure = function(ServiceFault){ window.alert('Message fails do be loaded.'); } MailArchiver.prototype.getMessageServiceObject = function(msgid){ for(var i=0; i < expresso_mail_archive.ServiceReturnObject.length; i++){ if (expresso_mail_archive.ServiceReturnObject[i].getId() == msgid){ return(expresso_mail_archive.ServiceReturnObject[i]); } } return(null); } MailArchiver.prototype.Query = function(offlow, offup, qdata){ window.alert('Query offlow = ' + offlow + ' - offup= ' + offup); var querystring = this.queryconfig.query(offlow, offup, qdata); this.listMessages(); } /* *The all pourpose JavaScript variable, used by all related functionalityes at *Expresso Mail to handle this object at user gui. */ var expresso_mail_archive; expresso_mail_archive = new MailArchiver(); -->