Browse Source

refactoring; saving first paragraph contentEditable

bach 1 month ago
parent
commit
e4104a52ef

+ 1 - 0
src/api/gql/entite.fragment.gql

@@ -13,6 +13,7 @@ fragment EntiteFields on Entite {
     id
   }
   sources {
+    id
     description
     images {
       alt

+ 2 - 2
src/components/contents/Entite.vue

@@ -73,7 +73,7 @@ export default {
           :data="{
             entitytype: 'node',
             bundle: 'entite',
-            nid: this.entite.id,
+            id: this.entite.id,
             field: {field_name: 'field_action', value:'value'}
           }"
           v-on:updated="reloadEntite" />
@@ -89,7 +89,7 @@ export default {
           :data="{
             entitytype: 'node',
             bundle: 'entite',
-            nid: this.entite.id,
+            id: this.entite.id,
             field: {field_name: 'field_menace_maintien', value:'value'}
           }"
           v-on:updated="reloadEntite" />

+ 13 - 1
src/components/contents/Source.vue

@@ -46,7 +46,19 @@ export default {
     <!-- <div class="date">{{ source.date.start }}</div> -->
     <section v-if="source.description" class="description">
       <label v-if="ct_entite"> {{ field_sources_label }}</label>
-      <div v-html="source.description"/>
+      <!-- <div v-html="source.description"/> -->
+      <ContentEditable 
+          tag="div"
+          :value="source.description"
+          :contenteditable="entite.can_update"
+          :html="true"
+          :data="{
+            entitytype: 'paragraph',
+            bundle: 'source',
+            id: this.source.id,
+            field: {field_name: 'field_description', value:'value'}
+          }"
+          v-on:updated="reloadEntite" />
     </section>
       
     <section

+ 3 - 3
src/components/contents/TerrainDeVie.vue

@@ -247,7 +247,7 @@ export default {
           :data="{
             entitytype: 'node',
             bundle: 'entite',
-            nid: this.entite.id,
+            id: this.entite.id,
             field: {field_name: 'title', value:'value'}
           }" />
 
@@ -296,7 +296,7 @@ export default {
               :data="{
                 entitytype: 'node',
                 bundle: 'concernement',
-                nid: this.concernement.id,
+                id: this.concernement.id,
                 field: {field_name: 'field_description', value:'value'}
               }" />
 
@@ -312,7 +312,7 @@ export default {
               :data="{
                 entitytype: 'node',
                 bundle: 'concernement',
-                nid: this.concernement.id,
+                id: this.concernement.id,
                 field: {field_name: 'field_caillou', value:'value'}
               }" />
 

+ 9 - 2
src/components/editable/ContentEditable.vue

@@ -49,9 +49,13 @@ export default {
       // console.log('save csrf_token', this.csrf_token);
       const params = {
         type: this.data.bundle,
-        nid: [{"value":this.data.nid}],
         [this.data.field.field_name]: [{[this.data.field.value]: content}]
       };
+      if (this.data.entitytype === 'node') {
+        params.nid = [{"value":this.data.id}];
+      } else {
+        params.id = [{"value":this.data.id}];
+      }
       // we need additional values for image alt for example
       // console.log('additional_values', this.data.field.additional_values);
       if (this.data.field.additional_values) {
@@ -61,10 +65,13 @@ export default {
           }
         }
       }
+      
       const configs = {
         headers: {'X-CSRF-Token': this.csrf_token}
       };
-      REST.patch(`/${this.data.entitytype}/${this.data.nid}?_format=json`, params, configs)
+
+      let url_base = `/${this.data.entitytype === 'node' ? '' : 'entity/'}${this.data.entitytype}`;
+      REST.patch(`${url_base}/${this.data.id}?_format=json`, params, configs)
         .then(({ data }) => {
           console.log('user REST post node data', data)
           // TODO if success update the data in pinia 

+ 1 - 1
src/components/layout/CartoucheLayout.vue

@@ -76,7 +76,7 @@ export default {
         :data="{
           entitytype: 'node',
           bundle: 'concernement',
-          nid: this.concernement.id,
+          id: this.concernement.id,
           field: {field_name: 'title', value:'value'}
         }" />