Movatterモバイル変換


[0]ホーム

URL:


Trac Hacks
wiki:WikiFormsPlugin

Context Navigation


Contents

  1. Description
    1. New Include Feature
    2. New Permission Feature
    3. New Notification feature
  2. Bugs/Feature Requests
  3. Download
  4. Source
  5. Installation
  6. Recent Changes
  7. Author/Contributors

Provides forms anywhere where there is a wiki

Notice: This plugin is unmaintained and availableforadoption.

Description

This plugin allows you to add a form on any Trac wiki page. This is meant to provide a more flexible version ofTracFormsPlugin. For a comparison between the two plugins, seehere.

This plugin can be used in the following ways:

Normal wiki formatted stuff...{{{#!WikiForms== Selects|| '''Description''' || '''Example'''                                      || '''Value'''|| simple select     || <tf>select:simple_select:1 2 3 4</tf>              || <tf>value:simple_select</tf>|| labeled select    || <tf>select:labeled_select:1=l1 2=l2 3=l3 4=l4</tf> || <tf>value:labeled_select</tf>|| quoted select     || <tf>select:quoted_select:'"a"' "'b'" 'c c'</tf>    || <tf>value:quoted_select</tf>|| complex select    || <tf>select:complex_select:## keep in mind that #  - comments are removed#  - newlines are replaced with '' (empty string)# prior to parsing. After all those the preformatting the # fields still have to be separated by whitespace to be distinguishable.# Further cfg-options are:#   default #   class#   idvalue0                            # label = value 'v a l u e 1'                    # label = value, both containing whitespace        value2='l a b e l 2'      #  'v a l u e 3'=label3             #  'val ue4'="lab el4" class=my_css_class id=my_css_id default=value2                   # this is the cfg option (not an entry for the selector-list)... :                                # separator, from now on everything becomes a selector-list entry even if the name matches a cfg-option</tf>                                                                      || <tf>value:complex_select</tf>== Checkboxes|| '''Description''' || '''Example'''                                      || '''Value'''|| simple checkbox   || <tf>checkbox:simple_checkbox</tf>                  || <tf>value:simple_checkbox</tf>|| complex checkbox  || <tf>checkbox:complex_checkbox:# Further cfg-options are:# checked  : flag ('1','true' 'on' 'yes') used if there is no database entry available...# value    : value stored when checkbox is checked# class # id value=value_if_checkedchecked=true</tf>                                                                      || <tf>value:complex_checkbox</tf>== Inputs|| '''Description''' || '''Example'''                                      || '''Value'''|| simple input      || <tf>input:simple_input</tf>                        || <tf>value:simple_input</tf>|| complex input     || <tf>input:complex_input:# Further cfg-options are:# value    : default value if no database entry is available# size     : width in characters (defaults to 22)# class # id value="   'foo'   "'"bar" 'baz  size=30</tf>                                                                      || <tf>value:complex_input</tf>== Radios|| '''Description''' || '''Example'''                                                                                                                                     || '''Value'''|| simple radio      || <tf>radio:simple_radio:value='beer'</tf> [[BR]]<tf>radio:simple_radio:value=milk checked=true</tf> [[BR]] <tf>radio:simple_radio:value=water</tf> || <tf>value:simple_radio</tf>|| complex radio     || <tf>radio:complex_radio:# Further cfg-options are:# checked  : flag ('1','true' 'on' 'yes') used if there is no database entry available...# value    : value stored when this radio is selected# class # id value=dummy1  size=30</tf> [[BR]] <tf>radio:complex_radio:value=dummy2</tf>                                                                                                                                                         || <tf>value:complex_radio</tf>== Text areas|| '''Description''' || '''Example'''                 || '''Value'''|| simple text       || <tf>textarea:simple_text</tf> || <tf>value:simple_text</tf>|| complex text      || <tf>textarea:complex_text:# Further cfg-options are:# rows     : defaults to 2# cols     : defaults to 10# value    : default value if no database entry is available, defaults to ''# class # id cols=30 rows=5 value='Please fill yourapprovalcommentin here'</tf>                                          || <tf>value:complex_text</tf>== Submit Buttons|| '''Description''' || '''Example'''|| simple button     || <tf>submit</tf>|| complex button    || <tf>submit:# label    : label on the button, defaults to 'Send'# class # id label='Commit'</tf>== Query Stuff<tf># to have a value which is always there...set:to_be_queried:magic_value</tf>=== Without Formatting|| '''Value'''  || <tf>value:to_be_queried</tf>|| '''Who'''    || <tf>who:to_be_queried</tf>|| '''When'''   || <tf>when:to_be_queried</tf>=== With Formatting|| '''Value''' (in bold)  || '''<tf>value:to_be_queried</tf>'''|| '''Who''' (underlined) || __<tf>who:to_be_queried</tf>__|| '''When''' (in italic) || ''<tf>when:to_be_queried</tf>''<tf>lastmodified</tf>== Debug Stuff<tf># set an relative fieldset:rel_name:rel_value</tf><tf># set an absolute fieldset:/abs_name:abs_value</tf><tf>delete:/abs_name</tf><tf># dump fields...dump:.*</tf>}}}Normal wiki formatted stuff...

New Include Feature

Let's assume you have a wiki page named 'sandbox':

{{{({{a}})({{b}})({{x}})({{a}})({{ c }})({{d}})}}}

If you call it like this:

[[WikiFormInclude(sandbox:a=1 b=2 c=' " ' d='a b c d')]]

all defined values are replaced and the resulting page is rendered as usual.

New Permission Feature

Think of an example like this:

admin
user
normal
user
other
user
region1 rw r /
region2 rw / /
region3 / / r
{{{#!WikiForms<f>permission:change:                                            # default access is none                          </f><f>permission:change: +rw     : user in admin_user1,admin_user2  # admin user gets additionally read/write access  </f><f>permission:change: +r      : user in user1 , user2            # normal user get additionally read access        </f><f>permission:alias : region1                                    # save this as permission for region 1            </f><f>permission:change:                                            # default access is none                          </f><f>permission:change: +rw     : user in admin_user1,admin_user2  # admin user gets read/write access               </f><f>permission:alias : region2                                    # save this as permission for region 2            </f><f>permission:change:  r                                         # default access is read                          </f><f>permission:change: -r      : user in admin_user1,admin_user2  # admin user should not see default message       </f><f>permission:change: -r      : user in user1 , user2            # normal user should not see default message      </f><f>permission:alias : region3                                    # save this as permission for region 3            </f><f>permission:alias:region1</f><f>checkbox:approval1</f>  This is region 1 (rw for admin-user, r for normal-user, hidden for others)<f>permission:alias:region2</f><f>checkbox:approval2</f>  This is region 2 (rw for admin-user, hidden for normal-user and others)<f>permission:alias:region3</f><f>checkbox:approval3</f>  This is region 3 (hidden for admin- and normal-user, r for others)}}}

Permissions might be based on the state of a ticket or milestone like this:

{{{#!WikiForms<f>permission:change:rw</f><f>permission:change:-w:ticket_state 42 in closed         # ticket with id=42 has to exist!    </f>|| <f>checkbox:approval:checked=true</f>                             || (read-only if #42 is in closed state)|| <f>input:comment:value='Please fill in your comment' size=50</f>  || (read-only if #42 is in closed state)<f>permission:change:rw</f><f>permission:change:-w:milestone_is_complete 'my next milestone'   # milestone with name='my next milestone' has to exist!              </f> <f>checkbox:approval:checked=true</f>  (read-only if milestone is completed)}}}

New Notification feature

Sometimes users want to be informed via email if a form is updated, eg when form is at review checklist.

The new notify-tag supports this:

<tf>notify:mail_to="comma separated list of mail addresses to be notified" subject="subject of notification e-mail"    body="optional information included into the notification e-mail"</tf>

A real life example:The svn-post-commit hook appends the following review checklist call to the check-in comment:

[[WikiFormInclude(checklists/commit_review/v1:mail_to=foo@bar revision=r1234)]]

The called checklist contains the following notify-tag:

<tf>notify:mail_to={{mail_to}} subject="Commit Review {{revision}} Updated"</tf>

Bugs/Feature Requests

Existing bugs and feature requests forWikiFormsPlugin arehere.

If you have any issues, create anew ticket.

defect

9 / 10

enhancement

1 / 5

Download

Download the zipped source fromhere.

Source

You can check outWikiFormsPlugin fromhere using Subversion, orbrowse the source with Trac.

Installation

General instructions on installing Trac plugins can be found on theTracPlugins page.

Recent Changes

17238 byrjollos on 2018-07-09 20:09:40
TracWikiForms 1.0.0dev: Fix windows incompatibility

The%T format code does not exist on Windows.

Fixes#13451.

16886 byrjollos on 2017-10-16 05:58:27
TracWikiForms 1.0.0dev:WIKIFORMS_ADMIN grantsWIKIFORMS_VIEW

Refs#13301.

16885 byrjollos on 2017-10-16 05:52:55
TracWikiForms 1.0.0dev: Remove import unused afterr16884

Refs#13301.

(more)

Author/Contributors

Author:asic_druide
Maintainer:none (needsadoption)
Contributors:

Last modified7 years agoLast modified on Aug 10, 2018, 8:40:16 AM

Download in other formats:


Trac Powered

Powered byTrac 1.2.6
ByEdgewall Software.


[8]ページ先頭

©2009-2025 Movatter.jp