Lomakesovellukset Foswiki-alustalla

Tällä sivulla esitetään esimerkein, kuinka Foswikillä luodaan lomakesovellus rakenteisen tiedon tallentamiseksi wikiin.

Huom! Lomakesovellusten toteuttaminen ja ylläpito on jokin verran työlästä. Ennen kuin päätät toteuttaa lomake-sovelluksen, pohdi vielä kerran: onko lomake-sovelluksen tekeminen tarpeellista vai riittäisikö esimerkiksi yhteinen käytäntö sisällön tuottamiseksi?

Wikisivun tietojen syöttö ja muokkaus voidaan tehdä haluttaessa lomakekäyttöliittymällä, kun wikiin tallennettavat tiedot ovat määrämuotoisia. Ideana on tehdä oma wikisivu jokaisellle lisättävälle tiedolle. Lomakekäyttöliittymällä saavutetaan seuraavia etuja:
  • tietojen syöttäjä ohjataan/pakotetaan antamaan kaikki tarvittavat tiedot
  • vältetään syöttövaiheen kirjoitusvirheet esim. luokittelevissä (meta)tiedoissa
  • haku- ja listaustoiminnot voidaan toteuttaa tarkasti
Foswikissä lomakesovellukset toteutetaan DataForms-tekniikan avulla. Foswikin oma dokumentaatio aiheesta: DataForms

Lomakesovellus rakennetaan seuraavasti:
  1. Määritellään lomake ja sen sisältämät tiedot
  2. Aktivoidaan lomake wikialueen (webin) asetuksissa
  3. Luodaan lisäyslomake joko HTML-merkkauksella tai helpommin FlexFormPlugin avulla
  4. Luodaan listausnäkymä omana wikisivunaan
  5. (Optionaalinen) Luodaan omat sivupohjat (template) tietojen katselu- ja/tai muokkausnäkymien räätälöimiseksi halutunlaisiksi

Esimerkki 1: Yksinkertainen toteutus

Esimerkissä rakennetaan projektin "työkalukortisto" eli yksinkertainen tietokanta projektin käytössä olevista työkaluista (labralaitteet, ohjelmistot yms). Jokaista työkalua varten luodaan oma wikisivunsa, jolle kerätään seuraavat tiedot:
  • työkalun nimi
  • tyyppi (laite/ohjelmisto/verkkopalvelu)
  • lyhyt kuvaus työkalusta
  • vastuuhenkilö
  • URL-osoite (verkkopalvelun osoite, lisätietoja, tms)
Luotavat wikisivut:
  • TyokaluForm: lomaketietojen määrittely (Huom. sivun nimen pitää päättyä Form-sanaan!)
  • TyokaluLisaa: lomakenäkymä, jolla lisätään uusi työkalusivu wikiin
  • TyokaluListaus: wikisivu, joka listaa kaikki lisätyt työkalut
Itse työkalusivut nimetään automaattisesti juoksevalla numeroinnilla: Tyokalu000, Tyokalu001, jne.

Lomakkeen aktivointi wikialueen asetuksissa (WebPreferences)

   * Set WEBFORMS = TyokaluForm

Sivu TyokaluForm

(katso esimerkkisivu)

      No permission to view [[Sandbox.TyokaluForm]] 

Sivu TyokaluLisaa

(katso esimerkkisivu) No permission to view Sandbox.TyokaluLisaa

Muokattavat rivit:
<form name="tyokalulisaa" method="post" action="%SCRIPTURL%/save/%WEB%/TyokaluAUTOINC000"> 
<input type="hidden" name="formtemplate" value="TyokaluForm"/> 
<input type="hidden" name="topicparent" value="TyokaluListaus"/>

IDEA! Lomakkeen HTML-merkkaus tuotetaan tässä FlexFormPlugin avulla (RENDERFOREDIT-makro).
IDEA! AUTOINC000 luotavan wikisivun nimessä kertoo Foswikille, että nimessä käytetään juoksevaa numerointia (Tyokalu000, Tyokalu001, jne).

Sivu TyokaluListaus

(katso esimerkkisivu): No permission to view Sandbox.TyokaluListaus

IDEA! Katso lisää hakutoiminnosta: VarSEARCH ja FormattedSearch

Esimerkki 2: Edistyneempi toteutus

Tässä esimerkissä käytetään räätälöityjä sivupohjia (template) tietojen katselu- ja muokkausnäkymissä. Esimerkissä hyödynnetään AutoTemplatePlugin?-laajennusta, jonka avulla sivupohja valitaan automaattisesti wikisivulle määritellyn lomakkeen perusteella.

Luotavat wikisivut:
  • AdvancedToolForm: lomaketietojen määrittely (Huom. sivun nimen pitää päättyä Form-sanaan!)
  • ToolType: lomakkeen valintalistan (työkalun tyyppi) vaihtoehdot omalla wikisivullaan (tarkoitus: hakutoiminnan helpompi toteutus)
  • AdvancedToolAdd: lomakenäkymä, jolla lisätään uusi työkalusivu wikiin
  • AdvancedToolList: wikisivu, joka listaa kaikki lisätyt työkalut
  • AdvancedToolViewTemplate: sivupohja työkalun tietojen katselunäkymää varten (nimeäminen kaavalla: lomakkeen nimi ilman Form-päätettä + ViewTemplate)
  • AdvancedToolEditTemplate: sivupohja työkalun tietojenmuokkaus näkymää varten (nimeäminen kaavalla: lomakkeen nimi ilman Form-päätettä + EditTemplate)
Työkalusivut nimetään automaattisesti juoksevalla numeroinnilla:AdvancedTool000, AdvancedTool001?, jne.

Lomakkeen aktivointi wikialueen asetuksissa (WebPreferences)

   * Set WEBFORMS = AdvancedToolForm

Sivu AdvancedToolForm

(katso esimerkkisivu)

      No permission to view [[Sandbox.AdvancedToolForm]] 

Sivu ToolType

(katso esimerkkisivu)

      No permission to view [[Sandbox.ToolType]] 

Sivu AdvancedToolAdd

(katso esimerkkisivu) No permission to view Sandbox.AdvancedToolAdd

Muokattavat rivit:
<form name="formadd" method="post" action="%SCRIPTURL%/save/%WEB%/AdvancedToolAUTOINC000"> 
<input type="hidden" name="formtemplate" value="AdvancedToolForm"/> 
<input type="hidden" name="topicparent" value="AdvancedToolList"/>

IDEA! Lomakkeen HTML-merkkaus tuotetaan tässä FlexFormPlugin avulla (RENDERFOREDIT-makro).
IDEA! AUTOINC000 luotavan wikisivun nimessä kertoo Foswikille, että nimessä käytetään juoksevaa numerointia (AdvancedTool000?, AdvancedTool001?, jne).

Sivu AdvancedToolList

(katso esimerkkisivu): No permission to view Sandbox.AdvancedToolList

IDEA! Katso lisää hakutoiminnosta: VarSEARCH ja FormattedSearch

Sivu AdvancedToolViewTemplate

(katso esimerkkisivu) No permission to view Sandbox.AdvancedToolViewTemplate

Sivu AdvancedToolEditTemplate

(katso esimerkkisivu) No permission to view Sandbox.AdvancedToolEditTemplate
Print version |  PDF  | History: r16 < r15 < r14 < r13 | 
Topic revision: r16 - 29 Jun 2010 - 15:19:00 - AdminUser
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback