2008-12-15 15:53:33 +03:00
|
|
|
|
[%# 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 %]
|
2014-07-28 12:57:30 +04:00
|
|
|
|
[% message = BLOCK %][% PROCESS global/messages.html.tmpl %][% END %]
|
|
|
|
|
[% END %]
|
|
|
|
|
|
|
|
|
|
[% IF Bugzilla.session_data.title %]
|
|
|
|
|
[% title = Bugzilla.session_data.title %]
|
|
|
|
|
[% do_save_session = 1 %]
|
|
|
|
|
[% END %]
|
|
|
|
|
[% IF Bugzilla.session_data.header %]
|
|
|
|
|
[% header = Bugzilla.session_data.header %]
|
|
|
|
|
[% do_save_session = 1 %]
|
2008-12-15 15:53:33 +03:00
|
|
|
|
[% 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>
|
2010-06-25 20:04:36 +04:00
|
|
|
|
[% Hook.process("start") %]
|
2008-12-15 15:53:33 +03:00
|
|
|
|
<title>[% title %]</title>
|
|
|
|
|
|
|
|
|
|
[%# Migration note: contents of the old Param 'headerhtml' would go here %]
|
|
|
|
|
|
|
|
|
|
[% PROCESS "global/site-navigation.html.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 %]
|
2012-01-11 20:47:30 +04:00
|
|
|
|
[% style_urls.unshift('skins/standard/global.css') %]
|
2008-12-15 15:53:33 +03:00
|
|
|
|
|
|
|
|
|
[%# 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 %]
|
2009-07-13 17:54:45 +04:00
|
|
|
|
<!--[if lte IE 7]>
|
2008-12-15 15:53:33 +03:00
|
|
|
|
[%# Internet Explorer treats [if IE] HTML comments as uncommented.
|
2009-07-13 17:54:45 +04:00
|
|
|
|
# Use it to import CSS fixes so that Bugzilla looks decent on IE 7
|
|
|
|
|
# and below.
|
2008-12-15 15:53:33 +03:00
|
|
|
|
#%]
|
|
|
|
|
<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.
|
|
|
|
|
#%]
|
2010-06-09 23:57:35 +04:00
|
|
|
|
[%# Зачем стандартные стили упоминать дважды? То есть понятно, зачем -
|
2011-10-21 18:47:46 +04:00
|
|
|
|
# чтобы выбрать можно было. Но это не дело, оно ломает Opera 10.6.
|
|
|
|
|
# Причём в Bugzilla 4 их указывают в другом порядке, и получается нормально. O_o %]
|
2010-06-09 23:57:35 +04:00
|
|
|
|
[% IF 0 # user.settings.skin.is_enabled %]
|
2008-12-15 15:53:33 +03:00
|
|
|
|
[% FOREACH style_url = style_urls %]
|
|
|
|
|
<link href="[% style_url FILTER html %]"
|
|
|
|
|
rel="[% 'alternate ' IF user_skin %]stylesheet"
|
2011-10-21 18:47:46 +04:00
|
|
|
|
title="[% lc_messages.setting_descs.standard FILTER html %]"
|
2008-12-15 15:53:33 +03:00
|
|
|
|
type="text/css">
|
|
|
|
|
[% END %]
|
2009-07-13 17:54:45 +04:00
|
|
|
|
<!--[if lte IE 7]>
|
|
|
|
|
[%# Internet Explorer treats [if IE] HTML comments as uncommented.
|
|
|
|
|
# Use it to import CSS fixes so that Bugzilla looks decent on IE 7
|
|
|
|
|
# and below.
|
|
|
|
|
#%]
|
2008-12-15 15:53:33 +03:00
|
|
|
|
<link href="skins/standard/IE-fixes.css"
|
|
|
|
|
rel="[% 'alternate ' IF user_skin %]stylesheet"
|
2011-10-21 18:47:46 +04:00
|
|
|
|
title="[% lc_messages.setting_descs.standard FILTER html %]"
|
2008-12-15 15:53:33 +03:00
|
|
|
|
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 %]
|
2009-07-13 17:54:45 +04:00
|
|
|
|
<!--[if lte IE 7]>
|
2008-12-15 15:53:33 +03:00
|
|
|
|
[%# Internet Explorer treats [if IE] HTML comments as uncommented.
|
2009-07-13 17:54:45 +04:00
|
|
|
|
# Use it to import CSS fixes so that Bugzilla looks decent on IE 7
|
|
|
|
|
# and below.
|
2008-12-15 15:53:33 +03:00
|
|
|
|
#%]
|
|
|
|
|
<link href="skins/contrib/[% contrib_skin FILTER html %]/IE-fixes.css"
|
|
|
|
|
rel="[% 'alternate ' UNLESS contrib_skin == user_skin %]stylesheet"
|
|
|
|
|
title="[% contrib_skin FILTER html %]"
|
2011-07-20 16:48:26 +04:00
|
|
|
|
type="text/css" />
|
2008-12-15 15:53:33 +03:00
|
|
|
|
<![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/")
|
2011-07-20 16:48:26 +04:00
|
|
|
|
FILTER html %]" rel="stylesheet" type="text/css" />
|
2008-12-15 15:53:33 +03:00
|
|
|
|
[% END %]
|
|
|
|
|
[% END %]
|
2009-07-13 17:54:45 +04:00
|
|
|
|
<!--[if lte IE 7]>
|
2008-12-15 15:53:33 +03:00
|
|
|
|
[%# Internet Explorer treats [if IE] HTML comments as uncommented.
|
2009-07-13 17:54:45 +04:00
|
|
|
|
# Use it to import CSS fixes so that Bugzilla looks decent on IE 7
|
|
|
|
|
# and below.
|
2008-12-15 15:53:33 +03:00
|
|
|
|
#%]
|
|
|
|
|
<link href="skins/custom/IE-fixes.css"
|
|
|
|
|
rel="stylesheet"
|
2011-07-20 16:48:26 +04:00
|
|
|
|
type="text/css" />
|
2008-12-15 15:53:33 +03:00
|
|
|
|
<![endif]-->
|
|
|
|
|
|
2012-01-11 20:47:30 +04:00
|
|
|
|
<script src="js/util.js" type="text/javascript"></script>
|
|
|
|
|
<script src="js/global.js" type="text/javascript"></script>
|
|
|
|
|
<script src="js/hinter.js" type="text/javascript"></script>
|
2010-05-15 00:02:34 +04:00
|
|
|
|
<script type="text/javascript">
|
2009-07-29 15:21:49 +04:00
|
|
|
|
<!--
|
2010-05-15 00:02:34 +04:00
|
|
|
|
[%# The language selector needs javascript to set its cookie,
|
|
|
|
|
# so it is hidden in HTML/CSS by the "bz_default_hidden" class.
|
|
|
|
|
# If the browser can run javascript, it will then "unhide"
|
|
|
|
|
# the language selector using the following code.
|
|
|
|
|
#%]
|
2011-07-20 16:48:26 +04:00
|
|
|
|
function unhide_language_selector() {
|
|
|
|
|
removeClass('lang_links_container', 'bz_default_hidden');
|
|
|
|
|
}
|
|
|
|
|
addListener(window, 'load', unhide_language_selector);
|
2010-05-15 00:02:34 +04:00
|
|
|
|
|
2011-07-20 16:48:26 +04:00
|
|
|
|
[%# Make some Bugzilla information available to all scripts.
|
2009-07-29 15:21:49 +04:00
|
|
|
|
# We don't import every parameter and constant because we
|
2011-07-20 16:48:26 +04:00
|
|
|
|
# don't want to add a lot of uncached JS to every page.
|
2009-07-29 15:21:49 +04:00
|
|
|
|
#%]
|
|
|
|
|
var BUGZILLA = {
|
|
|
|
|
param: {
|
|
|
|
|
cookiepath: '[% Param('cookiepath') FILTER js %]'
|
2010-05-15 00:02:34 +04:00
|
|
|
|
},
|
|
|
|
|
string: {
|
2011-07-20 16:48:26 +04:00
|
|
|
|
attach_desc_required: 'You must enter a Description for this attachment.'
|
2009-07-29 15:21:49 +04:00
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
[% IF javascript %]
|
2010-05-15 00:02:34 +04:00
|
|
|
|
[% javascript %]
|
|
|
|
|
[% END %]
|
2009-07-29 15:21:49 +04:00
|
|
|
|
// -->
|
|
|
|
|
</script>
|
2008-12-15 15:53:33 +03:00
|
|
|
|
|
|
|
|
|
[% IF javascript_urls %]
|
|
|
|
|
[% FOREACH javascript_url = javascript_urls %]
|
|
|
|
|
<script src="[% javascript_url FILTER html %]" type="text/javascript"></script>
|
|
|
|
|
[% END %]
|
|
|
|
|
[% END %]
|
|
|
|
|
|
|
|
|
|
[%# this puts the live bookmark up on firefox for the Atom feed %]
|
|
|
|
|
[% IF atomlink %]
|
2011-07-20 16:48:26 +04:00
|
|
|
|
<link rel="alternate"
|
|
|
|
|
type="application/atom+xml" title="Atom feed"
|
2008-12-15 15:53:33 +03:00
|
|
|
|
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'
|
|
|
|
|
#%]
|
|
|
|
|
|
2010-05-15 00:02:34 +04:00
|
|
|
|
<div id="header">
|
2008-12-15 15:53:33 +03:00
|
|
|
|
|
|
|
|
|
[% INCLUDE global/banner.html.tmpl %]
|
|
|
|
|
|
|
|
|
|
<table border="0" cellspacing="0" cellpadding="0" id="titles">
|
|
|
|
|
<tr>
|
|
|
|
|
<td id="title">
|
|
|
|
|
<p>[% terms.Bugzilla %]
|
|
|
|
|
[% " – $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>
|
|
|
|
|
|
2010-05-17 15:47:23 +04:00
|
|
|
|
[% IF Bugzilla.languages.size > 1 %]
|
2010-05-15 00:02:34 +04:00
|
|
|
|
<table id="lang_links_container" cellpadding="0" cellspacing="0"
|
|
|
|
|
class="bz_default_hidden"><tr><td>
|
|
|
|
|
<ul class="links">
|
|
|
|
|
[% FOREACH lang = Bugzilla.languages.sort %]
|
|
|
|
|
<li>[% IF NOT loop.first %]<span class="separator"> | </span>[% END %]
|
|
|
|
|
[% IF lang == current_language %]
|
|
|
|
|
<span class="lang_current">[% lang FILTER html FILTER upper %]</span>
|
|
|
|
|
[% ELSE %]
|
|
|
|
|
<a href="#" onclick="set_language('[% lang FILTER none %]');">
|
|
|
|
|
[%- lang FILTER html FILTER upper %]</a>
|
|
|
|
|
[% END %]
|
|
|
|
|
</li>
|
|
|
|
|
[% END %]
|
|
|
|
|
</ul>
|
|
|
|
|
</td></tr></table>
|
2010-05-17 15:47:23 +04:00
|
|
|
|
[% END %]
|
2008-12-15 15:53:33 +03:00
|
|
|
|
|
2010-05-17 15:20:32 +04:00
|
|
|
|
[% IF user.id AND user.settings.saved_searches_position.value == "footer" %]
|
2010-05-17 15:47:23 +04:00
|
|
|
|
[% PROCESS "global/common-links.html.tmpl" qs_suffix = "top" standalone = 1 %]
|
2010-05-17 15:20:32 +04:00
|
|
|
|
[% ELSE %]
|
2010-05-17 15:47:23 +04:00
|
|
|
|
[% PROCESS "global/useful-links.html.tmpl" qs_suffix = "top" %]
|
2010-05-17 15:20:32 +04:00
|
|
|
|
[% END %]
|
2010-05-15 00:02:34 +04:00
|
|
|
|
</div> [%# header %]
|
2008-12-15 15:53:33 +03:00
|
|
|
|
|
2010-05-15 00:02:34 +04:00
|
|
|
|
<div id="bugzilla-body">
|
2012-02-16 16:45:59 +04:00
|
|
|
|
[%# Used to workaround table sizing inside div, see also skins/contrib/Dusk/global.css#bugzilla-body %]
|
|
|
|
|
<div id="bugzilla-padding">
|
2008-12-15 15:53:33 +03:00
|
|
|
|
|
|
|
|
|
[% IF Param('announcehtml') %]
|
|
|
|
|
[% Param('announcehtml') FILTER none %]
|
|
|
|
|
[% END %]
|
|
|
|
|
|
2014-01-16 18:23:25 +04:00
|
|
|
|
[% IF Param('new_functionality_msg') && Param('new_functionality_tsp') && user.read_new_functionality %]
|
|
|
|
|
<div id="new_functionality">
|
2014-07-28 12:57:30 +04:00
|
|
|
|
<div class="close-link"><a href="javascript:void(0)" onclick="return readNewFunctionality();" title="Mark news as read">Close</a></div>
|
|
|
|
|
<div>[% Param('new_functionality_msg') FILTER none %]</div>
|
2014-01-16 18:23:25 +04:00
|
|
|
|
</div>
|
|
|
|
|
[% END %]
|
|
|
|
|
|
2008-12-15 15:53:33 +03:00
|
|
|
|
[% IF message %]
|
2010-05-26 20:03:17 +04:00
|
|
|
|
<div id="message" class="message">[% message %]</div>
|
2008-12-15 15:53:33 +03:00
|
|
|
|
[% END %]
|
2010-10-22 20:57:14 +04:00
|
|
|
|
|
|
|
|
|
[% Hook.process('aftermessage') %]
|
2014-07-28 12:57:30 +04:00
|
|
|
|
|
|
|
|
|
[%# Show result messages from the session and delete them %]
|
|
|
|
|
[% IF Bugzilla.result_messages.size %]
|
|
|
|
|
[% FOR m = Bugzilla.result_messages %]
|
|
|
|
|
[% "global/messages.html.tmpl" FILTER process(m) %]
|
|
|
|
|
[% END %]
|
|
|
|
|
[% do_save_session = 1 %]
|
|
|
|
|
[% END %]
|
|
|
|
|
|
|
|
|
|
[% IF do_save_session; x = Bugzilla.delete_session_data('result_messages', 'title', 'header'); END %]
|