Refactor content element component
This commit is contained in:
parent
b9ccf1700f
commit
1a87dbb788
|
|
@ -1,9 +1,10 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="content-element">
|
<div class="content-element">
|
||||||
<component
|
<content-block-element-chooser-widget
|
||||||
:class="['content-element__component', {'content-element__chooser': type(element) === 'content-block-element-chooser-widget'}]"
|
:class="['content-element__component', 'content-element__chooser']"
|
||||||
v-bind="element"
|
v-bind="element"
|
||||||
:is="type(element)"
|
v-if="isChooser"
|
||||||
|
|
||||||
@change-type="changeType"
|
@change-type="changeType"
|
||||||
/>
|
/>
|
||||||
<content-form-section
|
<content-form-section
|
||||||
|
|
@ -51,6 +52,8 @@
|
||||||
const AssignmentForm = () => import(/* webpackChunkName: "content-forms" */'@/components/content-forms/AssignmentForm');
|
const AssignmentForm = () => import(/* webpackChunkName: "content-forms" */'@/components/content-forms/AssignmentForm');
|
||||||
const TextForm = () => import(/* webpackChunkName: "content-forms" */'@/components/content-forms/TextForm');
|
const TextForm = () => import(/* webpackChunkName: "content-forms" */'@/components/content-forms/TextForm');
|
||||||
|
|
||||||
|
const CHOOSER = 'content-block-element-chooser-widget';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
element: {
|
element: {
|
||||||
|
|
@ -71,23 +74,66 @@
|
||||||
TextForm,
|
TextForm,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
isChooser() {
|
||||||
|
return this.component === CHOOSER;
|
||||||
|
},
|
||||||
|
type() {
|
||||||
|
return this.getType(this.element);
|
||||||
|
},
|
||||||
|
component() {
|
||||||
|
return this.type.component;
|
||||||
|
},
|
||||||
|
title() {
|
||||||
|
return this.type.title;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
type(element) {
|
getType(element) {
|
||||||
switch (element.type) {
|
switch (element.type) {
|
||||||
case 'link_block':
|
case 'link_block':
|
||||||
return 'link-form';
|
return {
|
||||||
|
component: 'link-form',
|
||||||
|
title: 'Link',
|
||||||
|
icon: 'link-icon'
|
||||||
|
};
|
||||||
case 'video_block':
|
case 'video_block':
|
||||||
return 'video-form';
|
return {
|
||||||
|
component: 'video-form',
|
||||||
|
title: 'Video',
|
||||||
|
icon: 'video-icon'
|
||||||
|
};
|
||||||
case 'image_url_block':
|
case 'image_url_block':
|
||||||
return 'image-form';
|
return {
|
||||||
|
component: 'image-form',
|
||||||
|
title: 'Bild',
|
||||||
|
icon: 'image-icon'
|
||||||
|
};
|
||||||
case 'text_block':
|
case 'text_block':
|
||||||
return 'text-form';
|
return {
|
||||||
|
component: 'text-form',
|
||||||
|
title: 'Text',
|
||||||
|
icon: 'text-icon'
|
||||||
|
};
|
||||||
case 'assignment':
|
case 'assignment':
|
||||||
return 'assignment-form';
|
return {
|
||||||
|
component: 'assignment-form',
|
||||||
|
title: 'Aufgabe & Ergebnis',
|
||||||
|
icon: 'speech-bubble-icon'
|
||||||
|
};
|
||||||
case 'document_block':
|
case 'document_block':
|
||||||
return 'document-form';
|
return {
|
||||||
|
component: 'document-form',
|
||||||
|
title: 'Dokument',
|
||||||
|
icon: 'document-icon'
|
||||||
|
};
|
||||||
}
|
}
|
||||||
return 'content-block-element-chooser-widget';
|
return {
|
||||||
|
component: CHOOSER,
|
||||||
|
title: '',
|
||||||
|
icon: ''
|
||||||
|
};
|
||||||
},
|
},
|
||||||
_updateProperty(value, key) {
|
_updateProperty(value, key) {
|
||||||
// const content = this.localContentBlock.contents[index];
|
// const content = this.localContentBlock.contents[index];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue