MariaDB Connector and Sonar Scans; clean nl
[portal.git] / ecomp-portal-FE-common / client / app / views / user-notifications-admin / user.notifications.modal.controller.js
index 81384ad..65395f1 100644 (file)
                 // // pre-processing
                 if (!($scope.isEditMode)) {
                     var validation = false;
-                    if ($scope.isDateValid($scope.newNotifModel.startTime) && $scope.isDateValid($scope.newNotifModel.endTime) && $scope.newNotifModel.msgHeader != '' && $scope.newNotifModel.msgDescription != '' && ($scope.newNotifModel.startTime < $scope.newNotifModel.endTime)) {
+                    if ($scope.isStartDateValidFromToday($scope.newNotifModel.startTime)&&$scope.isStartDateValidFromToday($scope.newNotifModel.endTime)&&$scope.isDateValid($scope.newNotifModel.startTime) && $scope.isDateValid($scope.newNotifModel.endTime) && $scope.newNotifModel.msgHeader != '' && $scope.newNotifModel.msgDescription != '' && ($scope.newNotifModel.startTime < $scope.newNotifModel.endTime)) {
                         validation = true;
                         if ($scope.newNotifModel.isForAllRoles == 'N') {
                             validation = $scope.checkTreeSelect();
                     $scope.newNotifModel.endTime = $filter('date')($scope.endTime, 'medium');
                 }
             }
+            
+            /*To validate the manual entry of date in MM/DD/YYYY Format*/
 
             $scope.isDateValid = function(time) {
                 if (time == undefined) {
                 var year = startDateformat[2];
                 if (year.length != 4) return false;
                 var composedDate = new Date(year, month, day);
-                return composedDate.getDate() == day &&
-                    composedDate.getMonth() == month &&
-                    composedDate.getFullYear() == year;
-
+                 return composedDate.getDate() == day &&
+                         composedDate.getMonth() == month &&
+                         composedDate.getFullYear() == year;
+            };
+            
+         /*The manual and drop down calendar should be consistent.
+         Start date must be greater than or equal to current date.The end dates are not allowed after the 3 months from current dates*/
+            
+            $scope.isStartDateValidFromToday = function (time) {
+               if(time == undefined){
+                    return false;
+                }
+               if(typeof time == 'object'){
+                       return true;
+               }
+                var startDateformat    =time.split('/');
+                if (startDateformat.length != 3) return true;
+                var day = startDateformat[1];
+                var month = startDateformat[0];
+                 month= parseInt(month)-1;
+                var year = startDateformat[2];
+                if(year.length!=4) return true;
+                var composedDate = new Date(year, month, day);
+              /* As end dates are not allowed after the 3 months from current dates*/
+                var x = 3; //or whatever offset
+                var CurrentDate = new Date();
+                /*If composed date is less than the current date,error message should display*/
+                if(composedDate<CurrentDate)
+                       return false;
+                CurrentDate.setMonth(CurrentDate.getMonth() + x);
+                if(composedDate>CurrentDate)
+                       return false;
+                 return true;
             };
 
 
     userNotificationsModalCtrl.$inject = ['$scope', '$log', 'functionalMenuService', 'confirmBoxService', 'notificationService', '$modal', 'ngDialog', '$state', '$filter', 'items'];
     angular.module('ecompApp').controller('userNotificationsModalCtrl', userNotificationsModalCtrl);
 
-    angular.module('ecompApp').directive('attDatepickerCustom', ['$log', function($log) {
-        return {
-            restrict: 'A',
-            require: 'ngModel',
-            scope: {},
-
-            controller: ['$scope', '$element', '$attrs', '$compile', 'datepickerConfig', 'datepickerService', function($scope, $element, $attrs, $compile, datepickerConfig, datepickerService) {
-                var dateFormatString = angular.isDefined($attrs.dateFormat) ? $scope.$parent.$eval($attrs.dateFormat) : datepickerConfig.dateFormat;
-                var selectedDateMessage = '<div class="sr-focus hidden-spoken" tabindex="-1">the date you selected is {{$parent.current | date : \'' + dateFormatString + '\'}}</div>';
-                $element.removeAttr('att-datepicker-custom');
-                $element.removeAttr('ng-model');
-                $element.attr('ng-value', '$parent.current |  date:"EEEE, MMMM d, y"');
-                $element.attr('aria-describedby', 'datepicker');
-
-                $element.attr('maxlength', 10);
-
-                var wrapperElement = angular.element('<div></div>');
-                wrapperElement.attr('datepicker-popup', '');
-                wrapperElement.attr('current', 'current');
-
-                datepickerService.setAttributes($attrs, wrapperElement);
-                datepickerService.bindScope($attrs, $scope);
-
-                wrapperElement.html('');
-                wrapperElement.append($element.prop('outerHTML'));
-                if (navigator.userAgent.match(/MSIE 8/) === null) {
-                    wrapperElement.append(selectedDateMessage);
-                }
-                var elm = wrapperElement.prop('outerHTML');
-                elm = $compile(elm)($scope);
-                $element.replaceWith(elm);
-            }],
-            link: function(scope, elem, attr, ctrl) {
-                if (!ctrl) {
-                    // do nothing if no ng-model
-                    $log.error("ng-model is required.");
-                    return;
-                }
-
-                scope.$watch('current', function(value) {
-                    ctrl.$setViewValue(value);
-                });
-                ctrl.$render = function() {
-                    scope.current = ctrl.$viewValue;
-                };
-
-            }
-        };
-    }]);
-
-
 })();
\ No newline at end of file