Index: lib/TWiki/Form.pm
===================================================================
RCS file: /e/www/CVS/twiki-cairo/lib/TWiki/Form.pm,v
retrieving revision 1.1
retrieving revision 1.1.12.4
diff -c -r1.1 -r1.1.12.4
*** lib/TWiki/Form.pm	7 Sep 2004 17:16:58 -0000	1.1
--- lib/TWiki/Form.pm	3 Feb 2005 03:48:34 -0000	1.1.12.4
***************
*** 296,309 ****
  {
      my( $web, $topic, $form, $meta, $query, $getValuesFromFormTopic, @fieldsInfo ) = @_;
  
-     my $chooseForm = "";   
-     if( TWiki::Prefs::getPreferencesValue( "WEBFORMS", "$web" ) ) {
-         $chooseForm = chooseFormButton( "Replace form..." );
-     }
-     
      # FIXME could do with some of this being in template
      my $text = "<div class=\"twikiForm twikiEditForm\"><table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n   <tr>" . 
!                _link( $web, $form, "", "h", "", 2, $chooseForm ) . "</tr>\n";
                 
      fieldVars2Meta( $web, $query, $meta, "override" );
      
--- 296,304 ----
  {
      my( $web, $topic, $form, $meta, $query, $getValuesFromFormTopic, @fieldsInfo ) = @_;
  
      # FIXME could do with some of this being in template
      my $text = "<div class=\"twikiForm twikiEditForm\"><table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n   <tr>" . 
!                _link( $web, $form, "", "h", "", 2, "" ) . "</tr>\n";
                 
      fieldVars2Meta( $web, $query, $meta, "override" );
      
***************
*** 607,612 ****
--- 602,613 ----
      }
      $formName = "" if( !$formName || $formName eq "none" );
  
+     $listForms = TWiki::Prefs::getPreferencesValue( "WEBFLOWS", "$theWeb" );
+     $listForms =~ s/^\s*//go;
+     $listForms =~ s/\s*$//go;
+     my @flows = split( /\s*,\s*/, $listForms );
+ #    unshift @flows, "";
+ 
      my $formList = "";
      foreach my $form ( @forms ) {
         my $selected = ( $form eq $formName ) ? 'checked="checked"' : "";
***************
*** 615,620 ****
--- 616,626 ----
         my $value = $form ? $form : "none";
         $formList .= "<input type=\"radio\" name=\"formtemplate\" value=\"$value\" $selected />&nbsp;$show";
      }
+     foreach my $form ( @flows ) {
+        my $selected = ( $form eq $formName ) ? 'checked="checked"' : "";
+        $formList .= "\n<br />" if( $formList );
+        $formList .= "<input type=\"radio\" name=\"formtemplate\" value=\"flow.$form\" $selected />&nbsp;$form (<nop>WebFlow)";
+     }
      $tmpl =~ s/%FORMLIST%/$formList/go;
  
      my $parent = $theQuery->param( 'topicparent' ) || "";
***************
*** 801,805 ****
      
      return $text;
  }
!   
  1;
--- 807,1021 ----
      
      return $text;
  }
