This commit is contained in:
Nikos Verschore 2014-11-27 22:25:03 +01:00
Родитель a4283f16da
Коммит 3b37867d3d
37 изменённых файлов: 1479 добавлений и 134 удалений

33
website/overview/Gemfile Normal file
Просмотреть файл

@ -0,0 +1,33 @@
source 'https://rubygems.org'
group :development do
# Sass, Compass and extensions.
gem 'sass', '3.2.19' # Sass.
gem 'sass-globbing' # Import Sass files based on globbing pattern.
gem 'compass', '0.12.5' # Framework built on Sass.
gem 'compass-validator' # So you can `compass validate`.
gem 'compass-normalize' # Compass version of normalize.css.
gem 'compass-rgbapng' # Turns rgba() into .png's for backwards compatibility.
gem 'susy' # Susy grid framework.
gem 'singularitygs' # Alternative to the Susy grid framework.
gem 'toolkit' # Compass utility from the fabulous Snugug.
gem 'breakpoint' # Manages CSS media queries.
gem 'oily_png' # Faster Compass sprite generation.
gem 'css_parser' # Helps `compass stats` output statistics.
# Guard
gem 'guard' # Guard event handler.
gem 'guard-compass' # Compile on sass/scss change.
gem 'guard-shell' # Run shell commands.
gem 'guard-livereload' # Browser reload.
gem 'yajl-ruby' # Faster JSON with LiveReload in the browser.
# Dependency to prevent polling. Setup for multiple OS environments.
# Optionally remove the lines not specific to your OS.
# https://github.com/guard/guard#efficient-filesystem-handling
gem 'rb-inotify', '~> 0.9', :require => false # Linux
gem 'rb-fsevent', :require => false # Mac OSX
gem 'rb-fchange', :require => false # Windows
end

12
website/overview/INSTALL Normal file
Просмотреть файл

@ -0,0 +1,12 @@
# Install Bundler
gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm install 1.9.3
gem install rubygems-bundler
# Install dependencies with bundler
bundle install
# Compile SASS
compass compile

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

@ -0,0 +1,42 @@
##
## This file is only needed for Compass/Sass integration. If you are not using
## Compass, you may safely ignore or delete this file.
##
## If you'd like to learn more about Sass and Compass, see the sass/README.txt
## file for more information.
##
# Change this to :production when ready to deploy the CSS to the live server.
environment = :development
# Location of the theme's resources.
css_dir = "css"
sass_dir = "sass"
images_dir = "images"
generated_images_dir = images_dir + "/generated"
javascripts_dir = "js"
# Require any additional compass plugins installed on your system.
require 'compass-normalize'
require 'rgbapng'
require 'toolkit'
require 'susy'
##
## You probably don't need to edit anything below this.
##
# You can select your preferred output style here (:expanded, :nested, :compact
# or :compressed).
output_style = (environment == :development) ? :expanded : :expanded
# To enable relative paths to assets via compass helper functions. Since Drupal
# themes can be installed in multiple locations, we don't need to worry about
# the absolute path to the theme from the server omega.
relative_assets = true
# Conditionall enable line comments when in development mode.
line_comments = (environment == :development) ? true : false
# Output debugging info in development mode.
sass_options = (environment == :development) ? {:debug_info => true} : {}

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

