A function to buttons that creates new pages from a template.
We’re a Facility Management company that manages close to a hundred estates. In Coda, we have one doc per estate, which we use to track projects, our changelog, and meeting with the on-premise custodians. All of these docs are based upon the same template. Within these docs, we’re using hidden pages as templates for meeting notes, project descriptions and so on. These are created with a button.
The problem comes whenever we want to make changes to any of the page-templates within the documents. If we want to make a change to the meeting note template, we’ll have to manually go into each doc and change the hidden pages used as templates.
Having a button that creates pages from a template means we only need to make changes in a single place. It encourages quicker iterations, and allow us to fine-tune what we got.
We are aware of the slash-command to create a template, but do not find it an elegant solution to use in production. It’s error-prone and not very user-friendly.
Can you explain a little bit more about what it is that you are trying to do?
Do you want a template page, and use that as a basis for each new page that you create?
DO you want to be able to retroactively update a page when you make changes to the template from which it was originally created? If so, how will the system know what to change in the destination, and where to make the changes?
There might be some confusion due to the “template” terminology. There are two types of templates, the native coda templates and the more hackish way of using a page in a document as a template via duplication. Right now I’m using the hackish way on every document, with a button that duplicates that page. If I want to change the template, I need to change it for every doc (which is over a hundred).
If however the button creates a page from a native Coda template, there is only one source of truth that I have to change. Of course it wouldn’t retroactively change pages created with the hackish approach, which is fine, but it will work for all future pages created with the button.
Does that answer your question?
100% agree. The “create page” action should be able to take a template as a parameter.
Apologies, missed your response.
You can use the formula duplicatepage() in a button a boilerplate (template) page. That definitely works.
But once you have instantiated the page, going back to add changes to it is going to be manual.
The closest you are going to get to achieve that, is by making use of the detail view of a table, all the data in a page and then formatting the layout to suit your needs.
If you change that layout, it will apply to all rows.
You can use the duplicatepage formula to achieve what you need.
Correct me if I’m mistaken, but duplicatepage() only works on a page in the same document. In that case you’ll get the problem I’ve described above.