!  
! # =========================
! #
! # Begin WebFlow specific functions
! 
! # =========================
! # webFlowChangeState
! #
! sub webFlowChangeState {
!   my ($web, $topic, $query, $curform, $template) = @_;
!   # Note: The current state is defined by the form that is displayed 
!   # and passed in
! 
!   # Get plugin state machine
! 
!   if( $template =~ /^(.*)\.(.*)$/ ) {
!     $web = $1;
!     $template = $2;
!   }
! 
!   my @actions = findAction( $query, $web, $template, $curform );
!   my $nextlabel = $actions[0];
!   my $ret = "";
!   if ($nextlabel) {
!     if ( $#actions > 0) {
! 	$ret = "<select name=\"flowaction\">";
! 	foreach my $act (@actions) {
! 	  $ret .= "<option value=\"$act\">$act</option>";
! 	}
! 	$ret .= "</select><input type=\"submit\" name=\"changeState\" value=\" &nbsp; Change state &nbsp; \" class=\"twikiChangeFormButton twikiSubmit \" />";
!         return $ret;
!       } else {
! 	return "<input type=\"hidden\" name=\"flowaction\" value=\"$nextlabel\" /><input type=\"submit\" name=\"changeState\" value=\" &nbsp; $nextlabel &nbsp; \" class=\"twikiChangeFormButton twikiSubmit \" />";
!       }
!   } else {
!     return "";
!   }
! }
! 
! sub changeFormFromFlow {
!   my ( $webName, $topic, $query, $action ) = @_;
!   $action =~ s/^\s*//go;
!   $action =~ s/\s*$//go;
! 
!   my $url = &TWiki::getScriptUrl ( $webName, $topic, "edit" ) ;
!   $url .= "\?flowaction=$action";
! 
!   TWiki::redirect ( $query, $url );
!   return;
! }
! 
! # =========================
! 
! sub makeTransition {
!   my ( $webName, $topic, $query, $action ) = @_;
! 
!   # find current form
!   my( $meta, $tmp ) = &TWiki::Store::readTopic( $webName, $topic );
!   my $formName = $query->param( 'formtemplate' ) || "";
!   if( ! $formName ) {
!     my %form = $meta->findOne( "FORM" );
!     $formName = $form{"name"};
!   }
!   $formName = "" if( !$formName || $formName eq "none" );
! 
!   # Get state machine
!   my %args = $meta->findOne( "FLOW" );
!   my $template = $args{"name"};
! 
!   my $web;
!   if( $template =~ /^(.*)\.(.*)$/ ) {
!     $web = $1;
!     $template = $2;
!   }
! 
!   return findAction( $query, $web, $template, $formName, $action );
! }
! 
! sub findWebFlow {
!   my ( $webName, $flowTemplate ) = @_;
!   my ( $formTemplate, $nextState );
!   # Read topic that defines the statemachine
!   if( &TWiki::Store::topicExists( $webName, $flowTemplate ) ) {
!     my( $meta, $text ) = &TWiki::Store::readTopic( $webName, $flowTemplate );
!     my $inBlock = 0;
!     # | *Current form* | *Next form* | *Next state* | *Action* |
!     foreach( split( /\n/, $text ) ) {
!       if( /^\s*\|.*Current form[^|]*\|.*Next form[^|]*\|.*Next state[^|]*\|.*Action[^|]*\|/ ) {
! 	$inBlock = 1;
!       } else {
! 	# Only insist on first field being present 
! 	# FIXME - use oops page instead?
! 	if( $inBlock && s/^\s*\|//o ) {
! 	  my( $cur, $next, $state, $act ) = split( /\|/ );
! 	  # And cleanup the entries
! 	  $cur =~ s/^\s*//go;
! 	  $cur =~ s/\s*$//go;
! 	  $cur = _cleanField( $cur );
! 	  $next =~ s/^\s*//go;
! 	  $next =~ s/\s*$//go;
! 	  $next = _cleanField( $next );
! 	  $state =~ s/^\s*//go;
! 	  $state =~ s/\s*$//go;
! 	  $act =~ s/^\s*//go;
! 	  $act =~ s/\s*$//go;
! 	  # FIXME object if too short
! 	  
! 	  # Initial state has empty $cur
! 	  if (!$cur) {
! 	    $formTemplate = $next;
! 	    $nextState = $state;
! 	    last;
! 	  }
! 	} else {
! 	  $inBlock = 0;
! 	}
!       }
!     }
!   } else {
!     # FIXME - do what if there is an error?
!   }
!   return ( $formTemplate, $nextState );
! }
! 
! sub findAction {
!   my ( $query, $web, $template, $formName, $action ) = @_;
!   my ($nextForm, $nextState);
!   my $thePathInfo = $query->path_info(); 
!   my $theRemoteUser = $query->remote_user();
!   my $theTopic = $query->param( 'topic' ) || "";
!   my $theUrl = $query->url;
!   my( $topic, $webName, $dummy, $userName ) = 
!     &TWiki::initialize( $thePathInfo, $theRemoteUser, $theTopic, $theUrl, $query );
! 
!   my @actions = ();
!   if( &TWiki::Store::topicExists( $web, $template ) ) {
!     my( $meta, $text ) = &TWiki::Store::readTopic( $web, $template );
!     
!     my $inBlock = 0;
!     # | *Current form* | *Next form* | *Next state* | *Action* |
!     foreach( split( /\n/, $text ) ) {
!       if( /^\s*\|.*Current form[^|]*\|.*Next form[^|]*\|.*Next state[^|]*\|.*Action[^|]*\|/ ) {
! 	$inBlock = 1;
!       } else {
! 	# Only insist on first field being present 
! 	# FIXME - use oops page instead?
! 	if( $inBlock && s/^\s*\|//o ) {
! 	  my( $cur, $next, $state, $act, $allow ) = split( /\|/ );
! 	  # And cleanup the entries
! 	  $cur =~ s/^\s*//go;
! 	  $cur =~ s/\s*$//go;
! 	  $cur = _cleanField( $cur );
! 	  $next =~ s/^\s*//go;
! 	  $next =~ s/\s*$//go;
! 	  $next = _cleanField( $next );
! 	  $state =~ s/^\s*//go;
! 	  $state =~ s/\s*$//go;
! 	  $act =~ s/^\s*//go;
! 	  $act =~ s/\s*$//go;
! 	  # FIXME object if too short
! 	  
! 	  # Find the current state x action pair
! 	  if (($cur eq $formName)&&($action?($act eq $action):1)) {
! 	    # Ensure user is allowed to perform action
! 	    my $allowChange = 0;
! 	    $allow =~ s/^\s*//go;
! 	    $allow =~ s/\s*$//go;
! 	    if ($allow) {
! 	      my @allowed = split(/\s*\,\s*/, $allow);
! 	      # no button if the user is not allowed to execute transitions
! 	      my $wikiName = TWiki::userToWikiName( $userName, 1 );  # i.e. "JonDoe"
! 	      foreach my $name (@allowed) {
! 		$name =~ s/^\s*//go;
! 		$name =~ s/\s*$//go;
! 		$name = _cleanField( $name );
! 		$name =~ s/$TWiki::mainWebname\.(.*)/$1/;
! 		if (&TWiki::Access::userIsInGroup($wikiName, $name)) {
! 		  $allowChange = 1;
! 		  last;
! 		}
! 	      }
! 	    } else {
! 	      $allowChange = 1;
! 	    }
! 	    if ($allowChange) { 
! 	      if ($action) {
! 		$nextForm = $next;
! 		$nextState = $state;
! 		last;
! 	      } else {
! 		push @actions, $act;
! 	      }
! 	    }
! 	  }
! 
! 	} else {
! 	  $inBlock = 0;
! 	}
!       }
!     }
! 
!   } else {
!     # FIXME - do what if there is an error?
!   }
!   if ($action) {
!     return ($nextForm, $nextState);
!   } else {
!     return @actions;
!   }
! }
!  
  1;
