Fix inline settings arrays
This commit is contained in:
parent
bd72246715
commit
88e563501a
|
@ -70,6 +70,10 @@ export default class SettingsCategory {
|
|||
return this.settings.find(f);
|
||||
}
|
||||
|
||||
findSettings(f) {
|
||||
return this.settings.filter(f);
|
||||
}
|
||||
|
||||
getSetting(id) {
|
||||
return this.findSetting(setting => setting.id === id);
|
||||
}
|
||||
|
|
|
@ -71,6 +71,10 @@ export default class SettingsSet {
|
|||
return this.categories.find(f);
|
||||
}
|
||||
|
||||
findCategories(f) {
|
||||
return this.categories.filter(f);
|
||||
}
|
||||
|
||||
getCategory(id) {
|
||||
return this.find(category => category.id === id);
|
||||
}
|
||||
|
@ -82,6 +86,13 @@ export default class SettingsSet {
|
|||
}
|
||||
}
|
||||
|
||||
findSettings(f) {
|
||||
for (let category of this.categories) {
|
||||
const setting = category.findSettings(f);
|
||||
if (setting) return setting;
|
||||
}
|
||||
}
|
||||
|
||||
findSettingInCategory(cf, f) {
|
||||
for (let category of this.categories.filter(cf)) {
|
||||
const setting = category.find(f);
|
||||
|
@ -89,6 +100,13 @@ export default class SettingsSet {
|
|||
}
|
||||
}
|
||||
|
||||
findSettingsInCategory(cf, f) {
|
||||
for (let category of this.categories.filter(cf)) {
|
||||
const setting = category.findSettings(f);
|
||||
if (setting) return setting;
|
||||
}
|
||||
}
|
||||
|
||||
getSetting(id, sid) {
|
||||
if (sid) return this.findSettingInCategory(category => category.id === id, setting => setting.id === sid);
|
||||
return this.findSetting(setting => setting.id === id);
|
||||
|
|
|
@ -19,15 +19,15 @@
|
|||
<div class="bd-settingsarray-item" v-for="(item, index) in setting.items">
|
||||
<div class="bd-settingsarray-item-marker">{{ index + 1 }}</div>
|
||||
|
||||
<SettingsPanel class="bd-settingsarray-item-contents" v-if="setting.inline" :settings="item.settings" :change="(c, s, v) => changeInItem(item, c, s, v)" />
|
||||
<SettingsPanel class="bd-settingsarray-item-contents" v-if="setting.inline" :settings="item" />
|
||||
<div class="bd-settingsarray-item-contents" v-else>
|
||||
<div class="bd-settingsarray-item-hint">
|
||||
<span v-if="item.settings[0] && item.settings[0].settings[0]">{{ item.settings[0].settings[0].text }}: {{ item.settings[0].settings[0].value }}</span><span v-if="item.settings[0] && item.settings[0].settings[1]">, {{ item.settings[0].settings[1].text }}: {{ item.settings[0].settings[1].value }}</span><span v-if="item.settings[0] && item.settings[0].settings[2] || item.settings[1] && item.settings[1].settings[0]">, ...</span>
|
||||
<span v-if="getItemSettings(item)[0]">{{ getItemSettings(item)[0].text }}: {{ getItemSettings(item)[0].value }}</span><span v-if="getItemSettings(item)[1]">, {{ getItemSettings(item)[1].text }}: {{ getItemSettings(item)[1].value }}</span><span v-if="getItemSettings(item)[2]">, ...</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bd-settingsarray-item-controls">
|
||||
<span class="bd-settingsarray-open" v-if="typeof setting.allow_external !== 'undefined' ? setting.allow_external || !setting.inline : true" @click="() => showModal(item, index)"><MiOpenInNew v-if="setting.inline" /><MiSettings v-else /></span>
|
||||
<span class="bd-settingsarray-open" v-if="setting.allow_external" @click="() => showModal(item, index)"><MiOpenInNew v-if="setting.inline" /><MiSettings v-else /></span>
|
||||
<span class="bd-settingsarray-remove" :class="{'bd-disabled': setting.disabled || setting.min && setting.items.length <= setting.min}" @click="() => removeItem(item)"><MiMinus /></span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -71,6 +71,9 @@
|
|||
},
|
||||
showModal(item, index) {
|
||||
Modals.settings(item, this.setting.headertext ? this.setting.headertext.replace(/%n/, index + 1) : this.setting.text + ` #${index + 1}`);
|
||||
},
|
||||
getItemSettings(item) {
|
||||
return item.findSettings(() => true);
|
||||
}
|
||||
},
|
||||
beforeCreate() {
|
||||
|
|
Loading…
Reference in New Issue