allow file uploading in recipe editor
This commit is contained in:
@ -248,28 +248,33 @@
|
|||||||
<div class="row pt-2" v-if="step.file_visible">
|
<div class="row pt-2" v-if="step.file_visible">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<label :for="'id_step_' + step.id + '_file'">{{ $t("File") }}</label>
|
<label :for="'id_step_' + step.id + '_file'">{{ $t("File") }}</label>
|
||||||
<multiselect
|
|
||||||
ref="file"
|
|
||||||
v-model="step.file"
|
|
||||||
:options="files"
|
|
||||||
:close-on-select="true"
|
|
||||||
:clear-on-select="true"
|
|
||||||
:allow-empty="true"
|
|
||||||
:preserve-search="true"
|
|
||||||
placeholder="Select File"
|
|
||||||
select-label="Select"
|
|
||||||
:id="'id_step_' + step.id + '_file'"
|
|
||||||
label="name"
|
|
||||||
track-by="name"
|
|
||||||
:multiple="false"
|
|
||||||
:loading="files_loading"
|
|
||||||
@search-change="searchFiles"
|
|
||||||
>
|
|
||||||
</multiselect>
|
|
||||||
|
|
||||||
<button>
|
|
||||||
+
|
<b-input-group>
|
||||||
</button>
|
<multiselect
|
||||||
|
ref="file"
|
||||||
|
v-model="step.file"
|
||||||
|
:options="files"
|
||||||
|
:close-on-select="true"
|
||||||
|
:clear-on-select="true"
|
||||||
|
:allow-empty="true"
|
||||||
|
:preserve-search="true"
|
||||||
|
placeholder="Select File"
|
||||||
|
select-label="Select"
|
||||||
|
:id="'id_step_' + step.id + '_file'"
|
||||||
|
label="name"
|
||||||
|
track-by="name"
|
||||||
|
:multiple="false"
|
||||||
|
:loading="files_loading"
|
||||||
|
style="flex-grow: 1; flex-shrink: 1; flex-basis: 0"
|
||||||
|
@search-change="searchFiles" >
|
||||||
|
</multiselect>
|
||||||
|
<b-input-group-append>
|
||||||
|
<b-button variant="primary" @click="step_for_file_create = step;show_file_create = true"> + </b-button>
|
||||||
|
</b-input-group-append>
|
||||||
|
</b-input-group>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -495,6 +500,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- step add and sort spacer between steps -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col col-md-12 text-center">
|
<div class="col col-md-12 text-center">
|
||||||
<b-button-group>
|
<b-button-group>
|
||||||
@ -556,7 +562,9 @@
|
|||||||
</draggable>
|
</draggable>
|
||||||
</b-modal>
|
</b-modal>
|
||||||
|
|
||||||
|
<!-- form to create files on the fly -->
|
||||||
|
<generic-modal-form :model="Models.USERFILE" :action="Actions.CREATE" :show="show_file_create"
|
||||||
|
@finish-action="fileCreated"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -592,6 +600,7 @@ VueMarkdownEditor.use(vuepressTheme, {
|
|||||||
})
|
})
|
||||||
|
|
||||||
import enUS from "@kangc/v-md-editor/lib/lang/en-US"
|
import enUS from "@kangc/v-md-editor/lib/lang/en-US"
|
||||||
|
import GenericModalForm from "@/components/Modals/GenericModalForm";
|
||||||
|
|
||||||
VueMarkdownEditor.lang.use("en-US", enUS)
|
VueMarkdownEditor.lang.use("en-US", enUS)
|
||||||
|
|
||||||
@ -602,7 +611,7 @@ Vue.use(BootstrapVue)
|
|||||||
export default {
|
export default {
|
||||||
name: "RecipeEditView",
|
name: "RecipeEditView",
|
||||||
mixins: [ResolveUrlMixin, ApiMixin],
|
mixins: [ResolveUrlMixin, ApiMixin],
|
||||||
components: {Multiselect, LoadingSpinner, draggable},
|
components: {Multiselect, LoadingSpinner, draggable, GenericModalForm},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
recipe_id: window.RECIPE_ID,
|
recipe_id: window.RECIPE_ID,
|
||||||
@ -620,6 +629,9 @@ export default {
|
|||||||
recipes_loading: false,
|
recipes_loading: false,
|
||||||
message: "",
|
message: "",
|
||||||
options_limit: 25,
|
options_limit: 25,
|
||||||
|
|
||||||
|
show_file_create: false,
|
||||||
|
step_for_file_create: undefined,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -947,6 +959,12 @@ export default {
|
|||||||
StandardToasts.makeStandardToast(StandardToasts.FAIL_FETCH)
|
StandardToasts.makeStandardToast(StandardToasts.FAIL_FETCH)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
fileCreated: function (data) {
|
||||||
|
if (data !== 'cancel') {
|
||||||
|
this.step_for_file_create.file = data.item
|
||||||
|
}
|
||||||
|
this.show_file_create = false
|
||||||
|
},
|
||||||
scrollToStep: function (step_index) {
|
scrollToStep: function (step_index) {
|
||||||
document.getElementById("id_step_" + step_index).scrollIntoView({behavior: "smooth"})
|
document.getElementById("id_step_" + step_index).scrollIntoView({behavior: "smooth"})
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user