Index: lib/TWiki/UI/Edit.pm
===================================================================
RCS file: /e/www/CVS/twiki-cairo/lib/TWiki/UI/Edit.pm,v
retrieving revision 1.2
retrieving revision 1.2.12.2
diff -c -r1.2 -r1.2.12.2
*** lib/TWiki/UI/Edit.pm	26 Dec 2004 12:38:29 -0000	1.2
--- lib/TWiki/UI/Edit.pm	31 Jan 2005 04:46:26 -0000	1.2.12.2
***************
*** 58,63 ****
--- 58,65 ----
    my $onlyNewTopic = $query->param( 'onlynewtopic' ) || "";
    my $formTemplate  = $query->param( "formtemplate" ) || "";
    my $templateTopic = $query->param( "templatetopic" ) || "";
+   my $action = $query->param( "flowaction" ) || "";
+ 
    # apptype is undocumented legacy
    my $cgiAppType = $query->param( 'contenttype' ) || $query->param( 'apptype' ) || "text/html";
    my $skin = $query->param( "skin" );
***************
*** 118,125 ****
--- 120,136 ----
    }
    &TWiki::Store::lockTopic( $topic );
  
+   my $flowTemplate  = "";
+   if ($formTemplate =~ /^flow\./) {
+     $formTemplate =~ s/^flow\.//go;
+     $flowTemplate = $formTemplate;
+     $formTemplate = "";
+   }
    my $templateWeb = $webName;
  
+   my $nextState;
+   ($formTemplate, $nextState) = TWiki::Form::makeTransition( $webName, $topic, $query, $action ) if $action;
+ 
    # Get edit template, standard or a different skin
    $skin = TWiki::Prefs::getPreferencesValue( "SKIN" ) unless ( $skin );
    $tmpl = &TWiki::Store::readTemplate( "edit", $skin );
***************
*** 138,143 ****
--- 149,163 ----
      }
      $extra = "(not exist)";
  
