From: ivan Date: Tue, 16 Jun 2009 03:29:26 +0000 (+0000) Subject: basic customer view tabs, RT#5586 X-Git-Tag: root_of_svc_elec_features~1127 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=8588f3c0bfbcbeb58dd25a57b5ea375cec00279a basic customer view tabs, RT#5586 --- diff --git a/httemplate/elements/menubar.html b/httemplate/elements/menubar.html index ec6c13fea..4d2700cc5 100644 --- a/httemplate/elements/menubar.html +++ b/httemplate/elements/menubar.html @@ -1,10 +1,109 @@ -% -% my($item, $url, @html); -% while (@_) { -% ($item, $url) = splice(@_,0,2); -% next if $item =~ /^\s*Main\s+Menu\s*$/i; -% push @html, qq!$item!; -% } -% - -<% join(' | ', @html) %> +<%doc> + +Example: + + include( '/elements/menubar.html', + + #options hashref (optional) + { 'newstyle' => 1, #may become the default at some point + }, + + #menubar entries (required) + 'label' => $url, + 'label2' => $url2, + #etc. + + ); + + +%if ( $opt->{'newstyle'} ) { + +% #false laziness w/header.html... shouldn't these just go in freeside.css? + + + + + + + + + +
+    + + <% join(' ', @html ) %> + +    +
+ +%} else { + + <% join(' | ', @html) %> + +%} +<%init> + +my $opt = ref($_[0]) ? shift : {}; + +my $url_base = $opt->{'url_base'}; + +my @html; +while (@_) { + + my ($item, $url) = splice(@_,0,2); + next if $item =~ /^\s*Main\s+Menu\s*$/i; + + my $style = ''; + if ( $opt->{'newstyle'} ) { + + my $dclass = $item eq $opt->{'selected'} + ? 'fsblackbuttonselected' + : 'fsblackbutton'; + + $style = + qq( CLASS="$dclass" ). + qq( onMouseOver="this.className='fsblackbuttonselected'; return true;" ). + qq( onMouseOut="this.className='$dclass'; return true;" ); + } + + push @html, qq!$item!; + +} + + diff --git a/httemplate/pref/pref-process.html b/httemplate/pref/pref-process.html index 368d84f10..378164e7b 100644 --- a/httemplate/pref/pref-process.html +++ b/httemplate/pref/pref-process.html @@ -43,7 +43,7 @@ unless ( $error ) { # if ($access_user) { my %param = $access_user->options; #XXX autogen - my @paramlist = qw( menu_position + my @paramlist = qw( menu_position default_customer_view email_address vonage-fromnumber vonage-username vonage-password show_pkgnum show_db_profile save_db_profile diff --git a/httemplate/pref/pref.html b/httemplate/pref/pref.html index 1f4edf2cb..81800bf26 100644 --- a/httemplate/pref/pref.html +++ b/httemplate/pref/pref.html @@ -31,7 +31,7 @@ Interface <% ntable("#cccccc",2) %> - Menu location: + Menu location: > Left
> Top
@@ -39,6 +39,21 @@ Interface + + Default customer view: + + + + +
@@ -109,6 +124,21 @@ Vonage integration (see Click2Call <% include('/elements/footer.html') %> +<%once> + + #false laziness w/view/cust_main.cgi + + tie my %customer_views, 'Tie::IxHash', + 'Basics' => 'basics', + 'Notes' => 'notes', #notes and files? + 'Tickets' => 'tickets', + 'Packages' => 'packages', + 'Payment History' => 'payment_history', + #'Change History' => '', + 'Jumbo' => 'jumbo', + ; + + <%init> my $curuser = $FS::CurrentUser::CurrentUser; diff --git a/httemplate/view/cust_main.cgi b/httemplate/view/cust_main.cgi index 2231d4148..00856a021 100755 --- a/httemplate/view/cust_main.cgi +++ b/httemplate/view/cust_main.cgi @@ -1,8 +1,19 @@ -<% include("/elements/header.html","Customer View: ". $cust_main->name ) %> +<% include('/elements/header.html', { + 'title' => "Customer View: ". $cust_main->name, + 'nobr' => 1, + }) +%> +
-% if ( $curuser->access_right('Edit customer') ) { - Edit this customer | -% } +<% include('/elements/menubar.html', + { 'newstyle' => 1, + 'selected' => $viewname{$view}, + 'url_base' => $cgi->url. "?custnum=$custnum;show=", + }, + %views, + ) +%> +
<% include('/elements/init_overlib.html') %> @@ -13,6 +24,12 @@ function areyousure(href, message) { } +% if ( $view eq 'basics' || $view eq 'jumbo' ) { + +% if ( $curuser->access_right('Edit customer') ) { + Edit this customer | +% } + % if ( $curuser->access_right('Cancel customer') % && $cust_main->ncancelled_pkgs % ) { @@ -74,10 +91,12 @@ function areyousure(href, message) { -% -%if ( $cust_main->comments =~ /[^\s\n\r]/ ) { -% +% } + +% if ( $view eq 'notes' || $view eq 'jumbo' ) { + +%if ( $cust_main->comments =~ /[^\s\n\r]/ ) {
Comments <% ntable("#cccccc") %><% ntable("#cccccc",2) %> @@ -87,12 +106,16 @@ Comments -% }

+% } + % my $notecount = scalar($cust_main->notes()); % if ( ! $conf->exists('cust_main-disable_notes') || $notecount) { -Notes
+% unless ( $view eq 'notes' && $cust_main->comments !~ /[^\s\n\r]/ ) { + Notes
+% } + % if ( $curuser->access_right('Add customer note') && % ! $conf->exists('cust_main-disable_notes') % ) { @@ -115,24 +138,47 @@ Comments % } +% } -% if ( $conf->config('ticket_system') ) { +% if ( $view eq 'jumbo' ) { +

+ Tickets
+% } -

+% if ( $view eq 'tickets' || $view eq 'jumbo' ) { + +% if ( $conf->config('ticket_system') ) { <% include('cust_main/tickets.html', $cust_main ) %> % } +

+% } -

+% if ( $view eq 'jumbo' ) { #XXX enable me && $curuser->access_right('View customer packages') { + + Packages
+% } + +% if ( $view eq 'packages' || $view eq 'jumbo' ) { % #XXX enable me# if ( $curuser->access_right('View customer packages') { <% include('cust_main/packages.html', $cust_main ) %> % #} +% } + +% if ( $view eq 'jumbo' ) { +

+ Payment History
+% } + +% if ( $view eq 'payment_history' || $view eq 'jumbo' ) { + % if ( $conf->config('payby-default') ne 'HIDE' ) { <% include('cust_main/payment_history.html', $cust_main ) %> % } +% } <% include('/elements/footer.html') %> <%init> @@ -144,10 +190,16 @@ die "access denied" my $conf = new FS::Conf; -die "No customer specified (bad URL)!" unless $cgi->keywords; -my($query) = $cgi->keywords; # needs parens with my, ->keywords returns array -$query =~ /^(\d+)$/; -my $custnum = $1; +my $custnum; +if ( $cgi->param('custnum') =~ /^(\d+)$/ ) { + $custnum = $1; +} else { + die "No customer specified (bad URL)!" unless $cgi->keywords; + my($query) = $cgi->keywords; # needs parens with my, ->keywords returns array + $query =~ /^(\d+)$/; + $custnum = $1; +} + my $cust_main = qsearchs( { 'table' => 'cust_main', 'hashref' => { 'custnum' => $custnum }, @@ -155,4 +207,24 @@ my $cust_main = qsearchs( { }); die "Customer not found!" unless $cust_main; +#false laziness w/pref/pref.html +tie my %views, 'Tie::IxHash', + 'Basics' => 'basics', + 'Notes' => 'notes', #notes and files? +; +$views{'Tickets'} = 'tickets' + if $conf->config('ticket_system'); +$views{'Packages'} = 'packages'; +$views{'Payment History'} = 'payment_history' + unless $conf->config('payby-default' eq 'HIDE'); +#$views{'Change History'} = ''; +$views{'Jumbo'} = 'jumbo'; + +my %viewname = reverse %views; + + +my $view = $cgi->param('show') + || $curuser->option('default_customer_view') + || 'jumbo'; #'Basics' in 1.9.1? + diff --git a/httemplate/view/cust_main/packages.html b/httemplate/view/cust_main/packages.html index 0c0526d42..428794b7d 100755 --- a/httemplate/view/cust_main/packages.html +++ b/httemplate/view/cust_main/packages.html @@ -1,5 +1,3 @@ -Packages
- % my $s = 0; % if ( $curuser->access_right('Order customer package') ) { <% $s++ ? ' | ' : '' %> diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html index 335ce2485..f2abe0eac 100644 --- a/httemplate/view/cust_main/payment_history.html +++ b/httemplate/view/cust_main/payment_history.html @@ -1,5 +1,3 @@ -

Payment History
- %# payment links % my $s = 0; diff --git a/httemplate/view/cust_main/tickets.html b/httemplate/view/cust_main/tickets.html index b5d581d50..167849c76 100644 --- a/httemplate/view/cust_main/tickets.html +++ b/httemplate/view/cust_main/tickets.html @@ -1,6 +1,3 @@ -Tickets -
- (View <% $openlabel %> tickets for this customer) (View resolved tickets for this customer)