From eb061f5119325e666f0dff40d4089e5c1df58e17 Mon Sep 17 00:00:00 2001 From: cvs2git Date: Sun, 16 Mar 2008 19:58:34 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'TRIXBOX_2_6'. --- httemplate/edit/elements/edit.html | 536 ------------------------------- httemplate/edit/elements/svc_Common.html | 99 ------ 2 files changed, 635 deletions(-) delete mode 100644 httemplate/edit/elements/edit.html delete mode 100644 httemplate/edit/elements/svc_Common.html (limited to 'httemplate/edit/elements') diff --git a/httemplate/edit/elements/edit.html b/httemplate/edit/elements/edit.html deleted file mode 100644 index ad52f7a4c..000000000 --- a/httemplate/edit/elements/edit.html +++ /dev/null @@ -1,536 +0,0 @@ -<%doc> - -Example: - - include( 'elements/edit.html', - 'name' => - 'table' => - #? 'primary_key' => #required when the dbdef doesn't know...??? - 'labels' => { - 'column' => 'Label', - } - - #listref - each item is a literal column name (or method) or hashref - # or (notyet) coderef - #if not specified all columns (except for the primary key) will be editable - 'fields' => [ - 'columname', - { 'field' => 'another_columname', - 'type' => 'text', #text - #password - #money - #percentage - #checkbox - #select - #selectlayers (can't use after a tablebreak-tr-title yet... grep "OneTrueTable") - #title - #tablebreak-tr-title - #hidden - hidden value from object - #fixed - display fixed value from object or here - #fixed-country - #fixed-state - 'value' => 'Y', #for checkbox, title, fixed, fixedhidden - 'disabled' => 0, - 'onchange' => 'javascript_function', - 'm2name_table' => 'table_name', #only tested w/ - # selectlayers so far - # might work w/select - # dunno others - 'm2name_namecol' => 'name_column', # - 'm2name_label' => 'Label', # - 'm2name_new_default' => \@table_name_objects, #default - #m2name - #objects for - #new records - 'm2name_error_callback' => sub { my($cgi, $object) = @_; }, - 'm2name_remove_warnings' => \%warnings, #hashref of warning - #messages for - #m2name removal - 'm2name_new_js' => 'function_name', #javascript function - #called on spawned rows - #(one arg: new_element) - 'm2name_remove_js' => 'function_name', #js function called - #when a row is - #deleted - #(three args: - # value, text, - # 'no_match') - #layer_fields & layer_values_callback only for selectlayer - 'layer_fields' => [ - 'fieldname' => 'Label', - 'another_field' => { - label=>'Label', - type =>'text', #text, money - }, - ], - 'layer_values_callback' => - sub { - my( $cgi, $object ) = @_; - { 'layer' => { 'fieldname' => 'current_value', - 'fieldname2' => 'field2value', - ... - }, - 'layer2' => { 'l2fieldname' => 'l2value', - ... - }, - ... - }; - }, - }, - ] - - 'menubar' => '', #menubar arrayref - - #agent virtualization - 'agent_virt' => 1, - 'agent_null_right' => 'Access Right Name', - - #run when re-displaying with an error - 'error_callback' => sub { my( $cgi, $object, $fields_listref ) = @_; }, - - #run when editing - 'edit_callback' => sub { my( $cgi, $object, $fields_listref ) = @_; }, - - # returns a hashref for the new object - 'new_hashref_callback' - - #run when adding - 'new_callback' => sub { my( $cgi, $object, $fields_listref ) = @_; }, - - #XXX describe - 'field_callback' => sub { }, - - #string or coderef of additional HTML to add before - 'html_table_bottom' => '', - - 'viewall_dir' => '', #'search' or 'browse', defaults to 'search' - - 'html_bottom' => '', #string - 'html_bottom' => sub { - my $object = shift; - # ... - "html_string"; - }, - - # overrides default popurl(1)."process/$table.html" - 'post_url' => popurl(1).'process/something', - - #we're in a popup (no title/menu/searchboxes) - 'popup' => 1, - - ); - - - -<% include('/elements/header'. ( $opt{popup} ? '-popup' : '' ). '.html', - $title, - include( '/elements/menubar.html', @menubar ) - ) -%> - -<% include('/elements/error.html') %> - -% my $url = $opt{'post_url'} || popurl(1)."process/$table.html"; - -
- - - - - -<% ( $opt{labels} && exists $opt{labels}->{$pkey} ) - ? $opt{labels}->{$pkey} - : $pkey -%> - -#<% $object->$pkey() || "(NEW)" %> - -%# <% ntable("#cccccc",0) %> - - -% my $g_row = 0; -% foreach my $f ( map { ref($_) ? $_ : {'field'=>$_} } -% @$fields -% ) { -% -% &{ $opt{'field_callback'} }( $f ) -% if $opt{'field_callback'}; -% -% my $field = $f->{'field'}; -% my $type = $f->{'type'} ||= 'text'; -% -% my $label = ( $opt{labels} && exists $opt{labels}->{$field} ) -% ? $opt{labels}->{$field} -% : $field; -% -% my $onchange = $f->{'onchange'}; -% -% my $layer_values = {}; -% if ( $f->{'layer_values_callback'} && ! $f->{'m2name_table'} ) { -% $layer_values = &{ $f->{'layer_values_callback'} }( $cgi, $object ); -% } -% warn "layer values: ". Dumper($layer_values) -% if $opt{'debug'}; -% -% my %include_common = ( -% -% #text and derivitives -% 'size' => $f->{'size'}, -% -% #checkbox, title, fixed, fixedhidden -% #& deprecated weird value hashref used only by reason.html -% 'value' => $f->{'value'}, -% -% #select(-*) -% 'options' => $f->{'options'}, -% 'labels' => $f->{'labels'}, -% 'multiple' => $f->{'multiple'}, -% 'disable_empty' => $f->{'disable_empty'}, -% #select-reason -% 'reason_class' => $f->{'reason_class'}, -% -% #selectlayers -% 'layer_fields' => $f->{'layer_fields'}, -% 'layer_values' => $layer_values, -% 'html_between' => $f->{'html_between'}, -% ); -% -% my $layer_prefix_on = ''; -% -% my $include_sub = sub { -% my %opt = @_; -% -% my $fieldnum = delete $opt{'fieldnum'}; -% -% my $include = $type; -% $include = "input-$include" if $include =~ /^(text|money|percentage)$/; -% $include = "tr-$include" unless $include =~ /^(hidden|tablebreak)/; -% -% $include_common{'layer_prefix'} = "$field$fieldnum." -% if $layer_prefix_on; -% -% my @include = -% ( "/elements/$include.html", -% 'field' => "$field$fieldnum", -% 'id' => "$field$fieldnum", #separate? -% 'label_id' => $field."_label$fieldnum", #don't want field0_label0... -% %include_common, -% %opt, -% ); -% @include; -% }; -% -% $g_row++; -% $g_row++ if $type eq 'title'; -% -% my $fieldnum = ''; -% my $curr_value = ''; -% if ( $f->{'m2name_table'} ) { #XXX test this for all types of fields -% my $table = $f->{'m2name_table'}; -% my $col = $f->{'m2name_namecol'}; -% $fieldnum = 0; -% $layer_prefix_on = 1; -% #print out the fields for the existing m2names -% my @existing = (); -% if ( $mode eq 'error' ) { -% @existing = &{ $f->{'m2name_error_callback'} }( $cgi, $object ); -% } elsif ( $object->$pkey() ) { # $mode eq 'edit' -% @existing = $object->$table(); -% } elsif ( $f->{'m2name_new_default'} ) { # && $mode eq 'new' -% @existing = @{ $f->{'m2name_new_default'} }; -% } -% foreach my $name_obj ( @existing ) { -% -% my $ex_label = ' '. ($f->{'m2name_label'} || $field ). ' '; -% -% if ( $f->{'layer_values_callback'} ) { -% my %switches = ( 'mode' => $mode ); -% $layer_values = -% &{ $f->{'layer_values_callback'} }( $cgi, $name_obj, \%switches ); -% } -% warn "layer values: ". Dumper($layer_values) -% if $opt{'debug'}; -% -% my @existing = &{ $include_sub }( -% 'label' => $ex_label, -% 'fieldnum' => $fieldnum, -% 'curr_value' => $name_obj->$col(), -% 'onchange' => $onchange, -% 'layer_values' => $layer_values, -% 'cell_style' => ( $fieldnum ? 'border-top:1px solid black' : '' ), -% ); - - <% include( @existing ) %> - -% $fieldnum++; -% $g_row++; -% } -% #$field .= $fieldnum; -% $onchange .= "\nspawn_$field(what);"; -% } else { -% $curr_value = $object->$field(); -% } -% -% my @include = &{ $include_sub }( -% 'label' => $label, -% 'fieldnum' => $fieldnum, -% 'curr_value' => $curr_value, -% 'object' => $object, -% 'onchange' => $onchange, -% 'cell_style' => ( $fieldnum ? 'border-top:1px solid black' : '' ), -% ); - - <% include( @include ) %> - -% if ( $f->{'m2name_table'} ) { - - - -% } - -% } - -<% ref( $opt{'html_table_bottom'} ) - ? &{ $opt{'html_table_bottom'} }( $object ) - : $opt{'html_table_bottom'} -%> - -
- -<% ref( $opt{'html_bottom'} ) - ? &{ $opt{'html_bottom'} }( $object ) - : $opt{'html_bottom'} -%> - -
- -"> - -
- -<% include("/elements/footer.html") %> -<%init> - -my(%opt) = @_; - -my $curuser = $FS::CurrentUser::CurrentUser; - -#false laziness w/process.html -my $table = $opt{'table'}; -my $class = "FS::$table"; -my $pkey = dbdef->table($table)->primary_key; #? $opt{'primary_key'} || -my $fields = $opt{'fields'} - #|| [ grep { $_ ne $pkey } dbdef->table($table)->columns ]; - || [ grep { $_ ne $pkey } fields($table) ]; -#my @actualfields = map { ref($_) ? $_->{'field'} : $_ } @$fields; - -if ( $cgi->param('redirect') ) { - my $session = $cgi->param('redirect'); - my $pref = $curuser->option("redirect$session"); - die "unknown redirect session $session\n" unless length($pref); - $cgi = new CGI($pref); -} - -my $object; -my $mode; -if ( $cgi->param('error') ) { - - $mode = 'error'; - - - $object = $class->new( { - map { $_ => scalar($cgi->param($_)) } fields($table) - }); - - &{$opt{'error_callback'}}($cgi, $object, $fields) - if $opt{'error_callback'}; - -} elsif ( $cgi->keywords || $cgi->param($pkey) ) { #editing - - $mode = 'edit'; - - my $value; - if ( $cgi->param($pkey) ) { - $value = $cgi->param($pkey) - } else { - my( $query ) = $cgi->keywords; - $value = $query; - } - $value =~ /^(\d+)$/ or die "unparsable $pkey"; - $object = qsearchs({ - 'table' => $table, - 'hashref' => { $pkey => $1 }, - 'extra_sql' => ( $opt{'agent_virt'} - ? ' AND '. $curuser->agentnums_sql( - 'null_right' => $opt{'agent_null_right'} - ) - : '' - ), - }); - warn "$table $pkey => $1" - if $opt{'debug'}; - - &{$opt{'edit_callback'}}($cgi, $object, $fields) - if $opt{'edit_callback'}; - -} else { #adding - - $mode = 'new'; - - my $hashref = $opt{'new_hashref_callback'} - ? &{$opt{'new_hashref_callback'}} - : {}; - - $object = $class->new( $hashref ); - - &{$opt{'new_callback'}}($cgi, $object, $fields) - if $opt{'new_callback'}; - -} - -my $action = $object->$pkey() ? 'Edit' : 'Add'; - -my $title = "$action $opt{'name'}"; - -my $viewall_url = $p . ( $opt{'viewall_dir'} || 'search' ) . "/$table.html"; -$viewall_url = $opt{'viewall_url'} if $opt{'viewall_url'}; - -my @menubar = (); -if ( $opt{'menubar'} ) { - @menubar = @{ $opt{'menubar'} }; -} else { - @menubar = ( - #eventually use Lingua::bs to pluralize - "View all $opt{'name'}s" => $viewall_url, - ); -} - - diff --git a/httemplate/edit/elements/svc_Common.html b/httemplate/edit/elements/svc_Common.html deleted file mode 100644 index 72abcba1f..000000000 --- a/httemplate/edit/elements/svc_Common.html +++ /dev/null @@ -1,99 +0,0 @@ -% -% my %opt = @_; -% -% #my( $svcnum, $pkgnum, $svcpart, $part_svc ); -% my( $pkgnum, $svcpart, $part_svc ); -% -% #get & untaint pkgnum & svcpart -% if ( ! $cgi->param('error') -% && $cgi->param('pkgnum') && $cgi->param('svcpart') -% ) -% { -% $cgi->param('pkgnum') =~ /^(\d+)$/ or die 'unparsable pkgnum'; -% $pkgnum = $1; -% $cgi->param('svcpart') =~ /^(\d+)$/ or die 'unparsable svcpart'; -% $svcpart = $1; -% $cgi->delete_all(); #so edit.html treats this correctly as new?? -% } -% -<% include( 'edit.html', - - 'menubar' => [], - - 'error_callback' => sub { - my( $cgi, $svc_x ) = @_; - #$svcnum = $svc_x->svcnum; - $pkgnum = $cgi->param('pkgnum'); - $svcpart = $cgi->param('svcpart'); - - $part_svc = qsearchs( 'part_svc', { svcpart=>$svcpart }); - die "No part_svc entry!" unless $part_svc; - }, - - 'edit_callback' => sub { - my( $cgi, $svc_x ) = @_; - #$svcnum = $svc_x->svcnum; - my $cust_svc = $svc_x->cust_svc - or die "Unknown (cust_svc) svcnum!"; - - $pkgnum = $cust_svc->pkgnum; - $svcpart = $cust_svc->svcpart; - - $part_svc = qsearchs ('part_svc', { svcpart=>$svcpart }); - die "No part_svc entry!" unless $part_svc; - }, - - 'new_hash_callback' => sub { - #my( $cgi, $svc_x ) = @_; - - { svcpart => $svcpart }; - - }, - - 'new_callback' => sub { - my( $cgi, $svc_x ) = @_;; - - $part_svc = qsearchs( 'part_svc', { svcpart=>$svcpart }); - die "No part_svc entry!" unless $part_svc; - - #$svcnum=''; - - $svc_x->set_default_and_fixed; - - }, - - 'field_callback' => sub { - my $f = shift; - my $columndef = $part_svc->part_svc_column($f->{'field'}); - my $flag = $columndef->columnflag; - if ( $flag eq 'F' ) { - $f->{'type'} = 'fixed'; - $f->{'value'} = $columndef->columnvalue; - } - }, - - 'html_table_bottom' => sub { - my $svc_x = shift; - my $html = ''; - foreach my $field ($svc_x->virtual_fields) { - if ($part_svc->part_svc_column($field)->columnflag ne 'F'){ - # If the flag is X, it won't even show up - # in $svc_acct->virtual_fields. - $html .= - $svc_x->pvf($field)->widget( 'HTML', - 'edit', - $svc_x->getfield($field) - ); - } - } - $html; - }, - - 'html_bottom' => sub { - qq!!. - qq!!; - }, - - %opt #pass through/override params - ) -%> -- cgit v1.2.1