(function() { "use strict"; angular.module("raz") .component('correlationAccordion', { templateUrl: '/js/angular/correlations/correlation-accordion.html', controller: 'correlationAccordion' }) .controller("correlationAccordion", ["$scope", "correlationTierService", "correlationTierResourcesService", "$document", function ($scope, correlationTierService, correlationTierResourcesService, $document) { var ctrl = this; ctrl.curTiers = []; ctrl.curTierResources = {}; ctrl.$onInit = function () { var openTier = correlationTierService.getOpenTier(); if (openTier != -1) { //correlationTierResourcesService.getTierResources(ctrl.curTiers[openTier]) // .then(function (resources) { // ctrl.curTierResources[openTier] = resources; // }); } }; ctrl.isActiveTier = function (index) { return correlationTierService.getOpenTier() == index; }; //$scope.$watch(function () { return correlationTierService.getCurGrade(); }, // function(newVal, oldVal, scope) { // if (newVal !== oldVal) { // closeOpenAccordionItems(); // correlationTierService.setOpenTier(-1); // ctrl.curTierResources = {}; // } // }, true); $scope.$watch(function() { return correlationTierService.getCurTiers(); }, function (newVal, oldVal, scope) { if (newVal !== oldVal) { ctrl.curTiers = newVal; closeOpenAccordionItems(); correlationTierService.setOpenTier(-1); ctrl.curTierResources = {}; } }); ctrl.getSubTitle = function(tier) { return tier.subtitle; }; ctrl.changeOpenItem = function (tier, index) { var targetDiv = angular.element("#accordion_content_" + index); if (targetDiv.is(":hidden")) { closeOpenAccordionItems(); openAccordionItem(tier, index); } else { closeOpenAccordionItems(); } }; var closeOpenAccordionItems = function () { var openDivToClose = Array.from($document[0].getElementsByClassName("accordionContent")).filter(function (elem) { return elem.style.display !== 'none'; }); if (openDivToClose) { correlationTierService.setOpenTier(-1); } }; var openAccordionItem = function (tier, index) { correlationTierResourcesService.getTierResources(tier) .then(function (resources) { ctrl.curTierResources[index] = resources; correlationTierService.setOpenTier(index); }); }; }]); })();