From 767034a0b4fe5603edce0b95801a1d4cae907050 Mon Sep 17 00:00:00 2001 From: Viridiana J Amezcua Orona Date: Wed, 15 Feb 2017 14:52:15 -0600 Subject: [PATCH 1/4] Add DateService Services --- dashboard-project-app/client/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/dashboard-project-app/client/index.html b/dashboard-project-app/client/index.html index 704cfda..20f0903 100755 --- a/dashboard-project-app/client/index.html +++ b/dashboard-project-app/client/index.html @@ -111,6 +111,7 @@ + From c78c55ffbb1ebcb980ce97683ca08a413e7f3dbd Mon Sep 17 00:00:00 2001 From: Viridiana J Amezcua Orona Date: Wed, 15 Feb 2017 14:52:36 -0600 Subject: [PATCH 2/4] template for warnings --- dashboard-project-app/client/app/app.css | 5 +++++ .../client/app/projectDetail/views/quickResume.html | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/dashboard-project-app/client/app/app.css b/dashboard-project-app/client/app/app.css index 7a97efc..aaafed3 100755 --- a/dashboard-project-app/client/app/app.css +++ b/dashboard-project-app/client/app/app.css @@ -133,3 +133,8 @@ h3 { .uncompress-text{ max-height: none !important; } + +.text-warning{ + font-size: 11px; + font-weight: bolder; +} diff --git a/dashboard-project-app/client/app/projectDetail/views/quickResume.html b/dashboard-project-app/client/app/projectDetail/views/quickResume.html index 6d50670..931d164 100755 --- a/dashboard-project-app/client/app/projectDetail/views/quickResume.html +++ b/dashboard-project-app/client/app/projectDetail/views/quickResume.html @@ -38,10 +38,22 @@
Created on {{userStory.createdOn}} + +
+ + {{warnings.createdOn.message}} +
+
Updated on {{userStory.updatedOn}} + +
+ + {{warnings.updatedOn.message}} +
+
From 0b9aade0f09d888a5b55bbedd4ca9295a7ff3f33 Mon Sep 17 00:00:00 2001 From: Viridiana J Amezcua Orona Date: Wed, 15 Feb 2017 14:52:56 -0600 Subject: [PATCH 3/4] Implement validation in dates --- .../controllers/projectDetail.controller.js | 41 +++++++++---- .../app/projectDetail/services/dateService.js | 42 +++++++++++++ .../controllers/projectList.controller.js | 61 +++++++++++++++---- 3 files changed, 121 insertions(+), 23 deletions(-) create mode 100644 dashboard-project-app/client/app/projectDetail/services/dateService.js diff --git a/dashboard-project-app/client/app/projectDetail/controllers/projectDetail.controller.js b/dashboard-project-app/client/app/projectDetail/controllers/projectDetail.controller.js index e00724a..151ea24 100755 --- a/dashboard-project-app/client/app/projectDetail/controllers/projectDetail.controller.js +++ b/dashboard-project-app/client/app/projectDetail/controllers/projectDetail.controller.js @@ -2,12 +2,13 @@ (function () { angular.module('dashboardProjectApp') - .controller('projectDetailController', ['$scope','$state', 'UserStory', '$location', - function($scope, $state, UserStory, $location) { + .controller('projectDetailController', ['$scope','$state', 'UserStory', '$location', 'DateService', + function($scope, $state, UserStory, $location, DateService) { $scope.taskId = $state.params.id; $scope.openTasks = {}; - $scope.showText = {} + $scope.showText = {}; + $scope.warnings = {}; $scope.closeTask = function(task){ $scope.openTasks[task] = !$scope.openTasks[task]; @@ -35,9 +36,20 @@ return 'fa fa-cog'; } - $scope.actualProject = {}; + function setWarning(key, message){ + + if(message){ + $scope.warnings[key] = { + message:message + } + }else{ + $scope.warnings[key] = message + } + + } + function getFile() { UserStory.findById({id:$scope.taskId}, function success(userStory) { @@ -53,15 +65,20 @@ description; } - $scope.userStory.createdOn = moment($scope.userStory. - createdOn, "DD-MM-YYYY").format("MM-DD-YYYY"); - if($scope.userStory.updatedOn !=='') { - $scope.userStory.updatedOn = moment($scope.userStory. - updatedOn, "YYYY-MM-DD").format("MM-DD-YYYY"); - } else { - $scope.userStory.updatedOn = $scope.userStory.createdOn; - } + $scope.userStory.createdOn = DateService.validateDate( + $scope.userStory.createdOn, + 'createdOn', setWarning); + + $scope.userStory.updatedOn = DateService.validateDate( + $scope.userStory.updatedOn, + 'updatedOn', setWarning); + + if(!$scope.warnings['createdOn'] + && !$scope.warnings['updatedOn']){ + DateService.compareDates($scope.userStory.createdOn, + $scope.userStory.updatedOn, 'createdOn', setWarning); + } for(var key in $scope.userStory.tasks_status) { $scope.actualProject[key] = $scope.userStory. diff --git a/dashboard-project-app/client/app/projectDetail/services/dateService.js b/dashboard-project-app/client/app/projectDetail/services/dateService.js new file mode 100644 index 0000000..30e4b25 --- /dev/null +++ b/dashboard-project-app/client/app/projectDetail/services/dateService.js @@ -0,0 +1,42 @@ +angular.module('dashboardProjectApp') + .service('DateService', ['$http', function($http) { + + + this.validateDate = function(date, field, setWarning){ + var newDate = date; + + var format = null; + + + if(moment(newDate, 'MM-DD-YYYY', true).isValid()){ + format = 'MM-DD-YYYY'; + } + + if(moment(newDate, 'YYYY-MM-DD', true).isValid()){ + format = 'YYYY-MM-DD'; + } + + if(moment(newDate, 'DD-MM-YYYY', true).isValid()){ + format = 'DD-MM-YYYY'; + } + + if(format){ + newDate = moment(newDate, format).format("MM-DD-YYYY"); + setWarning(field, null); + }else{ + setWarning(field, 'Warning: The date is not valid'); + } + return newDate; + } + + this.compareDates = function(craetedOn, updatedOn, field, setWarning){ + + //If both valid date, compare + if (updatedOn < craetedOn){ + setWarning(field, "Warning: This date can't be bigger"); + }else{ + setWarning(field, null); + } + } + + }]); diff --git a/dashboard-project-app/client/app/projectList/controllers/projectList.controller.js b/dashboard-project-app/client/app/projectList/controllers/projectList.controller.js index 2914c6c..17abbf5 100755 --- a/dashboard-project-app/client/app/projectList/controllers/projectList.controller.js +++ b/dashboard-project-app/client/app/projectList/controllers/projectList.controller.js @@ -2,38 +2,77 @@ angular.module('dashboardProjectApp').controller('projectListCtrl', function( $scope, - UserStory + UserStory, + DateService ){ var data = []; var lastUpdate; + $scope.warnings = {}; + + function setWarning(key, message){ + + if(message){ + $scope.warnings[key] = { + message:message + } + }else{ + $scope.warnings[key] = message + } + } + + + function getTemplateWarning(key){ + var template = ''; + if($scope.warnings[key]){ + template = '
'+ + ''+ + $scope.warnings[key].message+ + '
'; + } + return template; + } + function getFiles() { UserStory.find( function success(userStories, fillTable) { new Promise(function(resolve, reject) { var stringDate, realDate; - userStories.forEach(function each (story) { - console.log('userStories', story); - if(story.lastUpdate !== '') { - lastUpdate = moment(story.lastUpdate, "YYYY-MM-DD").format("MM-DD-YYYY"); - } else { - lastUpdate = moment(story.dateCreated, "DD-MM-YYYY").format("MM-DD-YYYY"); + console.log('story', story); + + story.dateCreated = DateService.validateDate( + story.dateCreated, + 'dateCreated', setWarning); + + if(story.lastUpdate !=='') { + story.lastUpdate = moment(story.lastUpdate, + "YYYY-MM-DD").format("MM-DD-YYYY"); + } else { + story.lastUpdate = story.dateCreated; + } + + if(!$scope.warnings['dateCreated'] + && !$scope.warnings['lastUpdate']){ + DateService.compareDates(story.dateCreated, + story.lastUpdate, 'dateCreated', setWarning); } + + data.push( { userStory: story.id+'-'+story.userStory, - dateCreated: moment(story.dateCreated, "DD-MM-YYYY").format("MM-DD-YYYY"), - lastUpdate: lastUpdate, + dateCreated: story.dateCreated + getTemplateWarning('dateCreated'), + lastUpdate: story.lastUpdate + getTemplateWarning('lastUpdate'), progressPercentage: story.completed.percentage, progressLabel: story.completed.completed + ' / ' + story.completed.total } ) - console.log('data', data); - resolve(data); + resolve(data); }); + }) .then(function(result) { $(function () { From a1d5e55041f950dd85c8dce09c801c7c51faa140 Mon Sep 17 00:00:00 2001 From: Viridiana J Amezcua Orona Date: Wed, 15 Feb 2017 16:27:56 -0600 Subject: [PATCH 4/4] compare date with moment library --- .../controllers/projectDetail.controller.js | 11 ++++++++--- .../client/app/projectDetail/services/dateService.js | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/dashboard-project-app/client/app/projectDetail/controllers/projectDetail.controller.js b/dashboard-project-app/client/app/projectDetail/controllers/projectDetail.controller.js index 151ea24..04d8f1c 100755 --- a/dashboard-project-app/client/app/projectDetail/controllers/projectDetail.controller.js +++ b/dashboard-project-app/client/app/projectDetail/controllers/projectDetail.controller.js @@ -70,9 +70,14 @@ $scope.userStory.createdOn, 'createdOn', setWarning); - $scope.userStory.updatedOn = DateService.validateDate( - $scope.userStory.updatedOn, - 'updatedOn', setWarning); + + if($scope.userStory.updatedOn !=='') { + $scope.userStory.updatedOn = moment($scope.userStory.updatedOn, + "YYYY-MM-DD").format("MM-DD-YYYY"); + } else { + $scope.userStory.updatedOn = $scope.userStory.createdOn; + } + if(!$scope.warnings['createdOn'] && !$scope.warnings['updatedOn']){ diff --git a/dashboard-project-app/client/app/projectDetail/services/dateService.js b/dashboard-project-app/client/app/projectDetail/services/dateService.js index 30e4b25..779988e 100644 --- a/dashboard-project-app/client/app/projectDetail/services/dateService.js +++ b/dashboard-project-app/client/app/projectDetail/services/dateService.js @@ -32,7 +32,7 @@ angular.module('dashboardProjectApp') this.compareDates = function(craetedOn, updatedOn, field, setWarning){ //If both valid date, compare - if (updatedOn < craetedOn){ + if (moment(craetedOn).isAfter(updatedOn)){ setWarning(field, "Warning: This date can't be bigger"); }else{ setWarning(field, null);