merging RT 4.0.6
[freeside.git] / httemplate / elements / menu.html
index 06f7d59..5a17d6d 100644 (file)
@@ -110,8 +110,7 @@ $report_customers{'List customers'} = [ \%report_customers_lists, 'List customer
 $report_customers{'Zip code distribution'}     = [ $fsurl. 'search/report_cust_main-zip.html', 'Zip codes by number of customers' ];
 $report_customers{'Customer signup report'}       = [ $fsurl. 'graph/report_cust_signup.html', 'New customer signups by date' ],
 $report_customers{'Advanced customer reports'} = [ $fsurl. 'search/report_cust_main.html', 'by status, signup date, agent, etc.' ]
-  if    $curuser->access_right('List customers')
-     && $curuser->access_right('List packages');
+  if $curuser->access_right('Advanced customer search');
 
 tie my %report_invoices_open, 'Tie::IxHash',
   'All open invoices' => [ $fsurl.'search/cust_bill.html?OPEN_date', 'All invoices with an unpaid balance' ],
@@ -201,10 +200,10 @@ foreach my $svcdb ( FS::part_svc->svc_tables() ) {
       ];
   }
 
-  if ( $svcdb =~ /^svc_(acct|broadband|hardware)$/ ) {
     $report_svc{"Advanced $lcsname reports"} = 
-      [ $fsurl."search/report_$svcdb.html", '' ];
-  }
+        [ $fsurl."search/report_$svcdb.html", '' ]
+      if $svcdb =~ /^svc_(acct|broadband|hardware)$/
+      && $curuser->access_right("Services: $name: Advanced search");
 
   if ( $svcdb eq 'svc_phone' ) {
 
@@ -221,8 +220,8 @@ foreach my $svcdb ( FS::part_svc->svc_tables() ) {
 
   }
 
-  $report_services{$name} = [ \%report_svc, $longname ] if
-    $curuser->access_right("Services: $name");
+  $report_services{$name} = [ \%report_svc, $longname ]
+    if $curuser->access_right("Services: $name");
 
 }
 
@@ -276,10 +275,11 @@ tie my %report_ticketing_statistics, 'Tie::IxHash',
 ;
 
 tie my %report_ticketing, 'Tie::IxHash',
-  'Resolved by owner'       => [ $fsurl.'rt/Tools/Reports/ResolvedByOwner.html', '' ],
-  'Resolved in date range'  => [ $fsurl.'rt/Tools/Reports/ResolvedByDates.html', '' ],
-  'Created in date range'   => [ $fsurl.'rt/Tools/Reports/CreatedByDates.html', '' ],
-  'separator'               => '',
+# fix TimeToResolve extension?  or redo in a more modern way?
+#  'Resolved by owner'       => [ $fsurl.'rt/Tools/Reports/ResolvedByOwner.html', '' ],
+#  'Resolved in date range'  => [ $fsurl.'rt/Tools/Reports/ResolvedByDates.html', '' ],
+#  'Created in date range'   => [ $fsurl.'rt/Tools/Reports/CreatedByDates.html', '' ],
+#  'separator'               => '',
   'Statistics'              => [ \%report_ticketing_statistics, '' ],
   'separator2'              => '',
   'Advanced ticket reports' => [ $fsurl.'rt/Search/Build.html', 'List tickets by any criteria' ],
@@ -391,10 +391,18 @@ tie my %tools_exporting, 'Tie::IxHash',
   'Download database dump' => [ $fsurl. 'misc/dump.cgi', '' ],
 ;
 
+tie my %tools_ticketing_articles, 'Tie::IxHash',
+  'Overview' => [ $fsurl.'rt/Articles/index.html', '' ],
+  'Search'   => [ $fsurl.'rt/Articles/Article/Search.html', '' ],
+  'Topics'   => [ $fsurl.'rt/Articles/Topics.html', '' ],
+;
+
 tie my %tools_ticketing, 'Tie::IxHash',
