@@ -32,33 +32,34 @@ angular.module('starter').controller('MeasurementAddCtrl', ["$scope", "$q", "$ti
3232 $scope . state . title = 'Record a Measurement' ;
3333 $scope . state . selectedDate = moment ( ) ;
3434 $scope . state . units = qm . unitHelper . getNonAdvancedUnits ( ) ;
35- if ( $stateParams . trackingReminder ) {
36- setupTrackingByReminderNotification ( $stateParams . trackingReminder ) ;
37- } else if ( $stateParams . measurement ) {
38- setupTrackingByMeasurement ( $stateParams . measurement ) ;
39- } else if ( qm . urlHelper . getParam ( 'measurementObject' , window . location . href , true ) ) {
40- setupTrackingByMeasurement ( JSON . parse ( qm . urlHelper . getParam ( 'measurementObject' , window . location . href , true ) ) ) ;
41- } else if ( $stateParams . variableObject ) {
42- setupFromVariable ( $stateParams . variableObject ) ;
43- } else if ( qm . urlHelper . getParam ( 'trackingReminderObject' , window . location . href , true ) ) {
44- setupTrackingByReminderNotification ( JSON . parse ( qm . urlHelper . getParam ( 'trackingReminderObject' , window . location . href , true ) ) ) ;
45- } else if ( $stateParams . reminderNotification ) {
46- setupTrackingByReminderNotification ( $stateParams . reminderNotification ) ;
47- } else if ( qm . urlHelper . getParam ( 'measurementId' , location . href , true ) ) {
48- setMeasurementVariablesByMeasurementId ( ) . then ( function ( ) {
49- if ( ! $scope . state . measurementIsSetup ) {
50- $scope . goBack ( ) ;
51- }
35+ var reminderFromUrl = qm . urlHelper . getParam ( 'trackingReminderObject' , window . location . href , true ) ;
36+ var measurementFromUrl = qm . urlHelper . getParam ( 'measurementObject' , window . location . href , true ) ;
37+ var tr = $stateParams . trackingReminder ;
38+ var m = $stateParams . measurement ;
39+ var v = $stateParams . variableObject ;
40+ var n = $stateParams . reminderNotification ;
41+ var id = qm . urlHelper . getParam ( 'measurementId' , location . href , true ) ;
42+ if ( tr ) {
43+ setupTrackingByReminder ( tr ) ;
44+ } else if ( m ) {
45+ setupTrackingByMeasurement ( m ) ;
46+ } else if ( measurementFromUrl ) {
47+ setupTrackingByMeasurement ( JSON . parse ( measurementFromUrl ) ) ;
48+ } else if ( v ) {
49+ setupFromVariable ( v ) ;
50+ } else if ( reminderFromUrl ) {
51+ setupTrackingByReminder ( JSON . parse ( reminderFromUrl ) ) ;
52+ } else if ( n ) {
53+ setupTrackingByReminder ( n ) ;
54+ } else if ( id ) {
55+ setMeasurementVariablesByMeasurementId ( id ) . then ( function ( ) {
56+ if ( ! $scope . state . measurementIsSetup ) { $scope . goBack ( ) ; }
5257 } ) ;
5358 } else if ( $stateParams . variableName ) {
5459 setupFromVariableName ( $stateParams . variableName ) ;
5560 }
56- if ( ! $scope . state . measurementIsSetup ) {
57- setupFromUrlParameters ( ) ;
58- }
59- if ( ! $scope . state . measurementIsSetup ) {
60- setupFromVariable ( qm . getPrimaryOutcomeVariable ( ) ) ;
61- }
61+ if ( ! $scope . state . measurementIsSetup ) { setupFromUrlParameters ( ) ; }
62+ if ( ! $scope . state . measurementIsSetup ) { setupFromVariable ( qm . getPrimaryOutcomeVariable ( ) ) ; }
6263 } ) ;
6364 $scope . $on ( '$ionicView.enter' , function ( e ) {
6465 qmLogService . debug ( '$ionicView.enter ' + $state . current . name ) ;
@@ -208,12 +209,12 @@ angular.module('starter').controller('MeasurementAddCtrl', ["$scope", "$q", "$ti
208209 var startTimeEpoch = qm . urlHelper . getParam ( 'startTimeEpoch' , location . href , true ) ;
209210 var value = qm . urlHelper . getParam ( 'value' , location . href , true ) ;
210211 if ( unitAbbreviatedName || variableName || startTimeEpoch || value ) {
211- var measurementObject = { } ;
212- measurementObject . unitAbbreviatedName = unitAbbreviatedName ;
213- measurementObject . variableName = variableName ;
214- measurementObject . startTimeEpoch = startTimeEpoch ;
215- measurementObject . value = value ;
216- setupTrackingByMeasurement ( measurementObject ) ;
212+ var m = { } ;
213+ m . unitAbbreviatedName = unitAbbreviatedName ;
214+ m . variableName = variableName ;
215+ m . startTimeEpoch = startTimeEpoch ;
216+ m . value = value ;
217+ setupTrackingByMeasurement ( m ) ;
217218 }
218219 } ;
219220 function isYesNo ( ) {
@@ -247,20 +248,14 @@ angular.module('starter').controller('MeasurementAddCtrl', ["$scope", "$q", "$ti
247248 var category = qmService . getVariableCategoryInfo ( v . variableCategoryName ) ;
248249 setupUnit ( category . defaultUnitAbbreviatedName , v . valence ) ;
249250 }
250- if ( v . upc ) { $scope . state . measurement . upc = v . upc ; }
251- if ( v . inputType ) { $scope . state . measurement . inputType = v . inputType ; }
252- $scope . state . measurement . variableName = v . name ;
253- $scope . state . measurement . maximumAllowedValue = v . maximumAllowedValue ;
254- $scope . state . measurement . minimumAllowedValue = v . minimumAllowedValue ;
255- if ( ! $scope . state . measurement . variableName ) { $scope . state . measurement . variableName = v . variableName ; }
256- if ( $scope . state . measurement . variableName . toLowerCase ( ) . indexOf ( 'blood pressure' ) > - 1 ) { $rootScope . bloodPressure . show = true ; }
257- if ( v . variableCategoryName ) {
258- $scope . state . measurement . variableCategoryName = v . variableCategoryName ;
259- setupVariableCategory ( v . variableCategoryName ) ;
251+ var m = qm . measurements . newMeasurement ( v ) ;
252+ if ( m . variableName . toLowerCase ( ) . indexOf ( 'blood pressure' ) > - 1 ) { $rootScope . bloodPressure . show = true ; }
253+ if ( m . variableCategoryName ) {
254+ setupVariableCategory ( m . variableCategoryName ) ;
260255 } else {
261256 $scope . state . showVariableCategorySelector = true ;
262257 }
263- $scope . state . measurement . combinationOperation = ( v . combinationOperation ) ? v . combinationOperation : 'MEAN' ;
258+ $scope . state . measurement = m ;
264259 $scope . state . measurementIsSetup = true ;
265260 // Fill in default value as last value if not /5
266261 /** @namespace variableObject.lastValue */
@@ -278,21 +273,20 @@ angular.module('starter').controller('MeasurementAddCtrl', ["$scope", "$q", "$ti
278273 qmLogService . error ( error ) ;
279274 } ) ;
280275 } ;
281- var setMeasurementVariablesByMeasurementId = function ( ) {
276+ var setMeasurementVariablesByMeasurementId = function ( id ) {
282277 var deferred = $q . defer ( ) ;
283278 qmService . showBlackRingLoader ( ) ;
284- qmService . getMeasurementById ( qm . urlHelper . getParam ( 'measurementId' , location . href , true ) )
285- . then ( function ( measurementObject ) {
279+ qmService . getMeasurementById ( id )
280+ . then ( function ( m ) {
286281 qmService . hideLoader ( ) ;
287282 $scope . state . measurementIsSetup = true ;
288- setupTrackingByMeasurement ( measurementObject ) ;
283+ setupTrackingByMeasurement ( m ) ;
289284 deferred . resolve ( ) ;
290285 } , function ( error ) {
291- qmService . hideLoader ( ) ;
292- qmLogService . error ( $state . current . name + ": " + "Error response: " , error ) ;
293- deferred . reject ( error ) ;
294- }
295- ) ;
286+ qmService . hideLoader ( ) ;
287+ qmLogService . error ( $state . current . name + ": " + "Error response: " , error ) ;
288+ deferred . reject ( error ) ;
289+ } ) ;
296290 return deferred . promise ;
297291 } ;
298292 $scope . goToAddReminder = function ( ) {
@@ -310,7 +304,7 @@ angular.module('starter').controller('MeasurementAddCtrl', ["$scope", "$q", "$ti
310304 qmLogService . error ( 'No unitAbbreviatedName provided to setupValueFieldType' ) ;
311305 return false ;
312306 }
313- $scope . state . measurement . inputType = qmService . getInputType ( unitAbbreviatedName , valence , variableName ) ;
307+ $scope . state . measurement . inputType = qm . unitHelper . getInputType ( unitAbbreviatedName , valence , variableName ) ;
314308 }
315309 function setVariableObjectFromMeasurement ( ) {
316310 $scope . state . variableObject = {
@@ -330,42 +324,29 @@ angular.module('starter').controller('MeasurementAddCtrl', ["$scope", "$q", "$ti
330324 }
331325 }
332326 }
333- var setupTrackingByMeasurement = function ( measurementObject ) {
334- if ( isNaN ( measurementObject . startTimeEpoch ) ) {
335- measurementObject . startTimeEpoch = moment ( measurementObject . startTimeEpoch ) . unix ( ) ;
336- }
337- if ( ! measurementObject . id ) {
338- measurementObject . prevStartTimeEpoch = measurementObject . startTimeEpoch ;
339- }
327+ var setupTrackingByMeasurement = function ( m ) {
328+ if ( isNaN ( m . startTimeEpoch ) ) { m . startTimeEpoch = moment ( m . startTimeEpoch ) . unix ( ) ; }
329+ if ( ! m . id ) { m . prevStartTimeEpoch = m . startTimeEpoch ; }
340330 $scope . state . title = "Edit Measurement" ;
341- $scope . state . selectedDate = moment ( measurementObject . startTimeEpoch * 1000 ) ;
342- $scope . state . measurement = measurementObject ;
343- qmLog . info ( "Setting $scope.state.measurement to " , $scope . state . measurement ) ;
331+ $scope . state . selectedDate = moment ( m . startTimeEpoch * 1000 ) ;
332+ $scope . state . measurement = m ;
333+ qmLog . info ( "Setting $scope.state.measurement to " , m ) ;
344334 $scope . state . measurementIsSetup = true ;
345- setupUnit ( $scope . state . measurement . unitAbbreviatedName , $scope . state . measurement . valence ) ;
346- if ( $scope . state . measurement . variable ) {
347- $scope . state . measurement . variableName = $scope . state . measurement . variable ;
348- }
335+ setupUnit ( m . unitAbbreviatedName , m . valence ) ;
349336 setStateVariable ( ) ;
350337 } ;
351- var setupTrackingByReminderNotification = function ( n ) {
352- if ( n ) {
353- $scope . state . title = "Record Measurement" ;
354- if ( ! $scope . state . measurement . unitAbbreviatedName ) {
355- setupUnit ( n . unitAbbreviatedName ) ;
356- }
357- $scope . state . hideRemindMeButton = true ;
358- $scope . state . measurement . value = n . defaultValue ;
359- $scope . state . measurement . variableName = n . variableName ;
360- $scope . state . measurement . variableCategoryName = getVariableCategoryName ( n ) ;
361- $scope . state . measurement . combinationOperation = n . combinationOperation ;
362- if ( n . trackingReminderNotificationTimeEpoch !== "undefined" && n . trackingReminderNotificationTimeEpoch ) {
363- $scope . state . selectedDate = moment ( n . trackingReminderNotificationTimeEpoch * 1000 ) ;
364- }
365- $scope . state . measurementIsSetup = true ;
366- setupUnit ( n . unitAbbreviatedName , n . valence ) ;
367- setStateVariable ( ) ;
338+ var setupTrackingByReminder = function ( n ) {
339+ $scope . state . title = "Record Measurement" ;
340+ if ( ! $scope . state . measurement . unitAbbreviatedName ) {
341+ setupUnit ( n . unitAbbreviatedName ) ;
368342 }
343+ $scope . state . hideRemindMeButton = true ;
344+ var m = qm . measurements . fromNotification ( n ) ;
345+ $scope . state . measurement = m ;
346+ if ( m . startTime ) { $scope . state . selectedDate = moment ( m . startTime * 1000 ) ; }
347+ $scope . state . measurementIsSetup = true ;
348+ setupUnit ( n . unitAbbreviatedName , n . valence ) ;
349+ setStateVariable ( ) ;
369350 // Create variableObject
370351 if ( ! $scope . state . variableObject ) {
371352 if ( $stateParams . variableObject !== null && typeof $stateParams . variableObject !== "undefined" ) {
0 commit comments