+     # If webflow is requested, associate it
+     if( $flowTemplate ) {
+       my @args = ( name => $flowTemplate );
+       $meta->remove( "FLOW" );
+       $meta->put( "FLOW", @args );
+       # Read topic that defines the statemachine
+       ( $formTemplate, $nextState ) = TWiki::Form::findWebFlow( $webName, $flowTemplate );
+     }
+ 
      # If present, instantiate form
      if( ! $formTemplate ) {
        my %args = $meta->findOne( "FORM" );
***************
*** 161,166 ****
--- 181,196 ----
    }
    $tmpl =~ s/%TOPICPARENT%/$theParent/;
  
+   # If webflow is requested, associate it
+   if( $flowTemplate ) {
+     my @args = ( name => $flowTemplate );
+     $meta->remove( "FLOW" );
+     $meta->put( "FLOW", @args );
+     # Read topic that defines the statemachine
+     ( $formTemplate, $nextState ) = TWiki::Form::findWebFlow( $webName, $flowTemplate );
+     # Read topic that defines the statemachine
+   }
+ 
    # Processing of formtemplate - comes directly from query parameter formtemplate , 
    # or indirectly from webtopictemplate parameter.
    my $oldargsr;
***************
*** 212,239 ****
    # Don't want to render form fields, so this after getRenderedVersion
    my %formMeta = $meta->findOne( "FORM" );
    my $form = "";
    $form = $formMeta{"name"} if( %formMeta );
    if( $form && $saveCmd ne "repRev" ) {
      my @fieldDefs = &TWiki::Form::getFormDef( $templateWeb, $form );
  
      if( ! @fieldDefs ) {
        TWiki::UI::oops( $webName, $topic, "noformdef" );
        return;
      }
      my $formText = &TWiki::Form::renderForEdit( $webName, $topic, $form, $meta, $query, $getValuesFromFormTopic, @fieldDefs );
      $tmpl =~ s/%FORMFIELDS%/$formText/go;
    } elsif( $saveCmd ne "repRev" && TWiki::Prefs::getPreferencesValue( "WEBFORMS", $webName )) {
! 	# follows a hybrid html monster to let the 'choose form button' align at
! 	# the right of the page in all browsers
!     $form = '<div style="text-align:right;"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="twikiChangeFormButtonHolder"><tr><td align="right">'
!       . &TWiki::Form::chooseFormButton( "Add form" )
!         . '</td></tr></table></div>';
      $tmpl =~ s/%FORMFIELDS%/$form/go;
    } else {
      $tmpl =~ s/%FORMFIELDS%//go;
    }
  
    $tmpl =~ s/%FORMTEMPLATE%//go; # Clear if not being used
    $tmpl =~ s/%TEXT%/$text/go;
    $tmpl =~ s/( ?) *<\/?(nop|noautolink)\/?>\n?/$1/gois;   # remove <nop> and <noautolink> tags
  
--- 242,315 ----
    # Don't want to render form fields, so this after getRenderedVersion
    my %formMeta = $meta->findOne( "FORM" );
    my $form = "";
+   my $formlabel = "";
    $form = $formMeta{"name"} if( %formMeta );
    if( $form && $saveCmd ne "repRev" ) {
+     $formlabel = "Change form";
      my @fieldDefs = &TWiki::Form::getFormDef( $templateWeb, $form );
  
      if( ! @fieldDefs ) {
        TWiki::UI::oops( $webName, $topic, "noformdef" );
        return;
      }
+ 
+     if ($nextState) {
+       # Update the state (held in $nextState)
+       foreach my $fieldInfop ( @fieldDefs ) {
+ 	my @fieldInfo = @$fieldInfop;
+ 	my $fieldName = shift @fieldInfo;
+ 	next unless ($fieldName eq "State");
+ 	my $title     = shift @fieldInfo;
+ 	$meta->put( "FIELD", ( "name" => "State", "title" => $title, "value" => $nextState ) );
+ 	last;
+       }
+       # Record history of state change, could also make a table in the form
+       foreach my $fieldInfop ( @fieldDefs ) {
+ 	my @fieldInfo = @$fieldInfop;
+ 	my $fieldName = shift @fieldInfo;
+ 	next unless ($fieldName eq "History");
+ 	my $title     = shift @fieldInfo;
+ 	my %field = $meta->findOne( "FIELD", "History" );
+ 	my $value = $field{"value"};
+ 	my $todaysdate = &TWiki::handleTime("\$day \$month \$year","gmtime");
+ 	$value .= "<br>" if $value;
+ 	$value .= "$nextState --- $wikiUserName, $todaysdate";
+ 	$meta->put( "FIELD", ( "name" => "History", "title" => $title, "value" => $value ) );
+ 	last;
+       }
+     }
+ 
      my $formText = &TWiki::Form::renderForEdit( $webName, $topic, $form, $meta, $query, $getValuesFromFormTopic, @fieldDefs );
      $tmpl =~ s/%FORMFIELDS%/$formText/go;
    } elsif( $saveCmd ne "repRev" && TWiki::Prefs::getPreferencesValue( "WEBFORMS", $webName )) {
!     $formlabel = "Add form";
      $tmpl =~ s/%FORMFIELDS%/$form/go;
    } else {
      $tmpl =~ s/%FORMFIELDS%//go;
    }
  
    $tmpl =~ s/%FORMTEMPLATE%//go; # Clear if not being used
