18b4828a6SIftekharul Islamwindow.angular && (function(angular) { 28b4828a6SIftekharul Islam 'use strict'; 38b4828a6SIftekharul Islam 4d27bb135SAndrew Geissler angular.module('app.common.directives').directive('logFilter', [ 5d27bb135SAndrew Geissler 'APIUtils', 6d27bb135SAndrew Geissler function(APIUtils) { 78b4828a6SIftekharul Islam return { 88b4828a6SIftekharul Islam 'restrict': 'E', 9bbcf670aSEd Tanous 'template': require('./log-filter.html'), 10d27bb135SAndrew Geissler 'controller': [ 11d27bb135SAndrew Geissler '$rootScope', '$scope', 'dataService', '$location', 12d27bb135SAndrew Geissler function($rootScope, $scope, dataService, $location) { 138b4828a6SIftekharul Islam $scope.dataService = dataService; 14*4986603eSDerick Montague $scope.supportsDateInput = true; 15*4986603eSDerick Montague 168b4828a6SIftekharul Islam $scope.toggleSeverityAll = function() { 178b4828a6SIftekharul Islam $scope.selectedSeverity.all = !$scope.selectedSeverity.all; 188b4828a6SIftekharul Islam 198b4828a6SIftekharul Islam if ($scope.selectedSeverity.all) { 208b4828a6SIftekharul Islam $scope.selectedSeverity.low = false; 218b4828a6SIftekharul Islam $scope.selectedSeverity.medium = false; 228b4828a6SIftekharul Islam $scope.selectedSeverity.high = false; 238b4828a6SIftekharul Islam } 24ba5e3f34SAndrew Geissler }; 258b4828a6SIftekharul Islam 268b4828a6SIftekharul Islam $scope.toggleSeverity = function(severity) { 27d27bb135SAndrew Geissler $scope.selectedSeverity[severity] = 28d27bb135SAndrew Geissler !$scope.selectedSeverity[severity]; 298b4828a6SIftekharul Islam 30df3bd124SMichael Davis if (['high', 'medium', 'low'].indexOf(severity) > -1) { 3196bbf310SIftekharul Islam if ($scope.selectedSeverity[severity] == false && 3296bbf310SIftekharul Islam (!$scope.selectedSeverity.low && 3396bbf310SIftekharul Islam !$scope.selectedSeverity.medium && 34d27bb135SAndrew Geissler !$scope.selectedSeverity.high)) { 35df3bd124SMichael Davis $scope.selectedSeverity.all = true; 36df3bd124SMichael Davis return; 37df3bd124SMichael Davis } 38df3bd124SMichael Davis } 39df3bd124SMichael Davis 408b4828a6SIftekharul Islam if ($scope.selectedSeverity.low && 418b4828a6SIftekharul Islam $scope.selectedSeverity.medium && 428b4828a6SIftekharul Islam $scope.selectedSeverity.high) { 438b4828a6SIftekharul Islam $scope.selectedSeverity.all = true; 448b4828a6SIftekharul Islam $scope.selectedSeverity.low = false; 458b4828a6SIftekharul Islam $scope.selectedSeverity.medium = false; 468b4828a6SIftekharul Islam $scope.selectedSeverity.high = false; 47d27bb135SAndrew Geissler } else { 488b4828a6SIftekharul Islam $scope.selectedSeverity.all = false; 498b4828a6SIftekharul Islam } 50ba5e3f34SAndrew Geissler }; 51*4986603eSDerick Montague 52*4986603eSDerick Montague /** 53*4986603eSDerick Montague * Handle browsers that don't support the native date input element 54*4986603eSDerick Montague * IE 11 and Safari do not support this native date element and 55*4986603eSDerick Montague * users cannot select a date from a browser generated date picker. 56*4986603eSDerick Montague * This is a test so that we can indicate to the user the proper 57*4986603eSDerick Montague * date format based on date input element support. 58*4986603eSDerick Montague */ 59*4986603eSDerick Montague const testDateInputSupport = () => { 60*4986603eSDerick Montague const firstDateInput = document.querySelector('input[type=date]'); 61*4986603eSDerick Montague 62*4986603eSDerick Montague if (firstDateInput && firstDateInput.type == 'text') { 63*4986603eSDerick Montague $scope.supportsDateInput = false; 64*4986603eSDerick Montague } 65*4986603eSDerick Montague }; 66*4986603eSDerick Montague 67*4986603eSDerick Montague testDateInputSupport(); 68d27bb135SAndrew Geissler } 69d27bb135SAndrew Geissler ] 708b4828a6SIftekharul Islam }; 71d27bb135SAndrew Geissler } 72d27bb135SAndrew Geissler ]); 738b4828a6SIftekharul Islam})(window.angular); 74