Disable edit in yaml mode (#2244)

This commit is contained in:
Bram Kragten 2018-12-10 11:40:34 +01:00 committed by Paulus Schoutsen
parent d9d92c8766
commit d57bcc2701

View File

@ -124,7 +124,9 @@ class HUIRoot extends NavigateMixin(
> >
<paper-icon-button icon="hass:dots-vertical" slot="dropdown-trigger"></paper-icon-button> <paper-icon-button icon="hass:dots-vertical" slot="dropdown-trigger"></paper-icon-button>
<paper-listbox on-iron-select="_deselect" slot="dropdown-content"> <paper-listbox on-iron-select="_deselect" slot="dropdown-content">
<template is='dom-if' if="[[_yamlMode]]">
<paper-item on-click="_handleRefresh">Refresh</paper-item> <paper-item on-click="_handleRefresh">Refresh</paper-item>
</template>
<paper-item on-click="_handleUnusedEntities">Unused entities</paper-item> <paper-item on-click="_handleUnusedEntities">Unused entities</paper-item>
<paper-item on-click="_editModeEnable">[[localize("ui.panel.lovelace.editor.configure_ui")]] (alpha)</paper-item> <paper-item on-click="_editModeEnable">[[localize("ui.panel.lovelace.editor.configure_ui")]] (alpha)</paper-item>
<paper-item on-click="_handleHelp">Help</paper-item> <paper-item on-click="_handleHelp">Help</paper-item>
@ -174,55 +176,32 @@ class HUIRoot extends NavigateMixin(
return { return {
narrow: Boolean, narrow: Boolean,
showMenu: Boolean, showMenu: Boolean,
hass: { hass: { type: Object, observer: "_hassChanged" },
type: Object,
observer: "_hassChanged",
},
config: { config: {
type: Object, type: Object,
computed: "_computeConfig(lovelace)", computed: "_computeConfig(lovelace)",
observer: "_configChanged", observer: "_configChanged",
}, },
lovelace: { lovelace: { type: Object },
type: Object, columns: { type: Number, observer: "_columnsChanged" },
}, _curView: { type: Number, value: 0 },
columns: { route: { type: Object, observer: "_routeChanged" },
type: Number, notificationsOpen: { type: Boolean, value: false },
observer: "_columnsChanged", _persistentNotifications: { type: Array, value: [] },
},
_curView: {
type: Number,
value: 0,
},
route: {
type: Object,
observer: "_routeChanged",
},
notificationsOpen: {
type: Boolean,
value: false,
},
_persistentNotifications: {
type: Array,
value: [],
},
_notifications: { _notifications: {
type: Array, type: Array,
computed: "_updateNotifications(hass.states, _persistentNotifications)", computed: "_updateNotifications(hass.states, _persistentNotifications)",
}, },
_yamlMode: {
type: Boolean,
computed: "_computeYamlMode(lovelace)",
},
_editMode: { _editMode: {
type: Boolean, type: Boolean,
value: false, value: false,
computed: "_computeEditMode(lovelace)", computed: "_computeEditMode(lovelace)",
observer: "_editModeChanged", observer: "_editModeChanged",
}, },
routeData: Object, routeData: Object,
}; };
} }
@ -309,6 +288,10 @@ class HUIRoot extends NavigateMixin(
} }
_editModeEnable() { _editModeEnable() {
if (this._yamlMode) {
window.alert("The edit UI is not available when in YAML mode.");
return;
}
this.lovelace.setEditMode(true); this.lovelace.setEditMode(true);
if (this.config.views.length < 2) { if (this.config.views.length < 2) {
this.$.view.classList.remove("tabs-hidden"); this.$.view.classList.remove("tabs-hidden");
@ -445,6 +428,10 @@ class HUIRoot extends NavigateMixin(
return lovelace ? lovelace.config : null; return lovelace ? lovelace.config : null;
} }
_computeYamlMode(lovelace) {
return lovelace ? lovelace.mode === "yaml" : false;
}
_computeEditMode(lovelace) { _computeEditMode(lovelace) {
return lovelace ? lovelace.editMode : false; return lovelace ? lovelace.editMode : false;
} }