Force script and style refresh by using timestamps in URLs
parent
54f37df590
commit
8e4073e13c
|
@ -683,6 +683,26 @@ sub create
|
|||
# built-in filter, please also add a stub filter to t/004template.t.
|
||||
FILTERS => {
|
||||
|
||||
# Timestamped URL to force refresh of JavaScript/CSS
|
||||
ts_url => sub
|
||||
{
|
||||
my ($file) = @_;
|
||||
my $mtime = (stat(bz_locations()->{libpath}.'/'.$file))[9];
|
||||
if (!defined $mtime)
|
||||
{
|
||||
if ($file =~ /\.css$/so)
|
||||
{
|
||||
return 'skins/empty.css';
|
||||
}
|
||||
elsif ($file =~ /\.js$/so)
|
||||
{
|
||||
return 'js/empty.js';
|
||||
}
|
||||
return $file;
|
||||
}
|
||||
return "$file?$mtime";
|
||||
},
|
||||
|
||||
# Returns the text with backslashes, single/double quotes,
|
||||
# and newlines/carriage returns escaped for use in JS strings.
|
||||
js => sub
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Log in to [% terms.Bugzilla %]</title>
|
||||
<script type="text/javascript" src="js/resize-iframe.js"></script>
|
||||
<script type="text/javascript" src="[% 'js/resize-iframe.js' | ts_url %]"></script>
|
||||
</head>
|
||||
<body onload="document.forms['login'].Bugzilla_login.focus()">
|
||||
|
||||
|
|
|
@ -55,8 +55,8 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %]
|
|||
[% ELSE %]
|
||||
<html>
|
||||
<head>
|
||||
<link href="skins/standard/create_attachment.css" rel="stylesheet" type="text/css" />
|
||||
<script src="js/attachment.js" type="text/javascript"></script>
|
||||
<link href="[% 'skins/standard/create_attachment.css' | ts_url %]" rel="stylesheet" type="text/css" />
|
||||
<script src="[% 'js/attachment.js' | ts_url %]" type="text/javascript"></script>
|
||||
</head>
|
||||
<body onload="[% onload FILTER html %]">
|
||||
[% END %]
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<title>[% title FILTER html %]</title>
|
||||
<base href="[% urlbase FILTER html %]" [% IF Bugzilla.cgi.param('target') == '_blank' %] target="_blank"[% END %] />
|
||||
<script type="text/javascript" src="js/resize-iframe.js"></script>
|
||||
<script type="text/javascript" src="[% 'js/resize-iframe.js' | ts_url %]"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
[% DEFAULT flag_table_id = "flags" %]
|
||||
|
||||
<script type="text/javascript" src="js/flag.js"></script>
|
||||
<script type="text/javascript" src="[% 'js/flag.js' | ts_url %]"></script>
|
||||
|
||||
<table id="[% flag_table_id | html %]" class="flag_table">
|
||||
[% UNLESS flag_no_header %]
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
# Always present.
|
||||
#%]
|
||||
[% FOREACH style_url = style_urls %]
|
||||
<link href="[% style_url FILTER html %]"
|
||||
<link href="[% style_url | ts_url | html %]"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
[% END %]
|
||||
|
@ -104,7 +104,7 @@
|
|||
# Use it to import CSS fixes so that Bugzilla looks decent on IE 7
|
||||
# and below.
|
||||
#%]
|
||||
<link href="skins/standard/IE-fixes.css"
|
||||
<link href="[% 'skins/standard/IE-fixes.css' | ts_url %]"
|
||||
rel="stylesheet"
|
||||
type="text/css">
|
||||
<![endif]-->
|
||||
|
@ -117,7 +117,7 @@
|
|||
# Причём в Bugzilla 4 их указывают в другом порядке, и получается нормально. O_o %]
|
||||
[% IF 0 # user.settings.skin.is_enabled %]
|
||||
[% FOREACH style_url = style_urls %]
|
||||
<link href="[% style_url FILTER html %]"
|
||||
<link href="[% style_url | ts_url | html %]"
|
||||
rel="[% 'alternate ' IF user_skin %]stylesheet"
|
||||
title="[% lc_messages.setting_descs.standard FILTER html %]"
|
||||
type="text/css" />
|
||||
|
@ -127,7 +127,7 @@
|
|||
# Use it to import CSS fixes so that Bugzilla looks decent on IE 7
|
||||
# and below.
|
||||
#%]
|
||||
<link href="skins/standard/IE-fixes.css"
|
||||
<link href="[% 'skins/standard/IE-fixes.css' | ts_url | html %]"
|
||||
rel="[% 'alternate ' IF user_skin %]stylesheet"
|
||||
title="[% lc_messages.setting_descs.standard FILTER html %]"
|
||||
type="text/css" />
|
||||
|
@ -145,7 +145,7 @@
|
|||
[% contrib_skin = contrib_skin FILTER url_quote %]
|
||||
[% IF contrib_skin.match('\.css$') %]
|
||||
[%# 1st skin variant: single-file stylesheet %]
|
||||
<link href="[% "skins/contrib/$contrib_skin" %]"
|
||||
<link href="[% "skins/contrib/$contrib_skin" | ts_url %]"
|
||||
rel="[% 'alternate ' UNLESS contrib_skin == user_skin %]stylesheet"
|
||||
title="[% contrib_skin FILTER html %]"
|
||||
type="text/css" />
|
||||
|
@ -153,8 +153,7 @@
|
|||
[%# 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/") %]"
|
||||
<link href="[% style_url.replace('^skins/standard/', "skins/contrib/$contrib_skin/") | ts_url %]"
|
||||
rel="[% 'alternate ' UNLESS contrib_skin == user_skin %]stylesheet"
|
||||
title="[% contrib_skin FILTER html %]"
|
||||
type="text/css" />
|
||||
|
@ -165,7 +164,7 @@
|
|||
# Use it to import CSS fixes so that Bugzilla looks decent on IE 7
|
||||
# and below.
|
||||
#%]
|
||||
<link href="skins/contrib/[% contrib_skin FILTER html %]/IE-fixes.css"
|
||||
<link href="[% ('skins/contrib/' _ contrib_skin _ '/IE-fixes.css') | ts_url | html %]"
|
||||
rel="[% 'alternate ' UNLESS contrib_skin == user_skin %]stylesheet"
|
||||
title="[% contrib_skin FILTER html %]"
|
||||
type="text/css" />
|
||||
|
@ -187,8 +186,7 @@
|
|||
#%]
|
||||
[% 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" />
|
||||
<link href="[% style_url.replace('^skins/standard/', "skins/custom/") | ts_url | html %]" rel="stylesheet" type="text/css" />
|
||||
[% END %]
|
||||
[% END %]
|
||||
<!--[if lte IE 7]>
|
||||
|
@ -196,14 +194,14 @@
|
|||
# Use it to import CSS fixes so that Bugzilla looks decent on IE 7
|
||||
# and below.
|
||||
#%]
|
||||
<link href="skins/custom/IE-fixes.css"
|
||||
<link href="[% 'skins/custom/IE-fixes.css' | ts_url %]"
|
||||
rel="stylesheet"
|
||||
type="text/css" />
|
||||
<![endif]-->
|
||||
|
||||
<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>
|
||||
<script src="[% 'js/util.js' | ts_url %]" type="text/javascript"></script>
|
||||
<script src="[% 'js/global.js' | ts_url %]" type="text/javascript"></script>
|
||||
<script src="[% 'js/hinter.js' | ts_url %]" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
[%# The language selector needs javascript to set its cookie,
|
||||
|
@ -236,7 +234,7 @@
|
|||
|
||||
[% IF javascript_urls %]
|
||||
[% FOREACH javascript_url = javascript_urls %]
|
||||
<script src="[% javascript_url FILTER html %]" type="text/javascript"></script>
|
||||
<script src="[% javascript_url | ts_url | html %]" type="text/javascript"></script>
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
<title>[% title FILTER html %]</title>
|
||||
<base href="[% urlbase FILTER html %]" [% IF Bugzilla.cgi.param('target') == '_blank' %] target="_blank"[% END %] />
|
||||
<link href="skins/standard/buglist.css" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="js/resize-iframe.js"></script>
|
||||
<script type="text/javascript" src="[% 'js/resize-iframe.js' | ts_url %]"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<head>
|
||||
<title>[% title FILTER html %]</title>
|
||||
<base href="[% urlbase FILTER html %]" [% IF Bugzilla.cgi.param('target') == '_blank' %] target="_blank"[% END %] />
|
||||
<script type="text/javascript" src="js/resize-iframe.js"></script>
|
||||
<script type="text/javascript" src="[% 'js/resize-iframe.js' | ts_url %]"></script>
|
||||
</head>
|
||||
<body>
|
||||
[% PROCESS "reports/report-table.html.tmpl" %]
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Печать SCRUM-карточек[% IF searchname || defaultsavename %][% ": " _ (searchname || defaultsavename) | html %][% END %]</title>
|
||||
<link rel="stylesheet" type="text/css" media="print" href="skins/standard/print.css" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="[% 'skins/standard/print.css' | ts_url %]" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<script type="text/javascript" src="js/util.js"></script>
|
||||
<script type="text/javascript" src="[% 'js/util.js' | ts_url %]"></script>
|
||||
<style type="text/css">
|
||||
.dot { border: 1px dashed black; }
|
||||
.dot { white-space: nowrap; }
|
||||
|
@ -184,8 +184,8 @@ var nc = [% t.cols || "0" %];
|
|||
var idlist = [ [% idlist_js || "" %] ];
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript" src="js/DragDrop.js"></script>
|
||||
<script type="text/javascript" src="js/scrumcards.js"></script>
|
||||
<script type="text/javascript" src="[% 'js/DragDrop.js' | ts_url %]"></script>
|
||||
<script type="text/javascript" src="[% 'js/scrumcards.js' | ts_url %]"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -123,4 +123,4 @@
|
|||
<input type="hidden" id="boolean_chart_form_save" />
|
||||
<div style="clear: both"></div>
|
||||
|
||||
<script type="text/javascript" src="js/charts.js"></script>
|
||||
<script type="text/javascript" src="[% 'js/charts.js' | ts_url %]"></script>
|
||||
|
|
|
@ -20,10 +20,10 @@
|
|||
# Gervase Markham <gerv@gerv.net>
|
||||
#%]
|
||||
|
||||
<script type="text/javascript" src="js/query-visibility.js"></script>
|
||||
<script type="text/javascript" src="js/field.js"></script>
|
||||
<script type="text/javascript" src="[% 'js/query-visibility.js' | ts_url %]"></script>
|
||||
<script type="text/javascript" src="[% 'js/field.js' | ts_url %]"></script>
|
||||
<script type="text/javascript" src="fieldvaluecontrol.cgi?user=[% Bugzilla.user.id %]"></script>
|
||||
<script type="text/javascript" src="js/query-form.js"></script>
|
||||
<script type="text/javascript" src="[% 'js/query-form.js' | ts_url %]"></script>
|
||||
|
||||
[% SET checkwidths = [] %]
|
||||
|
||||
|
|
Loading…
Reference in New Issue