| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | 
							- import Vue from 'vue'
 
- import Vuex from 'vuex'
 
- import { createStore } from 'vuex-extensions'
 
- // import { JSONAPI } from 'vuejs/api/json-axios'
 
- // import qs from 'querystring-es3'
 
- import { MGQ } from 'vuejs/api/graphql-axios'
 
- import { print } from 'graphql/language/printer'
 
- import gql from 'graphql-tag'
 
- // import materiauFields from 'vuejs/api/gql/materiau.fragment.gql'
 
- import Common from './modules/common'
 
- import User from './modules/user'
 
- import Search from './modules/search'
 
- import Blabla from './modules/blabla'
 
- import Showrooms from './modules/showrooms'
 
- import Pages from './modules/pages'
 
- // https://github.com/vuejs/vuex/tree/dev/examples/shopping-cart
 
- Vue.use(Vuex)
 
- // export default new Vuex.Store({
 
- export default createStore(Vuex.Store, {
 
-   modules: {
 
-     Common,
 
-     User,
 
-     Search,
 
-     Blabla,
 
-     Showrooms,
 
-     Pages
 
-   },
 
-   // https://github.com/huybuidac/vuex-extensions
 
-   mixins: {
 
-     actions: {
 
-       loadMaterialsGQL ({ dispatch }, { ids, gqlfragment, callBack, callBackArgs }) {
 
-         console.log('loadMaterialsGQL ids', ids)
 
-         const ast = gql`{
 
-           materiaux(ids: [${ids}]) {
 
-             ...MateriauFields
 
-           }
 
-         }
 
-         ${gqlfragment}
 
-         `
 
-         MGQ.post('', { query: print(ast) })
 
-           .then((resp) => {
 
-             console.log('loadMaterialsGQL resp', resp)
 
-             // dispatch('parseMaterialsGQL', {
 
-             //   items: resp.data.data.materiaux,
 
-             //   callBack: callBack,
 
-             //   callBackArgs: callBackArgs
 
-             // })
 
-             dispatch(callBack, {
 
-               items: resp.data.data.materiaux,
 
-               callBackArgs: callBackArgs
 
-             })
 
-           })
 
-           .catch(error => {
 
-             console.warn('Issue with loadMaterials', error)
 
-             Promise.reject(error)
 
-           })
 
-       }
 
-       // parseMaterialsGQL ({ dispatch }, { items, callBack, callBackArgs }) {
 
-       //   dispatch(callBack, { items: items, callBackArgs: callBackArgs })
 
-       // }
 
-       // loadMaterials ({ dispatch }, { uuids, imgStyle, callBack, callBackArgs }) {
 
-       //   const params = {
 
-       //     // include: 'images', // no needs to include thanks to consumers_image_styles module
 
-       //     // include: 'drupal_internal__nid',
 
-       //     'filter[uuids-groupe][group][conjunction]': 'OR'
 
-       //   }
 
-       //   for (let i = 0; i < uuids.length; i++) {
 
-       //     const uuid = uuids[i]
 
-       //     params[`filter[${uuid}][condition][path]`] = 'id'
 
-       //     params[`filter[${uuid}][condition][value]`] = uuid
 
-       //     params[`filter[${uuid}][condition][operator]`] = '='
 
-       //     params[`filter[${uuid}][condition][memberOf]`] = 'uuids-groupe'
 
-       //   }
 
-       //   // console.log('search JSONAPI params', params)
 
-       //   const q = qs.stringify(params)
 
-       //   return JSONAPI.get('node/materiau?' + q)
 
-       //     .then(({ data }) => {
 
-       //       console.log('mixin getMaterials data', data)
 
-       //       dispatch('parseMaterials', { data: data.data, uuids: uuids, imgStyle: imgStyle, callBack: callBack, callBackArgs: callBackArgs })
 
-       //       // commit('setItems', data.items)
 
-       //     })
 
-       //     .catch((error) => {
 
-       //       console.warn('Issue with getItems', error)
 
-       //       Promise.reject(error)
 
-       //     })
 
-       // },
 
-       // parseMaterials ({ dispatch }, { data, uuids, imgStyle, callBack, callBackArgs }) {
 
-       //   // data comes from jsonapi query
 
-       //   // uuids comes from original query (solr, FlagCollection, etc)
 
-       //   // so we loop from uuids to conserve the original order
 
-       //   console.log('mixin parseMaterials', data, uuids, callBack, callBackArgs)
 
-       //   const items = []
 
-       //   // for (let i = 0; i < data.length; i++) {
 
-       //   for (let i = 0; i < uuids.length; i++) {
 
-       //     const uuid = uuids[i]
 
-       //     // https://stackoverflow.com/questions/11258077/how-to-find-index-of-an-object-by-key-and-value-in-an-javascript-array
 
-       //     const item_index = data.findIndex(p => p.id === uuid)
 
-       //     // console.log('item_index', item_index)
 
-       //     if (item_index === -1) continue
 
-       //
 
-       //     const item_src = data[item_index]
 
-       //     const attrs = item_src.attributes
 
-       //     const relations = item_src.relationships
 
-       //
 
-       //     // get field values
 
-       //     const item = {
 
-       //       uuid: uuid,
 
-       //       title: attrs.title,
 
-       //       field_short_description: attrs.field_short_description,
 
-       //       body: attrs.body,
 
-       //       field_reference: attrs.field_reference
 
-       //     }
 
-       //
 
-       //     // get images included values
 
-       //     const img_src = relations.images.data
 
-       //     // console.log('img_src', img_src)
 
-       //     // this is a temporary deactivation of images
 
-       //     // img_src = [];
 
-       //     item.images = []
 
-       //     for (let j = 0; j < img_src.length; j++) {
 
-       //       if (img_src[j].meta.imageDerivatives) {
 
-       //         let img_styles = {}
 
-       //         for (let k = 0; k < imgStyle.length; k++) {
 
-       //           img_styles[imgStyle[k]] = img_src[j].meta.imageDerivatives.links.[imgStyle[k]].href
 
-       //         }
 
-       //         item.images.push({
 
-       //           title: img_src[j].meta.title,
 
-       //           src: img_src[j].meta.imageDerivatives.links.hd.href,
 
-       //           // meta.imageDerivatives.style.href link is provided by drupal consumers_image_styles module
 
-       //           // BUG: missing all image derivative but first
 
-       //           img_styles: img_styles
 
-       //         })
 
-       //       } else {
 
-       //         console.warn('missing image derivative ' + j + '/' + img_src.length + ' for ' + attrs.title)
 
-       //       }
 
-       //     }
 
-       //
 
-       //     items.push(item)
 
-       //   }
 
-       //   console.log('items', items)
 
-       //   dispatch(callBack, { items: items, callBackArgs: callBackArgs })
 
-       // }
 
-     }
 
-   }
 
- })
 
 
  |