← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 20806: event/tracker-capture: notify user when custom dataentry/registration form contains invalid datae...

 

------------------------------------------------------------
revno: 20806
committer: Abyot Asalefew Gizaw <abyota@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2015-10-20 14:54:44 +0200
message:
  event/tracker-capture: notify user when custom dataentry/registration form contains invalid dataelement/attribute.
modified:
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/i18n/i18n_app.properties
  dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app.properties
  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/i18n/i18n_app.properties'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/i18n/i18n_app.properties	2015-10-15 13:29:41 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-capture/i18n/i18n_app.properties	2015-10-20 12:54:44 +0000
@@ -147,4 +147,5 @@
 extend_menu=Extend menu
 show_main_menu=Show main menu
 close_editing=Close editing
-fill_all_category_options=Please fill all category options
\ No newline at end of file
+fill_all_category_options=Please fill all category options
+custom_form_has_invalid_dataelement=Custom form has invalid data element.
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app.properties'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app.properties	2015-10-16 13:43:11 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-tracker-capture/i18n/i18n_app.properties	2015-10-20 12:54:44 +0000
@@ -370,4 +370,6 @@
 stick_right_widgets=Stick right side widgets
 unstick_right_widgets=Unstick right side widgets
 existing_associate=Existing associate
-value_not_unique=Value not unique
\ No newline at end of file
+value_not_unique=Value not unique
+custom_form_has_invalid_attribute=Custom form has invalid attribute.
+custom_form_has_invalid_dataelement=Custom form has invalid data element.
\ No newline at end of file

=== 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-10-15 14:05:49 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.angular.services.js	2015-10-20 12:54:44 +0000
@@ -308,7 +308,7 @@
 })
 
 /* service for dealing with custom form */
-.service('CustomFormService', function ($translate) {
+.service('CustomFormService', function ($translate, DialogService) {
 
     return {
         getForProgramStage: function (programStage, programStageDataElements) {
@@ -367,15 +367,16 @@
                                 attributes['name'] = fieldId;
                             }
 
-                            var prStDe = programStageDataElements[fieldId];
-
-                            var commonInputFieldProperty = this.getAttributesAsString(attributes) +
-                                    ' ng-model="currentEvent.' + fieldId + '" ' +
-                                    ' input-field-id="' + fieldId + '"' +                                   
-                                    ' ng-disabled="isHidden(prStDes.' + fieldId + '.dataElement.id) || selectedEnrollment.status===\'CANCELLED\' || selectedEnrollment.status===\'COMPLETED\' || currentEvent[uid]==\'uid\' || currentEvent.editingNotAllowed"' +
-                                    ' ng-required="{{prStDes.' + fieldId + '.compulsory}}" ';
+                            var prStDe = programStageDataElements[fieldId];                            
 
                             if (prStDe && prStDe.dataElement && prStDe.dataElement.valueType) {
+                            	
+                            	var commonInputFieldProperty = this.getAttributesAsString(attributes) +
+	                                ' ng-model="currentEvent.' + fieldId + '" ' +
+	                                ' input-field-id="' + fieldId + '"' +                                   
+	                                ' ng-disabled="isHidden(prStDes.' + fieldId + '.dataElement.id) || selectedEnrollment.status===\'CANCELLED\' || selectedEnrollment.status===\'COMPLETED\' || currentEvent[uid]==\'uid\' || currentEvent.editingNotAllowed"' +
+	                                ' ng-required="{{prStDes.' + fieldId + '.compulsory}}" ';
+                            	
                                 //check if dataelement has optionset								
                                 if (prStDe.dataElement.optionSetValue) {
                                     var optionSetId = prStDe.dataElement.optionSet.id;                 
@@ -442,6 +443,14 @@
                                     }
                                 }
                             }
+                            else{
+                            	var dialogOptions = {
+            		                headerText: 'error',
+            		                bodyText: 'custom_form_has_invalid_dataelement'
+            		            };		
+            		            DialogService.showDialog({}, dialogOptions);
+            		            return;
+                            }
                         }
                         newInputField = newInputField + ' <span ng-messages="outerForm.' + fieldId + '.$error" class="required" ng-if="interacted(outerForm.' + fieldId + ')" ng-messages-include="../dhis-web-commons/angular-forms/error-messages.html"></span>';
 
@@ -481,18 +490,15 @@
                         attributes[this.nodeName] = this.value;
                     });
 
-                    var attId = '', newInputField, programId;
+                    var attId = '', fieldName = '', newInputField, programId;
                     if (attributes.hasOwnProperty('attributeid')) {
                         attId = attributes['attributeid'];
-
-                        var fieldName = attId;
-                        var attMaxDate = trackedEntityFormAttributes[attId].allowFutureDate ? '' : 0;
-
-                        var att = trackedEntityFormAttributes[attId];
-                        var isTrackerAssociate = att.valueType === 'TRACKER_ASSOCIATE';
+                        fieldName = attId;
+                        var att = trackedEntityFormAttributes[attId];                        
 
                         if (att) {
-
+                            var attMaxDate = att.allowFutureDate ? '' : 0;
+                            var isTrackerAssociate = att.valueType === 'TRACKER_ASSOCIATE';
                             var commonInputFieldProperty = ' name="' + fieldName + '"' +
                                     ' element-id="' + i + '"' +
                                     this.getAttributesAsString(attributes) +
@@ -575,7 +581,14 @@
                                 }
                             }
                         }
-
+                        else{
+                        	var dialogOptions = {
+        		                headerText: 'error',
+        		                bodyText: 'custom_form_has_invalid_attribute'
+        		            };		
+        		            DialogService.showDialog({}, dialogOptions);
+        		            return;
+                        }
                     }
 
                     if (attributes.hasOwnProperty('programid')) {