fix: activity name undefined and source switch ignored
This commit is contained in:
parent
b021d2b04b
commit
4c32c320b2
3 changed files with 13 additions and 3 deletions
|
|
@ -115,7 +115,7 @@ export class ConfigManager {
|
|||
|
||||
// Add activities
|
||||
const activitiesParam = Object.entries(this._config.activities)
|
||||
.map(([state, config]) => `${state}:${config.icon}:${encodeURIComponent(config.color)}`)
|
||||
.map(([state, config]) => `${state}:${config.icon}:${encodeURIComponent(config.color)}:${encodeURIComponent(config.name)}`)
|
||||
.join(',');
|
||||
params.append('activities', activitiesParam);
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,9 @@ class MapBadgeCard extends HTMLElement {
|
|||
const oldConfig = this._configManager.getConfig();
|
||||
const newConfig = this._configManager.setConfig(config);
|
||||
|
||||
// Check if activity_source changed
|
||||
const activitySourceChanged = this._configManager.hasChanged(oldConfig, ['activity_source']);
|
||||
|
||||
// Configure modules
|
||||
this._dataFetcher.setDebugMode(newConfig.debug);
|
||||
this._dataFetcher.setEntities(newConfig.entities);
|
||||
|
|
@ -44,6 +47,11 @@ class MapBadgeCard extends HTMLElement {
|
|||
} else {
|
||||
this._render();
|
||||
}
|
||||
|
||||
// If activity_source changed, trigger data fetch immediately
|
||||
if (activitySourceChanged && this._updateInterval) {
|
||||
this._fetchEntities();
|
||||
}
|
||||
}
|
||||
|
||||
set hass(hass) {
|
||||
|
|
|
|||
|
|
@ -309,11 +309,13 @@ const activitiesParam = urlParams.get('activities') || '';
|
|||
const ACTIVITIES = {};
|
||||
if (activitiesParam) {
|
||||
activitiesParam.split(',').forEach(activity => {
|
||||
const [state, icon, color] = activity.split(':');
|
||||
const [state, icon, color, name] = activity.split(':');
|
||||
if (state && icon && color) {
|
||||
// Convert icon from 'mdi:icon-name' to 'mdi-icon-name' format
|
||||
const iconClass = icon.replace(':', '-');
|
||||
ACTIVITIES[state] = { icon: iconClass, color: decodeURIComponent(color) };
|
||||
// If name is missing, default to state (capitalized/formatted)
|
||||
const activityName = name ? decodeURIComponent(name) : state.charAt(0).toUpperCase() + state.slice(1).replace(/_/g, ' ');
|
||||
ACTIVITIES[state] = { icon: iconClass, color: decodeURIComponent(color), name: activityName };
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue