& /edit/elements/edit.html,
'post_url' => $fsurl.'edit/process/msg_template.html',
'name_singular' => 'message interface',
'table' => 'msg_template',
'viewall_dir' => 'browse',
'agent_virt' => 1,
'agent_null' => 1,
'agent_null_right' => [ 'View global templates', 'Edit global templates' ],
'fields' => [], # callback takes care of this
'new_callback' => $edit_callback,
'edit_callback' => $edit_callback,
'error_callback' => $edit_callback,
'labels' => \%labels,
'no_submit' => $no_submit,
&>
<%init>
my $curuser = $FS::CurrentUser::CurrentUser;
die "access denied"
unless $curuser->access_right([ 'View templates', 'View global templates',
'Edit templates', 'Edit global templates',
]);
my %labels = (
'msgnum' => 'Template', # it's still a template number
'agentnum' => 'Agent',
'msgname' => 'Interface name',
'prepare_url' => 'Prepare URL',
'send_url' => 'Send URL',
'username' => 'HTTP username',
'password' => 'HTTP password',
'content' => 'Additional POST content',
);
my $no_submit = 0;
my $edit_callback = sub {
my ($cgi, $msg_template, $fields, $opt) = @_;
if ( $curuser->access_right('Edit global templates')
|| ( $curuser->access_right('Edit templates')
&& $msg_template
&& $msg_template->agentnum
&& $curuser->agentnums_href->{$msg_template->agentnum}
)
) {
@$fields = (
{ field => 'msgclass',
type => 'hidden',
value => 'http',
},
{ field => 'agentnum',
type => 'select-agent',
},
{ field => 'msgname', size=>60, required => 1 },
{ field => 'prepare_url', size=>60, required => 1 },
{ field => 'send_url', size=>60, required => 1 },
{ field => 'username', size=>20 },
{ field => 'password', size=>20 },
{ field => 'content', type => 'textarea' },
);
} else { #readonly
$no_submit = 1;
@$fields = (
{ field => 'agentnum',
type => 'select-agent',
fixed => 1,
},
{ field => 'msgname', type => 'fixed', },
{ field => 'prepare_url', type => 'fixed', },
{ field => 'send_url', type => 'fixed', },
{ field => 'username', type => 'fixed', },
{ field => 'password', type => 'fixed', },
{ field => 'content', type => 'fixed' },
);
}
};
%init>