@Anders The disadvantage of your approach is that you have to manually create a form for every type of source, many of which will share fields with one another. The reason I asked about the best way to associate source-types with their required fields is to avoid this problem. If you know which fields you want for a particular source-type, it should be possible to automatically generate a form/table for adding new sources. Just to be clear I wasn't asking for help on how to actually generate the forms, just on the best way to associate source-types with their required fields.
@Sjaak Your point did occur to me, though I am not sure that I will personally need any different data-entry-methods. I think it would be possible to add the information about how the data for a field should be entered within the tiddler that represents the field itself. For example "Book" could in some way be associated with a tiddler representing the field "format". Then the "format" tiddler could have its own field containing something like <$select><option>Paperback</option><option>Hardback</option></$select>. This should give you enough information to generate forms with custom data-entry-methods, and apply them to any source-type without having to re-write any code. On Thursday, 15 April 2021 at 23:40:59 UTC+1 Anjar wrote: > Hei Sjaak, > > I think a similar approach can be useful; > > (1) Make tiddlers with > - title starting with "$:/template", > - a field tiddlertype, for example tiddlertype: book, and > - a field standardtext, for example standardtext: {{||$:/view/book}} > > (2) This time, the template contains the form you want to use, for > example, $:/template/book can contain > |Composer: |<$edit-text field="composer" /> | > |Title: |<$edit-text field="musictitle" /> | > |Genre: |<$select > field="genre"><option>Horror</option><option>Poetry</option><option>Screenplay</option></$select> > > | > > (3) Make a new tiddler with the content: > \define tiddlername() {{!!tiddlertype}}: <<now "YYYY-0MM-0DD 0hh:0mm:0ss" > >> > > <$list filter="[title[$:/temp/edit]!has[text]]"> > <$list filter="[prefix[$:/template]]"> > <$button> > <$wikify name=newtiddlername text=<<tiddlername>> > > <$action-createtiddler $basetitle=<<newtiddlername>> > tiddlertype={{!!tiddlertype}} text={{!!standardtext}} /> > <$action-setfield $tiddler="$:/temp/edit" text=<<newtiddlername>> /> > </$wikify> > Create {{!!tiddlertype}} Tiddler > </$button> > </$list> > </$list> > <$list filter="[title[$:/temp/edit]has[text]get[text]]"> > <$tiddler tiddler=<<currentTiddler>> > > <$set name=edittitle > filter="[prefix[$:/template]tiddlertype{!!tiddlertype}]"> > <$transclude tiddler=<<edittitle>> mode="block"/> > </$set> > </$tiddler> > <$button> > <$action-deletetiddler $tiddler="$:/temp/edit"/> > Ok > </$button> > </$list> > > The latter tiddler will be your interface and new tiddlers are added in > the background. They will have the standardtext as text, and you edit them > directly from the interface tiddler using the form from the template tiddler > > Best, > Anders > > torsdag 15. april 2021 kl. 20:55:29 UTC+2 skrev sjaakad...@ziggo.nl: > >> Hi Si, >> >> I have been thinking about an approach like yours but have not >> implemented anything yet. It seems important to me that some fields may be >> of a different kind than just text to be entered. Like choosing from a list >> of options (with f.i. the select widget or radio widget). >> My 2 cts. >> >> Greetings, >> Sjaak >> >> On Thursday, April 15, 2021 at 4:27:48 PM UTC+2 Anjar wrote: >> >>> Hi Si, >>> >>> Have a look at this post: >>> https://groups.google.com/g/tiddlywiki/c/Q3vU6tnPffI/m/WNguU1p6BwAJ >>> >>> It's about using premade templates to create new tiddlers; you can of >>> course add a form if you prefer that, instead of editing the new tiddler >>> directly >>> >>> Best, >>> Anders >>> >>> torsdag 15. april 2021 kl. 16:06:52 UTC+2 skrev si: >>> >>>> @Springer Thanks for your reply. >>>> >>>> >>> The lovely thing is that you can filter on a tag (or any other >>>> filter condition), to see a column for each of the fields you care about >>>> for that tag (or filter condition), with a row for each tiddler that fits >>>> the condition (and the ability to "clone" new rows into existence). >>>> >>>> How do you tell TiddlyWiki which fields to associate with each >>>> reference-type? So for example you were to add a tiddler with the tag >>>> "Book", you would want your table to give you the option to add fields >>>> like >>>> "author", "title" etc. If you had a tiddler tagged "Movie" you might want >>>> "director", "year" etc. My question is about the best way to associate a >>>> particular type of source with the particular fields that it requires. >>>> On Wednesday, 14 April 2021 at 21:10:07 UTC+1 springer wrote: >>>> >>>>> Si, I highly recommend checking out all the RefNotes resources (active >>>>> here recently, contributed by Mohammad). >>>>> >>>>> My own approach is to use a DYNAMIC TABLE (Mohammad's Shiraz) for each >>>>> reference-type. The lovely thing is that you can filter on a tag (or any >>>>> other filter condition), to see a column for each of the fields you care >>>>> about for that tag (or filter condition), with a row for each tiddler >>>>> that >>>>> fits the condition (and the ability to "clone" new rows into existence). >>>>> Then you don't have a separate challenge of generating forms. Unless you >>>>> really want to. ;) >>>>> >>>>> -Springer >>>>> On Wednesday, April 14, 2021 at 3:03:02 PM UTC-4 si wrote: >>>>> >>>>>> I use TiddlyWiki to manage sources (books, movies etc), and I want to >>>>>> create an easy way to add tiddlers for individual sources. >>>>>> >>>>>> I have decided to add tiddlers that represent a "source-type", and >>>>>> then use it to generate a form that allows me to enter metadata for a >>>>>> new >>>>>> source. For example I might have a source type "Book", which is used to >>>>>> generate a form like this: >>>>>> >>>>>> Title: ... >>>>>> Author: ... >>>>>> Year: ... >>>>>> >>>>>> While "Movie" might have a form like this: >>>>>> >>>>>> Title: ... >>>>>> Director: ... >>>>>> Producer: ... >>>>>> >>>>>> Obviously I need to associate the required metadata-fields with their >>>>>> source-type. I can think of two ways to do this: >>>>>> >>>>>> - Add a field to each tiddler type called "required-fields" which >>>>>> lists the required metadata-fields. >>>>>> - Create separate tiddlers for each possible metadata-field, then >>>>>> tag them with any source-type that requires them. >>>>>> >>>>>> It's not obvious to me that there is any functional difference >>>>>> between these two options, but if I make a bad choice it will be >>>>>> difficult >>>>>> to change down the line. So my question is: *Is there a reason that >>>>>> one of these approaches is better than the other?* >>>>>> >>>>>> Thanks in advance for you help. >>>>>> >>>>> -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/32fa9bcd-e336-4483-963f-39e6450d3cc1n%40googlegroups.com.