[%# 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 # Vaskin Kissoyan # Vitaly Harisov # Svetlana Harisova # Kohei Yoshino #%] [%# INTERFACE: # (All the below interface elements are optional.) # title: string. Page title. # header: string. Main page header. # subheader: string. Page subheader. # bodyclasses: array of extra CSS classes for the # 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 # generate_api_token: generate a token which can be used to make authenticated webservice calls # no_body: if true the body element will not be generated # allow_mobile: allow special CSS and viewport for detected mobile useragents # use_login_page: display a link to the full login page, rather than an inline login. # robots: index / noindex (default: index) #%] [% IF message %] [% PROCESS global/messages.html.tmpl %] [% END %] [% DEFAULT subheader = "" onload = "" style_urls = [] no_yui = 0 jquery = [] jquery_css = [] generate_api_token = 0 robots = 'index' %] [%# These are JS URLs that are *always* on the page and come before # every other JS URL. #%] [% SET starting_js_urls = [ "js/jquery/jquery-min.js", "js/jquery/ui/jquery-ui-min.js" ] %] [% IF NOT no_yui %] [% starting_js_urls.push("js/yui.js") %] [% END %] [% SET jq_css_urls = [ "js/jquery/ui/jquery-ui-min.css", "js/jquery/ui/jquery-ui-structure-min.css", "js/jquery/ui/jquery-ui-theme-min.css", ] %] [% style_urls.import(jquery_css, jq_css_urls) FILTER null %] [%# Add our required jQuery plugins %] [% jquery.push("cookie", "devbridgeAutocomplete") %] [% IF allow_mobile && is_mobile_browser %] [% style_urls.push("skins/standard/mobile.css") %] [% END %] [%# 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 %] [% IF Param('utf8') %] [% END %] [% USE Bugzilla %] [% IF Bugzilla.cgi.should_block_referrer %] [% ELSE %] [% END %] [%- js_BUGZILLA = { user => { # TODO: Move all properties form bug_modal/header.html.tmpl login => user.login, }, param => { maxattachmentsize => Param('maxattachmentsize'), maxusermatches => Param('maxusermatches'), splinter_base => Param('splinter_base'), }, constant => { COMMENT_COLS => constants.COMMENT_COLS, }, string => { # Please keep these in alphabetical order. component_required => "You must select a Component for this $terms.bug", description_required => "You must enter a Description for this $terms.bug", short_desc_required => "You must enter a Summary for this $terms.bug", version_required => "You must select a Version for this $terms.bug" } }; %] [% Hook.process("start") %] [% IF generate_api_token; js_BUGZILLA.api_token = get_api_token(); END; %] [% title %] [% IF robots == "noindex" %] [% END %] [% PROCESS "global/site-navigation.html.tmpl" %] [% PROCESS 'global/setting-descs.none.tmpl' %] [% SET css_sets = css_files(style_urls.unique, no_yui) %] [% FOREACH asset_url = css_sets.standard %] [% PROCESS format_css_link %] [% END %] [% FOREACH asset_url = css_sets.skin %] [% PROCESS format_css_link %] [% END %] [% IF style %] [% END %] [% FOREACH asset_url = css_sets.custom %] [% PROCESS format_css_link %] [% END %] [%# jQuery Plugins %] [% FOREACH jq_name = jquery.unique %] [% starting_js_urls.push("js/jquery/plugins/$jq_name/${jq_name}-min.js") %] [% END %] [% starting_js_urls.push('js/global.js', 'js/dropdown.js') %] [% FOREACH asset_url = starting_js_urls %] [% PROCESS format_js_link %] [% END %] [% inline_javascript = BLOCK %] [% IF NOT no_yui %] YAHOO.namespace('bugzilla'); if ( "onpagehide" in window || YAHOO.env.ua.gecko) { YAHOO.util.Event._simpleRemove(window, "unload", YAHOO.util.Event._unload); } [% INCLUDE 'global/value-descs.js.tmpl' %] [% END %] [% IF javascript %] [% javascript %] [% END %] [% END %] [% IF inline_javascript.search("\\S") %] [% END %] [% FOREACH asset_url = javascript_urls %] [% PROCESS format_js_link %] [% END %] [%# this puts the live bookmark up on firefox for the Atom feed %] [% IF atomlink %] [% END %] [%# Required for the 'Autodiscovery' feature in Firefox 2 and IE 7. %] [% IF allow_mobile && is_mobile_browser %] [% END %] [% Hook.process("additional_header") %] [% RETURN IF no_body %] [%# Migration note: contents of the old Param 'bodyhtml' go in the body tag, # but set the onload attribute in the DEFAULT directive above. #%] [% IF onload %] [% END %] [%# Migration note: the following file corresponds to the old Param # 'bannerhtml' #%]
[%# header %] [% IF Bugzilla.request_cache.mfa_warning AND user.mfa_required_date AND NOT Bugzilla.request_cache.on_mfa_page %] [% END %]
[%# in most cases the "header" variable provides redundant information, however # there are exceptions where not displaying this text is problematic. %] [% IF template.name.match('^attachment/') && !header.match('^Bug \d+$') %]

[% header FILTER none %]

[% END %] [% IF Param('announcehtml') %] [% Param('announcehtml') FILTER none %] [% END %] [% IF message %]
[% message %]
[% END %] [% BLOCK format_css_link %] [% "\n" %] [% END %] [% BLOCK format_js_link %] [% "\n" %] [% END %]