+   my %args = $meta->findOne( "FLOW" );
+   my $flowtemplate = $args{"name"} || "";
+   $tmpl =~ s/%FLOW%/$flowtemplate/go;
+   if ($flowtemplate) {
+     $form = '<div style="text-align:right;"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="twikiChangeFormButtonHolder"><tr><td align="right">'
+       . &TWiki::Form::webFlowChangeState($webName, $topic, $query, $formMeta{"name"}, $flowtemplate)
+       . '</td></tr></table></div>';
+     $tmpl =~ s/%FORMEDIT%/$form/go;
+   } else  {
+   if ($formlabel) {
+     # Note that this construction puts the label out on the right edge, not
+     # in line with the other labels
+     $form = '<div style="text-align:right;"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="twikiChangeFormButtonHolder"><tr><td align="right">'
+       . &TWiki::Form::chooseFormButton( $formlabel )
+       . '</td></tr></table></div>';
+     $tmpl =~ s/%FORMEDIT%/$form/go;
+   } else {
+     $tmpl =~ s/%FORMEDIT%//go;
+   }
+   }
+ 
    $tmpl =~ s/%TEXT%/$text/go;
    $tmpl =~ s/( ?) *<\/?(nop|noautolink)\/?>\n?/$1/gois;   # remove <nop> and <noautolink> tags
  
Index: lib/TWiki/UI/Preview.pm
===================================================================
RCS file: /e/www/CVS/twiki-cairo/lib/TWiki/UI/Preview.pm,v
retrieving revision 1.1
retrieving revision 1.1.12.3
diff -c -r1.1 -r1.1.12.3
*** lib/TWiki/UI/Preview.pm	7 Sep 2004 17:16:58 -0000	1.1
--- lib/TWiki/UI/Preview.pm	3 Feb 2005 03:48:34 -0000	1.1.12.3
***************
*** 23,29 ****
    my ( $webName, $topic, $userName, $query ) = @_;
  
    my $skin = $query->param( "skin" );
!   my $changeform = $query->param( 'submitChangeForm' ) || "";
    my $dontNotify = $query->param( "dontnotify" ) || "";
    my $saveCmd = $query->param( "cmd" ) || "";
    my $theParent = $query->param( 'topicparent' ) || "";
--- 23,29 ----
    my ( $webName, $topic, $userName, $query ) = @_;
  
    my $skin = $query->param( "skin" );
!   my $changeform = $query->param( 'changeState' ) || "";
    my $dontNotify = $query->param( "dontnotify" ) || "";
    my $saveCmd = $query->param( "cmd" ) || "";
    my $theParent = $query->param( 'topicparent' ) || "";
***************
*** 49,55 ****
    # Is user looking to change the form used?  Sits oddly in preview, but 
    # to avoid Javascript and pick up text on edit page it has to be in preview.
    if( $changeform ) {
!     &TWiki::Form::changeForm( $webName, $topic, $query );
      return;
    }
  
--- 49,62 ----
    # Is user looking to change the form used?  Sits oddly in preview, but 
    # to avoid Javascript and pick up text on edit page it has to be in preview.
    if( $changeform ) {
!     my $action =  $query->param( 'flowaction' ) || "";
!     if ($action) {
!       # Could remove the form button by expanding it dynamically
!       # in edit script like %FORMEDIT%
!       &TWiki::Form::changeFormFromFlow( $webName, $topic, $query, $action );
!     } else {
!       &TWiki::Form::changeForm( $webName, $topic, $query );
!     }
      return;
    }
  
