diff --git a/platypush/backend/http/webapp/src/components/panels/Entities/Entity.vue b/platypush/backend/http/webapp/src/components/panels/Entities/Entity.vue
index bf46a2f80..4d0fb780b 100644
--- a/platypush/backend/http/webapp/src/components/panels/Entities/Entity.vue
+++ b/platypush/backend/http/webapp/src/components/panels/Entities/Entity.vue
@@ -5,9 +5,12 @@
-
+ :loading="loading"
+ @loading="$emit('loading', $event)"
+ />
diff --git a/platypush/backend/http/webapp/src/components/panels/Entities/Index.vue b/platypush/backend/http/webapp/src/components/panels/Entities/Index.vue
index f10481b16..41a01014b 100644
--- a/platypush/backend/http/webapp/src/components/panels/Entities/Index.vue
+++ b/platypush/backend/http/webapp/src/components/panels/Entities/Index.vue
@@ -42,7 +42,7 @@
:value="entity"
@input="onEntityInput"
:loading="!!loadingEntities[entity.id]"
- @loading="loadingEntities[entity.id] = true"
+ @loading="loadingEntities[entity.id] = $event"
/>
diff --git a/platypush/backend/http/webapp/src/components/panels/Entities/Switch.vue b/platypush/backend/http/webapp/src/components/panels/Entities/Switch.vue
index 7d49dcf2c..87380890c 100644
--- a/platypush/backend/http/webapp/src/components/panels/Entities/Switch.vue
+++ b/platypush/backend/http/webapp/src/components/panels/Entities/Switch.vue
@@ -5,7 +5,8 @@
-
+
@@ -24,20 +25,26 @@ export default {
type: Object,
required: true,
},
- },
- data() {
- return {
- component: null,
- }
+ loading: {
+ type: Boolean,
+ default: false,
+ },
},
methods: {
- async toggle() {
- await this.request('entities.execute', {
- id: this.value.id,
- action: 'toggle',
- })
+ async toggle(event) {
+ event.stopPropagation()
+ this.$emit('loading', true)
+
+ try {
+ await this.request('entities.execute', {
+ id: this.value.id,
+ action: 'toggle',
+ })
+ } finally {
+ this.$emit('loading', false)
+ }
},
},
}