This commit is contained in:
Austin King 2014-07-10 13:03:46 -07:00
Родитель 2fc8d05749
Коммит 1fdcf84124
14 изменённых файлов: 167 добавлений и 134 удалений

Просмотреть файл

@ -1,57 +1,63 @@
var _ = require('underscore');
var path = require('path');
var assetLists = require('./server/lib/assets').sources;
function prefixAssets(prefix, assets) {
if ('string' === typeof assets) {
assets = ('www' + assets).replace('.min', '');
} else {
assets.forEach(function(asset, i) {
assets[i] = ('www' + asset).replace('.min', '');
});
}
return assets;
function minToSourceFilename(min) {
return min.replace('.min', '.full');
}
module.exports = function(grunt) {
// TODO: Supports only one JS Build destination,
// Should do any/all .js mappings. Same for CSS
var jsAssetKey = Object.keys(assetLists.js)[0];
var jsDest = prefixAssets('www', jsAssetKey);
var jsDestMin = jsDest.replace('.js', '.min.js');
var jsSources = prefixAssets('www', assetLists.js[jsAssetKey]);
var concatConfig = {};
var cleanConfig = [];
var uglifyConfig = {};
var cssminConfig = {};
uglifyAssets = {};
uglifyAssets[jsDestMin] = [jsDest];
['js', 'css'].forEach(function(type) {
Object.keys(assetLists[type]).forEach(function(minifiedFile) {
var sources = _.map(assetLists[type][minifiedFile], function(filename) {
return path.join('www', filename);
});
var cssAssetKey = Object.keys(assetLists.css)[0];
var cssDest = prefixAssets('www', cssAssetKey);
var cssSources = prefixAssets('www', assetLists.css[cssAssetKey]);
concatConfig[minifiedFile] = {
src: sources,
dest: path.join('www', minToSourceFilename(minifiedFile))
};
allAssets = {};
allAssets[jsDest] = jsSources;
allAssets[cssDest] = cssSources;
cleanConfig.push(path.join('www', minToSourceFilename(minifiedFile)));
if ('js' === type) {
uglifyConfig[path.join('www', minifiedFile)] = sources
//[path.join('www', minToSourceFilename(minifiedFile))];
} else if ('css' === type) {
cssminConfig[minifiedFile] = {
src: path.join('www', minToSourceFilename(minifiedFile)),
dest: path.join('www', minifiedFile)
}
}
});
});
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
all_assets: {
files: allAssets
},
},
concat: concatConfig,
uglify: {
options: {
banner: '/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n',
sourceMap: true,
mangle: false,
compress: false
},
all_assets: {
files: uglifyAssets
files: uglifyConfig
}
},
cssmin: {
css: {
src: 'www/css/style.css',
dest: 'www/css/style.min.css'
}
},
clean: ['www/js/betafox.js', 'www/css/style.css']
cssmin: cssminConfig,
clean: cleanConfig
});
grunt.loadNpmTasks('grunt-contrib-clean');

Просмотреть файл

@ -19,9 +19,7 @@
"url": "https://github.com/mozilla/betafox/issues"
},
"homepage": "https://github.com/mozilla/betafox",
"dependencies": {
},
"dependencies": {},
"devDependencies": {
"grunt": "~0.4.2",
"grunt-contrib-clean": "^0.5.0",
@ -29,7 +27,7 @@
"grunt-contrib-cssmin": "~0.9.0",
"grunt-contrib-jshint": "~0.6.3",
"grunt-contrib-nodeunit": "~0.2.0",
"grunt-contrib-uglify": "~0.2.2",
"grunt-contrib-uglify": "^0.5.0",
"request": "2.36.0"
}
}

Просмотреть файл

