(function() { "use strict"; angular.module("raz") .service("correlationTierService", ["correlationGradeFilterService", "$window", "correlationApiService", function (correlationGradeFilterService, $window, correlationApiService) { var defaultTierOpen = -1; var curTierOpen = null; var storageKey = 'ss-Tier-open'; var curTiers = []; function fromStorage() { return $window.sessionStorage.getItem(storageKey); } function toStorage() { $window.sessionStorage.setItem(storageKey, curTierOpen); } function getDefaultOpenTier() { return fromStorage() || defaultTierOpen; } function getOpenTier() { return curTierOpen; } function setOpenTier(index) { curTierOpen = index; toStorage(); } function setTiers(tiers) { curTiers = tiers; } setOpenTier(getDefaultOpenTier()); function getCurTiers() { var selectedGrade = correlationGradeFilterService.getSelectedGrade(); if (!curTiers[selectedGrade]) { curTiers[selectedGrade] = []; correlationApiService.getCurTiers(selectedGrade) .then( function (response) { curTiers[selectedGrade] = response; }); } return curTiers[selectedGrade]; } function getCurGrade() { return correlationGradeFilterService.getSelectedGrade(); } return { getCurTiers: getCurTiers, getCurGrade: getCurGrade, setOpenTier: setOpenTier, getOpenTier: getOpenTier, setTiers: setTiers }; }]); })();