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

Revision 5539, 22.6 KB checked in by airton, 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/*
203DataLayer.listen( "filter", function( status ){
204 
205    DataLayer.render( BASE_PATH + 'modules/filters/filter-list.ejs', 'filter:detail', reraster );
206
207});
208*/
209
210
211var BASE_PATH = '../prototype/';
212
213DataLayer.basePath = BASE_PATH + "REST.php?q=";
214DataLayer.dispatchPath = BASE_PATH;
215
216var selectedMessages = {};
217var allMessages = false;
218//list_container = container.find(".rule-list-container");
219/*
220var raster = function( html ){
221    container = $('body.expressomail-module-container').append( html ).find(".expresso-window-container");
222        list_container = container.find(".rule-list-container");
223        details_container = container.find(".rule-details-container");
224        vacation_container = container.find(".vacation-details-container");
225        form = container.find("form");
226   
227    criterias = details_container.find( 'fieldset input[name="criteriaType[]"]' );
228        actions = details_container.find( 'fieldset input[name="actionType[]"]' );
229        nameObj = details_container.find( 'input[name="name"]' );
230        isExact = details_container.find( 'input[name="isExact"]' );
231    formatter();
232    container = container.dialog({
233            width:700,
234            modal: true,
235            closeOnEscape:true,
236            close:function(event, ui) {
237                    event.stopPropagation();
238                    list_container.removeClass('hidden');
239                    details_container.addClass('hidden');
240                    vacation_container.addClass('hidden');
241            },
242                open: function () {
243                        $(".ui-dialog .ui-dialog-titlebar")
244                        .append('<a href="#" class="ui-dialog-titlebar-minimize ui-corner-all" role="button"><span class="ui-icon ui-icon-minusthick">minimize</span></a>')
245                        .find('.ui-dialog-titlebar-minimize').click(function() {
246                                $(".ui-dialog-buttonpane, .ui-dialog-content").toggle();
247                                $(".ui-icon-minusthick, .ui-icon-newwin").toggleClass('ui-icon-minusthick').toggleClass('ui-icon-newwin');
248                        });
249                },
250            autoOpen: false
251    });
252    details_container.accordion({autoHeight: false});
253   
254    DataLayer.render( BASE_PATH + 'api/templates/folderselect.ejs', 'folder:select', function( html ){
255          details_container.find(".select-folderlist").append( html );
256    });
257
258    container.find(".button").button()
259   
260    .filter(".menu-filters > .button")
261
262    .click(function(){
263
264        container.dialog( 'close' );
265
266    })
267   
268    .filter(".cancel")
269   
270    .click(function(){
271
272        DataLayer.rollback( 'filter' );
273        return( false );
274
275    })
276   
277    .end().filter(".submit")
278   
279    .click(function(){
280
281        DataLayer.commit( 'filter' );
282        return( false );
283
284    });
285    details_container.find( ".menu-container" )
286
287        .find(".button.cancel").click(function(event){
288
289                details_container.accordion('activate',0);
290
291                showGridButton.removeClass('hidden');
292                grid.addClass('hidden').jqGrid('GridDestroy');
293         
294                list_container.removeClass('hidden');
295                details_container.addClass('hidden');
296
297                return( false );
298
299        }).end()
300        .find(".button.submit").click(function(event){
301
302                $(this).submit();
303
304                details_container.accordion('activate',0);
305
306                showGridButton.removeClass('hidden');
307                grid.addClass('hidden').jqGrid('GridDestroy');
308
309                list_container.removeClass('hidden');
310                details_container.addClass('hidden');
311
312                return( false );
313
314        }).end()
315        .find(".button.back").click(function(event){
316
317                details_container.accordion('activate',0);
318
319                return( false );
320
321        }).end()
322        .find(".button.forth").click(function(event){
323
324                details_container.accordion('activate',1);
325
326                return( false );
327
328        }).end()
329
330    //$( ".expresso-window-container .rule-details-container" ).accordion();
331    // var removeURL = new RegExp("^*.#");
332
333    // ------------------------------------------------------------
334    // ------------------------------------------------------------
335
336    //jqgrid
337    .end().find(".fields-search-messages .button.search")
338
339    .click(function(){
340
341                  var rule = DataLayer.form( form );
342                 
343                  showGridButton = $(this).parent();
344
345                  var connect = rule.isExact ? "AND" : "OR";
346
347                  var filter = $.map( rule.criteria, function( criteria, i ){
348
349                          if( i === 0 )
350                              return {"0": criteria.field, "1": criteria.operator, "2": criteria.value};
351                          else
352                              return {"0": connect,  "1": criteria.field, "2": criteria.operator, "3": criteria.value};
353                  });
354
355                  $.ajax( { 
356                            url: DataLayer.basePath + 'folder/INBOX/message&' +  $.param( {"filter": filter} ),
357
358                            dataType: 'json',
359
360                            success: function(data){
361                             
362                                  allMessages = data;
363
364                                  grid = showGridButton.addClass('hidden')
365                                  .siblings(".fields-search-messages-grid, .fields-search-messages-grid-pager")
366                                  .removeClass('hidden').filter(".fields-search-messages-grid").jqGrid({
367
368                                          url: DataLayer.basePath + 'folder/INBOX/message&' +  $.param( {"filter": [ "msgNumber", "IN", data ]} ),
369                                          datatype: "json",
370                                          mtype: 'GET',
371                                          colNames:['#', ' ', 'De', 'Assunto', 'Data', 'Tamanho'],
372                                          colModel:[
373                                                  {name:'msg_number',index:'msg_number', width:45, hidden:true, sortable:false},
374                                                  {name:'flags',index:'msg_number', width:40, sortable:false, formatter:flags2Class},
375                                                  {name:'from.name',index:'msg_number', width:130, sortable:false},
376                                                  {name:'subject',index:'subject', width:250, sortable:false},
377                                                  {name:'timestamp',index:'timestamp', width:65, align:"center", sortable:false, formatter:date2Time},
378                                                  {name:'size',index:'size', width:50, align:"right", sortable:false, formatter:bytes2Size}
379                                          ],
380                                          jsonReader : {
381                                                    root:"rows",
382                                                    page: "page",
383                                                    total: "total",
384                                                    records: "records",
385                                                    repeatitems: false,
386                                                    id: "0"
387                                          },
388                                          rowNum:10,
389                                          rowList:[10,25,50],
390                                          pager: '#fields-search-messages-grid-pager',
391                                          sortname: 'id',
392                                          viewrecords: true,
393                                          sortorder: "desc",
394                                          multiselect: true,
395                                          autowidth: true,
396                                          height:40,
397                                          loadComplete: function(data) {
398                      //                                // aplica o contador
399                      //                                jQuery('.timable').each(function (i) {
400                      //                                        jQuery(this).countdown({
401                      //                                                since: new Date(parseInt(this.title)),
402                      //                                                significant: 1,
403                      //                                                layout: 'h&aacute; {d<}{dn} {dl} {d>}{h<}{hn} {hl} {h>}{m<}{mn} {ml} {m>}{s<}{sn} {sl}{s>}',
404                      //                                                description: ' atr&aacute;s'
405                      //                                        });
406                      //                                });
407                                          },
408                                          onSelectRow: function (id, selected) {
409
410                                              if( selected )
411                                                  selectedMessages[ id ] = true;
412                                              else
413                                                  delete selectedMessages[ id ];
414
415                                          },
416                                          caption: 'Mensagens que atendem aos crit&eacute;rios'
417                                  });
418                            }
419                  } );
420
421                 
422    });
423    vacation_container.find( ".menu-container" )
424        .find(".button.back").click(function(event){
425
426                list_container.removeClass('hidden');
427                vacation_container.addClass('hidden');
428
429                return( false );
430
431        }).end()
432        .find(".button.submit").click(function(event){
433
434                $(this).submit();
435         
436                list_container.removeClass('hidden');
437                vacation_container.addClass('hidden');
438                return( false );
439        });
440}
441
442var reraster = function( html ){
443
444        //$(".rule-list-container").next().addClass("hidden");
445       
446        list_container.find( '.ui-widget' ).remove();
447
448        list_container.html( html ).find(".button").button();
449 
450        formatter();
451}
452
453var formatter = function(){
454
455    checkBoxes = container.find(".rule-list").selectable({
456                selecting: function(event, ui) {
457                        $(ui.selecting).find(':checkbox').attr('checked', true);
458                },
459                unselecting: function(event, ui) {
460                        $(ui.unselecting).find(':checkbox').attr('checked', false);
461                }
462    })
463    .find(':checkbox').change(function () {
464
465//      if ($(this).attr("checked"))
466//          $(this).parents('.rule').addClass('ui-selected');
467//      else
468            $(this).parents('.rule').toggleClass('ui-selected');
469
470    });
471
472    list_container.children()
473
474    .filter( ".fields-add" )
475
476        .find(".button.add").click(function(){
477
478                list_container.addClass('hidden');
479                details_container.removeClass('hidden');
480                form.get(0).reset();
481
482                return( false );
483        })
484        .filter(".vacation").click(function(){
485
486                details_container.addClass('hidden');
487                vacation_container.removeClass('hidden');
488                form.get(0).reset();
489
490                return( false );
491
492        }).end().end()
493
494    .end().filter( ".fields-selected-itens" )
495
496    .find(".button.enable").click(function(){
497
498            var values = [];
499     
500            checkBoxes.filter(':checked').parents(".rule-list").find('.title').each(function(){
501
502                values[ values.length ] = { id: this.innerHTML, enabled: true };
503
504            });
505
506            DataLayer.put( 'filter', values );
507
508    }).end()
509
510    .find(".button.disable").click(function(){
511     
512            var values = [];
513     
514            checkBoxes.filter(':checked').parents(".rule-list").find('.title').each(function(){
515
516                values[ values.length ] = { id: this.innerHTML, enabled: false };
517
518            });
519
520            DataLayer.put( 'filter', values );
521
522    }).end()
523
524    .find(".button.delete").click(function(){
525     
526            checkBoxes.filter(':checked').parents(".rule-list").find('.title').each(function(i, o){
527
528                 DataLayer.remove( 'filter', o.html() );
529
530            });
531
532    }).end()
533   
534
535    .end().find( ".menu-control .button" ).filter(".update").button({
536                icons: {
537                        primary: "ui-icon-pencil"
538                },
539                text: false
540        }).end()
541
542        .filter(".enable, .disable").click( function(event) {
543
544                var id = $(this).parents("li.rule").find('.title').html();
545
546                DataLayer.put( 'filter', id, { enabled: !$(this).is('.enable') } );
547        })
548
549        .filter(".enable").button({
550                icons: {
551                        primary: "ui-icon-circle-check"
552                },
553                text: false
554        }).end()
555
556        .filter(".disable").button({
557                icons: {
558                        primary: "ui-icon-circle-close"
559                },
560                text: false
561        }).end().end()
562       
563        .filter(".close").button({
564                icons: {
565                        primary: "ui-icon-close"
566                },
567                text: false
568        }).click( function(event) {
569                $(event.target)
570                .parents("li.rule").find('.title')
571                .each( function(){
572
573                    DataLayer.remove( 'filter', $(this).html() );
574
575                }).end().remove();
576        }).end()
577       
578        .filter(".update").click(function(event){
579
580                var id = ( event.target.href || event.target.parentNode.href ).replace( new RegExp("^.*#"), "" );
581
582                var data = DataLayer.get( 'filter', id );
583
584                if( id === "vacation" )
585                {
586                    $('[name="vacation"]').val( data.actions[0].parameter );
587
588                    list_container.addClass('hidden');
589                    vacation_container.removeClass('hidden');
590                    return;
591                }
592
593                showDetails( data );
594
595                list_container.addClass('hidden');
596                details_container.removeClass('hidden');
597        }).end()
598       
599        .removeClass('ui-button-icon-only');
600};
601
602//DataLayer.render(BASE_PATH + 'modules/filters/filters.ejs', {}, 'filter:detail', reraster, true);
603//var vamo_ver = DataLayer.render(BASE_PATH + 'modules/filters/filters.ejs', {});
604//raster(vamo_ver);
605var v = DataLayer.render( BASE_PATH + 'modules/filters/filters.ejs', {});
606raster(v);
607                details_container.accordion('activate',0);
608
609                showGridButton.removeClass('hidden');
610                grid.addClass('hidden').jqGrid('GridDestroy');
611         
612                list_container.removeClass('hidden');
613                details_container.addClass('hidden');
614               
615DataLayer.render( BASE_PATH + 'modules/filters/filter-list.ejs', 'filter:detail', reraster );
616//var v = DataLayer.get("filter:detail");
617// ------------------------------------------------------------
618// ------------------------------------------------------------   
619*/
620function list_filters(html){
621        if(html){
622                if( ! $(".filters-windows").length )
623                        container = $('body.expressomail-module-container').append("<div class='filters-windows'></div>").find(".filters-windows").html( html ).find(".expresso-window-container");
624                list_container = $('body.expressomail-module-container').find(".rule-list-container");
625        }
626        list_container = $(".expresso-window-filters").dialog({
627            width:700,
628            modal: true,
629                resizable: false,
630            closeOnEscape:true,
631            close:function(event, ui) {
632                    event.stopPropagation();
633                        if($(".cancel").length)
634                                $(".cancel").trigger('click');
635                    //DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
636            },
637                open: function () {
638                        $(".ui-dialog .ui-dialog-titlebar")
639                        .append('<a href="#" class="ui-dialog-titlebar-minimize ui-corner-all" role="button"><span class="ui-icon ui-icon-minusthick">minimize</span></a>')
640                        .find('.ui-dialog-titlebar-minimize').click(function() {
641                                $(".ui-dialog-buttonpane, .ui-dialog-content").toggle();
642                                $(".ui-icon-minusthick, .ui-icon-newwin").toggleClass('ui-icon-minusthick').toggleClass('ui-icon-newwin');
643                        });
644                },
645            autoOpen: false,
646                buttons: [{
647                        text : "Fechar",
648                        click : function() {
649                                $( this ).dialog( "close" );
650                        }
651                }]
652    });
653        $(".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>");
654        $(".dialog-head-buttonpane").css("padding", "5px").
655        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();
656       
657        $(".ui-dialog-buttonpane.ui-widget-content").css("background-color", "#E0EEEE");
658        var zu = DataLayer.render( BASE_PATH + 'modules/filters/filter-list.ejs', DataLayer.get("filter:detail", true));
659//      DataLayer.render( BASE_PATH + 'modules/filters/filter-list.ejs', 'filter:detail',function(html){
660                list_container.html(zu).find(".button").button();
661               
662                list_container.find(".rule-list").selectable({
663                        selecting: function(event, ui) {
664                                $(ui.selecting).find(':checkbox').attr('checked', true);
665                        },
666                        unselecting: function(event, ui) {
667                                $(ui.unselecting).find(':checkbox').attr('checked', false);
668                        }
669                });
670               
671                $( ".menu-control .button" ).filter(".update").button({
672                        icons: {
673                                primary: "ui-icon-pencil"
674                        },
675                        text: false
676                }).click(function(){
677                        var id = $(this).parents("li.rule").find('.title').html();
678                        var filters = DataLayer.get( 'filter', true);
679                        for(var i =0; i < filters.length; i++){
680                                if(filters[i].id == id){
681                                        filters = filters[i];
682                                        break;
683                                }       
684                        }
685                       
686                        DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {},function(html){
687                                var details_container = $(".expresso-window-filters").html(html);
688                                form = container.find("form");
689                                criterias = details_container.find( 'fieldset input[name="criteriaType[]"]' );
690                                actions = details_container.find( 'fieldset input[name="actionType[]"]' );
691                                nameObj = details_container.find( 'input[name="name"]' );
692                                isExact = details_container.find( 'input[name="isExact"]' );
693                                showDetails(filters);
694                                var accord = $(".rule-details-container").accordion({autoHeight: false});
695                                $(".button").button().filter(".forth").click(function(){
696                                        accord.accordion('activate',1);
697                                }).end().filter(".back").click(function(){
698                                        accord.accordion('activate',0);
699                                }).end().filter(".cancel").click(function(){
700                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
701                                }).end().filter(".submit").click(function(){
702                                        if(nameObj)
703                                                nameObj.attr("disabled", "false");
704                                        $(this).submit();
705                                        DataLayer.commit( 'filter' );
706                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
707                                });
708                        });
709                }).end()
710                .filter(".enable").button({
711                        icons: {
712                                primary: "ui-icon-circle-check"
713                        },
714                        text: false
715                }).click(function(){
716                        var id = $(this).parents("li.rule").find('.title').html();
717                        DataLayer.put( 'filter', id, { enabled: "disable"  });
718                        DataLayer.commit("filter");
719                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
720                }).end()
721
722                .filter(".disable").button({
723                        icons: {
724                                primary: "ui-icon-circle-close"
725                        },
726                        text: false
727                }).click(function(){
728                        var id = $(this).parents("li.rule").find('.title').html();
729                        DataLayer.put( 'filter', id, { enabled: "enabled" });
730                        DataLayer.commit("filter");
731                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
732                }).end()
733               
734                .filter(".close").button({
735                        icons: {
736                                primary: "ui-icon-close"
737                        },
738                        text: false
739                }).click(function(){
740                        $(event.target)
741                        .parents("li.rule").find('.title')
742                        .each( function(){
743                                DataLayer.remove( 'filter', $(this).html() );
744                        });
745                        DataLayer.commit("filter");
746                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
747                }).end().removeClass("ui-button-icon-only");
748               
749                $(".button.add:first").click(function(){
750                        $(".dialog-head-buttonpane").addClass("hidden");
751                        DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {},function(html){
752                                $(".expresso-window-filters").html(html);
753                                var accord = $(".rule-details-container").accordion({autoHeight: false});
754                                $(".button").button().filter(".forth").click(function(){
755                                        accord.accordion('activate',1);
756                                }).end().filter(".back").click(function(){
757                                        accord.accordion('activate',0);
758                                }).end().filter(".cancel").click(function(){
759                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
760                                }).end().filter(".submit").click(function(){
761                                        $(this).submit();
762                                        DataLayer.commit( 'filter' );
763                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
764                                });
765                                //$(".rule-edit-container").html(html);
766                        });     
767                });
768                $(".button.add.vacation").click(function(){
769                        $(".dialog-head-buttonpane").addClass("hidden");
770                        DataLayer.render( BASE_PATH + 'modules/filters/edit-filter.ejs', {},function(html){
771                                $(".expresso-window-filters").html(html);
772                                $(".vacation-details-container").removeClass("hidden");
773                                $(".rule-details-container").addClass("hidden");
774                                $(".button").button().filter(".back").click(function(){
775                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
776                                }).end().filter(".submit").click(function(){
777                                        $(this).submit();
778                                        DataLayer.commit( 'filter' );
779                                        DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
780                                });
781                                //$('[name="vacation"]').elastic().unbind('blur');
782                                //$(".back").click(function(){
783                                //$(".rule-edit-container").html(html);
784                        });     
785                });
786//      });
787}
788
789DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {},list_filters);
Note: See TracBrowser for help on using the repository browser.