@ -0,0 +1,405 @@
/***************************************/
/* Icon dimensions are calculated with
/* $unit, so they will also scale when
/* $unit is changed. But at the default
/* 6px unit, the small icon should be 16px
/* and the medium icon should be 32px.
/* (Because else the icons become fusy)
/* So therefor calculate the dimensions
/***************************************/
/**********************************************************************/
/* Introduce some associative array functionality to SASS */
/* so you can define: */
/* $var: key1 "value1", key2 "value2"; */
/* And use following functions: */
/* get($var, key1); // will return "value1" */
/* get($var, key2); // will return "value2" */
/* $var: set($var, key1, "newValue"); */
/* get($var, key1); // will return "newValue" */
/* */
/* Tips and source from: */
/* http://hugogiraudel.com/2013/08/12/sass-functions/#mapping */
/**********************************************************************/
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\000032}}
.box {
border: 1px SOLID #dddddd;
background-color: #f2f2f2;
color: #222222;
padding: 6px;
float: left;
width: 32%;
margin-right: 2%;
margin-bottom: 30px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000312}}
.box:nth-child(3n) {
margin-right: 0%;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000316}}
.box .header {
text-transform: uppercase;
padding-left: 12px;
font-weight: bold;
padding-top: 6px;
padding-bottom: 12px;
text-align: center;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000325}}
.box h3 {
color: #AAAAAA;
font-size: 15px;
font-weight: normal;
text-align: center;
margin-top: 6px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000333}}
.box .content {
background-color: white;
padding: 12px;
color: #42637b;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000339}}
.box .score {
float: right;
font-size: 1.4em;
margin-top: -0.2em;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000345}}
.box .title {
text-transform: uppercase;
margin-top: 0.4em;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000350}}
.box progress {
width: 100%;
height: 6px;
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
margin-bottom: 18px;
margin-top: 6px;
border: none;
background: #f2f2f2;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000362}}
.box progress::-moz-progress-bar {
background-color: #42637b;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000365}}
.box progress::-webkit-progress-value {
background-color: #42637b;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000371}}
.box progress.ff::-moz-progress-bar {
background-color: #f39c32;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000374}}
.box progress.ff::-webkit-progress-value {
background-color: #f39c32;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000379}}
.box .footer {
text-align: center;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000382}}
.box .footer a, .box .footer button {
display: inline-block;
width: 49%;
margin: 0px;
background-color: transparent;
border: 0px SOLID #FFFFFF;
padding-top: 18px;
padding-bottom: 12px;
cursor: pointer;
text-align: center;
color: #222222;
text-decoration: none;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\0000395}}
.box .footer a.history:before, .box .footer button.history:before {
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
margin-left: 6px;
margin-right: 6px;
content: "\e023";
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_box\.scss}line{font-family:\00003106}}
.box .footer a.subtests:before, .box .footer button.subtests:before {
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
margin-left: 6px;
margin-right: 6px;
content: "\e137";
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_base\.scss}line{font-family:\000031}}
html {
overflow-y: scroll;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_base\.scss}line{font-family:\000035}}
* {
box-sizing: border-box;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_base\.scss}line{font-family:\000039}}
.container.content {
position: relative;
padding-top: 0px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_base\.scss}line{font-family:\0000313}}
body.ff .container.content:after {
position: absolute;
content: "";
display: block;
top: -260px;
left: -130px;
background-image: url("../img/tail.png");
background-size: 90%;
background-repeat: no-repeat;
background-position: 0px 0px;
width: 500px;
height: 900px;
transform: rotate(-35deg);
z-index: -1;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_base\.scss}line{font-family:\0000329}}
.container.content h2 {
line-height: 48px;
font-weight: normal;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_base\.scss}line{font-family:\0000333}}
.container.content h2 a {
color: #000000;
text-decoration: none;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_base\.scss}line{font-family:\0000338}}
.container.content h2:after {
content: "";
display: block;
clear: both;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\000032}}
header {
background-color: #42637b;
color: white;
-webkit-box-shadow: 0px 0px 15px 0px black;
-moz-box-shadow: 0px 0px 15px 0px black;
box-shadow: 0px 0px 15px 0px black;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000310}}
header .container {
display: table;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000314}}
header select {
color: white;
background-color: #42637b;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000319}}
header #machines, header #types, header #dates {
margin-left: 6px;
margin-right: 6px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_select\.scss}line{font-family:\000037}}
header #machines select, header #machines input, header #machines div, header #types select, header #types input, header #types div, header #dates select, header #dates input, header #dates div {
-moz-appearance: toolbox;
-webkit-appearance: none;
text-indent: 0.01px;
text-overflow: '';
display: inline-block;
vertical-align: middle;
padding-right: 18px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_select\.scss}line{font-family:\0000316}}
header #machines select::-ms-expand, header #machines input::-ms-expand, header #machines div::-ms-expand, header #types select::-ms-expand, header #types input::-ms-expand, header #types div::-ms-expand, header #dates select::-ms-expand, header #dates input::-ms-expand, header #dates div::-ms-expand {
display: none;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/utility\/abstractions\/_select\.scss}line{font-family:\0000321}}
header #machines:after, header #types:after, header #dates:after {
position: absolute;
content: "\e114";
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
font-size: 0.5em;
height: 2.0em;
margin-left: -12px;
line-height: 2.0em;
pointer-events: none;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000323}}
header #dates:after {
display: none;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000328}}
header div {
display: inline-block;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000332}}
header h1 {
position: relative;
text-transform: uppercase;
font-size: 18px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000337}}
body.ff header h1:after {
background-image: url("../img/firefox.png");
background-size: 75%;
background-repeat: no-repeat;
background-position: 0px -35px;
width: 250px;
top: -15px;
bottom: -15px;
content: "";
display: block;
left: -180px;
position: absolute;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000352}}
header h1, header .rightSide {
display: table-cell;
vertical-align: middle;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000357}}
header .rightSide {
text-align: right;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000361}}
header .query {
margin-right: 24px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000365}}
header a {
text-decoration: none;
color: white;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000371}}
.subheader {
float: right;
vertical-align: bottom;
text-align: right;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000376}}
.subheader .container {
padding-top: 0px;
padding-bottom: 0px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000381}}
.subheader .history {
color: #222222;
text-decoration: none;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000385}}
.subheader .history:before {
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
margin-left: 6px;
margin-right: 6px;
content: "\e023";
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\0000397}}
.subheader .up {
color: #222222;
text-decoration: none;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\00003101}}
.subheader .up:before {
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
margin-left: 6px;
margin-right: 6px;
content: "\e113";
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\00003113}}
.subheader .button {
background-color: #f2f2f2;
border: 1px SOLID #dddddd;
padding: 12px 18px;
display: inline-block;
color: #222222;
margin-left: 12px;
margin-right: 12px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\00003122}}
.subheader .button:last-child {
margin-right: 0px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\00003126}}
.subheader .button .title, .subheader .button .result {
display: inline-block;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\00003130}}
.subheader .button .title {
text-transform: uppercase;
font-size: 15px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\00003135}}
.subheader .button .result {
color: #222222;
font-weight: bold;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\00003139}}
.subheader .button .result:before {
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
margin-left: 6px;
margin-right: 6px;
content: "\2212";
color: #b67525;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\00003151}}
.subheader .button .result.bad:before {
content: "\e114";
color: #d12600;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_header\.scss}line{font-family:\00003156}}
.subheader .button .result.good:before {
content: "\e113";
color: #2f7836;
}
@font-face {
font-family: 'Glyphicons Halflings';
src: url("http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/fonts/glyphicons-halflings-regular.eot");
src: url("http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/fonts/glyphicons-halflings-regular.woff") format("woff"), url("http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/fonts/glyphicons-halflings-regular.ttf") format("truetype"), url("http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/fonts/glyphicons-halflings-regular.svg") format("svg");
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/base\/_typography\.scss}line{font-family:\0000311}}
body {
font-family: lato;
background-color: #e6e6e6;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/components\/pages\/_main\.scss}line{font-family:\000031}}
html, body {
margin: 0px;
padding: 0px;
}
@media -sass-debug-info{filename{font-family:file\:\/\/\/vagrant\/public\/arewefastyet\.firefox\.local\/arewefastyet\/website\/overview\/sass\/partials\/components\/pages\/_main\.scss}line{font-family:\000036}}
.container {
padding: 15px;
width: 1200px;
margin-left: auto;
margin-right: auto;
}

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

@ -0,0 +1,65 @@
/*
Syntax error: Undefined variable: "$_accent".
on line 2 of /vagrant/public/arewefastyet.firefox.local/arewefastyet/website/overview/sass/partials/components/pages/main.scss
1: /vagrant/public/arewefastyet.firefox.local/arewefastyet/website/overview/sass/partials/components/pages/main.scss
Backtrace:
/vagrant/public/arewefastyet.firefox.local/arewefastyet/website/overview/sass/partials/components/pages/main.scss:2
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/script/variable.rb:49:in `_perform'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/script/node.rb:40:in `perform'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:298:in `visit_prop'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:37:in `visit'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:100:in `visit'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:53:in `block in visit_children'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:53:in `map'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:53:in `visit_children'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:109:in `block in visit_children'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:121:in `with_environment'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:108:in `visit_children'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:37:in `block in visit'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:320:in `visit_rule'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:37:in `visit'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:100:in `visit'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:53:in `block in visit_children'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:53:in `map'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:53:in `visit_children'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:109:in `block in visit_children'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:121:in `with_environment'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:108:in `visit_children'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:37:in `block in visit'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:128:in `visit_root'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/base.rb:37:in `visit'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:100:in `visit'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/visitors/perform.rb:7:in `visit'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/tree/root_node.rb:20:in `render'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/engine.rb:315:in `_render'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/sass-3.2.19/lib/sass/engine.rb:262:in `render'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/compiler.rb:139:in `block (2 levels) in compile'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/compiler.rb:126:in `timed'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/compiler.rb:138:in `block in compile'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/logger.rb:45:in `red'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/compiler.rb:137:in `compile'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/compiler.rb:118:in `compile_if_required'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/compiler.rb:103:in `block (2 levels) in run'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/compiler.rb:101:in `each'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/compiler.rb:101:in `block in run'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/compiler.rb:126:in `timed'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/compiler.rb:100:in `run'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/commands/update_project.rb:45:in `perform'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/commands/base.rb:18:in `execute'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/commands/project_base.rb:19:in `execute'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/exec/sub_command_ui.rb:43:in `perform!'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/lib/compass/exec/sub_command_ui.rb:15:in `run!'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/bin/compass:30:in `block in <top (required)>'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/bin/compass:44:in `call'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/compass-0.12.5/bin/compass:44:in `<top (required)>'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/bin/compass:23:in `load'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/bin/compass:23:in `<main>'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/bin/ruby_executable_hooks:15:in `eval'
/home/vagrant/.rvm/gems/ruby-1.9.3-p551/bin/ruby_executable_hooks:15:in `<main>'
*/
body:before {
white-space: pre;
font-family: monospace;
content: "Syntax error: Undefined variable: \"$_accent\".\A on line 2 of /vagrant/public/arewefastyet.firefox.local/arewefastyet/website/overview/sass/partials/components/pages/main.scss\A \A 1: /vagrant/public/arewefastyet.firefox.local/arewefastyet/website/overview/sass/partials/components/pages/main.scss"; }

Двоичные данные
website/overview/img/firefox.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 56 KiB

Двоичные данные
website/overview/img/tail.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 60 KiB

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

@ -0,0 +1,45 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html ng-app="awfyApp">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="en">
<title>ARE WE FAST YET?</title>
<link href="css/nv.d3.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" title="Default Stylesheet" type="text/css" href="css/style.css">
<link rel="stylesheet" title="Default Stylesheet" type="text/css" href="css/main.css">
<link href='http://fonts.googleapis.com/css?family=Lato' rel='stylesheet' type='text/css'>
<link rel="shortcut icon" href="../awfy_favicon.png">
<script type="text/javascript" src="../jquery/jquery-1.8.3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular-route.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
</head>
<body ng-controller="pageCtrl">
<header>
<div class='container'>
<h1>AreWeFastYet</h1>
<div class='rightSide'>
<div class='query'>
<div id='machines'>
<select ng-model="selectedMachine" ng-options="machine.description for machine in machines track by machine.id"></select>
</div>
<div id='dates'>
<div>tested on {{date | date:'dd MMM yy HH:mm'}}</div>
</div>
</div>
<div class='userMenu'>
<a id='personaLogin' href="javascript:doLogin()"><span>Login</span></a>
<a id='personaLogout' href="javascript:doLogout()" style='display: none;'><span>Logout</span></a>
</div>
</div>
</div>
</header>
<div class='container content' ng-view><div>
</body>
</html>

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

@ -1,134 +0,0 @@
<?php
session_start();
$machine = 30;
$suiteVersion = 0;
if (isset($_GET["machine"]))
$machine = (int)$_GET["machine"];
if (isset($_GET["suiteVersion"]))
$suiteVersion = (int)$_GET["suiteVersion"];
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="en">
<title>ARE WE FAST YET?</title>
<link href="css/nv.d3.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" title="Default Stylesheet" type="text/css" href="css/style.css">
<link rel="shortcut icon" href="http://www.arewefastyet.com/awfy_favicon.png">
<script type="text/javascript" src="/jquery/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="/jquery/jquery.ba-hashchange.min.js"></script>
<script type="text/javascript" src="/flot/jquery.flot.js"></script>
<script type="text/javascript" src="/flot/jquery.flot.selection.js"></script>
<script type="text/javascript" src="/data.php?file=master.js"></script>
<?php if ($suiteVersion == 0) { ?>
<script type="text/javascript" src="/overview/data.php?machine=<?=$machine?>"></script>
<?php } else { ?>
<script type="text/javascript" src="/overview/data-suite.php?machine=<?=$machine?>&suiteVersion=<?=$suiteVersion?>"></script>
<?php } ?>
<script type="text/javascript" src="/overview/js/overview.js"></script>
<script src="js/d3.v3.js"></script>
<script src="js/nv.d3.js"></script>
<script src="https://login.persona.org/include.js"></script>
</head>
<body>
<a id='personaLogin' href="javascript:doLogin()"><span>Login</span></a>
<a id='personaLogout' href="javascript:doLogout()" style='display: none;'><span>Logout</span></a>
<?php if ($suiteVersion == 0) { ?>
<script>
d3.select("body").append("h1").text(AWFYMaster["machines"][AWFYOverview["machine"]]["description"]);
d3.select("body").append("div").text("tested on " + new Date(AWFYOverview["stamp"] * 1000));
for (var i = 0; i < AWFYOverview["data"].length; i++) {
var data = AWFYOverview["data"][i];
console.log(data);
var div = d3.select("body").append("div").attr('class','chart');
if (data["suiteversionid"] == -1)
continue;
var suiteversion = AWFYMaster["suiteversions"][data["suiteversionid"]];
var titel = suiteversion["name"];
var direction = AWFYMaster["suites"][suiteversion["suite"]]["direction"];
var scores = data2nv(data["scores"], direction);
createGraph(div.append("div"), titel, scores);
div.append("a").text("view subtests").attr("href", "?machine="+AWFYOverview["machine"]+"&suiteVersion="+data["suiteversionid"]);
div.append("a").text("view history").attr("href","/#machine="+AWFYOverview["machine"]);
}
</script>
<?php } else { ?>
<script>
var suiteversion = AWFYMaster["suiteversions"][AWFYOverview["suiteVersion"]];
d3.select("body").append("h1")
.text(AWFYMaster["machines"][AWFYOverview["machine"]]["description"] +
" > " + suiteversion["name"]);
d3.select("body").append("div").text("tested on " + new Date(AWFYOverview["stamp"] * 1000));
for (var i = 0; i < AWFYOverview["data"].length; i++) {
var data = AWFYOverview["data"][i];
console.log(data);
var div = d3.select("body").append("div").attr('class','chart');
var titel = data["suitetest"];
var direction = AWFYMaster["suites"][suiteversion["suite"]]["direction"];
var scores = data2nv(data["scores"], direction);
createGraph(div.append("div"), titel, scores);
div.append("a").text("view history").attr("href","/#machine="+AWFYOverview["machine"]+"&view=single&suite="+suiteversion["suite"]+"&subtest="+data["suitetest"]);
}
</script>
<?php } ?>
<script>
var url;
if ((window.location + "").substr(0, 10) == "http://www")
url = "http://www.arewefastyet.com/auth.php";
else
url = "http://arewefastyet.com/auth.php";
// Listen on Persona events
var request = false;
var currentUser = document.cookie.replace(/(?:(?:^|.*;\s*)persona\s*\=\s*([^;]*).*$)|^.*$/, "$1");
navigator.id.watch({
loggedInUser: currentUser == "" ? null : currentUser,
onlogin: function (assertion) {
if(request) {
window.location = url + "?persona=1&assertion=" + assertion;
} else {
//document.getElementById("personaLogout").style.display = "block";
//document.getElementById("personaLogin").style.display = "none";
}
},
onlogout: function () {
if(request) {
window.location = url + "?persona=1&logout=1";
} else {
//document.getElementById("personaLogout").style.display = "none";
//document.getElementById("personaLogin").style.display = "block";
}
}
});
<?php
if (isset($_SESSION["persona"])) {
?>
document.getElementById("personaLogout").style.display = "block";
document.getElementById("personaLogin").style.display = "none";
<?php
}
?>
// Do login in
var doLogin = function() {
request = true;
navigator.id.request();
}
// Do login out
var doLogout = function() {
request = true;
navigator.id.logout();
}
</script>
</body>
</html>

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

@ -0,0 +1,62 @@
var awfyApp = angular.module('awfyApp', [
'ngRoute',
'awfyControllers'
]);
awfyApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/machine/:machine', {
templateUrl: 'partials/overview.html',
controller: 'overviewCtrl'
}).
when('/machine/:machine/suite/:suite', {
templateUrl: 'partials/overview.html',
controller: 'overviewCtrl'
}).
otherwise({
redirectTo: '/machine/28'
});
}
]);
awfyApp.controller('pageCtrl', ['$scope', '$http', '$q', '$location',
function ($scope, $http, $q, $location) {
// Get master data
$http.get('../data.php?file=master.js').then(function(data) {
// Extract master data into JSON data.
var offset = data.data.indexOf("{");
var endOffset = data.data.lastIndexOf("}");
master = data.data.substring(offset, endOffset+1);
master = JSON.parse(master);
// Add all machines (remove key)
$scope.machines = [];
for(var i in master["machines"]) {
if(master["machines"][i]["frontpage"]) {
$scope.machines.push(master["machines"][i]);
}
}
// Put select in proper format
var path = $location.path().split("/");
if(path[2].indexOf(",") == -1) {
$scope.selectedMachine = master["machines"][path[2]];
}
// Watch for changes of selection
$scope.$watch('selectedMachine', function (machine) {
var path = $location.path().split("/");
path[2] = machine.id;
if($location.path() != path) {
$location.path(path.join("/"));
}
});
});
}]);

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

