Replace ecomp references
[portal.git] / ecomp-portal-FE-common / client / app / views / user-notifications-admin / user.notifications.modal.controller.js
index 81384ad..59e5f5f 100644 (file)
@@ -1,21 +1,39 @@
 /*-
- * ================================================================================
- * ECOMP Portal
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software except in compliance with the License.
  * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
+ *             http://www.apache.org/licenses/LICENSE-2.0
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ================================================================================
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *             https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END============================================
+ *
+ * 
  */
 'use strict';
 
                 // // 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