diff options
-rw-r--r-- | .htaccess | 25 | ||||
-rw-r--r-- | Bugzilla/Constants.pm | 7 | ||||
-rw-r--r-- | Bugzilla/Install/Filesystem.pm | 22 | ||||
-rw-r--r-- | Bugzilla/Template.pm | 145 | ||||
-rw-r--r-- | extensions/BMO/template/en/default/hook/global/header-external-links.html.tmpl | 2 | ||||
-rw-r--r-- | extensions/BugmailFilter/template/en/default/account/prefs/bugmail_filter.html.tmpl | 6 | ||||
-rw-r--r-- | extensions/ComponentWatching/template/en/default/account/prefs/component_watch.html.tmpl | 2 | ||||
-rw-r--r-- | template/en/default/attachment/diff-header.html.tmpl | 22 | ||||
-rw-r--r-- | template/en/default/bug/comments.html.tmpl | 14 | ||||
-rw-r--r-- | template/en/default/flag/list.html.tmpl | 4 | ||||
-rw-r--r-- | template/en/default/global/header.html.tmpl | 32 | ||||
-rw-r--r-- | template/en/default/list/list-simple.html.tmpl | 2 | ||||
-rw-r--r-- | template/en/default/reports/duplicates-simple.html.tmpl | 6 | ||||
-rw-r--r-- | template/en/default/rest.html.tmpl | 2 | ||||
-rw-r--r-- | template/en/default/search/boolean-charts.html.tmpl | 26 | ||||
-rw-r--r-- | vagrant_support/apache.j2 | 2 |
16 files changed, 69 insertions, 250 deletions
@@ -2,27 +2,6 @@ <FilesMatch (\.pm|\.pl|\.tmpl|\.swf|localconfig.*|cpanfile)$> deny from all </FilesMatch> -<IfModule mod_expires.c> -<IfModule mod_headers.c> -<IfModule mod_env.c> - <FilesMatch (\.js|\.css)$> - ExpiresActive On - # According to RFC 2616, "1 year in the future" means "never expire". - # We change the name of the file's URL whenever its modification date - # changes, so browsers can cache any individual JS or CSS URL forever. - # However, since all JS and CSS URLs involve a ? in them (for the changing - # name) we have to explicitly set an Expires header or browsers won't - # *ever* cache them. - ExpiresDefault "now plus 1 years" - Header append Cache-Control "public" - </FilesMatch> - - # This lets Bugzilla know that we are properly sending Cache-Control - # and Expires headers for CSS and JS files. - SetEnv BZ_CACHE_CONTROL 1 -</IfModule> -</IfModule> -</IfModule> # Allow ZeroClipboard for access to the clipboard <Files "ZeroClipboard.swf"> @@ -31,6 +10,7 @@ AddType image/x-icon .ico AddType application/font-woff .woff +AddType application/font-woff2 .woff2 Redirect permanent /queryhelp.cgi https://bugzilla.mozilla.org/query.cgi?format=advanced&help=1 Redirect permanent /bug_status.html https://bugzilla.mozilla.org/page.cgi?id=fields.html @@ -52,6 +32,9 @@ RewriteRule ^__version__$ version.json [L] # heartbeat.cgi returns 200 if the DB and memcached are both working, and 500 otherwise. RewriteRule ^__heartbeat__$ heartbeat.cgi [L] +RewriteRule ^static/v\d{4}\d{2}\d{2}\.\d+/(.+\.(?:js|css|woff2?|png|jpe?g|gif|ico|svg)) $1 [NC,E=IMMUTABLE:1,L] +Header set Cache-Control "public, max-age=31536000" env=REDIRECT_IMMUTABLE + RewriteRule ^robots\.txt$ robots.cgi [L] # New single page interface for filing bugs diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm index 37917d305..695f2fede 100644 --- a/Bugzilla/Constants.pm +++ b/Bugzilla/Constants.pm @@ -26,8 +26,6 @@ use Memoize; bz_locations - CONCATENATE_ASSETS - IS_NULL NOT_NULL @@ -219,11 +217,6 @@ use constant REST_DOC => "https://bugzilla.readthedocs.io/en/latest/api/"; use constant REMOTE_FILE => 'http://updates.bugzilla.org/bugzilla-update.xml'; use constant LOCAL_FILE => 'bugzilla-update.xml'; # Relative to datadir. -# When true CSS and JavaScript assets will be concatanted and minified at -# run-time, to reduce the number of requests required to render a page. -# Setting this to a false value can help debugging. -use constant CONCATENATE_ASSETS => 1; - # These are unique values that are unlikely to match a string or a number, # to be used in criteria for match() functions and other things. They start # and end with spaces because most Bugzilla stuff has trim() called on it, diff --git a/Bugzilla/Install/Filesystem.pm b/Bugzilla/Install/Filesystem.pm index 01b8d7e8e..89a1e5d93 100644 --- a/Bugzilla/Install/Filesystem.pm +++ b/Bugzilla/Install/Filesystem.pm @@ -579,7 +579,6 @@ sub update_filesystem { _remove_empty_css_files(); _convert_single_file_skins(); - _remove_dynamic_assets(); } sub _css_url_fix { @@ -645,27 +644,6 @@ sub _convert_single_file_skins { } } -# delete all automatically generated css/js files to force recreation at the -# next request. -sub _remove_dynamic_assets { - my @files = ( - glob(bz_locations()->{assetsdir} . '/*.css'), - glob(bz_locations()->{assetsdir} . '/*.js'), - ); - foreach my $file (@files) { - unlink($file); - } - - # remove old skins/assets directory - my $old_path = bz_locations()->{skinsdir} . '/assets'; - if (-d $old_path) { - foreach my $file (glob("$old_path/*.css")) { - unlink($file); - } - rmdir($old_path); - } -} - sub create_htaccess { _create_files(%{FILESYSTEM()->{htaccess}}); diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm index c91b6470c..a027614ec 100644 --- a/Bugzilla/Template.pm +++ b/Bugzilla/Template.pm @@ -364,22 +364,9 @@ sub multiline_sprintf { # Header Generation # ##################### -# Returns the last modification time of a file, as an integer number of -# seconds since the epoch. -sub _mtime { return (stat($_[0]))[9] } - -sub mtime_filter { - my ($file_url, $mtime) = @_; - # This environment var is set in the .htaccess if we have mod_headers - # and mod_expires installed, to make sure that JS and CSS with "?" - # after them will still be cached by clients. - return $file_url if !$ENV{BZ_CACHE_CONTROL}; - if (!$mtime) { - my $cgi_path = bz_locations()->{'cgi_path'}; - my $file_path = "$cgi_path/$file_url"; - $mtime = _mtime($file_path); - } - return "$file_url?$mtime"; +sub version_filter { + my ($file_url) = @_; + return "static/v" . Bugzilla->VERSION . "/$file_url"; } # Set up the skin CSS cascade: @@ -408,18 +395,13 @@ sub css_files { } } - # build unified - $by_type{unified_standard_skin} = _concatenate_css($by_type{standard}, - $by_type{skin}); - $by_type{unified_custom} = _concatenate_css($by_type{custom}); - return \%by_type; } sub _css_link_set { my ($file_name) = @_; - my %set = (standard => mtime_filter($file_name)); + my %set = (standard => version_filter($file_name)); # We use (?:^|/) to allow Extensions to use the skins system if they want. if ($file_name !~ m{(?:^|/)skins/standard/}) { @@ -430,127 +412,19 @@ sub _css_link_set { my $cgi_path = bz_locations()->{'cgi_path'}; my $skin_file_name = $file_name; $skin_file_name =~ s{(?:^|/)skins/standard/}{skins/contrib/$skin/}; - if (my $mtime = _mtime("$cgi_path/$skin_file_name")) { - $set{skin} = mtime_filter($skin_file_name, $mtime); + if (-f "$cgi_path/$skin_file_name") { + $set{skin} = version_filter($skin_file_name); } my $custom_file_name = $file_name; $custom_file_name =~ s{(?:^|/)skins/standard/}{skins/custom/}; - if (my $custom_mtime = _mtime("$cgi_path/$custom_file_name")) { - $set{custom} = mtime_filter($custom_file_name, $custom_mtime); + if (-f "$cgi_path/$custom_file_name") { + $set{custom} = version_filter($custom_file_name); } return \%set; } -sub _concatenate_css { - my @sources = map { @$_ } @_; - return unless @sources; - - my %files = - map { - (my $file = $_) =~ s/(^[^\?]+)\?.+/$1/; - $_ => $file; - } @sources; - - my $cgi_path = bz_locations()->{cgi_path}; - my $skins_path = bz_locations()->{assetsdir}; - - # build minified files - my @minified; - foreach my $source (@sources) { - next unless -e "$cgi_path/$files{$source}"; - my $file = $skins_path . '/' . md5_hex($source) . '.css'; - if (!-e $file) { - my $content = read_file("$cgi_path/$files{$source}"); - - # minify - $content =~ s{/\*.*?\*/}{}sg; # comments - $content =~ s{(^\s+|\s+$)}{}mg; # leading/trailing whitespace - $content =~ s{\n}{}g; # single line - - # rewrite urls - $content =~ s{url\(([^\)]+)\)}{_css_url_rewrite($source, $1)}eig; - - write_file($file, "/* $files{$source} */\n" . $content . "\n"); - } - push @minified, $file; - } - - # concat files - my $file = $skins_path . '/' . md5_hex(join(' ', @sources)) . '.css'; - if (!-e $file) { - my $content = ''; - foreach my $source (@minified) { - $content .= read_file($source); - } - write_file($file, $content); - } - - $file =~ s/^\Q$cgi_path\E\///o; - return mtime_filter($file); -} - -sub _css_url_rewrite { - my ($source, $url) = @_; - # rewrite relative urls as the unified stylesheet lives in a different - # directory from the source - $url =~ s/(^['"]|['"]$)//g; - if (substr($url, 0, 1) eq '/' || substr($url, 0, 5) eq 'data:') { - return 'url(' . $url . ')'; - } - return 'url(../../' . dirname($source) . '/' . $url . ')'; -} - -sub _concatenate_js { - return @_ unless CONCATENATE_ASSETS; - my ($sources) = @_; - return [] unless $sources; - $sources = ref($sources) ? $sources : [ $sources ]; - - my %files = - map { - (my $file = $_) =~ s/(^[^\?]+)\?.+/$1/; - $_ => $file; - } @$sources; - - my $cgi_path = bz_locations()->{cgi_path}; - my $skins_path = bz_locations()->{assetsdir}; - - # build minified files - my @minified; - foreach my $source (@$sources) { - next unless -e "$cgi_path/$files{$source}"; - my $file = $skins_path . '/' . md5_hex($source) . '.js'; - if (!-e $file) { - my $content = read_file("$cgi_path/$files{$source}"); - - # minimal minification - $content =~ s#/\*.*?\*/##sg; # block comments - $content =~ s#(^ +| +$)##gm; # leading/trailing spaces - $content =~ s#^//.+$##gm; # single line comments - $content =~ s#\n{2,}#\n#g; # blank lines - $content =~ s#(^\s+|\s+$)##g; # whitespace at the start/end of file - - write_file($file, "/* $files{$source} */\n" . $content . "\n"); - } - push @minified, $file; - } - - # concat files - my $file = $skins_path . '/' . md5_hex(join(' ', @$sources)) . '.js'; - if (!-e $file) { - my $content = ''; - foreach my $source (@minified) { - $content .= read_file($source); - } - write_file($file, $content); - } - - $file =~ s/^\Q$cgi_path\E\///o; - return [ $file ]; -} - # YUI dependency resolution sub yui_resolve_deps { my ($yui, $yui_deps) = @_; @@ -899,7 +773,7 @@ sub create { email => \&Bugzilla::Util::email_filter, - mtime => \&mtime_filter, + version => \&version_filter, # iCalendar contentline filter ics => [ sub { @@ -1089,7 +963,6 @@ sub create { 'css_files' => \&css_files, yui_resolve_deps => \&yui_resolve_deps, - concatenate_js => \&_concatenate_js, # Whether or not keywords are enabled, in this Bugzilla. 'use_keywords' => sub { return Bugzilla::Keyword->any_exist; }, diff --git a/extensions/BMO/template/en/default/hook/global/header-external-links.html.tmpl b/extensions/BMO/template/en/default/hook/global/header-external-links.html.tmpl index 6c7d58816..54a2f0e49 100644 --- a/extensions/BMO/template/en/default/hook/global/header-external-links.html.tmpl +++ b/extensions/BMO/template/en/default/hook/global/header-external-links.html.tmpl @@ -9,7 +9,7 @@ <div id="header-external-links" class="dropdown first"> <button type="button" id="header-external-menu-button" class="dropdown-button minor" title="Mozilla" aria-label="Mozilla" aria-expanded="false" aria-haspopup="true" aria-controls="header-external-menu"> - <img src="extensions/BMO/web/images/moz-fav-bw-rgb.svg" width="32" height="32" alt=""> + <img src="[% 'extensions/BMO/web/images/moz-fav-bw-rgb.svg' FILTER version %]" width="32" height="32" alt=""> </button> <ul class="dropdown-content right" id="header-external-menu" role="menu" style="display:none;"> <li role="presentation"> diff --git a/extensions/BugmailFilter/template/en/default/account/prefs/bugmail_filter.html.tmpl b/extensions/BugmailFilter/template/en/default/account/prefs/bugmail_filter.html.tmpl index e7e0ed749..08d3dde6f 100644 --- a/extensions/BugmailFilter/template/en/default/account/prefs/bugmail_filter.html.tmpl +++ b/extensions/BugmailFilter/template/en/default/account/prefs/bugmail_filter.html.tmpl @@ -6,10 +6,10 @@ # defined by the Mozilla Public License, v. 2.0. #%] -<link href="[% "extensions/BugmailFilter/web/style/bugmail-filter.css" FILTER mtime %]" +<link href="[% "extensions/BugmailFilter/web/style/bugmail-filter.css" FILTER version %]" rel="stylesheet" type="text/css"> <script type="text/javascript" - src="[% "extensions/BugmailFilter/web/js/bugmail-filter.js" FILTER mtime %]"></script> + src="[% "extensions/BugmailFilter/web/js/bugmail-filter.js" FILTER version %]"></script> [% SET selectable_products = user.get_selectable_products %] [% SET dont_show_button = 1 %] @@ -26,7 +26,7 @@ var cpts = new Array(); [% n = n + 1 %] [% END %] </script> -<script type="text/javascript" src="[% 'js/productform.js' FILTER mtime FILTER html %]"> +<script type="text/javascript" src="[% 'js/productform.js' FILTER version FILTER html %]"> </script> <hr> diff --git a/extensions/ComponentWatching/template/en/default/account/prefs/component_watch.html.tmpl b/extensions/ComponentWatching/template/en/default/account/prefs/component_watch.html.tmpl index 5e27c1247..6467836f8 100644 --- a/extensions/ComponentWatching/template/en/default/account/prefs/component_watch.html.tmpl +++ b/extensions/ComponentWatching/template/en/default/account/prefs/component_watch.html.tmpl @@ -44,7 +44,7 @@ var watch_users = new Array(); [% END %] [% END %] </script> -<script type="text/javascript" src="[% 'js/productform.js' FILTER mtime FILTER html %]"> +<script type="text/javascript" src="[% 'js/productform.js' FILTER version FILTER html %]"> </script> <script> diff --git a/template/en/default/attachment/diff-header.html.tmpl b/template/en/default/attachment/diff-header.html.tmpl index b407b4f3a..b2be0e4f0 100644 --- a/template/en/default/attachment/diff-header.html.tmpl +++ b/template/en/default/attachment/diff-header.html.tmpl @@ -41,9 +41,9 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %] [% IF attachid %] Attachment #[% attachid %]: [% description FILTER html %] [% ELSE %] - Diff Between + Diff Between #[% oldid %]: <a href="[% PROCESS diffurl id=oldid %]">[% old_desc FILTER html %]</a> - and + and #[% newid %]: <a href="[% PROCESS diffurl id=newid %]">[% new_desc FILTER html %]</a> [% END %] for <a href="show_bug.cgi?id=[% bugid %]">[% terms.bug %] #[% bugid %]</a> @@ -57,14 +57,14 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %] [% ELSE %] <html> <head> - <link href="[% 'skins/standard/attachment.css' FILTER mtime %]" + <link href="[% 'skins/standard/attachment.css' FILTER version %]" rel="stylesheet" type="text/css"> - <script src="[% 'js/attachment.js' FILTER mtime %]" + <script src="[% 'js/attachment.js' FILTER version %]" type="text/javascript"></script> </head> <body onload="[% onload FILTER html %]"> [% END %] - + [%# If we have attachid, we are in diff, otherwise we're in interdiff %] [% IF attachid %] [%# HEADER %] @@ -100,12 +100,12 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %] | [% END %] [% END %] - + [%# Collapse / Expand %] <a href="#" onmouseover="lastStatus = window.status; window.status='Collapse All'; return true" onmouseout="window.status = lastStatus; return true" - onclick="return collapse_all()">Collapse All</a> | + onclick="return collapse_all()">Collapse All</a> | <a href="#" onmouseover="lastStatus = window.status; window.status='Expand All'; return true" onmouseout="window.status = lastStatus; return true" @@ -115,14 +115,14 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %] [%# only happens for normal viewing, not interdiff %] | <span style='font-weight: bold'>Context:</span> [% IF context == "patch" %] - (<strong>Patch</strong> / + (<strong>Patch</strong> / [% ELSE %] - (<a href="[% PROCESS diffurl id=attachid %]&headers=[% headers FILTER uri %]">Patch</a> / + (<a href="[% PROCESS diffurl id=attachid %]&headers=[% headers FILTER uri %]">Patch</a> / [% END %] [% IF context == "file" %] <strong>File</strong> / [% ELSE %] - <a href="[% PROCESS diffurl id=attachid %]&headers=[% headers FILTER uri %]&context=file">File</a> / + <a href="[% PROCESS diffurl id=attachid %]&headers=[% headers FILTER uri %]&context=file">File</a> / [% END %] [% IF context == "patch" || context == "file" %] @@ -150,7 +150,7 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %] [% ELSE %] <br><br> [% END %] - + [%# Restore Stuff %] <form name="checkboxform" action="attachment.cgi"> <input type="checkbox" name="restore_indicator" style="display: none"> diff --git a/template/en/default/bug/comments.html.tmpl b/template/en/default/bug/comments.html.tmpl index 2f8658c9c..9c8b56217 100644 --- a/template/en/default/bug/comments.html.tmpl +++ b/template/en/default/bug/comments.html.tmpl @@ -22,7 +22,7 @@ [% PROCESS bug/time.html.tmpl %] -<script src="[% 'js/comments.js' FILTER mtime %]" type="text/javascript"> +<script src="[% 'js/comments.js' FILTER version %]" type="text/javascript"> </script> <script type="text/javascript"> @@ -43,7 +43,7 @@ [% IF user.is_insider %] if (document.getElementById('isprivate_' + real_id).checked) { document.getElementById('newcommentprivacy').checked = 'checked'; - updateCommentTagControl(document.getElementById('newcommentprivacy'), 'comment'); + updateCommentTagControl(document.getElementById('newcommentprivacy'), 'comment'); } [% END %] @@ -111,7 +111,7 @@ [% Hook.process("comment_banner") %] -<!-- This auto-sizes the comments and positions the collapse/expand links +<!-- This auto-sizes the comments and positions the collapse/expand links to the right. --> <table class="bz_comment_table" cellpadding="0" cellspacing="0"><tr> <td> @@ -120,13 +120,13 @@ [% IF count >= start_at %] [% PROCESS a_comment %] [% END %] - + [% count = count + increment %] [% END %] [%# Note: this template is used in multiple places; if you use this hook, # make sure you are aware of this fact. - #%] + #%] [% Hook.process("aftercomments") %] </td> @@ -217,7 +217,7 @@ [% END %] <span role="heading" aria-level="2" class="bz_comment_number"> - <a + <a href="show_bug.cgi?id=[% bug.bug_id %]#c[% comment.count %]"> [%- comment_label FILTER html %]</a> </span> @@ -260,7 +260,7 @@ [% IF user.is_timetracker && (comment.work_time > 0 || comment.work_time < 0) %] <br> - Additional hours worked: + Additional hours worked: [% PROCESS formattimeunit time_unit=comment.work_time %] [% END %] diff --git a/template/en/default/flag/list.html.tmpl b/template/en/default/flag/list.html.tmpl index 55184c47b..6d2ad69ae 100644 --- a/template/en/default/flag/list.html.tmpl +++ b/template/en/default/flag/list.html.tmpl @@ -22,7 +22,7 @@ [%# We list flags by looping twice over the flag types relevant for the bug. # In the first loop, we display existing flags and then, for active types, - # we display UI for adding new flags. In the second loop, we display UI + # we display UI for adding new flags. In the second loop, we display UI # for adding additional new flags for those types for which a flag already # exists but which are multiplicable (can have multiple flags of the type # on a single bug/attachment). @@ -30,7 +30,7 @@ [% DEFAULT flag_table_id = "flags" %] -<script src="[% 'js/flag.js' FILTER mtime %]" type="text/javascript"></script> +<script src="[% 'js/flag.js' FILTER version %]" type="text/javascript"></script> <table id="[% flag_table_id FILTER html %]"> [% UNLESS flag_no_header %] diff --git a/template/en/default/global/header.html.tmpl b/template/en/default/global/header.html.tmpl index 81db1910b..033d8ea1c 100644 --- a/template/en/default/global/header.html.tmpl +++ b/template/en/default/global/header.html.tmpl @@ -142,15 +142,11 @@ [% PROCESS 'global/setting-descs.none.tmpl' %] [% SET css_sets = css_files(style_urls.unique, no_yui) %] - [% IF constants.CONCATENATE_ASSETS %] - [% PROCESS format_css_link asset_url = css_sets.unified_standard_skin %] - [% ELSE %] - [% FOREACH asset_url = css_sets.standard %] - [% PROCESS format_css_link %] - [% END %] - [% FOREACH asset_url = css_sets.skin %] - [% PROCESS format_css_link %] - [% END %] + [% FOREACH asset_url = css_sets.standard %] + [% PROCESS format_css_link %] + [% END %] + [% FOREACH asset_url = css_sets.skin %] + [% PROCESS format_css_link %] [% END %] [% IF style %] @@ -159,14 +155,8 @@ </style> [% END %] - [% IF css_sets.unified_custom %] - [% IF constants.CONCATENATE_ASSETS %] - [% PROCESS format_css_link asset_url = css_sets.unified_custom %] - [% ELSE %] - [% FOREACH asset_url = css_sets.custom %] - [% PROCESS format_css_link %] - [% END %] - [% END %] + [% FOREACH asset_url = css_sets.custom %] + [% PROCESS format_css_link %] [% END %] [%# jQuery Plugins %] @@ -175,7 +165,7 @@ [% END %] [% starting_js_urls.push('js/global.js', 'js/dropdown.js') %] - [% FOREACH asset_url = concatenate_js(starting_js_urls) %] + [% FOREACH asset_url = starting_js_urls %] [% PROCESS format_js_link %] [% END %] @@ -199,7 +189,7 @@ </script> [% END %] - [% FOREACH asset_url = concatenate_js(javascript_urls) %] + [% FOREACH asset_url = javascript_urls %] [% PROCESS format_js_link %] [% END %] @@ -405,8 +395,10 @@ [% BLOCK format_css_link %] <link href="[% asset_url FILTER html %]" rel="stylesheet" type="text/css"> + [% "\n" %] [% END %] [% BLOCK format_js_link %] - <script [% script_nonce FILTER none %] type="text/javascript" src="[% asset_url FILTER mtime FILTER html %]"></script> + <script [% script_nonce FILTER none %] type="text/javascript" src="[% asset_url FILTER version FILTER html %]"></script> + [% "\n" %] [% END %] diff --git a/template/en/default/list/list-simple.html.tmpl b/template/en/default/list/list-simple.html.tmpl index f4c3549ed..88df3e6a5 100644 --- a/template/en/default/list/list-simple.html.tmpl +++ b/template/en/default/list/list-simple.html.tmpl @@ -39,7 +39,7 @@ <head> <title>[% title FILTER html %]</title> <base href="[% urlbase FILTER html %]"> - <link href="[% 'skins/standard/buglist.css' FILTER mtime %]" + <link href="[% 'skins/standard/buglist.css' FILTER version %]" rel="stylesheet" type="text/css"> </head> diff --git a/template/en/default/reports/duplicates-simple.html.tmpl b/template/en/default/reports/duplicates-simple.html.tmpl index a08522790..934d199da 100644 --- a/template/en/default/reports/duplicates-simple.html.tmpl +++ b/template/en/default/reports/duplicates-simple.html.tmpl @@ -15,7 +15,7 @@ # Copyright (C) 1998 Netscape Communications Corporation. All # Rights Reserved. # - # Contributor(s): + # Contributor(s): # Gervase Markham <gerv@gerv.net> # Max Kanat-Alexander <mkanat@bugzilla.org> #%] @@ -39,9 +39,9 @@ <head> <title>[% title FILTER html %]</title> - <link href="[% 'skins/standard/global.css' FILTER mtime %]" + <link href="[% 'skins/standard/global.css' FILTER version %]" rel="stylesheet" type="text/css"> - <link href="[% 'skins/standard/duplicates.css' FILTER mtime %]" + <link href="[% 'skins/standard/duplicates.css' FILTER version %]" rel="stylesheet" type="text/css"> </head> diff --git a/template/en/default/rest.html.tmpl b/template/en/default/rest.html.tmpl index 0b8321dd1..25bd2233c 100644 --- a/template/en/default/rest.html.tmpl +++ b/template/en/default/rest.html.tmpl @@ -10,7 +10,7 @@ <html> <head> <title>Bugzilla::REST::API</title> - <link href="[% urlbase FILTER none %][% 'skins/standard/global.css' FILTER mtime %]" + <link href="[% urlbase FILTER none %][% 'skins/standard/global.css' FILTER version %]" rel="stylesheet" type="text/css"> </head> <body> diff --git a/template/en/default/search/boolean-charts.html.tmpl b/template/en/default/search/boolean-charts.html.tmpl index 3fb1f8eae..abfd164a1 100644 --- a/template/en/default/search/boolean-charts.html.tmpl +++ b/template/en/default/search/boolean-charts.html.tmpl @@ -19,7 +19,7 @@ #%] [% PROCESS "global/field-descs.none.tmpl" %] - + [% types = [ "noop", "equals", @@ -54,11 +54,11 @@ <div class="bz_section_title" id="custom_search_filter"> <div id="custom_search_query_controller" class="arrow">▼</div> <a id="chart" href="javascript:TUI_toggle_class('custom_search_query')" > - Custom Search</a> <span class="section_help">Didn't find what - you're looking for above? This area allows for ANDs, ORs, + Custom Search</a> <span class="section_help">Didn't find what + you're looking for above? This area allows for ANDs, ORs, and other more complex searches.</span> </div> -<div id="custom_search_filter_section" +<div id="custom_search_filter_section" class="bz_search_section custom_search_query"> [% SET indent_level = 0 %] [% SET cond_num = 0 %] @@ -76,8 +76,8 @@ TUI_alternates['custom_search_advanced'] = "Show Advanced Features"; TUI_hide_default('custom_search_advanced'); </script> - <script type="text/javascript" src="[% 'js/custom-search.js' FILTER mtime %]"></script> - <script type="text/javascript" src="[% 'js/history.js/native.history.js' FILTER mtime %]"></script> + <script type="text/javascript" src="[% 'js/custom-search.js' FILTER version %]"></script> + <script type="text/javascript" src="[% 'js/history.js/native.history.js' FILTER version %]"></script> <script type="text/javascript"> redirect_html4_browsers(); [%# These are alternative labels for the AND and OR options in and_all_select %] @@ -91,7 +91,7 @@ [% BLOCK one_condition %] [%# Skip any conditions that don't have a field defined. %] [% RETURN IF !condition.f %] - + [% IF !top_level_any_shown %] [% INCLUDE any_all_select name = "j_top" selected = default.j_top.0 @@ -106,10 +106,10 @@ <div class="custom_search_condition" [% ' style="margin-left: ' _ (indent_level * 2) _ 'em"' IF indent_level %] [% ' id="custom_search_last_row"' IF with_buttons %]> - + [% IF previous_condition.f == "OP" %] [% INCLUDE any_all_select - name = "j" _ (cond_num - 1) + name = "j" _ (cond_num - 1) selected = previous_condition.j %] [% END %] @@ -155,17 +155,17 @@ </option> [% END %] </select> - + [% INCLUDE "search/type-select.html.tmpl" name = "o${cond_num}", class = "custom_search_form_field" types = types, selected = condition.o %] - + <input name="v[% cond_num FILTER html %]" title="Value" class="custom_search_form_field" onchange="fix_query_string(this)" value="[% condition.v FILTER html %]"> [% END %] - + [% IF with_buttons %] <button class="custom_search_add_button" type="button" id="add_button" title="Add a new row" @@ -177,7 +177,7 @@ </span> [% END %] </div> - + [% previous_condition = condition %] [% END %] diff --git a/vagrant_support/apache.j2 b/vagrant_support/apache.j2 index 1de3d8faa..0a39125ce 100644 --- a/vagrant_support/apache.j2 +++ b/vagrant_support/apache.j2 @@ -15,7 +15,7 @@ PerlConfigRequire /vagrant/mod_perl.pl <Directory "/vagrant"> DirectoryIndex index.cgi Options Indexes FollowSymLinks ExecCGI - AllowOverride All + AllowOverride None Allow from all </Directory> </VirtualHost> |