source: branches/2.2/expressoMail1_2/js/search.js @ 3836

Revision 3836, 38.6 KB checked in by roberto.santosjunior, 13 years ago (diff)

Ticket #1638 - Tela de Listagem de Pesquisa sem tooltip.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
RevLine 
[2]1/**************************************************************************\
[3802]2 Início
[2]3\**************************************************************************/
[832]4        function searchE()
5        {
[2]6                this.searchW   = new Array;
[3802]7                this.condition = "";
8                this.sort_type = "";
9                this.page = 0;
[2]10                this.name_box_search = "";
11                this.all_boxes = new Array;
12                this.type = "";
[1622]13                this.txtfields = new Array("txt_ass","txt_de","txt_body","txt_para","txt_cc","txt_cco",
14                                        "since_date", "before_date", "on_date");
15                this.selectFields = new Array("flagged", "seen", "answered", "recent");
[2]16        }
[3380]17
[2]18        //Monta os forms dentro da janela;
19        searchE.prototype.showForms = function(value){
20                // Principal
21                if(!Element("window_search")) {
22                        var form_search = document.createElement("DIV");
23                        form_search.style.visibility = 'hidden';
24                        form_search.style.top = '0px';
25                        form_search.style.left = '0px';
26                        form_search.id = "window_search";
[3380]27                        document.body.appendChild(form_search);
[2]28                }
[3380]29
[2]30                // Pesquisa
31                if(!Element("div_form_search")){
32                        var div_form_search = document.createElement("DIV");
33                        div_form_search.id = "div_form_search";
34                        div_form_search.style.position = "absolute";
35                        div_form_search.style.left = "10px";
36                        div_form_search.style.top  = "10px";
[3380]37                        div_form_search.style.borderStyle = "outset";
38                        div_form_search.style.borderColor = "black";
39                        div_form_search.style.borderWidth = "1px";
[1622]40                        div_form_search.style.width = "784px";
41                        div_form_search.style.height = "418px";
[2]42                        div_form_search.style.overflow = "hidden";
43                        div_form_search.innerHTML = "";
44                        var call_form_search = EsearchE.mount_form();
45                        div_form_search.appendChild(call_form_search);
[156]46                        form_search.appendChild(div_form_search);
[2]47
[1622]48                        Calendar._TT['WEEKEND'] = '0,6'; // hack
49                        Calendar._TT['DAY_FIRST'] = 'Mostrar %s primeiro';
50                        Calendar.setup({
51                            inputField  : 'since_date',
52                            button      : 'since_date-trigger',
53                            ifFormat    : '%d/%m/%Y',
54                            daFormat    : '%d/%m/%Y'
55                        });
56
57                        Calendar.setup({
58                            inputField  : 'before_date',
59                            button      : 'before_date-trigger',
60                            ifFormat    : '%d/%m/%Y',
61                            daFormat    : '%d/%m/%Y'
62                        });
63
64                        Calendar.setup({
65                            inputField  : 'on_date',
66                            button      : 'on_date-trigger',
67                            ifFormat    : '%d/%m/%Y',
68                            daFormat    : '%d/%m/%Y'
69                        });
70
[3380]71                }
72
[2]73                if(!Element("div_button_search")){
74                        var div_button_search    = document.createElement("DIV");
75                                div_button_search.id = "div_button_search";
76                                div_button_search.style.position = "absolute";
[1622]77                                div_button_search.style.marginLeft = "430px";
[2]78                                div_button_search.style.top = "223px";
[1622]79                                div_button_search.style.width = "350px";
[2]80                                div_button_search.style.height = "25px";
[1622]81                                div_button_search.innerHTML = "<table style='width: 100%;' border='0' cellpadding='0' cellspacing='0' align='center'>"+
[2]82                                                                                          "<tr>"+
[1622]83                                                                                          "<td width='33%' align='center'><input type='button' value=" + get_lang('Search') + " onclick='EsearchE.func_search()'></td>"+
84                                                                                          "<td width='33%' align='center'><input type='button' value=" + get_lang('Clean') + " onclick='EsearchE.func_clean()'></td>"+
85                                                                                          "<td width='33%' align='center'><input type='button' value=" + get_lang('Close') + " onclick='EsearchE.func_close(\"hidden\")'></td>"+
[2]86                                                                                          "</tr>"+
87                                                                                          "</table>";
88                                form_search.appendChild(div_button_search);
89                }
[3380]90
[2]91                if(!Element("table_layer")){
[67]92                        var table_layer    = "";
[2]93                }
[3380]94
[67]95                if(value == "")
[69]96                        EsearchE.showWindow(Element("window_search"));
[3380]97
[2]98                // Cria as caixas postais;
99                EsearchE.mount_folders();
100
101                if(value){
102                        Element("check_all_msg").checked = true;
103                        EsearchE.all_mailboxes();
104                        EsearchE.func_search(value);
105                }
106
107        }
[3802]108       
[2]109        //Form
110        searchE.prototype.mount_form = function(value){
111                var form_sch = document.createElement("FORM");
112                form_sch.id  = "form_sch";
[1415]113
[3380]114                form_sch.innerHTML =  '<fieldset style="width:400px; text-align:right; padding: 5px; position:absolute;">'
[1415]115                                                        + '     <legend>'+get_lang('Inform your search in the text fields')+'</legend>'
116                                                        + '     <label>'+get_lang("From")+':</label>'
[1622]117                                                        + '     <input style="margin-left: 6px;" type="text" id="txt_de" size="39">'
[1415]118                                                        + '     <br style="margin-bottom:15px"/>'
119                                                        + '     <label>'+get_lang('To')+':</label>'
[1622]120                                                        + '     <input style="margin-left: 6px;" type="text" id="txt_para" size="39">'
[1415]121                                                        + '     <br style="margin-bottom:15px"/>'
122                                                        + '     <label>'+get_lang('Cc')+':</label>'
[1622]123                                                        + '     <input style="margin-left: 6px;" type="text" id="txt_cc" size="39">'
[1415]124                                                        + '     <br style="margin-bottom:15px"/>'
125                                                        + '     <label>'+get_lang('Subject')+':</label>'
[1622]126                                                        + '     <input style="margin-left: 6px;" type="text" id="txt_ass" size="39">'
[1415]127                                                        + '     <br style="margin-bottom:15px"/>'
128                                                        + '     <label>'+get_lang('Message body')+':</label>'
[3380]129                                                        + '     <input style="margin-left: 6px;" type="text" id="txt_body" size="39">'
[1622]130
131                                                        + '     <br style="margin-bottom:30px"/>'
132                                                        + '     <label>'+get_lang("Since Date")+':</label>'
[3834]133                                                        + '     <input style="margin-left: 6px;" type="text" id="since_date" size="8" maxlength="10" onkeypress="return dateMask(this, event);">'
[3711]134                                                        + '     <img id="since_date-trigger" src="/phpgwapi/templates/default/images/datepopup.gif" title="'+get_lang("Select Date")+'" style="cursor:pointer; cursor:hand;"/>'
[1622]135                                                        + '     <label style="margin-left: 20px;">'+get_lang('Before Date')+':</label>'
[3834]136                                                        + '     <input style="margin-left: 6px;" type="text" id="before_date" size="8" maxlength="10" onkeypress="return dateMask(this, event);">'
[3711]137                                                        + '     <img id="before_date-trigger" src="/phpgwapi/templates/default/images/datepopup.gif" title="'+get_lang("Select Date")+'" style="cursor:pointer; cursor:hand;"/>'
[1622]138                                                        + '     <br style="margin-bottom:15px"/>'
139
140                                                        + '     <label>'+get_lang('On Date')+':</label>'
[3834]141                                                        + '     <input style="margin-left: 6px;" type="text" id="on_date" size="8" maxlength="10" onkeypress="return dateMask(this, event);">'
142                                                        + '     <img style="margin-right: -8px" id="on_date-trigger" src="/phpgwapi/templates/default/images/datepopup.gif" title="'+get_lang("Select Date")+'" style="cursor:pointer; cursor:hand;"/><span>&nbsp;&nbsp;</span>'
[1622]143                                                        + '     <br style="margin-bottom:30px"/>'
144
145                                                        + '     <label>'+get_lang('Flags')+':</label>'
146                                                        + '     <select style="width:15em; margin-left: 6px" name="flagged" id="flagged">'
147                                                        + '     <option value=""/>'
148                                                        + '     <option value="FLAGGED">'+ get_lang("Flagged") +'</option>'
149                                                        + '     <option value="UNFLAGGED">'+ get_lang("Unflagged") +'</option>'
150                                                        + '     </select>'
151                                                        + '     <br style="margin-bottom:15px"/>'
152                                                        + '     <select style="width:15em;" name="seen" id="seen">'
153                                                        + '     <option value=""/>'
154                                                        + '     <option value="SEEN">'+ get_lang("Seen") +'</option>'
155                                                        + '     <option value="UNSEEN">'+ get_lang("Unseen") +'</option>'
156                                                        + '     </select>'
157                                                        + '     <br style="margin-bottom:15px"/>'
158                                                        + '     <select style="width:15em;" name="answered" id="answered">'
159                                                        + '     <option value=""/>'
160                                                        + '     <option value="ANSWERED">'+ get_lang('Answered/Forwarded') +'</option>'
161                                                        + '     <option value="UNANSWERED">'+ get_lang('Unanswered/Unforwarded') +'</option>'
162                                                        + '     </select>'
163                                                        + '     <br style="margin-bottom:15px"/>'
164                                                        + '     <select style="width:15em;" name="recent" id="recent">'
165                                                        + '     <option value=""/>'
166                                                        + '     <option value="RECENT">'+ get_lang('Recent') +'</option>'
167                                                        + '     <option value="OLD">'+ get_lang('Old') +'</option>'
168                                                        + '     </select>'
169
[3380]170                                                        + '     <br style="margin-bottom:60px"/>'
[1415]171                                                        + '</fieldset>'
[1622]172                                                        + '<fieldset style="width:350px; padding: 5px; position:absolute; margin-left: 414px">'
[1415]173                                                        + '     <legend>'+get_lang('Search the messages in these folders')+'</legend>'
174                                                        + '     <div id="folders" style="width:160px; height:150px;float:left;margin-bottom:10px;"></div>'
175                                                        + '     <div style="float:left;height:100px;padding-top:50px;margin: 0 3px;">'
176                                                        + '             <input type="button" id="incluir" name="incluir" value=">>" onclick="EsearchE.add_mailboxes()">'
177                                                        + '             <br style="margin-bottom:15px">'
178                                                        + '             <input type="button" id="excluir" name="excluir" value="<<" onclick="EsearchE.del_mailboxes()">'
179                                                        + '     </div>'
[3380]180                                                        + ' <div style="float:left;">'
[1415]181                                                        + '      <select multiple id="sel_search_nm_box1" name="sel_search_nm_box1" style="width:140px;height:150px;"></select>'
182                                                        + ' </div>'
183                                                        + '     <br clear="both">'
184                                                        + '     <input type="checkBox" id="check_all_msg" name="check_all_msg" onclick="EsearchE.all_mailboxes()">'
185                                                        + '     <b>'+get_lang('In all the folders')+'</b>'
186                                                        + '</fieldset>';
[3380]187
[2]188                return form_sch;
189        }
190
191        // Pastas;
192        searchE.prototype.mount_folders = function(){
193                connector.loadScript("TreeS");
194
[69]195                if( Element("div_folders_search") == null){
[2]196                        var div_folders = document.createElement("DIV");
197                                div_folders.id = "div_folders_search";
198                                div_folders.style.width = "155px";
199                                div_folders.style.height = "152px";
200                                div_folders.style.borderStyle = "outset";
201                                div_folders.style.borderColor = "black";
202                                div_folders.style.borderWidth = "1px";
203                                div_folders.style.background  = "#F7F7F7";
204                                div_folders.style.overflow = "auto";
205                                div_folders.innerHTML = "";
[69]206                                var dest_div = Element("folders");
[2]207                                dest_div.appendChild(div_folders);
[3380]208                }
[2]209                ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","","");
210        }
[3802]211        function openpage(data){
212                delete_border(currentTab,false);
213                EsearchE.mount_result(data);
[3223]214        }
[156]215
[3802]216        searchE.prototype.show_paging = function(size){
217                if (size > preferences.max_email_per_page)
[3223]218                {
[3802]219                        if (Element("span_paging"+currentTab)){
220                                Element("span_paging"+currentTab).style.display = '';
221                                Element("span_paging"+currentTab).innerHTML = "";
222                        }
223                        else{
224                                var span_paging = document.createElement('SPAN');
225                                span_paging.id = "span_paging"+currentTab;
226                                Element("div_menu_c3").appendChild(span_paging);
227                        }
228                        if(this.page > 1){
229                                var fLink = document.createElement('A');
230                                fLink.innerHTML = '&lt; &lt;';
231                                fLink.href = 'javascript:EsearchE.page=0;'+
232                                        'cExecute("$this.imap_functions.search_msg",openpage,'+
233                                        '"condition='+this.condition+'&sort_type='+this.sort_type+'&page=0");';
234                                Element("span_paging"+currentTab).appendChild(fLink);
235                        }
236                        if(this.page > 2){
237                                var prevLink = document.createElement('A');
238                                prevLink.innerHTML = '...';
239                                prevLink.href = 'javascript:EsearchE.page='+
240                                        (this.page-1)+';'+
241                                        'cExecute("$this.imap_functions.search_msg",openpage,'+
242                                        '"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+(this.page-1)+'");';
243                                Element("span_paging"+currentTab).appendChild(prevLink);
244                        }
245                        for (var i=(this.page > 2 ? this.page-2 : 0); i <= parseInt(this.page)+4; i+= 1){
246                                if (i*preferences.max_email_per_page > size)
247                                        break;
248                                if (this.page == i)
249                                        Element("span_paging"+currentTab).innerHTML += "<b> "+(this.page+1)+" </b>";
250                                else
251                                {
252                                        var pageLink = document.createElement('A');
253                                        pageLink.innerHTML = (i+1)+" ";
254                                        pageLink.href = 'javascript:EsearchE.page='+i+';'+
255                                                'cExecute("$this.imap_functions.search_msg",openpage,'+
256                                                '"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+this.page+'");';
257                                        Element("span_paging"+currentTab).appendChild(pageLink);
258                                }
259                        }
260                        if (size > preferences.max_email_per_page)
[3223]261                        {
[3802]262                                var lLink = document.createElement('A');
263                                lLink.innerHTML = '&gt; &gt;';
264                                lLink.href = 'javascript:EsearchE.page='+parseInt(size/preferences.max_email_per_page)+';'+
265                                        'cExecute("$this.imap_functions.search_msg",openpage,'+
266                                        '"condition='+this.condition+'&sort_type='+this.sort_type+'&page=0");';
267                                Element("span_paging"+currentTab).appendChild(lLink);
[3223]268                        }
269                }
270
[3802]271        }
272        // Form resultado
273        searchE.prototype.mount_result = function(Rdata,sort_type){
274                var data = Rdata['data'];
275                if (data == undefined)
276                        return;
277                if(this.page == 0)
278                        write_msg(Rdata['num_msgs']+" "+get_lang("results found"));
279                var cont = parseInt(0);
[3018]280
[3802]281                if (typeof(sort_type) != 'undefined')
282                        this.sort_type = sort_type;
283                else
284                        sort_type = this.sort_type;
285
[320]286                numBox++;
[3682]287               
[320]288                var border_id = create_border(get_lang("Search Results"), "search_" + numBox);
[3682]289       
290                if (!border_id)
291        {
292            return;
293        }
294
295        currentTab = border_id;
296        openTab.content_id[currentTab] = Element('content_id_search_' + numBox);
297        openTab.type[currentTab] = 1;
[2]298                var table = document.createElement("TABLE");
[320]299                table.id    = "table_resultsearch_" + numBox;
[271]300                table.frame = "void";
301                table.rules = "rows";
302                table.cellPadding = "0";
303                table.cellSpacing = "0";
[667]304                table.className = "table_box";
[72]305
[3682]306                var tbody               = document.createElement("TBODY");
307                        tbody.id        = "tbody_box_" + numBox;
[3380]308
[3802]309                for( var i=0; i < data.length; i++){
[2]310                        var tr = document.createElement("TR");
[3802]311                        tr.style.height = preferences.line_height;
312                        var aux = data[i];
313                        var mailbox = aux.boxname;
314                        var uid_msg = aux.uid;
315                        var subject = aux.subject;
[3659]316                        tr.id = uid_msg+"_s"+global_search;
[3380]317
[1339]318                        // Keep the two lines together please
319                        tr.setAttribute('name',mailbox);
320                        tr.name = mailbox;
321
[3802]322                        if (aux.flag.match("U"))
[976]323                                add_className(tr,'tr_msg_unread');
324                        add_className(tr, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read');
[1000]325            var _onclick = function () { proxy_mensagens.get_msg(this.parentNode.id,url_encode(this.parentNode.getAttribute('name')),false,show_msg);};
[3422]326            for(var j=0 ; j <= 10 ; j++)
[645]327                        {
[832]328                                var td = document.createElement("TD");
[645]329                                if (j == 0)
330                                {
331                                        td.style.width = "1%";
[3802]332                                        var td1 = '<input type="checkbox" id="check_box_message_'+uid_msg+'"></input>';
333                                       
[645]334                                }
335                                if (j == 1)
336                                {
337                                        td.style.width = "2%";
[3802]338                                        if (aux.flag.match('T'))
[832]339                                        {
[3802]340                                                attachNum = parseInt(aux.flag.substr(aux.flag.indexOf('T')+1));
[832]341                                                td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>";
342                                        }
343                                        else
344                                                td1 = '';
[645]345                                }
346                                if (j == 2)
347                                {
348                                        td.style.width = "1%";
349                                        td.id = "td_message_answered_"+uid_msg;
[3802]350                                        if (aux.flag.match('X'))
[3836]351                                                td1 = '<img src=templates/'+template+'/images/forwarded.gif title="Encaminhada">';
[832]352                                        else
[3802]353                                                if (aux.flag.match('A'))
[3836]354                                                        td1 = '<img src=templates/'+template+'/images/answered.gif title="Respondida">';
[832]355                                                else
356                                                        td1 = '';
[645]357                                }
358                                if (j == 3)
359                                {
360                                        td.style.width = "1%";
[3836]361                                        td.id = "td_message_important_"+uid_msg;
[3802]362                                        if (aux.flag.match("F"))
[832]363                                        {
[976]364                                                add_className(tr, 'flagged_msg');
365                                                td.style.background = "url(templates/"+template+"/images/important.gif) no-repeat center";
[3836]366                                                td.title = "Importante";
[832]367                                        }
368                                        else
369                                                td1 = '';
[645]370                                }
371                                if (j == 4)
372                                {
373                                        td.style.width = "1%";
374                                        td.id = "td_message_sent_"+uid_msg;
375                                        td1 = '';
376                                }
377                                if (j == 5)
378                                {
[3380]379                                        td.style.width = "20%";
[832]380                                        td.onclick = _onclick;
[3802]381                                        var nm_box = aux.boxname.split(cyrus_delimiter);
[645]382                                        var td1 = nm_box.pop();
383                                        td.setAttribute("NoWrap","true");
384                                        td.style.overflow = "hidden";
385                                        td.style.color = "#42795b";
386                                        td.style.fontWeight = "bold";
[3802]387                                       
388                                        var td1  = get_lang(td1).substr(get_lang(td1).length-1) == "*"?td1:get_lang(td1);
389                                        if ((tmp = translatedFolders.get(td1)))
390                                        {
391                                            td1 = tmp;
392                                        }
[1339]393
[3682]394                                        if( proxy_mensagens.is_local_folder(td1))
395                                        {
[832]396                                                var td1 = this.aux_local_folder_display(td1);
[689]397                                        }
[645]398                                }
399                                if( j == 6)
400                                {
[3802]401                                        if (aux.from.length > 29)
402                                                aux.from = aux.from.substr(0,29) + "...";
[832]403                                        td.style.width = "20%";
404                                        td.onclick = _onclick;
405                                        td.setAttribute("NoWrap","true");
406                                        td.style.overflow = "hidden";
[3802]407                                        var td1  =  '<div style="width:100%;overflow:hidden">'+aux.from+"</div>";
[645]408                                }
409                                if( j == 7)
410                                {
411                                        var subject_encode = url_encode(subject);
412                                        if (! subject_encode)
[3802]413                                                aux.subject = get_lang("no subject") + "...";
414                                        if (aux.subject.length > 45)
415                                                aux.subject = aux.subject.substr(0,45) + "...";
[832]416                                        td.style.width = "35%";
417                                        td.onclick = _onclick;
418                                        td.setAttribute("NoWrap","true");
419                                        td.style.overflow = "hidden";
[3802]420                                        var td1  = aux.subject;
421
[2]422                                }
[645]423                                if( j == 8)
424                                {
[3380]425                                        td.style.width = "13%";
[645]426                                        td.align = "center";
[832]427                                        td.onclick = _onclick;
[3802]428                                        var _dat = new Date(aux.udate*1000);
429                                        var td1 = _dat.getDate()+"/"+(_dat.getMonth()+1)+"/"+_dat.getFullYear();
[645]430                                }
431                                if( j == 9)
432                                {
433                                        td.style.width = "10%";
434                                        td.align = "center";
[832]435                                        td.onclick = _onclick;
[3802]436                                        var td1  = borkb(aux.size);
[645]437                                }
438                                if (j == 10)
439                                {
[3802]440                                        if (aux.flag.match("U"))
[976]441                                                add_className(tr, 'tr_msg_unread');
[3802]442                                        if (aux.flag.match("F"))
[976]443                                                add_className(tr, 'flagged_msg');
[645]444                                        var td1 = '';
445                                }
446                                td.innerHTML = td1;
447                                tr.appendChild(td);
[2]448                        }
[569]449                        aux.splice(0,(aux.length));
[271]450
[3802]451                _dragArea.makeDragged(tr, uid_msg, subject, true, mailbox);
[271]452                tbody.appendChild(tr);
[2]453                }
[3802]454                global_search++; //Tabs from search must not have the same id on its tr's
455               
[2]456                table.appendChild(tbody);
[832]457
458        var content_search =  Element('content_id_search_' + numBox);
[163]459        var div_scroll_result = document.createElement("DIV");
[320]460        div_scroll_result.id = "divScrollMain_"+numBox;
[163]461        div_scroll_result.style.overflow = "auto";
[3380]462
[67]463                if(is_ie)
[72]464                        Element("border_table").width = "99.5%";
[3380]465
[832]466                // Put header
[67]467                var table_element = document.createElement("TABLE");
468                var tbody_element = document.createElement("TBODY");
469                table_element.setAttribute("id", "table_message_header_box");
470                table_element.className = "table_message_header_box";
471                tr_element = document.createElement("TR");
472                tr_element.className = "message_header";
[156]473                td_element0 = document.createElement("TD");
[3380]474                td_element0.setAttribute("width", "7%");
[156]475                chk_box_element = document.createElement("INPUT");
476                chk_box_element.id  = "chk_box_select_all_messages";
477                chk_box_element.setAttribute("type", "checkbox");
478                chk_box_element.className = "checkbox";
[163]479                chk_box_element.onclick = function(){select_all_search_messages(this.checked,content_search.id);};
[156]480                chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')};
481                chk_box_element.onkeydown = function (e){
482                        if (is_ie)
483                        {
484                                if ((window.event.keyCode) == 46)
[832]485                                        delete_msgs(current_folder,'selected','null');
[156]486                        }
487                        else
488                        {
489                                if ((e.keyCode) == 46)
[832]490                                        delete_msgs(current_folder,'selected','null');
[156]491                        }
492                };
[3380]493
[156]494                td_element0.appendChild(chk_box_element);
[67]495                td_element1 = document.createElement("TD");
[163]496                td_element1.setAttribute("width", "20%");
[67]497                td_element1.align = "left";
[832]498                if (sort_type == 'SORTBOX')
499                {
[3802]500                        td_element1.onclick = function () {
501                                var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTBOX_REVERSE'); };
502                                var args   = "$this.imap_functions.search_msg";
503                                var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTBOX_REVERSE";
504                                cExecute(args,handler,params);
505                        };
[832]506                        td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
507                }
508                else
509                {
[3802]510                        td_element1.onclick = function () {
511                                var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTBOX'); };
512                                var args   = "$this.imap_functions.search_msg";
513                                var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTBOX";
514                                cExecute(args,handler,params);
515                        };
[832]516                        if  (sort_type == 'SORTBOX_REVERSE')
517                                td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
518                        else
519                                td_element1.innerHTML = get_lang("Folder");
520                }
[67]521                td_element2 = document.createElement("TD");
[73]522                td_element2.setAttribute("width", "20%");
[67]523                td_element2.align = "left";
[832]524                if (sort_type == 'SORTWHO')
525                {
[3802]526                        td_element2.onclick = function () {
527                                var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTWHO_REVERSE'); };
528                                var args   = "$this.imap_functions.search_msg";
529                                var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTWHO_REVERSE";
530                                cExecute(args,handler,params);
531                        };
[832]532                        td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
533                }
534                else
535                {
[3802]536                        td_element2.onclick = function () {
537                                var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTWHO'); };
538                                var args   = "$this.imap_functions.search_msg";
539                                var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTWHO";
540                                cExecute(args,handler,params);
541                        };
[832]542                        if  (sort_type == 'SORTWHO_REVERSE')
543                                td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
544                        else
545                                td_element2.innerHTML = get_lang("who");
546                }
[67]547                td_element3 = document.createElement("TD");
[645]548                td_element3.setAttribute("width", "35%");
[67]549                td_element3.align = "left";
[832]550                if (sort_type == 'SORTSUBJECT')
551                {
[3802]552                        td_element3.onclick = function () {
553                                var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTSUBJECT_REVERSE'); };
554                                var args   = "$this.imap_functions.search_msg";
555                                var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTSUBJECT_REVERSE";
556                                cExecute(args,handler,params);
557                        };
[832]558                        td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
559                }
560                else
561                {
[3802]562                        td_element3.onclick = function () {
563                                var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTSUBJECT'); };
564                                var args   = "$this.imap_functions.search_msg";
565                                var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTSUBJECT";
566                                cExecute(args,handler,params);
567                        };
[832]568                        if  (sort_type == 'SORTSUBJECT_REVERSE')
569                                td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
570                        else
571                                td_element3.innerHTML = get_lang("subject");
572                }
[67]573                td_element4 = document.createElement("TD");
[3380]574                td_element4.setAttribute("width", "12%");
[67]575                td_element4.align = "center";
[832]576                if (sort_type == 'SORTDATE')
577                {
[3802]578                        td_element4.onclick = function () {
579                                var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTDATE_REVERSE'); };
580                                var args   = "$this.imap_functions.search_msg";
581                                var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTDATE_REVERSE";
582                                cExecute(args,handler,params);
583                        };
[832]584                        td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
585                }
586                else
587                {
[3802]588                        td_element4.onclick = function () {
589                                var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTDATE'); };
590                                var args   = "$this.imap_functions.search_msg";
591                                var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTDATE";
592                                cExecute(args,handler,params);
593                        };
[832]594                        if  (sort_type == 'SORTDATE_REVERSE')
595                                td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
596                        else
597                                td_element4.innerHTML = get_lang("Date");
598                }
[67]599                td_element5 = document.createElement("TD");
[3380]600                td_element5.setAttribute("width", "8%");
[72]601                td_element5.align = "center";
[832]602                if (sort_type == 'SORTSIZE')
603                {
[3802]604                        td_element5.onclick = function () {
605                                var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTSIZE_REVERSE'); };
606                                var args   = "$this.imap_functions.search_msg";
607                                var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTSIZE_REVERSE";
608                                cExecute(args,handler,params);
609                        };
[832]610                        td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
611                }
612                else
613                {
[3802]614                        td_element5.onclick = function () {
615                                var handler = function(data){ delete_border(border_id,false); EsearchE.mount_result(data,'SORTSIZE'); };
616                                var args   = "$this.imap_functions.search_msg";
617                                var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type=SORTSIZE";
618                                cExecute(args,handler,params);
619                        };
[832]620                        if  (sort_type == 'SORTSIZE_REVERSE')
621                                td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
622                        else
623                                td_element5.innerHTML = get_lang("Size");
624                }
[156]625                tr_element.appendChild(td_element0);
[67]626                tr_element.appendChild(td_element1);
627                tr_element.appendChild(td_element2);
628                tr_element.appendChild(td_element3);
629                tr_element.appendChild(td_element4);
630                tr_element.appendChild(td_element5);
631                tbody_element.appendChild(tr_element);
632                table_element.appendChild(tbody_element);
[163]633                content_search.appendChild(table_element);
[1121]634                /*end of "put header"*/
[3380]635
[1121]636                if (!expresso_offline) {
[1294]637/*                      var span_options = document.createElement("SPAN");
[3380]638                        if (span_options)
[1121]639                                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> | ' +
640                                '<span title="' +
641                                get_lang("Move") +
642                                '" class="message_options" onclick=wfolders.makeWindowNew(\"' +
643                                content_search.id +
644                                '\",\"move_to\",true)>' +
645                                get_lang("Move") +
[1294]646                                '</span>';*/
[1121]647                        div_scroll_result.appendChild(table);
648                        content_search.appendChild(div_scroll_result);
[3380]649                        /*if (span_options)
[1294]650                                content_search.appendChild(span_options);*/
[1121]651                }
652                else {
653                        div_scroll_result.appendChild(table);
654                        content_search.appendChild(div_scroll_result);
655                }
[3223]656                resizeWindow();
[3802]657                EsearchE.show_paging(Rdata['num_msgs']);
658
[2]659        }
660
[3802]661        searchE.prototype.open_msg = function(mailbox, uid_msg, subject){
[2]662                var handler_get_msg = function(data){
663                        if(Element("border_id_" + uid_msg + "_r")){alert(get_lang("This message is already opened!"));}
664                        else{draw_message(data,create_border(url_decode(subject), uid_msg + "_r"));}
[673]665                        //set_msg_as_read(msgs_to_set[i], false);
[2]666                }
[3802]667                proxy_mensagens.get_msg(uid_msg,mailbox,false,handler_get_msg);
[689]668                /*var args   = "$this.imap_functions.get_info_msg";
669                var params = "msg_number=" + uid_msg + "&msg_folder=" + mailbox;
670                cExecute(args,handler_get_msg,params);*/
[2]671
672        }
673
674        // Adiciona caixas postais na busca;
675        searchE.prototype.add_mailboxes = function(){
[69]676                var sel = Element("sel_search_nm_box1");
[689]677                if (!proxy_mensagens.is_local_folder(this.name_box_search)) {
678                        var name_box     = this.name_box_search.split(cyrus_delimiter);
679                        if(this.name_box_search == "")
680                                return false;
681                        var name_box_def = "";
682                        if(name_box.length != 1){
683                                name_box_def = name_box[(name_box.length-1)];
684                        }else{
[3380]685                                name_box_def = get_lang("Inbox");
[689]686                        }
[2]687                }
[689]688                else {
689                        if(this.name_box_search=='local_root')
690                                return;
691                        if(this.name_box_search=='local_Inbox')
692                                name_box_def = get_lang("Inbox");
[3802]693                        else if(this.name_box_search.indexOf("/")!="-1") {
694                                final_pos = this.name_box_search.lastIndexOf("/");
695                                name_box_def = this.name_box_search.substr(final_pos+1);
696                        }
[689]697                        else
698                                name_box_def = this.name_box_search.substr(6);//Retira o 'local_'
699                }
[2]700                if( sel.length > 0){
701                        for(var i=0; i < sel.options.length; i++){
702                                if(sel.options[i].value == this.name_box_search){
703                                        alert(get_lang('This message is already selected!'));
704                                        return false;
705                                }
706                        }
707                }
[96]708                var opt = new Option(lang_folder(name_box_def),this.name_box_search,false,true);
[2]709                sel[sel.length] = opt;
710        }
711        // Remove as caixas postais na busca;
712        searchE.prototype.del_mailboxes = function(){
[69]713                var sel = Element("sel_search_nm_box1");
[2]714                if(sel.length > 0){
715                        for(var i=0; i < sel.options.length; i++){
716                                if(sel.options[i].selected == true){
717                                        sel.options[i] = null;
718                                        i--;
719                                }
720                        }
721                }
[3380]722
[2]723        }
724        // todas as caixas
725        searchE.prototype.all_mailboxes = function(){
[69]726                var value = Element("check_all_msg").checked;
[2]727                var cont = parseInt(0);
728                if(value){
729                        if(EsearchE.all_boxes.length > 0){
[3380]730                                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
[2]731                        }
732                        for(var i=0; i < folders.length; i++){
733                                EsearchE.all_boxes[cont] = folders[i].folder_id;
734                                cont++;
735                        }
736                }else{
737                        EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
738                }
739        }
740
741        // Search;
742        searchE.prototype.func_search = function(value){
743                var fields = "##";
744                        // Verifica se os campos estão preenchidos;
[69]745                        if(trim(Element("txt_ass").value) != ""){
[3802]746                                fields += "SUBJECT " +  "<=>" +url_encode(Element("txt_ass").value) + "##";
[2]747                        }
[69]748                        if(trim(Element("txt_body").value) != ""){
[3802]749                                fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + "##";
[2]750                        }
[69]751                        if(trim(Element("txt_de").value) != ""){
[3802]752                                fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + "##";
[2]753                        }
[69]754                        if(trim(Element("txt_para").value) != ""){
[3802]755                                fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + "##";
[2]756                        }
[69]757                        if(trim(Element("txt_cc").value) != ""){
[3802]758                                fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + "##";
[2]759                        }
[3711]760                        if (trim(Element("since_date").value) != ""){
761                            if (validate_date(Element("since_date").value))
762                            {
[3802]763                                fields += "SINCE " + "<=>" + url_encode(Element("since_date").value) + "##";
[3711]764                            }
765                            else
766                                {
767                                    alert(get_lang('Invalid date on field %1'), get_lang('Since Date'));
768                                    return false;
769                                }
770                        }
771                        if (trim(Element("before_date").value) != ""){
772                            if (validate_date(Element("before_date").value))
773                            {
[3802]774                                fields += "BEFORE " + "<=>" + url_encode(Element("before_date").value) + "##";
[3711]775                            }
776                            else
777                                {
778                                    alert(get_lang('Invalid date on field %1'), get_lang('Before Date'));
779                                    return false;
780                                }
781                        }
782                        if(trim(Element("on_date").value) != ""){
783                            if (validate_date(Element("on_date").value))
784                            {
[3802]785                                fields += "ON " + "<=>" + url_encode(Element("on_date").value) + "##";
[3711]786                            }
787                            else
788                                {
789                                    alert(get_lang('Invalid date on field %1'), get_lang('On Date'));
790                                    return false;
791                                }
[1622]792
[3711]793                        }
794                        if(trim(Element("flagged").options[Element("flagged").selectedIndex].value) != ""){
795                            if (Element("flagged").options[Element("flagged").selectedIndex].value == "FLAGGED"){
796                                fields += "FLAGGED##";
797                            }
798                            else {
799                                fields += "UNFLAGGED##";
800                            }
801                        }
802                        if(trim(Element("seen").options[Element("seen").selectedIndex].value) != ""){
803                            if (Element("seen").options[Element("seen").selectedIndex].value == "SEEN"){
804                                fields += "SEEN##";
805                            }
806                            else {
807                                fields += "UNSEEN##";
808                            }
809                        }
810                        if(trim(Element("answered").options[Element("answered").selectedIndex].value) != ""){
811                            //switch (Element("answered").options[Element("answered").selectedIndex].value){
812                            //    case "FORWARDED":
813                            //        fields += "ANSWERED##DRAFT##";
814                            //        break;
815                            //    case "ANSWERED":
816                            //        fields += "ANSWERED##UNDRAFT";
817                            //        break;
818                            //    case "UNFORWARDED":
819                            //        fields += "UNDRAFT##";
820                            //    case "UNANSWERED":
821                            //        fields += "UNANSWERED##";
822                            //}
823                            if (Element("answered").options[Element("answered").selectedIndex].value == "ANSWERED"){
824                                fields += "ANSWERED##";
825                            }
826                            else {
827                                fields += "UNANSWERED##";
828                            }
829                        }
830                        if(trim(Element("recent").options[Element("recent").selectedIndex].value) != ""){
831                            if (Element("answered").options[Element("answered").selectedIndex].value == "RECENT"){
832                                fields += "RECENT##";
833                            }
834                            else {
835                                fields += "OLD##";
836                            }
837                        }
838                        if(value) {
[3802]839                                fields = "##ALL " +  "<=>" +url_encode(value) + "##";
[2]840                        }
[69]841
[3711]842                if(fields == "##"){
843                        alert(get_lang("Define some search parameters!"));
844                        return false;
845                }
846                var local_folders = new Array();
847                var temp;
848
849                if(Element("check_all_msg").checked){
850                        this.all_mailboxes();
851                        var nm_box = new Array;
852                        for(var i=0; i < EsearchE.all_boxes.length; i++){
853                                nm_box[i] = EsearchE.all_boxes[i] + fields;
854                        }
855                        if (preferences.use_local_messages == 1) {
856                                temp = expresso_local_messages.list_local_folders();
857                                for (var x in temp) {
858                                        local_folders.push(temp[x][0]);
859                                }
860                        }
861                }else{
862                        var nm_box = new Array;
863                        var sel_combo = Element("sel_search_nm_box1");
864                        if( sel_combo.options.length <= 0){
865                                alert(get_lang("Define the boxes to search!"));
[2]866                                return false;
867                        }
[3380]868
[3711]869                        for(var i=0; i < sel_combo.options.length; i++){
870                                sel_combo.options[i].selected = true;
[2]871                        }
[3711]872                        for(var i=0; i < sel_combo.options.length; i++){
873                                if(sel_combo.options[i].selected == true){
874                                        if(!proxy_mensagens.is_local_folder(sel_combo.options[i].value))
875                                                nm_box[nm_box.length] = sel_combo.options[i].value + fields;
876                                        else
877                                                local_folders.push(sel_combo.options[i].value.substr(6));
[2]878                                }
879                        }
[3711]880                }
881                var handler = function(data){
[3802]882                        if (data == "none")
883                                alert(get_lang('no results found'));
884                        else
885                                EsearchE.mount_result(data,'SORTDATE');
[3711]886
887                }
888                var args   = "$this.imap_functions.search_msg";
[3802]889                this.condition = nm_box;
890                var params = "condition=" + nm_box+
891                        "&page=0"+
892                        "&sort_type=SORTDATE";
893                this.page = 0;
[3711]894                if(expresso_offline)
895                        handler('none');
896                else
897                        cExecute(args,handler,params);
[2]898        }
899        // clean;
900        searchE.prototype.func_clean = function(){
901                // Limpa os campos;
[3380]902                for(var i=0; i < this.txtfields.length; i++){
903                        if(Element(this.txtfields[i]) != null){Element(this.txtfields[i]).value = "";}
904                }
[1622]905
[3380]906                for(i = 0; i < this.selectFields.length; i++)
[1622]907                {
[3380]908                    if (Element(this.selectFields[i]))
909                    {
910                        Element(this.selectFields[i]).selectedIndex = 0;
911                    }
[1622]912                }
[2]913            if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;}
914
915            EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
[75]916                EsearchE.del_mailboxes();
[69]917        }
[2]918
919        // close
920        searchE.prototype.func_close = function(type){
921                var _this = this;
922                _this.name_box_search = "";
923                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
924                _this.type = type;
925                _this.searchW['window_search'].close();
926        }
927        // Monta a janela em tela;
928        searchE.prototype.showWindow = function(div){
929                if(!this.searchW[div.id]) {
[1622]930                        div.style.width = "804px";
931                        div.style.height = "440px";
[2]932                        div.style.visibility = "hidden";
933                        div.style.position = "absolute";
[832]934                        div.style.zIndex = "10003";
[128]935                        var title = ":: "+ get_lang("Search")+" ::";
[2]936                        var wHeight = div.offsetHeight + "px";
937                        var wWidth =  div.offsetWidth   + "px";
[832]938
939                        win = new dJSWin({
[2]940                                id: 'ccList'+div.id,
941                                content_id: div.id,
942                                width: wWidth,
943                                height: wHeight,
944                                title_color: '#3978d6',
945                                bg_color: '#eee',
[832]946                                title: title,
[2]947                                title_text_color: 'white',
948                                button_y_img: '../phpgwapi/images/win_min.gif',
949                                button_x_img: '../phpgwapi/images/winclose.gif',
[3380]950                                border: true});
[2]951                        this.searchW[div.id] = win;
952                        win.draw();
953                }else{
954                        var _this = this;
955                        win = this.searchW[div.id];
956                        if((_this.type == "close" && win.state == 0) || win.state == 2){EsearchE.func_clean();}
957                        win.draw();
958                }
959                win.open();     
960        }
[3380]961
[689]962        searchE.prototype.aux_local_folder_display = function(folder) {
[1121]963                if(!expresso_offline)
964                        return "(Local) " + lang_folder(folder.substr(6));
965                else
966                        return lang_folder(folder.substr(6));
[689]967        }
[3380]968
[2]969// Cria o objeto
970        var EsearchE;
[569]971        EsearchE = new searchE();
Note: See TracBrowser for help on using the repository browser.