From: <de...@de...> - 2006-07-05 01:51:39
|
Author: SvenDowideit Date: 2006-07-04 18:58:58 -0500 (Tue, 04 Jul 2006) New Revision: 10811 Modified: twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/bin/editTableRow twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/bin/uploadTableRow twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/data/TWiki/EditTablerowPlugin.txt twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/lib/TWiki/Plugins/EditTablerowPlugin.pm twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/templates/editTableRow.pattern.tmpl twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/templates/editTableRow.tmpl Log: Item1447: updated to work with twiki-4 Modified: twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/bin/editTableRow =================================================================== --- twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/bin/editTableRow 2006-07-04 20:48:08 UTC (rev 10810) +++ twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/bin/editTableRow 2006-07-04 23:58:58 UTC (rev 10811) @@ -4,11 +4,12 @@ # This script was modified from the original attach code to add a growing # modifiable verification table to the page. # -# Shawn Bradford 20011010 Initial design -# # TWiki WikiClone (see TWiki.pm for $wikiversion and other info) # # Copyright (C) 1999-2001 Peter Thoeny, pe...@th... +# Shawn Bradford 20011010 Initial design +# TWiki:Main/ThomasWeigert +# TWiki:Main/SvenDowideit update to TWiki-4 # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -53,7 +54,7 @@ } my( $oopsUrl, $lockUser ) = &TWiki::Func::checkTopicEditLock( $theWeb, $theTopic ); - if( $lockUser ) { + if (( $lockUser ) && ($lockUser ne $userName)) { # warn user that other person is editing this topic &TWiki::Func::redirectCgiQuery( $query, $oopsUrl ); return 0; @@ -77,12 +78,11 @@ &TWiki::initialize( $thePathInfo, $theRemoteUser, $theTopic, $theUrl, $query ); $dummy = ""; # to suppress warning - my $wikiUserName = &TWiki::userToWikiName( $userName ); - return unless ( &doEnableEdit ($webName, $topic, $wikiUserName, $query) ); + return unless ( &doEnableEdit ($webName, $topic, &TWiki::Func::getWikiName() , $query) ); return unless ($query); $query->{'jscalendar'} = 0; - my ( $meta, $text ) = &TWiki::Store::readTopic( $webName, $topic ); + my ( $meta, $text ) = &TWiki::Func::readTopic( $webName, $topic ); my $template = $query->param( 'template' ) || ""; my $tableNr = $query->param( 'tablename' ) || ""; @@ -92,14 +92,22 @@ my $helptopic = $query->param( 'helptopic' ) || ""; #my $tmpl = &TWiki::Store::readTemplate( ($rowNr)?"editTableRow":"addTableRow" ); - my $tmpl = &TWiki::Store::readTemplate( "editTableRow" ); + my $tmpl = &TWiki::Func::readTemplate( "editTableRow" ); # This loads the table that you want $tmpl =~ s/%TEMPLATE%/$template/go; $tmpl =~ s/%TABLENAME%/$tableNr/go; # This renders the editable fields - my @fieldDefs = &TWiki::Form::getFormDef( $webName, $template ); + my @fieldDefs; + if (!defined($TWiki::Plugins::SESSION)) { + #cairo + @fieldDefs = &TWiki::Form::getFormDef( $webName, $template ); + } else { + #post twiki4 and beyond + my $twikiForm = new TWiki::Form($TWiki::Plugins::SESSION, $webName, $template ); + @fieldDefs = @{$twikiForm->{fields}}; + } # Get rid of CRs (we only want to deal with LFs) $text =~ s/\r//g; @@ -130,7 +138,7 @@ $oldTable .= $oldrow . "\n"; } } - $tmpl =~ s/%SHOWTABLE%/---++ Current Table Entries\n%BR%$oldTable\n/go; + $tmpl =~ s/%SHOWTABLE%/\n---++ Current Table Entries\n%BR%$oldTable\n/go; } else { $tmpl =~ s/%SHOWTABLE%//go; } @@ -143,28 +151,53 @@ if ($rowNr != 0) { foreach my $fieldDefP ( @fieldDefs ) { $idx++; - my @fieldDef = @$fieldDefP; - my $entryName = shift @fieldDef; - my $value = $fields[$idx]; + my $entryName; + my $value; + if (!defined($TWiki::Plugins::SESSION)) { + my @fieldDef = @$fieldDefP; + $entryName = shift @fieldDef; + $value = $fields[$idx]; + my @tmpArgs = ( + "name" => $entryName, + "value" => TWiki::Plugins::EditTablerowPlugin::carriageReturnConvert( $value ) + ); + $meta->put("FIELD",@tmpArgs); + } else { + $entryName = $fieldDefP->{name}; + $value = $fields[$idx]; + my %tmpArgs = ( + "name" => $entryName, + "value" => TWiki::Plugins::EditTablerowPlugin::carriageReturnConvert( $value ) + ); + $meta->putKeyed("FIELD",\%tmpArgs); + } #$value = "" if ($value eq " "); - my @tmpArgs = ( - "name" => $entryName, - "value" => TWiki::Plugins::EditTablerowPlugin::carriageReturnConvert( $value ) - ); - $meta->put("FIELD",@tmpArgs); } #$entry = TWiki::Plugins::EditTablerowPlugin::stringConvert($entry); $tmpl =~ s/%ENTRY%/$rowNr/go; } else { my $id = time; foreach my $fieldDefP ( @fieldDefs ) { - my @fieldDef = @$fieldDefP; - my $entryName = shift @fieldDef; - my @tmpArgs = ( - "name" => $entryName, - "value" => TWiki::Plugins::EditTablerowPlugin::carriageReturnConvert( $fieldDef[5] ) - ); - $meta->put("FIELD",@tmpArgs); + my $entryName; + my $value; + if (!defined($TWiki::Plugins::SESSION)) { + my @fieldDef = @$fieldDefP; + $entryName = shift @fieldDef; + $value = $fieldDef[5]; + my @tmpArgs = ( + "name" => $entryName, + "value" => TWiki::Plugins::EditTablerowPlugin::carriageReturnConvert( $value ) + ); + $meta->put("FIELD",@tmpArgs); + } else { + $entryName = $fieldDefP->{name}; + $value = $fieldDefP->{value}; + my %tmpArgs = ( + "name" => $entryName, + "value" => TWiki::Plugins::EditTablerowPlugin::carriageReturnConvert( $value ) + ); + $meta->putKeyed("FIELD",\%tmpArgs); + } } $tmpl =~ s/%ENTRY%/$id/go; } @@ -201,14 +234,21 @@ $tmpl =~ s/%HEADERTEXT%/Add Table Row/go; } +# die join(', ', @{$meta->{FIELD}}); my $formText = ""; - if( $TWiki::Plugins::VERSION < 1.025 ) { + if( $TWiki::Plugins::VERSION >= 1.1 ) { + my $twikiForm = new TWiki::Form($TWiki::Plugins::SESSION, $webName, $template ); + $formText = $twikiForm->renderForEdit($webName, $topic, $meta); + $formText =~ s/twikiChangeFormButton/twikiHidden/g; #hide the innapropriate change form button + } elsif( $TWiki::Plugins::VERSION < 1.025 ) { $formText = &TWiki::Form::renderForEdit( $webName, $topic, $template, $meta, $query, @fieldDefs ); } else { $formText = &TWiki::Form::renderForEdit( $webName, $topic, $template, $meta, $query, "", @fieldDefs ); } $tmpl = &TWiki::Func::expandCommonVariables( $tmpl, $topic ); - $tmpl = &TWiki::handleMetaTags( $webName, $topic, $tmpl, $meta ); + if( $TWiki::Plugins::VERSION < 1.1 ) { + $tmpl = &TWiki::handleMetaTags( $webName, $topic, $tmpl, $meta ); + } $tmpl = &TWiki::Func::renderText( $tmpl ); $tmpl =~ s/%TABLEFIELDS%/$formText/go; #Moved after getRenderedVersion so that TWiki Syntax does not expand Modified: twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/bin/uploadTableRow =================================================================== --- twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/bin/uploadTableRow 2006-07-04 20:48:08 UTC (rev 10810) +++ twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/bin/uploadTableRow 2006-07-04 23:58:58 UTC (rev 10811) @@ -4,6 +4,8 @@ # # Copyright (C) 1999-2001 Peter Thoeny, pe...@th... # Shawn Bradford 20011010 Initial design +# TWiki:Main/ThomasWeigert +# TWiki:Main/SvenDowideit update to TWiki-4 # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -63,7 +65,15 @@ # Need to cycle through the fieldDefs and query the parameters to fill the # the associative array - my @fieldsInfo = &TWiki::Form::getFormDef( $webName, $template ); + my @fieldsInfo; + if (!defined($TWiki::Plugins::SESSION)) { + #cairo + @fieldsInfo = &TWiki::Form::getFormDef( $webName, $template ); + } else { + #post twiki4 and beyond + my $twikiForm = new TWiki::Form($TWiki::Plugins::SESSION, $webName, $template ); + @fieldsInfo = @{$twikiForm->{fields}}; + } # Name is name based upon a unique time-stamp. This is based to the # editTable.tmpl and is transparent to the user. This removes the Modified: twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/data/TWiki/EditTablerowPlugin.txt =================================================================== --- twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/data/TWiki/EditTablerowPlugin.txt 2006-07-04 20:48:08 UTC (rev 10810) +++ twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/data/TWiki/EditTablerowPlugin.txt 2006-07-04 23:58:58 UTC (rev 10811) @@ -129,6 +129,7 @@ | Plugin Author: | TWiki:Main/ThomasWeigert | | Plugin Version: | 30 Jun 2005 | | Change History: | <!-- specify latest version first --> | +| 28 Jun 2006: | update plugin to work with TWiki 4.0 - TWiki:Main/SvenDowideit | | 07 Jul 2005: | Remove further warning message (thanks to TWiki:Main/KennethLavrsen and TWiki:Main/CrawfordCurrie) | | 30 Jun 2005: | Fix access control. Remove warning messages from apache log. | | 21 Apr 2005: | Fix to remove conflict with %<nop>TOC% rendering | Modified: twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/lib/TWiki/Plugins/EditTablerowPlugin.pm =================================================================== --- twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/lib/TWiki/Plugins/EditTablerowPlugin.pm 2006-07-04 20:48:08 UTC (rev 10810) +++ twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/lib/TWiki/Plugins/EditTablerowPlugin.pm 2006-07-04 23:58:58 UTC (rev 10811) @@ -2,6 +2,8 @@ # TWiki WikiClone ($wikiversion has version info) # # Copyright (C) 2002-2004 Peter Thoeny, Peter@Thoeny.com +# TWiki:Main/ThomasWeigert +# TWiki:Main/SvenDowideit update to TWiki-4 # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -21,11 +23,14 @@ # Note that vanilla twiki shows the "Change form..." button in update # mode, albeit it has no effect. # Support the $quot, etc., non-expanded values in table initialization. +# For twiki4 - replace the bin scripts with restHandlers # ========================= package TWiki::Plugins::EditTablerowPlugin; +#use strict; TODO: ARGH!!! + # ========================= use vars qw( $web $topic $user $installWeb $VERSION $debug @@ -225,10 +230,20 @@ sub handleTableStart { my( $theWeb, $theTopic, $theTableNr ) = @_; + my $template = $params{'template'}; - my @fieldDefs = &TWiki::Form::getFormDef( $theWeb, $params{"template"} ); + my @fieldDefs; + if (!defined($TWiki::Plugins::SESSION)) { + #cairo + @fieldDefs = &TWiki::Form::getFormDef( $theWeb, $template ); + } else { + #post twiki4 and beyond + ( $theWeb, $template ) = TWiki::Func::normalizeWebTopicName( $theWeb, $template ); + my $twikiForm = new TWiki::Form($TWiki::Plugins::SESSION, $theWeb, $template ); + @fieldDefs = @{$twikiForm->{fields}}; + } if( ! @fieldDefs ) { - return "<font color=red>No Table template found: $theWeb . $params{'template'}</font>"; + return "<font color=red>No Table template found: $webName . $template</font>"; } else { my $tableHeader .= renderForDisplay( @fieldDefs ); #$tableHeader =~ s/^(\s*)\|(.*)/&processTR($1,$2)/eo; @@ -248,8 +263,14 @@ # Get each field definition # | *Name:* | *Type:* | *Size:* | *Value:* | *Tooltip message:* | foreach my $fieldDefP ( @fieldDefs ) { - my @fieldDef = @$fieldDefP; - my( $name, $title, $type, $size, $posValuesS, $tooltip ) = @fieldDef; + my $title; + if (!defined($TWiki::Plugins::SESSION)) { + my @fieldDef = @$fieldDefP; + $entryName = shift @fieldDef; + $title = shift @fieldDef; + } else { + $title = $fieldDefP->{title}; + } $tableHeader .= "*$title* | "; } @@ -391,14 +412,29 @@ $result .= "\|"; my $firstEntry = 1; foreach my $c ( @{$fieldsInfo} ) { - my @fieldInfo = @$c; - my $entryName = shift @fieldInfo; - my $title = shift @fieldInfo; - my $type = shift @fieldInfo; - my $size = shift @fieldInfo; - my $tableEntry= $query->param( $entryName ); + my $entryName; + my $title; + my $type; + my $size; + my $tableEntry; my $cvalue = ""; + if (!defined($TWiki::Plugins::SESSION)) { + #cairo + my @fieldInfo = @$c; + $entryName = shift @fieldInfo; + $title = shift @fieldInfo; + $type = shift @fieldInfo; + $size = shift @fieldInfo; + } else { + #twiki4 + $entryName = $c->{name}; + $title = $c->{title}; + $type = $c->{type}; + $size = $c->{size}; + } + $tableEntry= $query->param( $entryName ); + ## Puts default text "---" for first entry if ($firstEntry == 1) { $tableEntry = "---" if ($tableEntry eq ""); @@ -447,14 +483,29 @@ $result .= "\|"; my $firstEntry = 1; foreach my $c ( @{$fieldsInfo} ) { - my @fieldInfo = @$c; - my $entryName = shift @fieldInfo; - my $title = shift @fieldInfo; - my $type = shift @fieldInfo; - my $size = shift @fieldInfo; - my $tableEntry= $query->param( $entryName ); + my $entryName; + my $title; + my $type; + my $size; + my $tableEntry; my $cvalue = ""; + if (!defined($TWiki::Plugins::SESSION)) { + #cairo + my @fieldInfo = @$c; + $entryName = shift @fieldInfo; + $title = shift @fieldInfo; + $type = shift @fieldInfo; + $size = shift @fieldInfo; + } else { + #twiki4 + $entryName = $c->{name}; + $title = $c->{title}; + $type = $c->{type}; + $size = $c->{size}; + } + $tableEntry= $query->param( $entryName ); + ## Puts default text "---" for first entry if ($firstEntry == 1) { $tableEntry = "---" if ($tableEntry eq ""); Modified: twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/templates/editTableRow.pattern.tmpl =================================================================== --- twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/templates/editTableRow.pattern.tmpl 2006-07-04 20:48:08 UTC (rev 10810) +++ twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/templates/editTableRow.pattern.tmpl 2006-07-04 23:58:58 UTC (rev 10811) @@ -1,4 +1,4 @@ -%TMPL:INCLUDE{"twiki"}% +%TMPL:INCLUDE{"edit"}% %TMPL:DEF{"script"}% <script type="text/javascript"> <!--HIDE @@ -58,7 +58,8 @@ return false; } //STOP HIDING--> -</script> %TMPL:END% +</script> + %TMPL:END% %TMPL:DEF{"bodystart"}% @@ -104,7 +105,9 @@ %TMPL:DEF{"topicaction"}%<table class="twikiTopicAction"> <tr class="twikiTopicAction"> -<td class="twikiCancelCol"><a id="cancel" href="%SCRIPTURLPATH%/view%SCRIPTSUFFIX%/%WEB%/%TOPIC%?unlock=on" accesskey="c">Cancel</a></td> +<td class="twikiCancelCol"> +<input type="submit" class="twikiButton" name="action_cancel" id="cancel" title='Cancel editing and discard changes' value='Cancel' accesskey='c' /> +</td> <td colspan="2" class="twikiSubmitCol">%ACTIONBUTTONS%</td> </tr> </table> @@ -116,8 +119,3 @@ -%TMPL:P{"htmldoctype"}% -%TMPL:P{"head"}% -%TMPL:P{"bodystart"}% -%TMPL:P{"main"}% -%TMPL:P{"bodyend"}% \ No newline at end of file Modified: twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/templates/editTableRow.tmpl =================================================================== --- twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/templates/editTableRow.tmpl 2006-07-04 20:48:08 UTC (rev 10810) +++ twiki/branches/TWikiRelease04x00/twikiplugins/EditTablerowPlugin/templates/editTableRow.tmpl 2006-07-04 23:58:58 UTC (rev 10811) @@ -68,7 +68,9 @@ %TMPL:DEF{"headerhelp"}% %TMPL:END% %TMPL:DEF{"webaction"}% Add Table Element to <nop>%TABLENAME% for topic : <b>%TOPIC%</b> %TMPL:END% %TMPL:DEF{"topicaction"}% - <a id="cancel" href="%SCRIPTURLPATH%/view%SCRIPTSUFFIX%/%WEB%/%TOPIC%?unlock=on">Cancel</a>%TMPL:P{"sep"}% %ACTIONBUTTONS% %TMPL:END% + <input type="submit" class="twikiButton" name="action_cancel" id="cancel" title='Cancel editing and discard changes' value='Cancel' accesskey='c' />%TMPL:P{"sep"}% %ACTIONBUTTONS% %TMPL:END% + + %TMPL:P{"htmldoctype"}% %TMPL:P{"head"}% <body bgcolor="#ffffff" onload="initForm()"> @@ -81,6 +83,7 @@ <input type="hidden" name="name" value="%ENTRY%"> %TABLEFIELDS% %HELPTEXT% +%TMPL:P{"topicinfo"}% %TMPL:P{"standardfooter"}% </form> #PageBottom |