@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.

Reply via email to