From 2b6641ab394a8c0a762a13f352eb11cbc601c446 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Sat, 9 May 2020 11:02:47 +0300
Subject: [PATCH] add group attribute

---
 .../marks/trackChangesMarks/deletionMark.js   |  9 ++++++---
 .../trackChangesMarks/formatChangeMark.js     |  9 ++++++---
 .../marks/trackChangesMarks/insertionMark.js  | 12 ++++++++----
 .../trackChangesNodes/authorTrackNode.js      |  9 ++++++---
 .../epigraphPoetryTrackNode.js                |  9 ++++++---
 .../epigraphProseTrackNode.js                 |  9 ++++++---
 .../extractPoetryTrackNode.js                 |  9 ++++++---
 .../extractProseTrackNode.js                  |  9 ++++++---
 .../trackChangesNodes/headingTrackNode.js     | 19 +++++++++++++------
 .../trackChangesNodes/orderedListTrackNode.js |  9 ++++++---
 .../paragraphContTrackNode.js                 |  9 ++++++---
 .../trackChangesNodes/sourceNoteTrackNode.js  |  9 ++++++---
 .../trackChangesNodes/subTitleTrackNode.js    |  9 ++++++---
 .../nodes/trackChangesNodes/titleTrackNode.js |  9 ++++++---
 .../src/SchemaService/DefaultSchema.js        |  8 +++++---
 .../src/schema/SchemaHelpers.js               |  3 ++-
 16 files changed, 100 insertions(+), 50 deletions(-)

diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/deletionMark.js b/wax-prosemirror-schema/src/marks/trackChangesMarks/deletionMark.js
index d276d0d00..1de64cb02 100644
--- a/wax-prosemirror-schema/src/marks/trackChangesMarks/deletionMark.js
+++ b/wax-prosemirror-schema/src/marks/trackChangesMarks/deletionMark.js
@@ -3,7 +3,8 @@ const deletion = {
     id: { default: "" },
     user: { default: 0 },
     username: { default: "" },
-    date: { default: 0 }
+    date: { default: 0 },
+    group: { default: "" }
   },
   inclusive: false,
   group: "track",
@@ -15,7 +16,8 @@ const deletion = {
           id: dom.dataset.id,
           user: parseInt(dom.dataset.user),
           username: dom.dataset.username,
-          date: parseInt(dom.dataset.date)
+          date: parseInt(dom.dataset.date),
+          group: dom.dataset.group
         };
       }
     }
@@ -28,7 +30,8 @@ const deletion = {
         "data-id": node.attrs.id,
         "data-user": node.attrs.user,
         "data-username": node.attrs.username,
-        "data-date": node.attrs.date
+        "data-date": node.attrs.date,
+        "data-group": node.attrs.group
       }
     ];
   }
diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js b/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js
index 0746be431..5fc79a00c 100644
--- a/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js
+++ b/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js
@@ -5,7 +5,8 @@ const format_change = {
     username: { default: "" },
     date: { default: 0 },
     before: { default: [] },
-    after: { default: [] }
+    after: { default: [] },
+    group: { default: "" }
   },
   inclusive: false,
   group: "track",
@@ -19,7 +20,8 @@ const format_change = {
           username: dom.dataset.username,
           date: parseInt(dom.dataset.date),
           before: parseFormatList(dom.dataset.before),
-          after: parseFormatList(dom.dataset.after)
+          after: parseFormatList(dom.dataset.after),
+          group: dom.dataset.group
         };
       }
     }
@@ -34,7 +36,8 @@ const format_change = {
         "data-username": node.attrs.username,
         "data-date": node.attrs.date,
         "data-before": JSON.stringify(node.attrs.before),
-        "data-after": JSON.stringify(node.attrs.after)
+        "data-after": JSON.stringify(node.attrs.after),
+        "data-group": node.attrs.group
       }
     ];
   }
diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/insertionMark.js b/wax-prosemirror-schema/src/marks/trackChangesMarks/insertionMark.js
index 356b1016e..945d52ea7 100644
--- a/wax-prosemirror-schema/src/marks/trackChangesMarks/insertionMark.js
+++ b/wax-prosemirror-schema/src/marks/trackChangesMarks/insertionMark.js
@@ -4,7 +4,8 @@ const insertion = {
     user: { default: 0 },
     username: { default: "" },
     date: { default: 0 },
-    approved: { default: true }
+    approved: { default: true },
+    group: { default: "" }
   },
   inclusive: false,
   group: "track",