***************
*** 74,79 ****
--- 81,94 ----
      }
      $tmpl =~ s/%TOPICPARENT%/$theParent/go;
  
+     # flow table
+     my $theFlow = $query->param( 'flow' ) || "";
+     if( $theFlow ) {
+       $tmpl =~ s/%FLOW%/$theFlow/go;
+       $meta->put( "FLOW", ( "name" => $theFlow ) );
+     }
+     $tmpl =~ s/%FLOW%/$theFlow/;
+ 
      if( $formTemplate ) {
        $meta->remove( "FORM" );
        $meta->put( "FORM", ( name => $formTemplate ) ) if( $formTemplate ne "none" );
***************
*** 85,91 ****
      # get the edited text and combine text, form and attachments for preview
      &TWiki::Form::fieldVars2Meta( $webName, $query, $meta );
      $text = $textparam;
!     if( ! $text ) {
        # empty topic not allowed
        TWiki::UI::oops( $webName, $topic, "empty" );
        return;
--- 100,108 ----
      # get the edited text and combine text, form and attachments for preview
      &TWiki::Form::fieldVars2Meta( $webName, $query, $meta );
      $text = $textparam;
!     # Move to configuration or preference
!     my $disallowEmptyText = 0;
!     if( (! $text) && $disallowEmptyText ) {
        # empty topic not allowed
        TWiki::UI::oops( $webName, $topic, "empty" );
        return;
Index: lib/TWiki/UI/Save.pm
===================================================================
RCS file: /e/www/CVS/twiki-cairo/lib/TWiki/UI/Save.pm,v
retrieving revision 1.2
retrieving revision 1.2.12.3
diff -c -r1.2 -r1.2.12.3
*** lib/TWiki/UI/Save.pm	26 Dec 2004 12:38:29 -0000	1.2
--- lib/TWiki/UI/Save.pm	3 Feb 2005 03:48:34 -0000	1.2.12.3
***************
*** 79,84 ****
--- 79,85 ----
    my $onlyWikiName = $query->param( 'onlywikiname' ) || "";
    my $onlyNewTopic = $query->param( 'onlynewtopic' ) || "";
    my $formTemplate = $query->param( "formtemplate" );
+   my $theFlow = $query->param( 'flow' ) || "";
  
    my $topicExists  = TWiki::Store::topicExists( $webName, $topic );
  
***************
*** 145,150 ****
--- 146,156 ----
        $meta->put( "TOPICPARENT", ( "name" => $theParent ) );
      }
  
+     # flow table
+     if( $theFlow ) {
+       $meta->put( "FLOW", ( "name" => $theFlow ) );
+     }
+ 
      if( $formTemplate ) {
        $meta->remove( "FORM" );
        $meta->put( "FORM", ( name => $formTemplate ) ) if( $formTemplate ne "none" );
***************
*** 186,191 ****
--- 192,203 ----
    my( $webName, $topic, $userName, $query ) = @_;
  
    my $redirecturl = TWiki::getViewUrl( TWiki::Store::normalizeWebTopicName($webName, $topic));
+   my $changeState = $query->param( 'changeState' );
+   if ($changeState) {
+     # State transition
+     TWiki::UI::Preview::preview( $webName, $topic, $userName, $query );
+     return;
+   }
  
    my $saveaction = lc($query->param( 'action' ));
    if ( $saveaction eq "checkpoint" ) {
Index: templates/changeform.pattern.tmpl
===================================================================
RCS file: /e/www/CVS/twiki-cairo/templates/changeform.pattern.tmpl,v
retrieving revision 1.1
retrieving revision 1.1.14.1
diff -c -r1.1 -r1.1.14.1
*** templates/changeform.pattern.tmpl	7 Sep 2004 17:17:04 -0000	1.1
--- templates/changeform.pattern.tmpl	31 Jan 2005 04:46:26 -0000	1.1.14.1
***************
*** 36,41 ****
--- 36,42 ----
  <tr>
  <td class="twikiMainCol">
  %FORMLIST%
+ </td></tr><tr>
  </td>
  <td>
     * <font color="red">Existing form data will be lost! (still available in old version)</font>
Index: templates/changeform.tmpl
===================================================================
RCS file: /e/www/CVS/twiki-cairo/templates/changeform.tmpl,v
retrieving revision 1.1
retrieving revision 1.1.14.1
diff -c -r1.1 -r1.1.14.1
*** templates/changeform.tmpl	7 Sep 2004 17:17:04 -0000	1.1
--- templates/changeform.tmpl	31 Jan 2005 04:46:26 -0000	1.1.14.1
***************
*** 18,23 ****
--- 18,24 ----
    </ul>
  </td><td>
    &nbsp; &nbsp;
+ </td></tr><tr>
  </td><td valign="top">
  ---+++ _Notes:_
     * <font color="red">Existing form data will be lost! (still available in old version)</font>
Index: templates/edit.iejs.tmpl
===================================================================
RCS file: /e/www/CVS/twiki-cairo/templates/edit.iejs.tmpl,v
retrieving revision 1.1
retrieving revision 1.1.12.1
diff -c -r1.1 -r1.1.12.1
*** templates/edit.iejs.tmpl	7 Sep 2004 17:17:04 -0000	1.1
--- templates/edit.iejs.tmpl	31 Jan 2005 02:34:56 -0000	1.1.12.1
***************
*** 1,5 ****
  %TMPL:INCLUDE{"twiki"}%
! %TMPL:DEF{"topicaction"}% <input type="submit" class="twikiSubmit" value=" &nbsp; Preview Changes &nbsp; " />
    %SEP% <a class="footerlink" href="%SCRIPTURLPATH%/view%SCRIPTSUFFIX%/%WEB%/%TOPIC%?unlock=on">Cancel</a> edit %TMPL:END%
    %TMPL:DEF{"footernote"}%
  <div class="TWikiFooterNote">
--- 1,5 ----
  %TMPL:INCLUDE{"twiki"}%
! %TMPL:DEF{"topicaction"}% <input type="submit" class="twikiSubmit" value=" &nbsp; Preview Changes &nbsp; " /> %FORMEDIT%
    %SEP% <a class="footerlink" href="%SCRIPTURLPATH%/view%SCRIPTSUFFIX%/%WEB%/%TOPIC%?unlock=on">Cancel</a> edit %TMPL:END%
    %TMPL:DEF{"footernote"}%
  <div class="TWikiFooterNote">
Index: templates/edit.pattern.tmpl
===================================================================
RCS file: /e/www/CVS/twiki-cairo/templates/edit.pattern.tmpl,v
retrieving revision 1.1
retrieving revision 1.1.12.2
diff -c -r1.1 -r1.1.12.2
*** templates/edit.pattern.tmpl	7 Sep 2004 17:17:04 -0000	1.1
--- templates/edit.pattern.tmpl	31 Jan 2005 04:46:26 -0000	1.1.12.2
***************
*** 88,94 ****
  
  
  
! %TMPL:DEF{"topicaction"}%<table class="twikiTopicAction">
  <tr class="twikiTopicActionHelp twikiGrayText">
  <td colspan="3" class="twikiTopicActionHelp twikiGrayText"><a href="#Opens page in new window" onclick="launchWindow('%TWIKIWEB%', 'AccessKeys'); return false;">Access keys</a>: C = Cancel, K = Checkpoint, Q = Quiet Save, S = Save, P = Preview</td>
  </tr>
--- 88,94 ----
  
  
  
! %TMPL:DEF{"topicaction"}%%FORMEDIT%<table class="twikiTopicAction">
  <tr class="twikiTopicActionHelp twikiGrayText">
  <td colspan="3" class="twikiTopicActionHelp twikiGrayText"><a href="#Opens page in new window" onclick="launchWindow('%TWIKIWEB%', 'AccessKeys'); return false;">Access keys</a>: C = Cancel, K = Checkpoint, Q = Quiet Save, S = Save, P = Preview</td>
  </tr>
***************
*** 116,121 ****
--- 116,122 ----
  <div class="twikiSig">
  <label for="sig" class="twikiGrayText">Your signature for easy copy and paste: </label><input name="sig" type="text" readonly="readonly" id="sig" value="-- <nop>%WIKIUSERNAME% - %DATE%" /></div>
  %FORMFIELDS%
+ <input type="hidden" name="flow" value="%FLOW%" />
  %TMPL:P{"topicaction"}%
  </form></div><div class="twikiHelp">
  %INCLUDE{"%TWIKIWEB%.WikiSyntaxSummary"}%</div>%TMPL:END%
Index: templates/edit.tmpl
===================================================================
RCS file: /e/www/CVS/twiki-cairo/templates/edit.tmpl,v
retrieving revision 1.1
retrieving revision 1.1.12.2
diff -c -r1.1 -r1.1.12.2
*** templates/edit.tmpl	7 Sep 2004 17:17:04 -0000	1.1
--- templates/edit.tmpl	31 Jan 2005 04:46:26 -0000	1.1.12.2
***************
*** 80,86 ****
  	<input type="submit" class="twikiSubmit" name="action" value="Checkpoint" id="checkpoint" />
  	<input type="submit" class="twikiSubmit" name="action" value="QuietSave" id="quietsave" />
      <input type="submit" class="twikiSubmit" name="action" value="Save" id="save" />%TMPL:P{"sep"}% 
! 	<input type="submit" class="twikiSubmit" name="action" value="Preview" id="preview" />%TMPL:END%
  %TMPL:DEF{"titleaction"}%(edit) %TMPL:END%
  %TMPL:DEF{"titlehelp"}% %TMPL:END%
  %TMPL:DEF{"webaction"}%Change topic%TMPL:END%
--- 80,87 ----
  	<input type="submit" class="twikiSubmit" name="action" value="Checkpoint" id="checkpoint" />
  	<input type="submit" class="twikiSubmit" name="action" value="QuietSave" id="quietsave" />
      <input type="submit" class="twikiSubmit" name="action" value="Save" id="save" />%TMPL:P{"sep"}% 
! 	<input type="submit" class="twikiSubmit" name="action" value="Preview" id="preview" />%TMPL:P{"sep"}%
!     %FORMEDIT%%TMPL:END%
  %TMPL:DEF{"titleaction"}%(edit) %TMPL:END%
  %TMPL:DEF{"titlehelp"}% %TMPL:END%
  %TMPL:DEF{"webaction"}%Change topic%TMPL:END%
***************
*** 102,107 ****
--- 103,109 ----
   </tr>
  </table>
  %FORMFIELDS%
+ <input type="hidden" name="flow" value="%FLOW%" />
  %TMPL:P{"standardfooter"}%
  </form>
  #PageBottom
Index: templates/preview.pattern.tmpl
===================================================================
RCS file: /e/www/CVS/twiki-cairo/templates/preview.pattern.tmpl,v
retrieving revision 1.1
retrieving revision 1.1.14.1
diff -c -r1.1 -r1.1.14.1
*** templates/preview.pattern.tmpl	7 Sep 2004 17:17:05 -0000	1.1
--- templates/preview.pattern.tmpl	31 Jan 2005 04:46:26 -0000	1.1.14.1
***************
*** 80,85 ****
--- 80,86 ----
  </div>
  <form name="main" action="%SCRIPTURLPATH%/save%SCRIPTSUFFIX%/%WEB%/%TOPIC%" method="post">
  <input type="hidden" name="text" value="%HIDDENTEXT%" />
+ <input type="hidden" name="flow" value="%FLOW%" />
  <input type="hidden" name="cmd" value="%CMD%" />
  <input type="hidden" name="formtemplate" value="%FORMTEMPLATE%" />
  <input type="hidden" name="topicparent" value="%TOPICPARENT%" />
Index: templates/preview.tmpl
===================================================================
RCS file: /e/www/CVS/twiki-cairo/templates/preview.tmpl,v
retrieving revision 1.1
retrieving revision 1.1.14.1
diff -c -r1.1 -r1.1.14.1
*** templates/preview.tmpl	7 Sep 2004 17:17:05 -0000	1.1
--- templates/preview.tmpl	31 Jan 2005 04:46:26 -0000	1.1.14.1
***************
*** 44,49 ****
--- 44,50 ----
  %META{"attachments"}%
  <form name="main" action="%SCRIPTURLPATH%/save%SCRIPTSUFFIX%/%WEB%/%TOPIC%" method="post">
  <input type="hidden" name="text" value="%HIDDENTEXT%" />
+ <input type="hidden" name="flow" value="%FLOW%" />
  <input type="hidden" name="cmd" value="%CMD%" />
  <input type="hidden" name="formtemplate" value="%FORMTEMPLATE%" />
  <input type="hidden" name="topicparent" value="%TOPICPARENT%" />