@ -15,13 +15,16 @@ exports.sources = {
'/js/lib/long-stack-trace-zone.js',
'/js/lib/jquery-2.1.1.js',
'/js/lib/jquery.fittext.js',
'/js/lib/qrcode.js',
'/js/main.js',
'/js/persona.js',
'/js/app_install.js'
'/js/persona.js'
],
'/js/home.js': [
'/js/home.min.js': [
'/js/home.js'
],
'/js/app_install.min.js': [
'/js/lib/jquery-2.1.1.js',
'/js/app_install.js'
]
},
css: {
@ -36,10 +39,10 @@ exports.sources = {
'/css/common.css',
'/css/app_install.css'
],
'/css/home.css': [
'/css/home.min.css': [
'/css/home.css'
],
'/css/help.css': [
'/css/help.min.css': [
'/css/help.css'
]
}

Просмотреть файл

@ -7,7 +7,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BetaFox - {{app.name}}</title>
<link rel="stylesheet" href="/fonts/Fira-master/fira.css">
<link rel="stylesheet" href="">
{{ cachify_css('/css/app_install.min.css') }} {% block page_css %}{% endblock %}
</head>
@ -82,7 +82,8 @@
<!-- TODO Lazy load Persona on this page -->
<!-- script src="https://login.persona.org/include.js"></script -->
{{ cachify_js('/js/betafox.min.js') }} {% block page_js %}{% endblock %}
<script src="/js/lib/qrcode.js"></script>
{{ cachify_js('/js/app_install.min.js') }}
</body>
</html>

Просмотреть файл

@ -1,5 +1,5 @@
{% extends "layout.html" %}
{% block page_css %}{{ cachify_css('/css/help.css') }}{% endblock %}
{% block page_css %}{{ cachify_css('/css/help.min.css') }}{% endblock %}
{% block title %}BetaFox - Give Beta Testers access to your Apps{% endblock %}
{% block content %}
<div class="help">

Просмотреть файл

@ -1,4 +1,4 @@
{% extends "layout.html" %} {% block page_css %}{{ cachify_css('/css/home.css') }}{% endblock %} {% block template_name %}home.html{% endblock %} {% block title %}BetaFox - Give Beta Testers access to your Apps{% endblock %} {% block content %}
{% extends "layout.html" %} {% block page_css %}{{ cachify_css('/css/home.min.css') }}{% endblock %} {% block template_name %}home.html{% endblock %} {% block title %}BetaFox - Give Beta Testers access to your Apps{% endblock %} {% block content %}
<div class="home">
{% if not isAuthenticated %}<a class="login persona btn" href="">Log in</a>{% endif %}

2
www/css/style.min.css поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -1,197 +1,197 @@
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-Hair.eot');
src: url('/fonts/Fira-master/eot/FiraSans-Hair.eot');
src: local('Fira Sans Hair'),
url('eot/FiraSans-Hair.eot') format('embedded-opentype'),
url('woff/FiraSans-Hair.woff') format('woff'),
url('ttf/FiraSans-Hair.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-Hair.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-Hair.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-Hair.ttf') format('truetype');
font-weight: 100;
font-style: normal;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-HairItalic.eot');
src: url('/fonts/Fira-master/eot/FiraSans-HairItalic.eot');
src: local('Fira Sans Hair Italic'),
url('eot/FiraSans-HairItalic.eot') format('embedded-opentype'),
url('woff/FiraSans-HairItalic.woff') format('woff'),
url('ttf/FiraSans-HairItalic.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-HairItalic.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-HairItalic.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-HairItalic.ttf') format('truetype');
font-weight: 100;
font-style: italic;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-UltraLight.eot');
src: url('/fonts/Fira-master/eot/FiraSans-UltraLight.eot');
src: local('Fira Sans UltraLight'),
url('eot/FiraSans-UltraLight.eot') format('embedded-opentype'),
url('woff/FiraSans-UltraLight.woff') format('woff'),
url('ttf/FiraSans-UltraLight.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-UltraLight.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-UltraLight.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-UltraLight.ttf') format('truetype');
font-weight: 200;
font-style: normal;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-UltraLightItalic.eot');
src: url('/fonts/Fira-master/eot/FiraSans-UltraLightItalic.eot');
src: local('Fira Sans UltraLight Italic'),
url('eot/FiraSans-UltraLightItalic.eot') format('embedded-opentype'),
url('woff/FiraSans-UltraLightItalic.woff') format('woff'),
url('ttf/FiraSans-UltraLightItalic.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-UltraLightItalic.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-UltraLightItalic.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-UltraLightItalic.ttf') format('truetype');
font-weight: 200;
font-style: italic;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-Light.eot');
src: url('/fonts/Fira-master/eot/FiraSans-Light.eot');
src: local('Fira Sans Light'),
url('eot/FiraSans-Light.eot') format('embedded-opentype'),
url('woff/FiraSans-Light.woff') format('woff'),
url('ttf/FiraSans-Light.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-Light.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-Light.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-Light.ttf') format('truetype');
font-weight: 300;
font-style: normal;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-LightItalic.eot');
src: url('/fonts/Fira-master/eot/FiraSans-LightItalic.eot');
src: local('Fira Sans Light Italic'),
url('eot/FiraSans-LightItalic.eot') format('embedded-opentype'),
url('woff/FiraSans-LightItalic.woff') format('woff'),
url('ttf/FiraSans-LightItalic.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-LightItalic.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-LightItalic.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-LightItalic.ttf') format('truetype');
font-weight: 300;
font-style: italic;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-Regular.eot');
src: url('/fonts/Fira-master/eot/FiraSans-Regular.eot');
src: local('Fira Sans Regular'),
url('eot/FiraSans-Regular.eot') format('embedded-opentype'),
url('woff/FiraSans-Regular.woff') format('woff'),
url('ttf/FiraSans-Regular.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-Regular.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-Regular.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-Regular.ttf') format('truetype');
font-weight: 400;
font-style: normal;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-RegularItalic.eot');
src: url('/fonts/Fira-master/eot/FiraSans-RegularItalic.eot');
src: local('Fira Sans Regular Italic'),
url('eot/FiraSans-RegularItalic.eot') format('embedded-opentype'),
url('woff/FiraSans-RegularItalic.woff') format('woff'),
url('ttf/FiraSans-RegularItalic.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-RegularItalic.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-RegularItalic.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-RegularItalic.ttf') format('truetype');
font-weight: 400;
font-style: italic;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-Medium.eot');
src: url('/fonts/Fira-master/eot/FiraSans-Medium.eot');
src: local('Fira Sans Medium'),
url('eot/FiraSans-Medium.eot') format('embedded-opentype'),
url('woff/FiraSans-Medium.woff') format('woff'),
url('ttf/FiraSans-Medium.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-Medium.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-Medium.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-Medium.ttf') format('truetype');
font-weight: 500;
font-style: normal;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-MediumItalic.eot');
src: url('/fonts/Fira-master/eot/FiraSans-MediumItalic.eot');
src: local('Fira Sans Medium Italic'),
url('eot/FiraSans-MediumItalic.eot') format('embedded-opentype'),
url('woff/FiraSans-MediumItalic.woff') format('woff'),
url('ttf/FiraSans-MediumItalic.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-MediumItalic.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-MediumItalic.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-MediumItalic.ttf') format('truetype');
font-weight: 500;
font-style: italic;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-SemiBold.eot');
src: url('/fonts/Fira-master/eot/FiraSans-SemiBold.eot');
src: local('Fira Sans SemiBold'),
url('eot/FiraSans-SemiBold.eot') format('embedded-opentype'),
url('woff/FiraSans-SemiBold.woff') format('woff'),
url('ttf/FiraSans-SemiBold.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-SemiBold.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-SemiBold.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-SemiBold.ttf') format('truetype');
font-weight: 600;
font-style: normal;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-SemiBoldItalic.eot');
src: url('/fonts/Fira-master/eot/FiraSans-SemiBoldItalic.eot');
src: local('Fira Sans SemiBold Italic'),
url('eot/FiraSans-SemiBoldItalic.eot') format('embedded-opentype'),
url('woff/FiraSans-SemiBoldItalic.woff') format('woff'),
url('ttf/FiraSans-SemiBoldItalic.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-SemiBoldItalic.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-SemiBoldItalic.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-SemiBoldItalic.ttf') format('truetype');
font-weight: 600;
font-style: italic;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-Bold.eot');
src: url('/fonts/Fira-master/eot/FiraSans-Bold.eot');
src: local('Fira Sans Bold'),
url('eot/FiraSans-Bold.eot') format('embedded-opentype'),
url('woff/FiraSans-Bold.woff') format('woff'),
url('ttf/FiraSans-Bold.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-Bold.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-Bold.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-Bold.ttf') format('truetype');
font-weight: 700;
font-style: normal;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-BoldItalic.eot');
src: url('/fonts/Fira-master/eot/FiraSans-BoldItalic.eot');
src: local('Fira Sans Bold Italic'),
url('eot/FiraSans-BoldItalic.eot') format('embedded-opentype'),
url('woff/FiraSans-BoldItalic.woff') format('woff'),
url('ttf/FiraSans-BoldItalic.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-BoldItalic.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-BoldItalic.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-BoldItalic.ttf') format('truetype');
font-weight: 700;
font-style: italic;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-ExtraBold.eot');
src: url('/fonts/Fira-master/eot/FiraSans-ExtraBold.eot');
src: local('Fira Sans ExtraBold'),
url('eot/FiraSans-ExtraBold.eot') format('embedded-opentype'),
url('woff/FiraSans-ExtraBold.woff') format('woff'),
url('ttf/FiraSans-ExtraBold.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-ExtraBold.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-ExtraBold.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-ExtraBold.ttf') format('truetype');
font-weight: 800;
font-style: normal;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-ExtraBoldItalic.eot');
src: url('/fonts/Fira-master/eot/FiraSans-ExtraBoldItalic.eot');
src: local('Fira Sans ExtraBold Italic'),
url('eot/FiraSans-ExtraBoldItalic.eot') format('embedded-opentype'),
url('woff/FiraSans-ExtraBoldItalic.woff') format('woff'),
url('ttf/FiraSans-ExtraBoldItalic.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-ExtraBoldItalic.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-ExtraBoldItalic.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-ExtraBoldItalic.ttf') format('truetype');
font-weight: 800;
font-style: italic;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-Heavy.eot');
src: url('/fonts/Fira-master/eot/FiraSans-Heavy.eot');
src: local('Fira Sans Heavy'),
url('eot/FiraSans-Heavy.eot') format('embedded-opentype'),
url('woff/FiraSans-Heavy.woff') format('woff'),
url('ttf/FiraSans-Heavy.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-Heavy.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-Heavy.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-Heavy.ttf') format('truetype');
font-weight: 900;
font-style: normal;
}
@font-face{
font-family: 'Fira Sans';
src: url('eot/FiraSans-HeavyItalic.eot');
src: url('/fonts/Fira-master/eot/FiraSans-HeavyItalic.eot');
src: local('Fira Sans Heavy Italic'),
url('eot/FiraSans-HeavyItalic.eot') format('embedded-opentype'),
url('woff/FiraSans-HeavyItalic.woff') format('woff'),
url('ttf/FiraSans-HeavyItalic.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraSans-HeavyItalic.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraSans-HeavyItalic.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraSans-HeavyItalic.ttf') format('truetype');
font-weight: 900;
font-style: italic;
}
@ -199,22 +199,22 @@
@font-face{
font-family: 'Fira Mono';
src: url('eot/FiraMono-Regular.eot');
src: url('/fonts/Fira-master/eot/FiraMono-Regular.eot');
src: local('Fira Mono'),
url('eot/FiraMono-Regular.eot') format('embedded-opentype'),
url('woff/FiraMono-Regular.woff') format('woff'),
url('ttf/FiraMono-Regular.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraMono-Regular.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraMono-Regular.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraMono-Regular.ttf') format('truetype');
font-weight: 400;
font-style: normal;
}
@font-face{
font-family: 'Fira Mono';
src: url('eot/FiraMono-Bold.eot');
src: url('/fonts/Fira-master/eot/FiraMono-Bold.eot');
src: local('Fira Mono Bold'),
url('eot/FiraMono-Bold.eot') format('embedded-opentype'),
url('woff/FiraMono-Bold.woff') format('woff'),
url('ttf/FiraMono-Bold.ttf') format('truetype');
url('/fonts/Fira-master/eot/FiraMono-Bold.eot') format('embedded-opentype'),
url('/fonts/Fira-master/woff/FiraMono-Bold.woff') format('woff'),
url('/fonts/Fira-master/ttf/FiraMono-Bold.ttf') format('truetype');
font-weight: 600;
font-style: normal;
}

11
www/js/app_install.min.js поставляемый Normal file

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

10
www/js/betafox.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

7
www/js/home.min.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1,7 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
function afterLogin(){window.location.reload()}
//# sourceMappingURL=home.min.js.map

1
www/js/home.min.js.map Normal file
Просмотреть файл

@ -0,0 +1 @@
{"version":3,"file":"home.min.js","sources":["home.js"],"names":["afterLogin","window","location","reload"],"mappings":";;;;;AAAA,QAASA,cACPC,OAAOC,SAASC"}