← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 16359: PT support for different calendars.

 

Merge authors:
  Jan Henrik Øverland (janhenrik-overland)
------------------------------------------------------------
revno: 16359 [merge]
committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
branch nick: dhis2
timestamp: Sat 2014-08-09 15:30:25 +0200
message:
  PT support for different calendars.
modified:
  dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/index.html
  dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.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-pivot/src/main/webapp/dhis-web-pivot/app/index.html'
--- dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/index.html	2014-08-08 11:08:16 +0000
+++ dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/index.html	2014-08-09 12:32:17 +0000
@@ -15,16 +15,13 @@
     <script src="../../dhis-web-commons/javascripts/ext-ux/layout/component/form/MultiSelect.js"></script>
     <script src="../../dhis-web-commons/javascripts/ext-ux/form/MultiSelect.js"></script>
 
-<!--
     <script src="../../dhis-web-commons/javascripts/jQuery/jquery.min.js"></script>
     <script src="../../dhis-web-commons/javascripts/jQuery/calendars/jquery.calendars.min.js"></script>
+    <script src="../../dhis-web-commons/javascripts/jQuery/calendars/jquery.calendars.plus.min.js"></script>
     <script src="../../dhis-web-commons/javascripts/jQuery/calendars/jquery.calendars.picker.min.js"></script>
     <script src="../../dhis-web-commons/javascripts/dhis2/dhis2.util.js"></script>
-
-    <script src="../../dhis-web-commons/javascripts/dhis2/dhis2.period.js"></script>
--->
-
-    <script src="../../dhis-web-commons/javascripts/periodTypeNoDep.js"></script>
+    <script src="../../dhis-web-commons/javascripts/date.js"></script>
+
 	<script src="scripts/core.js"></script>
 	<script src="scripts/app.js"></script>
 </body>

=== modified file 'dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.js'
--- dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.js	2014-08-08 13:15:52 +0000
+++ dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.js	2014-08-09 13:29:03 +0000
@@ -4281,14 +4281,13 @@
 							periodOffset: 0,
 							listeners: {
 								select: function() {
-									var ptype = new PeriodType(),
-										periodType = this.getValue();
+                                    var periodType = this.getValue(),
+                                        generator = ns.core.init.periodGenerator,
+                                        periods = generator.filterFuturePeriodsExceptCurrent(generator.generateReversedPeriods(periodType, this.periodOffset));
 
-									var periods = ptype.get(periodType).generatePeriods({
-										offset: this.periodOffset,
-										filterFuturePeriods: true,
-										reversePeriods: true
-									});
+                                    for (var i = 0; i < periods.length; i++) {
+                                        periods[i].id = periods[i].iso;
+                                    }
 
 									fixedPeriodAvailableStore.setIndex(periods);
 									fixedPeriodAvailableStore.loadData(periods);
@@ -6069,28 +6068,31 @@
 							success: function(r) {
                                 var info = Ext.decode(r.responseText),
                                     dhis2PeriodUrl = '../../dhis-web-commons/javascripts/dhis2/dhis2.period.js',
-                                    calendarMap = {'iso8601': 'gregorian'},
-                                    calendarUrl;
+                                    defaultCalendarId = 'gregorian',
+                                    calendarIdMap = {'iso8601': defaultCalendarId},
+                                    calendarId = calendarIdMap[info.calendar] || info.calendar || defaultCalendarId,
+                                    calendarIds = ['coptic', 'ethiopian', 'islamic', 'julian', 'nepali', 'thai'],
+                                    calendarScriptUrl,
+                                    createGenerator;
 
                                 // calendar
-                                init.calendar = calendarMap[info.calendar] || info.calendar || 'gregorian';
                                 init.dateFormat = info.dateFormat || 'yyyy-mm-dd';
 
-                                //if (Ext.Array.contains(['coptic', 'ethiopian', 'islamic', 'julian', 'nepali', 'thai'], init.calendar)) {
-                                    //calendarUrl = '../../dhis-web-commons/javascripts/jQuery/calendars/jquery.calendars.' + init.calendar + '.min.js';
-
-                                    //Ext.Loader.injectScriptElement(calendarUrl, function() {
-                                        //Ext.Loader.injectScriptElement(dhis2PeriodUrl, function() {});
-                                    //});
-                                //}
-                                //else {
-                                    //Ext.Loader.injectScriptElement(dhis2PeriodUrl, function() {
-                                        //var cal = $.calendars.instance('gregorian'),
-                                            //gen = new dhis2.period.PeriodGenerator(cal, init.dateFormat);
-
-                                        //console.log(gen.generateReversedPeriods('Yearly', 0));
-                                    //});
-                                //}
+                                createGenerator = function() {
+                                    init.calendar = $.calendars.instance(calendarId);
+                                    init.periodGenerator = new dhis2.period.PeriodGenerator(init.calendar, init.dateFormat);
+                                };
+
+                                if (Ext.Array.contains(calendarIds, calendarId)) {
+                                    calendarScriptUrl = '../../dhis-web-commons/javascripts/jQuery/calendars/jquery.calendars.' + calendarId + '.min.js';
+
+                                    Ext.Loader.injectScriptElement(calendarScriptUrl, function() {
+                                        Ext.Loader.injectScriptElement(dhis2PeriodUrl, createGenerator);
+                                    });
+                                }
+                                else {
+                                    Ext.Loader.injectScriptElement(dhis2PeriodUrl, createGenerator);
+                                }
 
                                 // context path
 								init.contextPath = info.contextPath || init.contextPath;