X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Felements%2Fedit.html;h=3e8b6b8edfdfa11e03521485b777517a17528d92;hb=0fcdc36642e1430f02ebf5326740e231883bd41f;hp=4a6079a8562f4e8dc45bfc7ae7d0844f847ca6b3;hpb=39120f69d4372781aba0df58d06736be450009e1;p=freeside.git diff --git a/httemplate/edit/elements/edit.html b/httemplate/edit/elements/edit.html index 4a6079a85..3e8b6b8ed 100644 --- a/httemplate/edit/elements/edit.html +++ b/httemplate/edit/elements/edit.html @@ -40,14 +40,18 @@ Example: 'disabled' => 0, 'onchange' => 'javascript_function', - #m2 stuff only tested w/selectlayers so far - #might work w/select too, dunno others + 'include_opt_callback' => sub { #my $ = @_; + ( 'option' => 'value', ); + }, + 'm2name_table' => 'table_name', 'm2name_namecol' => 'name_column', #OR# 'm2m_method' => #'m2m_srccol' => #opt, if not the same as this table 'm2m_dstcol' => #required for now, eventuaully opt, if not the same as target table + #OR# + 'o2m_table' => 'm2_label' => 'Label', # 'm2_new_default' => \@table_name_objects, #default @@ -235,6 +239,7 @@ Example: % $layer_values = &{ $f->{'layer_values_callback'} }( $cgi, $object ) % if $f->{'layer_values_callback'} % && ! $f->{'m2name_table'} +% && ! $f->{'o2m_table'} % && ! $f->{'m2m_method'}; % % warn "layer values: ". Dumper($layer_values) @@ -245,6 +250,7 @@ Example: % #text and derivitives % 'size' => $f->{'size'}, % 'maxlength' => $f->{'maxlength'}, +% 'postfix' => $f->{'postfix'}, % % #checkbox, title, fixed, hidden % #& deprecated weird value hashref used only by reason.html @@ -289,7 +295,12 @@ Example: % foreach grep exists($f->{$_}), qw( hashref agent_virt agent_null_right ); % % if ( $type eq 'tablebreak-tr-title' ) { -% $include_common{'table_id'} = 'TableNumber'. $tablenum++ +% $include_common{'table_id'} = 'TableNumber'. $tablenum++; +% $include_common{'colspan'} = $f->{colspan} if $f->{colspan}; +% } +% +% if ( $f->{include_opt_callback} ) { +% %include_common = ( %include_common, &{ $f->{include_opt_callback} } ); % } % % my $layer_prefix_on = ''; @@ -317,6 +328,27 @@ Example: % @include; % }; % +% my $column_sub = sub { +% my %opt = @_; +% +% my $column = delete($opt{field}); +% my $fieldnum = delete($opt{fieldnum}); +% my $include = delete($opt{type}) || 'text'; +% $include = "input-$include" if $include =~ /^(text|money|percentage)$/; +% +% ( "/elements/$include.html", +% 'field' => $field.'__'.$column.$fieldnum, +% 'id' => $field.'__'.$column.$fieldnum, +% 'layer_prefix' => $field.'__'.$column.$fieldnum.".", +% ( $fieldnum +% ? ('cell_style' => 'border-top:1px solid black') +% : () +% ), +% 'cgi' => $cgi, +% %opt, +% ); +% }; +% % unless ( $type =~ /^column/ ) { % $g_row = 1 if $type eq 'tablebreak-tr-title'; % $g_row++; @@ -334,12 +366,15 @@ Example: % % my $fieldnum = ''; % my $curr_value = ''; -% if ( $f->{'m2name_table'} || $f->{'m2m_method'} ) { #XXX test this for all -% #types of fields +% if ( $f->{'m2name_table'} || $f->{'o2m_table'} || $f->{'m2m_method'} ) { +% % my($table, $col); % if ( $f->{'m2name_table'} ) { % $table = $f->{'m2name_table'}; % $col = $f->{'m2name_namecol'}; +% } elsif ( $f->{'o2m_table'} ) { +% $table = $f->{'o2m_tbekable'}; +% $col = dbdef->table($f->{'o2m_table'})->primary_key; % } elsif ( $f->{'m2m_method'} ) { % $table = $f->{'m2m_method'}; % $col = $f->{'m2m_dstcol'}; @@ -352,8 +387,8 @@ Example: % @existing = &{ $f->{'m2_error_callback'} }( $cgi, $object ); % } elsif ( $object->$pkey() ) { # $mode eq 'edit'||'clone' % @existing = $object->$table(); -% warn scalar(@existing). " from $object->$table: ". join('/', @existing) -% if $opt{'debug'}; +% warn scalar(@existing). " from $object->$table: ". join('/', @existing) +% if $opt{'debug'}; % } elsif ( $f->{'m2_new_default'} ) { # && $mode eq 'new' % @existing = @{ $f->{'m2_new_default'} }; % } @@ -382,8 +417,35 @@ Example: % 'layer_values' => $layer_values, % 'cell_style' => ( $fieldnum ? 'border-top:1px solid black' : '' ), % ); +% $existing[0] =~ s(^/elements/tr-)(/elements/); +% my @label = @existing; +% $label[0] = '/elements/tr-td-label.html'; + <% include( @label ) %> + <% include( @existing ) %> + + +% if ( $f->{'m2_fields'} ) { +% foreach my $c ( @{ $f->{'m2_fields'} } ) { +% my $column = $c->{field}; +% my @column = &{ $column_sub }( %$c, +% 'fieldnum' => $fieldnum, +% 'curr_value' => $name_obj->$column() +% ); + + + <% $c->{'label'} || '' %> + + + <% include( @column ) %> + +% } +% } + + % $fieldnum++; % $g_row++; @@ -409,10 +471,41 @@ Example: % 'onchange' => $onchange, % ( $fieldnum ? ('cell_style' => 'border-top:1px solid black') : () ), % ); +% +% if ( $f->{'m2name_table'} || $f->{'o2m_table'} || $f->{'m2m_method'} ) { +% $include[0] =~ s(^/elements/tr-)(/elements/); +% my @label = @include; +% $label[0] = '/elements/tr-td-label.html'; + + <% include( @label ) %> + + <% include( @include ) %> + + +% if ( $f->{'m2_fields'} ) { +% foreach my $c ( @{ $f->{'m2_fields'} } ) { +% my $column = $c->{field}; +% my @column = &{ $column_sub }( %$c, 'fieldnum' => $fieldnum ); + + + <% $c->{'label'} || '' %> + + + <% include( @column ) %> + +% } +% } + + + +% } else { - <% include( @include ) %> + <% include( @include ) %> -% if ( $f->{'m2name_table'} || $f->{'m2m_method'} ) { +% } +% if ( $f->{'m2name_table'} || $f->{'o2m_table'} || $f->{'m2m_method'} ) {