# options example...
#
+ ###
+ ##req
+ ##
# 'table' =>
+ #
# #? 'primary_key' => #required when the dbdef doesn't know...???
# #? 'fields' => []
+ #
+ ###
+ ##opt
+ ###
+ # 'viewall_dir' => '', #'search' or 'browse', defaults to 'search'
+ # 'process_m2m' => { 'link_table' => 'link_table_name',
+ # 'target_table' => 'target_table_name',
+ # },
+ # 'process_m2name' => { 'link_table' => 'link_table_name',
+ # 'link_static' => { 'column' => 'value' },
+ # 'num_col' => 'column', #if column name is different in
+ # #link_table than source_table
+ # 'name_col' => 'name_column',
+ # 'names_list' => [ 'list', 'names' ],
+ # },
my(%opt) = @_;
if ( $pkeyvalue ) {
$error = $new->replace($old);
} else {
- warn $new;
$error = $new->insert;
- warn $error;
$pkeyvalue = $new->getfield($pkey);
}
+ if ( !$error && $opt{'process_m2m'} ) {
+ $error = $new->process_m2m( %{ $opt{'process_m2m'} },
+ 'params' => scalar($cgi->Vars),
+ );
+ }
+
+ if ( !$error && $opt{'process_m2name'} ) {
+ $error = $new->process_m2name( %{ $opt{'process_m2name'} },
+ 'params' => scalar($cgi->Vars),
+ );
+ }
+
if ( $error ) {
$cgi->param('error', $error);
print $cgi->redirect(popurl(2). "$table.html?". $cgi->query_string );
} else {
- print $cgi->redirect(popurl(3). "search/$table.html");
+ print $cgi->redirect( popurl(3).
+ ( $opt{'viewall_dir'} || 'search' ).
+ "/$table.html"
+ );
}
%>