blob: a25cf70dc1815a45d7ae0c489da10999fc7f3488 [file] [log] [blame]
[%# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Bugzilla Bug Tracking System.
#
# The Initial Developer of the Original Code is Netscape Communications
# Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s): Gervase Markham <gerv@gerv.net>
# Vaskin Kissoyan <vkissoyan@yahoo.com>
# Vitaly Harisov <vitaly@rathedg.com>
# Svetlana Harisova <light@rathedg.com>
#%]
[%# INTERFACE:
# (All the below interface elements are optional.)
# title: string. Page title.
# header: string. Main page header.
# subheader: string. Page subheader.
# header_addl_info: string. Additional header information.
# bodyclasses: array of extra CSS classes for the <body>
# onload: string. JavaScript code to run when the page finishes loading.
# javascript: string. Javascript to go in the header.
# javascript_urls: list. List of URLs to Javascript.
# style: string. CSS style.
# style_urls: list. List of URLs to CSS style sheets.
# message: string. A message to display to the user. May contain HTML.
# atomlink: Atom link URL, May contain HTML
#%]
[% IF message %]
[% PROCESS global/messages.html.tmpl %]
[% END %]
[% DEFAULT
subheader = ""
header_addl_info = ""
onload = ""
style_urls = []
%]
[%# We should be able to set the default value of the header variable
# to the value of the title variable using the DEFAULT directive,
# but that doesn't work if a caller sets header to the empty string
# to avoid header inheriting the value of title, since DEFAULT
# mistakenly treats empty strings as undefined and gives header the
# value of title anyway. To get around that problem we explicitly
# set header's default value here only if it is undefined. %]
[% IF !header.defined %][% header = title %][% END %]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>[% title %]</title>
[%# Migration note: contents of the old Param 'headerhtml' would go here %]
[% PROCESS "global/site-navigation.html.tmpl" %]
[% PROCESS 'global/setting-descs.none.tmpl' %]
[%# Set up the skin CSS cascade:
# 1. Standard Bugzilla stylesheet set (persistent)
# 2. Standard Bugzilla stylesheet set (selectable)
# 3. All third-party "skin" stylesheet sets (selectable)
# 4. Page-specific styles
# 5. Custom Bugzilla stylesheet set (persistent)
# "Selectable" skin file sets may be either preferred or alternate.
# Exactly one is preferred, determined by the "skin" user preference.
#%]
[% IF user.settings.skin.value != 'standard' %]
[% user_skin = user.settings.skin.value %]
[% END %]
[% style_urls.unshift('skins/standard/global.css') %]
[%# CSS cascade, part 1: Standard Bugzilla stylesheet set (persistent).
# Always present.
#%]
[% FOREACH style_url = style_urls %]
<link href="[% style_url FILTER html %]"
rel="stylesheet"
type="text/css">
[% END %]
<!--[if IE]>
[%# Internet Explorer treats [if IE] HTML comments as uncommented.
# Use it to import CSS fixes so that Bugzilla looks decent on IE, too.
#%]
<link href="skins/standard/IE-fixes.css"
rel="stylesheet"
type="text/css">
<![endif]-->
[%# CSS cascade, part 2: Standard Bugzilla stylesheet set (selectable)
# Present if skin selection is enabled.
#%]
[% IF user.settings.skin.is_enabled %]
[% FOREACH style_url = style_urls %]
<link href="[% style_url FILTER html %]"
rel="[% 'alternate ' IF user_skin %]stylesheet"
title="[% setting_descs.standard FILTER html %]"
type="text/css">
[% END %]
<!--[if IE]>
[%# Internet Explorer treats [if IE] HTML comments as uncommented.
# Use it to import CSS fixes so that Bugzilla looks decent on IE,
# too.
#%]
<link href="skins/standard/IE-fixes.css"
rel="[% 'alternate ' IF user_skin %]stylesheet"
title="[% setting_descs.standard FILTER html %]"
type="text/css">
<![endif]-->
[% END %]
[%# CSS cascade, part 3: Third-party stylesheet set (selectable).
# All third-party skins are present if skin selection is enabled.
# The admin-selected skin is always present.
#%]
[% FOREACH contrib_skin = user.settings.skin.legal_values %]
[% NEXT IF contrib_skin == 'standard' %]
[% NEXT UNLESS contrib_skin == user_skin
OR user.settings.skin.is_enabled %]
[% contrib_skin = contrib_skin FILTER url_quote %]
[% IF contrib_skin.match('\.css$') %]
[%# 1st skin variant: single-file stylesheet %]
<link href="[% "skins/contrib/$contrib_skin" %]"
rel="[% 'alternate ' UNLESS contrib_skin == user_skin %]stylesheet"
title="[% contrib_skin FILTER html %]"
type="text/css">
[% ELSE %]
[%# 2nd skin variant: stylesheet set %]
[% FOREACH style_url = style_urls %]
[% IF style_url.match('^skins/standard/') %]
<link href="[% style_url.replace('^skins/standard/',
"skins/contrib/$contrib_skin/") %]"
rel="[% 'alternate ' UNLESS contrib_skin == user_skin %]stylesheet"
title="[% contrib_skin FILTER html %]"
type="text/css">
[% END %]
[% END %]
<!--[if IE]>
[%# Internet Explorer treats [if IE] HTML comments as uncommented.
# Use it to import CSS fixes so that Bugzilla looks decent on IE,
# too.
#%]
<link href="skins/contrib/[% contrib_skin FILTER html %]/IE-fixes.css"
rel="[% 'alternate ' UNLESS contrib_skin == user_skin %]stylesheet"
title="[% contrib_skin FILTER html %]"
type="text/css">
<![endif]-->
[% END %]
[% END %]
[%# CSS cascade, part 4: page-specific styles.
#%]
[% IF style %]
<style type="text/css">
[% style %]
</style>
[% END %]
[%# CSS cascade, part 5: Custom Bugzilla stylesheet set (persistent).
# Always present. Site administrators may override all other style
# definitions, including skins, using custom stylesheets.
#%]
[% FOREACH style_url = style_urls %]
[% IF style_url.match('^skins/standard/') %]
<link href="[% style_url.replace('^skins/standard/', "skins/custom/")
FILTER html %]" rel="stylesheet" type="text/css">
[% END %]
[% END %]
<!--[if IE]>
[%# Internet Explorer treats [if IE] HTML comments as uncommented.
# Use it to import CSS fixes so that Bugzilla looks decent on IE, too.
#%]
<link href="skins/custom/IE-fixes.css"
rel="stylesheet"
type="text/css">
<![endif]-->
[% IF javascript %]
<script type="text/javascript">
[% javascript %]
</script>
[% END %]
[% IF javascript_urls %]
[% FOREACH javascript_url = javascript_urls %]
<script src="[% javascript_url FILTER html %]" type="text/javascript"></script>
[% END %]
[% IF javascript_urls.grep('yui/').size %]
<script type="text/javascript">
YAHOO.namespace('bugzilla');
if( YAHOO.env.ua.gecko )
YAHOO.util.Event._simpleRemove(window, "unload", YAHOO.util.Event._unload);
</script>
[% END %]
[% END %]
[%# this puts the live bookmark up on firefox for the Atom feed %]
[% IF atomlink %]
<link rel="alternate"
type="application/atom+xml" title="Atom feed"
href="[% atomlink FILTER html %]">
[% END %]
[%# Required for the 'Autodiscovery' feature in Firefox 2 and IE 7. %]
<link rel="search" type="application/opensearchdescription+xml"
title="[% terms.Bugzilla %]" href="./search_plugin.cgi">
<link rel="shortcut icon" href="images/favicon.ico" >
[% Hook.process("additional_header") %]
</head>
[%# Migration note: contents of the old Param 'bodyhtml' go in the body tag,
# but set the onload attribute in the DEFAULT directive above.
#%]
<body onload="[% onload %]"
class="[% urlbase.replace('^https?://','').replace('/$','').replace('[-~@:/.]+','-') %]
[% FOREACH class = bodyclasses %]
[% ' ' %][% class FILTER css_class_quote %]
[% END %]">
[%# Migration note: the following file corresponds to the old Param
# 'bannerhtml'
#%]
<div id="header">
[% INCLUDE global/banner.html.tmpl %]
<table border="0" cellspacing="0" cellpadding="0" id="titles">
<tr>
<td id="title">
<p>[% terms.Bugzilla %]
[% " &ndash; $header" IF header %]</p>
</td>
[% IF subheader %]
<td id="subtitle">
<p class="subheader">[% subheader %]</p>
</td>
[% END %]
[% IF header_addl_info %]
<td id="information">
<p class="header_addl_info">[% header_addl_info %]</p>
</td>
[% END %]
</tr>
</table>
[% PROCESS "global/common-links.html.tmpl" qs_suffix = "_top" %]
</div>
<div id="bugzilla-body">
[% IF Param('announcehtml') %]
[% Param('announcehtml') FILTER none %]
[% END %]
[% IF message %]
<div id="message">[% message %]</div>
[% END %]