+ Export |
+ <% $widget->html %>
+
+<% include('/elements/footer.html') %>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
#if ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) {
# $cgi->param('clone', $1);
#} else {
# $cgi->param('clone', '');
#}
-#if ( $cgi->param('svcpart') && $cgi->param('svcpart') =~ /^(\d+)$/ ) {
-# $cgi->param('svcpart', $1);
-#} else {
-# $cgi->param('svcpart', '');
-#}
my($query) = $cgi->keywords;
my $action = '';
my $part_export = '';
-my $options = {};
if ( $cgi->param('error') ) {
$part_export = new FS::part_export ( {
map { $_, scalar($cgi->param($_)) } fields('part_export')
} );
-}
-
-warn "***$query***";
-if ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) {
- $action = 'Add';
- my $old_part_export = qsearchs('part_export', { 'exportnum' => $1 } );
- unless ( $part_export ) {
- ($part_export, $options) = $old_part_export->clone;
- }
-} elsif ( $cgi->param('new_with_svcpart')
- && $cgi->param('new_with_svcpart') =~ /^(\d+)$/ ) {
- $part_export ||= new FS::part_export ( { 'svcpart' => $1 } );
} elsif ( $query =~ /^(\d+)$/ ) {
- $part_export ||= qsearchs('part_export', { 'exportnum' => $1 } );
+ $part_export = qsearchs('part_export', { 'exportnum' => $1 } );
+} else {
+ $part_export = new FS::part_export;
}
$action ||= $part_export->exportnum ? 'Edit' : 'Add';
-my @types = qw(shell bsdshell textradius sqlradius cp);
+#my $exports = FS::part_export::export_info($svcdb);
+my $exports = FS::part_export::export_info();
-%>
-<%= header("$action Export", menubar(
- 'Main Menu' => popurl(2),
-), ' onLoad="visualize()"')
-%>
+tie my %layers, 'Tie::IxHash',
+ '' => '',
+ map { $_ => "$_ - ". $exports->{$_}{desc} }
+ sort { $a cmp $b }
+ keys %$exports;
+;
-<% if ( $cgi->param('error') ) { %>
-Error: <%= $cgi->param('error') %>
-<% } %>
+my $widget = new HTML::Widgets::SelectLayers(
+ 'selected_layer' => $part_export->exporttype,
+ 'options' => \%layers,
+ 'form_name' => 'dummy',
+ 'form_action' => 'process/part_export.cgi',
+ 'form_text' => [qw( exportnum exportname )],
+ 'html_between' => " |
\n",
+ 'layer_callback' => sub {
+ my $layer = shift;
+ # create 'config_element' to generate the whole layer with a Mason component
+ if ( my $include = $exports->{$layer}{config_element} ) {
+ # might need to adjust the scope of this at some point
+ return $m->scomp($include,
+ part_export => $part_export,
+ layer => $layer,
+ export_info => $exports->{$layer}
+ );
+ }
+ my $html = qq!