cvsuser 06/02/27 09:33:58
Modified: App-Widget/lib/App/Widget DataTable2.pm
Log:
remove non-style stuff
Revision Changes Path
1.3 +78 -54 p5ee/App-Widget/lib/App/Widget/DataTable2.pm
Index: DataTable2.pm
===================================================================
RCS file: /cvs/public/p5ee/App-Widget/lib/App/Widget/DataTable2.pm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DataTable2.pm 8 Nov 2005 04:51:31 -0000 1.2
+++ DataTable2.pm 27 Feb 2006 17:33:58 -0000 1.3
@@ -82,8 +82,27 @@
$self->SUPER::_init(@_);
$self->{table} = $self->{name} if (!$self->{table});
- $self->{context}->dbgprint("DataTable2->init()")
- if ($App::DEBUG && $self->{context}->dbg(1));
+ if (!$self->{keycolidx}) {
+ my $context = $self->{context};
+ my $table = $self->{table};
+ my $rep = $self->{repository};
+ my $r = $context->repository($rep);
+ $r->_load_table_metadata($table);
+ my $primary_key = $r->{table}{$table}{primary_key};
+ if ($primary_key && ref($primary_key) eq "ARRAY" && $#$primary_key >
-1) {
+ my (@keycolidx, %colidx);
+ my $columns = $self->get_columns();
+ for (my $col = 0; $col <= $#$columns; $col++) {
+ $colidx{$columns->[$col]} = $col;
+ }
+ for (my $col = 0; $col <= $#$primary_key; $col++) {
+ if (defined $colidx{$primary_key->[$col]}) {
+ push(@keycolidx, $colidx{$primary_key->[$col]});
+ }
+ }
+ $self->{keycolidx} = [EMAIL PROTECTED] if ($#keycolidx ==
$#$primary_key);
+ }
+ }
}
######################################################################
@@ -545,53 +564,55 @@
my ($rowactions, $rowactiondefs, $rowaction, $rowactiondef);
my (@select_actions, @single_select_actions, @row_actions);
- $table = $self->get("table");
- return "No table defined." if (!$table);
+ $table = $self->{table};
$columns = $self->get_columns();
return "No columns defined for table [$table]. (maybe it doesn't exist)"
if (!$columns || $#$columns == -1);
$headings = $self->get_headings();
$data = $self->get_data();
- $startrow = $self->get("startrow", 1);
- $title = $self->get("title");
- $width = $self->get("width");
- $bgcolor = $self->get("bgcolor");
- $font_color = $self->get("font_color");
- $border = $self->get("border", 0);
- $cellspacing = $self->get("cellspacing", 2);
- $cellpadding = $self->get("cellpadding", 2);
- $align = $self->get("align", "");
- $valign = $self->get("valign", "top");
- $nowrap = $self->get("nowrap", 1);
- $font_face = $self->get("font_face",
"verdana,geneva,arial,sans-serif");
- $font_size = $self->get("font_size", -2);
- $heading_bgcolor = $self->get("heading_bgcolor", "#cccccc");
- $heading_align = $self->get("heading_align", $align);
- $heading_valign = $self->get("heading_valign", "bottom");
- $heading_nowrap = $self->get("heading_nowrap", $nowrap);
- $mode = $self->get("mode", "view");
- $scrollable = $self->get("scrollable", 0);
- $sortable = $self->get("sortable", 0);
- $filterable = $self->get("filterable", 0);
- $editable = $self->get("editable", 0);
- $numbered = $self->get("numbered", 1);
- $column_selectable = $self->get("column_selectable", 1);
- $row_selectable = $self->get("row_selectable", (($mode eq "edit")
? 1 : 0));
- $row_single_selectable = $self->get("row_single_selectable", 0);
- $keys = $self->get("keys");
- $sql = $self->get("sql");
- $rowactions = $self->get("rowactions");
- $rowactiondefs = $self->get("rowaction");
+ my $compatibility = $self->{compatibility} || ""; # values:
[HTML32]
+ $startrow = $self->{startrow} || 1;
+ $title = $self->{title};
+ $width = $self->{width};
+ $bgcolor = $self->{bgcolor};
+ $font_color = $self->{font_color};
+ $border = $self->{border} || 0;
+ $cellspacing = $self->{cellspacing} || 2;
+ $cellpadding = $self->{cellpadding} || 2;
+ $align = $self->{align} || "";
+ $valign = $self->{valign} || "top";
+ $nowrap = $self->{nowrap} || 1;
+ $font_face = $self->{font_face} ||
"verdana,geneva,arial,sans-serif";
+ $font_size = $self->{font_size} || -2;
+ $heading_bgcolor = $self->{heading_bgcolor} || "#cccccc";
+ $heading_align = $self->{heading_align} || $align;
+ $heading_valign = $self->{heading_valign} || "bottom";
+ $heading_nowrap = $self->{heading_nowrap} || $nowrap;
+ $mode = $self->{mode} || "view";
+ $scrollable = $self->{scrollable} || 0;
+ $sortable = $self->{sortable} || 0;
+ $filterable = $self->{filterable} || 0;
+ $editable = $self->{editable} || 0;
+ $numbered = $self->{numbered} || 1;
+ $column_selectable = $self->{column_selectable} || 1;
+ $row_selectable = $self->{row_selectable} || (($mode eq "edit") ?
1 : 0);
+ $row_single_selectable = $self->{row_single_selectable} || 0;
+ $keys = $self->{keys};
+ $sql = $self->{sql};
+ $rowactions = $self->{rowactions};
+ $rowactiondefs = $self->{rowaction};
- my $repname = $self->get("repository");
+ my $repname = $self->{repository};
my $rep = $context->repository($repname);
+ $rep->_load_table_metadata($table);
my $table_def = $rep->{table}{$table};
my $table_column_defs = $table_def->{column};
my $view_column_defs = $self->{column} || {};
if (! $self->{keycolidx}) {
- $rowactions = undef;
- $row_selectable = 0; # can't select row(s) if no primary key
+ $rowactions = undef;
+ $row_selectable = 0; # can't select row(s) if no primary key
$row_single_selectable = 0; # can't select row if no primary key
+ $editable = 0; # can't edit if you can't select rows
}
elsif ($rowactions && $rowactiondefs) {
foreach $rowaction (@$rowactions) {
@@ -639,13 +660,15 @@
$elem_begin = "";
$elem_end = "";
- if ($font_face || $font_size || $font_color) {
- $elem_begin = "<font";
- $elem_begin .= " face=\"$font_face\"" if ($font_face);
- $elem_begin .= " size=\"" . ($font_size+1) . "\"" if
($font_size);
- $elem_begin .= " color=\"$font_color\"" if ($font_color);
- $elem_begin .= ">";
- $elem_end = "</font>";
+ if ($compatibility eq "HTML32") {
+ if ($font_face || $font_size || $font_color) {
+ $elem_begin = "<font";
+ $elem_begin .= " face=\"$font_face\"" if ($font_face);
+ $elem_begin .= " size=\"" . ($font_size+1) . "\"" if
($font_size);
+ $elem_begin .= " color=\"$font_color\"" if ($font_color);
+ $elem_begin .= ">";
+ $elem_end = "</font>";
+ }
}
if ($scrollable) {
@@ -832,15 +855,16 @@
$elem_begin = "";
$elem_end = "";
- if ($font_face || $font_size || $font_color) {
- $elem_begin = "<font";
- $elem_begin .= " face=\"$font_face\"" if ($font_face);
- $elem_begin .= " size=\"$font_size\"" if ($font_size);
- $elem_begin .= " color=\"$font_color\"" if ($font_color);
- $elem_begin .= ">";
- $elem_end = "</font>";
+ if ($compatibility eq "HTML32") {
+ if ($font_face || $font_size || $font_color) {
+ $elem_begin = "<font";
+ $elem_begin .= " face=\"$font_face\"" if ($font_face);
+ $elem_begin .= " size=\"$font_size\"" if ($font_size);
+ $elem_begin .= " color=\"$font_color\"" if ($font_color);
+ $elem_begin .= ">";
+ $elem_end = "</font>";
+ }
}
-
$td_row_attrib = "";
$td_row_attrib .= " bgcolor=\"$heading_bgcolor\"" if ($heading_bgcolor);
$td_row_attrib .= " align=\"$heading_align\"" if ($heading_align);