@@ -15,6 +15,7 @@ app.controller('TablesCtrl', function($scope, $http) {
1515 url : "../api/strategicIndicators/current?profile=" + profileId
1616 } ) . then ( function mySuccess ( response ) {
1717 response . data . forEach ( function ( strategicIndicator ) {
18+ strategicIndicator . warning = "" ;
1819 var siDate = new Date ( strategicIndicator . date ) ;
1920 var today = new Date ( ) ;
2021 today . setHours ( 0 ) ;
@@ -58,14 +59,28 @@ app.controller('TablesCtrl', function($scope, $http) {
5859 } ) . then ( function mySuccess ( response ) {
5960 var data = [ ] ;
6061 response . data . forEach ( function ( strategicIndicatorEval ) {
62+ strategicIndicatorEval . warning = "" ;
63+ // "The assessment is X days old." warning have no sense for historical data
64+ var mismatchDays = strategicIndicatorEval . mismatchDays ;
65+ if ( mismatchDays > 0 ) {
66+ strategicIndicatorEval . warning = "The assessment of the factors and the strategic \nindicator has a difference of " + mismatchDays + " days. \n" ;
67+ }
68+
69+ var missingFactors = strategicIndicatorEval . missingFactors ;
70+ if ( missingFactors . length > 0 ) {
71+ var factors = missingFactors . length === 1 ? missingFactors [ 0 ] : [ missingFactors . slice ( 0 , - 1 ) . join ( ", " ) , missingFactors [ missingFactors . length - 1 ] ] . join ( " and " ) ;
72+ strategicIndicatorEval . warning += "The following factors were missing when \nthe strategic indicator was assessed: " + factors ;
73+ }
74+
6175 data . push ( {
6276 id : strategicIndicatorEval . id ,
6377 name : strategicIndicatorEval . name ,
6478 date : strategicIndicatorEval . date ,
6579 description : strategicIndicatorEval . description ,
6680 value : strategicIndicatorEval . value_description ,
6781 categories : strategicIndicatorEval . categories_description ,
68- rationale : strategicIndicatorEval . rationale
82+ rationale : strategicIndicatorEval . rationale ,
83+ warning : strategicIndicatorEval . warning
6984 } ) ;
7085 } ) ;
7186 $scope . data = data ;
@@ -504,6 +519,7 @@ app.controller('TablesCtrl', function($scope, $http) {
504519 } ;
505520
506521 //Warnings
522+ strategicIndicator . warning = "" ;
507523 var siDate = new Date ( strategicIndicatorEval . date ) ;
508524 var today = new Date ( ) ;
509525 today . setHours ( 0 ) ;
@@ -589,6 +605,33 @@ app.controller('TablesCtrl', function($scope, $http) {
589605 } ) . then ( function mySuccess ( response ) {
590606 var data = [ ] ;
591607 response . data . forEach ( function ( factorEval ) {
608+
609+ //Warnings
610+ factorEval . warning = "" ;
611+ var fDate = new Date ( factorEval . date ) ;
612+ var today = new Date ( ) ;
613+ today . setHours ( 0 ) ;
614+ today . setMinutes ( 0 ) ;
615+ today . setSeconds ( 0 ) ;
616+ var millisecondsInOneDay = 86400000 ;
617+ var millisecondsBetweenAssessmentAndToday = today . getTime ( ) - fDate . getTime ( ) ;
618+ var oldAssessment = millisecondsBetweenAssessmentAndToday > millisecondsInOneDay ;
619+ if ( oldAssessment ) {
620+ var daysOld = Math . round ( millisecondsBetweenAssessmentAndToday / millisecondsInOneDay ) ;
621+ factorEval . warning = "The " + factorEval . name + " assessment is " + daysOld + " days old. \n" ;
622+ }
623+
624+ var mismatchDays = factorEval . mismatchDays ;
625+ if ( mismatchDays > 0 ) {
626+ factorEval . warning += "The assessment of the metrics and the " + factorEval . name + " factor has a difference of " + mismatchDays + " days. \n" ;
627+ }
628+
629+ var missingMetrics = factorEval . missingMetrics ;
630+ if ( missingMetrics . length > 0 ) {
631+ var factors = missingMetrics . length === 1 ? missingMetrics [ 0 ] : [ missingMetrics . slice ( 0 , - 1 ) . join ( ", " ) , missingMetrics [ missingMetrics . length - 1 ] ] . join ( " and " ) ;
632+ factorEval . warning += "The following metrics were missing when \nthe " + factorEval . name + " factor was assessed: " + factors ;
633+ }
634+
592635 var id = getParameterByName ( 'id' ) ;
593636 if ( id !== "" ) { // see concrete detailed factor
594637 if ( factorEval . id == id ) {
@@ -600,7 +643,8 @@ app.controller('TablesCtrl', function($scope, $http) {
600643 metricName : metric . name ,
601644 description : metric . description ,
602645 value : metric . value_description ,
603- rationale : metric . rationale
646+ rationale : metric . rationale ,
647+ warning : factorEval . warning
604648 } )
605649 } ) ;
606650 }
@@ -613,11 +657,13 @@ app.controller('TablesCtrl', function($scope, $http) {
613657 metricName : metric . name ,
614658 description : metric . description ,
615659 value : metric . value_description ,
616- rationale : metric . rationale
660+ rationale : metric . rationale ,
661+ warning : factorEval . warning
617662 } )
618663 } ) ;
619664 }
620665 } ) ;
666+ //TODO
621667 $scope . data = data ;
622668 $scope . sortType = 'factorName' ;
623669 $scope . sortReverse = false ;
@@ -810,6 +856,7 @@ app.controller('TablesCtrl', function($scope, $http) {
810856 result = response . data [ 0 ] . factors ;
811857 }
812858 result . forEach ( function ( factor ) {
859+ factor . warning = "" ;
813860 var qfDate = new Date ( factor . date ) ;
814861 var today = new Date ( ) ;
815862 today . setHours ( 0 ) ;
@@ -862,13 +909,26 @@ app.controller('TablesCtrl', function($scope, $http) {
862909 }
863910 console . log ( response . data ) ;
864911 result . forEach ( function ( factorEval ) {
912+ factorEval . warning = "" ;
913+ // "The assessment is X days old." warning have no sense for historical data
914+ var mismatchDays = factorEval . mismatchDays ;
915+ if ( mismatchDays > 0 ) {
916+ factorEval . warning = "The assessment of the metrics and the factors \n has a difference of " + mismatchDays + " days. \n" ;
917+ }
918+
919+ var missingMetrics = factorEval . missingMetrics ;
920+ if ( missingMetrics && missingMetrics . length > 0 ) {
921+ var factors = missingMetrics . length === 1 ? missingMetrics [ 0 ] : [ missingMetrics . slice ( 0 , - 1 ) . join ( ", " ) , missingMetrics [ missingMetrics . length - 1 ] ] . join ( " and " ) ;
922+ factorEval . warning += "The following metrics were missing when \nthe factor was assessed: " + factors ;
923+ }
865924 data . push ( {
866925 id : factorEval . id ,
867926 date : factorEval . date ,
868927 name : factorEval . name ,
869928 description : factorEval . description ,
870929 value : factorEval . value_description ,
871- rationale : factorEval . rationale
930+ rationale : factorEval . rationale ,
931+ warning : factorEval . warning
872932 } )
873933 } ) ;
874934 $scope . data = data ;
0 commit comments