=== modified file 'dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/scripts/filters.js' --- dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/scripts/filters.js 2014-04-02 06:12:40 +0000 +++ dhis-2/dhis-web/dhis-web-event-capture/src/main/webapp/dhis-web-event-capture/scripts/filters.js 2014-04-02 08:26:45 +0000 @@ -6,36 +6,54 @@ .filter('gridFilter', function($filter){ - return function(data, filterText, filterTypes){ + return function(data, filters, filterTypes){ if(!data ){ return; } - if(!filterText){ + if(!filters){ return data; } else{ - var dateFilter = {}, nonDateFilter = {}, filteredData = data; + var dateFilter = {}, + textFilter = {}, + filteredData = data; - for(var key in filterText){ + for(var key in filters){ if(filterTypes[key] === 'date'){ - if( filterText[key].start || filterText[key].end){ - dateFilter[key] = filterText[key]; + if(filters[key].start || filters[key].end){ + dateFilter[key] = filters[key]; } } + else if(filterTypes[key] === 'date'){ + + } else{ - nonDateFilter[key] = filterText[key]; + textFilter[key] = filters[key]; } - } - - filteredData = $filter('filter')(filteredData, nonDateFilter); + } + + filteredData = $filter('filter')(filteredData, textFilter); + + filteredData = $filter('filter')(filteredData, dateFilter, dateComparator); return filteredData; } - }; + }; + + function dateComparator(data,filter){ + var start = moment(filter.start, 'YYYY-MM-DD'); + var end = moment(filter.end, 'YYYY-MM-DD'); + var date = moment(data, 'YYYY-MM-DD'); + + if(filter.start && filter.end){ + return ( Date.parse(date) <= Date.parse(end) ) && (Date.parse(date) >= Date.parse(start)); + } + return ( Date.parse(date) <= Date.parse(end) ) || (Date.parse(date) >= Date.parse(start)); + } }) .filter('paginate', function(Paginator) {