Skip to content
Gallery
Wiki with automatic versioning
Share
Explore

icon picker
DB

Master tables that run the doc, and information about how each table works together to build the final solution.

info

Topics

stores each “page” of our wiki, and is used to display the latest version of the topic from .
Latest Version pulls in a single row from with the highest Version #.
From this column, we have “related columns”:
Last Edited By pulls in the person from the Created by column in .
Last Edit pulls in the timestamp from the Created on column in .
Current Version # pulls in the Version # column in .
Previous Versions pulls in all related rows from except the row that’s the latest version. We use this to display the list of previous versions at the bottom of the row’s popup modal window, allowing users to view previous versions and ultimately revert a previous version.
Content (read-only) pulls in the Content from the latest version. Because we are using a formula here, the column is read-only (its content can’t be edited). This forces our user to use the Edit Topic button to make edits to a topic.
The Edit Topic button allows users to modify the topic’s existing content. The way this works is:
We use DuplicateRows() to duplicate the Latest Version row from . This allows our user to make edits based on the existing content from the latest version.
We then OpenRow() that new row, which opens the row from . The user makes their edits to the content from that view.
full-screen

Row Layout

Expanding a row from displays the Name of the topic and the Content (read-only). Below that we include information about the current version:
The version number, who made the last edit, and when they made that edit
Further down the window, we have a list of Previous Versions. This displays a table and includes a button to View Version. Clicking this button will OpenRow() the relevant version from .

👣 Next Steps

If your wiki topics are displayed as a table, you should include a button to OpenRow() rather than relying on users to find the “Expand row” hover button. I personally prefer a card view here because the user can click anywhere on the card to open the row’s modal window. Making the clickable target as large as possible is always a good thing, and we also want to prevent direct edits to the row and instead force users to use the row’s modal window.
A workflow I haven’t included in this doc is “How do I create a new topic”. You’d ultimately need a button to perform two actions:
Create a new topic in
Create a new row in , setting the Topic lookup column to the new row you’ve just created in .
There will be a bit more effort required to make this an intuitive user journey. For one thing, your topic’s Name and Content are in separate tables!
You could choose to have the Name also become part of your versioning (so you track edits to this field too) by making it read-only in , and moving the editable field to .

DB Topics
1
Name
Content (read-only)
Latest Version
Last Edited By
Last Edit
Current Version #
Edit Topic
Previous Versions
1
Mission Statement
Open
Mission Statement - V5
Jono Bouwmeester
1/18/2024, 2:08 PM
5
Edit Topic
Mission Statement - V4
Mission Statement - V3
Mission Statement - V2
Mission Statement - V1
2
Q1 2024 Goals
Open
Q1 2024 Goals - V3
Jono Bouwmeester
1/18/2024, 2:07 PM
3
Edit Topic
Q1 2024 Goals - V2
Q1 2024 Goals - V1
3
Approved Software
Open
Approved Software - V3
Jono Bouwmeester
1/18/2024, 2:08 PM
3
Edit Topic
Approved Software - V2
Approved Software - V1
There are no rows in this table




info

Versions

stores each version of the articles in .
The columns Created on and Created by are row properties, so are not editable.
The Version # is calculated with a formula. Each time a row is added to the table, the version number is incremented.
The Latest Version checkbox is also calculated with a formula. It is checked on the row with the highest Version # for each Topic.
The Revert to this Version button deletes all rows in the table with the same Topic if their Version # is higher than the given row. This effectively makes the selected row the latest version for the topic.
Content is the actual textual content for the topic. When the row is created, the latest version’s Content is copied into the new row. This allows the user to make edits to the article’s content as it currently stands.
full-screen

Row Layout

Users view rows from by clicking the View Version button in the Previous Versions subtable at the bottom of the topic they’re looking at.
Viewing a row from displays the Content canvas column which is editable.
There’s also a button to Revert to this Version. This allows users to restore a previous version to a topic (how this works is described above).

👣 Next Steps

Ideally you should have two separate VIEWS of this table, because users interact with this table in two unique user journeys:
The first view would be for performing the initial “edit” to the topic. Users would only see this one time - when clicking the Edit Topic button in .
This would have the Content column visible and editable, and the Revert to this Version button would not be displayed (currently I just disable the button).
The second view would be accessed when users want to view a previous version of a topic. This would be accessible by clicking the View Version button in the subtable of .
This view would prevent edits to the Content by displaying a “read-only” version of the content (create a new canvas column, and add a formula to the column which pulls in the row’s editable Content).
And the Revert to this Version button would be visible.
You may also wish to reconsider how the Revert to this Version button works. Currently, reverting to a previous version deletes all subsequent versions which may be too destructive for your purposes. If you’d like to maintain these versions for historical reasons, you could instead DuplicateRows() the selected previous version, making a copy which then becomes the topic’s latest version. There are all sorts of cool things you could add to this workflow. Perhaps there’s a lookup which you set to the row you chose to restored, and update the Name column to display something like “Reverted back to V1” if that column isNotBlank().
DB Versions
Name
Topic
Version #
Latest Version
Created on
Created by
Content
View
Revert version
Back to Topic
1
Mission Statement - V1
Mission Statement
1
1/18/2024, 10:36 AM
Jono Bouwmeester
View Version
Revert to this Version
Back
2
Mission Statement - V2
Mission Statement
2
1/18/2024, 10:41 AM
Jono Bouwmeester
View Version
Revert to this Version
Back
3
Mission Statement - V3
Mission Statement
3
1/18/2024, 10:46 AM
Jono Bouwmeester
View Version
Revert to this Version
Back
4
Mission Statement - V4
Mission Statement
4
1/18/2024, 10:54 AM
Jono Bouwmeester
View Version
Revert to this Version
Back
5
Q1 2024 Goals - V1
Q1 2024 Goals
1
1/18/2024, 11:07 AM
Jono Bouwmeester
View Version
Revert to this Version
Back
6
Q1 2024 Goals - V2
Q1 2024 Goals
2
1/18/2024, 11:08 AM
Jono Bouwmeester
View Version
Revert to this Version
Back
7
Approved Software - V1
Approved Software
1
1/18/2024, 11:11 AM
Jono Bouwmeester
View Version
Revert to this Version
Back
8
Approved Software - V2
Approved Software
2
1/18/2024, 11:12 AM
Jono Bouwmeester
View Version
Revert to this Version
Back
9
Q1 2024 Goals - V3
Q1 2024 Goals
3
1/18/2024, 2:07 PM
Jono Bouwmeester
View Version
Revert to this Version
Back
10
Approved Software - V3
Approved Software
3
1/18/2024, 2:08 PM
Jono Bouwmeester
View Version
Revert to this Version
Back
11
Mission Statement - V5
Mission Statement
5
1/18/2024, 2:08 PM
Jono Bouwmeester
View Version
Revert to this Version
Back
There are no rows in this table
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.