[pmwiki-users] JITS ver.20070209 released
Hladůvka Jiří
mail at revida.sk
Sat Feb 10 06:29:45 CST 2007
christian.ridderstrom at gmail.com napsal(a):
> I'm looking for some kind of recipe for the wiki to help me build up a
> few "registers". Basically I'd like to have the following kinds of
> registers:
>
> * Issue tracking system
> * Register or drawings
> * Register of cables
>
> Do you think JITS would be suitable for implementing the latter two?
> (I'm assuming it'll be good at issue tracking...)
>
> Would it be ok if I tried to set up some example registers at your
> test site, and asked you for help when/if I run into problems? These
> examples could then serve as documentation/inspiration for other people.
>
As for testing in my site there is a response to Christians private email.
As for drawings and cables register :
If the page datafields, labels, filtering and sorting rules are sufficient
then you can try the JITS snipets.
Though I know nothing about intended contents of the mentioned registers
I thing there should be necessary some analyze first separately for cables
and separately for drawings as the two subject are very different.
For sure there are different needs for artistic and technical drawings.
Anyway there are some common aspects for all kind of registers
Following describes my idea in case you do not use some database
engine - that means you create one wikipage per the register item.
(I have no experience with databases cooperating with PmWiki but I think
the basics could be similar).
This is my proposal how to approach the job
1) Page identification:
Lets take an analogy with database. One database record is then
one page describing one a drawing or one kind of a cable (or one task
assigned to the employee)
The records can be grouped (into database-like group) and to distinguish
the groups you can use wikigroups
or some record field (page text variable) - in my JITS I use PInd
variable to know the page belongs to JITS type of "database"
and JName to know the page belongs to MyToDo or Tests or Projekty etc.
Thus you can have your databases all in one wikigroup.
2) Record (page) fields:
make list of fields and consider with each:
- how the field value is fill in (text entered, selected from dropdown,
checkbox , generated by some function/snippet)
- how the field is presented (displayed as text or in some form control
or not at all)
- can the field value be modified by (any) user or only by the database
admin
- is the field a subject of the lists filter, order, lists contents
- other aspects you think are necessary
3) Manipulation Tools
- form with subbmit button to create a new record
- form for new record creation
- form to present the record (can be combined with the following)
- form to modify the record
- form for pagelist filter and ordering
- filtered pagelists
The manipulation tools snippets can be placed in some service page (e.g.
CabelsTools or DrawingsTools)
as "not processed" ( using [@ ... @] ) and each tool is delimited by
anchors like #newrecord and #newrecordend.
The service page then conditionally includes from itself the proper part
from "not processed" division depending
on some parameter the displayed page is called e.g. ?par=newrec or
?par=display etc
example:
[[#start]]
if equal {$par} ""
include CabelsTools #newbuttonform#newbuttonformend
include CabelsTools #filtersform#filtersformend
include CabelsTools #pagelist#pagelistend
if equal {$par} "newrec"
include CabelsTools #newrecord#newrecordend
if ...
[[#end]]
[@
[[#newbuttonform]]
...
[[#newbuttonformend]]
...
@]
The manipulation tools snippets usually return the control to the
displayed page {*$PageUrl}
with a proper parameter on submit. eg the "form with subbmit button to
create a new record"
should look like this:
[[#newbuttonform]]
(:form name=newbuttonform action={*$PageUrl}?par=newrec:)
(:input submit "Create new":)
[[#newbuttonformend]]
Sure if the service page grows too much it is better to split the
snippets page to
other pages.
Such a service page can be conditionally included to <Group>.GroupFooter
e.g.
(:if equal {*$:PageIdentification} Cabels:) (:include CabelsTools
#start#end :)
(:if equal {*$:PageIdentification} Drawings:) (:include DrawingsTools
#start#end:)
...
Best regards,
Jiri
More information about the pmwiki-users
mailing list