# (preferred, will be pluralized automatically)
'name' => #name for the record
# (deprecated, will be pluralized simplistically)
- 'table' =>
+ 'table' => #database table
#? 'primary_key' => #required when the dbdef doesn't know...???
'labels' => {
# overrides default popurl(1)."process/$table.html"
'post_url' => popurl(1).'process/something',
+ # optional link to delete this object; primary key will be appended
+ 'delete_url' => $p.'misc/delete-something.html?',
+
#we're in a popup (no title/menu/searchboxes)
'popup' => 1,
# display, no <FORM>, no hidden fields for table name or primary key, no
# display of primary key, no submit button, no html_foot, no footer)
'embed' => $object, #need to pass the object
+ 'tablenum' => 4, #need to specify a table number when using multiple
+ #embedded edits on a page (and m2 stuff)
+
+ #don't show the primary key label and value
+ 'no_pkey_display' => 1,
###
# HTML callbacks
'html_init' => '', #after the header/menubar
+ 'form_init' => '', #after html_init, error and the opening <FORM>, but
+ #before any other form contents
+
+ 'html_table_class' => '', #HTML <TABLE CLASS=
+
#string or coderef of additional HTML to add before </TABLE>
'html_table_bottom' => '',
&>
</%doc>
-
+%
% unless ( $opt{embed} ) {
%
% my $title = $opt{action}. ' '. ( $opt{name} || $opt{'name_singular'} );
% "View all $items" => $viewall_url,
% );
% }
-
- <% include('/elements/header'. ( $opt{popup} ? '-popup' : '' ). '.html',
+%
+<% include('/elements/header'. ( $opt{popup} ? '-popup' : '' ). '.html',
$title,
include( '/elements/menubar.html', @menubar ),
$opt{'body_etc'},
)
- %>
+%>
<% defined($opt{'html_init'})
? ( ref($opt{'html_init'})
<INPUT TYPE="hidden" NAME="svcdb" VALUE="<% $table %>">
<INPUT TYPE="hidden" NAME="<% $pkey %>" VALUE="<% $clone ? '' : $object->$pkey() %>">
- <FONT SIZE="+1"><B>
- <% ( $opt{labels} && exists $opt{labels}->{$pkey} )
- ? $opt{labels}->{$pkey}
- : $pkey
+ <% defined($opt{'form_init'})
+ ? ( ref($opt{'form_init'})
+ ? &{$opt{'form_init'}}()
+ : $opt{'form_init'}
+ )
+ : ''
%>
- </B></FONT>
- #<% ( !$clone && $object->$pkey() ) || "(NEW)" %>
+
+% unless ( $opt{'no_pkey_display'} ) {
+
+ <FONT SIZE="+1"><B>
+ <% ( $opt{labels} && exists $opt{labels}->{$pkey} )
+ ? $opt{labels}->{$pkey}
+ : $pkey
+ %>
+ </B></FONT>
+ #<% ( !$clone && $object->$pkey() ) || "(NEW)" %>
+
+% }
% }
-% my $tablenum = 0;
-<TABLE ID="TableNumber<% $tablenum++ %>" BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0>
+% my $tablenum = $opt{'tablenum'} || 0;
+<TABLE ID="TableNumber<% $tablenum++ %>"
+ <% $opt{html_table_class} ? 'CLASS="'. $opt{html_table_class}. '"'
+ : 'BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0'
+ %>
+>
% my $g_row = 0;
% my @g_row_stack = ();
% #text and derivitives
% 'size' => $f->{'size'},
% 'maxlength' => $f->{'maxlength'},
+% 'prefix' => $f->{'prefix'},
% 'postfix' => $f->{'postfix'},
%
% #textarea
% 'disable_empty' => $f->{'disable_empty'},
% #select-reason
% 'reason_class' => $f->{'reason_class'},
+% #select-agent
+% 'viewall_right' => $f->{'viewall_right'},
%
% #selectlayers
% 'layer_fields' => $f->{'layer_fields'},
% 'layer_values' => $layer_values,
% 'html_between' => $f->{'html_between'},
%
-% #umm. for select-agent_types at least
+% #umm. for select-agent_type at least
% 'disabled' => $f->{'disabled'},
% 'fixed' => $f->{'fixed'},
+% 'label_callback'=> $f->{'label_callback'},
+% 'element_etc' => $f->{'element_etc'},
+%
+% #for select-ticketing_queueid at least
+% 'post_options' => $f->{'post_options'},
%
% #any?
% 'colspan' => $f->{'colspan'},
% 'required' => $f->{'required'},
+%
+% #contact
+% 'custnum' => $f->{'custnum'},
+% 'prospectnum' => $f->{'prospectnum'},
% );
%
% $include_common{$_} = $f->{$_} foreach grep exists($f->{$_}),
% qw( js_only html_only select_only layers_only cell_style ),#selectlayers,?
% qw( empty_label ), # select-*
-% qw( value_col compare_sub ), # select-table
+% qw( value_col compare_sub order_by addl_from ), # select-table
% qw( table name_col ), #(select,checkboxes)-table
% qw( target_table link_table ), #checkboxes-table
% qw( hashref agent_virt agent_null agent_null_right ),#*-table
% qw( formatted_value ), #fixed
% qw( country ), #select-country
-% qw( width height ), #htmlarea
+% qw( width height config ), #htmlarea
% qw( alt_format ), #select-cust_location
% qw( classnum ), # select-inventory_item
+% qw( aligned ), # columnstart
% ;
%
% #select-table
% 'value' => $opt{curr_value},
% 'label' => $label,
% 'noinit' => $f->{noinit},
+% 'required' => $f->{'required'},
% }
% );
% }
% if ( $f->{curr_value_callback} ) {
% $curr_value = &{ $f->{curr_value_callback} }( $cgi, $object, $field ),
% } else {
-% $curr_value = $object->$field();
+% $curr_value = $object->$field() if $field;
% }
% $curr_value = &{ $opt{'value_callback'} }( $f->{'field'}, $curr_value )
% if $opt{'value_callback'} && $mode ne 'error';
widget_cell.style.borderTop = "1px solid black";
widget_cell.style.paddingTop = "3px";
- widget_cell.colSpan = "<% $f->{'colspan'} || 1 %>"
+ widget_cell.colSpan = "<% $f->{'colspan'} || 1 %>";
widget_cell.innerHTML = newrow;
: "Add ". ($opt{'name'} || $opt{'name_singular'})
%>"
>
+% if ( $opt{'delete_url'} and $object->get($pkey) ) {
+% my $delete_msg = 'Delete this '.
+% ($opt{'name_singular'} || $opt{'name'});
+% my $delete_url = $opt{'delete_url'};
+% $delete_url .= '?' unless $delete_url =~ /\?/;
+% $delete_url .= $object->get($pkey);
+ <SCRIPT TYPE="text/javascript">
+ function confirm_delete() {
+ if(confirm(<% $delete_msg . '?' |js_string %>)) {
+ window.location.href = <% $delete_url |js_string %>;
+ }
+ }
+ </SCRIPT>
+ <INPUT TYPE = "button"
+ VALUE = "<% $delete_msg |h %>"
+ onclick = "confirm_delete()">
+% }
% }
</FORM>