{"version":3,"sources":["baseApp.js","cgModule.js","dropdownMultiselect.js","rwCourseListingItem.js","rwEnter.js","textFilter.js","sectorFilter.js","guidedLearningHoursFilter.js","ageGroupsFilter.js","subSectorFilter.js","cgPeopleController.js","cgTechbacFilterController.js"],"names":["baseApp","angular","module","cgPeople","directiveModule","directive","$filter","$document","$compile","$parse","restrict","scope","selectedModel","options","extraSettings","events","searchFilter","translationTexts","groupBy","showIcons","template","element","attrs","checkboxes","html","link","$scope","$element","$attrs","$dropdownTrigger","children","getFindObj","id","findObj","settings","externalIdProp","idProp","clearObject","object","prop","toggleDropdown","open","checkboxClick","$event","setSelectedItem","stopImmediatePropagation","externalEvents","onItemSelect","noop","onItemDeselect","onSelectAll","onDeselectAll","onInitDone","onMaxSelectionReached","dynamicTitle","scrollable","scrollableHeight","closeOnBlur","displayProp","enableSearch","selectionLimit","showCheckAll","showUncheckAll","closeOnSelect","buttonClasses","closeOnDeselect","undefined","groupByTextProvider","smartButtonMaxItems","smartButtonTextConverter","texts","checkAll","uncheckAll","selectionCount","selectionOf","searchPlaceholder","buttonDefaultText","dynamicButtonTextSuffix","isDefined","$watch","newValue","orderedItems","extend","singleSelection","isArray","length","on","e","target","parentElement","parentFound","_","contains","className","split","$apply","getGroupTitle","groupValue","resetSelection","getButtonText","itemsText","totalSelected","isObject","keys","forEach","optionItem","displayText","isChecked","getPropertyForObject","converterResponse","push","slice","join","property","hasOwnProperty","selectAll","deselectAll","value","sendEvent","splice","dontRemove","exists","finalObj","find","findIndex","templateUrl","result","performanceToolTip","guidedLearningHoursToolTip","keyStageToolTip","levelToolTip","ucasPointsToolTip","moreInfoLabel","controller","toggleList","preventDefault","showList","bind","event","which","$eval","rwEnter","filter","items","filters","filtered","searchTermLower","toLowerCase","item","courseNameLower","Name","codeLower","Code","sectorLower","Sector","subsectorLower","SubSector","levelLower","Level","ageGroupLower","AgeGroup","indexOf","filterNotSet","i","lowercase","Hours","GuidedLearningHours","Value","$http","$sce","awardYears","currentPage","pageSize","groups","numberOfPages","Math","ceil","nextPage","previousPage","setData","data","Categories","people","People","peopleFilter","awardYear","val","getHtml","trustAsHtml","getPeople","peopleData","input","start","showFilters","selectedSectors","selectedGuidedLearningHours","selectedSubsectors","selectedAgeGroups","searchTerm","subsectors","filteredSectors","filteredGuidedLearningHours","filteredSubsectors","filteredAgeGroups","filteredTerm","filteredResults","guidedlearninghoursSettings","sectorsSettings","icon","showSelectionLimit","subsectorsSettings","guidedlearninghoursText","sectorsText","subsectorsText","subsectorsTemp","option","SubSectors","Id","results","Results","sectors","Sectors","guidedlearninghours","agegroups","AgeGroups","getData","searchData","clearFilters","runFilter","setFilters","copy"],"mappings":"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","file":"angular_app.js","sourcesContent":["var baseApp = angular.module('baseApp', ['cg.module']);","var cgPeople = angular.module('cg.module', ['cgPeople.controller', 'cgTechbacFilter.controller', 'dropdownMultiselect', 'rwCourseListingItem.directive', 'ngSanitize', 'textFilter.filters', 'sectorFilter.filters', 'guidedLearningHoursFilter.filters', 'ageGroupsFilter.filters', 'subSectorFilter.filters', 'rwEnter.directive']);","'use strict';\r\n\r\nvar directiveModule = angular.module('dropdownMultiselect', []);\r\n\r\ndirectiveModule.directive('dropdownMultiselect', ['$filter', '$document', '$compile', '$parse',\r\n function ($filter, $document, $compile, $parse) {\r\n\r\n return {\r\n restrict: 'AE',\r\n scope: {\r\n selectedModel: '=',\r\n options: '=',\r\n extraSettings: '=',\r\n events: '=',\r\n searchFilter: '=?',\r\n translationTexts: '=',\r\n groupBy: '@',\r\n showIcons: '@'\r\n },\r\n template: function (element, attrs) {\r\n var checkboxes = attrs.checkboxes ? true : false;\r\n var groups = attrs.groupBy ? true : false;\r\n var showicons = attrs.showIcons ? true : false;\r\n\r\n var template = '
';\r\n template += '';\r\n template += '';\r\n template += '
';\r\n\r\n element.html(template);\r\n },\r\n link: function ($scope, $element, $attrs) {\r\n var $dropdownTrigger = $element.children()[0];\r\n \r\n $scope.toggleDropdown = function () {\r\n $scope.open = !$scope.open;\r\n };\r\n\r\n $scope.checkboxClick = function ($event, id) {\r\n $scope.setSelectedItem(id);\r\n $event.stopImmediatePropagation();\r\n };\r\n\r\n $scope.externalEvents = {\r\n onItemSelect: angular.noop,\r\n onItemDeselect: angular.noop,\r\n onSelectAll: angular.noop,\r\n onDeselectAll: angular.noop,\r\n onInitDone: angular.noop,\r\n onMaxSelectionReached: angular.noop\r\n };\r\n\r\n $scope.settings = {\r\n dynamicTitle: true,\r\n scrollable: false,\r\n scrollableHeight: '300px',\r\n closeOnBlur: true,\r\n displayProp: 'label',\r\n idProp: 'id',\r\n externalIdProp: 'id',\r\n enableSearch: false,\r\n selectionLimit: 0,\r\n showCheckAll: true,\r\n showUncheckAll: true,\r\n closeOnSelect: false,\r\n buttonClasses: 'btn btn-default',\r\n closeOnDeselect: false,\r\n groupBy: $attrs.groupBy || undefined,\r\n groupByTextProvider: null,\r\n smartButtonMaxItems: 0,\r\n smartButtonTextConverter: angular.noop\r\n };\r\n\r\n $scope.texts = {\r\n checkAll: 'Check All',\r\n uncheckAll: 'Uncheck All',\r\n selectionCount: 'checked',\r\n selectionOf: '/',\r\n searchPlaceholder: 'Search...',\r\n buttonDefaultText: 'Select',\r\n dynamicButtonTextSuffix: 'selected'\r\n };\r\n\r\n $scope.searchFilter = $scope.searchFilter || '';\r\n\r\n if (angular.isDefined($scope.settings.groupBy)) {\r\n $scope.$watch('options', function (newValue) {\r\n if (angular.isDefined(newValue)) {\r\n $scope.orderedItems = $filter('orderBy')(newValue, $scope.settings.groupBy);\r\n }\r\n });\r\n }\r\n\r\n angular.extend($scope.settings, $scope.extraSettings || []);\r\n angular.extend($scope.externalEvents, $scope.events || []);\r\n angular.extend($scope.texts, $scope.translationTexts);\r\n\r\n $scope.singleSelection = $scope.settings.selectionLimit === 1;\r\n\r\n function getFindObj(id) {\r\n var findObj = {};\r\n\r\n if ($scope.settings.externalIdProp === '') {\r\n findObj[$scope.settings.idProp] = id;\r\n } else {\r\n findObj[$scope.settings.externalIdProp] = id;\r\n }\r\n\r\n return findObj;\r\n }\r\n\r\n function clearObject(object) {\r\n for (var prop in object) {\r\n delete object[prop];\r\n }\r\n }\r\n\r\n if ($scope.singleSelection) {\r\n if (angular.isArray($scope.selectedModel) && $scope.selectedModel.length === 0) {\r\n clearObject($scope.selectedModel);\r\n }\r\n }\r\n\r\n if ($scope.settings.closeOnBlur) {\r\n $document.on('click', function (e) {\r\n var target = e.target.parentElement;\r\n var parentFound = false;\r\n\r\n while (angular.isDefined(target) && target !== null && !parentFound) {\r\n if (_.contains(target.className.split(' '), 'multiselect-parent') && !parentFound) {\r\n if(target === $dropdownTrigger) {\r\n parentFound = true;\r\n }\r\n }\r\n target = target.parentElement;\r\n }\r\n\r\n if (!parentFound) {\r\n $scope.$apply(function () {\r\n $scope.open = false;\r\n });\r\n }\r\n });\r\n }\r\n\r\n $scope.getGroupTitle = function (groupValue) {\r\n if ($scope.settings.groupByTextProvider !== null) {\r\n return $scope.settings.groupByTextProvider(groupValue);\r\n }\r\n\r\n return groupValue;\r\n };\r\n\r\n $scope.resetSelection = function (selectedModel) {\r\n $scope.selectedModel = [];\r\n };\r\n\r\n $scope.getButtonText = function () {\r\n if ($scope.settings.dynamicTitle && ($scope.selectedModel.length > 0 || (angular.isObject($scope.selectedModel) && _.keys($scope.selectedModel).length > 0))) {\r\n if ($scope.settings.smartButtonMaxItems > 0) {\r\n var itemsText = [];\r\n\r\n angular.forEach($scope.options, function (optionItem) {\r\n if ($scope.isChecked($scope.getPropertyForObject(optionItem, $scope.settings.idProp))) {\r\n var displayText = $scope.getPropertyForObject(optionItem, $scope.settings.displayProp);\r\n var converterResponse = $scope.settings.smartButtonTextConverter(displayText, optionItem);\r\n\r\n itemsText.push(converterResponse ? converterResponse : displayText);\r\n }\r\n });\r\n\r\n if ($scope.selectedModel.length > $scope.settings.smartButtonMaxItems) {\r\n itemsText = itemsText.slice(0, $scope.settings.smartButtonMaxItems);\r\n itemsText.push('...');\r\n }\r\n\r\n return itemsText.join(', ');\r\n } else {\r\n var totalSelected;\r\n\r\n if ($scope.singleSelection) {\r\n totalSelected = ($scope.selectedModel !== null && angular.isDefined($scope.selectedModel[$scope.settings.idProp])) ? 1 : 0;\r\n } else {\r\n totalSelected = angular.isDefined($scope.selectedModel) ? $scope.selectedModel.length : 0;\r\n }\r\n\r\n if (totalSelected === 0) {\r\n return $scope.texts.buttonDefaultText;\r\n } else {\r\n return totalSelected + ' ' + $scope.texts.dynamicButtonTextSuffix;\r\n }\r\n }\r\n } else {\r\n return $scope.texts.buttonDefaultText;\r\n }\r\n };\r\n\r\n $scope.getPropertyForObject = function (object, property) {\r\n if (angular.isDefined(object) && object.hasOwnProperty(property)) {\r\n return object[property];\r\n }\r\n\r\n return '';\r\n };\r\n\r\n $scope.selectAll = function () {\r\n $scope.deselectAll(false);\r\n $scope.externalEvents.onSelectAll();\r\n\r\n angular.forEach($scope.options, function (value) {\r\n $scope.setSelectedItem(value[$scope.settings.idProp], true);\r\n });\r\n };\r\n\r\n $scope.deselectAll = function (sendEvent) {\r\n sendEvent = sendEvent || true;\r\n\r\n if (sendEvent) {\r\n $scope.externalEvents.onDeselectAll();\r\n }\r\n\r\n if ($scope.singleSelection) {\r\n clearObject($scope.selectedModel);\r\n } else {\r\n $scope.selectedModel.splice(0, $scope.selectedModel.length);\r\n }\r\n };\r\n\r\n $scope.setSelectedItem = function (id, dontRemove) {\r\n var findObj = getFindObj(id);\r\n var finalObj = null;\r\n\r\n if ($scope.settings.externalIdProp === '') {\r\n finalObj = _.find($scope.options, findObj);\r\n } else {\r\n finalObj = findObj;\r\n }\r\n\r\n if ($scope.singleSelection) {\r\n clearObject($scope.selectedModel);\r\n angular.extend($scope.selectedModel, finalObj);\r\n $scope.externalEvents.onItemSelect(finalObj);\r\n if ($scope.settings.closeOnSelect) $scope.open = false;\r\n\r\n return;\r\n }\r\n\r\n dontRemove = dontRemove || false;\r\n\r\n var exists = _.findIndex($scope.selectedModel, findObj) !== -1;\r\n\r\n if (!dontRemove && exists) {\r\n $scope.selectedModel.splice(_.findIndex($scope.selectedModel, findObj), 1);\r\n $scope.externalEvents.onItemDeselect(findObj);\r\n } else if (!exists && ($scope.settings.selectionLimit === 0 || $scope.selectedModel.length < $scope.settings.selectionLimit)) {\r\n $scope.selectedModel.push(finalObj);\r\n $scope.externalEvents.onItemSelect(finalObj);\r\n }\r\n if ($scope.settings.closeOnSelect) $scope.open = false;\r\n };\r\n\r\n $scope.isChecked = function (id) {\r\n if ($scope.singleSelection) {\r\n return $scope.selectedModel !== null && angular.isDefined($scope.selectedModel[$scope.settings.idProp]) && $scope.selectedModel[$scope.settings.idProp] === getFindObj(id)[$scope.settings.idProp];\r\n }\r\n\r\n return _.findIndex($scope.selectedModel, getFindObj(id)) !== -1;\r\n };\r\n\r\n $scope.externalEvents.onInitDone();\r\n }\r\n };\r\n}]);\r\n","(function () {\r\n 'use strict';\r\n\r\n angular.module('rwCourseListingItem.directive', [])\r\n .directive('rwCourseListingItem', function () {\r\n return {\r\n restrict: 'AE',\r\n templateUrl: 'Scripts/CG Website/app/directives/rwCourseListingItem.html',\r\n scope: {\r\n result: '=',\r\n performanceToolTip: '@',\r\n guidedLearningHoursToolTip: '@',\r\n keyStageToolTip: '@',\r\n levelToolTip: '@',\r\n ucasPointsToolTip: '@',\r\n moreInfoLabel: '@'\r\n },\r\n controller: function ($scope) {\r\n $scope.toggleList = function ($event) {\r\n if ($event) {\r\n $event.preventDefault();\r\n }\r\n $scope.showList = !$scope.showList;\r\n };\r\n },\r\n link: function (scope) {\r\n // hide list by default\r\n scope.showList = false;\r\n }\r\n };\r\n });\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular.module('rwEnter.directive', [])\r\n .directive('rwEnter', function () {\r\n return function (scope, element, attrs) {\r\n element.bind(\"keydown keypress\", function (event) {\r\n if (event.which === 13) {\r\n scope.$apply(function () {\r\n scope.$eval(attrs.rwEnter);\r\n });\r\n event.preventDefault();\r\n }\r\n });\r\n }; \r\n });\r\n})();","angular.module('textFilter.filters', [])\r\n.filter('textFilter', function () {\r\n /// \r\n /// Module to filter through dataset against the given criteria\r\n /// \r\n return function (items, filters) {\r\n /// \r\n /// Loops through items and checks against the values in filters.\r\n /// \r\n /// \r\n /// \r\n /// filtered\r\n var filtered = [];\r\n var searchTermLower = filters.toLowerCase();\r\n // for each item check the search term against the items values\r\n angular.forEach(items, function (item) {\r\n var courseNameLower = item.Name.toLowerCase();\r\n var codeLower = item.Code.toLowerCase();\r\n var sectorLower = item.Sector.toLowerCase();\r\n var subsectorLower = item.SubSector.toLowerCase();\r\n var levelLower = item.Level.toLowerCase();\r\n var ageGroupLower = item.AgeGroup.toLowerCase();\r\n var checkSearchTerm = searchTermLower === \"\" || courseNameLower.indexOf(searchTermLower) >= 0 || codeLower.indexOf(searchTermLower) >= 0 || sectorLower.indexOf(searchTermLower) >= 0 || subsectorLower.indexOf(searchTermLower) >= 0 || levelLower.indexOf(searchTermLower) >= 0 || ageGroupLower.indexOf(searchTermLower) >= 0;\r\n if (checkSearchTerm) {\r\n filtered.push(item);\r\n }\r\n });\r\n return filtered;\r\n };\r\n});","angular.module('sectorFilter.filters', [])\r\n.filter('sectorFilter', function () {\r\n /// \r\n /// Module to filter through dataset against the given criteria\r\n /// \r\n return function (items, filters) {\r\n /// \r\n /// Loops through items and checks against the values in filters.\r\n /// \r\n /// \r\n /// \r\n /// filtered\r\n var filtered = [];\r\n angular.forEach(items, function (item) {\r\n // if filter isn't set return true\r\n var filterNotSet = false;\r\n if (!filters.length) {\r\n filterNotSet = true;\r\n }\r\n // function to check if sectors match or aren't set\r\n var checkSector = function () {\r\n for (var i = 0; i < filters.length; i++) {\r\n if (angular.lowercase(item.Sector).indexOf(filters[i].Name.toLowerCase() || '') !== -1) {\r\n return true;\r\n }\r\n }\r\n };\r\n // run checks and push item if true\r\n if (checkSector() || filterNotSet) {\r\n filtered.push(item);\r\n }\r\n });\r\n return filtered;\r\n };\r\n});","angular.module('guidedLearningHoursFilter.filters', [])\r\n.filter('guidedLearningHoursFilter', function () {\r\n /// \r\n /// Module to filter through dataset against the given criteria\r\n /// \r\n return function (items, filters) {\r\n /// \r\n /// Loops through items and checks against the values in filters.\r\n /// \r\n /// \r\n /// \r\n /// filtered\r\n var filtered = [];\r\n angular.forEach(items, function (item) {\r\n // if filter isn't set return true\r\n var filterNotSet = false;\r\n if (!filters.Hours) {\r\n filterNotSet = true;\r\n }\r\n // function to check if guided learning hours match or aren't set\r\n var checkGuidedLearningHours = function () {\r\n if (item.GuidedLearningHours === filters.Hours || '') {\r\n return true;\r\n }\r\n };\r\n // run checks and push item if true\r\n if (checkGuidedLearningHours() || filterNotSet) {\r\n filtered.push(item);\r\n }\r\n });\r\n return filtered;\r\n };\r\n});","angular.module('ageGroupsFilter.filters', [])\r\n.filter('ageGroupsFilter', function () {\r\n /// \r\n /// Module to filter through dataset against the given criteria\r\n /// \r\n return function (items, filters) {\r\n /// \r\n /// Loops through items and checks against the values in filters.\r\n /// \r\n /// \r\n /// \r\n /// filtered\r\n var filtered = [];\r\n angular.forEach(items, function (item) {\r\n // if filter isn't set return true\r\n var filterNotSet = false;\r\n if (!filters.length) {\r\n filterNotSet = true;\r\n }\r\n // function to check if age groups matches or isn't set\r\n var checkAgeGroups = function () {\r\n for (var i = 0; i < filters.length; i++) {\r\n if (item.AgeGroup == filters[i].Value || filters[i].Value.length === 0) {\r\n return true;\r\n }\r\n }\r\n };\r\n // run checks and push item if true\r\n if (checkAgeGroups() || filterNotSet) {\r\n filtered.push(item);\r\n }\r\n });\r\n return filtered;\r\n };\r\n});","angular.module('subSectorFilter.filters', [])\r\n.filter('subSectorFilter', function () {\r\n /// \r\n /// Module to filter through dataset against the given criteria\r\n /// \r\n return function (items, filters) {\r\n /// \r\n /// Loops through items and checks against the values in filters.\r\n /// \r\n /// \r\n /// \r\n /// filtered\r\n var filtered = [];\r\n angular.forEach(items, function (item) {\r\n // if filter isn't set return true\r\n var filterNotSet = false;\r\n if (!filters.length) {\r\n filterNotSet = true;\r\n }\r\n // function to check if sub sectors match or aren't set\r\n var checkSubSector = function () {\r\n for (var i = 0; i < filters.length; i++) {\r\n if (angular.lowercase(item.SubSector).indexOf(filters[i].Name.toLowerCase() || '') !== -1) {\r\n return true;\r\n }\r\n }\r\n };\r\n // run checks and push item if true\r\n if (checkSubSector() || filterNotSet) {\r\n filtered.push(item);\r\n }\r\n });\r\n return filtered;\r\n };\r\n});","(function() {\r\n\t'use strict'\r\n\r\n\tangular.module('cgPeople.controller', [])\r\n\t\t.controller('cgPeopleController', ['$scope', '$http', '$sce', function ($scope, $http, $sce) {\r\n\r\n\t\t $scope.awardYears = [];\r\n\t\t $scope.currentPage = 0;\r\n\t\t $scope.pageSize = 5;\r\n\t\t $scope.groups = [];\r\n\r\n\t\t // Calculate number of pages\r\n\t\t $scope.numberOfPages = function () {\r\n\t\t return Math.ceil($scope.groups.length / $scope.pageSize);\r\n\t\t };\r\n\r\n\t\t // Go to next page\r\n\t\t $scope.nextPage = function () {\r\n\t\t if ($scope.currentPage < $scope.numberOfPages() - 1) {\r\n\t\t $scope.currentPage = $scope.currentPage + 1;\r\n\t\t }\r\n\t\t };\r\n\r\n\t\t // Go to previous page\r\n\t\t $scope.previousPage = function () {\r\n\t\t if ($scope.currentPage > 0) {\r\n\t\t $scope.currentPage = $scope.currentPage - 1;\r\n\t\t }\r\n\t\t };\r\n\r\n\t\t $scope.setData = function () {\r\n\t\t $scope.groups = $scope.data.Categories;\r\n\t\t $scope.people = $scope.data.People;\r\n\t\t };\r\n\r\n\t\t // Search filter to check for match on tags, titles and descriptions\r\n\t\t\t$scope.peopleFilter = function (item) {\r\n\t\t\t for (var i = 0; i < $scope.groups.length; i++) {\r\n\t\t\t if (item.awardYear == $scope.groups[i].val) {\r\n\t\t\t return true;\r\n\t\t\t break;\r\n\t\t\t } else {\r\n\t\t\t return false;\r\n\t\t\t }\r\n\t\t\t }\r\n\t\t\t return result;\r\n\t\t\t};\r\n\r\n\t\t\t$scope.getHtml = function (html) {\r\n\t\t\t return $sce.trustAsHtml(html);\r\n\t\t\t};\r\n\r\n\t\t\t$scope.getPeople = function () {\r\n\t\t\t $scope.data = peopleData;\r\n\t\t\t $scope.setData();\r\n\t\t\t}();\r\n\r\n\t\t}])\r\n\r\n\t .filter('startFrom', function () {\r\n\t return function (input, start) {\r\n\t start = +start; //parse to int\r\n\t return input.slice(start);\r\n\t };\r\n\t });\r\n\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular.module('cgTechbacFilter.controller', [\"textFilter.filters\", \"sectorFilter.filters\", \"guidedLearningHoursFilter.filters\", 'ageGroupsFilter.filters', 'subSectorFilter.filters'])\r\n\t\t.controller('cgTechbacFilterController', ['$scope', '$http', '$sce', '$parse', '$filter', function ($scope, $http, $sce, $parse, $filter) {\r\n\r\n\t\t // default options\r\n\t\t $scope.showFilters = false;\r\n\t\t $scope.selectedSectors = [];\r\n\t\t $scope.selectedGuidedLearningHours = {};\r\n\t\t $scope.selectedSubsectors = [];\r\n\t\t $scope.selectedAgeGroups = [];\r\n\t\t $scope.searchTerm = \"\";\r\n\t\t $scope.subsectors = [];\r\n\t\t $scope.filteredSectors = [];\r\n\t\t $scope.filteredGuidedLearningHours = {};\r\n\t\t $scope.filteredSubsectors = [];\r\n\t\t $scope.filteredAgeGroups = [];\r\n\t\t $scope.filteredTerm = \"\";\r\n\t\t $scope.filteredResults = [];\r\n\r\n\t\t // multi-select options\r\n\t\t $scope.guidedlearninghoursSettings = { displayProp: 'Hours', idProp: 'Id', externalIdProp: '', buttonDefaultText: 'All hours', smartButtonMaxItems: 1, showUncheckAll: false, selectionLimit: 1 };\r\n\t\t $scope.sectorsSettings = { displayProp: 'Name', idProp: 'Id', icon: 'SmallIconUrl', externalIdProp: '', buttonDefaultText: 'All sectors', showUncheckAll: false, selectionLimit: 10, showSelectionLimit: false, showIcons: true };\r\n\t\t $scope.subsectorsSettings = { displayProp: 'Name', idProp: 'Id', externalIdProp: '', buttonDefaultText: 'All sub-sectors', showUncheckAll: false, selectionLimit: 57, showSelectionLimit: false };\r\n\t\t $scope.guidedlearninghoursText = { buttonDefaultText: 'All hours' };\r\n\t\t $scope.sectorsText = { buttonDefaultText: 'All sectors' };\r\n\t\t $scope.subsectorsText = { buttonDefaultText: 'All sub-sectors' };\r\n\r\n\t\t // update subsectors depending on what has been sectors have been selected\r\n\t\t $scope.$watch('selectedSectors', function () {\r\n\t\t $scope.subsectorsTemp = [];\r\n\t\t $scope.subsectors = [];\r\n\t\t $scope.selectedSubsectors = [];\r\n\t\t angular.forEach($scope.selectedSectors, function (option, i) {\r\n\t\t angular.forEach(option.SubSectors, function (option, i) {\r\n\t\t $scope.subsectorsTemp.push(option.Name);\r\n\t\t });\r\n\t\t });\r\n\t\t angular.forEach($scope.subsectorsTemp, function (option, i) {\r\n\t\t $scope.subsectors.push({ Id: i, Name: option });\r\n\t\t });\r\n\t\t }, true);\r\n\r\n\t\t // set data for results and dropdowns\r\n\t\t $scope.setData = function () {\r\n\t\t $scope.results = $scope.data.Results;\r\n\t\t $scope.sectors = $scope.data.Sectors;\r\n\t\t $scope.guidedlearninghours = $scope.data.GuidedLearningHours;\r\n\t\t $scope.agegroups = $scope.data.AgeGroups;\r\n\r\n\t\t // add in fake all option to multi select\r\n\t\t $scope.agegroups.splice(0, 0, { Id: 0, Name: \"All\" });\r\n\t\t angular.forEach($scope.agegroups, function (option, i) {\r\n\t\t if (i === 0) {\r\n\t\t $scope.agegroups[i].Name = \"All\";\r\n\t\t $scope.agegroups[i].Value = \"\";\r\n\t\t $scope.agegroups[i].Id = 0;\r\n\t\t } else {\r\n\t\t $scope.agegroups[i].Value = option.Name;\r\n\t\t $scope.agegroups[i].Id = i;\r\n\t\t }\r\n\t\t });\r\n\t\t };\r\n\r\n\t\t // get data from data object on page\r\n\t\t $scope.getData = function () {\r\n\t\t $scope.data = searchData;\r\n\t\t $scope.setData();\r\n\t\t }();\r\n\r\n\t\t // clear filters\r\n\t\t $scope.clearFilters = function () {\r\n\t\t $scope.selectedSectors = [];\r\n\t\t $scope.selectedGuidedLearningHours = {};\r\n\t\t $scope.selectedSubsectors = [];\r\n\t\t $scope.selectedAgeGroups = [];\r\n\t\t $scope.searchTerm = \"\";\r\n\t\t $scope.filteredSectors = [];\r\n\t\t $scope.filteredGuidedLearningHours = {};\r\n\t\t $scope.filteredSubsectors = [];\r\n\t\t $scope.filteredAgeGroups = [];\r\n\t\t $scope.filteredTerm = \"\";\r\n\t\t // run filter\r\n\t\t $scope.runFilter();\r\n\t\t };\r\n\r\n\t\t // set filters\r\n\t\t $scope.setFilters = function () {\r\n\t\t $scope.filteredSectors = angular.copy($scope.selectedSectors);\r\n\t\t $scope.filteredGuidedLearningHours = angular.copy($scope.selectedGuidedLearningHours);\r\n\t\t $scope.filteredSubsectors = angular.copy($scope.selectedSubsectors);\r\n\t\t $scope.filteredAgeGroups = angular.copy($scope.selectedAgeGroups);\r\n\t\t $scope.filteredTerm = angular.copy($scope.searchTerm);\r\n\t\t // run filter\r\n\t\t $scope.runFilter();\r\n\t\t };\r\n\r\n\t\t // run filters\r\n\t\t $scope.runFilter = function () {\r\n\t\t $scope.filteredResults = [];\r\n\t\t var filtered;\r\n\t\t filtered = $filter('textFilter')($scope.results, $scope.filteredTerm);\r\n\t\t filtered = $filter('sectorFilter')(filtered, $scope.filteredSectors);\r\n\t\t filtered = $filter('guidedLearningHoursFilter')(filtered, $scope.filteredGuidedLearningHours);\r\n\t\t filtered = $filter('ageGroupsFilter')(filtered, $scope.filteredAgeGroups);\r\n\t\t filtered = $filter('subSectorFilter')(filtered, $scope.filteredSubsectors);\r\n\t\t $scope.filteredResults = filtered;\r\n\t\t };\r\n\r\n\t\t}]);\r\n\r\n})();"]}