summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/elements/menubar.html119
-rw-r--r--httemplate/pref/pref-process.html2
-rw-r--r--httemplate/pref/pref.html32
-rwxr-xr-xhttemplate/view/cust_main.cgi104
-rwxr-xr-xhttemplate/view/cust_main/packages.html2
-rw-r--r--httemplate/view/cust_main/payment_history.html2
-rw-r--r--httemplate/view/cust_main/tickets.html3
7 files changed, 229 insertions, 35 deletions
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!<A HREF="$url">$item</A>!;
-% }
-%
-
-<% 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.
+
+ );
+
+</%doc>
+%if ( $opt->{'newstyle'} ) {
+
+% #false laziness w/header.html... shouldn't these just go in freeside.css?
+
+ <style type="text/css">
+ a.fsblackbutton {
+ background-color:#333333;
+ color: #ffffff;
+ border:1px solid;
+ border-top-color:#cccccc;
+ border-left-color:#cccccc;
+ border-right-color:#aaaaaa;
+ border-bottom-color:#aaaaaa;
+ /*font-weight:bold;*/
+ /*padding-left:12px;
+ padding-right:12px;*/
+ padding-left:4px;
+ padding-right:4px;
+ text-decoration:none;
+ overflow:visible;
+ filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='#ff333333',EndColorStr='#ff666666')
+ }
+
+ a.fsblackbuttonselected {
+ background-color:#7e0079;
+ color: #ffffff;
+ border:1px solid;
+ border-top-color:#cccccc;
+ border-left-color:#cccccc;
+ border-right-color:#aaaaaa;
+ border-bottom-color:#aaaaaa;
+ /*font-weight:bold;*/
+ /*padding-left:12px;
+ padding-right:12px;*/
+ padding-left:4px;
+ padding-right:4px;
+ text-decoration:none;
+ overflow:visible;
+ filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='#ff330033',EndColorStr='#ff7e0079')
+ }
+ </style>
+
+ <TABLE BGCOLOR="#000000" BORDER=0 CELLSPACING=0 CELLPADDING=4>
+ <TR>
+ <TD STYLE="background-image:url(<%$fsurl%>images/gray-black-side.png); background-repeat:repeat-y;padding-left:0px">
+ &nbsp;&nbsp;
+ </TD>
+ <TD>
+ <% join(' ', @html ) %>
+ </TD>
+ <TD STYLE="background-image:url(<%$fsurl%>images/black-gray-side.png); background-repeat:repeat-y;padding-right:0px">
+ &nbsp;&nbsp;
+ </TD>
+ </TR>
+ </TABLE>
+
+%} 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!<A HREF="$url_base$url" $style>$item</A>!;
+
+}
+
+</%init>
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) %>
<TR>
- <TH>Menu location: </TH>
+ <TH ALIGN="right">Menu location: </TH>
<TD>
<INPUT TYPE="radio" NAME="menu_position" VALUE="left" onClick="document.images['menu_example'].src='../images/menu-left-example.png';" <% $menu_position eq 'left' ? ' CHECKED' : ''%>> Left<BR>
<INPUT TYPE="radio" NAME="menu_position" VALUE="top"onClick="document.images['menu_example'].src='../images/menu-top-example.png';" <% $menu_position eq 'top' ? ' CHECKED' : ''%>> Top <BR>
@@ -39,6 +39,21 @@ Interface
<TD><IMG NAME="menu_example" SRC="../images/menu-<% $menu_position %>-example.png"></TD>
</TR>
+ <TR>
+ <TH ALIGN="right">Default customer view: </TD>
+ <TD COLSPAN=2>
+ <SELECT NAME="default_customer_view">
+% foreach my $view ( keys %customer_views ) {
+% my $selected =
+% $customer_views{$view} eq $curuser->option('default_customer_view')
+% ? 'SELECTED'
+% : '';
+ <OPTION VALUE="<%$customer_views{$view}%>" <%$selected%>><%$view%></OPTION>
+% }
+ </SELECT>
+ </TD>
+ </TR>
+
</TABLE>
<BR>
@@ -109,6 +124,21 @@ Vonage integration (see <a href="https://secure.click2callu.com/">Click2Call</a>
<INPUT TYPE="submit" VALUE="Update preferences">
<% 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',
+ ;
+
+</%once>
<%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,
+ })
+%>
+<BR>
-% if ( $curuser->access_right('Edit customer') ) {
- <A HREF="<% $p %>edit/cust_main.cgi?<% $custnum %>">Edit this customer</A> |
-% }
+<% include('/elements/menubar.html',
+ { 'newstyle' => 1,
+ 'selected' => $viewname{$view},
+ 'url_base' => $cgi->url. "?custnum=$custnum;show=",
+ },
+ %views,
+ )
+%>
+<BR>
<% include('/elements/init_overlib.html') %>
@@ -13,6 +24,12 @@ function areyousure(href, message) {
}
</SCRIPT>
+% if ( $view eq 'basics' || $view eq 'jumbo' ) {
+
+% if ( $curuser->access_right('Edit customer') ) {
+ <A HREF="<% $p %>edit/cust_main.cgi?<% $custnum %>">Edit this customer</A> |
+% }
+
% if ( $curuser->access_right('Cancel customer')
% && $cust_main->ncancelled_pkgs
% ) {
@@ -74,10 +91,12 @@ function areyousure(href, message) {
</TD>
</TR>
</TABLE>
-%
-%if ( $cust_main->comments =~ /[^\s\n\r]/ ) {
-%
+% }
+
+% if ( $view eq 'notes' || $view eq 'jumbo' ) {
+
+%if ( $cust_main->comments =~ /[^\s\n\r]/ ) {
<BR>
Comments
<% ntable("#cccccc") %><TR><TD><% ntable("#cccccc",2) %>
@@ -87,12 +106,16 @@ Comments
</TD>
</TR>
</TABLE></TABLE>
-% }
<BR><BR>
+% }
+
% my $notecount = scalar($cust_main->notes());
% if ( ! $conf->exists('cust_main-disable_notes') || $notecount) {
-<A NAME="cust_main_note"><FONT SIZE="+2">Notes</FONT></A><BR>
+% unless ( $view eq 'notes' && $cust_main->comments !~ /[^\s\n\r]/ ) {
+ <A NAME="cust_main_note"><FONT SIZE="+2">Notes</FONT></A><BR>
+% }
+
% 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' ) {
+ <BR><BR>
+ <A NAME="tickets"><FONT SIZE="+2">Tickets</FONT></A><BR>
+% }
- <BR><BR>
+% if ( $view eq 'tickets' || $view eq 'jumbo' ) {
+
+% if ( $conf->config('ticket_system') ) {
<% include('cust_main/tickets.html', $cust_main ) %>
% }
+ <BR><BR>
+% }
-<BR><BR>
+% if ( $view eq 'jumbo' ) { #XXX enable me && $curuser->access_right('View customer packages') {
+
+ <A NAME="cust_pkg"><FONT SIZE="+2">Packages</FONT></A><BR>
+% }
+
+% 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' ) {
+ <BR><BR>
+ <A NAME="history"><FONT SIZE="+2">Payment History</FONT></A><BR>
+% }
+
+% 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?
+
</%init>
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 @@
-<A NAME="cust_pkg"><FONT SIZE="+2">Packages</FONT></A><BR>
-
% 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 @@
-<BR><BR><A NAME="history"><FONT SIZE="+2">Payment History</FONT></A><BR>
-
%# 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 @@
-<A NAME="tickets"><FONT SIZE="+2">Tickets</FONT></A>
-<BR>
-
(<A HREF="<% $open_link %>">View <% $openlabel %> tickets for this customer</A>)
(<A HREF="<% $res_link %>">View resolved tickets for this customer</A>)
<BR>