1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-05-18 06:41:02 +00:00
bramw_baserow/web-frontend/modules/builder/components/page/settings/PageSettingsModal.vue

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

58 lines
1.3 KiB
Vue
Raw Permalink Normal View History

2023-04-11 13:41:43 +00:00
<template>
<Modal left-sidebar left-sidebar-scrollable>
<template #sidebar>
2025-04-14 11:34:35 +00:00
<div class="modal-sidebar__title">
{{ page.name }}
2023-04-11 13:41:43 +00:00
</div>
<ul class="modal-sidebar__nav">
<li v-for="setting in registeredSettings" :key="setting.getType()">
<a
class="modal-sidebar__nav-link"
:class="{ active: setting === settingSelected }"
@click="settingSelected = setting"
>
2023-09-28 13:39:41 +00:00
<i class="modal-sidebar__nav-icon" :class="setting.icon"></i>
2023-04-11 13:41:43 +00:00
{{ setting.name }}
</a>
</li>
</ul>
</template>
<template v-if="settingSelected" #content>
<component :is="settingSelected.component"></component>
2023-04-11 13:41:43 +00:00
</template>
</Modal>
</template>
<script>
import modal from '@baserow/modules/core/mixins/modal'
export default {
name: 'PageSettingsModal',
mixins: [modal],
props: {
page: {
type: Object,
required: true,
},
},
data() {
return {
settingSelected: null,
}
},
computed: {
registeredSettings() {
return this.$registry.getOrderedList('pageSettings')
},
},
methods: {
show(...args) {
if (!this.settingSelected) {
this.settingSelected = this.registeredSettings[0]
}
return modal.methods.show.call(this, ...args)
},
},
}
</script>