1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <template v-slot="default">
- <div v-bind:id="blockid">
- <SearchForm
- v-if="displayform"
- v-bind:form="form"></SearchForm>
- </div>
- </template>
- <script>
- import SearchForm from 'vuejs/components/Form/SearchForm'
- import { mapState, mapActions } from 'vuex'
- import { MA } from 'vuejs/api/ma-axios'
- export default {
- props: ['blockid', 'formhtml'],
- data(){
- return {
- form: null
- }
- },
- computed: {
- ...mapState({
- canSearch: state => state.User.canSearch
- }),
- displayform(){
- // console.log('computed displayform')
- return this.canSearch && this.form
- }
- },
- beforeMount() {
- // console.log('SearchBlock beforeMount')
- this.form = this.formhtml
- },
- watch: {
- canSearch(new_value, old_value) {
- // console.log('canSearch changed, old: '+old_value+", new: "+new_value)
- if (new_value && !this.form) {
- this.getSearchForm()
- }
- if (!new_value && this.form) {
- this.form = null
- }
- }
- },
- methods: {
- getSearchForm(){
- MA.get(`/materio_sapi/search_form`)
- .then(({data}) => {
- // console.log('getSearchForm')
- this.form = data.rendered
- })
- .catch((error) => {
- console.warn('Issue with get searchform', error)
- })
- }
- },
- components: {
- SearchForm
- }
- }
- </script>
- <style lang="scss" scoped>
- </style>
|