]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1016199: move skins/assets to data/assets
authorByron Jones <glob@mozilla.com>
Wed, 28 May 2014 04:28:18 +0000 (12:28 +0800)
committerByron Jones <glob@mozilla.com>
Wed, 28 May 2014 04:28:18 +0000 (12:28 +0800)
r=dkl, a=justdave

.gitignore
Bugzilla/Constants.pm
Bugzilla/Install/Filesystem.pm
Bugzilla/Template.pm
skins/README

index e6ff85a3b0927c94573afaca4c4856056f7b6327..f30e8f9ae13fb530f2a83ca27537b7a8ae0d737c 100644 (file)
@@ -10,6 +10,5 @@
 /localconfig
 /index.html
 
-/skins/assets
 /skins/contrib/Dusk/admin.css
 /skins/contrib/Dusk/bug.css
index 8b980c0b13d1b6d68a6ebf449cc423859f4ee1e3..74062df6301539ee9b23238e0bbe2686267f49b2 100644 (file)
@@ -682,6 +682,7 @@ sub _bz_locations {
         # The script should really generate these graphs directly...
         'webdotdir'   => "$datadir/webdot",
         'extensionsdir' => "$libpath/extensions",
+        'assetsdir'   => "$datadir/assets",
     };
 }
 
index b2ac04acaeffce7e8d381f1c405e55b7bd3a00dd..d980a2199476abe12cd47d32aed955e0e0a7c36a 100644 (file)
@@ -117,6 +117,7 @@ sub FILESYSTEM {
     my $localconfig   = bz_locations()->{'localconfig'};
     my $template_cache = bz_locations()->{'template_cache'};
     my $graphsdir     = bz_locations()->{'graphsdir'};
+    my $assetsdir     = bz_locations()->{'assetsdir'};
 
     # We want to set the permissions the same for all localconfig files
     # across all PROJECTs, so we do something special with $localconfig,
@@ -199,7 +200,7 @@ sub FILESYSTEM {
                                   dirs => DIR_CGI_WRITE | DIR_ALSO_WS_SERVE },
          "$datadir/db"      => { files => CGI_WRITE,
                                   dirs => DIR_CGI_WRITE },
-         "$skinsdir/assets" => { files => WS_SERVE,
+         $assetsdir         => { files => WS_SERVE,
                                   dirs => DIR_CGI_OVERWRITE | DIR_ALSO_WS_SERVE },
 
          # Readable directories
@@ -260,7 +261,8 @@ sub FILESYSTEM {
     # The name of each directory that we should actually *create*,
     # pointing at its default permissions.
     my %create_dirs = (
-        # This is DIR_ALSO_WS_SERVE because it contains $webdotdir.
+        # This is DIR_ALSO_WS_SERVE because it contains $webdotdir and
+        # $assetsdir.
         $datadir                => DIR_CGI_OVERWRITE | DIR_ALSO_WS_SERVE,
         # Directories that are read-only for cgi scripts
         "$datadir/mining"       => DIR_CGI_READ,
@@ -271,7 +273,7 @@ sub FILESYSTEM {
         $attachdir              => DIR_CGI_WRITE,
         $graphsdir              => DIR_CGI_WRITE | DIR_ALSO_WS_SERVE,
         $webdotdir              => DIR_CGI_WRITE | DIR_ALSO_WS_SERVE,
-        "$skinsdir/assets"      => DIR_CGI_WRITE | DIR_ALSO_WS_SERVE,
+        $assetsdir              => DIR_CGI_WRITE | DIR_ALSO_WS_SERVE,
         # Directories that contain content served directly by the web server.
         "$skinsdir/custom"      => DIR_WS_SERVE,
         "$skinsdir/contrib"     => DIR_WS_SERVE,
@@ -361,6 +363,18 @@ EOT
 Deny from all
 EOT
         },
+
+        "$assetsdir/.htaccess" => { perms => WS_SERVE, contents => <<EOT
+# Allow access to .css files
+<FilesMatch \\.css\$>
+  Allow from all
+</FilesMatch>
+
+# And no directory listings, either.
+Deny from all
+EOT
+        },
+
     );
 
     Bugzilla::Hook::process('install_filesystem', {
@@ -526,9 +540,18 @@ sub _convert_single_file_skins {
 # delete all automatically generated css files to force recreation at the next
 # request.
 sub _remove_dynamic_css_files {
-    foreach my $file (glob(bz_locations()->{skinsdir} . '/assets/*.css')) {
+    foreach my $file (glob(bz_locations()->{assetsdir} . '/*.css')) {
         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 {
index 4a79f1aafadf0f1c26a95d4c88729a31f8f4523b..8b5eed1c53157b84fceb3ee6c0d20a82b0fae6bc 100644 (file)
@@ -499,13 +499,13 @@ sub _concatenate_css {
         } @sources;
 
     my $cgi_path   = bz_locations()->{cgi_path};
-    my $skins_path = bz_locations()->{skinsdir};
+    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 . '/assets/' . md5_hex($source) . '.css';
+        my $file = $skins_path . '/' . md5_hex($source) . '.css';
         if (!-e $file) {
             my $content = read_file("$cgi_path/$files{$source}");
 
@@ -523,7 +523,7 @@ sub _concatenate_css {
     }
 
     # concat files
-    my $file = $skins_path . '/assets/' . md5_hex(join(' ', @sources)) . '.css';
+    my $file = $skins_path . '/' . md5_hex(join(' ', @sources)) . '.css';
     if (!-e $file) {
         my $content = '';
         foreach my $source (@minified) {
index 1deac48a2e61513949dec72e4b502657de1ad036..d649350b9c240f9daa2c70b692adba0a51c3d680 100644 (file)
@@ -1,4 +1,4 @@
-There are four directories here, standard/, custom/, contrib/, and assets/.
+There are three directories here, standard/, custom/, and contrib/.
 
 standard/ holds the standard stylesheets. These are used no matter what skin
 the user selects. If the user selects the "Classic" skin, then *only* the
@@ -16,6 +16,3 @@ if you want to override some CSS in skins/standard/global.css, then you should
 create a file called "global.css" in custom/ and put some CSS in it. The CSS
 you put into files in custom/ will be used *in addition* to the CSS in
 skins/standard/ or the CSS in skins/contrib/. It will apply to every skin.
-
-assets/ holds the minified and concatenated files which are created by
-checksetup.pl and Bugzilla::Template.  Do not edit the files in this directory.