1 | <!-- |
---|
2 | /* |
---|
3 | * Mail Archive JS API |
---|
4 | * |
---|
5 | * This JavaScript file is the core to use MailArchiver embeded at Expresso suite. |
---|
6 | * It contains all the resources used to handle local messages stored at the brand |
---|
7 | * new solution Mail Archiver (a embeded application server running at client side). |
---|
8 | * |
---|
9 | * This feature is a replacement for Google Gears(obsolete by now), used by |
---|
10 | * Expresso to store local messages at user workstation hard disk. |
---|
11 | * |
---|
12 | * @author Fernando Wendt [fernando-alberto.wendt@serpro.gov.br] |
---|
13 | * |
---|
14 | * @status under development |
---|
15 | */ |
---|
16 | |
---|
17 | var sessid = 'sessionId'; |
---|
18 | |
---|
19 | function IterateIt(){ |
---|
20 | var deph = 0; |
---|
21 | var returnstr = ""; |
---|
22 | |
---|
23 | for (i in arguments[0]){ |
---|
24 | if((arguments[0][i]) && (arguments[0][i].visited == null)){ |
---|
25 | arguments[0][i].visited = true; |
---|
26 | |
---|
27 | if(typeof(arguments[0][i]) == 'object'){ |
---|
28 | returnstr += '+ Property "' + i + '"[object ' + deph + ']\n<br>'; |
---|
29 | //returnstr += IterateIt(arguments[0][i]); |
---|
30 | deph++; |
---|
31 | } |
---|
32 | } |
---|
33 | else returnstr += 'Property "' + i + '" -> ' + arguments[0][i] + ' [' + typeof(i) + ']\n<br>'; |
---|
34 | } |
---|
35 | return (returnstr); |
---|
36 | } |
---|
37 | |
---|
38 | function dump(arr,level) { |
---|
39 | var dumped_text = ""; |
---|
40 | if(!level) level = 0; |
---|
41 | |
---|
42 | //The padding given at the beginning of the line. |
---|
43 | var level_padding = ""; |
---|
44 | for(var j=0;j<level+1;j++) level_padding += " "; |
---|
45 | |
---|
46 | if(typeof(arr) == 'object') { //Array/Hashes/Objects |
---|
47 | for(var item in arr) { |
---|
48 | var value = arr[item]; |
---|
49 | |
---|
50 | if(typeof(value) == 'object') { //If it is an array, |
---|
51 | dumped_text += level_padding + "'" + item + "' ...\n<br>"; |
---|
52 | dumped_text += dump(value,level+1); |
---|
53 | } else { |
---|
54 | dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n<br>"; |
---|
55 | } |
---|
56 | } |
---|
57 | } else { //Stings/Chars/Numbers etc. |
---|
58 | dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; |
---|
59 | } |
---|
60 | return dumped_text; |
---|
61 | } |
---|
62 | |
---|
63 | function zeroFill(d){ |
---|
64 | if(parseInt(d) < 10) |
---|
65 | return('0' + d); |
---|
66 | else |
---|
67 | return(d); |
---|
68 | } |
---|
69 | |
---|
70 | /** |
---|
71 | * Concatenates the values of a variable into an easily readable string |
---|
72 | * by Matt Hackett [scriptnode.com] |
---|
73 | * @param {Object} x The variable to debug |
---|
74 | * @param {Number} max The maximum number of recursions allowed (keep low, around 5 for HTML elements to prevent errors) [default: 10] |
---|
75 | * @param {String} sep The separator to use between [default: a single space ' '] |
---|
76 | * @param {Number} l The current level deep (amount of recursion). Do not use this parameter: it's for the function's own use |
---|
77 | */ |
---|
78 | function print_r(x, max, sep, l) { |
---|
79 | |
---|
80 | l = l || 0; |
---|
81 | max = max || 100; |
---|
82 | sep = sep || ' '; |
---|
83 | |
---|
84 | if (l > max) { |
---|
85 | return "[WARNING: Too much recursion]\n"; |
---|
86 | } |
---|
87 | |
---|
88 | var |
---|
89 | i, |
---|
90 | r = '', |
---|
91 | t = typeof x, |
---|
92 | tab = ''; |
---|
93 | |
---|
94 | if (x === null) { |
---|
95 | r += "(null)\n"; |
---|
96 | } else if (t == 'object') { |
---|
97 | |
---|
98 | l++; |
---|
99 | |
---|
100 | for (i = 0; i < l; i++) { |
---|
101 | tab += sep; |
---|
102 | } |
---|
103 | |
---|
104 | if (x && x.length) { |
---|
105 | t = 'array'; |
---|
106 | } |
---|
107 | |
---|
108 | r += '(' + t + ") :\n"; |
---|
109 | |
---|
110 | for (i in x) { |
---|
111 | try { |
---|
112 | r += tab + '[' + i + '] : ' + print_r(x[i], max, sep, (l + 1)); |
---|
113 | } catch(e) { |
---|
114 | return "[ERROR: " + e + "]\n"; |
---|
115 | } |
---|
116 | } |
---|
117 | |
---|
118 | } else { |
---|
119 | |
---|
120 | if (t == 'string') { |
---|
121 | if (x == '') { |
---|
122 | x = '(empty)'; |
---|
123 | } |
---|
124 | } |
---|
125 | |
---|
126 | r += '(' + t + ') ' + x + "\n"; |
---|
127 | |
---|
128 | } |
---|
129 | |
---|
130 | return r; |
---|
131 | |
---|
132 | }; |
---|
133 | var_dump = print_r; |
---|
134 | |
---|
135 | |
---|
136 | |
---|
137 | //Main object structure: object property data definition |
---|
138 | function MailArchiver() { |
---|
139 | this.enabled = null; |
---|
140 | this.interval = 500; |
---|
141 | this.timer = null; |
---|
142 | this.counter = 0; |
---|
143 | this.message_list = new Array(); |
---|
144 | this.messageslisted = new Array(); |
---|
145 | this.total_messages = 0; |
---|
146 | this.messages_processed = 0; |
---|
147 | this.messages_fail = 0; |
---|
148 | this.folder_origin = null; |
---|
149 | this.folder_destination = null; |
---|
150 | this.folders = null; |
---|
151 | this.currentfolder = 'local_root'; |
---|
152 | this.currentmessage = null; |
---|
153 | this.drawdata = null; |
---|
154 | this.onprocess = false; |
---|
155 | this.queryconfig = new MAQueryConfig(); |
---|
156 | this.messagesourcehandler = new Cxf_Transport_Handler(); |
---|
157 | this.specialfolders = { |
---|
158 | "inbox":"local_inbox", |
---|
159 | "sent":"local_sent", |
---|
160 | "drafts":"local_drafts", |
---|
161 | "outbox":"local_outbox", |
---|
162 | "trash":"local_trash" |
---|
163 | }; |
---|
164 | this.unarchivecounter = 0; |
---|
165 | this.unarchievefolder = null; |
---|
166 | this.unarchievenewfolder = null; |
---|
167 | |
---|
168 | } |
---|
169 | |
---|
170 | //Invoked at some possible MA crash issue |
---|
171 | MailArchiver.prototype.resetObject = function(){ |
---|
172 | expresso_mail_archive.message_list = new Array(); |
---|
173 | expresso_mail_archive.total_messages = 0; |
---|
174 | expresso_mail_archive.messages_processed = 0; |
---|
175 | expresso_mail_archive.messages_fail = 0; |
---|
176 | expresso_mail_archive.folder_origin = null; |
---|
177 | expresso_mail_archive.folder_destination = null; |
---|
178 | expresso_mail_archive.folder = null; |
---|
179 | } |
---|
180 | |
---|
181 | /*SystemCheck method: test if MailArchive is installed and/or running at user workstation |
---|
182 | *Try to get a instance of ArchiveServices object - the handler of services provided by |
---|
183 | *the MailArchive services provider interface, from user workstation. |
---|
184 | */ |
---|
185 | MailArchiver.prototype.SystemCheck = function(){ |
---|
186 | expresso_mail_archive.enabled = ((ArchiveServices) ? true : false); |
---|
187 | } |
---|
188 | |
---|
189 | //Turns on the listener timer to check services availability |
---|
190 | MailArchiver.prototype.ActivateStatusListener = function(obj){ |
---|
191 | if (document.getElementById('mail_archiver_retry')) |
---|
192 | tem_tag = true; |
---|
193 | else |
---|
194 | tem_tag = false; |
---|
195 | try{ |
---|
196 | if (obj.enabled){ |
---|
197 | obj.interval = 500; //set default timer to 1ms (imediate lauching) |
---|
198 | draw_footer_box(get_current_folder()); |
---|
199 | obj.getServicesStatus(obj); |
---|
200 | } |
---|
201 | else{ |
---|
202 | throw "this is not enabled: " + obj; |
---|
203 | window.alert('Nope: obj.enabled is not true...'); |
---|
204 | } |
---|
205 | } |
---|
206 | catch (e){ |
---|
207 | window.alert('ActivateStatusListener error: ' + e); |
---|
208 | } |
---|
209 | } |
---|
210 | |
---|
211 | //Turns off the service status listener, at a crash issue |
---|
212 | MailArchiver.prototype.DeactivateStatusListener = function(obj){ |
---|
213 | window.clearInterval(obj.timer); |
---|
214 | obj.enabled = null; |
---|
215 | obj.timer=null; |
---|
216 | obj.interval = 500; |
---|
217 | ArchiveServices = null; |
---|
218 | connector.purgeCache(); |
---|
219 | |
---|
220 | draw_footer_box(get_current_folder()); |
---|
221 | auto_refresh(); |
---|
222 | |
---|
223 | if(document.getElementById('mail_archiver_retry')){ |
---|
224 | document.getElementById('mail_archiver_retry').parentNode.removeChild(document.getElementById('mail_archiver_retry')); |
---|
225 | } |
---|
226 | else{ |
---|
227 | //to do, by now, means nothing |
---|
228 | } |
---|
229 | } |
---|
230 | |
---|
231 | //ServiceStatus callback OK |
---|
232 | MailArchiver.prototype.getServicesStatusOK = function(serviceData){ |
---|
233 | if ((serviceData.getReturn() == "STARTED") || (serviceData.getReturn() == "RUNNING")){ |
---|
234 | //If there is no timer activated to services check interval, set it up. |
---|
235 | if(expresso_mail_archive.enabled){ |
---|
236 | if(expresso_mail_archive.timer == null){ |
---|
237 | expresso_mail_archive.interval = 5000; |
---|
238 | expresso_mail_archive.timer = window.setInterval(expresso_mail_archive.getServicesStatus, expresso_mail_archive.interval); |
---|
239 | var drawinginfo = {treeObject: tree_folders, treeName: 'tree_folders', folderName: 'local_root'}; |
---|
240 | expresso_mail_archive.currentfolder = 'local_root'; |
---|
241 | expresso_mail_archive.drawdata = drawinginfo; |
---|
242 | expresso_mail_archive.getFoldersList(); |
---|
243 | } |
---|
244 | } |
---|
245 | else{ |
---|
246 | window.clearInterval(expresso_mail_archive.timer); |
---|
247 | write_msg(get_lang('Your preferences are setting to use local messages, but Mail Archiver does not seems to be running or installed at this workstation. By now, we are turning off this feature. Check it out!'),true); |
---|
248 | } |
---|
249 | } |
---|
250 | else{ |
---|
251 | expresso_mail_archive.enabled = false; |
---|
252 | window.clearInterval(expresso_mail_archive.timer); |
---|
253 | write_msg(get_lang('Your preferences are setting to use local messages, but Mail Archiver does not seems to be running or installed at this workstation. By now, we are turning off this feature. Check it out!'),true); |
---|
254 | } |
---|
255 | } |
---|
256 | |
---|
257 | //Dettach resources handler |
---|
258 | MailArchiver.prototype.DeactivateResources = function(obj){ |
---|
259 | if(obj.timer) |
---|
260 | window.clearInterval(obj.timer); |
---|
261 | write_msg(get_lang('3Mail Archiver is not responding. There is some communicating issue hang it up. Some services may not work properly. Check it out!')); |
---|
262 | obj.DeactivateStatusListener(obj); |
---|
263 | return; |
---|
264 | } |
---|
265 | |
---|
266 | //Services Status Fail callback |
---|
267 | MailArchiver.prototype.getServicesStatusFailure = function(serviceData){ |
---|
268 | window.alert('getServicesStatusFailure feature: ' + serviceData); |
---|
269 | } |
---|
270 | |
---|
271 | //Service Status handler |
---|
272 | MailArchiver.prototype.getServicesStatus = function(obj){ |
---|
273 | try{ |
---|
274 | if(ArchiveServices){ |
---|
275 | try{ |
---|
276 | ArchiveServices.getState(expresso_mail_archive.getServicesStatusOK, expresso_mail_archive.getServicesStatusFailure, "true"); |
---|
277 | }catch (e){ |
---|
278 | throw "Service failure status: getState"; |
---|
279 | } |
---|
280 | } |
---|
281 | else { |
---|
282 | throw "No ArchiveServices object present. Sorry, but leaving now..."; |
---|
283 | } |
---|
284 | }catch (e){ |
---|
285 | window.alert('getServiceStatus exception:' + e); |
---|
286 | } |
---|
287 | expresso_mail_archive.counter = expresso_mail_archive.counter +1; |
---|
288 | } |
---|
289 | |
---|
290 | /*Restart method: re-initializes all the Mail Archive structure |
---|
291 | **/ |
---|
292 | MailArchiver.prototype.Restart = function(obj){ |
---|
293 | obj.SystemCheck(); |
---|
294 | obj.ActivateStatusListener(obj); |
---|
295 | auto_refresh(); |
---|
296 | } |
---|
297 | |
---|
298 | /*Startup method: initializes all the Mail Archive structure to work so far as possible |
---|
299 | *Looks like the old 'gears_init', from Gears |
---|
300 | **/ |
---|
301 | MailArchiver.prototype.Startup = function(){ |
---|
302 | this.SystemCheck(); |
---|
303 | } |
---|
304 | |
---|
305 | MailArchiver.prototype.serializeToExpresso = function(data){ |
---|
306 | return(connector.serialize(data)); |
---|
307 | } |
---|
308 | |
---|
309 | MailArchiver.prototype.unserializeFromExpresso = function(data){ |
---|
310 | return(connector.unserialize(data)); |
---|
311 | } |
---|
312 | |
---|
313 | |
---|
314 | MailArchiver.prototype.CreateMessageList = function(msg_list){ |
---|
315 | if((msg_list != null) && (msg_list != "") && (msg_list != " ")){ |
---|
316 | if (expresso_mail_archive.message_list.length == 0){ |
---|
317 | //Get all the messages ids by pass at msgs_id to "message_list" object array propertie - if more than one exists |
---|
318 | if(msg_list.indexOf(',') != -1){ |
---|
319 | var tmp_list = msg_list.split(','); |
---|
320 | for(var i=0; i < tmp_list.length; i++){ |
---|
321 | expresso_mail_archive.message_list.push(tmp_list[i]); |
---|
322 | } |
---|
323 | } |
---|
324 | //Push message list to process the only one |
---|
325 | else expresso_mail_archive.message_list.push(msg_list); |
---|
326 | } |
---|
327 | } |
---|
328 | //msg_list is corrupted. aborting population |
---|
329 | else expresso_mail_archive.message_list = new Array(); |
---|
330 | } |
---|
331 | |
---|
332 | //Archive Operation |
---|
333 | MailArchiver.prototype.Archive = function(source_folder,destination_folder,msgs_id){ |
---|
334 | //window.alert('tentando arquivar a mensagem [' + msgs_id + '], do folder ['+source_folder+'] para a pasta destino ['+destination_folder+']'); |
---|
335 | try{ |
---|
336 | document.getElementById('main_title').innerHTML = get_lang("Starting to archive messages"); |
---|
337 | expresso_mail_archive.CreateMessageList(msgs_id); |
---|
338 | |
---|
339 | if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')){ |
---|
340 | |
---|
341 | //Sets the message counter |
---|
342 | expresso_mail_archive.total_messages = expresso_mail_archive.message_list.length; |
---|
343 | |
---|
344 | //Sets the folders properties: destination and origin |
---|
345 | expresso_mail_archive.folder_origin = source_folder; |
---|
346 | //window.alert('substr(0,5) = ' + destination_folder.substr(0,5)); |
---|
347 | if(destination_folder.substr(0,5) == 'local') |
---|
348 | expresso_mail_archive.folder_destination = destination_folder.substr(6,destination_folder.length); |
---|
349 | else |
---|
350 | expresso_mail_archive.folder_destination = destination_folder; |
---|
351 | |
---|
352 | var fcaption = expresso_mail_archive.folder_destination; |
---|
353 | |
---|
354 | for (var w=0; w < expresso_mail_archive.folders.length; w++){ |
---|
355 | if(expresso_mail_archive.folders[w]["id"] == expresso_mail_archive.folder_destination){ |
---|
356 | fcaption = expresso_mail_archive.folders[w]["name"]; |
---|
357 | break; |
---|
358 | } |
---|
359 | } |
---|
360 | |
---|
361 | //window.alert('destination_folder = ' + expresso_mail_archive.folder_destination); |
---|
362 | |
---|
363 | var arch_handler = function(data){ |
---|
364 | //Store the message source from Ajax request by now (string data) |
---|
365 | var js_var = new String(data); |
---|
366 | try{ |
---|
367 | //Archive services needs session id, message source and destination folder |
---|
368 | document.getElementById('main_title').innerHTML = get_lang("Archiving message on folder") + " " + fcaption +"..."; |
---|
369 | ArchiveServices.archive(expresso_mail_archive.getArchiveOperationOK, expresso_mail_archive.getArchiveOperationFailure, sessid, data ,expresso_mail_archive.folder_destination); |
---|
370 | } |
---|
371 | catch(e){ |
---|
372 | window.alert('ArchiveServices.archive eror: ' + e); |
---|
373 | } |
---|
374 | } |
---|
375 | |
---|
376 | document.getElementById('main_title').innerHTML = get_lang("Archiving messages " + expresso_mail_archive.messages_processed + " of " + expresso_mail_archive.message_list.length); |
---|
377 | cExecute("$this.exporteml.js_source_var",arch_handler,"folder="+url_decode(source_folder)+"&msgs_to_export="+expresso_mail_archive.message_list[0]); |
---|
378 | } |
---|
379 | else throw('Ops. Message list stack is empty!\nMessage list count = ' + expresso_mail_archive.message_list.length + '\nFirst child = ' + expresso_mail_archive.message_list[0]); |
---|
380 | } |
---|
381 | catch(e){ |
---|
382 | window.alert('Archive error: ' + e); |
---|
383 | } |
---|
384 | } |
---|
385 | |
---|
386 | //Archive callback OK |
---|
387 | MailArchiver.prototype.getArchiveOperationOK = function(status_message){ |
---|
388 | expresso_mail_archive.messages_processed++; |
---|
389 | if(expresso_mail_archive.message_list.length > 1){ |
---|
390 | document.getElementById('main_title').innerHTML = get_lang("Message " + expresso_mail_archive.messages_processed + " of " + expresso_mail_archive.total_messages + " successfully archived."); |
---|
391 | expresso_mail_archive.message_list.shift(); |
---|
392 | expresso_mail_archive.Archive(expresso_mail_archive.folder_origin, expresso_mail_archive.folder_destination, expresso_mail_archive.message_list); |
---|
393 | } |
---|
394 | else{ |
---|
395 | document.getElementById('main_title').innerHTML = get_lang("All done. End of archive messages operation."); |
---|
396 | expresso_mail_archive.resetObject(); |
---|
397 | window.setTimeout("eval('document.getElementById(\"main_title\").innerHTML =\"Expresso Mail\"')",3000); |
---|
398 | } |
---|
399 | } |
---|
400 | //Archive callback Fail |
---|
401 | MailArchiver.prototype.getArchiveOperationFailure = function(error_message){ |
---|
402 | window.alert('Hi! getArchiveOperationFailure comes with ' + error_message.getReturn()); |
---|
403 | window.setTimeout("eval('document.getElementById(\"main_title\").innerHTML =\"Expresso Mail\"')",3000); |
---|
404 | } |
---|
405 | |
---|
406 | /** |
---|
407 | *Unarchieve Message |
---|
408 | * |
---|
409 | *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] |
---|
410 | * |
---|
411 | *@param folder Original Folder of the message |
---|
412 | *@param new_folder The new folder of the message |
---|
413 | *@param msgs_number id of the messages |
---|
414 | */ |
---|
415 | MailArchiver.prototype.unarchieve = function (folder, new_folder, msgs_number){ |
---|
416 | try{ |
---|
417 | expresso_mail_archive.message_list = new Array(); |
---|
418 | expresso_mail_archive.CreateMessageList(msgs_number); |
---|
419 | if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { |
---|
420 | expresso_mail_archive.unarchivecounter = 0; |
---|
421 | expresso_mail_archive.unarchievefolder = folder; |
---|
422 | expresso_mail_archive.unarchievenewfolder = new_folder; |
---|
423 | expresso_mail_archive.unarchieveHandler(); |
---|
424 | } |
---|
425 | else{ |
---|
426 | write_msg(get_lang('No selected message.')); |
---|
427 | } |
---|
428 | } |
---|
429 | catch (e){ |
---|
430 | write_msg(get_lang('Unarchive error: ' + e)); |
---|
431 | } |
---|
432 | } |
---|
433 | |
---|
434 | /** |
---|
435 | * |
---|
436 | *Unarchieve Message Handler |
---|
437 | * |
---|
438 | *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] |
---|
439 | * |
---|
440 | **/ |
---|
441 | MailArchiver.prototype.unarchieveHandler = function(){ |
---|
442 | var email = 'http://127.0.0.1:4333/mail/' + expresso_mail_archive.unarchievefolder.substr(6).charAt(0).toUpperCase() + expresso_mail_archive.unarchievefolder.substr(7) + '/'+ expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter] + '.eml'; |
---|
443 | expresso_mail_archive.messagesourcehandler.onreadystatechange = function(){ |
---|
444 | if (expresso_mail_archive.messagesourcehandler.readyState==4 && expresso_mail_archive.messagesourcehandler.status==200){ |
---|
445 | for (var w=0; w < expresso_mail_archive.messageslisted.length; w++){ |
---|
446 | if(expresso_mail_archive.messageslisted[w]["msg_number"] == expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]){ |
---|
447 | var timestamp = expresso_mail_archive.messageslisted[w]["timestamp"]; |
---|
448 | var flags = "#@#@#@" + (expresso_mail_archive.messageslisted[w]["Answered"]!=undefined)?'A':''; |
---|
449 | flags += (expresso_mail_archive.messageslisted[w]["Draft"] !=undefined)?'D':''; |
---|
450 | flags += (expresso_mail_archive.messageslisted[w]["Flagged"] !=undefined)?'F':''; |
---|
451 | flags += (expresso_mail_archive.messageslisted[w]["Unseen"] !=undefined)?'U':''; |
---|
452 | break; |
---|
453 | } |
---|
454 | } |
---|
455 | var source = "#@#@#@" + escape(expresso_mail_archive.messagesourcehandler.responseText); |
---|
456 | //var flags+="#@#@#@"+ mail["Answered"] +":"+mail["Draft"]+":"+mail["Flagged"]+":"+mail["Unseen"]; |
---|
457 | var params = |
---|
458 | "&folder=" + expresso_mail_archive.unarchievenewfolder + |
---|
459 | "&source=" + source + |
---|
460 | "×tamp=" + timestamp + |
---|
461 | "&flags=" + flags; |
---|
462 | var handler_unarchive = function(){ |
---|
463 | expresso_mail_archive.unarchieveController(); |
---|
464 | } |
---|
465 | write_msg(get_lang('Unarchieving ' + (expresso_mail_archive.unarchivecounter + 1) + ' of ' + expresso_mail_archive.message_list.length)); |
---|
466 | cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); |
---|
467 | } |
---|
468 | } |
---|
469 | write_msg(get_lang('Opening message ' + (expresso_mail_archive.unarchivecounter + 1) + ' for Unarchieve')); |
---|
470 | expresso_mail_archive.messagesourcehandler.open("GET", email, true); |
---|
471 | expresso_mail_archive.messagesourcehandler.send(); |
---|
472 | } |
---|
473 | |
---|
474 | /** |
---|
475 | * |
---|
476 | *Unarchieve Message Controller |
---|
477 | * |
---|
478 | *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] |
---|
479 | * |
---|
480 | **/ |
---|
481 | MailArchiver.prototype.unarchieveController = function(){ |
---|
482 | expresso_mail_archive.unarchivecounter++; |
---|
483 | if (expresso_mail_archive.unarchivecounter < expresso_mail_archive.message_list.length){ |
---|
484 | expresso_mail_archive.unarchieveHandler(); |
---|
485 | } |
---|
486 | else{ |
---|
487 | if (expresso_mail_archive.message_list.length==1){ |
---|
488 | write_msg(get_lang('Message successfully unarchived')); |
---|
489 | } |
---|
490 | else{ |
---|
491 | write_msg(get_lang('Messages successfully unarchived')); |
---|
492 | } |
---|
493 | } |
---|
494 | } |
---|
495 | |
---|
496 | /** |
---|
497 | *Archieve Delete Message |
---|
498 | * |
---|
499 | *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] |
---|
500 | * |
---|
501 | *@param msgs_number Unique identification of the message |
---|
502 | */ |
---|
503 | MailArchiver.prototype.deleteMessages = function(msgs_number){ |
---|
504 | try{ |
---|
505 | expresso_mail_archive.CreateMessageList(msgs_number); |
---|
506 | if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { |
---|
507 | ArchiveServices.deleteMessages(expresso_mail_archive.deleteMessagesOperationOK, |
---|
508 | expresso_mail_archive.deleteMessagesOperationFailure, |
---|
509 | sessid, |
---|
510 | expresso_mail_archive.message_list); |
---|
511 | } |
---|
512 | else{ |
---|
513 | write_msg(get_lang('No selected message.')); |
---|
514 | } |
---|
515 | } |
---|
516 | catch (e){ |
---|
517 | window.alert('Delete error: ' + e); |
---|
518 | } |
---|
519 | } |
---|
520 | |
---|
521 | /** |
---|
522 | *Archieve Delete Message Ok |
---|
523 | * |
---|
524 | *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] |
---|
525 | * |
---|
526 | */ |
---|
527 | MailArchiver.prototype.deleteMessagesOperationOK = function(){ |
---|
528 | var drawinginfo = {treeObject: tree_folders, treeName: 'tree_folders'}; |
---|
529 | expresso_mail_archive.drawdata = drawinginfo; |
---|
530 | expresso_mail_archive.drawFolderTree(); |
---|
531 | expresso_mail_archive.listMessages(); |
---|
532 | if(expresso_mail_archive.message_list.length > 1){ |
---|
533 | write_msg(get_lang("The messages were deleted.")); |
---|
534 | }else{ |
---|
535 | write_msg(get_lang("The message was deleted.")); |
---|
536 | } |
---|
537 | } |
---|
538 | |
---|
539 | /** |
---|
540 | *Archieve Delete Message Operation Failure |
---|
541 | * |
---|
542 | *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] |
---|
543 | * |
---|
544 | */ |
---|
545 | MailArchiver.prototype.deleteMessagesOperationFailure = function(error_message){ |
---|
546 | if(expresso_mail_archive.message_list.length > 1){ |
---|
547 | write_msg(get_lang("Error deleting messages.") + ' ' + error_message.getReturn()); |
---|
548 | }else{ |
---|
549 | write_msg(get_lang("Error deleting message.") + ' ' + error_message.getReturn()); |
---|
550 | } |
---|
551 | } |
---|
552 | |
---|
553 | /** |
---|
554 | *Move message |
---|
555 | * |
---|
556 | *@param folder Folder where the message will be moved |
---|
557 | *@param msgs_number Unique Id of the message |
---|
558 | * |
---|
559 | *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] |
---|
560 | * |
---|
561 | */ |
---|
562 | MailArchiver.prototype.moveMessages = function(folder, msgs_number){ |
---|
563 | try{ |
---|
564 | expresso_mail_archive.CreateMessageList(msgs_number); |
---|
565 | if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { |
---|
566 | ArchiveServices.moveMessages(expresso_mail_archive.moveMessagesOperationOK, |
---|
567 | expresso_mail_archive.moveMessagesOperationFailure, |
---|
568 | sessid, |
---|
569 | expresso_mail_archive.message_list, |
---|
570 | folder |
---|
571 | ); |
---|
572 | } |
---|
573 | else{ |
---|
574 | write_msg(get_lang('No selected message.')); |
---|
575 | } |
---|
576 | } |
---|
577 | catch (e){ |
---|
578 | window.alert('Move error: ' + e); |
---|
579 | } |
---|
580 | } |
---|
581 | |
---|
582 | /** |
---|
583 | *Move Message Ok |
---|
584 | * |
---|
585 | *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] |
---|
586 | * |
---|
587 | */ |
---|
588 | MailArchiver.prototype.moveMessagesOperationOK = function(){ |
---|
589 | var drawinginfo = {treeObject: tree_folders, treeName: 'tree_folders'}; |
---|
590 | expresso_mail_archive.drawdata = drawinginfo; |
---|
591 | expresso_mail_archive.drawFolderTree(); |
---|
592 | expresso_mail_archive.listMessages(); |
---|
593 | if(expresso_mail_archive.message_list.length > 1){ |
---|
594 | write_msg(get_lang("The messages were moved.")); |
---|
595 | }else{ |
---|
596 | write_msg(get_lang("The message was moved.")); |
---|
597 | } |
---|
598 | } |
---|
599 | |
---|
600 | /** |
---|
601 | *Move Message Failure |
---|
602 | * |
---|
603 | *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] |
---|
604 | * |
---|
605 | */ |
---|
606 | MailArchiver.prototype.moveMessagesOperationFailure = function(error_message){ |
---|
607 | if(expresso_mail_archive.message_list.length > 1){ |
---|
608 | write_msg(get_lang("Error moving messages.") + ' ' + error_message.getReturn()); |
---|
609 | }else{ |
---|
610 | write_msg(get_lang("Error moving message.") + ' ' + error_message.getReturn()); |
---|
611 | } |
---|
612 | } |
---|
613 | |
---|
614 | |
---|
615 | //getFolderList Operation |
---|
616 | MailArchiver.prototype.getFoldersList = function(basefolder){ |
---|
617 | try{ |
---|
618 | ArchiveServices.listFolders(expresso_mail_archive.getFoldersListOperationOK, expresso_mail_archive.getFoldersListOperationFailure, sessid, basefolder); |
---|
619 | } |
---|
620 | catch (e){ |
---|
621 | window.alert('AQUI MESMO\nOps...List folders fails at:\n' + e.description); |
---|
622 | } |
---|
623 | } |
---|
624 | |
---|
625 | //getFolderList callback OK |
---|
626 | MailArchiver.prototype.getFoldersListOperationOK = function(folderlist){ |
---|
627 | //Internal variable used to map all XML data return from WS invokated |
---|
628 | var lfolders = new Array(); |
---|
629 | |
---|
630 | //Mapping XML data to a handler data structure |
---|
631 | if(folderlist.getReturn().length > 0){ |
---|
632 | var lfolders = new Array(); |
---|
633 | for(i=0; i<folderlist.getReturn().length; i++){ |
---|
634 | (folderlist.getReturn()[i].getFolderCount() > 0 ) ? folderChild = 1 : folderChild = 0; |
---|
635 | |
---|
636 | //Store folder data at this format: {folder name, number of messages contained, folder has child nodes, folder id, folder parent id, folder full path} |
---|
637 | //var folderData = new Array(folderlist.getReturn()[i].getName(), folderlist.getReturn()[i].getMessageCount(), folderChild, folderlist.getReturn()[i].getId(), folderlist.getReturn()[i].getParentId(), folderlist.getReturn()[i].getPath()); |
---|
638 | var folderData = {name: folderlist.getReturn()[i].getName(), messages: folderlist.getReturn()[i].getMessageCount(), haschild: folderChild, id: folderlist.getReturn()[i].getId(), parentid: folderlist.getReturn()[i].getParentId(), path: folderlist.getReturn()[i].getPath()}; |
---|
639 | lfolders.push(folderData); |
---|
640 | } |
---|
641 | |
---|
642 | //Sets folders property at main object |
---|
643 | expresso_mail_archive.folders = lfolders; |
---|
644 | |
---|
645 | if(expresso_mail_archive.folders[0]["parentid"] == "") |
---|
646 | expresso_mail_archive.currentfolder = 'local_root'; |
---|
647 | else |
---|
648 | expresso_mail_archive.currentfolder = expresso_mail_archive.folders[0]["parentid"]; |
---|
649 | |
---|
650 | //Folders dumping :) |
---|
651 | /*var strFolders = '---'; |
---|
652 | for (var w=0; w < expresso_mail_archive.folders.length; w++){ |
---|
653 | strFolders += '\nFolder ' + w + ' -->'; |
---|
654 | for (x in expresso_mail_archive.folders[w]){ |
---|
655 | strFolders += '\n----------' + x + ':= ' + expresso_mail_archive.folders[w][x]; |
---|
656 | } |
---|
657 | strFolders += '\n<---'; |
---|
658 | } |
---|
659 | strFolders += '\n---'; |
---|
660 | alert(lfolders.length + ' folders mapeados, com default = ' + expresso_mail_archive.currentfolder + '\nfolders list:\n\n' + strFolders); |
---|
661 | */ |
---|
662 | |
---|
663 | //If something UI related have been flagged, handle it |
---|
664 | if (expresso_mail_archive.drawdata){ |
---|
665 | //window.alert('com drawdata'); |
---|
666 | expresso_mail_archive.drawFolderTree(); |
---|
667 | } |
---|
668 | } |
---|
669 | } |
---|
670 | |
---|
671 | //getFolderList callback Fail |
---|
672 | MailArchiver.prototype.getFoldersListOperationFailure = function(error, http_msg){ |
---|
673 | window.alert('List folders mistake:' + error + '\nhttp_error = ' + http_msg); |
---|
674 | } |
---|
675 | |
---|
676 | //drawFolderTree operation, if requested to |
---|
677 | MailArchiver.prototype.drawFolderTree = function(){ |
---|
678 | //window.alert('na api de foldertree'); |
---|
679 | var localBaseName = 'local_'; |
---|
680 | var objectTree = expresso_mail_archive.drawdata.treeObject; |
---|
681 | var evalobjectTree = eval(expresso_mail_archive.drawdata.treeName); |
---|
682 | |
---|
683 | //Add nodes to tree |
---|
684 | if(expresso_mail_archive.folders.length > 0){ |
---|
685 | for(i=0; i<expresso_mail_archive.folders.length; i++){ |
---|
686 | var folder_caption; |
---|
687 | |
---|
688 | //Special folders treatment: Inbox, Outbox, Drafts, Sent and Trash folders |
---|
689 | if((expresso_mail_archive.folders[i]["name"] == 'Inbox') || (expresso_mail_archive.folders[i]["name"] == 'Outbox') || (expresso_mail_archive.folders[i]["name"] == 'Drafts') || (expresso_mail_archive.folders[i]["name"] == 'Sent') || (expresso_mail_archive.folders[i]["name"] == 'Trash')){ |
---|
690 | folder_caption = get_lang(expresso_mail_archive.folders[i]["name"]); |
---|
691 | } |
---|
692 | else{ |
---|
693 | folder_caption = expresso_mail_archive.folders[i]["name"]; |
---|
694 | } |
---|
695 | var n_demo = new dNode({id: localBaseName + expresso_mail_archive.folders[i]["id"], caption: folder_caption, 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"]}); |
---|
696 | //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"]}); |
---|
697 | |
---|
698 | //Adjust the id node names |
---|
699 | if(expresso_mail_archive.currentfolder){ |
---|
700 | if(expresso_mail_archive.currentfolder.substr(0,5) != 'local'){ |
---|
701 | evalobjectTree.add(n_demo, localBaseName + expresso_mail_archive.currentfolder); |
---|
702 | } |
---|
703 | else{ |
---|
704 | evalobjectTree.add(n_demo,expresso_mail_archive.currentfolder); |
---|
705 | } |
---|
706 | } |
---|
707 | else { |
---|
708 | expresso_mail_archive.currentfolder = 'local_root'; |
---|
709 | evalobjectTree.add(n_demo,expresso_mail_archive.currentfolder); |
---|
710 | } |
---|
711 | } |
---|
712 | } |
---|
713 | } |
---|
714 | |
---|
715 | //getFaultInfo operation |
---|
716 | MailArchiver.prototype.getFaultInfo = function(){ |
---|
717 | try{ |
---|
718 | ArchiveServices.getFaultInfo(expresso_mail_archive.getFaultInfoOperationOK, expresso_mail_archive.getFaultInfoOperationFailure, sessid); |
---|
719 | } |
---|
720 | catch(e){ |
---|
721 | write_msg(get_lang('getFaultInfo invoke fails = ' + e),true); |
---|
722 | } |
---|
723 | } |
---|
724 | |
---|
725 | //getFaultInfo callback OK |
---|
726 | MailArchiver.prototype.getFaultInfoOperationOK = function(faultinfo){ |
---|
727 | try{ |
---|
728 | write_msg(get_lang('MailArchiver remote service reports the following error:' + faultinfo.getReturn().getSoapFaultString(), true)); |
---|
729 | } catch(e){ |
---|
730 | write_msg(get_lang('Ops! It was not possible to capture service error data.', true)); |
---|
731 | } |
---|
732 | } |
---|
733 | |
---|
734 | //getFaultInfo callback Fail |
---|
735 | MailArchiver.prototype.getFaultInfoOperationFailure = function(errorCode, errorDesc){ |
---|
736 | try{ |
---|
737 | write_msg(get_lang('SoapFault capture fails at:' + errorCode + ' | ' + errorDesc, true)); |
---|
738 | } catch(e){ |
---|
739 | write_msg(get_lang('Service error mapping', true)); |
---|
740 | } |
---|
741 | } |
---|
742 | |
---|
743 | //createFolder operation |
---|
744 | MailArchiver.prototype.createFolder = function(parentFolder, folderName){ |
---|
745 | |
---|
746 | try{ |
---|
747 | ArchiveServices.createFolder(expresso_mail_archive.createFolderOperationOK, expresso_mail_archive.createFolderOperationFailure, sessid, parentFolder, folderName); |
---|
748 | } |
---|
749 | catch (e){ |
---|
750 | window.alert('Ops...create folder fails at:\n' + e); |
---|
751 | } |
---|
752 | |
---|
753 | } |
---|
754 | |
---|
755 | //createFolder callback OK |
---|
756 | MailArchiver.prototype.createFolderOperationOK = function (folderObject){ |
---|
757 | draw_tree_local_folders(); |
---|
758 | ttreeBox.update_folder(); |
---|
759 | } |
---|
760 | |
---|
761 | //createFolder callback Fail |
---|
762 | MailArchiver.prototype.createFolderOperationFailure = function (message){ |
---|
763 | window.alert('Folder creation fails...\n->' + message.getReturn()); |
---|
764 | } |
---|
765 | |
---|
766 | //deleteFolder operation |
---|
767 | MailArchiver.prototype.deleteFolder = function(folderName){ |
---|
768 | try{ |
---|
769 | ArchiveServices.deleteFolder(expresso_mail_archive.deleteFolderOperationOK, expresso_mail_archive.deleteFolderOperationFailure, sessid, folderName, true); |
---|
770 | } |
---|
771 | catch (e){ |
---|
772 | window.alert('Ops...delete folder fails at:\n' + e); |
---|
773 | } |
---|
774 | |
---|
775 | } |
---|
776 | |
---|
777 | //deleteFolder callback OK |
---|
778 | MailArchiver.prototype.deleteFolderOperationOK = function (folderObject){ |
---|
779 | var fo = IterateIt(folderObject); |
---|
780 | write_msg(get_lang("The folder " + expresso_mail_archive.drawdata.folderName + " was successfully removed")); |
---|
781 | draw_tree_local_folders(); |
---|
782 | ttreeBox.update_folder(); |
---|
783 | } |
---|
784 | |
---|
785 | //deleteFolder callback Fail |
---|
786 | MailArchiver.prototype.deleteFolderOperationFailure = function (message){ |
---|
787 | window.alert('Folder deletion fails...\n->' + message.getReturn()); |
---|
788 | } |
---|
789 | |
---|
790 | //renameFolder operation |
---|
791 | MailArchiver.prototype.renameFolder = function(folderId, newFolderName){ |
---|
792 | try{ |
---|
793 | ArchiveServices.renameFolder(expresso_mail_archive.renameFolderOperationOK, expresso_mail_archive.renameFolderOperationFailure, sessid, folderId, newFolderName); |
---|
794 | } |
---|
795 | catch (e){ |
---|
796 | window.alert('Ops...renaming folder fails at:\n' + e); |
---|
797 | } |
---|
798 | |
---|
799 | } |
---|
800 | |
---|
801 | //renameFolder callback OK |
---|
802 | MailArchiver.prototype.renameFolderOperationOK = function (returnService){ |
---|
803 | var evalobjectTree = eval(expresso_mail_archive.drawdata.treeName); |
---|
804 | evalobjectTree.update_folder(); |
---|
805 | } |
---|
806 | |
---|
807 | //renameFolder callback Fail |
---|
808 | MailArchiver.prototype.renameFolderOperationFailure = function (ServiceFault){ |
---|
809 | window.alert('Folder rename fails...\n->' + ServiceFault.getReturn()); |
---|
810 | alert(get_lang("cannot rename folder. try other folder name")); |
---|
811 | } |
---|
812 | |
---|
813 | //getFolderInfo operation |
---|
814 | MailArchiver.prototype.getFolderInfo = function (folderId){ |
---|
815 | try{ |
---|
816 | ArchiveServices.getFolderInfo(expresso_mail_archive.getFolderInfoOperationOK, expresso_mail_archive.getFolderInfoOperationFailure, sessid, folderId); |
---|
817 | } |
---|
818 | catch (e){ |
---|
819 | window.alert('Ops...getFolderInfo fails at:\n' + e); |
---|
820 | } |
---|
821 | } |
---|
822 | |
---|
823 | //getFolderInfo callback OK |
---|
824 | MailArchiver.prototype.getFolderInfoOperationOK = function(returnService){ |
---|
825 | var folder_info = {id : returnService.getReturn().getId(), name : returnService.getReturn().getName(), parent : returnService.getReturn().getParentId(), numfolders: returnService.getReturn().getFolderCount(), nummessages: returnService.getReturn().getMessageCount()}; |
---|
826 | expresso_mail_archive.folder = folder_info; |
---|
827 | } |
---|
828 | |
---|
829 | //getFolderInfo callback Fail |
---|
830 | MailArchiver.prototype.getFolderInfoOperationFailure = function (ServiceFault){ |
---|
831 | window.alert('getFolderInfo service fails...\n->' + ServiceFault.getReturn()); |
---|
832 | } |
---|
833 | |
---|
834 | //listMessages operation |
---|
835 | //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) { |
---|
836 | //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) { |
---|
837 | //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); |
---|
838 | MailArchiver.prototype.listMessages = function(){ |
---|
839 | try{ |
---|
840 | var folderid = expresso_mail_archive.currentfolder; |
---|
841 | var testing_data_xml = '<?xml version="1.0" encoding="UTF-8"?><query lowerIndex="0" upperIndex="50"><folder id="'+folderid+'"/><order asc="date"/><order desc="subject"/></query>'; |
---|
842 | var testing_data_json_mapped = '{"query":{"@lowerIndex":"0", "@upperIndex":"50", "folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date", "@desc":"subject"}]}}'; |
---|
843 | //window.alert('Query config lower = ' + expresso_mail_archive.queryconfig.lowerIndex + ' - upper = ' + expresso_mail_archive.queryconfig.upperIndex + ' folder = ' + expresso_mail_archive.queryconfig.folder); |
---|
844 | if (expresso_mail_archive.queryconfig.folder != null) |
---|
845 | var testing_data = expresso_mail_archive.queryconfig.query(); |
---|
846 | else |
---|
847 | var testing_data = testing_data_json_mapped; |
---|
848 | |
---|
849 | //window.alert('vai chamar o listMessages com testing_data = ' + testing_data); |
---|
850 | ArchiveServices.listMessages(expresso_mail_archive.listMessagesOperationOK, expresso_mail_archive.listMessagesOperationFailure, sessid, testing_data); |
---|
851 | } |
---|
852 | catch (e){ |
---|
853 | window.alert('Ops...listMessages fails at:\n' + e); |
---|
854 | } |
---|
855 | } |
---|
856 | |
---|
857 | //listMessages callback OK |
---|
858 | MailArchiver.prototype.listMessagesOperationOK = function(returnService){ |
---|
859 | var msglist = new Array(); |
---|
860 | /*window.alert('Dados da mensagem:\n->From ' + returnService.getReturn()[0].getFrom() |
---|
861 | +'\n->To ' + returnService.getReturn()[0].getTo() |
---|
862 | +'\n->Subject ' + returnService.getReturn()[0].getSubject() |
---|
863 | +'\n->Date ' + returnService.getReturn()[0].getDate() |
---|
864 | +'\n->Date ' + returnService.getReturn()[0].getSize() |
---|
865 | +'\n->ID ' + returnService.getReturn()[0].getId()); |
---|
866 | */ |
---|
867 | for(var i=0; i< returnService.getReturn().length; i++){ |
---|
868 | //window.alert('quer deserializar:\n\n' + print_r(returnService.getReturn()[i])); |
---|
869 | var ExpSerialized = expresso_mail_archive.toExpressoHeader(returnService.getReturn()[i]); |
---|
870 | //window.alert('expSerialized ' + i + '\n\n --\n\n' + print_r(ExpSerialized)); |
---|
871 | //var test = connector.unserialize(ExpSerialized); |
---|
872 | //window.alert('unserialized = \n\n' + test); |
---|
873 | msglist.push(connector.unserialize(ExpSerialized));//usando connector.unserialize sobre o header mapeado no layout abaixo |
---|
874 | } |
---|
875 | msglist["num_msgs"] = returnService.getReturn().length; |
---|
876 | //window.alert('print_r\n\n' + print_r(msglist)); |
---|
877 | expresso_mail_archive.messageslisted = msglist; |
---|
878 | //window.alert('expresso_mail_archive.message_list.length = ' + expresso_mail_archive.message_list.length); |
---|
879 | //window.alert(print_r(expresso_mail_archive.message_list)); |
---|
880 | expresso_mail_archive.drawdata = {messagesList:msglist}; |
---|
881 | expresso_mail_archive.drawMessagesList(); |
---|
882 | |
---|
883 | //window.alert('get ajax...'); |
---|
884 | // expresso_mail_archive.getMessageSource(); |
---|
885 | } |
---|
886 | |
---|
887 | //listMessages callback Fail |
---|
888 | MailArchiver.prototype.listMessagesOperationFailure = function(ServiceFault){ |
---|
889 | window.alert('listmessages FALHOU!\n' + ServiceFault.getReturn()); |
---|
890 | } |
---|
891 | |
---|
892 | MailArchiver.prototype.drawMessagesList = function(){ |
---|
893 | var data_to_draw = expresso_mail_archive.drawdata.messagesList; |
---|
894 | //window.alert('data to draw = ' + data_to_draw.length + '\ndata_to_draw[0].from.full = ' + print_r(data_to_draw)); |
---|
895 | //window.alert('Current folder = ' + expresso_mail_archive.currentfolder + ' com ' + expresso_mail_archive.folders.length + ' folders.'); |
---|
896 | var fcaption = expresso_mail_archive.currentfolder; |
---|
897 | |
---|
898 | for (var w=0; w < expresso_mail_archive.folders.length; w++){ |
---|
899 | if(expresso_mail_archive.folders[w]["id"] == expresso_mail_archive.currentfolder){ |
---|
900 | fcaption = expresso_mail_archive.folders[w]["name"]; |
---|
901 | break; |
---|
902 | } |
---|
903 | } |
---|
904 | |
---|
905 | alternate_border(0); |
---|
906 | Element("border_id_0").innerHTML = " " + lang_folder(fcaption) + ' <font face="Verdana" size="1" color="#505050">[<span id="new_m"> </span> / <span id="tot_m"></span>]</font>'; |
---|
907 | draw_box(data_to_draw, 'local_' + expresso_mail_archive.currentfolder, true); |
---|
908 | draw_paging(expresso_mail_archive.drawdata.messagesList.length); |
---|
909 | Element("tot_m").innerHTML = expresso_mail_archive.drawdata.messagesList.length; |
---|
910 | //update_menu(); |
---|
911 | |
---|
912 | } |
---|
913 | |
---|
914 | MailArchiver.prototype.getMessageHeaders = function(msgId){ |
---|
915 | var msgfound = false; |
---|
916 | var headerMsg; |
---|
917 | |
---|
918 | //Get message header info, from message list operation previously invoked |
---|
919 | for (var w=0; w < expresso_mail_archive.messageslisted.length; w++){ |
---|
920 | //window.alert('comparando messageslisted "' +expresso_mail_archive.messageslisted[w]["msg_number"]+ '" com o id parametrizado "' +msgId+ '"'); |
---|
921 | if(expresso_mail_archive.messageslisted[w]["msg_number"] == msgId){ |
---|
922 | headerMsg = expresso_mail_archive.messageslisted[w]; |
---|
923 | msgfound = true; |
---|
924 | break; |
---|
925 | } |
---|
926 | } |
---|
927 | //Message does not exists at message list. it will not be loaded. |
---|
928 | if(!msgfound){ |
---|
929 | alert('ops... the message"'+msgId+'" was not found at messages list, so it cannot be readed!') |
---|
930 | headerMsg = null; |
---|
931 | return; |
---|
932 | } |
---|
933 | return(headerMsg); |
---|
934 | } |
---|
935 | |
---|
936 | MailArchiver.prototype.getMessage = function(msgdata){ |
---|
937 | try{ |
---|
938 | if((msgdata.length <= 0) || (msgdata == null)){ |
---|
939 | window.alert('no msgdata received. aborting local message load') |
---|
940 | return; |
---|
941 | } |
---|
942 | |
---|
943 | expresso_mail_archive.currentmessage = expresso_mail_archive.getMessageHeaders(msgdata)["msg_number"]; |
---|
944 | //window.alert('current message guid = ' + expresso_mail_archive.currentmessage); |
---|
945 | |
---|
946 | //window.alert('vai invocar getMessageBody com msgid=' + expresso_mail_archive.currentmessage); |
---|
947 | ArchiveServices.getMessageBody(expresso_mail_archive.getMessageOperationOK, expresso_mail_archive.getMessageOperationFailure, sessid, expresso_mail_archive.currentmessage); |
---|
948 | } |
---|
949 | catch(e){ |
---|
950 | window.alert('Ops...getMessage fails at:\n' + e); |
---|
951 | } |
---|
952 | } |
---|
953 | |
---|
954 | MailArchiver.prototype.getMessageOperationOK = function(returnService){ |
---|
955 | if(returnService.getReturn().length <= 0){ |
---|
956 | window.alert('Oh no: service return data is zero length...'); |
---|
957 | return; |
---|
958 | } |
---|
959 | |
---|
960 | //window.alert('Get header info from message "' + expresso_mail_archive.currentmessage + '"'); |
---|
961 | |
---|
962 | |
---|
963 | var msgBody = returnService.getReturn(); |
---|
964 | var msgHeaders = expresso_mail_archive.getMessageHeaders(expresso_mail_archive.currentmessage); |
---|
965 | var expSerializedMessage = expresso_mail_archive.toExpressoMessage(msgHeaders, msgBody); |
---|
966 | //window.alert('Serialized data\n\n' + print_r(expSerializedMessage)); |
---|
967 | show_msg(expSerializedMessage); |
---|
968 | } |
---|
969 | |
---|
970 | MailArchiver.prototype.getMessageOperationFailure = function(ServiceFault){ |
---|
971 | window.alert('Message fails do be loaded.'); |
---|
972 | } |
---|
973 | |
---|
974 | //Under develpment this one |
---|
975 | MailArchiver.prototype.getMessageSource = function(){ |
---|
976 | //expresso_mail_archive.messagesourcehandler.onreadystatechange = AlerteO(); |
---|
977 | //expresso_mail_archive.messagesourcehandler.setRequestHeader("SOAPAction", ""); |
---|
978 | //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Origin", "*"); |
---|
979 | //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Credentials", "true"); |
---|
980 | //window.alert('vai chamar via ajax o texto'); |
---|
981 | // expresso_mail_archive.messagesourcehandler.open("GET", "http://10.200.242.186:4333/mail/Sent/teste.txt", true); |
---|
982 | //expresso_mail_archive.messagesourcehandler.setRequestHeader("MessageType", "CALL"); |
---|
983 | //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Origin", "*"); |
---|
984 | //expresso_mail_archive.messagesourcehandler.setRequestHeader("Access-Control-Allow-Credentials", "true"); |
---|
985 | //expresso_mail_archive.messagesourcehandler.send(); |
---|
986 | } |
---|
987 | |
---|
988 | function AlerteO(){ |
---|
989 | //window.alert('Ajax lido:\n\nState = ' + expresso_mail_archive.messagesourcehandler.readyState + '\nStatus = ' + expresso_mail_archive.messagesourcehandler.status); |
---|
990 | } |
---|
991 | |
---|
992 | // -----------------------------------SERIALIZED DATA TEMPLATES ---------------- |
---|
993 | MailArchiver.prototype.toExpressoAddress = function(data){ |
---|
994 | if((typeof(data) != 'undefined') && (data.length > 0)){ |
---|
995 | /*var dataFormat = expresso_mail_archive.toExpressoFormatNameMail(data); |
---|
996 | var dataName = dataFormat[0]; |
---|
997 | var dataEmail = dataFormat[1]; |
---|
998 | */ |
---|
999 | //window.alert('em toExpressoFrom com data = \n' + data + '[' + typeof(data) + ']('+data.length+')'); |
---|
1000 | var Fromdata = eval("(" + data + ")"); |
---|
1001 | //window.alert('temos ' + Fromdata.mailbox.length + ' destinatarios/remetentes a lidar...'); |
---|
1002 | //window.alert('name = ' + Fromdata.mailbox["@name"] + '\nlocal part = ' + Fromdata.mailbox["@localPart"] + '\ndomain = ' + Fromdata.mailbox["@domain"]); |
---|
1003 | |
---|
1004 | //one address |
---|
1005 | if(typeof(Fromdata.mailbox.length) == 'undefined'){ |
---|
1006 | var dataName = Fromdata.mailbox["@name"]; |
---|
1007 | var dataEmail = Fromdata.mailbox["@localPart"] + '@' + Fromdata.mailbox["@domain"]; |
---|
1008 | if(dataName == 'null') |
---|
1009 | dataName = dataEmail; |
---|
1010 | } |
---|
1011 | //address list: to header(msgs list), only first metters |
---|
1012 | else{ |
---|
1013 | var dataName = Fromdata.mailbox[0]["@name"]; |
---|
1014 | var dataEmail = Fromdata.mailbox[0]["@localPart"] + '@' + Fromdata.mailbox[0]["@domain"]; |
---|
1015 | if(dataName == 'null') |
---|
1016 | dataName = dataEmail; |
---|
1017 | } |
---|
1018 | |
---|
1019 | var tplFrom = 'a:3:{' |
---|
1020 | + 's:4:"name";' |
---|
1021 | + 's:'+dataName.length+':"'+dataName+'";' |
---|
1022 | + 's:5:"email";' |
---|
1023 | + 's:'+dataEmail.length+':"'+dataEmail+'";' |
---|
1024 | + 's:4:"full";' |
---|
1025 | + 's:'+(dataName.length + dataEmail.length + 3)+':"'+dataName+' <'+dataEmail+'>";' |
---|
1026 | + '}'; |
---|
1027 | //window.alert('from = ' + tplFrom); |
---|
1028 | } |
---|
1029 | //Data adrress from mailbox is empty, null, or canot be correctly returned by service invocation (will return 'unknow mailbox' string) |
---|
1030 | else { |
---|
1031 | tplFrom = 'a:2{s:4:"name";s:14:"Unknow mailbox";s:5:"email";s:15:"Unknow_mailbox";}'; |
---|
1032 | } |
---|
1033 | return(tplFrom); |
---|
1034 | } |
---|
1035 | |
---|
1036 | MailArchiver.prototype.toExpressoSubject = function(data){ |
---|
1037 | if((typeof(data) != 'undefined') && (data.length > 0)){ |
---|
1038 | var tplSbj = 's:'+data.length+':"'+data+'";' |
---|
1039 | } |
---|
1040 | //Subject is empty, null, or canot be correctly returned by service invocation (will return 'Message without subject' string) |
---|
1041 | else { |
---|
1042 | tplSbj = 's:25:"[Message without subject]";'; |
---|
1043 | } |
---|
1044 | return(tplSbj); |
---|
1045 | } |
---|
1046 | |
---|
1047 | MailArchiver.prototype.toExpressoAttachmentsHeader = function(data){ |
---|
1048 | if((typeof(data) != 'undefined') && (data.length > 0)){ |
---|
1049 | var Attdata = eval("(" + data + ")"); |
---|
1050 | if(typeof(Attdata.attachment) != 'undefined'){ |
---|
1051 | var tplAttatch = 'a:2:{' |
---|
1052 | + 's:5:"names";'; |
---|
1053 | //More than 1 attachment - because length will be 'undefined' if just one exists |
---|
1054 | if(Attdata.attachment.length > 0){ |
---|
1055 | var strnamesatt = ""; |
---|
1056 | for(var x=0; x<Attdata.attachment.length; x++){ |
---|
1057 | var attId = Attdata.attachment[x]["@id"]; |
---|
1058 | var attName = Attdata.attachment[x]["@name"]; |
---|
1059 | var attSize = Attdata.attachment[x]["@size"]; |
---|
1060 | var attMediaType = Attdata.attachment[x]["@mediaType"]; |
---|
1061 | var attSubType = Attdata.attachment[x]["@subType"]; |
---|
1062 | var attEncoding = Attdata.attachment[x]["@encoding"]; |
---|
1063 | |
---|
1064 | strnamesatt += attName + ', '; |
---|
1065 | } |
---|
1066 | strnamesatt = strnamesatt.substr(0, strnamesatt.length-2); |
---|
1067 | var intnumberatt = Attdata.attachment.length; |
---|
1068 | } |
---|
1069 | //Just one attachment |
---|
1070 | else{ |
---|
1071 | var attId = Attdata.attachment["@id"]; |
---|
1072 | var attName = Attdata.attachment["@name"]; |
---|
1073 | var attSize = Attdata.attachment["@size"]; |
---|
1074 | var attMediaType = Attdata.attachment["@mediaType"]; |
---|
1075 | var attSubType = Attdata.attachment["@subType"]; |
---|
1076 | var attEncoding = Attdata.attachment["@encoding"]; |
---|
1077 | strnamesatt = attName; |
---|
1078 | var intnumberatt = 1; |
---|
1079 | } |
---|
1080 | |
---|
1081 | tplAttatch += 's:'+strnamesatt.length+':"'+strnamesatt+'";' |
---|
1082 | + 's:18:"number_attachments";i:' +intnumberatt+';' |
---|
1083 | + '}'; |
---|
1084 | } |
---|
1085 | else { |
---|
1086 | tplAttatch = 'a:2:{s:5:"names";b:0;s:18:"number_attachments";i:0;}'; |
---|
1087 | } |
---|
1088 | } |
---|
1089 | //No attatch data |
---|
1090 | else { |
---|
1091 | tplAttatch = 'a:2:{s:5:"names";b:0;s:18:"number_attachments";i:0;}'; |
---|
1092 | } |
---|
1093 | return(tplAttatch); |
---|
1094 | } |
---|
1095 | |
---|
1096 | MailArchiver.prototype.toExpressoDate = function(data){ |
---|
1097 | var ndate = new Date(data); |
---|
1098 | //ndate.setTime(data); |
---|
1099 | var odate = zeroFill(ndate.getDate()) + '/' + zeroFill(ndate.getMonth()+1) + '/' + zeroFill(ndate.getFullYear() + ' ' + zeroFill(ndate.getHours()) + ':' + zeroFill(ndate.getMinutes()) + ':' + zeroFill(ndate.getSeconds())); |
---|
1100 | return(odate); |
---|
1101 | } |
---|
1102 | |
---|
1103 | MailArchiver.prototype.toExpressoFlags = function(data){ |
---|
1104 | if((data.length > 0) && (typeof(data) != 'undefined')){ |
---|
1105 | var Tagdata = eval("(" + data + ")"); |
---|
1106 | //More than 1 attachment - because length will be 'undefined' if just one exists |
---|
1107 | if(Tagdata.tag.length >= 0){ |
---|
1108 | var strnamestag = ""; |
---|
1109 | for(var x=0; x<Tagdata.tag.length; x++){ |
---|
1110 | var tagvalue = Tagdata.tag[x]["@value"]; |
---|
1111 | if(tagvalue.toLowerCase().indexOf('recent')!= -1) |
---|
1112 | strnamestag += 's:6:"Recent";s:1:"N";'; |
---|
1113 | if(tagvalue.toLowerCase().indexOf('unseen')!= -1) |
---|
1114 | strnamestag += 's:6:"Unseen";s:1:"U";'; |
---|
1115 | if(tagvalue.toLowerCase().indexOf('answered')!= -1) |
---|
1116 | strnamestag += 's:8:"Answered";s:1:"A";'; |
---|
1117 | if(tagvalue.toLowerCase().indexOf('forwarded')!= -1) |
---|
1118 | strnamestag += 's:9:"Forwarded";s:1:"F"'; |
---|
1119 | if(tagvalue.toLowerCase().indexOf('draft')!= -1) |
---|
1120 | strnamestag += 's:5:"Draft";s:1:"X";'; |
---|
1121 | if(tagvalue.toLowerCase().indexOf('importance')!= -1) |
---|
1122 | strnamestag += 's:10:"Importance";s:6:"High";'; |
---|
1123 | if(tagvalue.toLowerCase().indexOf('flagged')!= -1) |
---|
1124 | strnamestag += 's:7:"Flagged";s:1:"F";'; |
---|
1125 | } |
---|
1126 | var tplTags = strnamestag; |
---|
1127 | } |
---|
1128 | else{ |
---|
1129 | var strnamestag = ""; |
---|
1130 | var tagvalue = Tagdata.tag["@value"]; |
---|
1131 | if(tagvalue.toLowerCase().indexOf('recent')!= -1) |
---|
1132 | strnamestag += 's:6:"Recent";s:1:"N";'; |
---|
1133 | if(tagvalue.toLowerCase().indexOf('unseen')!= -1) |
---|
1134 | strnamestag += 's:6:"Unseen";s:1:"U";'; |
---|
1135 | if(tagvalue.toLowerCase().indexOf('answered')!= -1) |
---|
1136 | strnamestag += 's:8:"Answered";s:1:"A";'; |
---|
1137 | if(tagvalue.toLowerCase().indexOf('forwarded')!= -1) |
---|
1138 | strnamestag += 's:9:"Forwarded";s:1:"F"'; |
---|
1139 | if(tagvalue.toLowerCase().indexOf('draft')!= -1) |
---|
1140 | strnamestag += 's:5:"Draft";s:1:"X";'; |
---|
1141 | if(tagvalue.toLowerCase().indexOf('importance')!= -1) |
---|
1142 | strnamestag += 's:10:"Importance";s:6:"High";'; |
---|
1143 | if(tagvalue.toLowerCase().indexOf('flagged')!= -1) |
---|
1144 | strnamestag += 's:7:"Flagged";s:1:"F";'; |
---|
1145 | var tplTags = strnamestag; |
---|
1146 | } |
---|
1147 | } |
---|
1148 | else{ |
---|
1149 | tplTags = 's:6:"Recent";s:1:" ";s:6:"Unseen";s:1:" ";s:8:"Answered";s:1:" ";s:9:"Forwarded";s:1:" ";s:5:"Draft";s:1:" ";s:10:"Importance";s:6:"Normal";s:7:"Flagged";b:0;'; |
---|
1150 | } |
---|
1151 | return(tplTags); |
---|
1152 | } |
---|
1153 | |
---|
1154 | MailArchiver.prototype.toExpressoHeader = function(data){ |
---|
1155 | var tplHeader = 'a:16:{' |
---|
1156 | + 's:11:"ContentType";' |
---|
1157 | + 's:' + data.getContentType().length + ':"' + data.getContentType() + '";' |
---|
1158 | + expresso_mail_archive.toExpressoFlags(data.getTags()) |
---|
1159 | + 's:10:"msg_number";' |
---|
1160 | + 's:'+data.getId().length+':"'+data.getId()+'";' |
---|
1161 | + 's:5:"udate";' |
---|
1162 | + 'i:' + parseInt(data.getDate()/1000) + ';' |
---|
1163 | + 's:9:"timestamp";' |
---|
1164 | + 'i:' + parseInt(data.getDate()/1000) + ';' |
---|
1165 | + 's:4:"from";' |
---|
1166 | + expresso_mail_archive.toExpressoAddress(data.getFrom()) |
---|
1167 | + 's:2:"to";' |
---|
1168 | + expresso_mail_archive.toExpressoAddress(data.getTo()) |
---|
1169 | + 's:7:"subject";' |
---|
1170 | + expresso_mail_archive.toExpressoSubject(data.getSubject()) |
---|
1171 | + 's:4:"Size";' |
---|
1172 | + 'i:'+data.getSize()+';' |
---|
1173 | + 's:10:"attachment";' |
---|
1174 | + expresso_mail_archive.toExpressoAttachmentsHeader(data.getAttachments()) |
---|
1175 | + '}'; |
---|
1176 | //window.alert('Serialized data\n\n' + tplHeader + '\ngmtoffset: ' + gmtoffset); |
---|
1177 | return(tplHeader); |
---|
1178 | } |
---|
1179 | |
---|
1180 | MailArchiver.prototype.toExpressoBody = function(mheader){ |
---|
1181 | var tplBody = 'a:33:{' |
---|
1182 | + 's:4:"body";N;' |
---|
1183 | + 's:11:"attachments";N;' |
---|
1184 | + 's:6:"thumbs";N;' |
---|
1185 | + 's:9:"signature";N;' |
---|
1186 | + 's:10:"Importance";s:6:"Normal";' |
---|
1187 | + 's:6:"Recent";s:1:" ";' |
---|
1188 | + 's:6:"Unseen";s:1:"N";' |
---|
1189 | + 's:7:"Deleted";s:1:" ";' |
---|
1190 | + 's:7:"Flagged";b:0;' |
---|
1191 | + 's:8:"Answered";s:1:" ";' |
---|
1192 | + 's:5:"Draft";s:1:" ";' |
---|
1193 | + 's:10:"msg_number";s:4:"2241";' |
---|
1194 | + 's:10:"msg_folder";s:5:"INBOX";' |
---|
1195 | + 's:5:"udate";s:5:"10:01";' |
---|
1196 | + 's:7:"msg_day";s:10:"10/05/2011";' |
---|
1197 | + 's:8:"msg_hour";s:5:"10:02";' |
---|
1198 | + 's:8:"fulldate";s:36:"10/05/2011 10:01 (05:35 horas atras)";' |
---|
1199 | + 's:9:"smalldate";s:5:"10:04";' |
---|
1200 | + 's:4:"from";N;' |
---|
1201 | + 's:6:"sender";a:3:{' |
---|
1202 | + 's:4:"name";N;' |
---|
1203 | + 's:5:"email";s:46:"listaregional-pae-bounces@grupos.serpro.gov.br";' |
---|
1204 | + 's:4:"full";s:46:"listaregional-pae-bounces@grupos.serpro.gov.br";' |
---|
1205 | + '}' |
---|
1206 | + 's:10:"toaddress2";s:32:"comunicacao.social@serpro.gov.br";' |
---|
1207 | + 's:2:"cc";N;' |
---|
1208 | + 's:3:"bcc";N;' |
---|
1209 | + 's:8:"reply_to";N;' |
---|
1210 | + 's:7:"subject";N;' |
---|
1211 | + 's:4:"Size";s:4:"1234";' |
---|
1212 | + 's:15:"reply_toaddress";s:45:"com.social <comunicacao.social@serpro.gov.br>";' |
---|
1213 | + 's:9:"timestamp";i:1305032476;' |
---|
1214 | + 's:5:"login";i:944889240;' |
---|
1215 | + 's:6:"header";a:16:{' |
---|
1216 | + 's:11:"ContentType";s:6:"normal";' |
---|
1217 | + 's:10:"Importance";s:6:"Normal";' |
---|
1218 | + 's:6:"Recent";s:1:" ";' |
---|
1219 | + 's:6:"Unseen";s:1:"N";' |
---|
1220 | + 's:8:"Answered";s:1:" ";' |
---|
1221 | + 's:5:"Draft";s:1:" ";' |
---|
1222 | + 's:7:"Deleted";s:1:" ";' |
---|
1223 | + 's:7:"Flagged";b:0;' |
---|
1224 | + 's:10:"msg_number";s:4:"2251";' |
---|
1225 | + 's:5:"udate";s:10:"10/05/2011";' |
---|
1226 | + 's:11:"offsetToGMT";i:-10800;' |
---|
1227 | + 's:8:"aux_date";N;' |
---|
1228 | + 's:4:"from";a:2:{' |
---|
1229 | + 's:4:"name";s:10:"com.social";' |
---|
1230 | + 's:5:"email";s:32:"comunicacao.social@serpro.gov.br";' |
---|
1231 | + '}' |
---|
1232 | + 's:2:"to";a:2:{' |
---|
1233 | + 's:4:"name";s:32:"comunicacao.social@serpro.gov.br";' |
---|
1234 | + 's:5:"email";s:32:"comunicacao.social@serpro.gov.br";' |
---|
1235 | + '}' |
---|
1236 | + 's:7:"subject";s:28:"Primeira leitura - 10/5/2011";' |
---|
1237 | + 's:4:"Size";N;' |
---|
1238 | + 's:10:"attachment";a:2:{' |
---|
1239 | + 's:5:"names";b:0;' |
---|
1240 | + 's:18:"number_attachments";i:0;' |
---|
1241 | + '}' |
---|
1242 | + '}' |
---|
1243 | + 's:12:"array_attach";N;' |
---|
1244 | + 's:15:"url_export_file";s:160:"inc/gotodownload.php?idx_file=/var/www/expressov2/expressoMail1_2/inc/../tmpLclAtt/source_38a3e960115351578aa182ae1d6c2b7b.txt&newfilename=fonte_da_mensagem.txt";' |
---|
1245 | + 's:2:"to";N;' |
---|
1246 | + '}'; |
---|
1247 | return(tplBody); |
---|
1248 | } |
---|
1249 | |
---|
1250 | MailArchiver.prototype.toExpressoMessage = function(mheader, mbody){ |
---|
1251 | var strMessage = null; |
---|
1252 | var strMessage1 = expresso_mail_archive.toExpressoBody(mheader); |
---|
1253 | //var str3 = connector.unserialize(strMessage1); |
---|
1254 | //strMessage = eval("(" + strMessage1 + ")"); |
---|
1255 | strMessage = connector.unserialize(strMessage1); |
---|
1256 | |
---|
1257 | window.alert('dump strMessage:\n\n' + print_r(strMessage,0)); |
---|
1258 | |
---|
1259 | strMessage['from'] = mheader["from"]; |
---|
1260 | //strMessage['from'] = expresso_mail_archive.toExpressoBody(mheader, mbody); |
---|
1261 | strMessage['subject'] = mheader["subject"]; |
---|
1262 | strMessage['body'] = mbody; |
---|
1263 | strMessage['to'] = mheader["to"]; |
---|
1264 | strMessage['cc'] = mheader["cc"]; |
---|
1265 | strMessage['local_message'] = true; |
---|
1266 | strMessage['folder'] = 'local_' + expresso_mail_archive.currentfolder; |
---|
1267 | strMessage['msg_number'] = mheader["msg_number"]; |
---|
1268 | //window.alert('strMessage dump\n\n' + print_r(strMessage)); |
---|
1269 | return(strMessage); |
---|
1270 | |
---|
1271 | |
---|
1272 | /* |
---|
1273 | * retorno['from'] = connector.unserialize(rs.field(2)); |
---|
1274 | retorno['subject'] = rs.field(3); |
---|
1275 | retorno['body'] = rs.field(4); |
---|
1276 | //Codigo que as imagens embutidas em emails (com multipart/related ou multipart/mixed) sejam corretamente mostradas em emails arquivados. Os links do |
---|
1277 | //tipo "./inc/show_embedded_attach.php?msg_folder=[folder]&msg_num=[msg_num]&msg_part=[part]" |
---|
1278 | //são substituidos pelos links dos anexos capturados pelo gears. |
---|
1279 | |
---|
1280 | var thumbs= retorno.thumbs; |
---|
1281 | var anexos= retorno.array_attach; |
---|
1282 | for (i in anexos) |
---|
1283 | { |
---|
1284 | if(anexos[i]['url'] && anexos[i]['url'].match(/((jpg)|(jpeg)|(png)|(gif)|(bmp))/gi)) |
---|
1285 | { |
---|
1286 | var er_imagens = new RegExp("\\.\\/inc\\/show_embedded_attach.php\\?msg_folder=[\\w/]+\\&msg_num=[0-9]+\\&msg_part="+anexos[i]['pid']); |
---|
1287 | var Result_imagens = er_imagens.exec(retorno['body']); |
---|
1288 | retorno['body'] = retorno['body'].replace(Result_imagens,anexos[i]['url']); |
---|
1289 | if(thumbs && thumbs[i]){ |
---|
1290 | er_imagens = new RegExp("\\.\\/inc\\/show_thumbs.php\\?file_type=image\\/[\\w]+\\&msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); |
---|
1291 | Result_imagens = er_imagens.exec(thumbs[i]); |
---|
1292 | thumbs[i] = thumbs[i].replace(Result_imagens,"'"+anexos[i]['url']+"'"); |
---|
1293 | er_imagens = new RegExp("\\.\\/inc\\/show_img.php\\?msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); |
---|
1294 | Result_imagens = er_imagens.exec(thumbs[i]); |
---|
1295 | thumbs[i] = thumbs[i].replace(Result_imagens,anexos[i]['url']); |
---|
1296 | thumbs[i] = thumbs[i].replace(/<IMG/i,'<img width="120"'); |
---|
1297 | } |
---|
1298 | } |
---|
1299 | } |
---|
1300 | |
---|
1301 | retorno['to'] = connector.unserialize(rs.field(5)); |
---|
1302 | retorno['cc'] = connector.unserialize(rs.field(6)); |
---|
1303 | |
---|
1304 | retorno['local_message'] = true; |
---|
1305 | retorno['msg_folder'] = "local_"+rs.field(7); //Now it's a local folder |
---|
1306 | retorno['msg_number'] = rs.field(0)+plus_id; //the message number is the rowid |
---|
1307 | **/ |
---|
1308 | } |
---|
1309 | |
---|
1310 | |
---|
1311 | MailArchiver.prototype.Query = function(offlow, offup, qdata){ |
---|
1312 | var querystring = this.queryconfig.query(offlow, preferences.max_email_per_page, qdata); |
---|
1313 | this.listMessages(); |
---|
1314 | } |
---|
1315 | |
---|
1316 | /* |
---|
1317 | *The all pourpose JavaScript variable, used by all related functionalityes at |
---|
1318 | *Expresso Mail to handle this object at user gui. |
---|
1319 | */ |
---|
1320 | |
---|
1321 | var expresso_mail_archive; |
---|
1322 | expresso_mail_archive = new MailArchiver(); |
---|
1323 | --> |
---|