Cleanup UI
This commit is contained in:
parent
17e1860ba6
commit
cf695c73d6
78
manage.html
78
manage.html
|
@ -225,10 +225,50 @@
|
||||||
</span>
|
</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div id="manage-bulk-actions" class="hidden">
|
<div id="tools-wrapper" class="hidden">
|
||||||
|
|
||||||
<div class="manage-row">
|
<div class="manage-row">
|
||||||
<span id="filters">
|
|
||||||
|
<span id="bulk-actions">
|
||||||
|
<label class="checkmate toggle-all" tabindex="0">
|
||||||
|
<input id="toggle-all-filters" type="checkbox">
|
||||||
|
<svg class="svg-icon checkbox" viewBox="0 0 14 14">
|
||||||
|
<path class="circle" d="M7 1.2a5.8 5.8 0 1 0 0 11.6A5.8 5.8 0 0 0 7 1.2zm0 10.5a4.7 4.7 0 0 1 0-9.4 4.7 4.7 0 0 1 0 9.4z"/>
|
||||||
|
<path class="checkmark" d="M9.6 4.5L5.8 8.3 4.3 6.8l-.8.8L5.8 10l4.7-4.7-.9-.8z"/>
|
||||||
|
<path class="indeterminate" d="M3.5 6.3h7v1.4h-7z"/>
|
||||||
|
</svg>
|
||||||
|
</label>
|
||||||
|
<span id="bulk-filter-count"></span>
|
||||||
|
<span i18n-text="bulkActions"></span>
|
||||||
|
<span class="select-resizer bulk-actions-select">
|
||||||
|
<select id="bulk-actions" i18n-title="manageOnlyLocalTooltip">
|
||||||
|
<option i18n-text="bulkActionsSelect" value=""></option>
|
||||||
|
<option i18n-text="enableStyleLabel" value="enable"></option>
|
||||||
|
<option i18n-text="disableStyleLabel" value="disable"></option>
|
||||||
|
<option i18n-text="exportLabel" value="export"></option>
|
||||||
|
<option i18n-text="checkForUpdate" value="update"></option>
|
||||||
|
<option i18n-text="genericResetLabel" value="reset"></option>
|
||||||
|
<option i18n-text="deleteStyleLabel" value="delete"></option>
|
||||||
|
</select>
|
||||||
|
<svg class="svg-icon select-arrow"><use xlink:href="#svg-icon-select-arrow"/></svg>
|
||||||
|
</span>
|
||||||
|
<button id="bulk-actions-apply"i18n-text="bulkActionsApply"></button>
|
||||||
|
<svg class="svg-icon busy hidden" viewBox="0 0 24 24">
|
||||||
|
<path d="M12 23h-1v-6.57A5.97 5.97 0 0 1 7 18c-3.25 0-6-2.75-6-6v-1h6.57A5.97 5.97 0 0 1 6 7c0-3.25 2.75-6 6-6h1v6.57A5.97 5.97 0 0 1 17 6c3.25 0 6 2.75 6 6v1h-6.57A5.97 5.97 0 0 1 18 17c0 3.25-2.75 6-6 6zm1-9.87v7.74c1.7-.46 3-2.04 3-3.87s-1.3-3.41-3-3.87zM3.13 13c.46 1.7 2.04 3 3.87 3s3.41-1.3 3.87-3H3.13zm10-2h7.74c-.46-1.7-2.05-3-3.87-3s-3.41 1.3-3.87 3zM11 3.13C9.3 3.59 8 5.18 8 7s1.3 3.41 3 3.87V3.13z"/>
|
||||||
|
<animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0 0 0" to="360 0 0" dur="1s" repeatCount="indefinite"/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span id="search-wrapper">
|
||||||
|
<input id="search" type="search" i18n-placeholder="searchStyles" spellcheck="false"
|
||||||
|
data-filter=":not(.not-matching)"
|
||||||
|
data-filter-hide=".not-matching">
|
||||||
|
<a href="#" id="search-help" tabindex="0">
|
||||||
|
<svg class="svg-icon info"><use xlink:href="#svg-icon-help"/></svg>
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span id="filters-wrapper">
|
||||||
<strong i18n-text="manageFilters"></strong>
|
<strong i18n-text="manageFilters"></strong>
|
||||||
<span class="filter-selection">
|
<span class="filter-selection">
|
||||||
<label class="checkmate" tabindex="0">
|
<label class="checkmate" tabindex="0">
|
||||||
|
@ -287,6 +327,7 @@
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
<span class="filter-selection">
|
||||||
<label id="only-updates" class="hidden checkmate" tabindex="0">
|
<label id="only-updates" class="hidden checkmate" tabindex="0">
|
||||||
<input type="checkbox"
|
<input type="checkbox"
|
||||||
data-filter=".can-update, .update-problem, .update-done"
|
data-filter=".can-update, .update-problem, .update-done"
|
||||||
|
@ -301,41 +342,10 @@
|
||||||
</label>
|
</label>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span id="search-wrapper">
|
|
||||||
<input id="search" type="search" i18n-placeholder="searchStyles" spellcheck="false"
|
|
||||||
data-filter=":not(.not-matching)"
|
|
||||||
data-filter-hide=".not-matching">
|
|
||||||
<a href="#" id="search-help" tabindex="0">
|
|
||||||
<svg class="svg-icon info"><use xlink:href="#svg-icon-help"/></svg>
|
|
||||||
</a>
|
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="manage-row">
|
|
||||||
<label class="checkmate toggle-all" tabindex="0">
|
|
||||||
<input id="toggle-all-filters" type="checkbox">
|
|
||||||
<svg class="svg-icon checkbox" viewBox="0 0 14 14">
|
|
||||||
<path class="circle" d="M7 1.2a5.8 5.8 0 1 0 0 11.6A5.8 5.8 0 0 0 7 1.2zm0 10.5a4.7 4.7 0 0 1 0-9.4 4.7 4.7 0 0 1 0 9.4z"/>
|
|
||||||
<path class="checkmark" d="M9.6 4.5L5.8 8.3 4.3 6.8l-.8.8L5.8 10l4.7-4.7-.9-.8z"/>
|
|
||||||
<path class="indeterminate" d="M3.5 6.3h7v1.4h-7z"/>
|
|
||||||
</svg>
|
|
||||||
</label>
|
|
||||||
<span id="bulk-filter-count"></span>
|
|
||||||
<span i18n-text="bulkActions"></span>
|
|
||||||
<span class="select-resizer bulk-actions-select">
|
|
||||||
<select id="bulk-actions" i18n-title="manageOnlyLocalTooltip">
|
|
||||||
<option i18n-text="bulkActionsSelect" value=""></option>
|
|
||||||
<option i18n-text="enableStyleLabel" value="enable"></option>
|
|
||||||
<option i18n-text="disableStyleLabel" value="disable"></option>
|
|
||||||
<option i18n-text="exportLabel" value="export"></option>
|
|
||||||
<option i18n-text="checkForUpdate" value="update"></option>
|
|
||||||
<option i18n-text="genericResetLabel" value="reset"></option>
|
|
||||||
<option i18n-text="deleteStyleLabel" value="delete"></option>
|
|
||||||
</select>
|
|
||||||
<svg class="svg-icon select-arrow"><use xlink:href="#svg-icon-select-arrow"/></svg>
|
|
||||||
</span>
|
|
||||||
<button id="bulk-actions-apply"i18n-text="bulkActionsApply"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div style="display: none">
|
<div style="display: none">
|
||||||
<!-- placeholders -->
|
<!-- placeholders -->
|
||||||
|
|
|
@ -111,7 +111,7 @@ function init() {
|
||||||
if (!filtersSelector.hide) {
|
if (!filtersSelector.hide) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (const el of $$('#manage-bulk-actions [data-filter]')) {
|
for (const el of $$('#tools-wrapper [data-filter]')) {
|
||||||
let value;
|
let value;
|
||||||
if (el.type === 'checkbox' && el.checked) {
|
if (el.type === 'checkbox' && el.checked) {
|
||||||
value = el.checked = false;
|
value = el.checked = false;
|
||||||
|
@ -142,7 +142,7 @@ function filterOnChange({target: el, forceRefilter}) {
|
||||||
}
|
}
|
||||||
el.lastValue = value;
|
el.lastValue = value;
|
||||||
}
|
}
|
||||||
const enabledFilters = $$('#manage-bulk-actions [data-filter]').filter(el => getValue(el));
|
const enabledFilters = $$('#tools-wrapper [data-filter]').filter(el => getValue(el));
|
||||||
const buildFilter = hide =>
|
const buildFilter = hide =>
|
||||||
(hide ? '' : '.entry.hidden') +
|
(hide ? '' : '.entry.hidden') +
|
||||||
[...enabledFilters.map(el =>
|
[...enabledFilters.map(el =>
|
||||||
|
|
|
@ -83,7 +83,7 @@ onDOMready().then(() => {
|
||||||
// focus search field on "/" key
|
// focus search field on "/" key
|
||||||
if (key === '/' || !key && k === 191 && !event.shiftKey) {
|
if (key === '/' || !key && k === 191 && !event.shiftKey) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
$('#manage-bulk-actions').classList.remove('hidden');
|
$('#tools-wrapper').classList.remove('hidden');
|
||||||
$('#search').focus();
|
$('#search').focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,7 +79,7 @@ function initGlobalEvents() {
|
||||||
el.removeAttribute('open');
|
el.removeAttribute('open');
|
||||||
});
|
});
|
||||||
// Close bulk actions
|
// Close bulk actions
|
||||||
$('#manage-bulk-actions').classList.add('hidden');
|
$('#tools-wrapper').classList.add('hidden');
|
||||||
} else if (event.which === 32 && event.target.classList.contains('checkmate')) {
|
} else if (event.which === 32 && event.target.classList.contains('checkmate')) {
|
||||||
// pressing space toggles the containing checkbox
|
// pressing space toggles the containing checkbox
|
||||||
$('input[type="checkbox"]', event.target).click();
|
$('input[type="checkbox"]', event.target).click();
|
||||||
|
@ -191,7 +191,7 @@ Object.assign(handleEvent, {
|
||||||
},
|
},
|
||||||
|
|
||||||
toggleBulkActions() {
|
toggleBulkActions() {
|
||||||
$('#manage-bulk-actions').classList.toggle('hidden');
|
$('#tools-wrapper').classList.toggle('hidden');
|
||||||
},
|
},
|
||||||
|
|
||||||
check(event, entry) {
|
check(event, entry) {
|
||||||
|
@ -426,7 +426,7 @@ function updateBulkFilters({target}) {
|
||||||
if (!installed.dataset.total) return;
|
if (!installed.dataset.total) return;
|
||||||
// ignore filter checkboxes
|
// ignore filter checkboxes
|
||||||
if (target.type === 'checkbox' && !target.dataset.filter) {
|
if (target.type === 'checkbox' && !target.dataset.filter) {
|
||||||
$('#manage-bulk-actions').classList.remove('hidden');
|
$('#tools-wrapper').classList.remove('hidden');
|
||||||
const bulk = $('#toggle-all-filters');
|
const bulk = $('#toggle-all-filters');
|
||||||
const state = target.checked;
|
const state = target.checked;
|
||||||
const visibleEntries = $$('.entry-filter-toggle')
|
const visibleEntries = $$('.entry-filter-toggle')
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
--icon-size: 20px;
|
--icon-size: 20px;
|
||||||
--narrow-column: 60px;
|
--narrow-column: 60px;
|
||||||
--header-height: 40px;
|
--header-height: 40px;
|
||||||
--bulk-action-height: 60px;
|
--toolbar-height: 35px;
|
||||||
--entry-header-height: 25px;
|
--entry-header-height: 25px;
|
||||||
--onoffswitch-width: 60px;
|
--onoffswitch-width: 60px;
|
||||||
}
|
}
|
||||||
|
@ -251,15 +251,16 @@ body.dragging .entry:not(.dragging) .entry-name:before {
|
||||||
margin-left: 2px;
|
margin-left: 2px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
font-size: .8em;
|
font-size: .8em;
|
||||||
|
text-transform: lowercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
.entry-label.usercss {
|
.entry-label[data-label="usercss"] {
|
||||||
background-color: hsla(180, 100%, 20%, 1);
|
background-color: hsla(180, 100%, 20%, 1);
|
||||||
color: white;
|
color: white;
|
||||||
text-transform: lowercase;
|
text-transform: lowercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
.entry-label.disabled {
|
.entry-label[data-label="disabled"] {
|
||||||
background: rgba(128, 128, 128, .2);
|
background: rgba(128, 128, 128, .2);
|
||||||
color: #222;
|
color: #222;
|
||||||
}
|
}
|
||||||
|
@ -509,25 +510,25 @@ details.applies-to-extra[open] {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* bulk actions */
|
/* bulk actions */
|
||||||
#manage-bulk-actions {
|
#tools-wrapper {
|
||||||
background: #ddd;
|
background: #ddd;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: var(--header-height);
|
top: var(--header-height);
|
||||||
left: 0;
|
left: 0;
|
||||||
height: var(--bulk-action-height);
|
height: var(--toolbar-height);
|
||||||
padding: 4px 16px;
|
padding: 4px 16px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
#manage-bulk-actions:not(.hidden) + #installed {
|
#tools-wrapper:not(.hidden) + #installed {
|
||||||
margin-top: calc(var(--header-height) + var(--bulk-action-height) + var(--entry-header-height));
|
margin-top: calc(var(--header-height) + var(--toolbar-height) + var(--entry-header-height));
|
||||||
}
|
}
|
||||||
#manage-bulk-actions:not(.hidden) + #installed .entry-header {
|
#tools-wrapper:not(.hidden) + #installed .entry-header {
|
||||||
top: calc(var(--header-height) + var(--bulk-action-height));
|
top: calc(var(--header-height) + var(--toolbar-height));
|
||||||
}
|
}
|
||||||
|
|
||||||
#manage-bulk-actions .select-resizer {
|
#tools-wrapper .select-resizer {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -535,9 +536,10 @@ details.applies-to-extra[open] {
|
||||||
padding: 2px 10px;
|
padding: 2px 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
#filters,
|
#filters-wrapper,
|
||||||
#bulk-filter-count {
|
#bulk-filter-count {
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
|
@ -572,25 +574,9 @@ details.applies-to-extra[open] {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#filters > label {
|
#filters-wrapper filter-selection {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
left: -9px;
|
|
||||||
padding: 2px 0 2px 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#filters > label input[type="checkbox"]:not(.slider),
|
|
||||||
#filters > label input[type="checkbox"]:not(.slider):checked + .svg-icon.checked {
|
|
||||||
top: 2px;
|
|
||||||
left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#filters > label:hover {
|
|
||||||
background-color: hsla(0, 0%, 50%, .4);
|
|
||||||
}
|
|
||||||
|
|
||||||
#filters {
|
|
||||||
border: 1px solid transparent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.active #filters-stats,
|
.active #filters-stats,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user