mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-21 16:26:43 +00:00
Badge sorting (#844)
* sort badges correctly in user-defined group * rename sorting list that is used for badges and groups * remove trailing space * better array iteration * Revert "better array iteration" This reverts commit 0a87b3350cf2bd60450e3d2985c7449efe73c18d. * simplify sorting of badges
This commit is contained in:
parent
be3f35c8cd
commit
3701e022bc
@ -164,7 +164,7 @@
|
||||
value: false,
|
||||
},
|
||||
|
||||
orderedGroups: Array,
|
||||
orderedGroupEntities: Array,
|
||||
|
||||
cards: Object,
|
||||
};
|
||||
@ -172,7 +172,7 @@
|
||||
|
||||
static get observers() {
|
||||
return [
|
||||
'updateCards(columns, states, panelVisible, viewVisible, orderedGroups)',
|
||||
'updateCards(columns, states, panelVisible, viewVisible, orderedGroupEntities)',
|
||||
];
|
||||
}
|
||||
|
||||
@ -181,7 +181,7 @@
|
||||
states,
|
||||
panelVisible,
|
||||
viewVisible,
|
||||
orderedGroups
|
||||
orderedGroupEntities
|
||||
) {
|
||||
if (!panelVisible || !viewVisible) {
|
||||
if (this.$.main.parentNode) {
|
||||
@ -198,7 +198,7 @@
|
||||
() => {
|
||||
// Things might have changed since it got scheduled.
|
||||
if (this.panelVisible && this.viewVisible) {
|
||||
this.cards = this.computeCards(columns, states, orderedGroups);
|
||||
this.cards = this.computeCards(columns, states, orderedGroupEntities);
|
||||
}
|
||||
}
|
||||
);
|
||||
@ -212,7 +212,7 @@
|
||||
};
|
||||
}
|
||||
|
||||
computeCards(columns, states, orderedGroups) {
|
||||
computeCards(columns, states, orderedGroupEntities) {
|
||||
const hass = this.hass;
|
||||
|
||||
const cards = this.emptyCards();
|
||||
@ -285,9 +285,9 @@
|
||||
}
|
||||
|
||||
const splitted = window.HAWS.splitByGroups(states);
|
||||
if (orderedGroups) {
|
||||
splitted.groups.sort((gr1, gr2) => orderedGroups[gr1.entity_id] -
|
||||
orderedGroups[gr2.entity_id]);
|
||||
if (orderedGroupEntities) {
|
||||
splitted.groups.sort((gr1, gr2) => orderedGroupEntities[gr1.entity_id] -
|
||||
orderedGroupEntities[gr2.entity_id]);
|
||||
} else {
|
||||
splitted.groups.sort((gr1, gr2) => gr1.attributes.order - gr2.attributes.order);
|
||||
}
|
||||
@ -327,9 +327,20 @@
|
||||
coll[domain].states.push(state);
|
||||
});
|
||||
|
||||
iterateDomainSorted(badgesColl, (domain) => {
|
||||
cards.badges.push.apply(cards.badges, domain.states);
|
||||
});
|
||||
if (orderedGroupEntities) {
|
||||
Object.keys(badgesColl)
|
||||
.map(key => badgesColl[key])
|
||||
.forEach((domain) => {
|
||||
cards.badges.push.apply(cards.badges, domain.states);
|
||||
});
|
||||
|
||||
cards.badges.sort((e1, e2) => orderedGroupEntities[e1.entity_id] -
|
||||
orderedGroupEntities[e2.entity_id]);
|
||||
} else {
|
||||
iterateDomainSorted(badgesColl, (domain) => {
|
||||
cards.badges.push.apply(cards.badges, domain.states);
|
||||
});
|
||||
}
|
||||
|
||||
iterateDomainSorted(beforeGroupColl, (domain) => {
|
||||
addEntitiesCard(domain.domain, domain.states);
|
||||
|
@ -113,7 +113,7 @@
|
||||
columns='[[_columns]]'
|
||||
hass='[[hass]]'
|
||||
panel-visible='[[panelVisible]]'
|
||||
ordered-groups='[[orderedGroups]]'
|
||||
ordered-group-entities='[[orderedGroupEntities]]'
|
||||
></ha-cards>
|
||||
|
||||
<template is='dom-repeat' items='[[views]]'>
|
||||
@ -123,7 +123,7 @@
|
||||
columns='[[_columns]]'
|
||||
hass='[[hass]]'
|
||||
panel-visible='[[panelVisible]]'
|
||||
ordered-groups='[[orderedGroups]]'
|
||||
ordered-group-entities='[[orderedGroupEntities]]'
|
||||
></ha-cards>
|
||||
</template>
|
||||
|
||||
@ -198,9 +198,9 @@
|
||||
computed: 'computeViewStates(currentView, hass, defaultView)',
|
||||
},
|
||||
|
||||
orderedGroups: {
|
||||
orderedGroupEntities: {
|
||||
type: Array,
|
||||
computed: 'computeOrderedGroups(currentView, hass, defaultView)',
|
||||
computed: 'computeOrderedGroupEntities(currentView, hass, defaultView)',
|
||||
},
|
||||
|
||||
showTabs: {
|
||||
@ -372,19 +372,19 @@
|
||||
/*
|
||||
Compute the ordered list of groups for this view
|
||||
*/
|
||||
computeOrderedGroups(currentView, hass, defaultView) {
|
||||
computeOrderedGroupEntities(currentView, hass, defaultView) {
|
||||
if (!this.isView(currentView, defaultView)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var orderedGroups = {};
|
||||
var orderedGroupEntities = {};
|
||||
var entitiesList = hass.states[currentView || DEFAULT_VIEW_ENTITY_ID].attributes.entity_id;
|
||||
|
||||
for (var i = 0; i < entitiesList.length; i++) {
|
||||
orderedGroups[entitiesList[i]] = i;
|
||||
orderedGroupEntities[entitiesList[i]] = i;
|
||||
}
|
||||
|
||||
return orderedGroups;
|
||||
return orderedGroupEntities;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user