diff --git a/src/scripts/ui.js b/src/scripts/ui.js index c8d370d..e04f84d 100644 --- a/src/scripts/ui.js +++ b/src/scripts/ui.js @@ -213,16 +213,9 @@ class UI { if (typeOfList !== undefined && typeOfList === TypeListEnum.ToDay) { if (restrictionList !== undefined && restrictionList.length > 0) { - var item = restrictionList.find(x => x.url.isMatch(tab.url)); - if (item !== undefined) { - var divLimit = this.createElement('div', ['tooltip', 'inline-block']); - var limitIcon = this.createElement('img', ['margin-left-5', 'tooltip']); - limitIcon.height = 15; - limitIcon.src = '/icons/limit.png'; - var tooltip = this.createElement('span', ['tooltiptext'], "Daily limit is " + convertShortSummaryTimeToLongString(item.time)); - divLimit = this.appendChild(divLimit, [limitIcon, tooltip]); - spanUrl.appendChild(divLimit); - } + this.addRestrictionIcon(tab, restrictionList, spanUrl); + } else { + getLimitsListFromStorage(() => this.addRestrictionIcon(tab, restrictionList, spanUrl)); } } @@ -242,6 +235,19 @@ class UI { this.getTableOfSite().appendChild(div); } + addRestrictionIcon(tab, restrictions, spanUrl) { + var item = restrictions.find(x => x.url.isMatch(tab.url)); + if (item !== undefined) { + var divLimit = this.createElement('div', ['tooltip', 'inline-block']); + var limitIcon = this.createElement('img', ['margin-left-5', 'tooltip']); + limitIcon.height = 15; + limitIcon.src = '/icons/limit.png'; + var tooltip = this.createElement('span', ['tooltiptext'], "Daily limit is " + convertShortSummaryTimeToLongString(item.time)); + divLimit = this.appendChild(divLimit, [limitIcon, tooltip]); + spanUrl.appendChild(divLimit); + } + } + createElementsForTotalTime(summaryTime, typeOfList, parentElement) { var arr = getArrayTime(summaryTime); var isNextPartActiv = false; diff --git a/src/scripts/url.js b/src/scripts/url.js index c0553bb..f41d88a 100644 --- a/src/scripts/url.js +++ b/src/scripts/url.js @@ -51,7 +51,7 @@ class Url { } isPathMatch(path) { - var result = path === this.path || path.indexOf(this.path) === 0; + var result = this.path === '' || path === this.path || path.indexOf(this.path) === 0; return result; } diff --git a/src/scripts/webact.js b/src/scripts/webact.js index 5c9bb56..3f1a142 100644 --- a/src/scripts/webact.js +++ b/src/scripts/webact.js @@ -147,8 +147,16 @@ window.addEventListener('click', function (e) { } }); -function getLimitsListFromStorage() { - storage.loadTabs(STORAGE_RESTRICTION_LIST, getLimitsListFromStorageCallback); +function getLimitsListFromStorage(callback) { + callback = callback || (() => {}); + if (!restrictionList) { + storage.loadTabs(STORAGE_RESTRICTION_LIST, items => { + getLimitsListFromStorageCallback(items); + callback(); + }); + } else { + callback(); + } } function getDataFromStorage() {