<& elements/edit.html, 'name_singular' => 'Installer schedule', #$sched_item_class->classname. ' schedule', 'table' => 'sched_item', 'viewall_dir' => 'browse', 'no_pkey_display' => 1, 'labels' => { 'name' => 'Name', map { ( "sched_avail$_" => $dow[$_] ) } (0..6), }, 'fields' => [ { 'field' => 'name', 'type' => 'fixed', }, ( map dow_factory($_), (0..6) ), ], 'edit_callback' => $edit_callback, &> <%init> #XXX more specific AccessRight for scheduling die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); my @dow = qw( Sunday Monday Tuesday Wednesday Thursday Friday Saturday ); sub dow_factory { my $wday = shift; { 'field' => 'sched_avail'. $wday, 'type' => 'select-avail-time-from_to', 'prefix' => 'sched_avail'. $wday. '_', }; } my $edit_callback = sub { my( $cgi, $sched_item, $fields_listref, $opt_hashref ) = @_; foreach my $sched_avail ( $sched_item->sched_avail ) { if ( $sched_avail->override_date ) { #XXX handle } else { my $param = 'sched_avail'. $sched_avail->wday; $cgi->param($param, 'Y'); $cgi->param($param.'_stime', $sched_avail->stime); $cgi->param($param.'_etime', $sched_avail->etime); } } };