dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #42328
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 21643: bugfix for weekly period generator (js)
------------------------------------------------------------
revno: 21643
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2016-01-07 18:18:47 +0700
message:
bugfix for weekly period generator (js)
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 2015-11-30 03:58:28 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.period.js 2016-01-07 11:18:47 +0000
@@ -105,7 +105,7 @@
if (options) {
options.altField = '#' + isoFieldId;
}
-
+
$el.calendarsPicker($.extend({}, this.defaults, options));
};
@@ -280,10 +280,10 @@
*/
dhis2.period.PeriodGenerator.prototype.filterOpenPeriods = function( generator, periods, n ) {
var max = this.generators[generator].todayPlusPeriods(n);
-
+
var array = [];
var today = this.calendar.today();
-
+
$.each(periods, function() {
if( this['_endDate'].compareTo(max) < 0 ) {
array.push(this);
@@ -465,7 +465,7 @@
/**
* Get the date calculated from current date added the given number of periods
* of this period type.
- *
+ *
* @param {int} n number of periods.
* @return date object.
*/
@@ -541,7 +541,23 @@
var periods = [];
var startDate = this.calendar.newDate(year, 1, 1);
- startDate.add(-(startDate.dayOfWeek() - 1), 'd'); // rewind to start of week, might cross year boundary
+ // startDate.add(-(startDate.dayOfWeek() - 1), 'd'); // rewind to start of week, might cross year boundary
+
+ var day = startDate.dayOfWeek();
+
+ if( day == 0 ) // Sunday (0), forward to Monday
+ {
+ startDate.add(1, 'd');
+ }
+ else if( day <= 4 ) // Monday - Thursday, rewind to Monday
+ {
+ startDate.add(( ( day - 1 ) * -1 ), 'd');
+ }
+ else
+ // Friday - Saturday, forward to Monday
+ {
+ startDate.add(8 - day, 'd');
+ }
// no reliable way to figure out number of weeks in a year (can differ in different calendars)
// goes up to 200, but break when week is back to 1
@@ -595,7 +611,7 @@
$generate: function( offset ) {
var year = offset + this.calendar.today().year();
var periods = [];
-
+
for( var month = 1; month <= getHMISMonthsInYear(this.calendar, year); month++ ) {
var startDate = this.calendar.newDate(year, month, 1);
var endDate = this.calendar.newDate(startDate).set(startDate.daysInMonth(month), 'd');
@@ -978,15 +994,15 @@
dhis2.period.FinancialOctoberGenerator.prototype = Object.create(dhis2.period.FinancialBaseGenerator.prototype);
/**
- * Convenience method to get DHIS2/HMIS months in a year
+ * Convenience method to get DHIS2/HMIS months in a year
*/
function getHMISMonthsInYear( calendar, year ) {
-
+
var monthsInYear = calendar.monthsInYear(year);
-
+
if( $.calendars.calendars.ethiopian && calendar instanceof $.calendars.calendars.ethiopian ){
monthsInYear = monthsInYear - 1;
}
-
+
return monthsInYear;
}