source: trunk/prototype/modules/filters/filters.js @ 5543

Revision 5543, 22.1 KB checked in by gustavo, 12 years ago (diff)

Ticket #2088 - Melhorias no editor de regras de filtro de mensagens do Expresso

Line 
1 
2bytes2Size = function(bytes) {
3        var sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
4        if (bytes === 0) return 'n/a';
5        var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
6        var size = (i<2) ? Math.round((bytes / Math.pow(1024, i))) : Math.round((bytes / Math.pow(1024, i)) * 100)/100;
7        return  size + ' ' + sizes[i];
8};
9
10flags2Class = function(cellvalue) {
11        var flags_enum = cellvalue.split(',');
12        var classes = '';
13        for (var i=0; i<flags_enum.length; i++){
14                classes += '<span class="icon-'+flags_enum[i].toLowerCase()+'"> </span>';
15        }
16        return classes;
17};
18
19date2Time = function (timestamp) {
20        var date = new Date();
21        if ((date.getTime() - timestamp) < (24*60*60*1000)) {
22                return '<span class="timable" title="'+timestamp+'"> </span>';
23        } else {
24                date = new Date(timestamp);
25                var b = date.toISOString().split("T")[0].split("-");
26                var c = b[2] + "/" + b[1] + "/" + b[0];
27                return '<span class="datable">' + c + '</span>';
28        }
29};
30
31unorphanize = function(root, element) {
32        var ok = false;
33        for (var i=0; i<root.length; i++) {
34                if (root[i].id == element.parentFolder) {
35                        element.children = [];
36                        root[i].children.push(element);
37                        return true;
38                } else if (ok = unorphanize(root[i].children, element)) {
39                        break;
40                }
41        }
42
43        return ok;
44};
45
46keys = function( object ){
47 
48  var array = [];
49 
50  for( var key in object )
51       array[ array.length ] = key;
52 
53  return( array );
54
55}
56
57showDetails = function( filter ){
58 
59    form.get(0).reset();
60
61    nameObj.val( filter.name );
62        nameObj.attr("disabled", "disabled");
63    for( var i = 0; i < filter.criteria.length; i++ ){
64
65        criterias.filter( '[value="' + filter.criteria[i].field + '"]' )
66        .siblings( '[name="criteriaOperator[]"]' ).val( filter.criteria[i].operator ).end()
67        .siblings( '[name="criteriaValue[]"]' ).val( filter.criteria[i].value );
68
69    }
70
71       
72    for( var i = 0; i < filter.actions.length; i++ ){
73                actions.filter( '[value="' + filter.actions[i].type + '"]' ).attr("checked", "True");
74                actions.filter( '[value="' + filter.actions[i].type + '"]' ).val( filter.actions[i].type )
75                .siblings( '[name="actionParameter[]"]' ).val( filter.actions[i].parameter );
76                if(filter.actions[i].type == "redirect")
77                        actions.siblings('[name="addressRedirect"]').val(filter.actions[i].parameter);
78                if(filter.actions[i].type == "reject") 
79                        actions.siblings('[name="messageReject"]').val(filter.actions[i].parameter);
80    }
81 
82    //isExact.val( filter.isExact != "false"? "and" : "or" );
83        isExact.filter('[value="'+(filter.isExact != "false"? "and" : "or")+'"]').attr("checked", "True");
84}
85
86/* --- ------ --- */
87
88DataLayer.codec( "filter", "detail", {
89 
90  decoder: function( form ){
91      if( form.vacation )
92          return {
93
94                criteria: [{ value: "vacation", operator: "", field: "vacation" }],
95                actions: [{ parameter: form.vacation, type: "vacation" }],
96                id: "vacation",
97                name: "vacation",
98                isExact: false
99
100      }
101
102      var haha = {
103                //id: form.name,
104                name: form.name ? form.name : nameObj.val(),
105                isExact: ( form.isExact === "and" ),
106                criteria: $.map( form.criteriaOperator || [], function( criteriaOperator, i ){ 
107                        return (!form.criteriaValue[i]) ? null:
108                                {value:  form.criteriaValue[i],
109                                  operator: criteriaOperator,
110                                  field:  form.criteriaType[i]};
111
112                }),
113                actions: $.map( form.actionType || [], function( type, i ){
114                        var the_parameter = form.actionParameter[i];
115                       
116                        !the_parameter ? the_parameter = form.actionParameter[i+1] : "";
117                        if (type == 'fileinto') {
118                                the_parameter = form.valueFileInto;
119                        }
120                        if (type == 'reject') {
121                                the_parameter = form.messageReject;
122                        }
123                        if (type == 'fileintoInbox') {
124                                type = 'fileinto';
125                                the_parameter = 'INBOX';
126                        }
127                        if (type == 'fileintoTrash') {
128                                type = 'fileinto';
129                                the_parameter = 'INBOX/Trash';
130                        }
131                        if (type == 'redirect') {
132                                the_parameter = form.addressRedirect;
133                        }
134                        if (type == 'setflag') {
135                                the_parameter = form.valueSetFlag;
136                        }
137                       
138                        return (!type) ? null:
139                              {parameter: the_parameter, type: type };
140
141                }),
142                enabled : "enabled",
143                applyMessages: allMessages? !$.isEmptyObject( selectedMessages ) ?
144                keys( selectedMessages ) : allMessages : ""
145               
146      };
147          return haha;
148      //        'vacation' => ""
149  },
150 
151  encoder: function( filters ){
152       
153        var rules = [];
154
155        for( var id in filters )
156              rules[ rules.length ] = filters[id];
157
158        return { rules: rules };
159
160  }
161});
162
163DataLayer.codec( "folder", "select", {
164 
165  decoder:function(){
166
167     
168   
169  },
170  encoder:function( data ){
171 
172      var tree1 = [], tree2 = [], tree3 = [];
173
174      for (var i=0; i<data.length; i++) {
175
176              if (/^INBOX/.test(data[i].id)) {
177                      if (!unorphanize(tree1, data[i])) {
178                              data[i].children = [];
179                              tree1.push(data[i]);
180                      }
181              }
182              else if (/^user/.test(data[i].id)) {
183                      if (!unorphanize(tree2, data[i])) {
184                              data[i].children = [];
185                              tree2.push(data[i]);
186                      }
187              }
188              else if (/^local_messages/.test(data[i].id)) {
189                      if (!unorphanize(tree3, data[i])) {
190                              data[i].children = [];
191                              tree3.push(data[i]);
192                      }
193              }
194
195      }
196     
197      return {folders: [ tree1, tree2, tree3 ]};
198
199  }
200
201});
202
203var BASE_PATH = '../prototype/';
204
205DataLayer.basePath = BASE_PATH + "REST.php?q=";
206DataLayer.dispatchPath = BASE_PATH;
207
208var selectedMessages = {};
209var allMessages = false;
210//list_container = container.find(".rule-list-container");
211/*
212var raster = function( html ){
213    container = $('body.expressomail-module-container').append( html ).find(".expresso-window-container");
214        list_container = container.find(".rule-list-container");
215        details_container = container.find(".rule-details-container");
216        vacation_container = container.find(".vacation-details-container");
217        form = container.find("form");
218    criterias = details_container.find( 'fieldset input[name="criteriaType[]"]' );
219        actions = details_container.find( 'fieldset input[name="actionType[]"]' );
220        nameObj = details_container.find( 'input[name="name"]' );
221        isExact = details_container.find( 'input[name="isExact"]' );
222    formatter();
223    container = container.dialog({
224            width:700,
225            modal: true,
226            closeOnEscape:true,
227            close:function(event, ui) {
228                    event.stopPropagation();
229                    list_container.removeClass('hidden');
230                    details_container.addClass('hidden');
231                    vacation_container.addClass('hidden');
232            },
233                open: function () {
234                        $(".ui-dialog .ui-dialog-titlebar")
235                        .append('<a href="#" class="ui-dialog-titlebar-minimize ui-corner-all" role="button"><span class="ui-icon ui-icon-minusthick">minimize</span></a>')
236                        .find('.ui-dialog-titlebar-minimize').click(function() {
237                                $(".ui-dialog-buttonpane, .ui-dialog-content").toggle();
238                                $(".ui-icon-minusthick, .ui-icon-newwin").toggleClass('ui-icon-minusthick').toggleClass('ui-icon-newwin');
239                        });
240                },
241            autoOpen: false
242    });
243    details_container.accordion({autoHeight: false});
244   
245    DataLayer.render( BASE_PATH + 'api/templates/folderselect.ejs', 'folder:select', function( html ){
246          details_container.find(".select-folderlist").append( html );
247    });
248
249
250    container.find(".button").button()
251   
252    .filter(".menu-filters > .button")
253
254    .click(function(){
255
256        container.dialog( 'close' );
257
258    })
259   
260    .filter(".cancel")
261   
262    .click(function(){
263
264        DataLayer.rollback( 'filter' );
265        return( false );
266
267    })
268   
269    .end().filter(".submit")
270   
271    .click(function(){
272
273        DataLayer.commit( 'filter' );
274        return( false );
275
276    });
277
278    details_container.find( ".menu-container" )
279
280        .find(".button.cancel").click(function(event){
281
282                details_container.accordion('activate',0);
283
284                showGridButton.removeClass('hidden');
285                grid.addClass('hidden').jqGrid('GridDestroy');
286         
287                list_container.removeClass('hidden');
288                details_container.addClass('hidden');
289
290                return( false );
291
292        }).end()
293        .find(".button.submit").click(function(event){
294
295                $(this).submit();
296
297                details_container.accordion('activate',0);
298
299                showGridButton.removeClass('hidden');
300                grid.addClass('hidden').jqGrid('GridDestroy');
301
302                list_container.removeClass('hidden');
303                details_container.addClass('hidden');
304
305                return( false );
306
307        }).end()
308        .find(".button.back").click(function(event){
309
310                details_container.accordion('activate',0);
311
312                return( false );
313
314        }).end()
315        .find(".button.forth").click(function(event){
316
317                details_container.accordion('activate',1);
318
319                return( false );
320
321        }).end()
322
323    //$( ".expresso-window-container .rule-details-container" ).accordion();
324    // var removeURL = new RegExp("^*.#");
325
326    // ------------------------------------------------------------
327    // ------------------------------------------------------------
328
329    //jqgrid
330    .end().find(".fields-search-messages .button.search")
331
332    .click(function(){
333
334                  var rule = DataLayer.form( form );
335                 
336                  showGridButton = $(this).parent();
337
338                  var connect = rule.isExact ? "AND" : "OR";
339
340                  var filter = $.map( rule.criteria, function( criteria, i ){
341
342                          if( i === 0 )
343                              return {"0": criteria.field, "1": criteria.operator, "2": criteria.value};
344                          else
345                              return {"0": connect,  "1": criteria.field, "2": criteria.operator, "3": criteria.value};
346                  });
347
348                  $.ajax( { 
349                            url: DataLayer.basePath + 'folder/INBOX/message&' +  $.param( {"filter": filter} ),
350
351                            dataType: 'json',
352
353                            success: function(data){
354                             
355                                  allMessages = data;
356
357                                  grid = showGridButton.addClass('hidden')
358                                  .siblings(".fields-search-messages-grid, .fields-search-messages-grid-pager")
359                                  .removeClass('hidden').filter(".fields-search-messages-grid").jqGrid({
360
361                                          url: DataLayer.basePath + 'folder/INBOX/message&' +  $.param( {"filter": [ "msgNumber", "IN", data ]} ),
362                                          datatype: "json",
363                                          mtype: 'GET',
364                                          colNames:['#', ' ', 'De', 'Assunto', 'Data', 'Tamanho'],
365                                          colModel:[
366                                                  {name:'msg_number',index:'msg_number', width:45, hidden:true, sortable:false},
367                                                  {name:'flags',index:'msg_number', width:40, sortable:false, formatter:flags2Class},
368                                                  {name:'from.name',index:'msg_number', width:130, sortable:false},
369                                                  {name:'subject',index:'subject', width:250, sortable:false},
370                                                  {name:'timestamp',index:'timestamp', width:65, align:"center", sortable:false, formatter:date2Time},
371                                                  {name:'size',index:'size', width:50, align:"right", sortable:false, formatter:bytes2Size}
372                                          ],
373                                          jsonReader : {
374                                                    root:"rows",
375                                                    page: "page",
376                                                    total: "total",
377                                                    records: "records",
378                                                    repeatitems: false,
379                                                    id: "0"
380                                          },
381                                          rowNum:10,
382                                          rowList:[10,25,50],
383                                          pager: '#fields-search-messages-grid-pager',
384                                          sortname: 'id',
385                                          viewrecords: true,
386                                          sortorder: "desc",
387                                          multiselect: true,
388                                          autowidth: true,
389                                          height:40,
390                                          loadComplete: function(data) {
391                      //                                // aplica o contador
392                      //                                jQuery('.timable').each(function (i) {
393                      //                                        jQuery(this).countdown({
394                      //                                                since: new Date(parseInt(this.title)),
395                      //                                                significant: 1,
396                      //                                                layout: 'h&aacute; {d<}{dn} {dl} {d>}{h<}{hn} {hl} {h>}{m<}{mn} {ml} {m>}{s<}{sn} {sl}{s>}',
397                      //                                                description: ' atr&aacute;s'
398                      //                                        });
399                      //                                });
400                                          },
401                                          onSelectRow: function (id, selected) {
402
403                                              if( selected )
404                                                  selectedMessages[ id ] = true;
405                                              else
406                                                  delete selectedMessages[ id ];
407
408                                          },
409                                          caption: 'Mensagens que atendem aos crit&eacute;rios'
410                                  });
411                            }
412                  } );
413
414                 
415    });
416
417    vacation_container.find( ".menu-container" )
418        .find(".button.back").click(function(event){
419
420                list_container.removeClass('hidden');
421                vacation_container.addClass('hidden');
422
423                return( false );
424
425        }).end()
426        .find(".button.submit").click(function(event){
427
428                $(this).submit();
429         
430                list_container.removeClass('hidden');
431                vacation_container.addClass('hidden');
432                return( false );
433        });
434
435}
436
437var reraster = function( html ){
438
439        //$(".rule-list-container").next().addClass("hidden");
440       
441        list_container.find( '.ui-widget' ).remove();
442
443        list_container.html( html ).find(".button").button();
444 
445        formatter();
446}
447
448var formatter = function(){
449
450    checkBoxes = container.find(".rule-list").selectable({
451                selecting: function(event, ui) {
452                        $(ui.selecting).find(':checkbox').attr('checked', true);
453                },
454                unselecting: function(event, ui) {
455                        $(ui.unselecting).find(':checkbox').attr('checked', false);
456                }
457    })
458    .find(':checkbox').change(function () {
459
460//      if ($(this).attr("checked"))
461//          $(this).parents('.rule').addClass('ui-selected');
462//      else
463            $(this).parents('.rule').toggleClass('ui-selected');
464
465    });
466
467    list_container.children()
468
469    .filter( ".fields-add" )
470
471        .find(".button.add").click(function(){
472
473                list_container.addClass('hidden');
474                details_container.removeClass('hidden');
475                form.get(0).reset();
476
477                return( false );
478        })
479        .filter(".vacation").click(function(){
480
481                details_container.addClass('hidden');
482                vacation_container.removeClass('hidden');
483                form.get(0).reset();
484
485                return( false );
486
487        }).end().end()
488
489    .end().filter( ".fields-selected-itens" )
490
491    .find(".button.enable").click(function(){
492
493            var values = [];
494     
495            checkBoxes.filter(':checked').parents(".rule-list").find('.title').each(function(){
496
497                values[ values.length ] = { id: this.innerHTML, enabled: true };
498
499            });
500
501            DataLayer.put( 'filter', values );
502
503    }).end()
504
505    .find(".button.disable").click(function(){
506     
507            var values = [];
508     
509            checkBoxes.filter(':checked').parents(".rule-list").find('.title').each(function(){
510
511                values[ values.length ] = { id: this.innerHTML, enabled: false };
512
513            });
514
515            DataLayer.put( 'filter', values );
516
517    }).end()
518
519    .find(".button.delete").click(function(){
520     
521            checkBoxes.filter(':checked').parents(".rule-list").find('.title').each(function(i, o){
522
523                 DataLayer.remove( 'filter', o.html() );
524
525            });
526
527    }).end()
528   
529
530    .end().find( ".menu-control .button" ).filter(".update").button({
531                icons: {
532                        primary: "ui-icon-pencil"
533                },
534                text: false
535        }).end()
536
537        .filter(".enable, .disable").click( function(event) {
538
539                var id = $(this).parents("li.rule").find('.title').html();
540
541                DataLayer.put( 'filter', id, { enabled: !$(this).is('.enable') } );
542        })
543
544        .filter(".enable").button({
545                icons: {
546                        primary: "ui-icon-circle-check"
547                },
548                text: false
549        }).end()
550
551        .filter(".disable").button({
552                icons: {
553                        primary: "ui-icon-circle-close"
554                },
555                text: false
556        }).end().end()
557       
558        .filter(".close").button({
559                icons: {
560                        primary: "ui-icon-close"
561                },
562                text: false
563        }).click( function(event) {
564                $(event.target)
565                .parents("li.rule").find('.title')
566                .each( function(){
567
568                    DataLayer.remove( 'filter', $(this).html() );
569
570                }).end().remove();
571        }).end()
572       
573        .filter(".update").click(function(event){
574
575                var id = ( event.target.href || event.target.parentNode.href ).replace( new RegExp("^.*#"), "" );
576
577                var data = DataLayer.get( 'filter', id );
578
579                if( id === "vacation" )
580                {
581                    $('[name="vacation"]').val( data.actions[0].parameter );
582
583                    list_container.addClass('hidden');
584                    vacation_container.removeClass('hidden');
585                    return;
586                }
587
588                showDetails( data );
589
590                list_container.addClass('hidden');
591                details_container.removeClass('hidden');
592        }).end()
593       
594        .removeClass('ui-button-icon-only');
595};
596// ------------------------------------------------------------
597// ------------------------------------------------------------   
598*/
599function list_filters(html){
600        if(html){
601                if( ! $(".filters-windows").length )
602                        container = $('body.expressomail-module-container').append("<div class='filters-windows'></div>").find(".filters-windows").html( html ).find(".expresso-window-container");
603                list_container = $('body.expressomail-module-container').find(".rule-list-container");
604        }
605        list_container = $(".expresso-window-filters").dialog({
606            width:700,
607            modal: true,
608                resizable: false,
609            closeOnEscape:true,
610            close:function(event, ui) {
611                    event.stopPropagation();
612                        if($(".cancel").length)
613                                $(".cancel").trigger('click');
614                    //DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
615            },
616                open: function () {
617                        $(".ui-dialog .ui-dialog-titlebar")
618                        .append('<a href="#" class="ui-dialog-titlebar-minimize ui-corner-all" role="button"><span class="ui-icon ui-icon-minusthick">minimize</span></a>')
619                        .find('.ui-dialog-titlebar-minimize').click(function() {
620                                $(".ui-dialog-buttonpane, .ui-dialog-content").toggle();
621                                $(".ui-icon-minusthick, .ui-icon-newwin").toggleClass('ui-icon-minusthick').toggleClass('ui-icon-newwin');
622                        });
623                },
624            autoOpen: false,
625                buttons: [{
626                        text : "Fechar",
627                        click : function() {
628                                $( this ).dialog( "close" );
629                        }
630                }]
631    });
632        $(".ui-dialog-titlebar").after("<div class='dialog-head-buttonpane ui-dialog-buttonpane ui-widget-content ui-helper-clearfix' style='background-color: rgb(224, 238, 238); '><div class='ui-dialog-buttonset header-buttonpane'></div></div>");
633        $(".dialog-head-buttonpane").css("padding", "5px").
634        find(".header-buttonpane").html("<a href='#' class='button add' title='Adicionar nova regra'>Nova regra</a><a href='#' class='button add vacation' title='Adicionar regra 'Fora do escritorio''>Fora do escritorio</a>").find(".button").button();
635       
636        $(".ui-dialog-buttonpane.ui-widget-content").css("background-color", "#E0EEEE");
637        var zu = DataLayer.render( BASE_PATH + 'modules/filters/filter-list.ejs', DataLayer.get("filter:detail", true));
638        list_container.html(zu).find(".button").button();
639       
640        list_container.find(".rule-list").selectable({
641                selecting: function(event, ui) {
642                        $(ui.selecting).find(':checkbox').attr('checked', true);
643                },
644                unselecting: function(event, ui) {
645                        $(ui.unselecting).find(':checkbox').attr('checked', false);
646                }
647        });
648       
649        $( ".menu-control .button" ).filter(".update").button({
650                icons: {
651                        primary: "ui-icon-pencil"
652                },
653                text: false
654        }).click(function(){
655                var id = $(this).parents("li.rule").find('.title').html();
656                var filters = DataLayer.get( 'filter', true);
657                for(var i =0; i < filters.length; i++){
658                        if(filters[i].id == id){
659                                filters = filters[i];
660                                break;
661                        }       
662                }
663                DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {folders : DataLayer.get("folder", true)},function(html){
664                        var details_container = $(".expresso-window-filters").html(html);
665                        if(filters.name != "vacation"){
666                                form = container.find("form");
667                                criterias = details_container.find( 'fieldset input[name="criteriaType[]"]' );
668                                actions = details_container.find( 'fieldset input[name="actionType[]"]' );
669                                nameObj = details_container.find( 'input[name="name"]' );
670                                isExact = details_container.find( 'input[name="isExact"]' );
671                                showDetails(filters);
672                                var accord = $(".rule-details-container").accordion({autoHeight: false});
673                                $(".button").button().filter(".forth").click(function(){
674                                        accord.accordion('activate',1);
675                                }).end().filter(".back").click(function(){
676                                        accord.accordion('activate',0);
677                                }).end().filter(".cancel").click(function(){
678                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
679                                }).end().filter(".submit").click(function(){
680                                        if(nameObj)
681                                                nameObj.attr("disabled", "false");
682                                        $(this).submit();
683                                        DataLayer.commit( 'filter' );
684                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
685                                });
686                        }else{
687                                $(".vacation-details-container").removeClass("hidden");
688                                $(".rule-details-container").addClass("hidden");
689                                $(".button").button().filter(".back").click(function(){
690                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
691                                }).end().filter(".submit").click(function(){
692                                        $(this).submit();
693                                        DataLayer.commit( 'filter' );
694                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
695                                });
696                                details_container.find('[name="vacation"]').val(filters.actions[0].parameter);
697                        }
698                });
699        }).end()
700        .filter(".enable").button({
701                icons: {
702                        primary: "ui-icon-circle-check"
703                },
704                text: false
705        }).click(function(){
706                var id = $(this).parents("li.rule").find('.title').html();
707                DataLayer.put( 'filter', id, { enabled: "disable"  });
708                DataLayer.commit("filter");
709                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
710        }).end()
711
712        .filter(".disable").button({
713                icons: {
714                        primary: "ui-icon-circle-close"
715                },
716                text: false
717        }).click(function(){
718                var id = $(this).parents("li.rule").find('.title').html();
719                DataLayer.put( 'filter', id, { enabled: "enabled" });
720                DataLayer.commit("filter");
721                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
722        }).end()
723       
724        .filter(".close").button({
725                icons: {
726                        primary: "ui-icon-close"
727                },
728                text: false
729        }).click(function(){
730                $(event.target)
731                .parents("li.rule").find('.title')
732                .each( function(){
733                        DataLayer.remove( 'filter', $(this).html() );
734                });
735                DataLayer.commit("filter");
736                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
737        }).end().removeClass("ui-button-icon-only");
738       
739        $(".button.add:first").click(function(){
740                $(".dialog-head-buttonpane").addClass("hidden");
741                DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {folders : DataLayer.get("folder", true)},function(html){
742                        $(".expresso-window-filters").html(html);
743                        var accord = $(".rule-details-container").accordion({autoHeight: false});
744                        $(".button").button().filter(".forth").click(function(){
745                                accord.accordion('activate',1);
746                        }).end().filter(".back").click(function(){
747                                accord.accordion('activate',0);
748                        }).end().filter(".cancel").click(function(){
749                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
750                        }).end().filter(".submit").click(function(){
751                                $(this).submit();
752                                DataLayer.commit( 'filter' );
753                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
754                        });
755                        //$(".rule-edit-container").html(html);
756                });     
757        });
758        $(".button.add.vacation").click(function(){
759                $(".dialog-head-buttonpane").addClass("hidden");
760                DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {folders : DataLayer.get("folder", true)},function(html){
761                        $(".expresso-window-filters").html(html);
762                        $(".vacation-details-container").removeClass("hidden");
763                        $(".rule-details-container").addClass("hidden");
764                        $(".button").button().filter(".back").click(function(){
765                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
766                        }).end().filter(".submit").click(function(){
767                                $(this).submit();
768                                DataLayer.commit( 'filter' );
769                                DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
770                        });
771                });     
772        });
773}
774
775DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
Note: See TracBrowser for help on using the repository browser.