<h1>Edit Table Plugin</h1> This plugin allows you to edit TWiki tables using edit fields and drop down boxes. Tables have an *[ Edit table ]* button if preceeded by an =%<nop>EDITTABLE{...}%= variable. Each column can be a text field, a drop down box or a row number. Multiple tables per topic can be editable, but only one at a time canbe edited. ---++ <nop>%TOPIC% Global Settings Plugin settings are stored as preferences variables. To reference a plugin setting write ==%<nop><plugin>_<setting>%==, for example, ==%<nop>INTERWIKIPLUGIN_SHORTDESCRIPTION%== * One line description, shown in the %TWIKIWEB%.TextFormattingRules topic: * Set SHORTDESCRIPTION = Edit TWiki tables using edit fields and drop down boxes. * Set DEBUG to 1 to get debug messages in =data/debug.txt=. Default: =0= * Set DEBUG = 0 ---++ Per Table Settings Add a =%<nop>EDITTABLE{...}%= variable just before an existing table to make it editable, or add the variable anywhere in a topic to start a new table. Parameters: | *Parameter* | *Comment* | *Default* | | =header= | Enable static header if ="on"=, e.g. disable editing of the first row;<br /> Else specify the header format of a new table like ="|*Food*|*Drink*|"=. | (no header) | | =format= | The format of one row when editing the table. A cell can be a text input field, a drop down box, a fixed label, or a row number. Cell definitions: <table cellpadding="0" cellspacing="0"><tr><td valign="top">-Text input field (1 line): </td><td> =| text, <size>, <initial value> |= </td></tr><tr><td valign="top">-Textarea input field: </td><td> =| textarea, <rows>x<columns>, <initial value> |= </td></tr><tr><td valign="top">- Drop down box: </td><td> =| select, <size>, <option 1>, <option 2>, etc |= </td></tr><tr><td valign="top">- Fixed label: </td><td> =| label, 0, <label text> |= </td></tr><tr><td valign="top">- Row number: </td><td> =| row, <offset> |= </td></tr><tr><td valign="top">- Date: </td><td> =| date, <sizet> |= </td></tr></table> | ="text, 16"= for all cells | | =changerows= | Rows can be added and removed if ="on"=;<br /> Rows can be added but not removed if ="add"= | ="on"= | | =include= | Other topic defining the EDITTABLE parameters. The first %<nop>EDITTABLE% in the topic is used. This is useful if you have many topics with the same table format and you want to update the format in one place. | (none) | | =helptopic= | Topic name containing help text shown below the table when editing a table. The %<nop>STARTINCLUDE% and %<nop>STOPINCLUDE% variables can be used in the topic to specify what is shown. | (no help text) | __Note:__ By default, variables in =<initial value>= (of text input field) and =<label text>= (of fixed label) get expanded when a new row is added. This can be used for example to add a timestamp to a label. You can escape characters if you do not want that: | *Text:* | *To Escape:* | | =$quot= | Double quote (="=). Alternatively write =\"= to escape it | | =$percnt= | Percent sign (=%=) | | =$dollar= | Dollar sign (=$=) | | =$nop= or =$nop()= | Is a "no operation" | ---++ Examples Line before table: =%<nop>EDITTABLE{ header="|*Nr*|*Text field sandbox*|*Drop down sandbox*|*Timestamp*|" format="| row, -1 | text, 20, init | select, 1, one, two, three, four | label, 0, %<nop>SERVERTIME{"$day $mon $year $hour:$min"}% |" changerows="on" }%= %EDITTABLE{ header="|*Nr*|*Text field sandbox*|*Drop down sandbox*|*Timestamp*|" format="| row, -1 | text, 20, init | select, 1, one, two, three, four | label, 0, %SERVERTIME{"$day $mon $year $hour:$min"}% |" changerows="on" }% |*Nr*|*Text field sandbox*|*Drop down sandbox*|*Timestamp*| | 1 | hello table | one | 26 Jun 2002 12:30 | | 2 | | two | 27 Jun 2002 12:40 | If this plugin is installed you will see an *[ Edit table ]* button above; when you click on it you get this form: <form> <table border="1" cellspacing="1" cellpadding="0"> <tr><th bgcolor="#99CCCC"> Nr </th><th bgcolor="#99CCCC"> Text field sandbox </th><th bgcolor="#99CCCC"> Drop down sandbox </th><th bgcolor="#99CCCC"> Timestamp </th></tr> <tr><td bgcolor="#FFFFFF"> 1<input type="hidden" name="etcell2x1" value="1" /> </td><td bgcolor="#FFFFFF"> <input type="text" name="etcell2x2" size="20" value="hello table" /> </td><td bgcolor="#FFFFFF"> <select name="etcell2x3" size="1"> <option selected="selected">one</option> <option>two</option> <option>three</option> <option>four</option> </select> </td><td bgcolor="#FFFFFF"> 26 Jun 2002 12:30<input type="hidden" name="etcell2x4" value="26 Jun 2002 12:30" /> </td></tr> <tr><td bgcolor="#FFFF99"> 2<input type="hidden" name="etcell3x1" value="2" /> </td><td bgcolor="#FFFF99"> <input type="text" name="etcell3x2" size="20" value="" /> </td><td bgcolor="#FFFF99"> <select name="etcell3x3" size="1"> <option>one</option> <option selected="selected">two</option> <option>three</option> <option>four</option> </select> </td><td bgcolor="#FFFF99"> 27 Jun 2002 12:40<input type="hidden" name="etcell3x4" value="27 Jun 2002 12:40" /> </td></tr> </table> <input type="submit" name="etsave" value="Save table" onClick="return(false);" /> <input type="submit" name="etqsave" value="Quietsave" onClick="return(false);" /> <input type="submit" name="etaddrow" value="Add row" onClick="return(false);" /> <input type="submit" name="etdelrow" value="Delete last row" onClick="return(false);" /> <input type="submit" name="etcancel" value="Cancel" onClick="return(false);" /> (demo only, these buttons do not work) </form> ---++ Limitations and Known Issues * This Plugin does not support TWiki table formatting like Multi-span cells (e.g. =| ... ||=) and cell justification (e.g. =| centered | right |=). * There is a performance issue when editing a large table, say, with more then 50 rows. * The Plugin fails if the table is at the very end of the topic (without a new line) Always ensure there is a newline after the table * Variables like =%<nop>ATTACHURL%= get expanded unless they are in a label. * %RED% *Warning:* %ENDCOLOR% This plugin uses undocumented functions to read, save and lock a topic. The plugin will likely break in a future TWiki release. * You cannot put two %<nop>EDITTABLE% statements on the same line in the source. * You can include %-vars now in select values, by quoting them with <nop>, as in %<nop>X% for %X%, say for instance: <br /> =select,1,%<nop>X%,%<nop>Y%= * =date= field type for the =format= parameter adds a button popping a javascript calendar to choose the date on browsers supporting it. It uses the nice *Mishoo DHTML calendar* at http://dynarch.com/mishoo/calendar.epl, that should be included in Cairo release, or see TWiki:Codev/JavaScriptDatePickerForForm for installing it on Beijing Release ---++ Plugin Installation Instructions * Download the ZIP file from the Plugin web (see below) * Unzip ==%TOPIC%.zip== in your twiki installation directory. Content: | *File:* | *Description:* | | ==data/TWiki/%TOPIC%.txt== | Plugin topic | | ==data/TWiki/%TOPIC%.txt,v== | Plugin topic repository | | ==lib/TWiki/Plugins/%TOPIC%.pm== | Plugin Perl module | * The plugin depends on the =viewauth= script to authenticate the user. As described in %TWIKIWEB%.TWikiAccessControl, copy the =view= script to =viewauth= (or better, create a symbolic link) and add =viewauth= to the list of authenticated scripts in the =.htaccess= file. * Test if the plugin is correctly installed: * Check above example if there is an *[ Edit table ]* button below the table in above example * Click on *[ Edit table ]*, make changes and save the table ---++ Plugin Info | Plugin Author: | %TWIKIWEB%.PeterThoeny | | Plugin Version: | 16 Oct 2003 | | Change History: | <!-- specify latest version first --> | | 16 Oct 2003: | small typo fixed (garbled if ---<nop>+ header on top) | | 15 Oct 2003: | new date field type with javascript calendar - CN | | 14 Oct 2003: | docfix: the documentation page was an old one - CN | | 13 Oct 2003: | bugfix: %-vars in select were resetted to first on add/del row - CN | | 18 Sep 2003: | *incompatibility:* changed default of =changerows= to =on=<br /> support for %-vars, Quietsave for saving without notification, all other fixes in Dev topic integrated - CN | | 08 Nov 2002: | Prevent variable expansion in label text; added escape characters | | 27 Jun 2002: | New =helptopic= parameter | | 26 Jun 2002: | Support for variables in included EDITTABLE parameters; fixed problem with HTML in cells | | 21 May 2002: | Added fixed label format; new =changerows="add"= parameter | | 27 Apr 2002: | Fixed bug where text after a double quote in a cell disappeared | | 18 Apr 2002: | Fixed bug where table was breaking when pasting multiple lines into an edit field using Netscape on Unix | | 08 Apr 2002: | Check for change permission and edit lock of topic | | 05 Apr 2002: | Initial version | | CPAN Dependencies: | none | | Other Dependencies: | none | | Perl Version: | 5.0 | | Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% | | Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev | __Related Topics:__ %TWIKIWEB%.TWikiPreferences, %TWIKIWEB%.TWikiPlugins -- %TWIKIWEB%.PeterThoeny - 08 Nov 2002
This topic: TWiki
>
EditTablePlugin
Topic revision: r1 - 2003-12-12 - PeterThoeny
Copyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback
Note:
Please contribute updates to this topic on TWiki.org at
TWiki:TWiki.EditTablePlugin
.