[interchange-cvs] interchange - heins modified 6 files
interchange-core@interchange.redhat.com
interchange-core@interchange.redhat.com
Sun Jan 6 14:55:00 2002
User: heins
Date: 2002-01-06 19:54:45 GMT
Modified: dist/lib/UI/pages/admin page_edit.html page_save.html
Modified: dist/lib/UI/pages/include page_edit page_save
Modified: dist/lib/UI/usertag read_ui_page.tag read_ui_template.tag
Log:
* Change page edit so that "Save" only saves a session-based
current copy of the file, and you must "Publish" to save
the actual page.
* Put JS on component selectors so they automatically come
back with the proper widgets.
Revision Changes Path
2.1 +2 -2 interchange/dist/lib/UI/pages/admin/page_edit.html
rev 2.1, prev_rev 2.0
Index: page_edit.html
===================================================================
RCS file: /anon_cvs/repository/interchange/dist/lib/UI/pages/admin/page_edit.html,v
retrieving revision 2.0
retrieving revision 2.1
diff -u -r2.0 -r2.1
--- page_edit.html 2001/07/18 02:22:00 2.0
+++ page_edit.html 2002/01/06 19:54:45 2.1
@@ -40,9 +40,9 @@
[/perl]
[if scratch ui_template_version]
-[include include/page_edit]
+[include file=include/page_edit locale=1]
[else]
-[include include/page_edit_old]
+[include file=include/page_edit_old locale=1]
[/else]
[/if]
2.1 +9 -1 interchange/dist/lib/UI/pages/admin/page_save.html
rev 2.1, prev_rev 2.0
Index: page_save.html
===================================================================
RCS file: /anon_cvs/repository/interchange/dist/lib/UI/pages/admin/page_save.html,v
retrieving revision 2.0
retrieving revision 2.1
diff -u -r2.0 -r2.1
--- page_save.html 2001/07/18 02:22:00 2.0
+++ page_save.html 2002/01/06 19:54:45 2.1
@@ -18,8 +18,16 @@
return;
[/calc]
[include file="[scratch ui_output_page]"]
- [else]
+ [elsif cgi ui_page_finalize]
[bounce page="__UI_BASE__/page"]
+ [/elsif]
+ [else]
+ [tmp junkref][area
+ href=__UI_BASE__/page_edit
+ form=auto
+ ui_page="[cgi ui_page]"
+ ][/tmp]
+ [bounce href="[scratch junkref]"]
[/else]
[/if]
[else]
2.4 +40 -17 interchange/dist/lib/UI/pages/include/page_edit
rev 2.4, prev_rev 2.3
Index: page_edit
===================================================================
RCS file: /anon_cvs/repository/interchange/dist/lib/UI/pages/include/page_edit,v
retrieving revision 2.3
retrieving revision 2.4
diff -u -r2.3 -r2.4
--- page_edit 2001/09/13 18:23:29 2.3
+++ page_edit 2002/01/06 19:54:45 2.4
@@ -37,7 +37,7 @@
[/on-match]
[/loop]
-<form action="[area ui]" method=POST ENCTYPE="multipart/form-data">
+<form action="[area __UI_BASE__/page_save]" method=POST ENCTYPE="multipart/form-data">
<input type=hidden name=mv_session_id value="[data session id]">
<input type=hidden name=mv_todo value=back>
<input type=hidden name=ui_template_version value="[version]">
@@ -268,13 +268,13 @@
}
for($i = 0; $i < $found; $i++) {
$template_top .= $Tag->var($el[$i], 2);
-#Log("i=$i, reading top variable $el[$i]");
+#Debug("i=$i, reading top variable $el[$i]");
}
for($i = $found + 1; $i < @el; $i++) {
$template_bot .= $Tag->var($el[$i], 2);
-#Log("i=$i, reading bot variable $el[$i]");
+#Debug("i=$i, reading bot variable $el[$i]");
}
-#Log("Template top: $template_top");
+#Debug("Template top: $template_top");
}
$control_display = $tref->{ui_template_edit}
@@ -282,9 +282,10 @@
my %control_display = map { ($_, 1) } split /[\s\0,]/, $control_display;
-#Log("t_name=$t_name");
+#Debug("t_name=$t_name");
my $page = $CGI->{ui_page};
+#Debug("page_edit ui_page=$page");
$out .= title_row( errmsg("Page file: %s", $page ) );
$hidden{ui_page} = $page;
@@ -406,19 +407,33 @@
(.*?)
<!--+ \s+ end \s+ component \s+ \1 \s+ --+>
|
- \[ include \s+ file \s*=\s*["'][^"]*/
+ \[ include \s+ (.*?) file \s*=\s*["'][^"]*/
(?:\[control \s+ component \s+ )?
(\w+)
\]? ['"]
- \s*
- (?:group=["']?(\w+)['"]?)?
- .*?
+ (.*?)
\] \s* \[control\]
+ |
+ \[ component \s+ (.*?) comp(?:[-_]name|onent) \s*=\s*["']\s*
+ (?:\[control \s+ component \s+ )?
+ (\w+)
+ \]? \s* ['"]
+ (.*?)
+ \]\s
)
}gsix)
{
- my $compname = $1 || $4;
- my $comptype = $2 || $5;
+ my $compname = $1 || $5 || $8;
+ my $comptype = $2;
+ if(! $comptype) {
+ my @stuff = ($4, $6, $7, $9);
+#Debug("no comptype, stuff is: " . uneval(\@stuff));
+ @stuff = grep $_, @stuff;
+ my $stuff = join "", @stuff;
+ $stuff =~ /\s+group\s*=[\s'"]*(\w+)/i
+ and $comptype = $1;
+#Debug("comptype=$comptype");
+ }
#Log("Found component $compname, group $comptype");
my $current_content = $3 || '';
@@ -552,7 +567,7 @@
my %seen;
@comps = grep !$seen{$_}++, @comps;
- my $out = qq{<SELECT NAME="$name">};
+ my $out = qq{<SELECT NAME="$name" onChange="this.form.submit()">};
for(@comps) {
$out .= qq{<OPTION VALUE="$_"};
$out .= " SELECTED" if $curr eq $_;
@@ -863,20 +878,28 @@
<tr class=ralt>
<td colspan=2>
-[set Preview]
+[set [L]Preview[/L]]
mv_todo=back
mv_nextpage=__UI_BASE__/page_preview
[/set]
+
+[set [L]Save[/L]]
+ui_page_finalize=0
+mv_nextpage=__UI_BASE__/page_save
+[/set]
-[set Save]
+[set [L]Publish[/L]]
+ui_page_finalize=1
mv_nextpage=__UI_BASE__/page_save
[/set]
[scratchd tmp_hidden]
-<INPUT TYPE=submit NAME=mv_click VALUE=Preview onClick="this.form.target='page_preview'; this.form.action='[area __UI_BASE__/page_preview]'">
+<INPUT TYPE=hidden NAME=mv_action VALUE="go">
+<INPUT TYPE=submit NAME=mv_click VALUE="[L]Preview[/L]" onClick="this.form.target='page_preview'; this.form.action='[area __UI_BASE__/page_preview]'">
<INPUT TYPE=hidden NAME=ui_return_to VALUE="__UI_BASE__/page">
-<INPUT TYPE=submit NAME=mv_click VALUE=Save onClick="this.form.target='_self'; this.form.action='[area __UI_BASE__/page_save]'">
-<INPUT TYPE=submit NAME=mv_click VALUE=Cancel onClick="this.form.target='_self'; this.form.action='[area __UI_BASE__/page]'"><br>
+<INPUT TYPE=submit NAME=mv_click VALUE="[L]Save[/L]" onClick="this.form.target='_self'">
+<INPUT TYPE=submit NAME=mv_click VALUE="[L]Publish[/L]" onClick="this.form.target='_self'">
+<INPUT TYPE=submit NAME=mv_click VALUE="[L]Cancel[/L]" onClick="this.form.target='_self'; this.form.action='[area __UI_BASE__/page]'"><br>
[comment]
<!-- may come back someday -->
<INPUT TYPE=checkbox NAME=ui_save_t_in_page VALUE=1 [cgi save_in_page]> Save template in page
2.1 +13 -3 interchange/dist/lib/UI/pages/include/page_save
rev 2.1, prev_rev 2.0
Index: page_save
===================================================================
RCS file: /anon_cvs/repository/interchange/dist/lib/UI/pages/include/page_save,v
retrieving revision 2.0
retrieving revision 2.1
diff -u -r2.0 -r2.1
--- page_save 2001/07/18 02:22:11 2.0
+++ page_save 2002/01/06 19:54:45 2.1
@@ -156,25 +156,35 @@
delete $Scratch->{ui_output_page};
my $page = $Tag->filter('filesafe', $CGI->{ui_page});
+ my $tmpdir = "$Config->{ScratchDir}/pages/$Session->{id}";
+ $tmpdir =~ s:^$Config->{VendRoot}/::;
+
+#Debug("finalize=$CGI->{ui_page_finalize}");
if( $CGI->{ui_page_preview} ) {
$page = "preview.html" unless $page;
$page =~ s:.*/::;
$page = "tmp/$Session->{id}.$page";
}
+ elsif($CGI->{ui_page_finalize}) {
+ my $unlink = $Tag->unlink_file("$tmpdir/$page");
+#Debug("unlink=$unlink file=$tmpdir/$page");
+ }
elsif( ! $page) {
$Scratch->{ui_error} = errmsg("No page name given.");
$Tag->bounce('__UI_BASE__/error');
return;
}
+ else {
+ $page = "$tmpdir/$page";
+ }
$page .= $Config->{HTMLsuffix}
unless $page =~ /$Config->{HTMLsuffix}$/;
- $page = "pages/$page" if $page !~ m{^pages/|^tmp/};
-#Log("final page=$page");
+#Debug("final page=$page");
push @out, '';
my $out = join "\n", @out;
unless ($Tag->write_relative_file($page, $out)) {
-#Log("failed to write page=$page");
+Debug("failed to write page=$page");
$Scratch->{ui_error} = errmsg("Couldn't save page %s.", $page);
}
$Scratch->{ui_output_page} = $page;
2.1 +27 -5 interchange/dist/lib/UI/usertag/read_ui_page.tag
rev 2.1, prev_rev 2.0
Index: read_ui_page.tag
===================================================================
RCS file: /anon_cvs/repository/interchange/dist/lib/UI/usertag/read_ui_page.tag,v
retrieving revision 2.0
retrieving revision 2.1
diff -u -r2.0 -r2.1
--- read_ui_page.tag 2001/07/18 02:22:15 2.0
+++ read_ui_page.tag 2002/01/06 19:54:45 2.1
@@ -65,19 +65,40 @@
UserTag read-ui-page Routine <<EOR
sub {
my ($pn, $opt) = @_;
-
+#::logDebug("read_ui_page pn=$pn");
my $suffix = $Vend::Cfg->{HTMLsuffix} || '.html';
+ my $tmpdir = $Vend::Cfg->{ScratchDir} || 'tmp';
my $pagedir = $Vend::Cfg->{PageDir} || 'pages';
+ $tmpdir .= "/pages/$Session->{id}";
+ File::Path::mkpath($tmpdir) unless -d $tmpdir;
my $name = $pn;
my $data;
+ my $inprocess;
+ ### We look for a saved but unpublished page in
+ ### the temporary space for the user, and use that if
+ ### it is there. Otherwise, we read normally.
if($pn) {
- if(not -f $pn) {
+ FINDPN: {
+ $pn = "$tmpdir/$name";
+ if(-f $pn) {
+ $inprocess = 1;
+ last FINDPN;
+ }
+
+ if ($pn !~ /$suffix$/) {
+ $pn .= $suffix;
+ if(-f $pn) {
+ $inprocess = 1;
+ last FINDPN;
+ }
+ }
+
+ $pn = $name;
+ last FINDPN if -f $pn;
+
$pn .= $suffix if $pn !~ /$suffix$/;
}
- if(not -f $pn) {
- $pn = "$pagedir/$pn";
- }
$data = Vend::Util::readfile($pn, $Global::NoAbsolute, 0);
}
else {
@@ -93,6 +114,7 @@
ui_page_setting => {},
ui_pre_region => [],
ui_post_region => [],
+ ui_page_inprocess => $inprocess,
};
my $preamble;
2.1 +17 -2 interchange/dist/lib/UI/usertag/read_ui_template.tag
rev 2.1, prev_rev 2.0
Index: read_ui_template.tag
===================================================================
RCS file: /anon_cvs/repository/interchange/dist/lib/UI/usertag/read_ui_template.tag,v
retrieving revision 2.0
retrieving revision 2.1
diff -u -r2.0 -r2.1
--- read_ui_template.tag 2001/07/18 02:22:15 2.0
+++ read_ui_template.tag 2002/01/06 19:54:45 2.1
@@ -48,15 +48,30 @@
else {
@files = glob($fn);
}
+
+ my $tmpdir = "$Config->{ScratchDir}/pages/$Session->{id}";
+ $tmpdir =~ s:^$Config->{VendRoot}/::;
my $data;
my %out;
my @out;
foreach my $fn (@files) {
my $name = $fn;
- # force substitution of [L..]-stuff off by defining third param
- $data = Vend::Util::readfile($fn, $Global::NoAbsolute, 0);
+
+ ### We look for a saved but unpublished page in
+ ### the temporary space for the user, and use that if
+ ### it is there. Otherwise, we read normally.
+ my $tmp = "$tmpdir/$name";
+ if(-f $tmp) {
+ # force substitution of [L..]-stuff off by defining third param
+ $data = Vend::Util::readfile($tmp, $Global::NoAbsolute, 0);
+ }
+ else {
+ # force substitution of [L..]-stuff off by defining third param
+ $data = Vend::Util::readfile($fn, $Global::NoAbsolute, 0);
+ }
next unless length($data);
+
$name =~ s:.*/::;
my $ref = {};
$data =~ m{\[comment\]\s*(ui_.*?)\[/comment\]\s*(.*)}s;