[interchange-cvs] interchange - heins modified dist/lib/UI/pages/admin/menu_editor.html
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Thu Sep 12 00:59:01 2002
User: heins
Date: 2002-09-12 04:58:03 GMT
Modified: dist/lib/UI/pages/admin menu_editor.html
Log:
* Improve tolerance of editor for tree database structures that don't
match the menu exactly.
* Add member as a default field.
* Recursive search for menu files, so that a hierarchical menu
structure can be used.
Revision Changes Path
2.15 +36 -10 interchange/dist/lib/UI/pages/admin/menu_editor.html
rev 2.15, prev_rev 2.14
Index: menu_editor.html
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/dist/lib/UI/pages/admin/menu_editor.html,v
retrieving revision 2.14
retrieving revision 2.15
diff -u -r2.14 -r2.15
--- menu_editor.html 20 Aug 2002 02:51:00 -0000 2.14
+++ menu_editor.html 12 Sep 2002 04:58:03 -0000 2.15
@@ -36,7 +36,7 @@
@menufields =3D qw/
code mgroup msort next_line indicator exclude_on depends_on page
form name super inactive description help_name img_dn img_up
- img_sel img_icon url
+ img_sel img_icon url member
/;
=20
$Tag->tmp('qmenu_fdata');
@@ -107,6 +107,14 @@
my $gfield =3D $Variable->{MV_TREE_GROUP_FIELD} || 'mgroup';
my $sfield =3D $Variable->{MV_TREE_SORT_FIELD} || 'msort';
=20
+ my @valid;
+ for(my $i =3D 0; $i < @fields; $i++) {
+ push @valid, $i if defined $db->test_column($fields[$i]);
+ }
+#Debug("valid entries=3D" . join(',', @valid));
+
+ @fields =3D @fields[@valid];
+
my $gptr;
my $sptr;
for(my $i =3D 1; $i < @fields; $i++) {
@@ -135,6 +143,7 @@
my @row =3D split /\t/, $_, $num;
my @f =3D @fields;
$#row =3D $last;
+ @row =3D @row[@valid];
my $lev =3D $row[$sptr];
#Debug("menu level=3D$lev");
$row[$gptr] =3D $menuname;
@@ -423,31 +432,45 @@
$blob =3D~ s/.*?>//;
1 while $blob =3D~ s{<.*?>}{};
$anchor =3D $blob;
+ my $sort =3D $start;
+ $sort =3D~ s/./x/;
my($href, $parms) =3D split /\?/, $link, 2;
- push @out,=20
- join "\t", $start, '', 0, $start, $href, $parms, $anchor, $desc;
- $start++;
+ my %record =3D (
+ code =3D> $start++,
+ msort =3D> $sort,
+ page =3D> $href,
+ form =3D> $parms,
+ name =3D> $anchor,
+ description =3D> $desc,
+ );
+
+ push @out, join "\t", @record{@menufields};
}
+
$Scratch->{qmenu_data} =3D join "\n", @out, '';
$CGI->{qmenu_name} =3D '';
$CGI->{qmenu_new} ||=3D 'Untitled';
}
=20
- my @files =3D sort $Tag->list_glob("$menupath/*.txt");
+ my $files =3D $Tag->list_pages({
+ base =3D> $menupath,
+ ext =3D> '.txt',
+ arrayref =3D> 1,
+ });
+#Debug("files=3D" . join(",", @$files));
my @names;
- for(@files) {
+ for(@$files) {
my $tmp =3D $_;
- $tmp =3D~ s:.*/::;
- $tmp =3D~ s/\.txt$//;
$tmp =3D~ s/%([A-Fa-f0-9]{2})/chr(hex $1)/eg;
+ $_ =3D "$menupath/$_.txt";
push @names, $tmp;
}
=20
- @qmenu{@names} =3D @files;
+ @qmenu{@names} =3D @$files;
=20
my @fdata =3D "code\tfile";
for(my $i =3D 0; $i < @names; $i++) {
- push @fdata, "$names[$i]\t$files[$i]";
+ push @fdata, "$names[$i]\t$files->[$i]";
}
$Scratch->{qmenu_fdata} =3D join "\n", @fdata;
=20
@@ -977,6 +1000,7 @@
var f =3D document.qmenuform;
var el =3D f.treebutton;
var ch =3D f.qmenu_tree;
+ var cht =3D f.qmenu_write_tree;
var tel =3D document.getElementById('treebox');
// alert("change mode, el=3D" + el);
if(mode =3D=3D 'tree') {
@@ -984,6 +1008,7 @@
lines[1][MSORT] =3D 0;
el.value =3D "Set simple mode";
ch.checked =3D 1;
+ cht.checked =3D 1;
tel.style.visibility =3D 'Visible';
}
else {
@@ -991,6 +1016,7 @@
lines[1][MSORT] =3D 'x';
el.value =3D "Set tree mode";
ch.checked =3D 0;
+ cht.checked =3D 0;
tel.style.visibility =3D 'Hidden';
}
var i;