[interchange-cvs] interchange - heins modified dist/lib/UI/pages/admin/layout_auto.html
interchange-core@interchange.redhat.com
interchange-core@interchange.redhat.com
Fri Sep 21 12:52:00 2001
User: heins
Date: 2001-09-21 16:51:11 GMT
Modified: dist/lib/UI/pages/admin layout_auto.html
Log:
While writing the meta-doc entry on categories, I realized that
the auto-populate should be more flexible. So I made it so.
* Auto-populate function now more flexible.
Can select link types:
simple
link_type simple
selector category=(value of category)
narrow
link_type simple
selector prod_group=(value of prod_group)
category=(value of category)
complex
link_type simple
selector <blank>
search from template, ~FIELD_NAME~ markers
Revision Changes Path
2.1 +100 -15 interchange/dist/lib/UI/pages/admin/layout_auto.html
rev 2.1, prev_rev 2.0
Index: layout_auto.html
===================================================================
RCS file: /anon_cvs/repository/interchange/dist/lib/UI/pages/admin/layout_auto.html,v
retrieving revision 2.0
retrieving revision 2.1
diff -u -r2.0 -r2.1
--- layout_auto.html 2001/07/18 02:22:00 2.0
+++ layout_auto.html 2001/09/21 16:51:11 2.1
@@ -4,7 +4,22 @@
[set page_perm]layout=e[/set]
[set help_name]layout.edit[/set]
[set icon_name]icon_pages.gif[/set]
-[tmp meta_header][include include/table_populator][/tmp]
+[tmp meta_header]
+ [include include/table_populator]
+ <SCRIPT LANGUAGE=JavaScript>
+ function change_ta (ta_field, selector) {
+ if(selector == 'complex') {
+ ta_field.rows = 20;
+ ta_field.disabled = false;
+ }
+ else {
+ ta_field.rows = 1;
+ ta_field.disabled = true;
+ }
+ return;
+ }
+ </SCRIPT>
+[/tmp]
[seti ui_body_extra][/seti]
@_UI_STD_HEAD_@
@@ -76,9 +91,50 @@
</select>
</td>
</tr>
+<tr>
+<td>
+4. Choose a search type:
+</td>
+<td>
+<select name="cat_type" onChange="change_ta(this.form.search_code,this.form.cat_type.value)">
+<option value="narrow"> Narrow search (area and category match)
+<option value="simple"> Simple search (only category matches)
+<option value="complex"> Complex search (template substitution on below)
+</select>
+</td>
+</tr>
+<tr>
+<td valign=top>
+5. Complex search code:
+</td>
+<td>
+NOTE: Not active unless complex search selected above.<br>
+<textarea rows=1 cols=50 name=search_code disabled=true>
+ fi=products
+ st=db
+ co=yes
+
+ sf=prod_group
+ se=~PROD_GROUP~
+ op=eq
+
+ sf=category
+ se=~CATEGORY~
+ op=eq
+
+ sf=inactive
+ se=1
+ op=ne
+
+ rf=sku
+
+ va=banner_text=~BANNER_TEXT~
+</textarea>
+</td>
+</tr>
<tr bgcolor="__UI_C_INTBLOCK__">
<td>
-4. Select the page class:
+6. Select the page class:
</td>
<td>
<INPUT NAME=which_page VALUE=all>
@@ -86,7 +142,7 @@
</tr>
<tr bgcolor="__UI_C_INTBLOCK__">
<td>
-5. Select the page area:
+7. Select the page area:
</td>
<td>
<INPUT NAME=sel VALUE=left>
@@ -94,7 +150,7 @@
</tr>
<tr bgcolor="__UI_C_INTBLOCK__">
<td>
-6. Decide whether to remove previous settings:
+8. Decide whether to remove previous settings:
</td>
<td>
<SELECT NAME=nuke><OPTION VALUE=0>No <OPTION VALUE=1>Yes</SELECT>
@@ -102,7 +158,7 @@
</tr>
<tr>
<td>
-6. Click this button to populate:
+9. Click this button to populate:
</td>
<td>
[button text="Populate"]
@@ -137,11 +193,35 @@
display_type => 'name',
);
my %catmap;
+ my $lt;
+ my $search_code;
+ if($CGI->{cat_type} eq 'simple') {
+ $lt = 'simple';
+ $selector = 'category=~CATEGORY~';
+ $search_code = '';
+ }
+ elsif($CGI->{cat_type} eq 'narrow') {
+ $lt = 'simple';
+ $selector = <<EOF;
+category=~CATEGORY~
+prod_group=~PROD_GROUP~
+EOF
+ $search_code = '';
+ }
+ else {
+ $lt = 'complex';
+ $selector = '';
+ $search_code = $CGI->{search_code};
+ }
+
my %cat_defaults = (
- link_type => 'simple',
+ link_type => $lt,
+ selector => $selector,
+ search => $search_code,
sort => '05',
display_type => 'name'
);
+
if($CGI->{nuke}) {
$adb->query('delete from area');
$cdb->query('delete from cat');
@@ -168,21 +248,26 @@
$cdb->config('AUTO_NUMBER', '1000') if ! $cdb->config('_Auto_number');
return "cat column $ccol doesn't exist"
unless $pdb->column_exists($ccol);
- my $ary = $pdb->query("select $acol, $ccol from $ptab order by $ccol")
+ my ($ary, $fh) = $pdb->query(
+ "select $acol, $ccol from $ptab order by $ccol",
+ )
or return "cat column query failed";
- for(@$ary) {
- my ($area, $cat) = (@$_);
+ foreach my $row (@$ary) {
+ my $area = $row->[$fh->{$acol}];
+ my $cat = $row->[$fh->{$ccol}];
next if $catdone{$cat}++;
my $key = $cdb->set_row('');
return "no cat autonumbering available" if ! $key;
- $cat_defaults{name} = $cat;
- $cat_defaults{sel} = $catmap{$area};
- $cat_defaults{selector} = "$ccol=$cat";
+ my %defaults = %cat_defaults;
+ $defaults{name} = $cat;
+ $defaults{sel} = $catmap{$area};
+ $defaults{search} =~ s/~ (\w+) ~/$row->[$fh->{lc $1}]/gx;
+ $defaults{selector} =~ s/~ (\w+) ~/$row->[$fh->{lc $1}]/gx;
- for(keys %cat_defaults) {
- Log("setting col=$_ key=$key = $cat_defaults{$_}");
- $cdb->set_field($key, $_, $cat_defaults{$_});
+ for(keys %defaults) {
+ Log("setting col=$_ key=$key = $defaults{$_}");
+ $cdb->set_field($key, $_, $defaults{$_});
}
}
}