@@ -18,7 +19,8 @@ const insertion = {
           username: dom.dataset.username,
           date: parseInt(dom.dataset.date),
           inline: true,
-          approved: false
+          approved: false,
+          group: dom.dataset.group
         };
       }
     },
@@ -31,7 +33,8 @@ const insertion = {
           username: dom.dataset.username,
           date: parseInt(dom.dataset.date),
           inline: true,
-          approved: true
+          approved: true,
+          group: dom.dataset.group
         };
       }
     }
@@ -46,7 +49,8 @@ const insertion = {
         "data-id": node.attrs.id,
         "data-user": node.attrs.user,
         "data-username": node.attrs.username,
-        "data-date": node.attrs.date
+        "data-date": node.attrs.date,
+        "data-group": node.attrs.group
       }
     ];
   }
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js
index 18ed78889..4ee38f0b2 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js
@@ -7,7 +7,8 @@ const author = {
   defining: true,
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   parseDOM: [
     {
@@ -15,7 +16,8 @@ const author = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -25,7 +27,8 @@ const author = {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
         "data-id": hook.node.attrs.id,
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphPoetryTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphPoetryTrackNode.js
index 83b7932e9..e888ed541 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphPoetryTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphPoetryTrackNode.js
@@ -7,7 +7,8 @@ const epigraphPoetry = {
   defining: true,
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   parseDOM: [
     {
@@ -15,7 +16,8 @@ const epigraphPoetry = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -25,7 +27,8 @@ const epigraphPoetry = {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
         "data-id": hook.node.attrs.id,
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphProseTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphProseTrackNode.js
index 45bcc7e94..e4135cf06 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphProseTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/epigraphProseTrackNode.js
@@ -7,7 +7,8 @@ const epigraphProse = {
   defining: true,
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   parseDOM: [
     {
@@ -15,7 +16,8 @@ const epigraphProse = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -25,7 +27,8 @@ const epigraphProse = {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
         "data-id": hook.node.attrs.id,
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractPoetryTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractPoetryTrackNode.js
index afbf31893..937af7bd4 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractPoetryTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractPoetryTrackNode.js
@@ -7,7 +7,8 @@ const extractPoetry = {
   defining: true,
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   parseDOM: [
     {
@@ -15,7 +16,8 @@ const extractPoetry = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -25,7 +27,8 @@ const extractPoetry = {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
         "data-id": hook.node.attrs.id,
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractProseTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractProseTrackNode.js
index 9365f0dc8..83d9bda49 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractProseTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/extractProseTrackNode.js
@@ -7,7 +7,8 @@ const extractProse = {
   defining: true,
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   parseDOM: [
     {
@@ -15,7 +16,8 @@ const extractProse = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -25,7 +27,8 @@ const extractProse = {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
         "data-id": hook.node.attrs.id,
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/headingTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/headingTrackNode.js
index d1aa1b593..55be2a66a 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/headingTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/headingTrackNode.js
@@ -3,7 +3,8 @@ import { SchemaHelpers } from "wax-prosemirror-utilities";
 const heading = {
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   content: "inline*",
   group: "block",
@@ -14,7 +15,8 @@ const heading = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -23,8 +25,9 @@ const heading = {
       tag: "h2",
       getAttrs(hook, next) {
         Object.assign(hook, {
-          "data-id": hook.node.attrs.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          id: hook.dom.dataset.id,
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -33,7 +36,9 @@ const heading = {
       tag: "h3",
       getAttrs(hook, next) {
         Object.assign(hook, {
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          id: hook.dom.dataset.id,
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -42,7 +47,9 @@ const heading = {
   toDOM(hook, next) {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-id": hook.node.attrs.id,
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/orderedListTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/orderedListTrackNode.js
index a126470a9..a4214da44 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/orderedListTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/orderedListTrackNode.js
@@ -5,7 +5,8 @@ const orderedlist = {
   content: "list_item+",
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   parseDOM: [
     {
@@ -13,7 +14,8 @@ const orderedlist = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -23,7 +25,8 @@ const orderedlist = {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
         "data-id": hook.node.attrs.id,
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/paragraphContTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/paragraphContTrackNode.js
index b6fc42ed4..3bc477abf 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/paragraphContTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/paragraphContTrackNode.js
@@ -7,7 +7,8 @@ const paragraphCont = {
   defining: true,
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   parseDOM: [
     {
@@ -15,7 +16,8 @@ const paragraphCont = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -25,7 +27,8 @@ const paragraphCont = {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
         "data-id": hook.node.attrs.id,
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/sourceNoteTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/sourceNoteTrackNode.js
index c6e3e08f8..cf9437b3c 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/sourceNoteTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/sourceNoteTrackNode.js
@@ -7,7 +7,8 @@ const sourceNote = {
   defining: true,
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   parseDOM: [
     {
@@ -15,7 +16,8 @@ const sourceNote = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -25,7 +27,8 @@ const sourceNote = {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
         "data-id": hook.node.attrs.id,
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/subTitleTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/subTitleTrackNode.js
index 496d71340..c2d21e612 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/subTitleTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/subTitleTrackNode.js
@@ -7,7 +7,8 @@ const subtitle = {
   defining: true,
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   parseDOM: [
     {
@@ -15,7 +16,8 @@ const subtitle = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -25,7 +27,8 @@ const subtitle = {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
         "data-id": hook.node.attrs.id,
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/titleTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/titleTrackNode.js
index 017a73af5..81de595b5 100644
--- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/titleTrackNode.js
+++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/titleTrackNode.js
@@ -7,7 +7,8 @@ const title = {
   defining: true,
   attrs: {
     id: { default: "" },
-    track: { default: [] }
+    track: { default: [] },
+    group: { default: "" }
   },
   parseDOM: [
     {
@@ -15,7 +16,8 @@ const title = {
       getAttrs(hook, next) {
         Object.assign(hook, {
           id: hook.dom.dataset.id,
-          track: SchemaHelpers.parseTracks(hook.dom.dataset.track)
+          track: SchemaHelpers.parseTracks(hook.dom.dataset.track),
+          group: hook.dom.dataset.group
         });
         next();
       }
@@ -25,7 +27,8 @@ const title = {
     if (hook.node.attrs.track.length) {
       Object.assign(hook.value[1], {
         "data-id": hook.node.attrs.id,
-        "data-track": JSON.stringify(hook.node.attrs.track)
+        "data-track": JSON.stringify(hook.node.attrs.track),
+        "data-group": hook.node.attrs.group
       });
     }
     next();
diff --git a/wax-prosemirror-services/src/SchemaService/DefaultSchema.js b/wax-prosemirror-services/src/SchemaService/DefaultSchema.js
index b711dab33..23653b144 100644
--- a/wax-prosemirror-services/src/SchemaService/DefaultSchema.js
+++ b/wax-prosemirror-services/src/SchemaService/DefaultSchema.js
@@ -23,16 +23,18 @@ export default {
       attrs: {
         id: { default: "" },
         class: { default: "paragraph" },
-        track: { default: [] }
+        track: { default: [] },
+        group: { default: "" }
       },
       parseDOM: [
         {
           tag: "p.paragraph",
           getAttrs(dom) {
             return {
-              id: hook.dom.dataset.id,
+              id: dom.dataset.id,
               class: dom.getAttribute("class"),
-              track: SchemaHelpers.parseTracks(dom.dataset.track)
+              track: SchemaHelpers.parseTracks(dom.dataset.track),
+              group: dom.dataset.group
             };
           }
         }
diff --git a/wax-prosemirror-utilities/src/schema/SchemaHelpers.js b/wax-prosemirror-utilities/src/schema/SchemaHelpers.js
index b141d234e..40cac9e01 100644
--- a/wax-prosemirror-utilities/src/schema/SchemaHelpers.js
+++ b/wax-prosemirror-utilities/src/schema/SchemaHelpers.js
@@ -42,7 +42,8 @@ const blockLevelToDOM = node => {
     ? {
         "data-id": node.attrs.id,
         class: node.attrs.class,
-        "data-track": JSON.stringify(node.attrs.track)
+        "data-track": JSON.stringify(node.attrs.track),
+        "data-group": node.attrs.group
       }
     : { class: node.attrs.class };
   return attrs;
-- 
GitLab