From 251f5f01780611b442b738e3d3df29fb9705f90d Mon Sep 17 00:00:00 2001 From: Nick Bernal Date: Fri, 25 Oct 2024 09:32:50 -0700 Subject: [PATCH 1/2] Restore tracked changes buttons, doc mode --- .../src/components/toolbar/defaultItems.js | 76 ++++++++++++++++++- packages/superdoc/src/core/Superdoc.js | 3 +- .../src/dev/components/SuperdocDev.vue | 3 +- 3 files changed, 79 insertions(+), 3 deletions(-) diff --git a/packages/super-editor/src/components/toolbar/defaultItems.js b/packages/super-editor/src/components/toolbar/defaultItems.js index 6649d48d8e..89bc11bd8b 100644 --- a/packages/super-editor/src/components/toolbar/defaultItems.js +++ b/packages/super-editor/src/components/toolbar/defaultItems.js @@ -539,6 +539,67 @@ export const makeDefaultItems = (superToolbar, isDev = false, windowWidth) => { } }); + + const test = useToolbarItem({ + type: "button", + disabled: false, + name: "test", + tooltip: "Test", + command: "insertTestNodes", + icon: "fas fa-vial", + group: "left", + }); + + const trackChanges = useToolbarItem({ + type: "button", + disabled: false, + name: "trackChanges", + tooltip: "Track Changes", + command: "toggleTrackChanges", + icon: "fa-solid fa-list-check", + group: "left", + }); + + const acceptChangesOnCursorPositions = useToolbarItem({ + type: "button", + disabled: false, + name: "acceptChangesOnCursorPositions", + tooltip: "Accept Changes under selection", + command: "acceptChangesOnCursorPositions", + icon: "fa fa-calendar-check", + group: "left", + }); + + const revertChangesOnCursorPositions = useToolbarItem({ + type: "button", + disabled: false, + name: "revertChangesOnCursorPositions", + tooltip: "Revert Changes under selection", + command: "revertChangesOnCursorPositions", + icon: "fa fa-calendar-xmark", + group: "left", + }); + + const toggleTrackChangesOriginal = useToolbarItem({ + type: "button", + disabled: false, + name: "toggleTrackChangesShowOriginal", + tooltip: "Toggle Show Original", + command: "toggleTrackChangesShowOriginal", + icon: "fa fa-eye", + group: "left", + }); + + const toggleTrackChangesFinal = useToolbarItem({ + type: "button", + disabled: false, + name: "toggleTrackChangesShowFinal", + tooltip: "Toggle Show Final", + command: "toggleTrackChangesShowFinal", + icon: "fa-solid fa-file", + group: "left", + }); + // search // const search = useToolbarItem({ // type: "button", @@ -619,7 +680,7 @@ export const makeDefaultItems = (superToolbar, isDev = false, windowWidth) => { const documentOptions = [ { label: "Editing", value: "editing", icon: 'fal fa-user-edit', description: "Edit document directly", }, - // { label: "Suggesting", value: "suggesting", icon: 'fal fa-comment-edit', description: "Edits become suggestions" }, + { label: "Suggesting", value: "suggesting", icon: 'fal fa-comment-edit', description: "Edits become suggestions" }, { label: "Viewing", value: "viewing", icon: 'fal fa-eye', description: "View clean version of document only" }, ]; @@ -657,6 +718,16 @@ export const makeDefaultItems = (superToolbar, isDev = false, windowWidth) => { let toolbarItems = [ undo, redo, + + // Dev - tracked changes + test, + trackChanges, + acceptChangesOnCursorPositions, + revertChangesOnCursorPositions, + toggleTrackChangesOriginal, + toggleTrackChangesFinal, + + // non dev zoom, separator, fontButton, @@ -690,6 +761,9 @@ export const makeDefaultItems = (superToolbar, isDev = false, windowWidth) => { toolbarItems = toolbarItems.filter(item => item.type !== 'separator'); } + const devItems = [test, trackChanges, acceptChangesOnCursorPositions, revertChangesOnCursorPositions, toggleTrackChangesOriginal, toggleTrackChangesFinal]; + if (!isDev) toolbarItems = toolbarItems.filter((item) => !devItems.includes(item)); + // always visible items const toolbarItemsSticky = [ undo, diff --git a/packages/superdoc/src/core/Superdoc.js b/packages/superdoc/src/core/Superdoc.js index 34c5c44b65..deb03aa90d 100644 --- a/packages/superdoc/src/core/Superdoc.js +++ b/packages/superdoc/src/core/Superdoc.js @@ -66,6 +66,7 @@ export class Superdoc extends EventEmitter { // Toolbar this.toolbarElement = config.toolbar; this.toolbar = null; + this.isDev = config.isDev || false; this.superdocStore.init(config); this.activeEditor = null; @@ -149,7 +150,7 @@ export class Superdoc extends EventEmitter { const config = { element: this.toolbarElement || null, onToolbarCommand: this.onToolbarCommand.bind(this), - isDev: false, + isDev: this.isDev || false, toolbarGroups: this.config.toolbarGroups, } this.toolbar = new SuperToolbar(config); diff --git a/packages/superdoc/src/dev/components/SuperdocDev.vue b/packages/superdoc/src/dev/components/SuperdocDev.vue index def3a0f08c..11a673bb79 100644 --- a/packages/superdoc/src/dev/components/SuperdocDev.vue +++ b/packages/superdoc/src/dev/components/SuperdocDev.vue @@ -43,8 +43,9 @@ const init = async () => { superdocId: 'superdoc-dev', selector: '#superdoc', toolbar: 'toolbar', - toolbarGroups: ['center'], + toolbarGroups: ['left', 'center', 'right'], documentMode: 'editing', + isDev: true, user: { name: 'Super Document Jr.', email: 'user@harbourshare.com', From 04e63cbe10f8ac9d474f6dc34c3ea32bf56487e7 Mon Sep 17 00:00:00 2001 From: Nick Bernal Date: Fri, 25 Oct 2024 09:44:44 -0700 Subject: [PATCH 2/2] Restore the comments plugin --- packages/super-editor/src/extensions/index.js | 2 +- packages/superdoc/src/dev/components/SuperdocDev.vue | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/super-editor/src/extensions/index.js b/packages/super-editor/src/extensions/index.js index cbc5ca9cb6..b6af391c30 100644 --- a/packages/super-editor/src/extensions/index.js +++ b/packages/super-editor/src/extensions/index.js @@ -96,7 +96,7 @@ const getStarterExtensions = () => { Underline, FormatCommands, DecorationClick, - // CommentsPlugin, + CommentsPlugin, Table, TableRow, TableCell, diff --git a/packages/superdoc/src/dev/components/SuperdocDev.vue b/packages/superdoc/src/dev/components/SuperdocDev.vue index 11a673bb79..06c82194b5 100644 --- a/packages/superdoc/src/dev/components/SuperdocDev.vue +++ b/packages/superdoc/src/dev/components/SuperdocDev.vue @@ -58,10 +58,10 @@ const init = async () => { }, ], modules: { - // 'comments': { - // // readOnly: true, - // // allowResolve: false, - // }, + 'comments': { + // readOnly: true, + // allowResolve: false, + }, 'hrbr-fields': {}, // collaboration: { // providerType: 'hocuspocus', @@ -72,7 +72,7 @@ const init = async () => { }, } superdoc.value = new Superdoc(config); - + superdoc.value.on('editorCreate', onEditorCreate); };