=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/periodType.js'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/periodType.js 2012-10-09 11:39:10 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/periodType.js 2012-10-24 10:45:58 +0000
@@ -1,368 +1,406 @@
+// generatePeriods config object: { boolean offset, boolean filterFuturePeriods, boolean reversePeriods }
+
function PeriodType()
-{
- var dateFormat = 'yyyy-MM-dd';
+{
+ var monthNames = ['January', 'February', 'March', 'April', 'May', 'June',
+ 'July', 'August', 'September', 'October', 'November', 'December'],
+
+ format_yyyymmdd = function(date) {
+ var y = date.getFullYear(),
+ m = new String(date.getMonth() + 1),
+ d = new String(date.getDate());
+ m = m.length < 2 ? '0' + m : m;
+ d = d.length < 2 ? '0' + d : d;
+ return y + '-' + m + '-' + d;
+ },
+
+ filterFuturePeriods = function( periods ) {
+ var array = [],
+ now = new Date();
+
+ for ( var i = 0; i < periods.length; i++ )
+ {
+ if ( new Date( periods[i]['startDate'] ) <= now )
+ {
+ array.push(periods[i]);
+ }
+ }
+
+ return array;
+ };
var periodTypes = [];
- periodTypes['Daily'] = new DailyPeriodType( dateFormat );
- periodTypes['Weekly'] = new WeeklyPeriodType( dateFormat );
- periodTypes['Monthly'] = new MonthlyPeriodType( dateFormat );
- periodTypes['BiMonthly'] = new BiMonthlyPeriodType( dateFormat );
- periodTypes['Quarterly'] = new QuarterlyPeriodType( dateFormat );
- periodTypes['SixMonthly'] = new SixMonthlyPeriodType( dateFormat );
- periodTypes['Yearly'] = new YearlyPeriodType( dateFormat );
- periodTypes['FinancialOct'] = new FinancialOctoberPeriodType( dateFormat );
- periodTypes['FinancialJuly'] = new FinancialJulyPeriodType( dateFormat );
- periodTypes['FinancialApril'] = new FinancialAprilPeriodType( dateFormat );
+ periodTypes['Daily'] = new DailyPeriodType( format_yyyymmdd, filterFuturePeriods );
+ periodTypes['Weekly'] = new WeeklyPeriodType( format_yyyymmdd, filterFuturePeriods );
+ periodTypes['Monthly'] = new MonthlyPeriodType( format_yyyymmdd, monthNames, filterFuturePeriods );
+ periodTypes['BiMonthly'] = new BiMonthlyPeriodType( format_yyyymmdd, monthNames, filterFuturePeriods );
+ periodTypes['Quarterly'] = new QuarterlyPeriodType( format_yyyymmdd, monthNames, filterFuturePeriods );
+ periodTypes['SixMonthly'] = new SixMonthlyPeriodType( monthNames, filterFuturePeriods );
+ periodTypes['Yearly'] = new YearlyPeriodType( format_yyyymmdd, filterFuturePeriods );
+ periodTypes['FinancialOct'] = new FinancialOctoberPeriodType( format_yyyymmdd, monthNames, filterFuturePeriods );
+ periodTypes['FinancialJuly'] = new FinancialJulyPeriodType( format_yyyymmdd, monthNames, filterFuturePeriods );
+ periodTypes['FinancialApril'] = new FinancialAprilPeriodType( format_yyyymmdd, monthNames, filterFuturePeriods );
this.get = function( key )
{
return periodTypes[key];
};
-
- this.reverse = function( array )
- {
- var reversed = [];
- var i = 0;
-
- for ( var j = array.length - 1; j >= 0; j-- )
- {
- reversed[i++] = array[j];
- }
-
- return reversed;
- };
-
- this.filterFuturePeriods = function( periods )
- {
- var array = [];
- var i = 0;
-
- var now = new Date().getTime();
-
- for ( var j = 0; j < periods.length; j++ )
- {
- if ( $.date( periods[j]['endDate'], dateFormat ).date().getTime() <= now )
- {
- array[i++] = periods[j];
- }
- }
-
- return array;
- };
-
- this.filterFuturePeriodsExceptCurrent = function( periods )
- {
- var array = [];
- var i = 0;
-
- var now = new Date().getTime();
-
- for ( var j = 0; j < periods.length; j++ )
- {
- if ( $.date( periods[j]['startDate'], dateFormat ).date().getTime() <= now )
- {
- array[i++] = periods[j];
- }
- }
-
- return array;
- };
-}
-
-function DailyPeriodType( dateFormat )
-{
- this.generatePeriods = function( offset )
- {
- var periods = [];
- var year = new Date().getFullYear() + offset;
- var startDate = $.date( year + '-01-01', dateFormat );
- var i = 0;
-
- while ( startDate.date().getFullYear() <= year )
- {
- var period = [];
- period['startDate'] = startDate.format( dateFormat );
- period['endDate'] = startDate.format( dateFormat );
- period['name'] = startDate.format( dateFormat );
- period['id'] = 'Daily_' + period['startDate'];
- period['iso'] = startDate.format( 'yyyyMMdd' );
- periods[i] = period;
-
- startDate.adjust( 'D', +1 );
- i++;
- }
-
- return periods;
- };
-}
-
-function WeeklyPeriodType( dateFormat )
-{
- this.generatePeriods = function( offset )
- {
- var periods = [];
- var year = new Date().getFullYear() + offset;
- var startDate = $.date( year + '-01-01', dateFormat );
- var day = startDate.date().getDay();
- var i = 0;
-
- if ( day == 0 ) // Sunday, forward to Monday
- {
- startDate.adjust( 'D', +1 );
- }
- else if ( day <= 4 ) // Monday - Thursday, rewind to Monday
- {
- startDate.adjust( 'D', ( ( day - 1 ) * -1 ) );
- }
- else
- // Friday - Saturday, forward to Monday
- {
- startDate.adjust( 'D', ( 8 - day ) );
- }
-
- var endDate = startDate.clone().adjust( 'D', +6 );
-
- while ( startDate.date().getFullYear() <= year )
- {
- var period = [];
- period['startDate'] = startDate.format( dateFormat );
- period['endDate'] = endDate.format( dateFormat );
- period['name'] = 'W' + ( i + 1 ) + ' - ' + startDate.format( dateFormat ) + " - " + endDate.format( dateFormat );
- period['id'] = 'Weekly_' + period['startDate'];
- period['iso'] = year + 'W' + ( i + 1 );
- periods[i] = period;
-
- startDate.adjust( 'D', +7 );
- endDate = startDate.clone().adjust( 'D', +6 );
- i++;
- }
-
- return periods;
- };
-}
-
-function MonthlyPeriodType( dateFormat )
-{
- this.generatePeriods = function( offset )
- {
- var periods = [];
- var year = new Date().getFullYear() + offset;
- var startDate = $.date( year + '-01-01', dateFormat );
- var endDate = startDate.clone().adjust( 'M', +1 ).adjust( 'D', -1 );
- var i = 0;
-
- while ( startDate.date().getFullYear() == year )
- {
- var period = [];
- period['startDate'] = startDate.format( dateFormat );
- period['endDate'] = endDate.format( dateFormat );
- period['name'] = monthNames[i] + ' ' + year;
- period['id'] = 'Monthly_' + period['startDate'];
- period['iso'] = startDate.format( 'yyyyMM' );
- periods[i] = period;
-
- startDate.adjust( 'M', +1 );
- endDate = startDate.clone().adjust( 'M', +1 ).adjust( 'D', -1 );
- i++;
- }
-
- return periods;
- };
-}
-
-function BiMonthlyPeriodType( dateFormat )
-{
- this.generatePeriods = function( offset )
- {
- var periods = [];
- var year = new Date().getFullYear() + offset;
- var startDate = $.date( year + '-01-01', dateFormat );
- var endDate = startDate.clone().adjust( 'M', +2 ).adjust( 'D', -1 );
- var i = 0;
- var j = 0;
-
- while ( startDate.date().getFullYear() == year )
- {
- var period = [];
- period['startDate'] = startDate.format( dateFormat );
- period['endDate'] = endDate.format( dateFormat );
- period['name'] = monthNames[i] + ' - ' + monthNames[i + 1] + ' ' + year;
- period['id'] = 'BiMonthly_' + period['startDate'];
- period['iso'] = startDate.format( 'yyyyMM' ) + 'B';
- periods[j] = period;
-
- startDate.adjust( 'M', +2 );
- endDate = startDate.clone().adjust( 'M', +2 ).adjust( 'D', -1 );
- i += 2;
- j++;
- }
-
- return periods;
- };
-}
-
-function QuarterlyPeriodType( dateFormat )
-{
- this.generatePeriods = function( offset )
- {
- var periods = [];
- var year = new Date().getFullYear() + offset;
- var startDate = $.date( year + '-01-01', dateFormat );
- var endDate = startDate.clone().adjust( 'M', +3 ).adjust( 'D', -1 );
- var i = 0;
- var j = 0;
-
- while ( startDate.date().getFullYear() == year )
- {
- var period = [];
- period['startDate'] = startDate.format( dateFormat );
- period['endDate'] = endDate.format( dateFormat );
- period['name'] = monthNames[i] + ' - ' + monthNames[i + 2] + ' ' + year;
- period['id'] = 'Quarterly_' + period['startDate'];
- period['iso'] = year + 'Q' + ( j + 1 );
- periods[j] = period;
-
- startDate.adjust( 'M', +3 );
- endDate = startDate.clone().adjust( 'M', +3 ).adjust( 'D', -1 );
- i += 3;
- j++;
- }
-
- return periods;
- };
-}
-
-function SixMonthlyPeriodType( dateFormat )
-{
- this.generatePeriods = function( offset )
- {
- var periods = [];
- var year = new Date().getFullYear() + offset;
-
- var period = [];
+}
+
+function DailyPeriodType( format_yyyymmdd, fnFilter )
+{
+ this.generatePeriods = function( config )
+ {
+ var periods = [],
+ offset = parseInt(config.offset),
+ isFilter = config.filterFuturePeriods,
+ isReverse = config.reversePeriods,
+ year = new Date().getFullYear() + offset;
+ date = new Date( '01 Jan ' + year );
+
+ while ( date.getFullYear() === year )
+ {
+ var period = {};
+ period['startDate'] = format_yyyymmdd( date );
+ period['endDate'] = period['startDate'];
+ period['name'] = period['startDate'];
+ //period['id'] = 'Daily_' + period['startDate'];
+ period['iso'] = period['startDate'].replace( /-/g, '' );
+ period['id'] = period['iso'];
+ periods.push( period );
+ date.setDate( date.getDate() + 1 );
+ }
+
+ periods = isFilter ? fnFilter( periods ) : periods;
+ periods = isReverse ? periods.reverse() : periods;
+
+ return periods;
+ };
+}
+
+function WeeklyPeriodType( format_yyyymmdd, fnFilter )
+{
+ this.generatePeriods = function( config )
+ {
+ var periods = [],
+ offset = parseInt(config.offset),
+ isFilter = config.filterFuturePeriods,
+ isReverse = config.reversePeriods,
+ year = new Date().getFullYear() + offset,
+ date = new Date( '01 Jan ' + year ),
+ day = date.getDay(),
+ week = 1;
+
+ if ( day <= 4 )
+ {
+ date.setDate( date.getDate() - ( day - 1 ) );
+ }
+ else
+ {
+ date.setDate( date.getDate() + ( 8 - day ) );
+ }
+
+ while ( date.getFullYear() <= year )
+ {
+ var period = {};
+ period['startDate'] = format_yyyymmdd( date );
+ //period['id'] = 'Weekly_' + period['startDate'];
+ period['iso'] = year + 'W' + week;
+ period['id'] = period['iso'];
+ date.setDate( date.getDate() + 6 );
+ period['endDate'] = format_yyyymmdd( date );
+ period['name'] = 'W' + week + ' - ' + period['startDate'] + ' - ' + period['endDate'];
+ periods.push( period );
+ date.setDate( date.getDate() + 1 );
+ week++;
+ }
+
+ periods = isFilter ? fnFilter( periods ) : periods;
+ periods = isReverse ? periods.reverse() : periods;
+
+ return periods;
+ };
+}
+
+function MonthlyPeriodType( format_yyyymmdd, monthNames, fnFilter )
+{
+ var format_iso = function(date) {
+ var y = date.getFullYear(),
+ m = new String(date.getMonth() + 1);
+ m = m.length < 2 ? '0' + m : m;
+ return y + m;
+ };
+
+ this.generatePeriods = function( config )
+ {
+ var periods = [],
+ offset = parseInt(config.offset),
+ isFilter = config.filterFuturePeriods,
+ isReverse = config.reversePeriods,
+ year = new Date().getFullYear() + offset,
+ date = new Date( '31 Dec ' + year );
+
+ while ( date.getFullYear() === year )
+ {
+ var period = {};
+ period['endDate'] = format_yyyymmdd( date );
+ date.setDate( 1 );
+ period['startDate'] = format_yyyymmdd( date );
+ period['name'] = monthNames[date.getMonth()] + ' ' + date.getFullYear();
+ //period['id'] = 'Monthly_' + period['startDate'];
+ period['iso'] = format_iso( date );
+ period['id'] = period['iso'];
+ periods.push( period );
+ date.setDate( 0 );
+ }
+
+ periods = isFilter ? fnFilter( periods ) : periods;
+ periods = isReverse ? periods : periods.reverse();
+ // Months are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
+
+ return periods;
+ };
+}
+
+function BiMonthlyPeriodType( format_yyyymmdd, monthNames, fnFilter )
+{
+ var format_iso = function( date ) {
+ var y = date.getFullYear(),
+ m = new String(date.getMonth() + 1);
+ m = m.length < 2 ? '0' + m : m;
+ return y + m + 'B';
+ };
+
+ this.generatePeriods = function( config )
+ {
+ var periods = [],
+ offset = parseInt(config.offset),
+ isFilter = config.filterFuturePeriods,
+ isReverse = config.reversePeriods,
+ year = new Date().getFullYear() + offset,
+ date = new Date( '31 Dec ' + year );
+
+ while ( date.getFullYear() === year )
+ {
+ var period = {};
+ period['endDate'] = format_yyyymmdd( date );
+ date.setDate( 0 );
+ date.setDate( 1 );
+ period['startDate'] = format_yyyymmdd( date );
+ period['name'] = monthNames[date.getMonth()] + ' - ' + monthNames[date.getMonth() + 1] + ' ' + date.getFullYear();
+ //period['id'] = 'BiMonthly_' + period['startDate'];
+ period['iso'] = format_iso( date );
+ period['id'] = period['iso'];
+ periods.push(period);
+ date.setDate( 0 );
+ }
+
+ periods = isFilter ? fnFilter( periods ) : periods;
+ periods = isReverse ? periods : periods.reverse();
+ // Bi-months are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
+
+ return periods;
+ };
+}
+
+function QuarterlyPeriodType( format_yyyymmdd, monthNames, fnFilter )
+{
+ this.generatePeriods = function( config )
+ {
+ var periods = [],
+ offset = parseInt(config.offset),
+ isFilter = config.filterFuturePeriods,
+ isReverse = config.reversePeriods,
+ year = new Date().getFullYear() + offset,
+ date = new Date( '31 Dec ' + year ),
+ quarter = 4;
+
+ while ( date.getFullYear() === year )
+ {
+ var period = {};
+ period['endDate'] = format_yyyymmdd( date );
+ date.setDate( 0 );
+ date.setDate( 0 );
+ date.setDate( 1 );
+ period['startDate'] = format_yyyymmdd( date );
+ period['name'] = monthNames[date.getMonth()] + ' - ' + monthNames[date.getMonth() + 2] + ' ' + date.getFullYear();
+ //period['id'] = 'Quarterly_' + period['startDate'];
+ period['iso'] = year + 'Q' + quarter;
+ period['id'] = period['iso'];
+ periods.push(period);
+ date.setDate( 0 );
+ quarter--;
+ }
+
+ periods = isFilter ? fnFilter( periods ) : periods;
+ periods = isReverse ? periods : periods.reverse();
+ // Quarters are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
+
+ return periods;
+ };
+}
+
+function SixMonthlyPeriodType( monthNames, fnFilter )
+{
+ this.generatePeriods = function( config )
+ {
+ var periods = [],
+ offset = parseInt(config.offset),
+ isFilter = config.filterFuturePeriods,
+ isReverse = config.reversePeriods,
+ year = new Date().getFullYear() + offset;
+
+ var period = {};
period['startDate'] = year + '-01-01';
period['endDate'] = year + '-06-30';
period['name'] = monthNames[0] + ' - ' + monthNames[5] + ' ' + year;
- period['id'] = 'SixMonthly_' + period['startDate'];
+ //period['id'] = 'SixMonthly_' + period['startDate'];
period['iso'] = year + 'S1';
- periods[0] = period;
-
- period = [];
+ period['id'] = period['iso'];
+ periods.push(period);
+
+ period = {};
period['startDate'] = year + '-07-01';
period['endDate'] = year + '-12-31';
period['name'] = monthNames[6] + ' - ' + monthNames[11] + ' ' + year;
- period['id'] = 'SixMonthly_' + period['startDate'];
+ //period['id'] = 'SixMonthly_' + period['startDate'];
period['iso'] = year + 'S2';
- periods[1] = period;
-
- return periods;
- };
-}
-
-function YearlyPeriodType( dateFormat )
-{
- this.generatePeriods = function( offset )
- {
- var periods = [];
- var year = new Date().getFullYear() + offset;
- var startDate = $.date( year + '-01-01', dateFormat ).adjust( 'Y', -5 );
- var endDate = startDate.clone().adjust( 'Y', +1 ).adjust( 'D', -1 );
-
- for ( var i = 0; i < 11; i++ )
- {
- var period = [];
- period['startDate'] = startDate.format( dateFormat );
- period['endDate'] = endDate.format( dateFormat );
- period['name'] = startDate.date().getFullYear();
- period['id'] = 'Yearly_' + period['startDate'];
- period['iso'] = year;
- periods[i] = period;
-
- startDate.adjust( 'Y', +1 );
- endDate = startDate.clone().adjust( 'Y', +1 ).adjust( 'D', -1 );
- }
-
- return periods;
- };
-}
-
-function FinancialOctoberPeriodType( dateFormat )
-{
- this.generatePeriods = function( offset )
- {
- var periods = [];
- var year = new Date().getFullYear() + offset;
- var startDate = $.date( year + '-10-01', dateFormat ).adjust( 'Y', -5 );
- var endDate = startDate.clone().adjust( 'Y', +1 ).adjust( 'D', -1 );
-
- for ( var i = 0; i < 11; i++ )
- {
- var period = [];
- period['startDate'] = startDate.format( dateFormat );
- period['endDate'] = endDate.format( dateFormat );
- period['name'] = monthNames[9] + ' ' + startDate.date().getFullYear() + '-' + monthNames[8] + ' ' + (startDate.date().getFullYear() +1 );
- period['id'] = 'FinancialOct_' + period['startDate'];
- period['iso'] = year + 'Oct';
- periods[i] = period;
-
- startDate.adjust( 'Y', +1 );
- endDate = startDate.clone().adjust( 'Y', +1 ).adjust( 'D', -1 );
- }
-
- return periods;
- };
-}
-
-function FinancialJulyPeriodType( dateFormat )
-{
- this.generatePeriods = function( offset )
- {
- var periods = [];
- var year = new Date().getFullYear() + offset;
- var startDate = $.date( year + '-07-01', dateFormat ).adjust( 'Y', -5 );
- var endDate = startDate.clone().adjust( 'Y', +1 ).adjust( 'D', -1 );
-
- for ( var i = 0; i < 11; i++ )
- {
- var period = [];
- period['startDate'] = startDate.format( dateFormat );
- period['endDate'] = endDate.format( dateFormat );
- period['name'] = monthNames[6] + ' ' + startDate.date().getFullYear() + '-' + monthNames[5] + ' ' + (startDate.date().getFullYear() +1 );
- period['id'] = 'FinancialJuly_' + period['startDate'];
- period['iso'] = year + 'July';
- periods[i] = period;
-
- startDate.adjust( 'Y', +1 );
- endDate = startDate.clone().adjust( 'Y', +1 ).adjust( 'D', -1 );
- }
-
- return periods;
- };
-}
-
-function FinancialAprilPeriodType( dateFormat )
-{
- this.generatePeriods = function( offset )
- {
- var periods = [];
- var year = new Date().getFullYear() + offset;
- var startDate = $.date( year + '-04-01', dateFormat ).adjust( 'Y', -5 );
- var endDate = startDate.clone().adjust( 'Y', +1 ).adjust( 'D', -1 );
-
- for ( var i = 0; i < 11; i++ )
- {
- var period = [];
- period['startDate'] = startDate.format( dateFormat );
- period['endDate'] = endDate.format( dateFormat );
- period['name'] = monthNames[3] + ' ' + startDate.date().getFullYear() + '-' + monthNames[2] + ' ' + (startDate.date().getFullYear() +1 );
- period['id'] = 'FinancialApril_' + period['startDate'];
- period['iso'] = year + 'April';
- periods[i] = period;
-
- startDate.adjust( 'Y', +1 );
- endDate = startDate.clone().adjust( 'Y', +1 ).adjust( 'D', -1 );
- }
-
- return periods;
- };
-}
+ period['id'] = period['iso'];
+ periods.push(period);
+
+ periods = isFilter ? fnFilter( periods ) : periods;
+ periods = isReverse ? periods.reverse() : periods;
+
+ return periods;
+ };
+}
+
+function YearlyPeriodType( format_yyyymmdd, fnFilter )
+{
+ this.generatePeriods = function( config )
+ {
+ var periods = [],
+ offset = parseInt(config.offset),
+ isFilter = config.filterFuturePeriods,
+ isReverse = config.reversePeriods,
+ year = new Date().getFullYear() + offset,
+ date = new Date( '31 Dec ' + year );
+
+ while ( ( year - date.getFullYear() ) < 10 )
+ {
+ var period = {};
+ period['endDate'] = format_yyyymmdd( date );
+ date.setMonth( 0, 1 );
+ period['startDate'] = format_yyyymmdd( date );
+ period['name'] = date.getFullYear().toString();
+ //period['id'] = 'Yearly_' + period['startDate'];
+ period['iso'] = date.getFullYear().toString();
+ period['id'] = period['iso'].toString();
+ periods.push(period);
+ date.setDate(0);
+ }
+
+ periods = isFilter ? fnFilter( periods ) : periods;
+ periods = isReverse ? periods : periods.reverse();
+ // Years are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
+
+ return periods;
+ };
+}
+
+function FinancialOctoberPeriodType( format_yyyymmdd, monthNames, fnFilter )
+{
+ this.generatePeriods = function( config )
+ {
+ var periods = [],
+ offset = parseInt(config.offset),
+ isFilter = config.filterFuturePeriods,
+ isReverse = config.reversePeriods,
+ year = new Date().getFullYear() + offset,
+ date = new Date( '30 Sep ' + ( year + 1 ) );
+
+ for ( var i = 0; i < 10; i++ )
+ {
+ var period = {};
+ period['endDate'] = format_yyyymmdd( date );
+ date.setYear( date.getFullYear() - 1 );
+ date.setDate( date.getDate() + 1 );
+ period['startDate'] = format_yyyymmdd( date );
+ period['name'] = monthNames[9] + ' ' + date.getFullYear() + ' - ' + monthNames[8] + ' ' + ( date.getFullYear() + 1 );
+ period['id'] = 'FinancialOct_' + period['startDate'];
+ periods.push( period );
+ date.setDate( date.getDate() - 1 );
+ }
+
+ periods = isFilter ? fnFilter( periods ) : periods;
+ periods = isReverse ? periods : periods.reverse();
+ // FinancialOctober periods are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
+
+ return periods;
+ };
+}
+
+function FinancialJulyPeriodType( format_yyyymmdd, monthNames, fnFilter )
+{
+ this.generatePeriods = function( config )
+ {
+ var periods = [],
+ offset = parseInt(config.offset),
+ isFilter = config.filterFuturePeriods,
+ isReverse = config.reversePeriods,
+ year = new Date().getFullYear() + offset,
+ date = new Date( '30 Jun ' + ( year + 1 ) );
+
+ for ( var i = 0; i < 10; i++ )
+ {
+ var period = {};
+ period['endDate'] = format_yyyymmdd( date );
+ date.setYear( date.getFullYear() - 1 );
+ date.setDate( date.getDate() + 1 );
+ period['startDate'] = format_yyyymmdd( date );
+ period['name'] = monthNames[6] + ' ' + date.getFullYear() + ' - ' + monthNames[5] + ' ' + ( date.getFullYear() + 1 );
+ period['id'] = 'FinancialJuly_' + period['startDate'];
+ periods.push( period );
+ date.setDate( date.getDate() - 1 );
+ }
+
+ periods = isFilter ? fnFilter( periods ) : periods;
+ periods = isReverse ? periods : periods.reverse();
+ // FinancialJuly periods are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
+
+ return periods;
+ };
+}
+
+function FinancialAprilPeriodType( format_yyyymmdd, monthNames, fnFilter )
+{
+ this.generatePeriods = function( config )
+ {
+ var periods = [],
+ offset = parseInt(config.offset),
+ isFilter = config.filterFuturePeriods,
+ isReverse = config.reversePeriods,
+ year = new Date().getFullYear() + offset,
+ date = new Date( '31 Mar ' + ( year + 1 ) );
+
+ for ( var i = 0; i < 10; i++ )
+ {
+ var period = {};
+ period['endDate'] = format_yyyymmdd( date );
+ date.setYear( date.getFullYear() - 1 );
+ date.setDate( date.getDate() + 1 );
+ period['startDate'] = format_yyyymmdd( date );
+ period['name'] = monthNames[3] + ' ' + date.getFullYear() + ' - ' + monthNames[2] + ' ' + ( date.getFullYear() + 1 );
+ period['id'] = 'FinancialApril_' + period['startDate'];
+ periods.push( period );
+ date.setDate( date.getDate() - 1 );
+ }
+
+ periods = isFilter ? fnFilter( periods ) : periods;
+ periods = isReverse ? periods : periods.reverse();
+ // FinancialApril periods are collected backwards. If isReverse is true, then do nothing. Else reverse to correct order and return.
+
+ return periods;
+ };
+}
+
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/app/index.html'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/app/index.html 2012-10-23 15:51:25 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/app/index.html 2012-10-24 10:45:58 +0000
@@ -6,7 +6,7 @@
-
+
@@ -34,7 +34,7 @@
-
+
-
+