123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import { defineStore } from 'pinia'
- // import REST from '@api/rest-axios'
- // import JSONAPI from '@api/json-axios'
- import { print } from 'graphql/language/printer'
- import gql from 'graphql-tag'
- // import REST from '@api/rest-axios'
- import GQL from '@api/graphql-axios'
- // import JSONAPI from '@api/json-axios'
- import ConcernementFields from '@api/gql/concernement.fragment.gql'
- // import EntityFields from '@api/gql/entitydef.fragment.gql'
- export const ConcernementsStore = defineStore({
- id: 'concernements',
- state: () => ({
- concernements: [],
- concernementsByID: {},
- allEntitesById: {},
- opened: false,
- ct_concernement: {}
- }),
- getters: {
-
- },
- actions: {
- loadConcernements () {
- console.log('concernements store loadConcernements');
- return new Promise((resolve, reject) => {
- const ast = gql`{
- allconcernements {
- ...ConcernementFields
- }
- }
- ${ConcernementFields}
- `
- console.log('ast', ast);
- GQL.post('', { query: print(ast) })
- .then(({ data : { data : { allconcernements } } }) => {
- console.log('loadconcernements loaded', allconcernements)
-
- this.concernements = [];
- allconcernements.forEach(concernement => {
- concernement.entites_byid = {};
- concernement.entites.forEach(entite => {
- concernement.entites_byid[entite.entite.id] = entite;
- // record a flat list of all entités of all concernement for map-popup
- this.allEntitesById[entite.entite.id] = entite;
- });
- this.concernements.push(concernement);
- this.concernementsByID[concernement.id] = concernement;
- });
- })
- .catch(error => {
- console.warn('Issue with loadConcernements', error)
- Promise.reject(error)
- })
- })
- },
- loadContentTypeDefinition () {
- const body = {
- query: `
- query EntityDef($type: String!, $bundle: String!){
- entitydef(type: $type, bundle: $bundle) {
- fields {
- type
- field_name
- label
- description
- }
- }
- }`,
- variables: { type: 'node', bundle: 'concernement' }
- }
- GQL.post('', body)
- .then(({ data: { data: { entitydef }}}) => {
- console.log('loadContentTypeDefinition entitydef', entitydef);
- entitydef.fields.forEach(field => {
- this.ct_concernement[field.field_name] = field;
- });
- })
- },
- openCloseConcernements (ids) {
- var state;
- this.concernements.forEach((c, i) => {
- state = ids.indexOf(c.id) !== -1;
- this.concernements[i].opened = this.concernementsByID[c.id].opened = state;
- if (state) {
- this.opened = c;
- this.router.push({name: 'concernement', params: {id: c.id}});
- }
- });
- },
- resetConcernementOpened () {
- this.opened = null;
- },
- openEntite (cid, id) {
- this.router.push({name: 'concernement', params: {id: cid, eid: id}});
- }
- }
- })
|