------------------------------------------------------------ revno: 20369 committer: Abyot Asalefew Gizaw <aby...@gmail.com> branch nick: dhis2 timestamp: Fri 2015-09-25 15:33:59 +0200 message: event-capture: update eventdate both in grid and full editing modified: dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/index.html dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/controllers.js dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/services.js dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/defaultForm.html dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/ec-custom-form.html dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/eventList.html dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.angular.services.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-apps/src/main/webapp/dhis-web-event-capture/index.html' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/index.html 2015-09-21 15:01:55 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/index.html 2015-09-25 13:33:59 +0000 @@ -1,5 +1,6 @@ <!DOCTYPE html> -<html manifest="cacheManifest.action" ng-app="eventCapture"> +<html ng-app="eventCapture"> +<!--<html manifest="cacheManifest.action" ng-app="eventCapture">--> <head> <title>Event Capture</title> @@ -62,7 +63,7 @@ <script type="text/javascript" src="../dhis-web-commons/javascripts/dhis2/dhis2.storage.memory.js"></script> <script type="text/javascript" src="../dhis-web-commons/javascripts/dhis2/dhis2.storage.js"></script> <script type="text/javascript" src="../dhis-web-commons/javascripts/dhis2/dhis2.contextmenu.js"></script> - <script type="text/javascript" src="../dhis-web-commons/javascripts/dhis2/dhis2.appcache.js"></script> + <!--<script type="text/javascript" src="../dhis-web-commons/javascripts/dhis2/dhis2.appcache.js"></script>--> <script type="text/javascript" src="../dhis-web-commons/ouwt/ouwt.js"></script> <script type="text/javascript" src="scripts/event-capture.js"></script> === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/controllers.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/controllers.js 2015-09-24 15:28:23 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/controllers.js 2015-09-25 13:33:59 +0000 @@ -174,9 +174,9 @@ $scope.eventGridColumns.push({name: 'form_id', id: 'uid', valueType: 'TEXT', compulsory: false, filterWithRange: false, showFilter: false, show: false}); $scope.filterTypes['uid'] = 'TEXT'; - $scope.eventGridColumns.push({name: $scope.selectedProgramStage.reportDateDescription ? $scope.selectedProgramStage.reportDateDescription : 'incident_date', id: 'event_date', valueType: 'DATE', filterWithRange: true, compulsory: false, showFilter: false, show: true}); - $scope.filterTypes['event_date'] = 'DATE'; - $scope.filterText['event_date']= {}; + $scope.eventGridColumns.push({name: $scope.selectedProgramStage.reportDateDescription ? $scope.selectedProgramStage.reportDateDescription : 'incident_date', id: 'eventDate', valueType: 'DATE', filterWithRange: true, compulsory: false, showFilter: false, show: true}); + $scope.filterTypes['eventDate'] = 'DATE'; + $scope.filterText['eventDate']= {}; angular.forEach($scope.selectedProgramStage.programStageDataElements, function(prStDe){ $scope.prStDes[prStDe.dataElement.id] = prStDe; @@ -319,7 +319,7 @@ $scope.dhis2Events[i]['uid'] = $scope.dhis2Events[i].event; $scope.dhis2Events[i].eventDate = DateUtils.formatFromApiToUser($scope.dhis2Events[i].eventDate); - $scope.dhis2Events[i]['event_date'] = $scope.dhis2Events[i].eventDate; + $scope.dhis2Events[i]['eventDate'] = $scope.dhis2Events[i].eventDate; delete $scope.dhis2Events[i].dataValues; } @@ -330,7 +330,7 @@ } if(!$scope.sortHeader.id){ - $scope.sortEventGrid({name: $scope.selectedProgramStage.reportDateDescription ? $scope.selectedProgramStage.reportDateDescription : 'incident_date', id: 'event_date', type: 'DATE', compulsory: false, showFilter: false, show: true}); + $scope.sortEventGrid({name: $scope.selectedProgramStage.reportDateDescription ? $scope.selectedProgramStage.reportDateDescription : 'incident_date', id: 'eventDate', type: 'DATE', compulsory: false, showFilter: false, show: true}); } } @@ -609,7 +609,7 @@ $scope.dhis2Events = []; } newEvent['uid'] = newEvent.event; - newEvent['event_date'] = newEvent.eventDate; + newEvent['eventDate'] = newEvent.eventDate; $scope.dhis2Events.splice(0,0,newEvent); $scope.eventLength++; @@ -696,7 +696,55 @@ $scope.currentEventOriginialValue = angular.copy($scope.currentEvent); }); }; - + + $scope.updateEventDate = function () { + $scope.updateSuccess = false; + + $scope.currentElement = {id: 'eventDate'}; + + var rawDate = angular.copy($scope.currentEvent.eventDate); + var convertedDate = DateUtils.format($scope.currentEvent.eventDate); + + if (!rawDate || !convertedDate || rawDate !== convertedDate) { + $scope.invalidDate = true; + $scope.currentEvent.eventDate = $scope.currentEventOriginialValue.eventDate; + $scope.resetEventValue($scope.currentEvent); + $scope.currentElement.updated = false; + return false; + } + + //get new and old values + var newValue = $scope.currentEvent.eventDate; + var oldValue = $scope.currentEventOriginialValue.eventDate; + + if ($scope.currentEvent.eventDate === '') { + $scope.currentEvent.eventDate = oldValue; + $scope.resetEventValue($scope.currentEvent); + $scope.currentElement.updated = false; + return false; + } + + if(newValue !== oldValue){ + var e = {event: $scope.currentEvent.event, + orgUnit: $scope.currentEvent.orgUnit, + eventDate: DateUtils.formatFromUserToApi($scope.currentEvent.eventDate) + }; + + var updatedFullValueEvent = DHIS2EventService.reconstructEvent($scope.currentEvent, $scope.selectedProgramStage.programStageDataElements); + + DHIS2EventFactory.updateForEventDate(e, updatedFullValueEvent).then(function () { + //reflect the new value in the grid + $scope.resetEventValue($scope.currentEvent); + + //update original value + $scope.currentEventOriginialValue = angular.copy($scope.currentEvent); + + $scope.currentElement.updated = true; + $scope.updateSuccess = true; + }); + } + }; + $scope.updateEventDataValue = function(currentEvent, dataElement){ $scope.updateSuccess = false; @@ -743,11 +791,11 @@ } }; - $scope.resetEventValue = function(currentEvent){ + $scope.resetEventValue = function(){ var continueLoop = true; for(var i=0; i< $scope.dhis2Events.length && continueLoop; i++){ - if($scope.dhis2Events[i].event === currentEvent.event ){ - $scope.dhis2Events[i] = currentEvent; + if($scope.dhis2Events[i].event === $scope.currentEvent.event ){ + $scope.dhis2Events[i] = $scope.currentEvent; continueLoop = false; } } @@ -888,19 +936,6 @@ return status; }; - //Infinite Scroll - $scope.infiniteScroll = {}; - $scope.infiniteScroll.optionsToAdd = 20; - $scope.infiniteScroll.currentOptions = 20; - - $scope.resetInfScroll = function() { - $scope.infiniteScroll.currentOptions = $scope.infiniteScroll.optionsToAdd; - }; - - $scope.addMoreOptions = function(){ - $scope.infiniteScroll.currentOptions += $scope.infiniteScroll.optionsToAdd; - }; - //listen for rule effect changes $scope.$on('ruleeffectsupdated', function(event, args) { $scope.warningMessages = []; === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/services.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/services.js 2015-09-22 16:33:27 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/scripts/services.js 2015-09-25 13:33:59 +0000 @@ -337,6 +337,16 @@ dhis2.ec.store.set('events', fullValue); }); return promise; + }, + updateForEventDate: function(dhis2Event, fullEvent){ + var promise = $http.put('../api/events/' + dhis2Event.event + '/updateEventDate', dhis2Event).then(function(response){ + return response.data; + }, function(){ + dhis2.ec.store.remove('events', fullEvent.event); + fullEvent.id = fullEvent.event; + dhis2.ec.store.set('events', fullEvent); + }); + return promise; } }; }) === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/defaultForm.html' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/defaultForm.html 2015-09-25 07:58:42 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/defaultForm.html 2015-09-25 13:33:59 +0000 @@ -28,8 +28,7 @@ placeholder="{{dhis2CalendarFormat.keyDateFormat}}" d2-date max-date='0' - ng-model="currentEvent.eventDate" - ng-disabled="editingEventInFull" + ng-model="currentEvent.eventDate" ng-required="true" d2-date-validator name="eventDate" @@ -69,7 +68,7 @@ </div> </td> </tr> - <tr ng-repeat="eventGridColumn in eventGridColumns" ng-if="eventGridColumn.id !== 'comment' && eventGridColumn.id !== 'uid' && eventGridColumn.id !== 'event_date' && !hiddenFields[eventGridColumn.id]"> + <tr ng-repeat="eventGridColumn in eventGridColumns" ng-if="eventGridColumn.id !== 'comment' && eventGridColumn.id !== 'uid' && eventGridColumn.id !== 'eventDate' && !hiddenFields[eventGridColumn.id]"> <td > {{eventGridColumn.name}}<span ng-if="eventGridColumn.compulsory" class="required">*</span> </td> @@ -269,8 +268,7 @@ placeholder="{{dhis2CalendarFormat.keyDateFormat}}" d2-date max-date='0' - ng-model="currentEvent.eventDate" - ng-disabled="editingEventInFull" + ng-model="currentEvent.eventDate" ng-required="true" d2-date-validator name="eventDate" === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/ec-custom-form.html' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/ec-custom-form.html 2015-09-21 08:48:11 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/ec-custom-form.html 2015-09-25 13:33:59 +0000 @@ -16,10 +16,8 @@ placeholder="{{dhis2CalendarFormat.keyDateFormat}}" d2-date max-date='0' - ng-model="currentEvent.eventDate" - ng-disabled="editingEventInFull" - ng-required="true" - + ng-model="currentEvent.eventDate" + ng-required="true" d2-date-validator name="eventDate" input-field-id='eventDate' === modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/eventList.html' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/eventList.html 2015-09-24 15:28:23 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/views/eventList.html 2015-09-25 13:33:59 +0000 @@ -295,9 +295,8 @@ max-date="prStDes[eventGridColumn.id].allowFutureDate ? '' : 0" d2-date-validator ng-model="currentEvent[eventGridColumn.id]" - blur-or-change="updateEventDataValue(dhis2Event, eventGridColumn.id)" + blur-or-change="eventGridColumn.id === 'eventDate' ? updateEventDate(dhis2Event, eventGridColumn) : updateEventDataValue(dhis2Event, eventGridColumn.id)" ng-required={{eventGridColumn.compulsory}} - ng-disabled="eventGridColumn.id == 'event_date'" input-field-id={{eventGridColumn.id}} ng-class="getInputNotifcationClass(eventGridColumn.id,false)" name="foo"/> @@ -311,7 +310,6 @@ ng-model="currentEvent[eventGridColumn.id]" blur-or-change="updateEventDataValue(dhis2Event, eventGridColumn.id)" ng-required={{eventGridColumn.compulsory}} - ng-disabled="eventGridColumn.id == 'event_date'" input-field-id={{eventGridColumn.id}} ng-class="getInputNotifcationClass(eventGridColumn.id,false)" name="foo"/> === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.angular.services.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.angular.services.js 2015-09-24 14:38:58 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.angular.services.js 2015-09-25 13:33:59 +0000 @@ -379,8 +379,8 @@ //check if dataelement has optionset if (prStDe.dataElement.optionSetValue) { var optionSetId = prStDe.dataElement.optionSet.id; - newInputField = '<ui-select theme="select2" ' + commonInputFieldProperty + ' on-select="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')" >' + - '<ui-select-match ng-class="getInputNotifcationClass(prStDes.' + fieldId + '.dataElement.id, true)" allow-clear="true" placeholder="' + $translate.instant('select_or_search') + '">{{$select.selected.name || $select.selected}}</ui-select-match>' + + newInputField = '<ui-select style="width:100%;" theme="select2" ' + commonInputFieldProperty + ' on-select="saveDatavalue(prStDes.' + fieldId + ', outerForm.' + fieldId + ')" >' + + '<ui-select-match style="width:100%;" ng-class="getInputNotifcationClass(prStDes.' + fieldId + '.dataElement.id, true)" allow-clear="true" placeholder="' + $translate.instant('select_or_search') + '">{{$select.selected.name || $select.selected}}</ui-select-match>' + '<ui-select-choices ' + ' repeat="option.name as option in optionSets.' + optionSetId + '.options | filter: $select.search | limitTo:maxOptionSize">' + '<span ng-bind-html="option.name | highlight: $select.search"></span>' + @@ -504,8 +504,8 @@ //check if attribute has optionset if (att.optionSetValue) { var optionSetId = att.optionSet.id; - newInputField = '<ui-select theme="select2" ' + commonInputFieldProperty + ' on-select="teiValueUpdated(selectedTei,\'' + attId + '\')" >' + - '<ui-select-match allow-clear="true" placeholder="' + $translate.instant('select_or_search') + '">{{$select.selected.name || $select.selected}}</ui-select-match>' + + newInputField = '<ui-select style="width:100%;" theme="select2" ' + commonInputFieldProperty + ' on-select="teiValueUpdated(selectedTei,\'' + attId + '\')" >' + + '<ui-select-match style="width:100%;" allow-clear="true" placeholder="' + $translate.instant('select_or_search') + '">{{$select.selected.name || $select.selected}}</ui-select-match>' + '<ui-select-choices ' + 'repeat="option.name as option in optionSets.' + optionSetId + '.options | filter: $select.search | limitTo:maxOptionSize">' + '<span ng-bind-html="option.name | highlight: $select.search"></span>' +
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp