← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 15047: use prototypal inheritance for PeriodGeneror, makes the code a bit cleaner

 

------------------------------------------------------------
revno: 15047
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2014-04-28 15:04:01 +0545
message:
  use prototypal inheritance for PeriodGeneror, makes the code a bit cleaner
modified:
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.period.js


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.period.js'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.period.js	2014-04-28 09:12:33 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.period.js	2014-04-28 09:19:01 +0000
@@ -39,7 +39,9 @@
     calendar = dhis2.period.calendar;
   }
 
-  var periodTypes = {
+  this.calendar = calendar;
+
+  this.periodTypes = {
     "Daily": dhis2.period.makeDailyPeriodGenerator(calendar, dhis2.period.DEFAULT_DATE_FORMAT),
     "Weekly": dhis2.period.makeWeeklyPeriodGenerator(calendar, dhis2.period.DEFAULT_DATE_FORMAT),
     "Monthly": dhis2.period.makeMonthlyPeriodGenerator(calendar, dhis2.period.DEFAULT_DATE_FORMAT),
@@ -52,88 +54,92 @@
     "FinancialJuly": dhis2.period.makeFinancialJulyPeriodGenerator(calendar, dhis2.period.DEFAULT_DATE_FORMAT),
     "FinancialOct": dhis2.period.makeFinancialOctoberPeriodGenerator(calendar, dhis2.period.DEFAULT_DATE_FORMAT)
   };
-
-  this.getAll = function() {
-    return periodTypes;
-  };
-
-  this.getCalendar = function() {
-    return calendar;
-  };
-
-  this.get = function( generator ) {
-    return periodTypes[generator];
-  };
-
-  this.daily = function( offset ) {
-    return this.get('Daily').generatePeriods(offset);
-  };
-
-  this.weekly = function( offset ) {
-    return this.get('Weekly').generatePeriods(offset);
-  };
-
-  this.monthly = function( offset ) {
-    return this.get('Monthly').generatePeriods(offset);
-  };
-
-  this.biMonthly = function( offset ) {
-    return this.get('BiMonthly').generatePeriods(offset);
-  };
-
-  this.quarterly = function( offset ) {
-    return this.get('Quarterly').generatePeriods(offset);
-  };
-
-  this.sixMonthly = function( offset ) {
-    return this.get('SixMonthly').generatePeriods(offset);
-  };
-
-  this.sixMonthlyApril = function( offset ) {
-    return this.get('SixMonthlyApril').generatePeriods(offset);
-  };
-
-  this.financialOct = function( offset ) {
-    return this.get('FinancialOct').generatePeriods(offset);
-  };
-
-  this.financialJuly = function( offset ) {
-    return this.get('FinancialJuly').generatePeriods(offset);
-  };
-
-  this.financialApril = function( offset ) {
-    return this.get('FinancialApril').generatePeriods(offset);
-  };
-
-  this.reverse = function( periods ) {
-    return periods.slice(0).reverse();
-  };
-
-  this.filterFuturePeriods = function( periods ) {
-    var array = [];
-    var today = calendar.today();
-
-    $.each(periods, function( idx ) {
-      if( this['_endDate'].compareTo(today) <= 0 ) {
-        array.push(this);
-      }
-    });
-
-    return array;
-  };
-
-  this.filterFuturePeriodsExceptCurrent = function( periods ) {
-    var array = [];
-    var today = calendar.today();
-
-    $.each(periods, function( idx ) {
-      if( this['_startDate'].compareTo(today) <= 0 ) {
-        array.push(this);
-      }
-    });
-
-    return array;
-  }
+};
+
+dhis2.period.PeriodGenerator.prototype.getAll = function() {
+  return this.periodTypes;
+};
+
+dhis2.period.PeriodGenerator.prototype.getCalendar = function() {
+  return this.calendar;
+};
+
+dhis2.period.PeriodGenerator.prototype.get = function( generator ) {
+  return this.periodTypes[generator];
+};
+
+dhis2.period.PeriodGenerator.prototype.daily = function( offset ) {
+  return this.get('Daily').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.weekly = function( offset ) {
+  return this.get('Weekly').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.monthly = function( offset ) {
+  return this.get('Monthly').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.biMonthly = function( offset ) {
+  return this.get('BiMonthly').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.quarterly = function( offset ) {
+  return this.get('Quarterly').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.sixMonthly = function( offset ) {
+  return this.get('SixMonthly').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.sixMonthlyApril = function( offset ) {
+  return this.get('SixMonthlyApril').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.yearly = function( offset ) {
+  return this.get('Yearly').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.financialOct = function( offset ) {
+  return this.get('FinancialOct').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.financialJuly = function( offset ) {
+  return this.get('FinancialJuly').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.financialApril = function( offset ) {
+  return this.get('FinancialApril').generatePeriods(offset);
+};
+
+dhis2.period.PeriodGenerator.prototype.reverse = function( periods ) {
+  return periods.slice(0).reverse();
+};
+
+dhis2.period.PeriodGenerator.prototype.filterFuturePeriods = function( periods ) {
+  var array = [];
+  var today = this.calendar.today();
+
+  $.each(periods, function( idx ) {
+    if( this['_endDate'].compareTo(today) <= 0 ) {
+      array.push(this);
+    }
+  });
+
+  return array;
+};
+
+dhis2.period.PeriodGenerator.prototype.filterFuturePeriodsExceptCurrent = function( periods ) {
+  var array = [];
+  var today = this.calendar.today();
+
+  $.each(periods, function( idx ) {
+    if( this['_startDate'].compareTo(today) <= 0 ) {
+      array.push(this);
+    }
+  });
+
+  return array;
 };
 
 dhis2.period.makeDailyPeriodGenerator = function( cal, format ) {