Attempt to update icon count

This commit is contained in:
Rob Garrison 2018-07-22 09:15:09 -05:00
parent 4fcb1a88d7
commit 8a6011de8c
4 changed files with 15 additions and 7 deletions

View File

@ -381,16 +381,22 @@ function updateIcon({tab, styles}) {
return; return;
} }
getTabRealURL(tab) getTabRealURL(tab)
.then(url => getStyles({matchUrl: url, asHash: true})) .then(url => getStyles({matchUrl: url, asHash: true, omitCode: true}))
.then(stylesReceived); .then(stylesReceived);
function getLength(styles) {
const keys = Object.keys(styles || {});
// Using "included" because styles may not include the psuedo-section added by the
// filterStylesInternal function
return String(keys.filter(key => styles[key][0] ? styles[key][0].included : false).length);
}
function stylesReceived(styles) { function stylesReceived(styles) {
const disableAll = 'disableAll' in styles ? styles.disableAll : prefs.get('disableAll'); const disableAll = 'disableAll' in styles ? styles.disableAll : prefs.get('disableAll');
const postfix = disableAll ? 'x' : !styles.length ? 'w' : ''; const postfix = disableAll ? 'x' : !styles.length ? 'w' : '';
const color = prefs.get(disableAll ? 'badgeDisabled' : 'badgeNormal'); const color = prefs.get(disableAll ? 'badgeDisabled' : 'badgeNormal');
const text = prefs.get('show-badge') && styles.length ? String(styles.length) : ''; const text = prefs.get('show-badge') && styles.length ? getLength(styles) : '';
const iconset = ['', 'light/'][prefs.get('iconset')] || ''; const iconset = ['', 'light/'][prefs.get('iconset')] || '';
let tabIcon = tabIcons.get(tab.id); let tabIcon = tabIcons.get(tab.id);
if (!tabIcon) tabIcons.set(tab.id, (tabIcon = {})); if (!tabIcon) tabIcons.set(tab.id, (tabIcon = {}));

View File

@ -315,6 +315,7 @@ function filterStylesInternal({
}); });
if (asHash) { if (asHash) {
if (sections.length && sections[0] !== '') { if (sections.length && sections[0] !== '') {
sections.unshift({included: !isPageExcluded(matchUrl, style.exclusions)});
filtered[style.id] = sections; filtered[style.id] = sections;
filtered.length++; filtered.length++;
} }
@ -488,7 +489,7 @@ function getApplicableSections({
} }
// Show excluded style in popup // Show excluded style in popup
if (excluded) { if (excluded) {
return ['']; return [{}];
} }
const sections = []; const sections = [];
for (const section of style.sections) { for (const section of style.sections) {

View File

@ -162,7 +162,7 @@ const exclusions = (() => {
style.exclusions = exclusionList; style.exclusions = exclusionList;
style.reason = 'exclusionsUpdated'; style.reason = 'exclusionsUpdated';
API.saveStyle(style); API.saveStyle(style);
notifyAllTabs({method: 'exclusionsUpdated', style, id}); notifyAllTabs({method: 'exclusionsUpdated', style, id, excluded: exclusionList});
}); });
} }

View File

@ -157,12 +157,13 @@ const popupExclusions = (() => {
onComplete: () => (box.dataset.display = false), onComplete: () => (box.dataset.display = false),
}); });
document.body.style.height = ''; document.body.style.height = '';
const excluded = isExcluded(tabURL, style.exclusions);
if (ok) { if (ok) {
handlePopupSave(style); handlePopupSave(style);
entry.styleMeta = style; entry.styleMeta = style;
entry.classList.toggle('excluded', isExcluded(tabURL, style.exclusions)); entry.classList.toggle('excluded', excluded);
} }
notifyAllTabs({method: 'exclusionsUpdated', style, id: entry.styleId}); notifyAllTabs({method: 'exclusionsUpdated', style, id: entry.styleId, affects: true, excluded});
} }
return Promise.resolve(); return Promise.resolve();
} }