@ -0,0 +1,222 @@
var awfyCtrl = angular.module('awfyControllers', []);
var isFF = function(name) {
if(name.indexOf("Ion") != -1) {
return true;
} else if(name.indexOf("Beta") != -1) {
return true;
} else if(name.indexOf("Shell") != -1) {
return true;
} else if(name.indexOf("no asmjs") != -1) {
return true;
}
return false;
}
awfyCtrl.controller('overviewCtrl', ['$scope', '$http', '$routeParams', '$q',
function ($scope, $http, $routeParams, $q) {
var dataRequests = [];
// Get master data
dataRequests.push($http.get('../data.php?file=master.js'));
// Get machine data
var machines = $routeParams.machine.split(",");
for(var i=0; i!=machines.length; i++) {
if(!$routeParams.suite) {
dataRequests.push($http.get('data.php?machine='+machines[i]));
} else {
dataRequests.push($http.get('data-suite.php?machine='+machines[i]+'&suiteVersion='+$routeParams.suite));
}
}
$q.all(dataRequests).then(function(data) {
// Extract master data into JSON data.
var offset = data[0].data.indexOf("{");
var endOffset = data[0].data.lastIndexOf("}");
master = data[0].data.substring(offset, endOffset+1);
master = JSON.parse(master);
// Extract machine data
var machines = [];
for(var i=1; i!=data.length; i++) {
var offset = data[i].data.indexOf("{");
var endOffset = data[i].data.lastIndexOf("}");
machine = data[i].data.substring(offset, endOffset+1);
machine = JSON.parse(machine);
machines.push(machine);
}
console.log(machines);
$scope.$parent.date = machines[0].stamp*1000;
if($routeParams.suite) {
$scope.name = master["suiteversions"][$routeParams.suite]["name"];
$scope.code = master["suiteversions"][$routeParams.suite]["suite"];
}
// Get all testsuites ids
var testsuites = {};
for(var i in machines) {
for(var j in machines[i]["data"]) {
var suite = machines[i]["data"][j];
if(!$routeParams.suite && suite["suiteversionid"] == -1)
continue;
if(suite["scores"].length == 0)
continue;
var name;
if(!$routeParams.suite) {
testsuites[suite["suiteversionid"]] = {};
} else {
testsuites[suite["suitetest"]] = {};
}
}
}
/*// Get all software ids
var softwares = {};
for(var i in machines) {
for(var j in machines[i]["data"]) {
var suite = machines[i]["data"][j];
if(!$routeParams.suite && suite["suiteversionid"] == -1)
continue;
if(suite["scores"].length == 0)
continue;
for(var k in suite["scores"]) {
softwares[ suite["scores"][k]["modeid"] ] = {
name: master["modes"][ suite["scores"][k]["modeid"] ]["name"],
};
}
}
}*/
//$scope.softwares = softwares;
// Create
for(i in testsuites) {
var name;
if(!$routeParams.suite) {
name = master["suiteversions"][i]["name"];
} else {
name = i;
}
var testsuite = {
id: i,
name: name,
machines: [],
maxScore: 0,
};
for(var j in machines) {
// Look up the key for the scores
var key = -1;
for(var k in machines[j]["data"]) {
if(!$routeParams.suite) {
if(machines[j]["data"][k]["suiteversionid"] == i) {
key = k;
}
} else {
if(machines[j]["data"][k]["suitetest"] == i) {
key = k;
}
}
}
// Add the machine and the test scores
if(key != -1) {
var machine = {
name: master["machines"][machines[j]["machine"]]["description"],
tests: [],
};
for(var k in machines[j]["data"][key]["scores"]) {
var test = machines[j]["data"][key]["scores"][k];
machine.tests.push({
name: master["modes"][test["modeid"]]["name"],
score: test["score"],
ff: isFF(master["modes"][test["modeid"]]["name"]) ? "ff" : "",
});
testsuite.maxScore = Math.max(testsuite.maxScore, test["score"]*1);
}
testsuite.machines.push(machine);
}
}
$scope.testsuites.push(testsuite);
}
return;
// Create testsuites
for(key in overview["data"]) {
var suite = overview["data"][key]
if(!$routeParams.suite && suite["suiteversionid"] == -1)
continue;
var name;
if(!$routeParams.suite) {
name = master["suiteversions"][suite["suiteversionid"]]["name"];
} else {
name = suite["suitetest"];
}
var testsuite = {
name: name,
tests: [],
maxScore: 0,
};
if(!$routeParams.suite) {
testsuite.id = suite["suiteversionid"];
}
for(key in suite["scores"]) {
var test = suite["scores"][key];
testsuite.tests.push({
name: master["modes"][test["modeid"]]["name"],
score: test["score"],
ff: isFF(master["modes"][test["modeid"]]["name"]) ? "ff" : "",
});
testsuite.maxScore = Math.max(testsuite.maxScore, test["score"]*1);
}
$scope.testsuites.push(testsuite);
}
});
$scope.machineId = $routeParams.machine;
$scope.testsuites = [];
$scope.hasSuite = !!$routeParams.suite;
}
]);
awfyCtrl.controller('ffIconCtrl', function ($scope) {
var times = 0;
$("body").on("keypress", function(e) {
if(e.key) {
times++;
setTimeout(function() {
times--;
}, 1000);
}
if(times == 2) {
$("body").addClass("ff");
}
});
});

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