-  'Offline'      => [ $fsurl.'rt/Tools/Offline.html', '' ],
+  'Articles'     => [ \%tools_ticketing_articles, '' ],
   'My Day'       => [ $fsurl.'rt/Tools/MyDay.html', '' ],
-  'My Approvals' => [ $fsurl.'rt/Approvals/', '' ],
+  'My Reminders' => [ $fsurl.'rt/Tools/MyReminders.html', '' ],
+  'Offline'      => [ $fsurl.'rt/Tools/Offline.html', '' ],
+  'Approval'     => [ $fsurl.'rt/Approvals/', '' ],
 ;
 $tools_ticketing{'Cron Tool'} = [ $fsurl.'rt/Developer/CronTool/', '' ]
   if $conf->exists('rt-crontool');
@@ -532,7 +540,7 @@ $config_billing{'Billing events'} = [ $fsurl.'browse/part_event.html', 'Billing
     || $curuser->access_right('Edit global billing events');
 if ( $curuser->access_right('Configuration') ) {
   #$config_billing{'Invoice events'}         = [ $fsurl.'browse/part_bill_event.cgi', 'Deprecated, old-style actions for overdue invoices' ];
-#this doesn't work right#  $config_billing{'Invoice templates'}      = [ $fsurl.'browse/invoice_template.html', 'Edit templates for HTML, plaintext and typeset invoices' ];
+  $config_billing{'Invoice templates'}      = [ $fsurl.'browse/invoice_template.html', 'Edit templates for HTML, plaintext and typeset invoices' ];
   $config_billing{'Prepaid cards'}          = [ $fsurl.'search/prepay_credit.html', 'View outstanding cards, generate new cards' ];
   $config_billing{'Call rates and regions'} = [ \%config_billing_rates, 'Manage rate plans, regions and prefixes for VoIP and call billing' ];
 
@@ -550,12 +558,44 @@ if ( $curuser->access_right('Configuration') ) {
   $config_billing{'Credit reason types'}  = [ $fsurl.'browse/reason_type.html?class=R', 'Credit reason types define groups of reasons.' ];
 }
 
+#XXX also to be unified
+tie my %config_ticketing_groups, 'Tie::IxHash',
+  'Select' => [ $fsurl.'rt/Admin/Groups', '' ],
+  'Create' => [ $fsurl.'rt/Admin/Groups/Modify.html?Create=1', '' ],
+;
+
+tie my %config_ticketing_queues, 'Tie::IxHash',
+  'Select' => [ $fsurl.'rt/Admin/Queues', '' ],
+  'Create' => [ $fsurl.'rt/Admin/Queues/Modify.html?Create=1', '' ],
+;
+
+tie my %config_ticketing_customfields, 'Tie::IxHash',
+  'Select' => [ $fsurl.'rt/Admin/CustomFields', '' ],
+  'Create' => [ $fsurl.'rt/Admin/CustomFields/Modify.html?Create=1', '' ],
+;
+
+tie my %config_ticketing_articles_classes, 'Tie::IxHash',
+  'Select' => [ $fsurl.'rt/Admin/Articles/Classes/', '' ],
+  'Create' => [ $fsurl.'rt/Admin/Articles/Classes/Modify.html?Create=1', '' ],
+;
+
+tie my %config_ticketing_articles_customfields, 'Tie::IxHash',
+  'Select' => [ $fsurl.'rt/Admin/CustomFields/index.html?type=RT%3A%3AClass-RT%3A%3AArticle', '' ],
+  'Create' => [ $fsurl.'rt/Admin/CustomFields/Modify.html?Create=1&LookupType=RT%3A%3AClass-RT%3A%3AArticle', '' ],
+;
+
+tie my %config_ticketing_articles, 'Tie::IxHash',
+  'Classes'       => [ \%config_ticketing_articles_classes, '' ],
+  'Custom Fields' => [ \%config_ticketing_articles_customfields, '' ],
+;
+
 tie my %config_ticketing, 'Tie::IxHash',
-  'Ticketing Users'      => [ $fsurl.'rt/Admin/Users', 'View/Edit ticketing users' ], #XXX to be unified
-  'Ticketing Groups'     => [ $fsurl.'rt/Admin/Groups', 'View/Edit ticketing groups and group membership' ], #XXX to be unified
-  'Ticketing Queues'     => [ $fsurl.'rt/Admin/Queues', 'View/Edit ticketing queues and queue-specific properties' ], 
-  'Ticket Custom Fields' => [ $fsurl.'rt/Admin/CustomFields', 'View/Edit ticketing custom fields' ], 
-  'Ticketing Global'     => [ $fsurl.'rt/Admin/Global', 'View/Edit ticketing configuration applicable to all queues' ], 
+  'Ticketing Users'      => [ $fsurl.'rt/Admin/Users', 'Edit ticketing users' ], #XXX to be unified
+  'Ticketing Groups'     => [ \%config_ticketing_groups, 'View/Edit ticketing groups and group membership' ], #XXX to be unified
+  'Ticketing Queues'     => [ \%config_ticketing_queues, 'View/Edit ticketing queues and queue-specific properties' ], 
+  'Ticket Custom Fields' => [ \%config_ticketing_customfields, 'View/Edit ticketing custom fields' ], 
+  'Ticketing Global'     => [ $fsurl.'rt/Admin/Global', 'View/Edit ticketing configuration applicable to all queues' ], #XXX the individual items
+  'Ticketing Articles'   => [ \%config_ticketing_articles, '' ],
   #"System Configuraiton"?  useless, just makes people report errors about missing Module::Versions::Report #'Ticketing Tools'     => [ $fsurl.'rt/Admin/Tools', '' ], 
 ;
 
@@ -634,18 +674,18 @@ my $doc_link = $conf->config('support-key')
 eval "use RT;"
   if $conf->config('ticket_system') eq 'RT_Internal';
 
-tie my %help_menu, 'Tie::IxHash', 'Billing documentation' => [ $doc_link, 'Freeside documentation' ];
-$help_menu{'Ticketing documentation'} = [ 'http://wiki.bestpractical.com/', 'Request Tracker Wiki' ]
-  if $conf->config('ticket_system') eq 'RT_Internal';
-$help_menu{'Networking monitoring documentation'} = [ 'http://torrus.org/userguide.pod.html', 'Torrus User Guide' ]
-  if $conf->config('network_monitoring_system') eq 'Torrus_Internal';
-$help_menu{'separator'} = '';
-
+tie my %help_menu, 'Tie::IxHash';
 my $agentnum = $conf->config('brand-agent');
 if ( $agentnum ) {
   my $company_name = $conf->config('company_name', $agentnum);
   $help_menu{"About $company_name"} = [ "javascript:about_freeside()", '' ];
 } else {
+  $help_menu{'Billing documentation'} = [ $doc_link, 'Freeside documentation' ];
+  $help_menu{'Ticketing documentation'} = [ 'http://wiki.bestpractical.com/', 'Request Tracker Wiki' ]
+    if $conf->config('ticket_system') eq 'RT_Internal';
+  $help_menu{'Networking monitoring documentation'} = [ 'http://torrus.org/userguide.pod.html', 'Torrus User Guide' ]
+    if $conf->config('network_monitoring_system') eq 'Torrus_Internal';
+  $help_menu{'separator'} = '';
   $help_menu{"About Freeside v$FS::VERSION"} = [ "javascript:about_freeside()", '' ];
   $help_menu{"About RT v$RT::VERSION"} = [ 'http://www.bestpractical.com/rt', 'Request Tracker Homepage' ]
     if $conf->config('ticket_system') eq 'RT_Internal';