X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Fheader.html;h=98a8d7c5ef4c98b8d51219df3de184c99a97c5de;hp=1f567488539cf7c4c824af88814031fbfec0964d;hb=5376c66e2e5c1849763777f9d44ad013405c1d9e;hpb=f01e2ce0aa6c1925e6266d78797025ec68bfac07 diff --git a/httemplate/elements/header.html b/httemplate/elements/header.html index 1f5674885..98a8d7c5e 100644 --- a/httemplate/elements/header.html +++ b/httemplate/elements/header.html @@ -1,244 +1,228 @@ +<%doc> + +Example: + + <& /elements/header.html', + { + 'title' => 'Title', + 'menubar' => \@menubar, + 'etc' => '', #included in <BODY> tag, for things like onLoad= + 'head' => '', #included before closing </HEAD> tag + 'nobr' => 0, #1 for no <BR><BR> after the title + 'no_jquery' => #for use from RT, which loads its own + } + &> + + %#old-style + <& /elements/header.html, 'Title', $menubar, $etc, $head &> + +</%doc> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +%#<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +%# above is what RT declares, should we switch now? hopefully no glitches result +%# or just fuck it, XHTML died anyway, HTML 5 or bust? <HTML> <HEAD> <TITLE> - <% $title %> + <% encode_entities($title) || $title_noescape %> </TITLE> + <!-- per RT, to prevent IE compatibility mode --> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <!-- The X-UA-Compatible <meta> tag above must be very early in <head> --> <META HTTP-Equiv="Cache-Control" Content="no-cache"> <META HTTP-Equiv="Pragma" Content="no-cache"> <META HTTP-Equiv="Expires" Content="0"> +% if ( $mobile ) { + <META NAME="viewport" content="width=device-width height=device-height user-scalable=yes"> +% } <% include('menu.html', 'freeside_baseurl' => $fsurl, 'position' => $menu_position, - ) + 'nocss' => $nocss, + 'mobile' => $mobile, + ) |n %> - <SCRIPT TYPE="text/javascript"> - function clearhint_search_cust (what) { - if ( what.value == '(cust #, name, company or phone)' ) - what.value = ''; - } - - function clearhint_search_invoice (what) { - if ( what.value == '(inv #)' ) - what.value = ''; - } - - function clearhint_search_svc (what) { - if ( what.value == '(user, user@domain or domain)' ) - what.value = ''; - } +% unless ( $no_jquery ) { + <link rel="stylesheet" href="<% $fsurl %>elements/jquery-ui.min.css"> + <SCRIPT SRC="<% $fsurl %>elements/jquery.js"></SCRIPT> + <SCRIPT SRC="<% $fsurl %>elements/jquery-ui.min.js"></SCRIPT> +% } + <% include('init_overlib.html') |n %> + <% include('rs_init_object.html') |n %> - function clearhint_search_ticket (what) { - if ( what.value == '(ticket # or subject string)' ) - what.value = ''; - } - </SCRIPT> - - <% $head %> + <% $head |n %> </HEAD> - <BODY <% $menu_position eq 'left' ? qq( BACKGROUND="${fsurl}images/background-cheat.png" ) : ' BGCOLOR="#e8e8e8" ' %> <% $etc %> STYLE="margin-top:0; margin-bottom:0; margin-left:0; margin-right:0"> - <table width="100%" CELLPADDING=0 CELLSPACING=0 STYLE="padding-left:0; padding-right:4"> + <BODY BGCOLOR="#f8f8f8" <% $etc |n %> STYLE="margin-top:0; margin-bottom:0; margin-left:0px; margin-right:0px"> + <table width="100%" CELLPADDING=0 CELLSPACING=0 STYLE="padding-left:0px; padding-right:4px" CLASS="fshead"> <tr> - <td rowspan=2 BGCOLOR="#ffffff"><IMG BORDER=0 ALT="freeside" SRC="<%$fsurl%>images/small-logo.png"></td> - <td align=left rowspan=2 BGCOLOR="#ffffff"> <!-- valign="top" --> - <font size=6><% $conf->config('company_name') || 'ExampleCo' %></font> - </td> - <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b><% getotaker %> </b><br></FONT><FONT SIZE="-2"><a href="<%$fsurl%>pref/pref.html">Preferences</a> <BR></FONT> + <td BGCOLOR="#ffffff"><% $company_url ? qq(<A HREF="$company_url">) : '' |n %><IMG BORDER=0 ALT="freeside" HEIGHT="36" SRC="<%$fsurl%>view/REAL_logo.cgi"><% $company_url ? '</A>' : '' |n %></td> + <td align=left BGCOLOR="#ffffff"> <!-- valign="top" --> + <font size=6><% $company_name || 'ExampleCo' %></font> </td> - </tr> - <tr> - <td align=right valign=bottom BGCOLOR="#ffffff"> - - <table> - <tr> - <td align=right BGCOLOR="#ffffff"> - <FONT SIZE="-2"> - <A HREF="http://www.sisd.com/freeside">Freeside</A> v<% $FS::VERSION %><BR> - <A HREF="<% $conf->config('support-key') ? "http://www.sisd.com/mediawiki/index.php/Supported:Documentation" : "http://www.sisd.com/mediawiki/index.php/Freeside:1.7:Documentation" %>">Documentation</A><BR> - </FONT> - </td> -% if ( $conf->config('ticket_system') eq 'RT_Internal' ) { -% eval "use RT;"; - - <td bgcolor=#000000></td> - <td align=left> - <FONT SIZE="-2"> - <A HREF="http://www.bestpractical.com/rt">RT<A> v<% $RT::VERSION %><BR> - <A HREF="http://wiki.bestpractical.com/">Documentation</A><BR> - </FONT> - </td> -% } - - - </tr> - </table> - + <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b><% $FS::CurrentUser::CurrentUser->username |h %> </b> <FONT SIZE="-2"><a href="<%$fsurl%>loginout/logout.html">logout</a></FONT><br></FONT><FONT SIZE="-2"><a href="<%$fsurl%>pref/pref.html" STYLE="color: #000000">Preferences</a> +% if ( $conf->config("ticket_system") +% && FS::TicketSystem->access_right(\%session, 'ModifySelf') ) { + | <a href="<%$fsurl%>rt/Prefs/Other.html" STYLE="color: #000000">Ticketing preferences</a> +% } + <BR></FONT> </td> </tr> </table> -<style type="text/css"> -input.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; - overflow:visible; - filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='#ff333333',EndColorStr='#ff666666') -} - -input.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; - overflow:visible; - filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='#ff330033',EndColorStr='#ff7e0079') -} -</style> - <TABLE WIDTH="100%" CELLSPACING=0 CELLPADDING=0> - <TR> - <TD COLSPAN=5 WIDTH="100%" STYLE="padding:0"><IMG BORDER=0 ALT="" SRC="<%$fsurl%>images/black-gradient.png" HEIGHT="13" WIDTH="100%"></TD> - </TR> + +<link href="<%$fsurl%>elements/freeside-menu.css" type="text/css" rel="stylesheet"> % if ( $menu_position eq 'top' ) { - <TR> + <TR CLASS="fsmenubar"> + +% if ( $mobile ) { - <TD COLSPAN="5" WIDTH="100%" STYLE="padding:0"> + <TD STYLE="padding:1px 0px 0px 0px;border-top: 1px solid #7e0079;width:auto" BGCOLOR="#dddddd"> <SCRIPT TYPE="text/javascript"> - document.write(myBar); + document.write(myBar.toString()); </SCRIPT> </TD> + <TD STYLE="padding:1px 0px 0px 0px;border-top: 1px solid #7e0079;width:auto" BGCOLOR="#dddddd"> + <% include('searchbar-combined.html') |n %> + </TD> - </TR> +% } else { - <TR> - <TD COLSPAN="5" WIDTH="100%" HEIGHT="2px" STYLE="padding:0" BGCOLOR="#000000"> - </TD> - </TR> - - <TR> - <TD COLSPAN="5" WIDTH="100%" HEIGHT="4px" STYLE="padding:0" BGCOLOR="#000000"> + <TD COLSPAN="7" WIDTH="100%" STYLE="padding:1px 0px 0px 0px;border-top: 1px solid #7e0079" BGCOLOR="#dddddd"> + <SCRIPT TYPE="text/javascript"> + document.write(myBar); + </SCRIPT> </TD> - </TR> -% } + </TR> - <TR> + <TR CLASS="fssearchbar"> - <TD COLSPAN=1 BGCOLOR="#000000" ALIGN="right"> - <FORM ACTION="<%$fsurl%>edit/cust_main.cgi" METHOD="GET" STYLE="margin:0"> - <INPUT TYPE="submit" VALUE="New customer" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="vertical-align:bottom"> - </FORM> + <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px"> + <% include('searchbar-prospect.html') |n %> </TD> - <TD COLSPAN=1 BGCOLOR="#000000" ALIGN="right"> - <FORM ACTION="<%$fsurl%>search/cust_main.cgi" METHOD="GET" STYLE="margin:0"> - <INPUT NAME="search_cust" TYPE="text" VALUE="(cust #, name, company or phone)" SIZE="28" onFocus="clearhint_search_cust(this);" onClick="clearhint_search_cust(this);" STYLE="vertical-align:bottom;text-align:right"><BR> - <A NOTYET="<%$fsurl%>search/cust_main.html" STYLE="color: #000000; font-size: 70%">Advanced</A> - <INPUT TYPE="submit" VALUE="Search customers" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:70%"> - </FORM> + <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px"> + <% include('searchbar-cust_main.html') |n %> </TD> - <TD COLSPAN=1 BGCOLOR="#000000" ALIGN="right"> -% if ( $FS::CurrentUser::CurrentUser->access_right('View invoices') ) { - - <FORM ACTION="<%$fsurl%>search/cust_bill.html" METHOD="GET" STYLE="margin:0;display:inline"> - <INPUT NAME="invnum" TYPE="text" VALUE="(inv #)" SIZE="4" onFocus="clearhint_search_invoice(this);" onClick="clearhint_search_invoice(this);" STYLE="vertical-align:bottom;text-align:right;margin-bottom:1px"> -% if ( $FS::CurrentUser::CurrentUser->access_right('List invoices') ) { - - <A HREF="<%$fsurl%>search/report_cust_bill.html" STYLE="color: #ffffff; font-size: 70%">Advanced</A> -% } - - <BR> - <INPUT TYPE="submit" VALUE="Search invoices" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:70%"> - </FORM> -% } + <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="center"> + <% include('searchbar-address2.html') |n %> + </TD> + <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right"> + <% include('searchbar-cust_bill.html') |n %> </TD> - <TD COLSPAN=1 BGCOLOR="#000000" ALIGN="right"> - <FORM ACTION="<%$fsurl%>search/cust_svc.html" METHOD="GET" STYLE="margin:0"> - <INPUT NAME="search_svc" TYPE="text" VALUE="(user, user@domain or domain)" SIZE="26" onFocus="clearhint_search_svc(this);" onClick="clearhint_search_svc(this);" STYLE="vertical-align:bottom;text-align:right"><BR> - <A NOTYET="<%$fsurl%>search/svc_Smarter.html" STYLE="color: #000000; font-size: 70%">Advanced</A> - <INPUT TYPE="submit" VALUE="Search services" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:70%"> - </FORM> + <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px"> + <% include('searchbar-cust_svc.html') |n %> </TD> - <TD COLSPAN=1 BGCOLOR="#000000" ALIGN="right" STYLE="padding-right:4px"> - <FORM ACTION="<%$fsurl%>rt/index.html" METHOD="GET" STYLE="margin:0"> - <INPUT NAME="q" TYPE="text" VALUE="(ticket # or subject string)" onFocus="clearhint_search_ticket(this);" onClick="clearhint_search_ticket(this);" STYLE="vertical-align:bottom;text-align:right"><BR> - <A HREF="<%$fsurl%>rt/Search/Build.html" STYLE="color: #ffffff; font-size: 70%">Advanced</A> - <INPUT TYPE="submit" VALUE="Search tickets" CLASS="fsblackbutton" onMouseOver="this.className='fsblackbuttonselected'; return true;" onMouseOut="this.className='fsblackbutton'; return true;" STYLE="font-size:70%;padding-left:2px;padding-right:2px"> - </FORM> + <TD COLSPAN=1 BGCOLOR="#dddddd" ALIGN="right" STYLE="padding-left:2px;padding-right:2px"> + <% include('searchbar-ticket.html') |n %> </TD> +% } </TR> </TABLE> - <TABLE WIDTH="100%" HEIGHT="100%" CELLSPACING=0 CELLPADDING=4> +% } else { #$menu_position eq 'left' - <TR> + <TR CLASS="fsmenubar"> -% if ( $menu_position eq 'left' ) { + <TD COLSPAN="7" WIDTH="100%" STYLE="padding:1px 0px 0px 0px;border-top: 1px solid #7e0079" BGCOLOR="#dddddd"> + </TD> - <TD BGCOLOR="#000000" STYLE="padding:0" WIDTH="154"></TD> - <TD STYLE="padding:0" WIDTH="13"><IMG BORDER=0 ALT="" SRC="<%$fsurl%>images/black-gray-corner.png"></TD> + </TR> % } - <TD STYLE="padding:0" WIDTH="100%"><IMG BORDER=0 ALT="" SRC="<%$fsurl%>images/black-gray-top.png" HEIGHT="13" WIDTH="100%"></TD> - </TR> + <TABLE WIDTH="100%" HEIGHT="100%" CELLSPACING=0 CELLPADDING=4> <TR HEIGHT="100%"> % if ( $menu_position eq 'left' ) { - <TD BGCOLOR="#000000" ALIGN="left" HEIGHT="100%" WIDTH="154" VALIGN="top" ALIGN="right"> + <TD BGCOLOR="#dddddd" ALIGN="left" HEIGHT="100%" WIDTH="154" VALIGN="top" ALIGN="right" CLASS="fsmenubar"> <SCRIPT TYPE="text/javascript"> document.write(myBar); </SCRIPT> + <BR> - <IMG SRC="<%$fsurl%>images/32clear.gif" HEIGHT="1" WIDTH="154"> + <% include('searchbar-prospect.html') |n %> + <% include('searchbar-cust_main.html') |n %> + <% include('searchbar-address2.html') |n %> + <% include('searchbar-cust_bill.html') |n %> + <% include('searchbar-cust_svc.html') |n %> + <% include('searchbar-ticket.html') |n %> </TD> - <TD STYLE="padding:0" HEIGHT="100%" WIDTH=13 VALIGN="top"><IMG WIDTH="13" HEIGHT="100%" BORDER=0 ALT="" SRC="<%$fsurl%>images/black-gray-side.png"></TD> +% } else { #$menu_position eq 'top' + <BR> % } +%# page content starts here + <TD CLASS="background" HEIGHT="100%" VALIGN="top"> <!-- WIDTH="100%"> --> - <TD BGCOLOR="#e8e8e8" HEIGHT="100%" VALIGN="top"> <!-- WIDTH="100%"> --> + <H1> + <% $title_noescape || encode_entities($title) %> + </H1> - <FONT SIZE=6> - <% $title %> - </FONT> +% unless ( $nobr ) { + <BR> +% } - <BR><BR> <% $menubar !~ /^\s*$/ ? "$menubar<BR><BR>" : '' %> <%init> -my($title, $menubar) = ( shift, shift ); -my $etc = @_ ? shift : ''; #$etc is for things like onLoad= etc. -my $head = @_ ? shift : ''; #$head is for things that go in the <HEAD> section +my( $title, $title_noescape, $menubar, $etc, $head ) = ( '', '', '', '', '' ); +my( $nobr, $nocss, $no_jquery ) = ( 0, 0, 0 ); + +my $mobile; + +if ( ref($_[0]) ) { + my $opt = shift; + $title = $opt->{title}; + $title_noescape = $opt->{title_noescape}; + $menubar = $opt->{menubar}; + $etc = $opt->{etc}; + $head = $opt->{head}; + $nobr = $opt->{nobr}; + $nocss = $opt->{nocss}; + $mobile = $opt->{mobile}; + $no_jquery = $opt->{no_jquery}; +} else { + ($title, $menubar) = ( shift, shift ); + $etc = @_ ? shift : ''; #$etc is for things like onLoad= etc. + $head = @_ ? shift : ''; #$head is for things that go in the <HEAD> section +} + my $conf = new FS::Conf; -my $menu_position = $FS::CurrentUser::CurrentUser->option('menu_position') - || 'left'; +my $curuser = $FS::CurrentUser::CurrentUser; + +my $menu_position = $curuser->option('menu_position') + || 'top'; #new default for 1.9 + +if ( !defined($mobile) ) { + $mobile = $curuser->option('mobile_menu',1) && FS::UI::Web::is_mobile(); +} +if ( $cgi->param('mobile') =~ /^(\d)$/ ) { # allow client to override + $mobile = $1; +} +my($company_name, $company_url); +my @agentnums = $curuser->agentnums; +if ( scalar(@agentnums) == 1 ) { + $company_name = $conf->config('company_name', $agentnums[0] ); + $company_url = $conf->config('company_url', $agentnums[0] ); +} else { + $company_name = $conf->config('company_name'); + $company_url = $conf->config('company_url'); +} </%init>