@ -1,3 +1,5 @@
function createGraph(div, titel, scores) {
nv.addGraph(function() {
div.append("h2").text(titel)

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

@ -0,0 +1,54 @@
<div ng-controller="overviewCtrl">
<div class='subheader'>
<div class='button' ng-repeat="software in softwares">
<div class='title'>{{software.name}}</div>
<div class='result'>Base</div>
</div>
<!--<div class='button'>
<div class='title'>v8</div>
<div class='result good'>20.2%</div>
</div>
<div class='button'>
<div class='title'>jsc</div>
<div class='result bad'>82.0%</div>
</div>-->
<div class='button' ng-if='hasSuite'>
<a class='up' ng-href='#/machine/{{machineId}}'></a>
</div>
<div class='button' ng-if='!hasSuite'>
<a class='history' ng-href='../?machine={{machineId}}'>History</a>
</div>
<div class='button' ng-if='hasSuite'>
<a class='history' ng-href='../?machine={{machineId}}&view=breakdown&suite={{code}}'>History</a>
</div>
</div>
<h2 ng-if='!hasSuite'>
Overview
</h2>
<h2 ng-if='hasSuite'>
<a class='overview' ng-href='#/machine/{{machineId}}'>Overview</a> > {{name}}
</h2>
<div>
<div class='box' ng-repeat="testsuite in testsuites">
<div class='header'>{{testsuite.name}}</div>
<div class='content'>
<div ng-repeat="machine in testsuite.machines">
<h3 ng-if="testsuite.machines.length != 1">{{machine.name}}</h3>
<div ng-repeat="test in machine.tests">
<div class='score'>{{test.score}}</div>
<div class='title'>{{test.name}}</div>
<progress ng-value='{{test.score}}' ng-attr-max='{{testsuite.maxScore}}' ng-attr-class="{{test.ff}}"></progress>
</div>
</div>
</div>
<div class='footer' ng-if='!hasSuite'>
<a class='subtests' ng-href='#/machine/{{machineId}}/suite/{{testsuite.id}}'>Subtests</a>
</div>
</div>
</div>
</div>
<div ng-controller="ffIconCtrl"></div>

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

@ -0,0 +1,5 @@
@import "utility/variables";
@import "utility/abstractions";
@import "partials/base";
@import "partials/components";

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

@ -0,0 +1,8 @@
@import "base/base";
@import "base/forms";
@import "base/header";
@import "base/icons";
@import "base/lists";
@import "base/media";
@import "base/tables";
@import "base/typography";

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

@ -0,0 +1 @@
@import "components/pages/main";

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

@ -0,0 +1,45 @@
html {
overflow-y: scroll;
}
* {
box-sizing: border-box;
}
.container.content {
position: relative;
padding-top: 0px;
body.ff &:after {
position: absolute;
content: "";
display: block;
top: -260px;
left: -130px;
background-image: url("../img/tail.png");
background-size: 90%;
background-repeat: no-repeat;
background-position: 0px 0px;
width: 500px;
height: 900px;
transform: rotate(-35deg);
z-index: -1;
}
h2 {
line-height: $unit*8;
font-weight: normal;
a {
color: #000000;
text-decoration: none;
}
&:after {
content: "";
display: block;
clear: both;
}
}
}

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

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

@ -0,0 +1,162 @@
header {
background-color: $_accent;
color: $_white;
-webkit-box-shadow: 0px 0px 15px 0px $_darkaccent;
-moz-box-shadow: 0px 0px 15px 0px $_darkaccent;
box-shadow: 0px 0px 15px 0px $_darkaccent;
.container {
display: table;
}
select {
color: $_white;
background-color: $_accent;
}
#machines, #types, #dates {
@include minimal-select;
}
#dates:after {
//temporary
display: none;
}
div {
display: inline-block;
}
h1 {
position: relative;
text-transform: uppercase;
font-size: $unit*3;
body.ff &:after {
background-image: url("../img/firefox.png");
background-size: 75%;
background-repeat: no-repeat;
background-position: 0px -35px;
width: 250px;
top: -15px;
bottom: -15px;
content: "";
display: block;
left: -180px;
position: absolute;
}
}
h1, .rightSide {
display: table-cell;
vertical-align: middle
}
.rightSide {
text-align: right;
}
.query {
margin-right: $unit*4;
}
a {
text-decoration: none;
color: $_white;
}
}
.subheader {
float: right;
vertical-align: bottom;
text-align: right;
.container {
padding-top: 0px;
padding-bottom: 0px;
}
.history {
color: get($_box, color);
text-decoration: none;
&:before {
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
margin-left: $unit;
margin-right: $unit;
content: "\e023";
}
}
.up {
color: get($_box, color);
text-decoration: none;
&:before {
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
margin-left: $unit;
margin-right: $unit;
content: "\e113";
}
}
.button {
background-color: get($_box, header);
border: 1px SOLID get($_box, border);
padding: $unit*2 $unit*3;
display: inline-block;
color: get($_box, color);
margin-left: $unit*2;
margin-right: $unit*2;
&:last-child {
margin-right: 0px;
}
.title, .result {
display: inline-block;
}
.title {
text-transform: uppercase;
font-size: $unit*2.5;
}
.result {
color: get($_box, color);
font-weight: bold;
&:before {
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
margin-left: $unit;
margin-right: $unit;
content: "\2212";
color: mix($_orange, $_darkaccent, 75%);
}
&.bad:before {
content: "\e114";
color: $_red;
}
&.good:before {
content: "\e113";
color: $_green;
}
}
}
}

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

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

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

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

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

@ -0,0 +1,14 @@
@font-face {
font-family: 'Glyphicons Halflings';
src: url($icon-font-path + $icon-font-name + '.eot');
src: url($icon-font-path + $icon-font-name + '.eot?#iefix') format('embedded-opentype'),
url($icon-font-path + $icon-font-name + '.woff') format('woff'),
url($icon-font-path + $icon-font-name + '.ttf') format('truetype'),
url($icon-font-path + $icon-font-name + '.svg') format('svg');
}
body {
font-family: lato;
background-color: $_grey;
}

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

@ -0,0 +1,11 @@
html, body {
margin: 0px;
padding: 0px;
}
.container {
padding: 15px;
width: $container-width;
margin-left: auto;
margin-right: auto;
}

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

@ -0,0 +1,3 @@
@import "abstractions/assoc";
@import "abstractions/box";
@import "abstractions/select";

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

@ -0,0 +1,7 @@
@import "variables/grid";
@import "variables/breakpoints";
@import "variables/colors";
@import "variables/forms";
@import "variables/icons";
@import "variables/legacy";
@import "variables/typography";

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

@ -0,0 +1,75 @@
/**********************************************************************/
/* Introduce some associative array functionality to SASS */
/* so you can define: */
/* $var: key1 "value1", key2 "value2"; */
/* And use following functions: */
/* get($var, key1); // will return "value1" */
/* get($var, key2); // will return "value2" */
/* $var: set($var, key1, "newValue"); */
/* get($var, key1); // will return "newValue" */
/* */
/* Tips and source from: */
/* http://hugogiraudel.com/2013/08/12/sass-functions/#mapping */
/**********************************************************************/
@function get($haystack, $needle) {
@each $item in $haystack {
$index: index($item, $needle);
@if $index {
$return: if($index == 1, 2, $index);
@return nth($item, $return);
}
}
@return false;
}
@function set($haystack, $needle, $value) {
@each $item in $haystack {
$index: index($item, $needle);
@if $index {
$return: if($index == 1, 2, $index);
@return insert-nth($haystack, $return, $needle $value );
}
}
$return: append($haystack, $needle $value);
@return $return;
}
@function insert-nth($list, $index, $value) {
$result: null;
@if type-of($index) != number {
@warn "$index: #{quote($index)} is not a number for `insert-nth`.";
}
@else if $index < 1 {
@warn "List index 0 must be a non-zero integer for `insert-nth`";
}
@else if $index > length($list) {
@warn "List index is #{$index} but list is only #{length($list)} item long for `insert-nth'.";
}
@else {
$result: ();
@for $i from 1 through length($list) {
@if $i == $index {
$result: append($result, $value);
}
$result: append($result, nth($list, $i));
}
}
@return $result;
}
@function keys($haystack) {
$return: ();
@each $item in $haystack {
$return: append($return, nth($item, 1));
}
@return $return;
}

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

@ -0,0 +1,119 @@
.box {
border: 1px SOLID get($_box, border);
background-color: get($_box, header);
color: get($_box, color);
padding: $unit;
float: left;
width: 32%;
margin-right: 2%;
margin-bottom: $unit*5;
&:nth-child(3n) {
margin-right: 0%;
}
.header {
text-transform: uppercase;
padding-left: $unit*2;
font-weight: bold;
padding-top: $unit;
padding-bottom: $unit*2;
text-align: center;
}
h3 {
color: #AAAAAA;
font-size: $unit*2.5;
font-weight: normal;
text-align: center;
margin-top: $unit;
}
.content {
background-color: get($_box, bg);
padding: $unit*2;
color: $_accent;
}
.score {
float: right;
font-size: 1.4em;
margin-top: -0.2em;
}
.title {
text-transform: uppercase;
margin-top: 0.4em;
}
progress {
width: 100%;
height: $unit;
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
margin-bottom: $unit*3;
margin-top: $unit;
border: none;
background: get($_box, header);
&::-moz-progress-bar {
background-color: $_accent;
}
&::-webkit-progress-value {
background-color: $_accent;
}
}
progress.ff {
&::-moz-progress-bar {
background-color: $_orange;
}
&::-webkit-progress-value {
background-color: $_orange;
}
}
.footer {
text-align: center;
a, button {
display: inline-block;
width: 49%;
margin: 0px;
background-color: transparent;
border: 0px SOLID #FFFFFF;
padding-top: $unit*3;
padding-bottom: $unit*2;
cursor: pointer;
text-align: center;
color: get($_box, color);
text-decoration: none;
&.history:before {
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
margin-left: $unit;
margin-right: $unit;
content: "\e023";
}
&.subtests:before {
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
margin-left: $unit;
margin-right: $unit;
content: "\e137";
}
}
}
}

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

@ -0,0 +1,37 @@
@mixin minimal-select() {
margin-left: $unit;
margin-right: $unit;
select, input, div {
-moz-appearance: toolbox;
-webkit-appearance: none;
text-indent: 0.01px;
text-overflow: '';
display: inline-block;
vertical-align: middle;
padding-right: $unit*3;
&::-ms-expand {
display: none;
}
}
&:after {
position: absolute;
content: "\e114";
display: inline-block;
vertical-align: middle;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
font-size: 0.5em;
height: 2.0em;
margin-left: -$unit*2;
line-height: 2.0em;
pointer-events: none
}
}

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

@ -0,0 +1,3 @@
$breakpoint-centered: min-width $container-width;
$breakpoint-fullwidth: max-width $container-width;
$breakpoint-smartphone: max-width 490px;

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

@ -0,0 +1,16 @@
$_accent: #42637B;
$_mediumaccent: #39556A;
$_darkaccent: #000000;
$_white: #FFFFFF;
$_grey: #E6E6E6;
$_darkgrey: #222222;
$_red: #D12600;
$_green: #2F7836;
$_orange: #F39C32;
$_box:
bg $_white,
border #DDDDDD,
color $_darkgrey,
header #F2F2F2
;

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

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

@ -0,0 +1,11 @@
// Susy grid.
$container-style: static;
$container-width: 1200px;
$total-columns: 12;
$column-width: 80px;
$gutter-width: 20px;
$grid-padding: $gutter-width;
$debug-grid: true;
//
$unit: 6px;

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

@ -0,0 +1,13 @@
/***************************************/
/* Icon dimensions are calculated with
/* $unit, so they will also scale when
/* $unit is changed. But at the default
/* 6px unit, the small icon should be 16px
/* and the medium icon should be 32px.
/* (Because else the icons become fusy)
/* So therefor calculate the dimensions
/***************************************/
$_icon_font: "iMinds-icons";
$_icon_small: $unit * 16/6;
$_icon_medium: $unit * 32/6;

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

@ -0,0 +1,4 @@
// Legacy support.
$legacy-support-for-ie6: false;
$legacy-support-for-ie7: true;
$legacy-support-for-ie8: true;

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

@ -0,0 +1,3 @@
$icon-font-path: "http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/fonts/";
$icon-font-name: "glyphicons-halflings-regular";