From 7b34e204bde7addca80050f2e34eca530c9600f2 Mon Sep 17 00:00:00 2001 From: Dave Lawrence Date: Mon, 14 Jan 2013 16:40:25 -0500 Subject: Bug 829709 - Do not load CSS files from all skins by default --- Bugzilla/Template.pm | 49 ++++++++--------------------- template/en/default/global/header.html.tmpl | 44 +++++--------------------- 2 files changed, 21 insertions(+), 72 deletions(-) diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm index 5d70cb73f..fae632a73 100644 --- a/Bugzilla/Template.pm +++ b/Bugzilla/Template.pm @@ -401,13 +401,10 @@ sub mtime_filter { # # 1. YUI CSS # 2. Standard Bugzilla stylesheet set (persistent) -# 3. Standard Bugzilla stylesheet set (selectable) -# 4. All third-party "skin" stylesheet sets (selectable) -# 5. Page-specific styles -# 6. 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. +# 3. Third-party "skin" stylesheet set, per user prefs (persistent) +# 4. Page-specific styles +# 5. Custom Bugzilla stylesheet set (persistent) + sub css_files { my ($style_urls, $yui, $yui_css) = @_; @@ -424,18 +421,10 @@ sub css_files { my @css_sets = map { _css_link_set($_) } @requested_css; - my %by_type = (standard => [], alternate => {}, skin => [], custom => []); + my %by_type = (standard => [], skin => [], custom => []); foreach my $set (@css_sets) { foreach my $key (keys %$set) { - if ($key eq 'alternate') { - foreach my $alternate_skin (keys %{ $set->{alternate} }) { - my $files = $by_type{alternate}->{$alternate_skin} ||= []; - push(@$files, $set->{alternate}->{$alternate_skin}); - } - } - else { - push(@{ $by_type{$key} }, $set->{$key}); - } + push(@{ $by_type{$key} }, $set->{$key}); } } @@ -452,27 +441,15 @@ sub _css_link_set { if ($file_name !~ m{(^|/)skins/standard/}) { return \%set; } - - my $skin_user_prefs = Bugzilla->user->settings->{skin}; + + my $skin = Bugzilla->user->settings->{skin}->{value}; my $cgi_path = bz_locations()->{'cgi_path'}; - # If the DB is not accessible, user settings are not available. - my $all_skins = $skin_user_prefs ? $skin_user_prefs->legal_values : []; - my %skin_urls; - foreach my $option (@$all_skins) { - next if $option eq 'standard'; - my $skin_file_name = $file_name; - $skin_file_name =~ s{(^|/)skins/standard/}{skins/contrib/$option/}; - if (my $mtime = _mtime("$cgi_path/$skin_file_name")) { - $skin_urls{$option} = mtime_filter($skin_file_name, $mtime); - } - } - $set{alternate} = \%skin_urls; - - my $skin = $skin_user_prefs->{'value'}; - if ($skin ne 'standard' and defined $set{alternate}->{$skin}) { - $set{skin} = delete $set{alternate}->{$skin}; + 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); } - + my $custom_file_name = $file_name; $custom_file_name =~ s{(^|/)skins/standard/}{skins/custom/}; if (my $custom_mtime = _mtime("$cgi_path/$custom_file_name")) { diff --git a/template/en/default/global/header.html.tmpl b/template/en/default/global/header.html.tmpl index 7b7739ec5..08533ef95 100644 --- a/template/en/default/global/header.html.tmpl +++ b/template/en/default/global/header.html.tmpl @@ -37,10 +37,6 @@ # atomlink: Atom link URL, May contain HTML #%] -[% IF message %] - [% PROCESS global/messages.html.tmpl %] -[% END %] - [% DEFAULT subheader = "" header_addl_info = "" @@ -111,12 +107,8 @@ [% SET yui = yui_resolve_deps(yui, yui_deps) %] [% SET css_sets = css_files(style_urls, yui, yui_css) %] - [%# CSS cascade, part 1: Standard Bugzilla stylesheet set (persistent). - # Always present. - #%] - [%# This allows people to switch back to the "Classic" skin if they - # are in another skin. - #%] + [%# CSS cascade, parts 1 & 2: YUI & Standard Bugzilla stylesheet set (persistent). + # Always present. %] @@ -124,22 +116,12 @@ [% PROCESS format_css_link css_set_name = 'standard' %] [% END %] - [%# CSS cascade, part 2 & 3: Third-party stylesheet set (selected and - # selectable). All third-party skins are present as alternate - # stylesheets, even if they are not currently in use. - #%] + [%# CSS cascade, part 3: Third-party stylesheet set, per user prefs. %] [% FOREACH style_url = css_sets.skin %] [% PROCESS format_css_link css_set_name = user.settings.skin.value %] [% END %] - [% FOREACH alternate_skin = css_sets.alternate.keys %] - [% FOREACH style_url = css_sets.alternate.$alternate_skin %] - [% PROCESS format_css_link css_set_name = alternate_skin %] - [% END %] - [% END %] - - [%# CSS cascade, part 4: page-specific styles. - #%] + [%# CSS cascade, part 4: page-specific styles. %] [% IF style %]