source: branches/2.0/expressoMail1_2/js/search.js @ 2758

Revision 2758, 24.6 KB checked in by rodsouza, 14 years ago (diff)

Ticket #1073 - Resultado da busca corrigindo com caracteres nao permitidos

  • Property svn:eol-style set to native
  • Property svn:executable set to *
RevLine 
[2]1/**************************************************************************\
2 Início
3\**************************************************************************/
[832]4        function searchE()
5        {
[2]6                this.searchW   = new Array;
7                this.name_box_search = "";
8                this.all_boxes = new Array;
9                this.type = "";
10                this.fields = new Array("_ass","_de","_body","_para","_cc","_cco");
11        }
12       
13        //Monta os forms dentro da janela;
14        searchE.prototype.showForms = function(value){
15                // Principal
16                if(!Element("window_search")) {
17                        var form_search = document.createElement("DIV");
18                        form_search.style.visibility = 'hidden';
19                        form_search.style.top = '0px';
20                        form_search.style.left = '0px';
21                        form_search.id = "window_search";
22                        document.body.appendChild(form_search);                 
23                }
24               
25                // Pesquisa
26                if(!Element("div_form_search")){
27                        var div_form_search = document.createElement("DIV");
28                        div_form_search.id = "div_form_search";
29                        div_form_search.style.position = "absolute";
30                        div_form_search.style.left = "10px";
31                        div_form_search.style.top  = "10px";
[1415]32                        div_form_search.style.width = "770px";
33                        div_form_search.style.height = "300px";
[2]34                        div_form_search.style.overflow = "hidden";
35                        div_form_search.innerHTML = "";
36                        var call_form_search = EsearchE.mount_form();
37                        div_form_search.appendChild(call_form_search);
[156]38                        form_search.appendChild(div_form_search);
[2]39
40                }       
41               
42                if(!Element("div_button_search")){
43                        var div_button_search    = document.createElement("DIV");
44                                div_button_search.id = "div_button_search";
45                                div_button_search.style.position = "absolute";
46                                div_button_search.style.left = "10px";
47                                div_button_search.style.top = "223px";
[1415]48                                div_button_search.style.width = "615px";
[2]49                                div_button_search.style.height = "25px";
[67]50                                div_button_search.innerHTML = "<table border='0' width='50%' cellpadding='0' cellspacing='0' align='right'>"+
[2]51                                                                                          "<tr>"+
52                                                                                          "<td><input type='button' value=" + get_lang('Search') + " onclick='EsearchE.func_search()'></td>"+
[53]53                                                                                          "<td><input type='button' value=" + get_lang('Clean') + " onclick='EsearchE.func_clean()'></td>"+
[69]54                                                                                          "<td><input type='button' value=" + get_lang('Close') + " onclick='EsearchE.func_close(\"hidden\")'></td>"+
[2]55                                                                                          "</tr>"+
56                                                                                          "</table>";
57                                form_search.appendChild(div_button_search);
58                }
59               
60                if(!Element("table_layer")){
[67]61                        var table_layer    = "";
[2]62                }
63               
[67]64                if(value == "")
[69]65                        EsearchE.showWindow(Element("window_search"));
66       
[2]67                // Cria as caixas postais;
68                EsearchE.mount_folders();
69
70                if(value){
71                        Element("check_all_msg").checked = true;
72                        EsearchE.all_mailboxes();
73                        EsearchE.func_search(value);
74                }
75
76        }
77       
78        //Form
79        searchE.prototype.mount_form = function(value){
80                var form_sch = document.createElement("FORM");
81                form_sch.id  = "form_sch";
[1415]82
83                form_sch.innerHTML =  '<fieldset style="width:266px; text-align:right; padding: 5px; position:absolute;">'
84                                                        + '     <legend>'+get_lang('Inform your search in the text fields')+'</legend>'
85                                                        + '     <label>'+get_lang("From")+':</label>'
86                                                        + '     <input type="text" id="txt_de" size="19">'
87                                                        + '     <br style="margin-bottom:15px"/>'
88                                                        + '     <label>'+get_lang('To')+':</label>'
89                                                        + '     <input type="text" id="txt_para" size="19">'
90                                                        + '     <br style="margin-bottom:15px"/>'
91                                                        + '     <label>'+get_lang('Cc')+':</label>'
92                                                        + '     <input type="text" id="txt_cc" size="19">'
93                                                        + '     <br style="margin-bottom:15px"/>'
94                                                        + '     <label>'+get_lang('Subject')+':</label>'
95                                                        + '     <input type="text" id="txt_ass" size="19">'
96                                                        + '     <br style="margin-bottom:15px"/>'
97                                                        + '     <label>'+get_lang('Message body')+':</label>'
98                                                        + '     <input type="text" id="txt_body" size="19">'
99                                                        + '     <br style="margin-bottom:60px"/>'
100                                                        + '</fieldset>'
101                                                        + '<fieldset style="width:350px; padding: 5px; position:absolute; margin-left: 280px">'
102                                                        + '     <legend>'+get_lang('Search the messages in these folders')+'</legend>'
103                                                        + '     <div id="folders" style="width:160px; height:150px;float:left;margin-bottom:10px;"></div>'
104                                                        + '     <div style="float:left;height:100px;padding-top:50px;margin: 0 3px;">'
105                                                        + '             <input type="button" id="incluir" name="incluir" value=">>" onclick="EsearchE.add_mailboxes()">'
106                                                        + '             <br style="margin-bottom:15px">'
107                                                        + '             <input type="button" id="excluir" name="excluir" value="<<" onclick="EsearchE.del_mailboxes()">'
108                                                        + '     </div>'
109                                                        + ' <div style="float:left;">' 
110                                                        + '      <select multiple id="sel_search_nm_box1" name="sel_search_nm_box1" style="width:140px;height:150px;"></select>'
111                                                        + ' </div>'
112                                                        + '     <br clear="both">'
113                                                        + '     <input type="checkBox" id="check_all_msg" name="check_all_msg" onclick="EsearchE.all_mailboxes()">'
114                                                        + '     <b>'+get_lang('In all the folders')+'</b>'
115                                                        + '</fieldset>';
116               
[2]117                return form_sch;
118        }
119
120        // Pastas;
121        searchE.prototype.mount_folders = function(){
122                connector.loadScript("TreeS");
123
[69]124                if( Element("div_folders_search") == null){
[2]125                        var div_folders = document.createElement("DIV");
126                                div_folders.id = "div_folders_search";
127                                div_folders.style.width = "155px";
128                                div_folders.style.height = "152px";
129                                div_folders.style.borderStyle = "outset";
130                                div_folders.style.borderColor = "black";
131                                div_folders.style.borderWidth = "1px";
132                                div_folders.style.background  = "#F7F7F7";
133                                div_folders.style.overflow = "auto";
134                                div_folders.innerHTML = "";
[69]135                                var dest_div = Element("folders");
[2]136                                dest_div.appendChild(div_folders);
137                }               
138                ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","","");
139        }
140       
[832]141        // Form resultado
[156]142        searchE.prototype.mount_result = function(data,sort_type){
[2758]143                if (data == undefined)
144                        return;
[2]145                var cont = parseInt(0);
[2758]146
147                //This func returns the comparison between criterias
148                var date_comp = function(a,b){ return a.udate > b.udate;};
149                var date_comp_reverse = function(a,b){ return date_comp(b,a);};
150                var box_comp = function(a,b){   return a.boxname > b.boxname; }
151                var box_comp_reverse = function(a,b){   return box_comp(b,a); }
152                var who_comp = function(a,b){ return a.from > b.from; }
153                var who_comp_reverse = function(a,b){ return who_comp(b,a); }
154                var subject_comp = function(a,b){ return a.subject > b.subject; }
155                var subject_comp_reverse = function(a,b){ return subject_comp(b,a); }
156                var size_comp = function(a,b){ return a.size > b.size; }
157                var size_comp_reverse = function(a,b){ return size_comp(b,a); }
158
[645]159                switch (sort_type)
160                {
161                        case 'SORTDATE':
[2758]162                                data.sort(date_comp);
[645]163                                break;
[832]164                        case 'SORTDATE_REVERSE':
[2758]165                                data.sort(date_comp_reverse);
[832]166                                break;
[645]167                        case 'SORTBOX':
[2758]168                                data.sort(box_comp);
[645]169                                break;
[832]170                        case 'SORTBOX_REVERSE':
[2758]171                                data.sort(box_comp_reverse);
[832]172                                break;
[645]173                        case 'SORTSUBJECT':
[2758]174                                data.sort(subject_comp);
[645]175                                break;
[832]176                        case 'SORTSUBJECT_REVERSE':
[2758]177                                data.sort(subject_comp_reverse);
[832]178                                break;
[645]179                        case 'SORTWHO':
[2758]180                                data.sort(who_comp);
[645]181                                break;
[832]182                        case 'SORTWHO_REVERSE':
[2758]183                                data.sort(who_comp_reverse);
[832]184                                break;
[645]185                        case 'SORTSIZE':
[2758]186                                data.sort(size_comp);
[645]187                                break;
[832]188                        case 'SORTSIZE_REVERSE':
[2758]189                                data.sort(size_comp_reverse);
[832]190                                break;
[645]191                        default:
192                                var showMsg = 1;
193                }
194
[2758]195                if(data.length > 0 && showMsg)
196                        write_msg(data.length + " "+ get_lang('results found'));
[320]197                numBox++;
198                var border_id = create_border(get_lang("Search Results"), "search_" + numBox);
[1607]199                if (!border_id)
200                {
201                    return;
202                }
[832]203                currentTab = border_id;
204                openTab.type[currentTab] = 1;
[2]205                var table = document.createElement("TABLE");
[320]206                table.id    = "table_resultsearch_" + numBox;
[271]207                table.frame = "void";
208                table.rules = "rows";
209                table.cellPadding = "0";
210                table.cellSpacing = "0";
[667]211                table.className = "table_box";
[72]212
[2]213                var tbody = document.createElement("TBODY");
[832]214                tbody.id    = "tbody_box_" + numBox;
215
[2758]216                for( var i=0; i < data.length; i++){
[2]217                        var tr = document.createElement("TR");
[645]218                        tr.style.height = preferences.line_height;
[2758]219                        var aux = data[i];
220                        var mailbox = aux.boxname;
221                        var uid_msg = aux.uid;
222                        var subject = aux.subject;
[645]223                        tr.id = uid_msg;
[1339]224
225                        // Keep the two lines together please
226                        tr.setAttribute('name',mailbox);
227                        tr.name = mailbox;
228
[2758]229                        if (aux.flag.match("U"))
[976]230                                add_className(tr,'tr_msg_unread');
231                        add_className(tr, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read');
[1000]232            var _onclick = function () { proxy_mensagens.get_msg(this.parentNode.id,url_encode(this.parentNode.getAttribute('name')),false,show_msg);};
233            for(var j=0 ; j < 10 ; j++)
[645]234                        {
[832]235                                var td = document.createElement("TD");
[645]236                                if (j == 0)
237                                {
238                                        td.style.width = "1%";
239                                        var td1 = '<input type="checkbox" id="check_box_message_'+uid_msg+'"></input>';
240                                }
241                                if (j == 1)
242                                {
243                                        td.style.width = "2%";
[2758]244                                        if (aux.flag.match('T'))
[832]245                                        {
[2758]246                                                attachNum = parseInt(aux.flag.substr(aux.flag.indexOf('T')+1));
[832]247                                                td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>";
248                                        }
249                                        else
250                                                td1 = '';
[645]251                                }
252                                if (j == 2)
253                                {
254                                        td.style.width = "1%";
255                                        td.id = "td_message_answered_"+uid_msg;
[2758]256                                        if (aux.flag.match('X'))
[832]257                                                td1 = '<img src=templates/'+template+'/images/forwarded.gif title=Forwarded>';
258                                        else
[2758]259                                                if (aux.flag.match('A'))
[832]260                                                        td1 = '<img src=templates/'+template+'/images/answered.gif>';
261                                                else
262                                                        td1 = '';
[645]263                                }
264                                if (j == 3)
265                                {
266                                        td.style.width = "1%";
267                                        td.id = "td_message_important_"+uid_msg;
[2758]268                                        if (aux.flag.match("F"))
[832]269                                        {
[976]270                                                add_className(tr, 'flagged_msg');
271                                                td.style.background = "url(templates/"+template+"/images/important.gif) no-repeat center";
[832]272                                        }
273                                        else
274                                                td1 = '';
[645]275                                }
276                                if (j == 4)
277                                {
278                                        td.style.width = "1%";
279                                        td.id = "td_message_sent_"+uid_msg;
280                                        td1 = '';
281                                }
282                                if (j == 5)
283                                {
[1339]284                                        td.style.width = "14%";
[832]285                                        td.onclick = _onclick;
[2758]286                                        var nm_box = aux.boxname.split(cyrus_delimiter);
[645]287                                        var td1 = nm_box.pop();
288                                        td.setAttribute("NoWrap","true");
289                                        td.style.overflow = "hidden";
290                                        td.style.color = "#42795b";
291                                        td.style.fontWeight = "bold";
[1339]292
293                                        if(td1 == "INBOX"){
294                                                var td1  = get_lang("Inbox");
[2]295                                        }
[832]296
297                                        if(proxy_mensagens.is_local_folder(td1)) {
298                                                var td1 = this.aux_local_folder_display(td1);
[689]299                                        }
[645]300                                }
301                                if( j == 6)
302                                {
[2758]303                                        if (aux.from.length > 29)
304                                                aux.from = aux.from.substr(0,29) + "...";
[832]305                                        td.style.width = "20%";
306                                        td.onclick = _onclick;
307                                        td.setAttribute("NoWrap","true");
308                                        td.style.overflow = "hidden";
[2758]309                                        var td1  =  '<div style="width:100%;overflow:hidden">'+aux.from+"</div>";
[645]310                                }
311                                if( j == 7)
312                                {
313                                        var subject_encode = url_encode(subject);
314                                        if (! subject_encode)
[2758]315                                                aux.subject = get_lang("no subject") + "...";
316                                        if (aux.subject.length > 70)
317                                                aux.subject = aux.subject.substr(0,70) + "...";
[832]318                                        td.style.width = "35%";
319                                        td.onclick = _onclick;
320                                        td.setAttribute("NoWrap","true");
321                                        td.style.overflow = "hidden";
[2758]322                                        var td1  = aux.subject;
[67]323
[2]324                                }
[645]325                                if( j == 8)
326                                {
[832]327                                        td.style.width = "15%";
[645]328                                        td.align = "center";
[832]329                                        td.onclick = _onclick;
[2758]330                                        var _dat = new Date(aux.udate*1000);
331                                        var td1 = _dat.getDate()+"/"+_dat.getMonth()+"/"+_dat.getFullYear();
[645]332                                }
333                                if( j == 9)
334                                {
335                                        td.style.width = "10%";
336                                        td.align = "center";
[832]337                                        td.onclick = _onclick;
[2758]338                                        var td1  = borkb(aux.size);
[645]339                                }
340                                if (j == 10)
341                                {
[2758]342                                        if (aux.flag.match("U"))
[976]343                                                add_className(tr, 'tr_msg_unread');
[2758]344                                        if (aux.flag.match("F"))
[976]345                                                add_className(tr, 'flagged_msg');
[645]346                                        var td1 = '';
347                                }
348                                td.innerHTML = td1;
349                                tr.appendChild(td);
[2]350                        }
[569]351                        aux.splice(0,(aux.length));
[271]352
[1339]353                _dragArea.makeDragged(tr, uid_msg, subject, true, mailbox);
[271]354                tbody.appendChild(tr);
[2]355                }
356                table.appendChild(tbody);
[832]357
[2606]358        var content_search =  Element('content_id_search_' + numBox);
[163]359        var div_scroll_result = document.createElement("DIV");
[320]360        div_scroll_result.id = "divScrollMain_"+numBox;
[163]361        div_scroll_result.style.overflow = "auto";
362       
[67]363                if(is_ie)
[72]364                        Element("border_table").width = "99.5%";
[67]365               
[832]366                // Put header
[67]367                var table_element = document.createElement("TABLE");
368                var tbody_element = document.createElement("TBODY");
369                table_element.setAttribute("id", "table_message_header_box");
370                table_element.className = "table_message_header_box";
371                tr_element = document.createElement("TR");
372                tr_element.className = "message_header";
[156]373                td_element0 = document.createElement("TD");
[1339]374                td_element0.setAttribute("width", "1%");
[156]375                chk_box_element = document.createElement("INPUT");
376                chk_box_element.id  = "chk_box_select_all_messages";
377                chk_box_element.setAttribute("type", "checkbox");
378                chk_box_element.className = "checkbox";
[163]379                chk_box_element.onclick = function(){select_all_search_messages(this.checked,content_search.id);};
[156]380                chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')};
381                chk_box_element.onkeydown = function (e){
382                        if (is_ie)
383                        {
384                                if ((window.event.keyCode) == 46)
[832]385                                        delete_msgs(current_folder,'selected','null');
[156]386                        }
387                        else
388                        {
389                                if ((e.keyCode) == 46)
[832]390                                        delete_msgs(current_folder,'selected','null');
[156]391                        }
392                };
393               
394                td_element0.appendChild(chk_box_element);
[67]395                td_element1 = document.createElement("TD");
[163]396                td_element1.setAttribute("width", "20%");
[67]397                td_element1.align = "left";
[832]398                if (sort_type == 'SORTBOX')
399                {
400                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX_REVERSE'); delete_border(border_id,false);};
401                        td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
402                }
403                else
404                {
405                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX'); delete_border(border_id,false);};
406                        if  (sort_type == 'SORTBOX_REVERSE')
407                                td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
408                        else
409                                td_element1.innerHTML = get_lang("Folder");
410                }
[67]411                td_element2 = document.createElement("TD");
[73]412                td_element2.setAttribute("width", "20%");
[67]413                td_element2.align = "left";
[832]414                if (sort_type == 'SORTWHO')
415                {
416                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO_REVERSE'); delete_border(border_id,false);};
417                        td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
418                }
419                else
420                {
421                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO'); delete_border(border_id,false);};
422                        if  (sort_type == 'SORTWHO_REVERSE')
423                                td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
424                        else
425                                td_element2.innerHTML = get_lang("who");
426                }
[67]427                td_element3 = document.createElement("TD");
[645]428                td_element3.setAttribute("width", "35%");
[67]429                td_element3.align = "left";
[832]430                if (sort_type == 'SORTSUBJECT')
431                {
432                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT_REVERSE'); delete_border(border_id,false);};
433                        td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
434                }
435                else
436                {
437                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT'); delete_border(border_id,false);};
438                        if  (sort_type == 'SORTSUBJECT_REVERSE')
439                                td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
440                        else
441                                td_element3.innerHTML = get_lang("subject");
442                }
[67]443                td_element4 = document.createElement("TD");
[645]444                td_element4.setAttribute("width", "15%");
[67]445                td_element4.align = "center";
[832]446                if (sort_type == 'SORTDATE')
447                {
448                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE_REVERSE'); delete_border(border_id,false);};
449                        td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
450                }
451                else
452                {
453                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE'); delete_border(border_id,false);};
454                        if  (sort_type == 'SORTDATE_REVERSE')
455                                td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
456                        else
457                                td_element4.innerHTML = get_lang("Date");
458                }
[67]459                td_element5 = document.createElement("TD");
[645]460                td_element5.setAttribute("width", "10%");
[72]461                td_element5.align = "center";
[832]462                if (sort_type == 'SORTSIZE')
463                {
464                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE_REVERSE'); delete_border(border_id,false);};
465                        td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
466                }
467                else
468                {
469                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE'); delete_border(border_id,false);};
470                        if  (sort_type == 'SORTSIZE_REVERSE')
471                                td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
472                        else
473                                td_element5.innerHTML = get_lang("Size");
474                }
[156]475                tr_element.appendChild(td_element0);
[67]476                tr_element.appendChild(td_element1);
477                tr_element.appendChild(td_element2);
478                tr_element.appendChild(td_element3);
479                tr_element.appendChild(td_element4);
480                tr_element.appendChild(td_element5);
481                tbody_element.appendChild(tr_element);
482                table_element.appendChild(tbody_element);
[163]483                content_search.appendChild(table_element);
[1121]484                /*end of "put header"*/
485               
486                if (!expresso_offline) {
[1294]487/*                      var span_options = document.createElement("SPAN");
[1121]488                        if (span_options)
489                                span_options.innerHTML = '<span title="' + get_lang("Delete") + '" style="margin-top:3px;margin-left:8px" class="message_options" onclick="javascript:move_search_msgs(\'' + content_search.id + '\');">' + get_lang("Delete") + '</span> | ' +
490                                '<span title="' +
491                                get_lang("Move") +
492                                '" class="message_options" onclick=wfolders.makeWindowNew(\"' +
493                                content_search.id +
494                                '\",\"move_to\",true)>' +
495                                get_lang("Move") +
[1294]496                                '</span>';*/
[1121]497                        div_scroll_result.appendChild(table);
498                        content_search.appendChild(div_scroll_result);
[1294]499                        /*if (span_options)
500                                content_search.appendChild(span_options);*/
[1121]501                }
502                else {
503                        div_scroll_result.appendChild(table);
504                        content_search.appendChild(div_scroll_result);
505                }
[2605]506                resizeWindow();
[2]507        }
508
[1339]509        searchE.prototype.open_msg = function(mailbox, uid_msg, subject){
[2]510                var handler_get_msg = function(data){
511                        if(Element("border_id_" + uid_msg + "_r")){alert(get_lang("This message is already opened!"));}
512                        else{draw_message(data,create_border(url_decode(subject), uid_msg + "_r"));}
[673]513                        //set_msg_as_read(msgs_to_set[i], false);
[2]514                }
[1339]515                proxy_mensagens.get_msg(uid_msg,mailbox,false,handler_get_msg);
[689]516                /*var args   = "$this.imap_functions.get_info_msg";
517                var params = "msg_number=" + uid_msg + "&msg_folder=" + mailbox;
518                cExecute(args,handler_get_msg,params);*/
[2]519
520        }
521
522        // Adiciona caixas postais na busca;
523        searchE.prototype.add_mailboxes = function(){
[69]524                var sel = Element("sel_search_nm_box1");
[689]525                if (!proxy_mensagens.is_local_folder(this.name_box_search)) {
526                        var name_box     = this.name_box_search.split(cyrus_delimiter);
527                        if(this.name_box_search == "")
528                                return false;
529                        var name_box_def = "";
530                        if(name_box.length != 1){
531                                name_box_def = name_box[(name_box.length-1)];
532                        }else{
533                                name_box_def = get_lang("Inbox");               
534                        }
[2]535                }
[689]536                else {
537                        if(this.name_box_search=='local_root')
538                                return;
539                        if(this.name_box_search=='local_Inbox')
540                                name_box_def = get_lang("Inbox");
541                        else
542                                name_box_def = this.name_box_search.substr(6);//Retira o 'local_'
543                }
[2]544                if( sel.length > 0){
545                        for(var i=0; i < sel.options.length; i++){
546                                if(sel.options[i].value == this.name_box_search){
547                                        alert(get_lang('This message is already selected!'));
548                                        return false;
549                                }
550                        }
551                }
[96]552                var opt = new Option(lang_folder(name_box_def),this.name_box_search,false,true);
[2]553                sel[sel.length] = opt;
554        }
555        // Remove as caixas postais na busca;
556        searchE.prototype.del_mailboxes = function(){
[69]557                var sel = Element("sel_search_nm_box1");
[2]558                if(sel.length > 0){
559                        for(var i=0; i < sel.options.length; i++){
560                                if(sel.options[i].selected == true){
561                                        sel.options[i] = null;
562                                        i--;
563                                }
564                        }
565                }
566       
567        }
568        // todas as caixas
569        searchE.prototype.all_mailboxes = function(){
[69]570                var value = Element("check_all_msg").checked;
[2]571                var cont = parseInt(0);
572                if(value){
573                        if(EsearchE.all_boxes.length > 0){
574                                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));                       
575                        }
576                        for(var i=0; i < folders.length; i++){
577                                EsearchE.all_boxes[cont] = folders[i].folder_id;
578                                cont++;
579                        }
580                }else{
581                        EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
582                }
583        }
584
585        // Search;
586        searchE.prototype.func_search = function(value){
587                var fields = "##";
588                        // Verifica se os campos estão preenchidos;
[69]589                        if(trim(Element("txt_ass").value) != ""){
[372]590                                fields += "SUBJECT " +  "<=>" +url_encode(Element("txt_ass").value) + "##";
[2]591                        }
[69]592                        if(trim(Element("txt_body").value) != ""){
[372]593                                fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + "##";
[2]594                        }
[69]595                        if(trim(Element("txt_de").value) != ""){
[372]596                                fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + "##";
[2]597                        }
[69]598                        if(trim(Element("txt_para").value) != ""){
[372]599                                fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + "##";
[2]600                        }
[69]601                        if(trim(Element("txt_cc").value) != ""){
[372]602                                fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + "##";
[2]603                        }
604                        if(value) {
[372]605                                fields = "##ALL " +  "<=>" +url_encode(value) + "##";
[2]606                        }
[69]607
[372]608                if(fields == "##"){
[128]609                        alert(get_lang("Define some search parameters!"));
[2]610                        return false;
611                }
[689]612                var local_folders = new Array();
613                var temp;
[2]614               
[69]615                if(Element("check_all_msg").checked){
[689]616                        this.all_mailboxes();
[2]617                        var nm_box = new Array;
618                        for(var i=0; i < EsearchE.all_boxes.length; i++){
619                                nm_box[i] = EsearchE.all_boxes[i] + fields;
620                        }
[689]621                        if (preferences.use_local_messages == 1) {
622                                temp = expresso_local_messages.list_local_folders();
623                                for (var x in temp) {
624                                        local_folders.push(temp[x][0]);
625                                }
626                        }
[2]627                }else{
628                        var nm_box = new Array;
[69]629                        var sel_combo = Element("sel_search_nm_box1");
[2]630                        if( sel_combo.options.length <= 0){
[118]631                                alert(get_lang("Define the boxes to search!"));
[2]632                                return false;
633                        }
634                       
635                        for(var i=0; i < sel_combo.options.length; i++){
636                                sel_combo.options[i].selected = true;
637                        }
638                        for(var i=0; i < sel_combo.options.length; i++){
639                                if(sel_combo.options[i].selected == true){
[689]640                                        if(!proxy_mensagens.is_local_folder(sel_combo.options[i].value))
641                                                nm_box[nm_box.length] = sel_combo.options[i].value + fields;
642                                        else
643                                                local_folders.push(sel_combo.options[i].value.substr(6));
[2]644                                }
645                        }
646                }
647                var handler = function(data){
[689]648                        var tmp;
649                        if (local_folders.length > 0) {
650                                tmp = expresso_local_messages.search(local_folders, fields);
651                                if (tmp!=false) {
652                                        var tmp2 = tmp.substr(2, data.length - 4);
653                                }
654                        }
[2758]655                        if((data == "none") || (data.length==0)){alert(get_lang("None result was found."));}
656                        else if(data.length > 50){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
[2]657                        else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
[2758]658                        else{EsearchE.mount_result(data);}
[2]659                }
660                var args   = "$this.imap_functions.search_msg";
661                var params = "condition=" + nm_box;
[1121]662                if(expresso_offline)
663                        handler('none');
664                else
665                        cExecute(args,handler,params);
[2]666        }
667        // clean;
668        searchE.prototype.func_clean = function(){
669                // Limpa os campos;
670                for(var i=0; i < this.fields.length; i++){
671                        if(Element("txt" + this.fields[i]) != null){Element("txt" + this.fields[i]).value = "";}
[832]672                }
[2]673            if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;}
674
675            EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
[75]676                EsearchE.del_mailboxes();
[69]677        }
[2]678
679        // close
680        searchE.prototype.func_close = function(type){
681                var _this = this;
682                _this.name_box_search = "";
683                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
684                _this.type = type;
685                _this.searchW['window_search'].close();
686        }
687        // Monta a janela em tela;
688        searchE.prototype.showWindow = function(div){
689                if(!this.searchW[div.id]) {
690                        div.style.width = "660px";
[67]691                        div.style.height = "255px";
[2]692                        div.style.visibility = "hidden";
693                        div.style.position = "absolute";
[832]694                        div.style.zIndex = "10003";
[128]695                        var title = ":: "+ get_lang("Search")+" ::";
[2]696                        var wHeight = div.offsetHeight + "px";
697                        var wWidth =  div.offsetWidth   + "px";
[832]698
699                        win = new dJSWin({
[2]700                                id: 'ccList'+div.id,
701                                content_id: div.id,
702                                width: wWidth,
703                                height: wHeight,
704                                title_color: '#3978d6',
705                                bg_color: '#eee',
[832]706                                title: title,
[2]707                                title_text_color: 'white',
708                                button_y_img: '../phpgwapi/images/win_min.gif',
709                                button_x_img: '../phpgwapi/images/winclose.gif',
710                                border: true });
711                        this.searchW[div.id] = win;
712                        win.draw();
713                }else{
714                        var _this = this;
715                        win = this.searchW[div.id];
716                        if((_this.type == "close" && win.state == 0) || win.state == 2){EsearchE.func_clean();}
717                        win.draw();
718                }
719                win.open();     
720        }
[689]721       
722        searchE.prototype.aux_local_folder_display = function(folder) {
[1121]723                if(!expresso_offline)
724                        return "(Local) " + lang_folder(folder.substr(6));
725                else
726                        return lang_folder(folder.substr(6));
[689]727        }
728       
[2]729// Cria o objeto
730        var EsearchE;
[569]731        EsearchE = new searchE();
Note: See TracBrowser for help on using the repository browser.