--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.editorconfig Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,21 @@
+# EditorConfig helps developers define and maintain consistent
+# coding styles between different editors and IDEs
+# editorconfig.org
+
+root = true
+
+
+[*]
+
+# Change these settings to your own preference
+indent_style = space
+indent_size = 4
+
+# We recommend you to keep these unchanged
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.md]
+trim_trailing_whitespace = false
--- a/.hgignore Wed Jun 24 01:36:46 2015 +0200
+++ b/.hgignore Mon Oct 05 17:02:10 2015 +0200
@@ -20,3 +20,11 @@
^server/src/storage/framework/cache/
^server/src/storage/framework/sessions/
^server/src/storage/framework/views/
+^server/node_modules
+^server/src/public/css
+^server/src/public/js/vendor
+^server/src/public/fonts
+^server/bo_client/node_modules
+^server/bo_client/bower_components
+^server/bo_client/dist
+^server/bo_client/tmp
--- a/dev/Vagrantfile Wed Jun 24 01:36:46 2015 +0200
+++ b/dev/Vagrantfile Mon Oct 05 17:02:10 2015 +0200
@@ -78,6 +78,7 @@
#
config.vm.provider "virtualbox" do |v|
v.memory = 512
+ v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
# View the documentation for the provider you are using for more
--- a/dev/provisioning/files/site.j2 Wed Jun 24 01:36:46 2015 +0200
+++ b/dev/provisioning/files/site.j2 Mon Oct 05 17:02:10 2015 +0200
@@ -13,6 +13,9 @@
http {
+ include mime.types;
+ default_type application/octet-stream;
+
server {
listen 80;
server_name {{ site_name }};
--- a/dev/provisioning/playbook.yml Wed Jun 24 01:36:46 2015 +0200
+++ b/dev/provisioning/playbook.yml Mon Oct 05 17:02:10 2015 +0200
@@ -35,8 +35,13 @@
- name: set .profile
copy: src=files/.profile dest=/home/vagrant/.profile force=yes
+ - name: check yum base last update
+ stat: path=/var/cache/yum/x86_64/6/base/cachecookie
+ register: yum_cache_stat_base
+
- name: yum update
yum: name=* update_cache=yes state=latest
+# when: ansible_date_time.epoch|float - yum_cache_stat_base.stat.mtime > 60*60*12*24
- name: repo ignore outdated postgres base
ini_file:
@@ -66,6 +71,7 @@
- name: Install Remi repo.
command: rpm -Uvh --force /tmp/remi-release-6.rpm creates=/etc/yum.repos.d/remi.repo
+ when: remi_repo.stat.exists == False
- name : delete remi rpm
file: path=/tmp/remi-release-6.rpm state=absent
@@ -80,6 +86,7 @@
- name: Install postgres repo.
command: rpm -Uvh --force /tmp/pgdg-centos94-9.4-1.noarch.rpm creates=/etc/yum.repos.d/pgdg-94-centos.repo
+ when: postgres_repo.stat.exists == False
- name : delete postgres rpm
file: path=/tmp/pgdg-centos94-9.4-1.noarch.rpm state=absent
@@ -91,8 +98,13 @@
option: enabled
value: 1
+ - name: check yum epel last update
+ stat: path=/var/cache/yum/x86_64/6/epel/cachecookie
+ register: yum_cache_stat_epel
+
- name: yum update after repos
yum: name=* update_cache=yes state=latest
+# when: ansible_date_time.epoch|float - yum_cache_stat_epel.stat.mtime > 60*60*12*24
#TODO install alternative packages
- name: install libs
@@ -110,7 +122,7 @@
- php56-php-gd
- php56-php-pgsql
- java-1.8.0-openjdk
- - tomcat6
+ - tomcat
## php-fpm config
@@ -208,13 +220,20 @@
- name: set JAVA_HOME
lineinfile:
- dest: /etc/tomcat6/tomcat6.conf
- regexp: '^\#JAVA_HOME='
+ dest: /etc/tomcat/tomcat.conf
+ regexp: '^\#?JAVA_HOME='
line: JAVA_HOME="/etc/alternatives/jre_1.8.0"
state: present
+ - name: set parseBodyMethods to add POST
+ lineinfile:
+ dest: /etc/tomcat/server.xml
+ regexp: '^\s+\<Connector\s+port=\"8080\"\s+protocol=\"HTTP\/1.1\"\s*$'
+ line: ' <Connector port="8080" protocol="HTTP/1.1" parseBodyMethods="POST,PUT"'
+ state: present
+
## Install sesame
- - stat: path=/var/lib/tomcat6/webapps/openrdf-sesame.war
+ - stat: path=/var/lib/tomcat/webapps/openrdf-sesame.war
register: sesame_jar
- name: download sesame
@@ -230,7 +249,7 @@
when: sesame_jar.stat.exists == False
- name: deploy sesame jar
- shell: cp /tmp/openrdf-sesame-2.8.3-sdk/openrdf-sesame-2.8.3/war/*.war /var/lib/tomcat6/webapps/
+ shell: cp /tmp/openrdf-sesame-2.8.3-sdk/openrdf-sesame-2.8.3/war/*.war /var/lib/tomcat/webapps/
when: sesame_jar.stat.exists == False
- name: create sesame data folder
@@ -239,13 +258,13 @@
- name: update tomcat config
lineinfile:
- dest: /etc/tomcat6/tomcat6.conf
+ dest: /etc/tomcat/tomcat.conf
line: 'JAVA_OPTS=\"${JAVA_OPTS} -Dinfo.aduna.platform.appdata.basedir=/var/lib/sesame/data\"'
state: present
when: sesame_jar.stat.exists == False
- name: restart tomcat
- service: name=tomcat6 state=restarted enabled=yes
+ service: name=tomcat state=restarted enabled=yes
when: sesame_jar.stat.exists == False
- name : delete sesame archive
@@ -343,11 +362,6 @@
service: name=iptables state=restarted
sudo: true
- handlers:
- - name: nginx-restart
- action: service name=nginx update_cache=yes state=latest
-
-
# - name: install nginx
# apt: name=nginx
#
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/.bowerrc Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,4 @@
+{
+ "directory": "bower_components",
+ "analytics": false
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/.editorconfig Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,34 @@
+# EditorConfig helps developers define and maintain consistent
+# coding styles between different editors and IDEs
+# editorconfig.org
+
+root = true
+
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 2
+
+[*.js]
+indent_style = space
+indent_size = 2
+
+[*.hbs]
+insert_final_newline = false
+indent_style = space
+indent_size = 2
+
+[*.css]
+indent_style = space
+indent_size = 2
+
+[*.html]
+indent_style = space
+indent_size = 2
+
+[*.{diff,md}]
+trim_trailing_whitespace = false
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/.ember-cli Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,9 @@
+{
+ /**
+ Ember CLI sends analytics information by default. The data is completely
+ anonymous, but there are times when you might want to disable this behavior.
+
+ Setting `disableAnalytics` to true will prevent any data from being sent.
+ */
+ "disableAnalytics": false
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/.gitignore Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,17 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+/dist
+/tmp
+
+# dependencies
+/node_modules
+/bower_components
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage/*
+/libpeerconnection.log
+npm-debug.log
+testem.log
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/.jshintrc Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,32 @@
+{
+ "predef": [
+ "document",
+ "window",
+ "-Promise"
+ ],
+ "browser": true,
+ "boss": true,
+ "curly": true,
+ "debug": false,
+ "devel": true,
+ "eqeqeq": true,
+ "evil": true,
+ "forin": false,
+ "immed": false,
+ "laxbreak": false,
+ "newcap": true,
+ "noarg": true,
+ "noempty": false,
+ "nonew": false,
+ "nomen": false,
+ "onevar": false,
+ "plusplus": false,
+ "regexp": false,
+ "undef": true,
+ "sub": true,
+ "strict": false,
+ "white": false,
+ "eqnull": true,
+ "esnext": true,
+ "unused": true
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/.travis.yml Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,23 @@
+---
+language: node_js
+node_js:
+ - "0.12"
+
+sudo: false
+
+cache:
+ directories:
+ - node_modules
+
+before_install:
+ - export PATH=/usr/local/phantomjs-2.0.0/bin:$PATH
+ - "npm config set spin false"
+ - "npm install -g npm@^2"
+
+install:
+ - npm install -g bower
+ - npm install
+ - bower install
+
+script:
+ - npm test
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/.watchmanconfig Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,4 @@
+{
+ "ignore_dirs": ["tmp"],
+ "root_files": ["../src/resources/assets/sass/app.scss"]
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/README.md Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,53 @@
+# Bo-client
+
+This README outlines the details of collaborating on this Ember application.
+A short introduction of this app could easily go here.
+
+## Prerequisites
+
+You will need the following things properly installed on your computer.
+
+* [Git](http://git-scm.com/)
+* [Node.js](http://nodejs.org/) (with NPM)
+* [Bower](http://bower.io/)
+* [Ember CLI](http://www.ember-cli.com/)
+* [PhantomJS](http://phantomjs.org/)
+
+## Installation
+
+* `git clone <repository-url>` this repository
+* change into the new directory
+* `npm install`
+* `bower install`
+
+## Running / Development
+
+* `ember server`
+* Visit your app at [http://localhost:4200](http://localhost:4200).
+
+### Code Generators
+
+Make use of the many generators for code, try `ember help generate` for more details
+
+### Running Tests
+
+* `ember test`
+* `ember test --server`
+
+### Building
+
+* `ember build` (development)
+* `ember build --environment production` (production)
+
+### Deploying
+
+Specify what it takes to deploy your app.
+
+## Further Reading / Useful Links
+
+* [ember.js](http://emberjs.com/)
+* [ember-cli](http://www.ember-cli.com/)
+* Development Browser Extensions
+ * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
+ * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/adapters/application.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,5 @@
+import DS from 'ember-data';
+
+export default DS.RESTAdapter.extend({
+ namespace: 'api',
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/app.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,19 @@
+import Ember from 'ember';
+import Resolver from 'ember/resolver';
+import loadInitializers from 'ember/load-initializers';
+import config from './config/environment';
+
+var App;
+
+Ember.MODEL_FACTORY_INJECTIONS = true;
+
+App = Ember.Application.extend({
+ modulePrefix: config.modulePrefix,
+ podModulePrefix: config.podModulePrefix,
+ Resolver: Resolver,
+ rootElement: '#ember-container'
+});
+
+loadInitializers(App, config.modulePrefix);
+
+export default App;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/index.html Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>Corpus Parole</title>
+
+ {{content-for 'head'}}
+
+ <!-- Fonts -->
+ <link href='//fonts.googleapis.com/css?family=Roboto:400,300' rel='stylesheet' type='text/css'>
+
+ <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+ <!--[if lt IE 9]>
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+
+ <![endif]-->
+ <link rel="stylesheet" href="assets/vendor.css">
+ <link rel="stylesheet" href="assets/bo-client.css">
+
+ {{content-for 'head-footer'}}
+ </head>
+ <body>
+ <nav class="navbar navbar-default">
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+ <span class="sr-only">Toggle Navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="#">Corpus de la Parole</a>
+ </div>
+ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+ <ul class="nav navbar-nav">
+ <li><a href="#">Home</a></li>
+ </ul>
+ <ul class="nav navbar-nav navbar-right">
+ <li><a href="#login">Login</a></li>
+ <li><a href="#register">Register</a></li>
+ </ul>
+ </div>
+ </div>
+ </nav>
+ <div class="container-fluid" id="ember-container"></div>
+
+
+ {{content-for 'body'}}
+
+ <script src="assets/vendor.js"></script>
+ <script src="assets/bo-client.js"></script>
+
+ </body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/locales/en/translations.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,27 @@
+// translation en
+
+export default {
+
+ "bo" : {
+ "document_list": "Document List",
+ "document_list.id_col": "ID",
+ "document_list.uri_col": "URI",
+ "home": "home",
+ "document_detail": "Document detail",
+ "audio_support_error" : "Your browser does not support the audio tag",
+ "document_audio": "Audio:",
+ "document_content": "Content",
+ "document_title": "Title:",
+ "document_editors": "Editor(s):"
+ }
+
+ // "some.translation.key": "Text for some.translation.key",
+ //
+ // "a": {
+ // "nested": {
+ // "key": "Text for a.nested.key"
+ // }
+ // },
+ //
+ // "key.with.interpolation": "Text with {{anInterpolation}}"
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/locales/fr/translations.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,25 @@
+// translation fr
+
+export default {
+
+ "bo" : {
+ "document_list": "Liste Document",
+ "document_list.id_col": "ID",
+ "document_list.uri_col": "URI",
+ "document_detail": "Détail document",
+ "audio_support_error" : "Votre browser ne gère pas la balise audio.",
+ "document_audio": "Audio :",
+ "document_content": "Contenu",
+ "document_title": "Titre :",
+ "document_editors": "Editeur(s) :"
+ },
+ // "some.translation.key": "Text for some.translation.key",
+ //
+ // "a": {
+ // "nested": {
+ // "key": "Text for a.nested.key"
+ // }
+ // },
+ //
+ // "key.with.interpolation": "Text with {{anInterpolation}}"
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/models/document.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,9 @@
+import DS from 'ember-data';
+
+export default DS.Model.extend({
+ //id: DS.attr('string'),
+ uri: DS.attr('string'),
+ title: DS.attr('string'),
+ publishers: DS.attr({defaultValue: []}),
+ mediaArray: DS.attr({defaultValue: []})
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/router.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,12 @@
+import Ember from 'ember';
+import config from './config/environment';
+
+var Router = Ember.Router.extend({
+ location: config.locationType
+});
+
+Router.map(function() {
+ this.route('doc', { path: '/doc/:doc_id' });
+});
+
+export default Router;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/routes/doc.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,7 @@
+import Ember from 'ember';
+
+export default Ember.Route.extend({
+ model(params) {
+ return this.store.findRecord('document', params.doc_id);
+ },
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/routes/index.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,8 @@
+import Ember from 'ember';
+
+export default Ember.Route.extend({
+ model: function() {
+ return this.store.findAll('document');
+ }
+
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/styles/app.scss Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,1 @@
+@import "app-core";
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/templates/application.hbs Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,3 @@
+<h2 id="title">Welcome to Ember application</h2>
+
+{{outlet}}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/templates/doc.hbs Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,33 @@
+<div class="row">
+ <div class="col-md-10 col-md-offset-1">
+ <div class="panel panel-default">
+ <div class="panel-heading doc_details_title">{{t 'bo.document_detail'}}</div>
+
+ <div class="panel-body">
+ <div class="doc_details">
+ <div class="data">
+ <div class="data-audio-title">{{t 'bo.document_audio'}}</div>
+ <div class="data-audio-player">
+ <audio id='' controls="controls">
+ {{#each model.mediaArray as |audio|}}
+ <source src="{{ audio.url }}" type="{{ audio.format }}"/>
+ {{/each}}
+ {{t 'bo.audio_support_error' }}
+ </audio>
+ </div>
+ </div>
+ <div class="content">
+ <div class="content-main-title">{{t 'bo.document_content'}}</div>
+ <div class="content-title">{{t 'bo.document_title'}}</div>
+ <div class="content-value">{{model.title}}</div>
+ <div class="content-title">{{t 'bo.document_editors'}}</div>
+ <div class="content-value">{{#each model.publishers as |publisher index|}}{{if index ", "}}{{publisher}}{{/each}}</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
+
+{{outlet}}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/app/templates/index.hbs Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,24 @@
+<div class="container-fluid">
+ <div class="row">
+ <div class="col-md-10 col-md-offset-1">
+ <div class="panel panel-default">
+ <div class="panel-heading">{{t 'bo.document_list'}}</div>
+
+ <div class="panel-body">
+ <table class="table table-striped">
+ <thead>
+ <tr><th>{{t 'bo.document_list.uri_col'}}</th><th>{{t 'bo.document_list.id_col'}}</th></tr>
+ </thead>
+ <tbody>
+ {{#each model as |doc|}}
+ <tr><td>{{ doc.uri }}</td><td>{{#link-to 'doc' doc}}{{doc.id}}{{/link-to}}</td></tr>
+ {{/each}}
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
+{{outlet}}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/bower.json Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,16 @@
+{
+ "name": "bo-client",
+ "dependencies": {
+ "ember": ">=2.0.0",
+ "ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3",
+ "ember-cli-test-loader": "ember-cli-test-loader#0.1.3",
+ "ember-data": ">=2.0.0",
+ "ember-load-initializers": "ember-cli/ember-load-initializers#0.1.5",
+ "ember-qunit": "0.4.9",
+ "ember-qunit-notifications": "0.0.7",
+ "ember-resolver": "~0.1.18",
+ "jquery": "latest",
+ "loader.js": "ember-cli/loader.js#3.2.1",
+ "qunit": "~1.18.0"
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/config/environment.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,47 @@
+/* jshint node: true */
+
+module.exports = function(environment) {
+ var ENV = {
+ modulePrefix: 'bo-client',
+ environment: environment,
+ baseURL: '/',
+ locationType: 'auto',
+ EmberENV: {
+ FEATURES: {
+ // Here you can enable experimental features on an ember canary build
+ // e.g. 'with-controller': true
+ }
+ },
+
+ APP: {
+ // Here you can pass flags/options to your application instance
+ // when it is created
+ }
+ };
+
+ if (environment === 'development') {
+ // ENV.APP.LOG_RESOLVER = true;
+ // ENV.APP.LOG_ACTIVE_GENERATION = true;
+ // ENV.APP.LOG_TRANSITIONS = true;
+ // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
+ // ENV.APP.LOG_VIEW_LOOKUPS = true;
+ }
+
+ if (environment === 'test') {
+ // Testem prefers this...
+ ENV.baseURL = '/';
+ ENV.locationType = 'none';
+
+ // keep test console output quieter
+ ENV.APP.LOG_ACTIVE_GENERATION = false;
+ ENV.APP.LOG_VIEW_LOOKUPS = false;
+
+ ENV.APP.rootElement = '#ember-testing';
+ }
+
+ if (environment === 'production') {
+
+ }
+
+ return ENV;
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/ember-cli-build.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,32 @@
+/* global require, module */
+var EmberApp = require('ember-cli/lib/broccoli/ember-app');
+
+
+module.exports = function(defaults) {
+
+ var app = new EmberApp(defaults, {
+ // Add options here
+ sassOptions: {
+ includePaths: [
+ 'app/styles',
+ '../src/resources/assets/sass',
+ '../src/vendor/bower_components/bootstrap-sass/assets/stylesheets'
+ ],
+ }
+ });
+
+ // Use `app.import` to add additional libraries to the generated
+ // output files.
+ //
+ // If you need to use different assets in different
+ // environments, specify an object as the first parameter. That
+ // object's keys should be the environment name and the values
+ // should be the asset to use in that environment.
+ //
+ // If the library that you are including contains AMD or ES6
+ // modules that you would like to import into your application
+ // please specify an object with the list of modules as keys
+ // along with the exports of each module as its value.
+
+ return app.toTree();
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/package.json Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,48 @@
+{
+ "name": "bo-client",
+ "version": "0.0.0",
+ "description": "Small description for bo-client goes here",
+ "private": true,
+ "directories": {
+ "doc": "doc",
+ "test": "tests"
+ },
+ "scripts": {
+ "build": "ember build",
+ "start": "ember server",
+ "test": "ember test"
+ },
+ "repository": "",
+ "engines": {
+ "node": ">= 0.10.0"
+ },
+ "author": "",
+ "license": "MIT",
+ "devDependencies": {
+ "bower": "^1.5.2",
+ "broccoli-asset-rev": "^2.1.2",
+ "broccoli-funnel": "^0.2.8",
+ "broccoli-merge-trees": "^0.2.3",
+ "ember-cli": "1.13.8",
+ "ember-cli-app-version": "0.5.0",
+ "ember-cli-babel": "^5.1.3",
+ "ember-cli-content-security-policy": "0.4.0",
+ "ember-cli-dependency-checker": "^1.0.1",
+ "ember-cli-htmlbars": "0.7.9",
+ "ember-cli-htmlbars-inline-precompile": "^0.2.0",
+ "ember-cli-ic-ajax": "0.2.1",
+ "ember-cli-inject-live-reload": "^1.3.1",
+ "ember-cli-qunit": "^1.0.0",
+ "ember-cli-release": "0.2.3",
+ "ember-cli-sass": "4.2.0",
+ "ember-cli-sri": "^1.0.3",
+ "ember-cli-uglify": "^1.2.0",
+ "ember-data": "1.13.8",
+ "ember-disable-proxy-controllers": "^1.0.0",
+ "ember-export-application-global": "^1.0.3",
+ "ember-i18n": "4.1.3",
+ "express": "^4.13.3",
+ "glob": "^4.5.3",
+ "morgan": "^1.6.1"
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/public/crossdomain.xml Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
+<cross-domain-policy>
+ <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
+
+ <!-- Most restrictive policy: -->
+ <site-control permitted-cross-domain-policies="none"/>
+
+ <!-- Least restrictive policy: -->
+ <!--
+ <site-control permitted-cross-domain-policies="all"/>
+ <allow-access-from domain="*" to-ports="*" secure="false"/>
+ <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
+ -->
+</cross-domain-policy>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/public/robots.txt Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,3 @@
+# http://www.robotstxt.org
+User-agent: *
+Disallow:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/server/.jshintrc Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,3 @@
+{
+ "node": true
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/server/index.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,22 @@
+// To use it create some files under `mocks/`
+// e.g. `server/mocks/ember-hamsters.js`
+//
+// module.exports = function(app) {
+// app.get('/ember-hamsters', function(req, res) {
+// res.send('hello');
+// });
+// };
+
+module.exports = function(app) {
+ var globSync = require('glob').sync;
+ var mocks = globSync('./mocks/**/*.js', { cwd: __dirname }).map(require);
+ var proxies = globSync('./proxies/**/*.js', { cwd: __dirname }).map(require);
+
+ // Log proxy requests
+ var morgan = require('morgan');
+ app.use(morgan('dev'));
+
+ mocks.forEach(function(route) { route(app); });
+ proxies.forEach(function(route) { route(app); });
+
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/server/mocks/documents.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,82 @@
+module.exports = function(app) {
+ var express = require('express');
+ var documentsRouter = express.Router();
+
+ documentsRouter.get('/', function(req, res) {
+ res.send({
+ 'documents': [{
+ id: "crdo-ALA_170",
+ uri: "http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_170",
+ title: "Atlas Linguistique et ethnographique de l'Alsace - Enqu\u00eates linguistiques - Brumath: 03",
+ publishers: ["Atlas linguistiques, cultures et parlers r\u00e9gionaux de France"],
+ mediaArray: [
+ {
+ url: "http:\/\/cocoon.huma-num.fr\/data\/ala\/ALA_170_22km.wav",
+ format: "audio\/x-wav"},
+ {
+ url: "http:\/\/cocoon.huma-num.fr\/data\/ala\/ALA_170.mp3",
+ format: "audio\/mpeg"},
+ {
+ url: "http:\/\/purl.org\/poi\/crdo.vjf.cnrs.fr\/crdo-ALA_170",
+ format: "audio\/x-wav" }
+ ]
+ },
+ {
+ id: "crdo-ALA_177",
+ uri: "http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_177",
+ title: "Atlas Linguistique et ethnographique de l'Alsace - Enqu\u00eates linguistiques - Cleebourg: 04",
+ publishers: ["Atlas linguistiques, cultures et parlers r\u00e9gionaux de France"],
+ mediaArray: [{
+ url: "http:\/\/cocoon.huma-num.fr\/data\/ala\/ALA_177_22km.wav",
+ format: "audio\/x-wav"
+ }, {
+ url: "http:\/\/cocoon.huma-num.fr\/data\/ala\/ALA_177.mp3",
+ format: "audio\/mpeg"
+ }, {
+ url: "http:\/\/purl.org\/poi\/crdo.vjf.cnrs.fr\/crdo-ALA_177",
+ format: "audio\/x-wav"
+ }]
+ }]
+ });
+ });
+
+ documentsRouter.post('/', function(req, res) {
+ res.status(201).end();
+ });
+
+ documentsRouter.get('/:id', function(req, res) {
+ res.send({
+ 'document': {
+ id: req.params.id,
+ uri: "http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_170",
+ title: "Atlas Linguistique et ethnographique de l'Alsace - Enqu\u00eates linguistiques - Brumath: 03",
+ publishers: ["Atlas linguistiques, cultures et parlers r\u00e9gionaux de France"],
+ mediaArray: [
+ {
+ url: "http:\/\/cocoon.huma-num.fr\/data\/ala\/ALA_170_22km.wav",
+ format: "audio\/x-wav"},
+ {
+ url: "http:\/\/cocoon.huma-num.fr\/data\/ala\/ALA_170.mp3",
+ format: "audio\/mpeg"},
+ {
+ url: "http:\/\/purl.org\/poi\/crdo.vjf.cnrs.fr\/crdo-ALA_170",
+ format: "audio\/x-wav" }
+ ]
+ }
+ });
+ });
+
+ documentsRouter.put('/:id', function(req, res) {
+ res.send({
+ 'document': {
+ id: req.params.id
+ }
+ });
+ });
+
+ documentsRouter.delete('/:id', function(req, res) {
+ res.status(204).end();
+ });
+
+ app.use('/api/documents', documentsRouter);
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/testem.json Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,12 @@
+{
+ "framework": "qunit",
+ "test_page": "tests/index.html?hidepassed",
+ "disable_watching": true,
+ "launch_in_ci": [
+ "PhantomJS"
+ ],
+ "launch_in_dev": [
+ "PhantomJS",
+ "Chrome"
+ ]
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/tests/.jshintrc Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,52 @@
+{
+ "predef": [
+ "document",
+ "window",
+ "location",
+ "setTimeout",
+ "$",
+ "-Promise",
+ "define",
+ "console",
+ "visit",
+ "exists",
+ "fillIn",
+ "click",
+ "keyEvent",
+ "triggerEvent",
+ "find",
+ "findWithAssert",
+ "wait",
+ "DS",
+ "andThen",
+ "currentURL",
+ "currentPath",
+ "currentRouteName"
+ ],
+ "node": false,
+ "browser": false,
+ "boss": true,
+ "curly": true,
+ "debug": false,
+ "devel": false,
+ "eqeqeq": true,
+ "evil": true,
+ "forin": false,
+ "immed": false,
+ "laxbreak": false,
+ "newcap": true,
+ "noarg": true,
+ "noempty": false,
+ "nonew": false,
+ "nomen": false,
+ "onevar": false,
+ "plusplus": false,
+ "regexp": false,
+ "undef": true,
+ "sub": true,
+ "strict": false,
+ "white": false,
+ "eqnull": true,
+ "esnext": true,
+ "unused": true
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/tests/helpers/resolver.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,11 @@
+import Resolver from 'ember/resolver';
+import config from '../../config/environment';
+
+var resolver = Resolver.create();
+
+resolver.namespace = {
+ modulePrefix: config.modulePrefix,
+ podModulePrefix: config.podModulePrefix
+};
+
+export default resolver;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/tests/helpers/start-app.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,18 @@
+import Ember from 'ember';
+import Application from '../../app';
+import config from '../../config/environment';
+
+export default function startApp(attrs) {
+ var application;
+
+ var attributes = Ember.merge({}, config.APP);
+ attributes = Ember.merge(attributes, attrs); // use defaults, but you can override;
+
+ Ember.run(function() {
+ application = Application.create(attributes);
+ application.setupForTesting();
+ application.injectTestHelpers();
+ });
+
+ return application;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/tests/index.html Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <title>BoClient Tests</title>
+ <meta name="description" content="">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ {{content-for 'head'}}
+ {{content-for 'test-head'}}
+
+ <link rel="stylesheet" href="assets/vendor.css">
+ <link rel="stylesheet" href="assets/bo-client.css">
+ <link rel="stylesheet" href="assets/test-support.css">
+
+ {{content-for 'head-footer'}}
+ {{content-for 'test-head-footer'}}
+ </head>
+ <body>
+
+ {{content-for 'body'}}
+ {{content-for 'test-body'}}
+ <script src="assets/vendor.js"></script>
+ <script src="assets/test-support.js"></script>
+ <script src="assets/bo-client.js"></script>
+ <script src="testem.js"></script>
+ <script src="assets/test-loader.js"></script>
+
+ {{content-for 'body-footer'}}
+ {{content-for 'test-body-footer'}}
+ </body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/tests/test-helper.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,6 @@
+import resolver from './helpers/resolver';
+import {
+ setResolver
+} from 'ember-qunit';
+
+setResolver(resolver);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/tests/unit/adapters/application-test.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,12 @@
+import { moduleFor, test } from 'ember-qunit';
+
+moduleFor('adapter:application', 'Unit | Adapter | application', {
+ // Specify the other units that are required for this test.
+ // needs: ['serializer:foo']
+});
+
+// Replace this with your real tests.
+test('it exists', function(assert) {
+ var adapter = this.subject();
+ assert.ok(adapter);
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/tests/unit/models/document-test.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,12 @@
+import { moduleForModel, test } from 'ember-qunit';
+
+moduleForModel('document', 'Unit | Model | document', {
+ // Specify the other units that are required for this test.
+ needs: []
+});
+
+test('it exists', function(assert) {
+ var model = this.subject();
+ // var store = this.store();
+ assert.ok(!!model);
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/tests/unit/routes/doc-test.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,11 @@
+import { moduleFor, test } from 'ember-qunit';
+
+moduleFor('route:doc', 'Unit | Route | doc', {
+ // Specify the other units that are required for this test.
+ // needs: ['controller:foo']
+});
+
+test('it exists', function(assert) {
+ var route = this.subject();
+ assert.ok(route);
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/bo_client/tests/unit/routes/index-test.js Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,11 @@
+import { moduleFor, test } from 'ember-qunit';
+
+moduleFor('route:index', 'Unit | Route | index', {
+ // Specify the other units that are required for this test.
+ // needs: ['controller:foo']
+});
+
+test('it exists', function(assert) {
+ var route = this.subject();
+ assert.ok(route);
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/.bowerrc Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,3 @@
+{
+"directory": "vendor/bower_components"
+}
--- a/server/src/app/Console/Commands/ImportCocoonRDF.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/app/Console/Commands/ImportCocoonRDF.php Mon Oct 05 17:02:10 2015 +0200
@@ -3,33 +3,33 @@
namespace CorpusParole\Console\Commands;
use Config;
+use Log;
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
use Phpoaipmh\Client;
use Phpoaipmh\Endpoint;
-class ImportCocoonRDF extends Command
-{
- /**
- * The console command name.
- *
- * @var string
- */
- protected $name = 'corpus-parole:importRDF';
+class ImportCocoonRDF extends Command {
/**
* The console command description.
*
* @var string
*/
- protected $description = 'Command description.';
+ protected $description = 'Import Rdf from Cocoon.';
+
+ /**
+ * The name and signature of the console command.
+ *
+ * @var string
+ */
+ protected $signature = 'corpus-parole:importRDF {--skip=0 : Number of record to skip}';
/**
* Create a new command instance.
*/
- public function __construct()
- {
+ public function __construct() {
parent::__construct();
}
@@ -38,60 +38,81 @@
*
* @return mixed
*/
- public function fire()
- {
- echo("hello\n");
+ public function fire() {
+
libxml_use_internal_errors(true);
- //$gs = new \EasyRdf_GraphStore(Config::get('corpusparole.sesame_update_url'));
- $gs = new \EasyRdf_Sparql_Client(Config::get('corpusparole.sesame_query_url'), Config::get('corpusparole.sesame_update_url'));
+ $skip = (int)$this->option('skip');
- //$doc = new \EasyRdf_Graph("http://cocoon.huma-num.fr/exist/crdo/rdf/crdo-ESLO1_ENTCONT_203");
- //$doc->load();
+ $this->comment("Skipping $skip records");
+
+ $gs = new \EasyRdf\Sparql\Client(Config::get('corpusparole.sesame_query_url'), Config::get('corpusparole.sesame_update_url'));
+
$client = new Client(Config::get('corpusparole.cocoon_oaipmh_url'));
- //$client = new Client('http://memory.loc.gov/cgi-bin/oai2_0');
$endpoint = new Endpoint($client);
$recs = $endpoint->listRecords('olac', null, null, 'LanguesDeFrance');
- //$recs = $endpoint->listRecords('oai_dc', null, null, 'mussm');
+
+ //TODO : treat timeout exceptions
+ $progressBar = $this->output->createProgressBar($recs->getTotalRecordsInCollection());
+ $progressBar->setFormat(' %current%/%max% [%bar%] %percent:3s%% - %message%');
foreach ($recs as $item) {
- if ($recs->getNumRequests() > 1) {
- break;
- }
+
$identifier = (string) $item->xpath('/record/header/identifier')[0];
$docRdfUrl = Config::get('corpusparole.cocoon_rdf_base_uri').substr($identifier, strlen(Config::get('corpusparole.cocoon_doc_id_base')));
- print("Processing $identifier : $docRdfUrl\n");
- $doc = new \EasyRdf_Graph($docRdfUrl);
- $doc->load();
- $subjects = $doc->resourcesMatching('foaf:primaryTopic');
- $subject = reset($subjects)->getUri();
- $gs->insert($doc, $subject);
- }
- }
+ $message = "$identifier : $docRdfUrl";
+ if($recs->getNumRetrieved() <= $skip) {
+ $progressBar->setMessage("$message - Skipping");
+ $progressBar->advance();
+ continue;
+ }
+ $progressBar->setMessage($message);
+ $progressBar->advance();
- /**
- * Get the console command arguments.
- *
- * @return array
- */
- protected function getArguments()
- {
- return [
- ['example', InputArgument::REQUIRED, 'An example argument.'],
- ];
- }
-
- /**
- * Get the console command options.
- *
- * @return array
- */
- protected function getOptions()
- {
- return [
- //['example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null],
- ];
+ $docUri = config('corpusparole.cocoon_doc_id_base_uri').substr($identifier, strlen(Config::get('corpusparole.cocoon_doc_id_base')));
+ $resDocs = $gs->query("ASK WHERE { GRAPH <$docUri> { ?s ?p ?o }}");
+ if(!$resDocs->getBoolean()) {
+ $docLoaded = false;
+ $loadRetry = 0;
+ while(!$docLoaded && $loadRetry < config('corpusparole.max_load_retry', 3)) {
+ $loadRetry++;
+ try {
+ $doc = new \EasyRdf\Graph($docRdfUrl);
+ $doc->load();
+ $docLoaded = true;
+ }
+ //TODO: catch network exception - add error to database
+ catch(\Exception $e) {
+ $code = $e->getCode();
+ $message = $e->getMessage();
+ $this->debug("\nError processing $identifier. code : $code, message: $message");
+ Log::debug("Error processing $identifier. code : $code, message: $message");
+ if($code == 1 && stripos($message, 'timed out')>=0 ) {
+ $this->warning("\nTimeout error processing $identifier ($docRdfUrl) : $e, retrying");
+ Log::warning("Timeout error processing $identifier ($docRdfUrl) : $e, retrying");
+ continue;
+ }
+ else {
+ $this->error("\nError processing $identifier ($docRdfUrl) : $e");
+ Log::error("Error processing $identifier ($docRdfUrl) : $e");
+ break;
+ }
+ //$this->error(print_r($e->getTraceAsString(),true));
+ }
+ }
+ if(!$docLoaded) {
+ continue;
+ }
+ //TODO: treat errors
+ $subjects = $doc->resources();
+ $subject = reset($subjects)->getUri();
+ //TODO: exceptions ? but if pb on insert probably we have to fail anyway
+ $gs->insert($doc, $subject);
+ }
+ }
+ $progressBar->setMessage("finished");
+ $progressBar->finish();
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/app/Http/Controllers/Api/DocumentController.php Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,99 @@
+<?php
+
+namespace CorpusParole\Http\Controllers\Api;
+
+use Illuminate\Http\Request;
+
+use CorpusParole\Http\Requests;
+use CorpusParole\Http\Controllers\Controller;
+use CorpusParole\Repositories\DocumentRepository;
+
+class DocumentController extends Controller
+{
+ /**
+ * Create a new controller instance.
+ */
+ public function __construct(DocumentRepository $documentRepo) {
+ $this->documentRepository = $documentRepo;
+ }
+
+ /**
+ * Display a listing of the resource.
+ *
+ * @return Response
+ */
+ public function index()
+ {
+ return response()->json($this->documentRepository->paginateAll());
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ *
+ * @return Response
+ */
+ public function create()
+ {
+ //
+ }
+
+ /**
+ * Store a newly created resource in storage.
+ *
+ * @param Request $request
+ * @return Response
+ */
+ public function store(Request $request)
+ {
+ //
+ }
+
+ /**
+ * Display the specified resource.
+ *
+ * @param int $id
+ * @return Response
+ */
+ public function show($id)
+ {
+ $doc = $this->documentRepository->get($id);
+ if(is_null($doc)) {
+ abort(404);
+ }
+ return response()->json($doc);
+ }
+
+ /**
+ * Show the form for editing the specified resource.
+ *
+ * @param int $id
+ * @return Response
+ */
+ public function edit($id)
+ {
+ //
+ }
+
+ /**
+ * Update the specified resource in storage.
+ *
+ * @param Request $request
+ * @param int $id
+ * @return Response
+ */
+ public function update(Request $request, $id)
+ {
+ //
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ *
+ * @param int $id
+ * @return Response
+ */
+ public function destroy($id)
+ {
+ //
+ }
+}
--- a/server/src/app/Http/Controllers/Bo/DocumentListController.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/app/Http/Controllers/Bo/DocumentListController.php Mon Oct 05 17:02:10 2015 +0200
@@ -25,7 +25,7 @@
* @return Response
*/
public function index() {
- return view('bo.docList', ['docs' => $this->documentRepository->all()]);
+ return view('bo.docList', ['docs' => $this->documentRepository->paginateAll()]);
}
/**
@@ -60,6 +60,10 @@
//$doc->add("<$doc_uri>");
$doc = $this->documentRepository->get($id);
+ if(is_null($doc)) {
+ abort(404);
+ }
+
return view('bo.docDetail', ['doc' => $doc]);
}
@@ -87,16 +91,12 @@
*/
public function update($id, Request $request)
{
- Log::debug('REQUEST : '.print_r($request->input(), true));
-
$doc = $this->documentRepository->get($id);
$newDoc = clone $doc;
$newDoc->updateDiscourseTypes(array_unique($request->input('discourse_type')));
- Log::debug("Graph isomorphes ? " . print_r(\EasyRdf_Isomorphic::bijectionBetween($doc->getGraph(), $doc->getGraph()), true));
-
//TODO: save change in store
//TODO: create log object
--- a/server/src/app/Http/routes.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/app/Http/routes.php Mon Oct 05 17:02:10 2015 +0200
@@ -21,3 +21,14 @@
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
+
+/*
+|--------------------------------------------------------------------------
+| Api Route
+|--------------------------------------------------------------------------
+|
+|
+*/
+
+Route::resource('api/document', 'Api\DocumentController',
+ ['only' => ['index', 'show']]);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/app/Libraries/CorpusParoleException.php Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,9 @@
+<?php
+namespace CorpusParole\Libraries;
+
+/**
+ * Exception class
+ */
+class CorpusParoleException extends \Exception {
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/app/Libraries/RdfModel/RdfModelDelta.php Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,27 @@
+<?php
+namespace CorpusParole\Libraries\RdfModel;
+
+use EasyRdf\Graph;
+
+/**
+ *
+ */
+class RdfModelDelta {
+
+ public function __construct($uri) {
+ $this->deletedGraph = new Graph($uri);
+ $this->addedGraph = new Graph($uri);
+ }
+
+ private $deletedGraph;
+ private $addedGraph;
+
+ public function getDeletedGraph() {
+ return $this->deletedGraph;
+ }
+
+ public function getAddedGraph() {
+ return $this->addedGraph;
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/app/Libraries/RdfModel/RdfModelResource.php Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,43 @@
+<?php
+namespace CorpusParole\Libraries\RdfModel;
+
+use CorpusParole\Libraries\RdfModel\RdfModelDelta;
+use EasyRdf\Resource;
+
+/**
+ *
+ */
+class RdfModelResource extends Resource {
+
+ public function __construct($uri, $graph = null) {
+ parent::__construct($uri, $graph);
+ $this->uri = $uri;
+ }
+
+ protected $deltaList = [];
+ protected $currentDelta = null;
+ protected $uri = null;
+
+ public function isDirty() {
+ return !is_null($this->deltaList) && count($this->deltaList)>0;
+ }
+
+ public function deltaCount() {
+ return is_null($this->deltaList)?0:count($this->deltaList);
+ }
+
+ public function getDeltaList() {
+ return $this->deltaList;
+ }
+
+ public function getUri() {
+ return $this->uri;
+ }
+
+ public function startDelta() {
+ $this->currentDelta = new RdfModelDelta($this->getGraph()->getUri());
+ array_push($this->deltaList, $this->currentDelta);
+ }
+
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/app/Libraries/Sparql/SparqlClient.php Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,142 @@
+<?php
+namespace CorpusParole\Libraries\Sparql;
+
+use EasyRdf\Graph;
+use CorpusParole\Libraries\CorpusParoleException;
+use Config;
+use Log;
+
+/**
+ *
+ */
+class SparqlClient {
+
+ private $currentTransactionUrl = null;
+
+ function __construct($httpClient, $sparqlClient) {
+ $this->sparqlClient = $sparqlClient;
+ $this->httpClient = $httpClient;
+ }
+
+ private function getHttpClient() {
+ return $this->httpClient;
+ }
+
+ public function getCurrentTransactionUrl() {
+ return $this->currentTransactionUrl;
+ }
+
+ /**
+ * Start transaction.
+ * @return boolean true if a transaction was started, false otherwise
+ * @throws CorpusParoleException if the transaction could not be stared
+ */
+ public function startTransaction() {
+ if(!is_null($this->currentTransactionUrl)) {
+ // We just continue the current transaction
+ return false;
+ }
+ //Log::debug('http_client base uri: ' . $this->getHttpClient()->getConfig('base_uri'));
+ $sesameRepository = config('corpusparole.sesame_repository');
+ $resp = $this->getHttpClient()->post("$sesameRepository/transactions");
+ //$resp = $this->getHttpClient()->post('transactions');
+ //TODO check errors
+ if($resp->getStatusCode() != 201) {
+ throw new CorpusParoleException("Error when starting transaction : "
+ . $resp->getStatusCode() . " - "
+ . $resp->getReasonPhrase() . " : " . $resp->getBody(), 1);
+ }
+
+ $this->currentTransactionUrl = $resp->getHeader('Location')[0];
+
+ return true;
+ }
+
+ /**
+ * Rollback transaction.
+ * @return boolean true if a transaction was started, false otherwise
+ * @throws CorpusParoleException if the transaction could not be rollbacked
+ */
+ public function rollback() {
+ if(is_null($this->currentTransactionUrl)) {
+ // We just continue the current transaction
+ return false;
+ }
+ $resp = $this->getHttpClient()->delete($this->currentTransactionUrl);
+
+ if($resp->getStatusCode() != 204) {
+ throw new CorpusParoleException("Could not cancel transaction : "
+ . $resp->getStatusCode() . " - "
+ . $resp->getReasonPhrase() . " : " . $resp->getBody(), 1);
+ }
+ $this->currentTransactionUrl = null;
+
+ return true;
+ }
+
+ /**
+ * Commit transaction.
+ * @return boolean true if a transaction was started, false otherwise
+ * @throws CorpusParoleException if the transaction could not be commited
+ */
+ public function commit() {
+ if(is_null($this->currentTransactionUrl)) {
+ // We just continue the current transaction
+ return false;
+ }
+ $resp = $this->getHttpClient()->put($this->currentTransactionUrl, ['query' => ['action' => 'COMMIT']]);
+ if($resp->getStatusCode() != 200) {
+ throw new CorpusParoleException("Could not commit transaction : "
+ . $resp->getStatusCode() . " - "
+ . $resp->getReasonPhrase() . " : " . $resp->getBody(), 1);
+ }
+ $this->currentTransactionUrl = null;
+ return true;
+ }
+
+ protected function updateData($operation, Graph $graph)
+ {
+ $graphUri = $graph->getUri();
+ $query = "$operation DATA {";
+ if ($graphUri) {
+ $query .= "GRAPH <$graphUri> {";
+ }
+ $query .= $graph->serialise('ntriples');
+ if ($graphUri) {
+ $query .= "}";
+ }
+ $query .= '}';
+
+ $resp = $this->getHttpClient()->put(
+ $this->currentTransactionUrl, [
+ 'query' => ['action' => 'UPDATE'],
+ 'form_params'=> ['update' => $query],
+ ]
+ );
+ if($resp->getStatusCode() != 204) {
+ throw new CorpusParoleException("Could not update in transaction with operation $operation: "
+ . $resp->getStatusCode() . " - "
+ . $resp->getReasonPhrase() . " : " . $resp->getBody(), 1);
+ }
+ }
+
+ public function add(Graph $graph) {
+ $this->updateData('INSERT', $graph);
+ }
+
+ public function delete(Graph $graph) {
+ $this->updateData('DELETE', $graph);
+ }
+
+ /** Make a query to the SPARQL endpoint
+ *
+ * Just call and return EasyRdf\Sparql\Client::query
+ *
+ * @param string $query The query string to be executed
+ * @return object EasyRdf\Sparql\Result|EasyRdf\Graph Result of the query.
+ */
+ public function query($query) {
+ return $this->sparqlClient->query($query);
+ }
+
+}
--- a/server/src/app/Libraries/Utils.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/app/Libraries/Utils.php Mon Oct 05 17:02:10 2015 +0200
@@ -38,7 +38,11 @@
"js"=>"application/javascript",
"php"=>"text/html",
"htm"=>"text/html",
- "html"=>"text/html"
+ "html"=>"text/html",
+ "mp4"=>"video/mp4",
+ "ogg"=>"video/ogg",
+ "xml"=>"application/xml",
+ "xhtml"=>"application/xhtml+xml",
);
$split_ext = explode('.',$file);
@@ -46,4 +50,16 @@
return $mime_types[$extension];
}
+
+ public static function process_literal_or_string($val) {
+ if(is_null($val)) {
+ return $val;
+ }
+ if($val instanceof Literal) {
+ return $val->getValue();
+ }
+ else {
+ return (string)$val;
+ }
+ }
}
--- a/server/src/app/Models/Document.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/app/Models/Document.php Mon Oct 05 17:02:10 2015 +0200
@@ -4,16 +4,22 @@
use Config;
use CorpusParole\Libraries\Utils;
use CorpusParole\Libraries\RdfModel\RdfModelResource;
+use JsonSerializable;
use Log;
+use EasyRdf\Literal;
+use EasyRdf\Resource;
+use EasyRdf\Graph;
+use EasyRdf\Isomorphic;
+
/**
- * Model class for Document. Inherit from EasyRdf_Resource
+ * Model class for Document. Inherit from EasyRd\Resource
* SELECT DISTINCT ?g WHERE {GRAPH ?g {?s ?p ?o}}
*/
-class Document extends RdfModelResource {
+class Document extends RdfModelResource implements JsonSerializable {
public function __construct($uri, $graph = null) {
- parent::__construct($uri, $graph, 'foaf:primaryTopic');
+ parent::__construct($uri, $graph);
}
private $id = null;
@@ -26,40 +32,60 @@
}
public function getTitle() {
- return $this->innerDocument->getLiteral('dc11:title');
+ try {
+ return $this->getLiteral('<http://purl.org/dc/elements/1.1/title>');
+ } catch(\Exception $e) {
+ return null;
+ }
}
public function getPublishers() {
- return $this->innerDocument->allLiterals('dc11:publisher');
+ try {
+ return $this->allLiterals('dc11:publisher');
+ } catch(\Exception $e) {
+ return [];
+ }
}
public function getMediaArray() {
//TODO: add media type
$res = [];
- $formats = $this->innerDocument->allResources("dc:isFormatOf");
+ $formats = [];
+ try {
+ $formats = $this->allResources("dc:isFormatOf");
+ } catch(\Exception $e) {
+ // do nothing
+ }
foreach ($formats as $f) {
$uri = $f->getUri();
$mimetype = Utils::get_mimetype($uri);
array_push($res, ["url" => $uri, "format" => $mimetype]);
}
- array_push($res, ["url" => $this->innerDocument->getUri(), "format" => $this->innerDocument->getLiteral('dc11:format')]);
+
+ $format = null;
+ try {
+ $format = $this->getLiteral('dc11:format');
+ } catch(\Exception $e) {
+ // do nothing
+ }
+ array_push($res, ["url" => $this->getUri(), "format" => $format]);
return $res;
}
public function getTypes() {
- return $this->innerDocument->all('dc11:type');
+ return $this->all('dc11:type');
}
public function getDiscourseTypes() {
return array_values(array_filter($this->getTypes(), function($v) {
- return $v instanceof \EasyRdf_Literal && $v->getDatatypeUri() === Config::get('constants.OLAC_DISCOURSE_TYPE')['uri'];
+ return $v instanceof Literal && $v->getDatatypeUri() === Config::get('constants.OLAC_DISCOURSE_TYPE')['uri'];
}));
}
public function getOtherTypes() {
$res = array_values(array_filter($this->getTypes(), function($v) {
- return $v instanceof \EasyRdf_Resource || $v->getDatatypeUri() !== Config::get('constants.OLAC_DISCOURSE_TYPE')['uri'];
+ return $v instanceof Resource || $v->getDatatypeUri() !== Config::get('constants.OLAC_DISCOURSE_TYPE')['uri'];
}));
return $res;
}
@@ -69,19 +95,19 @@
$this->startDelta();
foreach($this->getDiscourseTypes() as $discourseType) {
- $this->innerDocument->delete('dc11:type', $discourseType);
- $this->currentDelta->deletedGraph->add($this->innerDocument, 'dc11:type', $discourseType);
+ $this->delete('dc11:type', $discourseType);
+ $this->currentDelta->getDeletedGraph()->add($this, 'dc11:type', new Literal($discourseType, null, Config::get('constants.OLAC_DISCOURSE_TYPE')['uri']));
}
// re-add them
foreach($discoursesTypes as $dType) {
- $this->innerDocument->add('dc11:type', new \EasyRdf_Literal($dType, null, Config::get('constants.OLAC_DISCOURSE_TYPE')['uri']));
- $this->currentDelta->addedGraph->add($this->innerDocument, 'dc11:type', $discourseType);
+ $this->add('dc11:type', new Literal($dType, null, Config::get('constants.OLAC_DISCOURSE_TYPE')['uri']));
+ $this->currentDelta->getAddedGraph()->add($this, 'dc11:type', new Literal($dType, null, Config::get('constants.OLAC_DISCOURSE_TYPE')['uri']));
}
}
public function isIsomorphic($doc) {
- return \EasyRdf_Isomorphic::isomorphic($this->graph, $doc->graph);
+ return Isomorphic::isomorphic($this->graph, $doc->graph);
}
/*
@@ -90,8 +116,35 @@
*/
public function __clone() {
- $this->graph = new \EasyRdf_Graph($this->graph->getUri(), $this->graph->toRdfPhp());
- $this->innerDocument = $this->getResource('foaf:primaryTopic');
+ $this->graph = new Graph($this->graph->getUri(), $this->graph->toRdfPhp());
+ }
+
+ public function jsonSerialize() {
+ if(!$this->graph) {
+ return [
+ 'id' => $this->getId(),
+ ];
+ } else {
+ $mediaArray = array_map(
+ function($m) {
+ $f = Utils::process_literal_or_string($m['format']);
+ return ['url' => $m['url'], 'format' => $f];},
+ $this->getMediaArray()
+ );
+
+ $publishers = array_map(
+ function($v) { return Utils::process_literal_or_string($v); },
+ $this->getPublishers()
+ );
+
+ return [
+ 'id' => $this->getId(),
+ 'uri' => $this->getUri(),
+ 'title' => $this->getTitle()->getValue(),
+ 'publishers' => $publishers,
+ 'mediaArray'=> $mediaArray
+ ];
+ }
}
}
--- a/server/src/app/Providers/ConfigServiceProvider.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/app/Providers/ConfigServiceProvider.php Mon Oct 05 17:02:10 2015 +0200
@@ -3,6 +3,7 @@
namespace CorpusParole\Providers;
use Illuminate\Support\ServiceProvider;
+use EasyRdf\Http;
class ConfigServiceProvider extends ServiceProvider
{
@@ -18,5 +19,6 @@
config([
//
]);
+ Http::getDefaultHttpClient()->setConfig(['timeout' => config('corpusparole.easyrdf_http_client_timeout', 10)]);
}
}
--- a/server/src/app/Providers/RepositoryServiceProvider.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/app/Providers/RepositoryServiceProvider.php Mon Oct 05 17:02:10 2015 +0200
@@ -11,7 +11,13 @@
public function register() {
$this->app->bind(
'CorpusParole\Repositories\DocumentRepository',
- 'CorpusParole\Repositories\RdfDocumentRepository'
+ function($app) {
+
+ $httpClient = $app->make('GuzzleHttp\Client', [[ 'base_uri' => config('corpusparole.sesame_query_url'), 'http_errors' => false]]);
+ $sparqlClient = $app->make('EasyRdf\Sparql\Client', [config('corpusparole.sesame_query_url'), config('corpusparole.sesame_update_url')]);
+ $cpSparqlClient = $app->make('CorpusParole\Libraries\Sparql\SparqlClient', [$httpClient, $sparqlClient]);
+ return $app->make('CorpusParole\Repositories\RdfDocumentRepository', [$cpSparqlClient,]);
+ }
);
}
}
--- a/server/src/app/Repositories/DocumentRepository.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/app/Repositories/DocumentRepository.php Mon Oct 05 17:02:10 2015 +0200
@@ -1,10 +1,24 @@
<?php
-
namespace CorpusParole\Repositories;
+use CorpusParole\Models\Document;
+
interface DocumentRepository {
-
+
public function all();
public function get($id);
+
+ public function save(Document $doc);
+
+ /**
+ * Paginate all document as a paginator.
+ *
+ * @param int $perPage
+ * @param string $pageName
+ * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
+ */
+ public function paginateAll($perPage = 15, $pageName = 'page');
+
+ public function getCount();
}
--- a/server/src/app/Repositories/RdfDocumentRepository.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/app/Repositories/RdfDocumentRepository.php Mon Oct 05 17:02:10 2015 +0200
@@ -5,25 +5,30 @@
use Config;
use Log;
use CorpusParole\Models\Document;
+use CorpusParole\Libraries\CorpusParoleException;
+use CorpusParole\Libraries\Sparql\SparqlClient;
+
+use Illuminate\Pagination\LengthAwarePaginator;
+use Illuminate\Pagination\Paginator;
/**
* Implement the DocumentRepository using EasyRdf
+ * TODO: cetainly split the transaction management (+add, +delete +transaction ) to an extarnal class -> for this extend the sparql client.
*/
class RdfDocumentRepository implements DocumentRepository {
private $sparqlClient;
- function __construct() {
- $this->sparqlClient = new \EasyRdf_Sparql_Client(Config::get('corpusparole.sesame_query_url'), Config::get('corpusparole.sesame_update_url'));
+ public function __construct(SparqlClient $sparqlClient) {
+ $this->sparqlClient = $sparqlClient;
}
- public function all() {
+ public function getSparqlClient() {
+ return $this->sparqlClient;
+ }
- $docs = $this->sparqlClient->query(
- 'SELECT * WHERE {'.
- ' ?uri <http://xmlns.com/foaf/0.1/primaryTopic> ?b;'.
- '} ORDER BY ?uri'
- );
+ private function queryDocs($query) {
+ $docs = $this->sparqlClient->query($query);
$data = [];
@@ -34,31 +39,92 @@
return $data;
}
+ public function all() {
+
+ return $this->queryDocs("SELECT DISTINCT ?uri WHERE { GRAPH ?uri { ?s ?p ?o } } ORDER BY ?uri");
+
+ }
+
public function get($id) {
- $doc_uri = Config::get('corpusparole.cocoon_doc_id_base_uri').$id;
-
- //$doc = $sparql->query(
- // "CONSTRUCT {".
- // " ?doc ?p ?v.".
- // "}".
- // "WHERE {".
- // " <$doc_uri> <http://xmlns.com/foaf/0.1/primaryTopic> ?doc.".
- // " ?doc ?p ?v;".
- // "}"
- //);
+ $docUri = Config::get('corpusparole.cocoon_doc_id_base_uri').$id;
// We want the CBD (Concise Bounded Description, cf. http://www.w3.org/Submission/CBD/)
// WARNING: This seems to work in sesame for our dataset.
$doc = $this->sparqlClient->query(
- 'DESCRIBE ?doc '.
- 'WHERE {'.
- " <$doc_uri> <http://xmlns.com/foaf/0.1/primaryTopic> ?doc;".
- '}'
+ "CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <$docUri> { ?s ?p ?o } }"
);
+ //TODO: return null if not found
+ if($doc->isEmpty()) {
+ return null;
+ }
- return new Document($doc_uri, $doc);
+ return new Document($docUri, $doc);
}
+ /**
+ * save document.
+ * @return boolean true if a transaction was started, false otherwise
+ * @throws CorpusParoleException if one of the operation could not be performed
+ */
+ public function save(Document $doc) {
+
+ $transactionStarted = $this->sparqlClient->startTransaction();
+
+ try {
+ foreach($doc->getDeltaList() as $delta) {
+ $this->sparqlClient->delete($delta->getDeletedGraph());
+ $this->sparqlClient->add($delta->getAddedGraph());
+ }
+ if($transactionStarted) {
+ $transactionStarted = false;
+ return $this->sparqlClient->commit();
+ }
+ else {
+ return false;
+ }
+ }
+ catch(CorpusParoleException $e) {
+ if($transactionStarted) {
+ $this->sparqlClient->rollback();
+ }
+ throw $e;
+ }
+ }
+
+ public function getCount() {
+ $res = $this->sparqlClient->query("SELECT (COUNT (DISTINCT ?g) as ?count) WHERE { GRAPH ?g { ?s ?p ?o } }");
+ assert(!is_null($res) && $res->count()==1);
+ return $res[0]->count->getValue();
+ }
+
+ //SELECT ?g WHERE { GRAPH ?g { ?s ?p ?o } }
+
+ /**
+ * Paginate all document as a paginator.
+ *
+ * @param int $perPage
+ * @param string $pageName
+ * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
+ */
+ public function paginateAll($perPage = 15, $pageName = 'page')
+ {
+ $page = Paginator::resolveCurrentPage($pageName);
+
+ $total = $this->getCount();
+
+ $offset = max(0,($page - 1) * $perPage);
+
+ $query = "SELECT DISTINCT ?uri WHERE { GRAPH ?uri { ?s ?p ?o } } ORDER BY ?uri OFFSET $offset LIMIT $perPage";
+
+ $results = $this->queryDocs($query);
+
+ return new LengthAwarePaginator($results, $total, $perPage, $page, [
+ 'path' => Paginator::resolveCurrentPath(),
+ 'pageName' => $pageName,
+ ]);
+ }
+
+
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/auth.json Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,5 @@
+{
+ "github-oauth": {
+ "github.com": "462d17fd9b2ee25857adfd5dc4fb291e42f9fe4e"
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/bower.json Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,25 @@
+{
+ "name": "corpus-parole",
+ "version": "0.0.1",
+ "authors": [
+ "Yves-Marie Haussonne <ymh.work+github@gmail.com>"
+ ],
+ "description": "Corpus de la parole",
+ "moduleType": [
+ "es6"
+ ],
+ "license": "MIT",
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "vendor/bower_components",
+ "test",
+ "tests"
+ ],
+ "dependencies": {
+ "bootstrap-sass": "bootstrap-sass-official#~3.3.5",
+ "bourbon": "~4.2.4",
+ "font-awesome": "~4.4.0"
+ }
+}
--- a/server/src/composer.json Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/composer.json Mon Oct 05 17:02:10 2015 +0200
@@ -6,7 +6,7 @@
"type": "project",
"require": {
"laravel/framework": "5.1.*",
- "easyrdf/easyrdf": "*",
+ "easyrdf/easyrdf": "*@dev",
"ml/json-ld": "*",
"caseyamcl/phpoaipmh": "~2.4",
"guzzlehttp/guzzle": "~6.0",
--- a/server/src/composer.lock Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/composer.lock Mon Oct 05 17:02:10 2015 +0200
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "3548116cfb0402c4629216e7c27d4465",
+ "hash": "43b757168dd323060f8ecedc259686a8",
"packages": [
{
"name": "caseyamcl/phpoaipmh",
@@ -67,35 +67,29 @@
},
{
"name": "classpreloader/classpreloader",
- "version": "1.4.0",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/ClassPreloader/ClassPreloader.git",
- "reference": "b76f3f4f603ebbe7e64351a7ef973431ddaf7b27"
+ "reference": "8c3c14b10309e3b40bce833913a6c0c0b8c8f962"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/b76f3f4f603ebbe7e64351a7ef973431ddaf7b27",
- "reference": "b76f3f4f603ebbe7e64351a7ef973431ddaf7b27",
+ "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/8c3c14b10309e3b40bce833913a6c0c0b8c8f962",
+ "reference": "8c3c14b10309e3b40bce833913a6c0c0b8c8f962",
"shasum": ""
},
"require": {
"nikic/php-parser": "~1.3",
- "php": ">=5.3.3",
- "symfony/console": "~2.1",
- "symfony/filesystem": "~2.1",
- "symfony/finder": "~2.1"
+ "php": ">=5.5.9"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
- "bin": [
- "classpreloader.php"
- ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -114,7 +108,7 @@
},
{
"name": "Graham Campbell",
- "email": "graham@cachethq.io"
+ "email": "graham@alt-three.com"
}
],
"description": "Helps class loading performance by generating a single PHP file containing all of the autoloaded files for a specific use case",
@@ -123,20 +117,20 @@
"class",
"preload"
],
- "time": "2015-05-26 10:57:51"
+ "time": "2015-06-28 21:39:13"
},
{
"name": "danielstjules/stringy",
- "version": "1.9.0",
+ "version": "1.10.0",
"source": {
"type": "git",
"url": "https://github.com/danielstjules/Stringy.git",
- "reference": "3cf18e9e424a6dedc38b7eb7ef580edb0929461b"
+ "reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/danielstjules/Stringy/zipball/3cf18e9e424a6dedc38b7eb7ef580edb0929461b",
- "reference": "3cf18e9e424a6dedc38b7eb7ef580edb0929461b",
+ "url": "https://api.github.com/repos/danielstjules/Stringy/zipball/4749c205db47ee5b32e8d1adf6d9aff8db6caf3b",
+ "reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b",
"shasum": ""
},
"require": {
@@ -179,7 +173,7 @@
"utility",
"utils"
],
- "time": "2015-02-10 06:19:18"
+ "time": "2015-07-23 00:54:12"
},
{
"name": "dnoegel/php-xdg-base-dir",
@@ -283,35 +277,39 @@
},
{
"name": "easyrdf/easyrdf",
- "version": "0.9.1",
+ "version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/njh/easyrdf.git",
- "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566"
+ "reference": "4f7f1e5e726e4abaf1428888cf45796abbc7d70b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/njh/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566",
- "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566",
+ "url": "https://api.github.com/repos/njh/easyrdf/zipball/4f7f1e5e726e4abaf1428888cf45796abbc7d70b",
+ "reference": "4f7f1e5e726e4abaf1428888cf45796abbc7d70b",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"ext-pcre": "*",
- "php": ">=5.2.8"
+ "php": ">=5.3.0"
},
"require-dev": {
- "phpunit/phpunit": "~3.5",
- "sami/sami": "~1.4",
- "squizlabs/php_codesniffer": "~1.4.3"
+ "ml/json-ld": "~1.0",
+ "phpunit/phpunit": "~4.1",
+ "sami/sami": "~2.0",
+ "semsol/arc2": "~2.2",
+ "squizlabs/php_codesniffer": "~1.4.3",
+ "zendframework/zend-http": "~2.3"
},
"suggest": {
- "ml/json-ld": "~1.0"
+ "ml/json-ld": "~1.0",
+ "semsol/arc2": "~2.2"
},
"type": "library",
"autoload": {
- "psr-0": {
- "EasyRdf_": "lib/"
+ "psr-4": {
+ "EasyRdf\\": "lib"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -328,6 +326,7 @@
{
"name": "Alexey Zakhlestin",
"email": "indeyets@gmail.com",
+ "homepage": "http://indeyets.ru/",
"role": "Developer"
}
],
@@ -341,31 +340,31 @@
"rdfa",
"sparql"
],
- "time": "2015-02-27 09:45:49"
+ "time": "2015-04-02 06:12:11"
},
{
"name": "guzzlehttp/guzzle",
- "version": "6.0.1",
+ "version": "6.0.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "f992b7b487a816c957d317442bed4966409873e0"
+ "reference": "a8dfeff00eb84616a17fea7a4d72af35e750410f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f992b7b487a816c957d317442bed4966409873e0",
- "reference": "f992b7b487a816c957d317442bed4966409873e0",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a8dfeff00eb84616a17fea7a4d72af35e750410f",
+ "reference": "a8dfeff00eb84616a17fea7a4d72af35e750410f",
"shasum": ""
},
"require": {
- "guzzlehttp/promises": "^1.0.0",
- "guzzlehttp/psr7": "^1.0.0",
+ "guzzlehttp/promises": "~1.0",
+ "guzzlehttp/psr7": "~1.1",
"php": ">=5.5.0"
},
"require-dev": {
"ext-curl": "*",
- "phpunit/phpunit": "^4.0",
- "psr/log": "^1.0"
+ "phpunit/phpunit": "~4.0",
+ "psr/log": "~1.0"
},
"type": "library",
"extra": {
@@ -375,7 +374,7 @@
},
"autoload": {
"files": [
- "src/functions.php"
+ "src/functions_include.php"
],
"psr-4": {
"GuzzleHttp\\": "src/"
@@ -403,27 +402,27 @@
"rest",
"web service"
],
- "time": "2015-05-27 16:57:51"
+ "time": "2015-07-04 20:09:24"
},
{
"name": "guzzlehttp/promises",
- "version": "1.0.0",
+ "version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "01abc3232138f330d8a1eaa808fcbdf9b4292f47"
+ "reference": "97fe7210def29451ec74923b27e552238defd75a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/01abc3232138f330d8a1eaa808fcbdf9b4292f47",
- "reference": "01abc3232138f330d8a1eaa808fcbdf9b4292f47",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/97fe7210def29451ec74923b27e552238defd75a",
+ "reference": "97fe7210def29451ec74923b27e552238defd75a",
"shasum": ""
},
"require": {
"php": ">=5.5.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0"
+ "phpunit/phpunit": "~4.0"
},
"type": "library",
"extra": {
@@ -436,7 +435,7 @@
"GuzzleHttp\\Promise\\": "src/"
},
"files": [
- "src/functions.php"
+ "src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -454,31 +453,31 @@
"keywords": [
"promise"
],
- "time": "2015-05-13 05:05:10"
+ "time": "2015-08-15 19:37:21"
},
{
"name": "guzzlehttp/psr7",
- "version": "1.0.0",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "19e510056d8d671d9d9e25dc16937b3dd3802ae6"
+ "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/19e510056d8d671d9d9e25dc16937b3dd3802ae6",
- "reference": "19e510056d8d671d9d9e25dc16937b3dd3802ae6",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/4ef919b0cf3b1989523138b60163bbcb7ba1ff7e",
+ "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
- "psr/http-message": "^1.0"
+ "psr/http-message": "~1.0"
},
"provide": {
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0"
+ "phpunit/phpunit": "~4.0"
},
"type": "library",
"extra": {
@@ -491,7 +490,7 @@
"GuzzleHttp\\Psr7\\": "src/"
},
"files": [
- "src/functions.php"
+ "src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -512,7 +511,7 @@
"stream",
"uri"
],
- "time": "2015-05-19 17:58:45"
+ "time": "2015-08-15 19:32:36"
},
{
"name": "jakub-onderka/php-console-color",
@@ -643,7 +642,7 @@
"name": "Jeremy Lindblom",
"email": "jeremeamia@gmail.com",
"homepage": "https://github.com/jeremeamia",
- "role": "Developer"
+ "role": "developer"
}
],
"description": "Serialize Closure objects, including their context and binding",
@@ -661,20 +660,20 @@
},
{
"name": "laravel/framework",
- "version": "v5.1.2",
+ "version": "v5.1.12",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "65a3a4ca4b20083517a9e2effa6a86a49f3e9c96"
+ "reference": "76a9816f37a58383f6ba093ccf08f253e5488555"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/65a3a4ca4b20083517a9e2effa6a86a49f3e9c96",
- "reference": "65a3a4ca4b20083517a9e2effa6a86a49f3e9c96",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/76a9816f37a58383f6ba093ccf08f253e5488555",
+ "reference": "76a9816f37a58383f6ba093ccf08f253e5488555",
"shasum": ""
},
"require": {
- "classpreloader/classpreloader": "~1.2",
+ "classpreloader/classpreloader": "~2.0",
"danielstjules/stringy": "~1.8",
"doctrine/inflector": "~1.0",
"ext-mbstring": "*",
@@ -685,7 +684,7 @@
"mtdowling/cron-expression": "~1.0",
"nesbot/carbon": "~1.19",
"php": ">=5.5.9",
- "psy/psysh": "0.4.*",
+ "psy/psysh": "~0.5.1",
"swiftmailer/swiftmailer": "~5.1",
"symfony/console": "2.7.*",
"symfony/css-selector": "2.7.*",
@@ -785,20 +784,20 @@
"framework",
"laravel"
],
- "time": "2015-06-15 18:25:50"
+ "time": "2015-08-30 23:25:48"
},
{
"name": "laravelcollective/html",
- "version": "v5.1.1",
+ "version": "v5.1.5",
"source": {
"type": "git",
"url": "https://github.com/LaravelCollective/html.git",
- "reference": "0918dac79ff8d294a92048f2d8b3c0c3078139b0"
+ "reference": "59f124084c9135a6a8d87323e5c5562ab823deb4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/LaravelCollective/html/zipball/0918dac79ff8d294a92048f2d8b3c0c3078139b0",
- "reference": "0918dac79ff8d294a92048f2d8b3c0c3078139b0",
+ "url": "https://api.github.com/repos/LaravelCollective/html/zipball/59f124084c9135a6a8d87323e5c5562ab823deb4",
+ "reference": "59f124084c9135a6a8d87323e5c5562ab823deb4",
"shasum": ""
},
"require": {
@@ -835,35 +834,31 @@
"email": "adam@laravelcollective.com"
}
],
- "time": "2015-06-18 02:16:50"
+ "time": "2015-07-28 03:18:41"
},
{
"name": "league/flysystem",
- "version": "1.0.4",
+ "version": "1.0.11",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "56862959b45131ad33e5a7727a25db19f2cf090b"
+ "reference": "c16222fdc02467eaa12cb6d6d0e65527741f6040"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/56862959b45131ad33e5a7727a25db19f2cf090b",
- "reference": "56862959b45131ad33e5a7727a25db19f2cf090b",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c16222fdc02467eaa12cb6d6d0e65527741f6040",
+ "reference": "c16222fdc02467eaa12cb6d6d0e65527741f6040",
"shasum": ""
},
"require": {
- "ext-mbstring": "*",
"php": ">=5.4.0"
},
"require-dev": {
"ext-fileinfo": "*",
- "league/phpunit-coverage-listener": "~1.1",
"mockery/mockery": "~0.9",
- "phpspec/phpspec": "~2.0",
+ "phpspec/phpspec": "^2.2",
"phpspec/prophecy-phpunit": "~1.0",
- "phpunit/phpunit": "~4.1",
- "predis/predis": "~1.0",
- "tedivm/stash": "~0.12.0"
+ "phpunit/phpunit": "~4.1"
},
"suggest": {
"ext-fileinfo": "Required for MimeType",
@@ -877,8 +872,7 @@
"league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
"league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
"league/flysystem-webdav": "Allows you to use WebDAV storage",
- "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
- "predis/predis": "Allows you to use Predis for caching"
+ "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter"
},
"type": "library",
"extra": {
@@ -901,10 +895,11 @@
"email": "info@frenky.net"
}
],
- "description": "Many filesystems, one API.",
+ "description": "Filesystem abstraction: Many filesystems, one API.",
"keywords": [
"Cloud Files",
"WebDAV",
+ "abstraction",
"aws",
"cloud",
"copy.com",
@@ -912,6 +907,7 @@
"file systems",
"files",
"filesystem",
+ "filesystems",
"ftp",
"rackspace",
"remote",
@@ -919,7 +915,7 @@
"sftp",
"storage"
],
- "time": "2015-06-07 21:27:37"
+ "time": "2015-07-28 20:41:58"
},
{
"name": "ml/iri",
@@ -1019,16 +1015,16 @@
},
{
"name": "monolog/monolog",
- "version": "1.14.0",
+ "version": "1.17.1",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "b287fbbe1ca27847064beff2bad7fb6920bf08cc"
+ "reference": "0524c87587ab85bc4c2d6f5b41253ccb930a5422"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b287fbbe1ca27847064beff2bad7fb6920bf08cc",
- "reference": "b287fbbe1ca27847064beff2bad7fb6920bf08cc",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/0524c87587ab85bc4c2d6f5b41253ccb930a5422",
+ "reference": "0524c87587ab85bc4c2d6f5b41253ccb930a5422",
"shasum": ""
},
"require": {
@@ -1045,7 +1041,7 @@
"php-console/php-console": "^3.1.3",
"phpunit/phpunit": "~4.5",
"phpunit/phpunit-mock-objects": "2.3.0",
- "raven/raven": "~0.8",
+ "raven/raven": "~0.11",
"ruflin/elastica": ">=0.90 <3.0",
"swiftmailer/swiftmailer": "~5.3",
"videlalvaro/php-amqplib": "~2.4"
@@ -1065,7 +1061,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.14.x-dev"
+ "dev-master": "1.16.x-dev"
}
},
"autoload": {
@@ -1091,7 +1087,7 @@
"logging",
"psr-3"
],
- "time": "2015-06-19 13:29:54"
+ "time": "2015-08-31 09:17:37"
},
{
"name": "mtdowling/cron-expression",
@@ -1139,21 +1135,21 @@
},
{
"name": "nesbot/carbon",
- "version": "1.19.0",
+ "version": "1.20.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "68868e0b02d2d803d0052a59d4e5003cccf87320"
+ "reference": "bfd3eaba109c9a2405c92174c8e17f20c2b9caf3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/68868e0b02d2d803d0052a59d4e5003cccf87320",
- "reference": "68868e0b02d2d803d0052a59d4e5003cccf87320",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bfd3eaba109c9a2405c92174c8e17f20c2b9caf3",
+ "reference": "bfd3eaba109c9a2405c92174c8e17f20c2b9caf3",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
- "symfony/translation": "~2.6"
+ "symfony/translation": "~2.6|~3.0"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
@@ -1182,20 +1178,20 @@
"datetime",
"time"
],
- "time": "2015-05-09 03:23:44"
+ "time": "2015-06-25 04:19:39"
},
{
"name": "nikic/php-parser",
- "version": "v1.3.0",
+ "version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "dff239267fd1befa1cd40430c9ed12591aa720ca"
+ "reference": "196f177cfefa0f1f7166c0a05d8255889be12418"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dff239267fd1befa1cd40430c9ed12591aa720ca",
- "reference": "dff239267fd1befa1cd40430c9ed12591aa720ca",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/196f177cfefa0f1f7166c0a05d8255889be12418",
+ "reference": "196f177cfefa0f1f7166c0a05d8255889be12418",
"shasum": ""
},
"require": {
@@ -1205,7 +1201,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3-dev"
+ "dev-master": "1.4-dev"
}
},
"autoload": {
@@ -1227,7 +1223,7 @@
"parser",
"php"
],
- "time": "2015-05-02 15:40:40"
+ "time": "2015-07-14 17:31:05"
},
{
"name": "psr/http-message",
@@ -1318,24 +1314,25 @@
},
{
"name": "psy/psysh",
- "version": "v0.4.4",
+ "version": "v0.5.2",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "489816db71649bd95b416e3ed9062d40528ab0ac"
+ "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/489816db71649bd95b416e3ed9062d40528ab0ac",
- "reference": "489816db71649bd95b416e3ed9062d40528ab0ac",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/aaf8772ade08b5f0f6830774a5d5c2f800415975",
+ "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975",
"shasum": ""
},
"require": {
"dnoegel/php-xdg-base-dir": "0.1",
"jakub-onderka/php-console-highlighter": "0.3.*",
- "nikic/php-parser": "~1.0",
- "php": ">=5.3.0",
- "symfony/console": "~2.3.10|~2.4.2|~2.5"
+ "nikic/php-parser": "^1.2.1",
+ "php": ">=5.3.9",
+ "symfony/console": "~2.3.10|^2.4.2|~3.0",
+ "symfony/var-dumper": "~2.7|~3.0"
},
"require-dev": {
"fabpot/php-cs-fixer": "~1.5",
@@ -1355,7 +1352,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-develop": "0.4.x-dev"
+ "dev-develop": "0.6.x-dev"
}
},
"autoload": {
@@ -1385,7 +1382,7 @@
"interactive",
"shell"
],
- "time": "2015-03-26 18:43:54"
+ "time": "2015-07-16 15:26:57"
},
{
"name": "swiftmailer/swiftmailer",
@@ -1442,16 +1439,16 @@
},
{
"name": "symfony/console",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Console.git",
- "reference": "564398bc1f33faf92fc2ec86859983d30eb81806"
+ "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Console/zipball/564398bc1f33faf92fc2ec86859983d30eb81806",
- "reference": "564398bc1f33faf92fc2ec86859983d30eb81806",
+ "url": "https://api.github.com/repos/symfony/Console/zipball/d6cf02fe73634c96677e428f840704bfbcaec29e",
+ "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e",
"shasum": ""
},
"require": {
@@ -1495,11 +1492,11 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2015-06-10 15:30:22"
+ "time": "2015-07-28 15:18:12"
},
{
"name": "symfony/css-selector",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/CssSelector.git",
@@ -1552,16 +1549,16 @@
},
{
"name": "symfony/debug",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Debug.git",
- "reference": "075070230c5bbc65abde8241191655bbce0716e2"
+ "reference": "9daa1bf9f7e615fa2fba30357e479a90141222e3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Debug/zipball/075070230c5bbc65abde8241191655bbce0716e2",
- "reference": "075070230c5bbc65abde8241191655bbce0716e2",
+ "url": "https://api.github.com/repos/symfony/Debug/zipball/9daa1bf9f7e615fa2fba30357e479a90141222e3",
+ "reference": "9daa1bf9f7e615fa2fba30357e479a90141222e3",
"shasum": ""
},
"require": {
@@ -1608,20 +1605,20 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
- "time": "2015-06-08 09:37:21"
+ "time": "2015-07-09 16:07:40"
},
{
"name": "symfony/dom-crawler",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/DomCrawler.git",
- "reference": "11d8eb8ccc1533f4c2d89a025f674894fda520b3"
+ "reference": "9dabece63182e95c42b06967a0d929a5df78bc35"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/11d8eb8ccc1533f4c2d89a025f674894fda520b3",
- "reference": "11d8eb8ccc1533f4c2d89a025f674894fda520b3",
+ "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/9dabece63182e95c42b06967a0d929a5df78bc35",
+ "reference": "9dabece63182e95c42b06967a0d929a5df78bc35",
"shasum": ""
},
"require": {
@@ -1661,20 +1658,20 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
- "time": "2015-05-22 14:54:25"
+ "time": "2015-07-09 16:07:40"
},
{
"name": "symfony/event-dispatcher",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/EventDispatcher.git",
- "reference": "be3c5ff8d503c46768aeb78ce6333051aa6f26d9"
+ "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/be3c5ff8d503c46768aeb78ce6333051aa6f26d9",
- "reference": "be3c5ff8d503c46768aeb78ce6333051aa6f26d9",
+ "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
+ "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
"shasum": ""
},
"require": {
@@ -1719,69 +1716,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
- "time": "2015-06-08 09:37:21"
+ "time": "2015-06-18 19:21:56"
},
{
- "name": "symfony/filesystem",
- "version": "v2.7.1",
+ "name": "symfony/finder",
+ "version": "v2.7.3",
"source": {
"type": "git",
- "url": "https://github.com/symfony/Filesystem.git",
- "reference": "a0d43eb3e17d4f4c6990289805a488a0482a07f3"
+ "url": "https://github.com/symfony/Finder.git",
+ "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Filesystem/zipball/a0d43eb3e17d4f4c6990289805a488a0482a07f3",
- "reference": "a0d43eb3e17d4f4c6990289805a488a0482a07f3",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "require-dev": {
- "symfony/phpunit-bridge": "~2.7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.7-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Filesystem\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Filesystem Component",
- "homepage": "https://symfony.com",
- "time": "2015-06-08 09:37:21"
- },
- {
- "name": "symfony/finder",
- "version": "v2.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/Finder.git",
- "reference": "c13a40d638aeede1e8400f8c956c7f9246c05f75"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/Finder/zipball/c13a40d638aeede1e8400f8c956c7f9246c05f75",
- "reference": "c13a40d638aeede1e8400f8c956c7f9246c05f75",
+ "url": "https://api.github.com/repos/symfony/Finder/zipball/ae0f363277485094edc04c9f3cbe595b183b78e4",
+ "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4",
"shasum": ""
},
"require": {
@@ -1817,20 +1765,20 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
- "time": "2015-06-04 20:11:48"
+ "time": "2015-07-09 16:07:40"
},
{
"name": "symfony/http-foundation",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpFoundation.git",
- "reference": "4f363c426b0ced57e3d14460022feb63937980ff"
+ "reference": "863af6898081b34c65d42100c370b9f3c51b70ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/4f363c426b0ced57e3d14460022feb63937980ff",
- "reference": "4f363c426b0ced57e3d14460022feb63937980ff",
+ "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/863af6898081b34c65d42100c370b9f3c51b70ca",
+ "reference": "863af6898081b34c65d42100c370b9f3c51b70ca",
"shasum": ""
},
"require": {
@@ -1870,27 +1818,27 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com",
- "time": "2015-06-10 15:30:22"
+ "time": "2015-07-22 10:11:00"
},
{
"name": "symfony/http-kernel",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpKernel.git",
- "reference": "208101c7a11e31933183bd2a380486e528c74302"
+ "reference": "405d3e7a59ff7a28ec469441326a0ac79065ea98"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/208101c7a11e31933183bd2a380486e528c74302",
- "reference": "208101c7a11e31933183bd2a380486e528c74302",
+ "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/405d3e7a59ff7a28ec469441326a0ac79065ea98",
+ "reference": "405d3e7a59ff7a28ec469441326a0ac79065ea98",
"shasum": ""
},
"require": {
"php": ">=5.3.9",
"psr/log": "~1.0",
"symfony/debug": "~2.6,>=2.6.2",
- "symfony/event-dispatcher": "~2.5.9|~2.6,>=2.6.2",
+ "symfony/event-dispatcher": "~2.6,>=2.6.7",
"symfony/http-foundation": "~2.5,>=2.5.4"
},
"conflict": {
@@ -1950,20 +1898,20 @@
],
"description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com",
- "time": "2015-06-11 21:15:28"
+ "time": "2015-07-31 13:24:45"
},
{
"name": "symfony/process",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Process.git",
- "reference": "552d8efdc80980cbcca50b28d626ac8e36e3cdd1"
+ "reference": "48aeb0e48600321c272955132d7606ab0a49adb3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Process/zipball/552d8efdc80980cbcca50b28d626ac8e36e3cdd1",
- "reference": "552d8efdc80980cbcca50b28d626ac8e36e3cdd1",
+ "url": "https://api.github.com/repos/symfony/Process/zipball/48aeb0e48600321c272955132d7606ab0a49adb3",
+ "reference": "48aeb0e48600321c272955132d7606ab0a49adb3",
"shasum": ""
},
"require": {
@@ -1999,20 +1947,20 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
- "time": "2015-06-08 09:37:21"
+ "time": "2015-07-01 11:25:50"
},
{
"name": "symfony/routing",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Routing.git",
- "reference": "5581be29185b8fb802398904555f70da62f6d50d"
+ "reference": "ea9134f277162b02e5f80ac058b75a77637b0d26"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Routing/zipball/5581be29185b8fb802398904555f70da62f6d50d",
- "reference": "5581be29185b8fb802398904555f70da62f6d50d",
+ "url": "https://api.github.com/repos/symfony/Routing/zipball/ea9134f277162b02e5f80ac058b75a77637b0d26",
+ "reference": "ea9134f277162b02e5f80ac058b75a77637b0d26",
"shasum": ""
},
"require": {
@@ -2070,20 +2018,20 @@
"uri",
"url"
],
- "time": "2015-06-11 17:20:40"
+ "time": "2015-07-09 16:07:40"
},
{
"name": "symfony/translation",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Translation.git",
- "reference": "8349a2b0d11bd0311df9e8914408080912983a0b"
+ "reference": "c8dc34cc936152c609cdd722af317e4239d10dd6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Translation/zipball/8349a2b0d11bd0311df9e8914408080912983a0b",
- "reference": "8349a2b0d11bd0311df9e8914408080912983a0b",
+ "url": "https://api.github.com/repos/symfony/Translation/zipball/c8dc34cc936152c609cdd722af317e4239d10dd6",
+ "reference": "c8dc34cc936152c609cdd722af317e4239d10dd6",
"shasum": ""
},
"require": {
@@ -2131,20 +2079,20 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
- "time": "2015-06-11 17:26:34"
+ "time": "2015-07-09 16:07:40"
},
{
"name": "symfony/var-dumper",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "c509921f260353bf07b257f84017777c8b0aa4bc"
+ "reference": "e8903ebba5eb019f5886ffce739ea9e3b7519579"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c509921f260353bf07b257f84017777c8b0aa4bc",
- "reference": "c509921f260353bf07b257f84017777c8b0aa4bc",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e8903ebba5eb019f5886ffce739ea9e3b7519579",
+ "reference": "e8903ebba5eb019f5886ffce739ea9e3b7519579",
"shasum": ""
},
"require": {
@@ -2190,7 +2138,7 @@
"debug",
"dump"
],
- "time": "2015-06-08 09:37:21"
+ "time": "2015-07-28 15:18:12"
},
{
"name": "vlucas/phpdotenv",
@@ -2296,16 +2244,16 @@
},
{
"name": "fabpot/php-cs-fixer",
- "version": "v1.9",
+ "version": "v1.10",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
- "reference": "ef528b9d3f1dd66197baabf8f77c8402c62bb9fc"
+ "reference": "8e21b4fb32c4618a425817d9f0daf3d57a9808d1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/ef528b9d3f1dd66197baabf8f77c8402c62bb9fc",
- "reference": "ef528b9d3f1dd66197baabf8f77c8402c62bb9fc",
+ "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/8e21b4fb32c4618a425817d9f0daf3d57a9808d1",
+ "reference": "8e21b4fb32c4618a425817d9f0daf3d57a9808d1",
"shasum": ""
},
"require": {
@@ -2346,7 +2294,7 @@
}
],
"description": "A tool to automatically fix PHP code style",
- "time": "2015-06-13 09:30:19"
+ "time": "2015-07-27 20:56:10"
},
{
"name": "hamcrest/hamcrest-php",
@@ -2399,12 +2347,12 @@
"source": {
"type": "git",
"url": "https://github.com/padraic/mockery.git",
- "reference": "a4817105ee32b8a05056986ad23ce3a54781f693"
+ "reference": "e585573c91b0c821e511afd14666b4503ef7255b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/padraic/mockery/zipball/a4817105ee32b8a05056986ad23ce3a54781f693",
- "reference": "a4817105ee32b8a05056986ad23ce3a54781f693",
+ "url": "https://api.github.com/repos/padraic/mockery/zipball/e585573c91b0c821e511afd14666b4503ef7255b",
+ "reference": "e585573c91b0c821e511afd14666b4503ef7255b",
"shasum": ""
},
"require": {
@@ -2432,7 +2380,7 @@
],
"authors": [
{
- "name": "Padraic Brady",
+ "name": "Pádraic Brady",
"email": "padraic.brady@gmail.com",
"homepage": "http://blog.astrumfutura.com"
},
@@ -2456,7 +2404,7 @@
"test double",
"testing"
],
- "time": "2015-05-12 15:28:09"
+ "time": "2015-07-31 13:51:58"
},
{
"name": "phpdocumentor/reflection-docblock",
@@ -2621,16 +2569,16 @@
},
{
"name": "phpspec/prophecy",
- "version": "v1.4.1",
+ "version": "v1.5.0",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
- "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373"
+ "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
- "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4745ded9307786b730d7a60df5cb5a6c43cf95f7",
+ "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7",
"shasum": ""
},
"require": {
@@ -2677,20 +2625,20 @@
"spy",
"stub"
],
- "time": "2015-04-27 22:15:08"
+ "time": "2015-08-13 10:07:40"
},
{
"name": "phpunit/php-code-coverage",
- "version": "2.1.6",
+ "version": "2.2.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "631e365cf26bb2c078683e8d9bcf8bc631ac4d44"
+ "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/631e365cf26bb2c078683e8d9bcf8bc631ac4d44",
- "reference": "631e365cf26bb2c078683e8d9bcf8bc631ac4d44",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2d7c03c0e4e080901b8f33b2897b0577be18a13c",
+ "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c",
"shasum": ""
},
"require": {
@@ -2698,7 +2646,7 @@
"phpunit/php-file-iterator": "~1.3",
"phpunit/php-text-template": "~1.2",
"phpunit/php-token-stream": "~1.3",
- "sebastian/environment": "~1.0",
+ "sebastian/environment": "^1.3.2",
"sebastian/version": "~1.0"
},
"require-dev": {
@@ -2713,7 +2661,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1.x-dev"
+ "dev-master": "2.2.x-dev"
}
},
"autoload": {
@@ -2739,20 +2687,20 @@
"testing",
"xunit"
],
- "time": "2015-06-19 07:11:55"
+ "time": "2015-08-04 03:42:39"
},
{
"name": "phpunit/php-file-iterator",
- "version": "1.4.0",
+ "version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb"
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb",
- "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
"shasum": ""
},
"require": {
@@ -2786,7 +2734,7 @@
"filesystem",
"iterator"
],
- "time": "2015-04-02 05:19:05"
+ "time": "2015-06-21 13:08:43"
},
{
"name": "phpunit/php-text-template",
@@ -2831,16 +2779,16 @@
},
{
"name": "phpunit/php-timer",
- "version": "1.0.6",
+ "version": "1.0.7",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d"
+ "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/83fe1bdc5d47658b727595c14da140da92b3d66d",
- "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
+ "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
"shasum": ""
},
"require": {
@@ -2868,20 +2816,20 @@
"keywords": [
"timer"
],
- "time": "2015-06-13 07:35:30"
+ "time": "2015-06-21 08:01:12"
},
{
"name": "phpunit/php-token-stream",
- "version": "1.4.3",
+ "version": "1.4.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9"
+ "reference": "3ab72c62e550370a6cd5dc873e1a04ab57562f5b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
- "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3ab72c62e550370a6cd5dc873e1a04ab57562f5b",
+ "reference": "3ab72c62e550370a6cd5dc873e1a04ab57562f5b",
"shasum": ""
},
"require": {
@@ -2917,20 +2865,20 @@
"keywords": [
"tokenizer"
],
- "time": "2015-06-19 03:43:16"
+ "time": "2015-08-16 08:51:00"
},
{
"name": "phpunit/phpunit",
- "version": "4.7.5",
+ "version": "4.8.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "f6701ef3faea759acd1910a7751d8d102a7fd5bc"
+ "reference": "2246830f4a1a551c67933e4171bf2126dc29d357"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f6701ef3faea759acd1910a7751d8d102a7fd5bc",
- "reference": "f6701ef3faea759acd1910a7751d8d102a7fd5bc",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2246830f4a1a551c67933e4171bf2126dc29d357",
+ "reference": "2246830f4a1a551c67933e4171bf2126dc29d357",
"shasum": ""
},
"require": {
@@ -2940,7 +2888,7 @@
"ext-reflection": "*",
"ext-spl": "*",
"php": ">=5.3.3",
- "phpspec/prophecy": "~1.3,>=1.3.1",
+ "phpspec/prophecy": "^1.3.1",
"phpunit/php-code-coverage": "~2.1",
"phpunit/php-file-iterator": "~1.4",
"phpunit/php-text-template": "~1.2",
@@ -2948,7 +2896,7 @@
"phpunit/phpunit-mock-objects": "~2.3",
"sebastian/comparator": "~1.1",
"sebastian/diff": "~1.2",
- "sebastian/environment": "~1.2",
+ "sebastian/environment": "~1.3",
"sebastian/exporter": "~1.2",
"sebastian/global-state": "~1.0",
"sebastian/version": "~1.0",
@@ -2963,7 +2911,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.7.x-dev"
+ "dev-master": "4.8.x-dev"
}
},
"autoload": {
@@ -2989,26 +2937,27 @@
"testing",
"xunit"
],
- "time": "2015-06-21 07:23:36"
+ "time": "2015-08-24 04:09:38"
},
{
"name": "phpunit/phpunit-mock-objects",
- "version": "2.3.4",
+ "version": "2.3.7",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
- "reference": "92408bb1968a81b3217a6fdf6c1a198da83caa35"
+ "reference": "5e2645ad49d196e020b85598d7c97e482725786a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/92408bb1968a81b3217a6fdf6c1a198da83caa35",
- "reference": "92408bb1968a81b3217a6fdf6c1a198da83caa35",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/5e2645ad49d196e020b85598d7c97e482725786a",
+ "reference": "5e2645ad49d196e020b85598d7c97e482725786a",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "~1.0,>=1.0.2",
+ "doctrine/instantiator": "^1.0.2",
"php": ">=5.3.3",
- "phpunit/php-text-template": "~1.2"
+ "phpunit/php-text-template": "~1.2",
+ "sebastian/exporter": "~1.2"
},
"require-dev": {
"phpunit/phpunit": "~4.4"
@@ -3044,20 +2993,20 @@
"mock",
"xunit"
],
- "time": "2015-06-11 15:55:48"
+ "time": "2015-08-19 09:14:08"
},
{
"name": "sebastian/comparator",
- "version": "1.1.1",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "1dd8869519a225f7f2b9eb663e225298fade819e"
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e",
- "reference": "1dd8869519a225f7f2b9eb663e225298fade819e",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
"shasum": ""
},
"require": {
@@ -3071,7 +3020,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "1.2.x-dev"
}
},
"autoload": {
@@ -3108,7 +3057,7 @@
"compare",
"equality"
],
- "time": "2015-01-29 16:28:08"
+ "time": "2015-07-26 15:48:44"
},
{
"name": "sebastian/diff",
@@ -3164,16 +3113,16 @@
},
{
"name": "sebastian/environment",
- "version": "1.2.2",
+ "version": "1.3.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e"
+ "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e",
- "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6324c907ce7a52478eeeaede764f48733ef5ae44",
+ "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44",
"shasum": ""
},
"require": {
@@ -3210,20 +3159,20 @@
"environment",
"hhvm"
],
- "time": "2015-01-01 10:01:08"
+ "time": "2015-08-03 06:14:51"
},
{
"name": "sebastian/exporter",
- "version": "1.2.0",
+ "version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "84839970d05254c73cde183a721c7af13aede943"
+ "reference": "7ae5513327cb536431847bcc0c10edba2701064e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943",
- "reference": "84839970d05254c73cde183a721c7af13aede943",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e",
+ "reference": "7ae5513327cb536431847bcc0c10edba2701064e",
"shasum": ""
},
"require": {
@@ -3276,7 +3225,7 @@
"export",
"exporter"
],
- "time": "2015-01-27 07:23:06"
+ "time": "2015-06-21 07:55:53"
},
{
"name": "sebastian/global-state",
@@ -3331,16 +3280,16 @@
},
{
"name": "sebastian/recursion-context",
- "version": "1.0.0",
+ "version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "3989662bbb30a29d20d9faa04a846af79b276252"
+ "reference": "994d4a811bafe801fb06dccbee797863ba2792ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252",
- "reference": "3989662bbb30a29d20d9faa04a846af79b276252",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/994d4a811bafe801fb06dccbee797863ba2792ba",
+ "reference": "994d4a811bafe801fb06dccbee797863ba2792ba",
"shasum": ""
},
"require": {
@@ -3380,7 +3329,7 @@
],
"description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2015-01-24 09:48:32"
+ "time": "2015-06-21 08:04:50"
},
{
"name": "sebastian/version",
@@ -3418,17 +3367,66 @@
"time": "2015-06-21 13:59:46"
},
{
+ "name": "symfony/filesystem",
+ "version": "v2.7.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Filesystem.git",
+ "reference": "2d7b2ddaf3f548f4292df49a99d19c853d43f0b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Filesystem/zipball/2d7b2ddaf3f548f4292df49a99d19c853d43f0b8",
+ "reference": "2d7b2ddaf3f548f4292df49a99d19c853d43f0b8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Filesystem Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-07-09 16:07:40"
+ },
+ {
"name": "symfony/stopwatch",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Stopwatch.git",
- "reference": "c653f1985f6c2b7dbffd04d48b9c0a96aaef814b"
+ "reference": "b07a866719bbac5294c67773340f97b871733310"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/c653f1985f6c2b7dbffd04d48b9c0a96aaef814b",
- "reference": "c653f1985f6c2b7dbffd04d48b9c0a96aaef814b",
+ "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/b07a866719bbac5294c67773340f97b871733310",
+ "reference": "b07a866719bbac5294c67773340f97b871733310",
"shasum": ""
},
"require": {
@@ -3464,20 +3462,20 @@
],
"description": "Symfony Stopwatch Component",
"homepage": "https://symfony.com",
- "time": "2015-06-04 20:11:48"
+ "time": "2015-07-01 18:23:16"
},
{
"name": "symfony/yaml",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Yaml.git",
- "reference": "9808e75c609a14f6db02f70fccf4ca4aab53c160"
+ "reference": "71340e996171474a53f3d29111d046be4ad8a0ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Yaml/zipball/9808e75c609a14f6db02f70fccf4ca4aab53c160",
- "reference": "9808e75c609a14f6db02f70fccf4ca4aab53c160",
+ "url": "https://api.github.com/repos/symfony/Yaml/zipball/71340e996171474a53f3d29111d046be4ad8a0ff",
+ "reference": "71340e996171474a53f3d29111d046be4ad8a0ff",
"shasum": ""
},
"require": {
@@ -3513,12 +3511,13 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2015-06-10 15:30:22"
+ "time": "2015-07-28 14:07:07"
}
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
+ "easyrdf/easyrdf": 20,
"mockery/mockery": 20
},
"prefer-stable": false,
--- a/server/src/config/corpusparole.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/config/corpusparole.php Mon Oct 05 17:02:10 2015 +0200
@@ -1,13 +1,18 @@
<?php
+$sesameBaseUrl = rtrim(env('CORPUSPAROLE_SESAME_BASE_URL'),'/').'/';
+
return [
-
- 'sesame_query_url' => env('CORPUSPAROLE_SESAME_QUERY_URL'),
- 'sesame_update_url' => env('CORPUSPAROLE_SESAME_UPDATE_URL'),
+ 'sesame_base_url' => $sesameBaseUrl,
+ 'sesame_repository' => env('CORPUSPAROLE_SESAME_REPOSITORY'),
+ 'max_load_retry' => env('CORPUSPAROLE_MAX_LOAD_RETRY', 5),
+ 'sesame_query_url' => $sesameBaseUrl.'repositories/'.env('CORPUSPAROLE_SESAME_REPOSITORY'),
+ 'sesame_update_url' => $sesameBaseUrl.'repositories/'.env('CORPUSPAROLE_SESAME_REPOSITORY').'/statements',
'cocoon_rdf_base_uri' => env('CORPUSPAROLE_COCOON_RDF_BASE_URI'),
'cocoon_oaipmh_url' => env('CORPUSPAROLE_COCOON_OAIPMH_URL'),
'cocoon_doc_id_base_uri' => env('CORPUSPAROLE_COCOON_DOC_ID_BASE_URI'),
'cocoon_doc_id_base' => 'oai:crdo.vjf.cnrs.fr:',
+ 'easyrdf_http_client_timeout' => env('EASYRDF_HTTP_CLIENT_TIMEOUT', 10),
];
--- a/server/src/config/database.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/config/database.php Mon Oct 05 17:02:10 2015 +0200
@@ -26,7 +26,7 @@
|
*/
- 'default' => 'pgsql',
+ 'default' => env('DATABASE_DRIVER', 'pgsql'),
/*
|--------------------------------------------------------------------------
@@ -75,6 +75,17 @@
'schema' => 'public',
],
+ 'pgsql_test' => [
+ 'driver' => 'pgsql',
+ 'host' => env('DB_HOST', 'localhost'),
+ 'database' => env('DB_DATABASE', 'forge').'_test',
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => 'utf8',
+ 'prefix' => '',
+ 'schema' => 'public',
+ ],
+
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
--- a/server/src/gulpfile.js Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/gulpfile.js Mon Oct 05 17:02:10 2015 +0200
@@ -11,6 +11,16 @@
|
*/
+ var paths = {
+ 'bower_base_path': './vendor/bower_components/',
+ 'bootstrap': './vendor/bower_components/bootstrap-sass/assets/'
+ };
+
+
elixir(function(mix) {
- mix.less('app.less');
+ mix.sass('app.scss', 'public/css/app.css', {includePaths: [paths['bootstrap']+'stylesheets/']})
+ .copy(paths.bootstrap + 'fonts/bootstrap', 'public/fonts')
+ .copy(paths.bootstrap + 'javascripts/bootstrap.js', 'public/js/vendor/bootstrap.js')
+ .copy(paths.bower_base_path + 'jquery/dist/jquery.min.js', 'public/js/vendor/jquery.js')
+ .copy(paths.bower_base_path + 'font-awesome/css/font-awesome.min.css', 'public/css/vendor/font-awesome.css');
});
--- a/server/src/package.json Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/package.json Mon Oct 05 17:02:10 2015 +0200
@@ -1,6 +1,7 @@
{
"private": true,
"devDependencies": {
+ "bower": "^1.5.3",
"gulp": "^3.8.8",
"laravel-elixir": "*"
}
--- a/server/src/phpunit.xml Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/phpunit.xml Mon Oct 05 17:02:10 2015 +0200
@@ -13,7 +13,7 @@
<testsuite name="Application Test Suite">
<directory>./tests/</directory>
</testsuite>
- <testsuite name="Application Test Suite Repositories">
+ <!--testsuite name="Application Test Suite Repositories">
<directory>./tests/Repositories</directory>
</testsuite>
<testsuite name="Application Test Suite Models">
@@ -22,11 +22,16 @@
<testsuite name="Application Test Suite Controllers">
<directory>./tests/Controllers</directory>
</testsuite>
+ <testsuite name="Application Test Suite Libraries">
+ <directory>./tests/Libraries/Sparql</directory>
+ </testsuite-->
</testsuites>
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
+ <env name="DATABASE_DRIVER" value="pgsql_test"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
+ <env name="CORPUSPAROLE_SESAME_REPOSITORY" value="cocoon_test"/>
</php>
</phpunit>
--- a/server/src/public/css/app.css Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/public/css/app.css Mon Oct 05 17:02:10 2015 +0200
@@ -1,12 +1,17 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
font-family: sans-serif;
-ms-text-size-adjust: 100%;
- -webkit-text-size-adjust: 100%;
-}
+ -webkit-text-size-adjust: 100%; }
+
body {
- margin: 0;
-}
+ margin: 0; }
+
article,
aside,
details,
@@ -20,87 +25,87 @@
nav,
section,
summary {
- display: block;
-}
+ display: block; }
+
audio,
canvas,
progress,
video {
display: inline-block;
- vertical-align: baseline;
-}
+ vertical-align: baseline; }
+
audio:not([controls]) {
display: none;
- height: 0;
-}
+ height: 0; }
+
[hidden],
template {
- display: none;
-}
+ display: none; }
+
a {
- background-color: transparent;
-}
+ background-color: transparent; }
+
a:active,
a:hover {
- outline: 0;
-}
+ outline: 0; }
+
abbr[title] {
- border-bottom: 1px dotted;
-}
+ border-bottom: 1px dotted; }
+
b,
strong {
- font-weight: bold;
-}
+ font-weight: bold; }
+
dfn {
- font-style: italic;
-}
+ font-style: italic; }
+
h1 {
font-size: 2em;
- margin: 0.67em 0;
-}
+ margin: 0.67em 0; }
+
mark {
background: #ff0;
- color: #000;
-}
+ color: #000; }
+
small {
- font-size: 80%;
-}
+ font-size: 80%; }
+
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
- vertical-align: baseline;
-}
+ vertical-align: baseline; }
+
sup {
- top: -0.5em;
-}
+ top: -0.5em; }
+
sub {
- bottom: -0.25em;
-}
+ bottom: -0.25em; }
+
img {
- border: 0;
-}
+ border: 0; }
+
svg:not(:root) {
- overflow: hidden;
-}
+ overflow: hidden; }
+
figure {
- margin: 1em 40px;
-}
+ margin: 1em 40px; }
+
hr {
box-sizing: content-box;
- height: 0;
-}
+ height: 0; }
+
pre {
- overflow: auto;
-}
+ overflow: auto; }
+
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
- font-size: 1em;
-}
+ font-size: 1em; }
+
button,
input,
optgroup,
@@ -108,74 +113,73 @@
textarea {
color: inherit;
font: inherit;
- margin: 0;
-}
+ margin: 0; }
+
button {
- overflow: visible;
-}
+ overflow: visible; }
+
button,
select {
- text-transform: none;
-}
+ text-transform: none; }
+
button,
-html input[type="button"],
-input[type="reset"],
+html input[type="button"], input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
- cursor: pointer;
-}
+ cursor: pointer; }
+
button[disabled],
html input[disabled] {
- cursor: default;
-}
+ cursor: default; }
+
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
- padding: 0;
-}
+ padding: 0; }
+
input {
- line-height: normal;
-}
+ line-height: normal; }
+
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
- padding: 0;
-}
+ padding: 0; }
+
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
+ height: auto; }
+
input[type="search"] {
-webkit-appearance: textfield;
- box-sizing: content-box;
-}
+ box-sizing: content-box; }
+
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
+ -webkit-appearance: none; }
+
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
-}
+ padding: 0.35em 0.625em 0.75em; }
+
legend {
border: 0;
- padding: 0;
-}
+ padding: 0; }
+
textarea {
- overflow: auto;
-}
+ overflow: auto; }
+
optgroup {
- font-weight: bold;
-}
+ font-weight: bold; }
+
table {
border-collapse: collapse;
- border-spacing: 0;
-}
+ border-spacing: 0; }
+
td,
th {
- padding: 0;
-}
+ padding: 0; }
+
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
*,
@@ -184,77 +188,57 @@
background: transparent !important;
color: #000 !important;
box-shadow: none !important;
- text-shadow: none !important;
- }
+ text-shadow: none !important; }
a,
a:visited {
- text-decoration: underline;
- }
+ text-decoration: underline; }
a[href]:after {
- content: " (" attr(href) ")";
- }
+ content: " (" attr(href) ")"; }
abbr[title]:after {
- content: " (" attr(title) ")";
- }
+ content: " (" attr(title) ")"; }
a[href^="#"]:after,
a[href^="javascript:"]:after {
- content: "";
- }
+ content: ""; }
pre,
blockquote {
border: 1px solid #999;
- page-break-inside: avoid;
- }
+ page-break-inside: avoid; }
thead {
- display: table-header-group;
- }
+ display: table-header-group; }
tr,
img {
- page-break-inside: avoid;
- }
+ page-break-inside: avoid; }
img {
- max-width: 100% !important;
- }
+ max-width: 100% !important; }
p,
h2,
h3 {
orphans: 3;
- widows: 3;
- }
+ widows: 3; }
h2,
h3 {
- page-break-after: avoid;
- }
- select {
- background: #fff !important;
- }
+ page-break-after: avoid; }
.navbar {
- display: none;
- }
+ display: none; }
.btn > .caret,
.dropup > .btn > .caret {
- border-top-color: #000 !important;
- }
+ border-top-color: #000 !important; }
.label {
- border: 1px solid #000;
- }
+ border: 1px solid #000; }
.table {
- border-collapse: collapse !important;
- }
- .table td,
- .table th {
- background-color: #fff !important;
- }
+ border-collapse: collapse !important; }
+ .table td,
+ .table th {
+ background-color: #fff !important; }
.table-bordered th,
.table-bordered td {
- border: 1px solid #ddd !important;
- }
-}
+ border: 1px solid #ddd !important; } }
+
@font-face {
font-family: 'Glyphicons Halflings';
- src: url('../fonts/glyphicons-halflings-regular.eot');
- src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
-}
+ src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot");
+ src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); }
+
.glyphicon {
position: relative;
top: 1px;
@@ -264,687 +248,867 @@
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
+ -moz-osx-font-smoothing: grayscale; }
+
.glyphicon-asterisk:before {
- content: "\2a";
-}
+ content: "\2a"; }
+
.glyphicon-plus:before {
- content: "\2b";
-}
+ content: "\2b"; }
+
.glyphicon-euro:before,
.glyphicon-eur:before {
- content: "\20ac";
-}
+ content: "\20ac"; }
+
.glyphicon-minus:before {
- content: "\2212";
-}
+ content: "\2212"; }
+
.glyphicon-cloud:before {
- content: "\2601";
-}
+ content: "\2601"; }
+
.glyphicon-envelope:before {
- content: "\2709";
-}
+ content: "\2709"; }
+
.glyphicon-pencil:before {
- content: "\270f";
-}
+ content: "\270f"; }
+
.glyphicon-glass:before {
- content: "\e001";
-}
+ content: "\e001"; }
+
.glyphicon-music:before {
- content: "\e002";
-}
+ content: "\e002"; }
+
.glyphicon-search:before {
- content: "\e003";
-}
+ content: "\e003"; }
+
.glyphicon-heart:before {
- content: "\e005";
-}
+ content: "\e005"; }
+
.glyphicon-star:before {
- content: "\e006";
-}
+ content: "\e006"; }
+
.glyphicon-star-empty:before {
- content: "\e007";
-}
+ content: "\e007"; }
+
.glyphicon-user:before {
- content: "\e008";
-}
+ content: "\e008"; }
+
.glyphicon-film:before {
- content: "\e009";
-}
+ content: "\e009"; }
+
.glyphicon-th-large:before {
- content: "\e010";
-}
+ content: "\e010"; }
+
.glyphicon-th:before {
- content: "\e011";
-}
+ content: "\e011"; }
+
.glyphicon-th-list:before {
- content: "\e012";
-}
+ content: "\e012"; }
+
.glyphicon-ok:before {
- content: "\e013";
-}
+ content: "\e013"; }
+
.glyphicon-remove:before {
- content: "\e014";
-}
+ content: "\e014"; }
+
.glyphicon-zoom-in:before {
- content: "\e015";
-}
+ content: "\e015"; }
+
.glyphicon-zoom-out:before {
- content: "\e016";
-}
+ content: "\e016"; }
+
.glyphicon-off:before {
- content: "\e017";
-}
+ content: "\e017"; }
+
.glyphicon-signal:before {
- content: "\e018";
-}
+ content: "\e018"; }
+
.glyphicon-cog:before {
- content: "\e019";
-}
+ content: "\e019"; }
+
.glyphicon-trash:before {
- content: "\e020";
-}
+ content: "\e020"; }
+
.glyphicon-home:before {
- content: "\e021";
-}
+ content: "\e021"; }
+
.glyphicon-file:before {
- content: "\e022";
-}
+ content: "\e022"; }
+
.glyphicon-time:before {
- content: "\e023";
-}
+ content: "\e023"; }
+
.glyphicon-road:before {
- content: "\e024";
-}
+ content: "\e024"; }
+
.glyphicon-download-alt:before {
- content: "\e025";
-}
+ content: "\e025"; }
+
.glyphicon-download:before {
- content: "\e026";
-}
+ content: "\e026"; }
+
.glyphicon-upload:before {
- content: "\e027";
-}
+ content: "\e027"; }
+
.glyphicon-inbox:before {
- content: "\e028";
-}
+ content: "\e028"; }
+
.glyphicon-play-circle:before {
- content: "\e029";
-}
+ content: "\e029"; }
+
.glyphicon-repeat:before {
- content: "\e030";
-}
+ content: "\e030"; }
+
.glyphicon-refresh:before {
- content: "\e031";
-}
+ content: "\e031"; }
+
.glyphicon-list-alt:before {
- content: "\e032";
-}
+ content: "\e032"; }
+
.glyphicon-lock:before {
- content: "\e033";
-}
+ content: "\e033"; }
+
.glyphicon-flag:before {
- content: "\e034";
-}
+ content: "\e034"; }
+
.glyphicon-headphones:before {
- content: "\e035";
-}
+ content: "\e035"; }
+
.glyphicon-volume-off:before {
- content: "\e036";
-}
+ content: "\e036"; }
+
.glyphicon-volume-down:before {
- content: "\e037";
-}
+ content: "\e037"; }
+
.glyphicon-volume-up:before {
- content: "\e038";
-}
+ content: "\e038"; }
+
.glyphicon-qrcode:before {
- content: "\e039";
-}
+ content: "\e039"; }
+
.glyphicon-barcode:before {
- content: "\e040";
-}
+ content: "\e040"; }
+
.glyphicon-tag:before {
- content: "\e041";
-}
+ content: "\e041"; }
+
.glyphicon-tags:before {
- content: "\e042";
-}
+ content: "\e042"; }
+
.glyphicon-book:before {
- content: "\e043";
-}
+ content: "\e043"; }
+
.glyphicon-bookmark:before {
- content: "\e044";
-}
+ content: "\e044"; }
+
.glyphicon-print:before {
- content: "\e045";
-}
+ content: "\e045"; }
+
.glyphicon-camera:before {
- content: "\e046";
-}
+ content: "\e046"; }
+
.glyphicon-font:before {
- content: "\e047";
-}
+ content: "\e047"; }
+
.glyphicon-bold:before {
- content: "\e048";
-}
+ content: "\e048"; }
+
.glyphicon-italic:before {
- content: "\e049";
-}
+ content: "\e049"; }
+
.glyphicon-text-height:before {
- content: "\e050";
-}
+ content: "\e050"; }
+
.glyphicon-text-width:before {
- content: "\e051";
-}
+ content: "\e051"; }
+
.glyphicon-align-left:before {
- content: "\e052";
-}
+ content: "\e052"; }
+
.glyphicon-align-center:before {
- content: "\e053";
-}
+ content: "\e053"; }
+
.glyphicon-align-right:before {
- content: "\e054";
-}
+ content: "\e054"; }
+
.glyphicon-align-justify:before {
- content: "\e055";
-}
+ content: "\e055"; }
+
.glyphicon-list:before {
- content: "\e056";
-}
+ content: "\e056"; }
+
.glyphicon-indent-left:before {
- content: "\e057";
-}
+ content: "\e057"; }
+
.glyphicon-indent-right:before {
- content: "\e058";
-}
+ content: "\e058"; }
+
.glyphicon-facetime-video:before {
- content: "\e059";
-}
+ content: "\e059"; }
+
.glyphicon-picture:before {
- content: "\e060";
-}
+ content: "\e060"; }
+
.glyphicon-map-marker:before {
- content: "\e062";
-}
+ content: "\e062"; }
+
.glyphicon-adjust:before {
- content: "\e063";
-}
+ content: "\e063"; }
+
.glyphicon-tint:before {
- content: "\e064";
-}
+ content: "\e064"; }
+
.glyphicon-edit:before {
- content: "\e065";
-}
+ content: "\e065"; }
+
.glyphicon-share:before {
- content: "\e066";
-}
+ content: "\e066"; }
+
.glyphicon-check:before {
- content: "\e067";
-}
+ content: "\e067"; }
+
.glyphicon-move:before {
- content: "\e068";
-}
+ content: "\e068"; }
+
.glyphicon-step-backward:before {
- content: "\e069";
-}
+ content: "\e069"; }
+
.glyphicon-fast-backward:before {
- content: "\e070";
-}
+ content: "\e070"; }
+
.glyphicon-backward:before {
- content: "\e071";
-}
+ content: "\e071"; }
+
.glyphicon-play:before {
- content: "\e072";
-}
+ content: "\e072"; }
+
.glyphicon-pause:before {
- content: "\e073";
-}
+ content: "\e073"; }
+
.glyphicon-stop:before {
- content: "\e074";
-}
+ content: "\e074"; }
+
.glyphicon-forward:before {
- content: "\e075";
-}
+ content: "\e075"; }
+
.glyphicon-fast-forward:before {
- content: "\e076";
-}
+ content: "\e076"; }
+
.glyphicon-step-forward:before {
- content: "\e077";
-}
+ content: "\e077"; }
+
.glyphicon-eject:before {
- content: "\e078";
-}
+ content: "\e078"; }
+
.glyphicon-chevron-left:before {
- content: "\e079";
-}
+ content: "\e079"; }
+
.glyphicon-chevron-right:before {
- content: "\e080";
-}
+ content: "\e080"; }
+
.glyphicon-plus-sign:before {
- content: "\e081";
-}
+ content: "\e081"; }
+
.glyphicon-minus-sign:before {
- content: "\e082";
-}
+ content: "\e082"; }
+
.glyphicon-remove-sign:before {
- content: "\e083";
-}
+ content: "\e083"; }
+
.glyphicon-ok-sign:before {
- content: "\e084";
-}
+ content: "\e084"; }
+
.glyphicon-question-sign:before {
- content: "\e085";
-}
+ content: "\e085"; }
+
.glyphicon-info-sign:before {
- content: "\e086";
-}
+ content: "\e086"; }
+
.glyphicon-screenshot:before {
- content: "\e087";
-}
+ content: "\e087"; }
+
.glyphicon-remove-circle:before {
- content: "\e088";
-}
+ content: "\e088"; }
+
.glyphicon-ok-circle:before {
- content: "\e089";
-}
+ content: "\e089"; }
+
.glyphicon-ban-circle:before {
- content: "\e090";
-}
+ content: "\e090"; }
+
.glyphicon-arrow-left:before {
- content: "\e091";
-}
+ content: "\e091"; }
+
.glyphicon-arrow-right:before {
- content: "\e092";
-}
+ content: "\e092"; }
+
.glyphicon-arrow-up:before {
- content: "\e093";
-}
+ content: "\e093"; }
+
.glyphicon-arrow-down:before {
- content: "\e094";
-}
+ content: "\e094"; }
+
.glyphicon-share-alt:before {
- content: "\e095";
-}
+ content: "\e095"; }
+
.glyphicon-resize-full:before {
- content: "\e096";
-}
+ content: "\e096"; }
+
.glyphicon-resize-small:before {
- content: "\e097";
-}
+ content: "\e097"; }
+
.glyphicon-exclamation-sign:before {
- content: "\e101";
-}
+ content: "\e101"; }
+
.glyphicon-gift:before {
- content: "\e102";
-}
+ content: "\e102"; }
+
.glyphicon-leaf:before {
- content: "\e103";
-}
+ content: "\e103"; }
+
.glyphicon-fire:before {
- content: "\e104";
-}
+ content: "\e104"; }
+
.glyphicon-eye-open:before {
- content: "\e105";
-}
+ content: "\e105"; }
+
.glyphicon-eye-close:before {
- content: "\e106";
-}
+ content: "\e106"; }
+
.glyphicon-warning-sign:before {
- content: "\e107";
-}
+ content: "\e107"; }
+
.glyphicon-plane:before {
- content: "\e108";
-}
+ content: "\e108"; }
+
.glyphicon-calendar:before {
- content: "\e109";
-}
+ content: "\e109"; }
+
.glyphicon-random:before {
- content: "\e110";
-}
+ content: "\e110"; }
+
.glyphicon-comment:before {
- content: "\e111";
-}
+ content: "\e111"; }
+
.glyphicon-magnet:before {
- content: "\e112";
-}
+ content: "\e112"; }
+
.glyphicon-chevron-up:before {
- content: "\e113";
-}
+ content: "\e113"; }
+
.glyphicon-chevron-down:before {
- content: "\e114";
-}
+ content: "\e114"; }
+
.glyphicon-retweet:before {
- content: "\e115";
-}
+ content: "\e115"; }
+
.glyphicon-shopping-cart:before {
- content: "\e116";
-}
+ content: "\e116"; }
+
.glyphicon-folder-close:before {
- content: "\e117";
-}
+ content: "\e117"; }
+
.glyphicon-folder-open:before {
- content: "\e118";
-}
+ content: "\e118"; }
+
.glyphicon-resize-vertical:before {
- content: "\e119";
-}
+ content: "\e119"; }
+
.glyphicon-resize-horizontal:before {
- content: "\e120";
-}
+ content: "\e120"; }
+
.glyphicon-hdd:before {
- content: "\e121";
-}
+ content: "\e121"; }
+
.glyphicon-bullhorn:before {
- content: "\e122";
-}
+ content: "\e122"; }
+
.glyphicon-bell:before {
- content: "\e123";
-}
+ content: "\e123"; }
+
.glyphicon-certificate:before {
- content: "\e124";
-}
+ content: "\e124"; }
+
.glyphicon-thumbs-up:before {
- content: "\e125";
-}
+ content: "\e125"; }
+
.glyphicon-thumbs-down:before {
- content: "\e126";
-}
+ content: "\e126"; }
+
.glyphicon-hand-right:before {
- content: "\e127";
-}
+ content: "\e127"; }
+
.glyphicon-hand-left:before {
- content: "\e128";
-}
+ content: "\e128"; }
+
.glyphicon-hand-up:before {
- content: "\e129";
-}
+ content: "\e129"; }
+
.glyphicon-hand-down:before {
- content: "\e130";
-}
+ content: "\e130"; }
+
.glyphicon-circle-arrow-right:before {
- content: "\e131";
-}
+ content: "\e131"; }
+
.glyphicon-circle-arrow-left:before {
- content: "\e132";
-}
+ content: "\e132"; }
+
.glyphicon-circle-arrow-up:before {
- content: "\e133";
-}
+ content: "\e133"; }
+
.glyphicon-circle-arrow-down:before {
- content: "\e134";
-}
+ content: "\e134"; }
+
.glyphicon-globe:before {
- content: "\e135";
-}
+ content: "\e135"; }
+
.glyphicon-wrench:before {
- content: "\e136";
-}
+ content: "\e136"; }
+
.glyphicon-tasks:before {
- content: "\e137";
-}
+ content: "\e137"; }
+
.glyphicon-filter:before {
- content: "\e138";
-}
+ content: "\e138"; }
+
.glyphicon-briefcase:before {
- content: "\e139";
-}
+ content: "\e139"; }
+
.glyphicon-fullscreen:before {
- content: "\e140";
-}
+ content: "\e140"; }
+
.glyphicon-dashboard:before {
- content: "\e141";
-}
+ content: "\e141"; }
+
.glyphicon-paperclip:before {
- content: "\e142";
-}
+ content: "\e142"; }
+
.glyphicon-heart-empty:before {
- content: "\e143";
-}
+ content: "\e143"; }
+
.glyphicon-link:before {
- content: "\e144";
-}
+ content: "\e144"; }
+
.glyphicon-phone:before {
- content: "\e145";
-}
+ content: "\e145"; }
+
.glyphicon-pushpin:before {
- content: "\e146";
-}
+ content: "\e146"; }
+
.glyphicon-usd:before {
- content: "\e148";
-}
+ content: "\e148"; }
+
.glyphicon-gbp:before {
- content: "\e149";
-}
+ content: "\e149"; }
+
.glyphicon-sort:before {
- content: "\e150";
-}
+ content: "\e150"; }
+
.glyphicon-sort-by-alphabet:before {
- content: "\e151";
-}
+ content: "\e151"; }
+
.glyphicon-sort-by-alphabet-alt:before {
- content: "\e152";
-}
+ content: "\e152"; }
+
.glyphicon-sort-by-order:before {
- content: "\e153";
-}
+ content: "\e153"; }
+
.glyphicon-sort-by-order-alt:before {
- content: "\e154";
-}
+ content: "\e154"; }
+
.glyphicon-sort-by-attributes:before {
- content: "\e155";
-}
+ content: "\e155"; }
+
.glyphicon-sort-by-attributes-alt:before {
- content: "\e156";
-}
+ content: "\e156"; }
+
.glyphicon-unchecked:before {
- content: "\e157";
-}
+ content: "\e157"; }
+
.glyphicon-expand:before {
- content: "\e158";
-}
+ content: "\e158"; }
+
.glyphicon-collapse-down:before {
- content: "\e159";
-}
+ content: "\e159"; }
+
.glyphicon-collapse-up:before {
- content: "\e160";
-}
+ content: "\e160"; }
+
.glyphicon-log-in:before {
- content: "\e161";
-}
+ content: "\e161"; }
+
.glyphicon-flash:before {
- content: "\e162";
-}
+ content: "\e162"; }
+
.glyphicon-log-out:before {
- content: "\e163";
-}
+ content: "\e163"; }
+
.glyphicon-new-window:before {
- content: "\e164";
-}
+ content: "\e164"; }
+
.glyphicon-record:before {
- content: "\e165";
-}
+ content: "\e165"; }
+
.glyphicon-save:before {
- content: "\e166";
-}
+ content: "\e166"; }
+
.glyphicon-open:before {
- content: "\e167";
-}
+ content: "\e167"; }
+
.glyphicon-saved:before {
- content: "\e168";
-}
+ content: "\e168"; }
+
.glyphicon-import:before {
- content: "\e169";
-}
+ content: "\e169"; }
+
.glyphicon-export:before {
- content: "\e170";
-}
+ content: "\e170"; }
+
.glyphicon-send:before {
- content: "\e171";
-}
+ content: "\e171"; }
+
.glyphicon-floppy-disk:before {
- content: "\e172";
-}
+ content: "\e172"; }
+
.glyphicon-floppy-saved:before {
- content: "\e173";
-}
+ content: "\e173"; }
+
.glyphicon-floppy-remove:before {
- content: "\e174";
-}
+ content: "\e174"; }
+
.glyphicon-floppy-save:before {
- content: "\e175";
-}
+ content: "\e175"; }
+
.glyphicon-floppy-open:before {
- content: "\e176";
-}
+ content: "\e176"; }
+
.glyphicon-credit-card:before {
- content: "\e177";
-}
+ content: "\e177"; }
+
.glyphicon-transfer:before {
- content: "\e178";
-}
+ content: "\e178"; }
+
.glyphicon-cutlery:before {
- content: "\e179";
-}
+ content: "\e179"; }
+
.glyphicon-header:before {
- content: "\e180";
-}
+ content: "\e180"; }
+
.glyphicon-compressed:before {
- content: "\e181";
-}
+ content: "\e181"; }
+
.glyphicon-earphone:before {
- content: "\e182";
-}
+ content: "\e182"; }
+
.glyphicon-phone-alt:before {
- content: "\e183";
-}
+ content: "\e183"; }
+
.glyphicon-tower:before {
- content: "\e184";
-}
+ content: "\e184"; }
+
.glyphicon-stats:before {
- content: "\e185";
-}
+ content: "\e185"; }
+
.glyphicon-sd-video:before {
- content: "\e186";
-}
+ content: "\e186"; }
+
.glyphicon-hd-video:before {
- content: "\e187";
-}
+ content: "\e187"; }
+
.glyphicon-subtitles:before {
- content: "\e188";
-}
+ content: "\e188"; }
+
.glyphicon-sound-stereo:before {
- content: "\e189";
-}
+ content: "\e189"; }
+
.glyphicon-sound-dolby:before {
- content: "\e190";
-}
+ content: "\e190"; }
+
.glyphicon-sound-5-1:before {
- content: "\e191";
-}
+ content: "\e191"; }
+
.glyphicon-sound-6-1:before {
- content: "\e192";
-}
+ content: "\e192"; }
+
.glyphicon-sound-7-1:before {
- content: "\e193";
-}
+ content: "\e193"; }
+
.glyphicon-copyright-mark:before {
- content: "\e194";
-}
+ content: "\e194"; }
+
.glyphicon-registration-mark:before {
- content: "\e195";
-}
+ content: "\e195"; }
+
.glyphicon-cloud-download:before {
- content: "\e197";
-}
+ content: "\e197"; }
+
.glyphicon-cloud-upload:before {
- content: "\e198";
-}
+ content: "\e198"; }
+
.glyphicon-tree-conifer:before {
- content: "\e199";
-}
+ content: "\e199"; }
+
.glyphicon-tree-deciduous:before {
- content: "\e200";
-}
+ content: "\e200"; }
+
+.glyphicon-cd:before {
+ content: "\e201"; }
+
+.glyphicon-save-file:before {
+ content: "\e202"; }
+
+.glyphicon-open-file:before {
+ content: "\e203"; }
+
+.glyphicon-level-up:before {
+ content: "\e204"; }
+
+.glyphicon-copy:before {
+ content: "\e205"; }
+
+.glyphicon-paste:before {
+ content: "\e206"; }
+
+.glyphicon-alert:before {
+ content: "\e209"; }
+
+.glyphicon-equalizer:before {
+ content: "\e210"; }
+
+.glyphicon-king:before {
+ content: "\e211"; }
+
+.glyphicon-queen:before {
+ content: "\e212"; }
+
+.glyphicon-pawn:before {
+ content: "\e213"; }
+
+.glyphicon-bishop:before {
+ content: "\e214"; }
+
+.glyphicon-knight:before {
+ content: "\e215"; }
+
+.glyphicon-baby-formula:before {
+ content: "\e216"; }
+
+.glyphicon-tent:before {
+ content: "\26fa"; }
+
+.glyphicon-blackboard:before {
+ content: "\e218"; }
+
+.glyphicon-bed:before {
+ content: "\e219"; }
+
+.glyphicon-apple:before {
+ content: "\f8ff"; }
+
+.glyphicon-erase:before {
+ content: "\e221"; }
+
+.glyphicon-hourglass:before {
+ content: "\231b"; }
+
+.glyphicon-lamp:before {
+ content: "\e223"; }
+
+.glyphicon-duplicate:before {
+ content: "\e224"; }
+
+.glyphicon-piggy-bank:before {
+ content: "\e225"; }
+
+.glyphicon-scissors:before {
+ content: "\e226"; }
+
+.glyphicon-bitcoin:before {
+ content: "\e227"; }
+
+.glyphicon-btc:before {
+ content: "\e227"; }
+
+.glyphicon-xbt:before {
+ content: "\e227"; }
+
+.glyphicon-yen:before {
+ content: "\00a5"; }
+
+.glyphicon-jpy:before {
+ content: "\00a5"; }
+
+.glyphicon-ruble:before {
+ content: "\20bd"; }
+
+.glyphicon-rub:before {
+ content: "\20bd"; }
+
+.glyphicon-scale:before {
+ content: "\e230"; }
+
+.glyphicon-ice-lolly:before {
+ content: "\e231"; }
+
+.glyphicon-ice-lolly-tasted:before {
+ content: "\e232"; }
+
+.glyphicon-education:before {
+ content: "\e233"; }
+
+.glyphicon-option-horizontal:before {
+ content: "\e234"; }
+
+.glyphicon-option-vertical:before {
+ content: "\e235"; }
+
+.glyphicon-menu-hamburger:before {
+ content: "\e236"; }
+
+.glyphicon-modal-window:before {
+ content: "\e237"; }
+
+.glyphicon-oil:before {
+ content: "\e238"; }
+
+.glyphicon-grain:before {
+ content: "\e239"; }
+
+.glyphicon-sunglasses:before {
+ content: "\e240"; }
+
+.glyphicon-text-size:before {
+ content: "\e241"; }
+
+.glyphicon-text-color:before {
+ content: "\e242"; }
+
+.glyphicon-text-background:before {
+ content: "\e243"; }
+
+.glyphicon-object-align-top:before {
+ content: "\e244"; }
+
+.glyphicon-object-align-bottom:before {
+ content: "\e245"; }
+
+.glyphicon-object-align-horizontal:before {
+ content: "\e246"; }
+
+.glyphicon-object-align-left:before {
+ content: "\e247"; }
+
+.glyphicon-object-align-vertical:before {
+ content: "\e248"; }
+
+.glyphicon-object-align-right:before {
+ content: "\e249"; }
+
+.glyphicon-triangle-right:before {
+ content: "\e250"; }
+
+.glyphicon-triangle-left:before {
+ content: "\e251"; }
+
+.glyphicon-triangle-bottom:before {
+ content: "\e252"; }
+
+.glyphicon-triangle-top:before {
+ content: "\e253"; }
+
+.glyphicon-console:before {
+ content: "\e254"; }
+
+.glyphicon-superscript:before {
+ content: "\e255"; }
+
+.glyphicon-subscript:before {
+ content: "\e256"; }
+
+.glyphicon-menu-left:before {
+ content: "\e257"; }
+
+.glyphicon-menu-right:before {
+ content: "\e258"; }
+
+.glyphicon-menu-down:before {
+ content: "\e259"; }
+
+.glyphicon-menu-up:before {
+ content: "\e260"; }
+
* {
- box-sizing: border-box;
-}
+ box-sizing: border-box; }
+
*:before,
*:after {
- box-sizing: border-box;
-}
+ box-sizing: border-box; }
+
html {
font-size: 10px;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
+ -webkit-tap-highlight-color: transparent; }
+
body {
- font-family: "Roboto", Helvetica, Arial, sans-serif;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
- line-height: 1.42857143;
+ line-height: 1.42857;
color: #333333;
- background-color: #ffffff;
-}
+ background-color: #fff; }
+
input,
button,
select,
textarea {
font-family: inherit;
font-size: inherit;
- line-height: inherit;
-}
+ line-height: inherit; }
+
a {
color: #337ab7;
- text-decoration: none;
-}
-a:hover,
-a:focus {
- color: #23527c;
- text-decoration: underline;
-}
-a:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
+ text-decoration: none; }
+ a:hover,
+ a:focus {
+ color: #23527c;
+ text-decoration: underline; }
+ a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px; }
+
figure {
- margin: 0;
-}
+ margin: 0; }
+
img {
- vertical-align: middle;
-}
-.img-responsive,
-.thumbnail > img,
-.thumbnail a > img,
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
+ vertical-align: middle; }
+
+.img-responsive {
display: block;
max-width: 100%;
- height: auto;
-}
+ height: auto; }
+
.img-rounded {
- border-radius: 6px;
-}
+ border-radius: 6px; }
+
.img-thumbnail {
padding: 4px;
- line-height: 1.42857143;
- background-color: #ffffff;
- border: 1px solid #dddddd;
+ line-height: 1.42857;
+ background-color: #fff;
+ border: 1px solid #ddd;
border-radius: 4px;
transition: all 0.2s ease-in-out;
display: inline-block;
max-width: 100%;
- height: auto;
-}
+ height: auto; }
+
.img-circle {
- border-radius: 50%;
-}
+ border-radius: 50%; }
+
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
- border-top: 1px solid #eeeeee;
-}
+ border-top: 1px solid #eeeeee; }
+
.sr-only {
position: absolute;
width: 1px;
@@ -953,8 +1117,8 @@
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
- border: 0;
-}
+ border: 0; }
+
.sr-only-focusable:active,
.sr-only-focusable:focus {
position: static;
@@ -962,278 +1126,256 @@
height: auto;
margin: 0;
overflow: visible;
- clip: auto;
-}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6 {
+ clip: auto; }
+
+[role="button"] {
+ cursor: pointer; }
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
- color: inherit;
-}
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small,
-.h1 small,
-.h2 small,
-.h3 small,
-.h4 small,
-.h5 small,
-.h6 small,
-h1 .small,
-h2 .small,
-h3 .small,
-h4 .small,
-h5 .small,
-h6 .small,
-.h1 .small,
-.h2 .small,
-.h3 .small,
-.h4 .small,
-.h5 .small,
-.h6 .small {
- font-weight: normal;
- line-height: 1;
- color: #777777;
-}
-h1,
-.h1,
-h2,
-.h2,
-h3,
-.h3 {
+ color: inherit; }
+ h1 small,
+ h1 .small, h2 small,
+ h2 .small, h3 small,
+ h3 .small, h4 small,
+ h4 .small, h5 small,
+ h5 .small, h6 small,
+ h6 .small,
+ .h1 small,
+ .h1 .small, .h2 small,
+ .h2 .small, .h3 small,
+ .h3 .small, .h4 small,
+ .h4 .small, .h5 small,
+ .h5 .small, .h6 small,
+ .h6 .small {
+ font-weight: normal;
+ line-height: 1;
+ color: #777777; }
+
+h1, .h1,
+h2, .h2,
+h3, .h3 {
margin-top: 20px;
- margin-bottom: 10px;
-}
-h1 small,
-.h1 small,
-h2 small,
-.h2 small,
-h3 small,
-.h3 small,
-h1 .small,
-.h1 .small,
-h2 .small,
-.h2 .small,
-h3 .small,
-.h3 .small {
- font-size: 65%;
-}
-h4,
-.h4,
-h5,
-.h5,
-h6,
-.h6 {
+ margin-bottom: 10px; }
+ h1 small,
+ h1 .small, .h1 small,
+ .h1 .small,
+ h2 small,
+ h2 .small, .h2 small,
+ .h2 .small,
+ h3 small,
+ h3 .small, .h3 small,
+ .h3 .small {
+ font-size: 65%; }
+
+h4, .h4,
+h5, .h5,
+h6, .h6 {
margin-top: 10px;
- margin-bottom: 10px;
-}
-h4 small,
-.h4 small,
-h5 small,
-.h5 small,
-h6 small,
-.h6 small,
-h4 .small,
-.h4 .small,
-h5 .small,
-.h5 .small,
-h6 .small,
-.h6 .small {
- font-size: 75%;
-}
-h1,
-.h1 {
- font-size: 36px;
-}
-h2,
-.h2 {
- font-size: 30px;
-}
-h3,
-.h3 {
- font-size: 24px;
-}
-h4,
-.h4 {
- font-size: 18px;
-}
-h5,
-.h5 {
- font-size: 14px;
-}
-h6,
-.h6 {
- font-size: 12px;
-}
+ margin-bottom: 10px; }
+ h4 small,
+ h4 .small, .h4 small,
+ .h4 .small,
+ h5 small,
+ h5 .small, .h5 small,
+ .h5 .small,
+ h6 small,
+ h6 .small, .h6 small,
+ .h6 .small {
+ font-size: 75%; }
+
+h1, .h1 {
+ font-size: 36px; }
+
+h2, .h2 {
+ font-size: 30px; }
+
+h3, .h3 {
+ font-size: 24px; }
+
+h4, .h4 {
+ font-size: 18px; }
+
+h5, .h5 {
+ font-size: 14px; }
+
+h6, .h6 {
+ font-size: 12px; }
+
p {
- margin: 0 0 10px;
-}
+ margin: 0 0 10px; }
+
.lead {
margin-bottom: 20px;
font-size: 16px;
font-weight: 300;
- line-height: 1.4;
-}
-@media (min-width: 768px) {
- .lead {
- font-size: 21px;
- }
-}
+ line-height: 1.4; }
+ @media (min-width: 768px) {
+ .lead {
+ font-size: 21px; } }
+
small,
.small {
- font-size: 85%;
-}
+ font-size: 85%; }
+
mark,
.mark {
background-color: #fcf8e3;
- padding: .2em;
-}
+ padding: .2em; }
+
.text-left {
- text-align: left;
-}
+ text-align: left; }
+
.text-right {
- text-align: right;
-}
+ text-align: right; }
+
.text-center {
- text-align: center;
-}
+ text-align: center; }
+
.text-justify {
- text-align: justify;
-}
+ text-align: justify; }
+
.text-nowrap {
- white-space: nowrap;
-}
+ white-space: nowrap; }
+
.text-lowercase {
- text-transform: lowercase;
-}
-.text-uppercase {
- text-transform: uppercase;
-}
+ text-transform: lowercase; }
+
+.text-uppercase, .initialism {
+ text-transform: uppercase; }
+
.text-capitalize {
- text-transform: capitalize;
-}
+ text-transform: capitalize; }
+
.text-muted {
- color: #777777;
-}
+ color: #777777; }
+
.text-primary {
- color: #337ab7;
-}
-a.text-primary:hover {
- color: #286090;
-}
+ color: #337ab7; }
+
+a.text-primary:hover,
+a.text-primary:focus {
+ color: #286090; }
+
.text-success {
- color: #3c763d;
-}
-a.text-success:hover {
- color: #2b542c;
-}
+ color: #3c763d; }
+
+a.text-success:hover,
+a.text-success:focus {
+ color: #2b542c; }
+
.text-info {
- color: #31708f;
-}
-a.text-info:hover {
- color: #245269;
-}
+ color: #31708f; }
+
+a.text-info:hover,
+a.text-info:focus {
+ color: #245269; }
+
.text-warning {
- color: #8a6d3b;
-}
-a.text-warning:hover {
- color: #66512c;
-}
+ color: #8a6d3b; }
+
+a.text-warning:hover,
+a.text-warning:focus {
+ color: #66512c; }
+
.text-danger {
- color: #a94442;
-}
-a.text-danger:hover {
- color: #843534;
-}
+ color: #a94442; }
+
+a.text-danger:hover,
+a.text-danger:focus {
+ color: #843534; }
+
+.bg-primary {
+ color: #fff; }
+
.bg-primary {
- color: #fff;
- background-color: #337ab7;
-}
-a.bg-primary:hover {
- background-color: #286090;
-}
+ background-color: #337ab7; }
+
+a.bg-primary:hover,
+a.bg-primary:focus {
+ background-color: #286090; }
+
.bg-success {
- background-color: #dff0d8;
-}
-a.bg-success:hover {
- background-color: #c1e2b3;
-}
+ background-color: #dff0d8; }
+
+a.bg-success:hover,
+a.bg-success:focus {
+ background-color: #c1e2b3; }
+
.bg-info {
- background-color: #d9edf7;
-}
-a.bg-info:hover {
- background-color: #afd9ee;
-}
+ background-color: #d9edf7; }
+
+a.bg-info:hover,
+a.bg-info:focus {
+ background-color: #afd9ee; }
+
.bg-warning {
- background-color: #fcf8e3;
-}
-a.bg-warning:hover {
- background-color: #f7ecb5;
-}
+ background-color: #fcf8e3; }
+
+a.bg-warning:hover,
+a.bg-warning:focus {
+ background-color: #f7ecb5; }
+
.bg-danger {
- background-color: #f2dede;
-}
-a.bg-danger:hover {
- background-color: #e4b9b9;
-}
+ background-color: #f2dede; }
+
+a.bg-danger:hover,
+a.bg-danger:focus {
+ background-color: #e4b9b9; }
+
.page-header {
padding-bottom: 9px;
margin: 40px 0 20px;
- border-bottom: 1px solid #eeeeee;
-}
+ border-bottom: 1px solid #eeeeee; }
+
ul,
ol {
margin-top: 0;
- margin-bottom: 10px;
-}
-ul ul,
-ol ul,
-ul ol,
-ol ol {
- margin-bottom: 0;
-}
+ margin-bottom: 10px; }
+ ul ul,
+ ul ol,
+ ol ul,
+ ol ol {
+ margin-bottom: 0; }
+
.list-unstyled {
padding-left: 0;
- list-style: none;
-}
+ list-style: none; }
+
.list-inline {
padding-left: 0;
list-style: none;
- margin-left: -5px;
-}
-.list-inline > li {
- display: inline-block;
- padding-left: 5px;
- padding-right: 5px;
-}
+ margin-left: -5px; }
+ .list-inline > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px; }
+
dl {
margin-top: 0;
- margin-bottom: 20px;
-}
+ margin-bottom: 20px; }
+
dt,
dd {
- line-height: 1.42857143;
-}
+ line-height: 1.42857; }
+
dt {
- font-weight: bold;
-}
+ font-weight: bold; }
+
dd {
- margin-left: 0;
-}
+ margin-left: 0; }
+
+.dl-horizontal dd:before,
+.dl-horizontal dd:after {
+ content: " ";
+ display: table; }
+
+.dl-horizontal dd:after {
+ clear: both; }
+
@media (min-width: 768px) {
.dl-horizontal dt {
float: left;
@@ -1242,1039 +1384,870 @@
text-align: right;
overflow: hidden;
text-overflow: ellipsis;
- white-space: nowrap;
- }
+ white-space: nowrap; }
.dl-horizontal dd {
- margin-left: 180px;
- }
-}
+ margin-left: 180px; } }
+
abbr[title],
abbr[data-original-title] {
cursor: help;
- border-bottom: 1px dotted #777777;
-}
+ border-bottom: 1px dotted #777777; }
+
.initialism {
- font-size: 90%;
- text-transform: uppercase;
-}
+ font-size: 90%; }
+
blockquote {
padding: 10px 20px;
margin: 0 0 20px;
font-size: 17.5px;
- border-left: 5px solid #eeeeee;
-}
-blockquote p:last-child,
-blockquote ul:last-child,
-blockquote ol:last-child {
- margin-bottom: 0;
-}
-blockquote footer,
-blockquote small,
-blockquote .small {
- display: block;
- font-size: 80%;
- line-height: 1.42857143;
- color: #777777;
-}
-blockquote footer:before,
-blockquote small:before,
-blockquote .small:before {
- content: '\2014 \00A0';
-}
+ border-left: 5px solid #eeeeee; }
+ blockquote p:last-child,
+ blockquote ul:last-child,
+ blockquote ol:last-child {
+ margin-bottom: 0; }
+ blockquote footer,
+ blockquote small,
+ blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857;
+ color: #777777; }
+ blockquote footer:before,
+ blockquote small:before,
+ blockquote .small:before {
+ content: '\2014 \00A0'; }
+
.blockquote-reverse,
blockquote.pull-right {
padding-right: 15px;
padding-left: 0;
border-right: 5px solid #eeeeee;
border-left: 0;
- text-align: right;
-}
-.blockquote-reverse footer:before,
-blockquote.pull-right footer:before,
-.blockquote-reverse small:before,
-blockquote.pull-right small:before,
-.blockquote-reverse .small:before,
-blockquote.pull-right .small:before {
- content: '';
-}
-.blockquote-reverse footer:after,
-blockquote.pull-right footer:after,
-.blockquote-reverse small:after,
-blockquote.pull-right small:after,
-.blockquote-reverse .small:after,
-blockquote.pull-right .small:after {
- content: '\00A0 \2014';
-}
+ text-align: right; }
+ .blockquote-reverse footer:before,
+ .blockquote-reverse small:before,
+ .blockquote-reverse .small:before,
+ blockquote.pull-right footer:before,
+ blockquote.pull-right small:before,
+ blockquote.pull-right .small:before {
+ content: ''; }
+ .blockquote-reverse footer:after,
+ .blockquote-reverse small:after,
+ .blockquote-reverse .small:after,
+ blockquote.pull-right footer:after,
+ blockquote.pull-right small:after,
+ blockquote.pull-right .small:after {
+ content: '\00A0 \2014'; }
+
address {
margin-bottom: 20px;
font-style: normal;
- line-height: 1.42857143;
-}
+ line-height: 1.42857; }
+
code,
kbd,
pre,
samp {
- font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
-}
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace; }
+
code {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
background-color: #f9f2f4;
- border-radius: 4px;
-}
+ border-radius: 4px; }
+
kbd {
padding: 2px 4px;
font-size: 90%;
- color: #ffffff;
- background-color: #333333;
+ color: #fff;
+ background-color: #333;
border-radius: 3px;
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-kbd kbd {
- padding: 0;
- font-size: 100%;
- font-weight: bold;
- box-shadow: none;
-}
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); }
+ kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ box-shadow: none; }
+
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
- line-height: 1.42857143;
+ line-height: 1.42857;
word-break: break-all;
word-wrap: break-word;
color: #333333;
background-color: #f5f5f5;
- border: 1px solid #cccccc;
- border-radius: 4px;
-}
-pre code {
- padding: 0;
- font-size: inherit;
- color: inherit;
- white-space: pre-wrap;
- background-color: transparent;
- border-radius: 0;
-}
+ border: 1px solid #ccc;
+ border-radius: 4px; }
+ pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0; }
+
.pre-scrollable {
max-height: 340px;
- overflow-y: scroll;
-}
+ overflow-y: scroll; }
+
.container {
margin-right: auto;
margin-left: auto;
padding-left: 15px;
- padding-right: 15px;
-}
-@media (min-width: 768px) {
- .container {
- width: 750px;
- }
-}
-@media (min-width: 992px) {
- .container {
- width: 970px;
- }
-}
-@media (min-width: 1200px) {
- .container {
- width: 1170px;
- }
-}
+ padding-right: 15px; }
+ .container:before,
+ .container:after {
+ content: " ";
+ display: table; }
+ .container:after {
+ clear: both; }
+ @media (min-width: 768px) {
+ .container {
+ width: 750px; } }
+ @media (min-width: 992px) {
+ .container {
+ width: 970px; } }
+ @media (min-width: 1200px) {
+ .container {
+ width: 1170px; } }
+
.container-fluid {
margin-right: auto;
margin-left: auto;
padding-left: 15px;
- padding-right: 15px;
-}
+ padding-right: 15px; }
+ .container-fluid:before,
+ .container-fluid:after {
+ content: " ";
+ display: table; }
+ .container-fluid:after {
+ clear: both; }
+
.row {
margin-left: -15px;
- margin-right: -15px;
-}
+ margin-right: -15px; }
+ .row:before,
+ .row:after {
+ content: " ";
+ display: table; }
+ .row:after {
+ clear: both; }
+
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
position: relative;
min-height: 1px;
padding-left: 15px;
- padding-right: 15px;
-}
+ padding-right: 15px; }
+
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
- float: left;
-}
-.col-xs-12 {
- width: 100%;
-}
-.col-xs-11 {
- width: 91.66666667%;
-}
-.col-xs-10 {
- width: 83.33333333%;
-}
-.col-xs-9 {
- width: 75%;
-}
-.col-xs-8 {
- width: 66.66666667%;
-}
-.col-xs-7 {
- width: 58.33333333%;
-}
-.col-xs-6 {
- width: 50%;
-}
-.col-xs-5 {
- width: 41.66666667%;
-}
-.col-xs-4 {
- width: 33.33333333%;
-}
-.col-xs-3 {
- width: 25%;
-}
-.col-xs-2 {
- width: 16.66666667%;
-}
+ float: left; }
+
.col-xs-1 {
- width: 8.33333333%;
-}
-.col-xs-pull-12 {
- right: 100%;
-}
-.col-xs-pull-11 {
- right: 91.66666667%;
-}
-.col-xs-pull-10 {
- right: 83.33333333%;
-}
-.col-xs-pull-9 {
- right: 75%;
-}
-.col-xs-pull-8 {
- right: 66.66666667%;
-}
-.col-xs-pull-7 {
- right: 58.33333333%;
-}
-.col-xs-pull-6 {
- right: 50%;
-}
-.col-xs-pull-5 {
- right: 41.66666667%;
-}
-.col-xs-pull-4 {
- right: 33.33333333%;
-}
-.col-xs-pull-3 {
- right: 25%;
-}
-.col-xs-pull-2 {
- right: 16.66666667%;
-}
-.col-xs-pull-1 {
- right: 8.33333333%;
-}
+ width: 8.33333%; }
+
+.col-xs-2 {
+ width: 16.66667%; }
+
+.col-xs-3 {
+ width: 25%; }
+
+.col-xs-4 {
+ width: 33.33333%; }
+
+.col-xs-5 {
+ width: 41.66667%; }
+
+.col-xs-6 {
+ width: 50%; }
+
+.col-xs-7 {
+ width: 58.33333%; }
+
+.col-xs-8 {
+ width: 66.66667%; }
+
+.col-xs-9 {
+ width: 75%; }
+
+.col-xs-10 {
+ width: 83.33333%; }
+
+.col-xs-11 {
+ width: 91.66667%; }
+
+.col-xs-12 {
+ width: 100%; }
+
.col-xs-pull-0 {
- right: auto;
-}
-.col-xs-push-12 {
- left: 100%;
-}
-.col-xs-push-11 {
- left: 91.66666667%;
-}
-.col-xs-push-10 {
- left: 83.33333333%;
-}
-.col-xs-push-9 {
- left: 75%;
-}
-.col-xs-push-8 {
- left: 66.66666667%;
-}
-.col-xs-push-7 {
- left: 58.33333333%;
-}
-.col-xs-push-6 {
- left: 50%;
-}
-.col-xs-push-5 {
- left: 41.66666667%;
-}
-.col-xs-push-4 {
- left: 33.33333333%;
-}
-.col-xs-push-3 {
- left: 25%;
-}
-.col-xs-push-2 {
- left: 16.66666667%;
-}
-.col-xs-push-1 {
- left: 8.33333333%;
-}
+ right: auto; }
+
+.col-xs-pull-1 {
+ right: 8.33333%; }
+
+.col-xs-pull-2 {
+ right: 16.66667%; }
+
+.col-xs-pull-3 {
+ right: 25%; }
+
+.col-xs-pull-4 {
+ right: 33.33333%; }
+
+.col-xs-pull-5 {
+ right: 41.66667%; }
+
+.col-xs-pull-6 {
+ right: 50%; }
+
+.col-xs-pull-7 {
+ right: 58.33333%; }
+
+.col-xs-pull-8 {
+ right: 66.66667%; }
+
+.col-xs-pull-9 {
+ right: 75%; }
+
+.col-xs-pull-10 {
+ right: 83.33333%; }
+
+.col-xs-pull-11 {
+ right: 91.66667%; }
+
+.col-xs-pull-12 {
+ right: 100%; }
+
.col-xs-push-0 {
- left: auto;
-}
-.col-xs-offset-12 {
- margin-left: 100%;
-}
-.col-xs-offset-11 {
- margin-left: 91.66666667%;
-}
-.col-xs-offset-10 {
- margin-left: 83.33333333%;
-}
-.col-xs-offset-9 {
- margin-left: 75%;
-}
-.col-xs-offset-8 {
- margin-left: 66.66666667%;
-}
-.col-xs-offset-7 {
- margin-left: 58.33333333%;
-}
+ left: auto; }
+
+.col-xs-push-1 {
+ left: 8.33333%; }
+
+.col-xs-push-2 {
+ left: 16.66667%; }
+
+.col-xs-push-3 {
+ left: 25%; }
+
+.col-xs-push-4 {
+ left: 33.33333%; }
+
+.col-xs-push-5 {
+ left: 41.66667%; }
+
+.col-xs-push-6 {
+ left: 50%; }
+
+.col-xs-push-7 {
+ left: 58.33333%; }
+
+.col-xs-push-8 {
+ left: 66.66667%; }
+
+.col-xs-push-9 {
+ left: 75%; }
+
+.col-xs-push-10 {
+ left: 83.33333%; }
+
+.col-xs-push-11 {
+ left: 91.66667%; }
+
+.col-xs-push-12 {
+ left: 100%; }
+
+.col-xs-offset-0 {
+ margin-left: 0%; }
+
+.col-xs-offset-1 {
+ margin-left: 8.33333%; }
+
+.col-xs-offset-2 {
+ margin-left: 16.66667%; }
+
+.col-xs-offset-3 {
+ margin-left: 25%; }
+
+.col-xs-offset-4 {
+ margin-left: 33.33333%; }
+
+.col-xs-offset-5 {
+ margin-left: 41.66667%; }
+
.col-xs-offset-6 {
- margin-left: 50%;
-}
-.col-xs-offset-5 {
- margin-left: 41.66666667%;
-}
-.col-xs-offset-4 {
- margin-left: 33.33333333%;
-}
-.col-xs-offset-3 {
- margin-left: 25%;
-}
-.col-xs-offset-2 {
- margin-left: 16.66666667%;
-}
-.col-xs-offset-1 {
- margin-left: 8.33333333%;
-}
-.col-xs-offset-0 {
- margin-left: 0%;
-}
+ margin-left: 50%; }
+
+.col-xs-offset-7 {
+ margin-left: 58.33333%; }
+
+.col-xs-offset-8 {
+ margin-left: 66.66667%; }
+
+.col-xs-offset-9 {
+ margin-left: 75%; }
+
+.col-xs-offset-10 {
+ margin-left: 83.33333%; }
+
+.col-xs-offset-11 {
+ margin-left: 91.66667%; }
+
+.col-xs-offset-12 {
+ margin-left: 100%; }
+
@media (min-width: 768px) {
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
- float: left;
- }
- .col-sm-12 {
- width: 100%;
- }
- .col-sm-11 {
- width: 91.66666667%;
- }
- .col-sm-10 {
- width: 83.33333333%;
- }
- .col-sm-9 {
- width: 75%;
- }
- .col-sm-8 {
- width: 66.66666667%;
- }
+ float: left; }
+ .col-sm-1 {
+ width: 8.33333%; }
+ .col-sm-2 {
+ width: 16.66667%; }
+ .col-sm-3 {
+ width: 25%; }
+ .col-sm-4 {
+ width: 33.33333%; }
+ .col-sm-5 {
+ width: 41.66667%; }
+ .col-sm-6 {
+ width: 50%; }
.col-sm-7 {
- width: 58.33333333%;
- }
- .col-sm-6 {
- width: 50%;
- }
- .col-sm-5 {
- width: 41.66666667%;
- }
- .col-sm-4 {
- width: 33.33333333%;
- }
- .col-sm-3 {
- width: 25%;
- }
- .col-sm-2 {
- width: 16.66666667%;
- }
- .col-sm-1 {
- width: 8.33333333%;
- }
+ width: 58.33333%; }
+ .col-sm-8 {
+ width: 66.66667%; }
+ .col-sm-9 {
+ width: 75%; }
+ .col-sm-10 {
+ width: 83.33333%; }
+ .col-sm-11 {
+ width: 91.66667%; }
+ .col-sm-12 {
+ width: 100%; }
+ .col-sm-pull-0 {
+ right: auto; }
+ .col-sm-pull-1 {
+ right: 8.33333%; }
+ .col-sm-pull-2 {
+ right: 16.66667%; }
+ .col-sm-pull-3 {
+ right: 25%; }
+ .col-sm-pull-4 {
+ right: 33.33333%; }
+ .col-sm-pull-5 {
+ right: 41.66667%; }
+ .col-sm-pull-6 {
+ right: 50%; }
+ .col-sm-pull-7 {
+ right: 58.33333%; }
+ .col-sm-pull-8 {
+ right: 66.66667%; }
+ .col-sm-pull-9 {
+ right: 75%; }
+ .col-sm-pull-10 {
+ right: 83.33333%; }
+ .col-sm-pull-11 {
+ right: 91.66667%; }
.col-sm-pull-12 {
- right: 100%;
- }
- .col-sm-pull-11 {
- right: 91.66666667%;
- }
- .col-sm-pull-10 {
- right: 83.33333333%;
- }
- .col-sm-pull-9 {
- right: 75%;
- }
- .col-sm-pull-8 {
- right: 66.66666667%;
- }
- .col-sm-pull-7 {
- right: 58.33333333%;
- }
- .col-sm-pull-6 {
- right: 50%;
- }
- .col-sm-pull-5 {
- right: 41.66666667%;
- }
- .col-sm-pull-4 {
- right: 33.33333333%;
- }
- .col-sm-pull-3 {
- right: 25%;
- }
- .col-sm-pull-2 {
- right: 16.66666667%;
- }
- .col-sm-pull-1 {
- right: 8.33333333%;
- }
- .col-sm-pull-0 {
- right: auto;
- }
+ right: 100%; }
+ .col-sm-push-0 {
+ left: auto; }
+ .col-sm-push-1 {
+ left: 8.33333%; }
+ .col-sm-push-2 {
+ left: 16.66667%; }
+ .col-sm-push-3 {
+ left: 25%; }
+ .col-sm-push-4 {
+ left: 33.33333%; }
+ .col-sm-push-5 {
+ left: 41.66667%; }
+ .col-sm-push-6 {
+ left: 50%; }
+ .col-sm-push-7 {
+ left: 58.33333%; }
+ .col-sm-push-8 {
+ left: 66.66667%; }
+ .col-sm-push-9 {
+ left: 75%; }
+ .col-sm-push-10 {
+ left: 83.33333%; }
+ .col-sm-push-11 {
+ left: 91.66667%; }
.col-sm-push-12 {
- left: 100%;
- }
- .col-sm-push-11 {
- left: 91.66666667%;
- }
- .col-sm-push-10 {
- left: 83.33333333%;
- }
- .col-sm-push-9 {
- left: 75%;
- }
- .col-sm-push-8 {
- left: 66.66666667%;
- }
- .col-sm-push-7 {
- left: 58.33333333%;
- }
- .col-sm-push-6 {
- left: 50%;
- }
- .col-sm-push-5 {
- left: 41.66666667%;
- }
- .col-sm-push-4 {
- left: 33.33333333%;
- }
- .col-sm-push-3 {
- left: 25%;
- }
- .col-sm-push-2 {
- left: 16.66666667%;
- }
- .col-sm-push-1 {
- left: 8.33333333%;
- }
- .col-sm-push-0 {
- left: auto;
- }
+ left: 100%; }
+ .col-sm-offset-0 {
+ margin-left: 0%; }
+ .col-sm-offset-1 {
+ margin-left: 8.33333%; }
+ .col-sm-offset-2 {
+ margin-left: 16.66667%; }
+ .col-sm-offset-3 {
+ margin-left: 25%; }
+ .col-sm-offset-4 {
+ margin-left: 33.33333%; }
+ .col-sm-offset-5 {
+ margin-left: 41.66667%; }
+ .col-sm-offset-6 {
+ margin-left: 50%; }
+ .col-sm-offset-7 {
+ margin-left: 58.33333%; }
+ .col-sm-offset-8 {
+ margin-left: 66.66667%; }
+ .col-sm-offset-9 {
+ margin-left: 75%; }
+ .col-sm-offset-10 {
+ margin-left: 83.33333%; }
+ .col-sm-offset-11 {
+ margin-left: 91.66667%; }
.col-sm-offset-12 {
- margin-left: 100%;
- }
- .col-sm-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-sm-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-sm-offset-9 {
- margin-left: 75%;
- }
- .col-sm-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-sm-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-sm-offset-6 {
- margin-left: 50%;
- }
- .col-sm-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-sm-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-sm-offset-3 {
- margin-left: 25%;
- }
- .col-sm-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-sm-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-sm-offset-0 {
- margin-left: 0%;
- }
-}
+ margin-left: 100%; } }
+
@media (min-width: 992px) {
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
- float: left;
- }
- .col-md-12 {
- width: 100%;
- }
- .col-md-11 {
- width: 91.66666667%;
- }
- .col-md-10 {
- width: 83.33333333%;
- }
- .col-md-9 {
- width: 75%;
- }
- .col-md-8 {
- width: 66.66666667%;
- }
+ float: left; }
+ .col-md-1 {
+ width: 8.33333%; }
+ .col-md-2 {
+ width: 16.66667%; }
+ .col-md-3 {
+ width: 25%; }
+ .col-md-4 {
+ width: 33.33333%; }
+ .col-md-5 {
+ width: 41.66667%; }
+ .col-md-6 {
+ width: 50%; }
.col-md-7 {
- width: 58.33333333%;
- }
- .col-md-6 {
- width: 50%;
- }
- .col-md-5 {
- width: 41.66666667%;
- }
- .col-md-4 {
- width: 33.33333333%;
- }
- .col-md-3 {
- width: 25%;
- }
- .col-md-2 {
- width: 16.66666667%;
- }
- .col-md-1 {
- width: 8.33333333%;
- }
+ width: 58.33333%; }
+ .col-md-8 {
+ width: 66.66667%; }
+ .col-md-9 {
+ width: 75%; }
+ .col-md-10 {
+ width: 83.33333%; }
+ .col-md-11 {
+ width: 91.66667%; }
+ .col-md-12 {
+ width: 100%; }
+ .col-md-pull-0 {
+ right: auto; }
+ .col-md-pull-1 {
+ right: 8.33333%; }
+ .col-md-pull-2 {
+ right: 16.66667%; }
+ .col-md-pull-3 {
+ right: 25%; }
+ .col-md-pull-4 {
+ right: 33.33333%; }
+ .col-md-pull-5 {
+ right: 41.66667%; }
+ .col-md-pull-6 {
+ right: 50%; }
+ .col-md-pull-7 {
+ right: 58.33333%; }
+ .col-md-pull-8 {
+ right: 66.66667%; }
+ .col-md-pull-9 {
+ right: 75%; }
+ .col-md-pull-10 {
+ right: 83.33333%; }
+ .col-md-pull-11 {
+ right: 91.66667%; }
.col-md-pull-12 {
- right: 100%;
- }
- .col-md-pull-11 {
- right: 91.66666667%;
- }
- .col-md-pull-10 {
- right: 83.33333333%;
- }
- .col-md-pull-9 {
- right: 75%;
- }
- .col-md-pull-8 {
- right: 66.66666667%;
- }
- .col-md-pull-7 {
- right: 58.33333333%;
- }
- .col-md-pull-6 {
- right: 50%;
- }
- .col-md-pull-5 {
- right: 41.66666667%;
- }
- .col-md-pull-4 {
- right: 33.33333333%;
- }
- .col-md-pull-3 {
- right: 25%;
- }
- .col-md-pull-2 {
- right: 16.66666667%;
- }
- .col-md-pull-1 {
- right: 8.33333333%;
- }
- .col-md-pull-0 {
- right: auto;
- }
+ right: 100%; }
+ .col-md-push-0 {
+ left: auto; }
+ .col-md-push-1 {
+ left: 8.33333%; }
+ .col-md-push-2 {
+ left: 16.66667%; }
+ .col-md-push-3 {
+ left: 25%; }
+ .col-md-push-4 {
+ left: 33.33333%; }
+ .col-md-push-5 {
+ left: 41.66667%; }
+ .col-md-push-6 {
+ left: 50%; }
+ .col-md-push-7 {
+ left: 58.33333%; }
+ .col-md-push-8 {
+ left: 66.66667%; }
+ .col-md-push-9 {
+ left: 75%; }
+ .col-md-push-10 {
+ left: 83.33333%; }
+ .col-md-push-11 {
+ left: 91.66667%; }
.col-md-push-12 {
- left: 100%;
- }
- .col-md-push-11 {
- left: 91.66666667%;
- }
- .col-md-push-10 {
- left: 83.33333333%;
- }
- .col-md-push-9 {
- left: 75%;
- }
- .col-md-push-8 {
- left: 66.66666667%;
- }
- .col-md-push-7 {
- left: 58.33333333%;
- }
- .col-md-push-6 {
- left: 50%;
- }
- .col-md-push-5 {
- left: 41.66666667%;
- }
- .col-md-push-4 {
- left: 33.33333333%;
- }
- .col-md-push-3 {
- left: 25%;
- }
- .col-md-push-2 {
- left: 16.66666667%;
- }
- .col-md-push-1 {
- left: 8.33333333%;
- }
- .col-md-push-0 {
- left: auto;
- }
+ left: 100%; }
+ .col-md-offset-0 {
+ margin-left: 0%; }
+ .col-md-offset-1 {
+ margin-left: 8.33333%; }
+ .col-md-offset-2 {
+ margin-left: 16.66667%; }
+ .col-md-offset-3 {
+ margin-left: 25%; }
+ .col-md-offset-4 {
+ margin-left: 33.33333%; }
+ .col-md-offset-5 {
+ margin-left: 41.66667%; }
+ .col-md-offset-6 {
+ margin-left: 50%; }
+ .col-md-offset-7 {
+ margin-left: 58.33333%; }
+ .col-md-offset-8 {
+ margin-left: 66.66667%; }
+ .col-md-offset-9 {
+ margin-left: 75%; }
+ .col-md-offset-10 {
+ margin-left: 83.33333%; }
+ .col-md-offset-11 {
+ margin-left: 91.66667%; }
.col-md-offset-12 {
- margin-left: 100%;
- }
- .col-md-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-md-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-md-offset-9 {
- margin-left: 75%;
- }
- .col-md-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-md-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-md-offset-6 {
- margin-left: 50%;
- }
- .col-md-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-md-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-md-offset-3 {
- margin-left: 25%;
- }
- .col-md-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-md-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-md-offset-0 {
- margin-left: 0%;
- }
-}
+ margin-left: 100%; } }
+
@media (min-width: 1200px) {
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
- float: left;
- }
- .col-lg-12 {
- width: 100%;
- }
- .col-lg-11 {
- width: 91.66666667%;
- }
- .col-lg-10 {
- width: 83.33333333%;
- }
- .col-lg-9 {
- width: 75%;
- }
- .col-lg-8 {
- width: 66.66666667%;
- }
+ float: left; }
+ .col-lg-1 {
+ width: 8.33333%; }
+ .col-lg-2 {
+ width: 16.66667%; }
+ .col-lg-3 {
+ width: 25%; }
+ .col-lg-4 {
+ width: 33.33333%; }
+ .col-lg-5 {
+ width: 41.66667%; }
+ .col-lg-6 {
+ width: 50%; }
.col-lg-7 {
- width: 58.33333333%;
- }
- .col-lg-6 {
- width: 50%;
- }
- .col-lg-5 {
- width: 41.66666667%;
- }
- .col-lg-4 {
- width: 33.33333333%;
- }
- .col-lg-3 {
- width: 25%;
- }
- .col-lg-2 {
- width: 16.66666667%;
- }
- .col-lg-1 {
- width: 8.33333333%;
- }
+ width: 58.33333%; }
+ .col-lg-8 {
+ width: 66.66667%; }
+ .col-lg-9 {
+ width: 75%; }
+ .col-lg-10 {
+ width: 83.33333%; }
+ .col-lg-11 {
+ width: 91.66667%; }
+ .col-lg-12 {
+ width: 100%; }
+ .col-lg-pull-0 {
+ right: auto; }
+ .col-lg-pull-1 {
+ right: 8.33333%; }
+ .col-lg-pull-2 {
+ right: 16.66667%; }
+ .col-lg-pull-3 {
+ right: 25%; }
+ .col-lg-pull-4 {
+ right: 33.33333%; }
+ .col-lg-pull-5 {
+ right: 41.66667%; }
+ .col-lg-pull-6 {
+ right: 50%; }
+ .col-lg-pull-7 {
+ right: 58.33333%; }
+ .col-lg-pull-8 {
+ right: 66.66667%; }
+ .col-lg-pull-9 {
+ right: 75%; }
+ .col-lg-pull-10 {
+ right: 83.33333%; }
+ .col-lg-pull-11 {
+ right: 91.66667%; }
.col-lg-pull-12 {
- right: 100%;
- }
- .col-lg-pull-11 {
- right: 91.66666667%;
- }
- .col-lg-pull-10 {
- right: 83.33333333%;
- }
- .col-lg-pull-9 {
- right: 75%;
- }
- .col-lg-pull-8 {
- right: 66.66666667%;
- }
- .col-lg-pull-7 {
- right: 58.33333333%;
- }
- .col-lg-pull-6 {
- right: 50%;
- }
- .col-lg-pull-5 {
- right: 41.66666667%;
- }
- .col-lg-pull-4 {
- right: 33.33333333%;
- }
- .col-lg-pull-3 {
- right: 25%;
- }
- .col-lg-pull-2 {
- right: 16.66666667%;
- }
- .col-lg-pull-1 {
- right: 8.33333333%;
- }
- .col-lg-pull-0 {
- right: auto;
- }
+ right: 100%; }
+ .col-lg-push-0 {
+ left: auto; }
+ .col-lg-push-1 {
+ left: 8.33333%; }
+ .col-lg-push-2 {
+ left: 16.66667%; }
+ .col-lg-push-3 {
+ left: 25%; }
+ .col-lg-push-4 {
+ left: 33.33333%; }
+ .col-lg-push-5 {
+ left: 41.66667%; }
+ .col-lg-push-6 {
+ left: 50%; }
+ .col-lg-push-7 {
+ left: 58.33333%; }
+ .col-lg-push-8 {
+ left: 66.66667%; }
+ .col-lg-push-9 {
+ left: 75%; }
+ .col-lg-push-10 {
+ left: 83.33333%; }
+ .col-lg-push-11 {
+ left: 91.66667%; }
.col-lg-push-12 {
- left: 100%;
- }
- .col-lg-push-11 {
- left: 91.66666667%;
- }
- .col-lg-push-10 {
- left: 83.33333333%;
- }
- .col-lg-push-9 {
- left: 75%;
- }
- .col-lg-push-8 {
- left: 66.66666667%;
- }
- .col-lg-push-7 {
- left: 58.33333333%;
- }
- .col-lg-push-6 {
- left: 50%;
- }
- .col-lg-push-5 {
- left: 41.66666667%;
- }
- .col-lg-push-4 {
- left: 33.33333333%;
- }
- .col-lg-push-3 {
- left: 25%;
- }
- .col-lg-push-2 {
- left: 16.66666667%;
- }
- .col-lg-push-1 {
- left: 8.33333333%;
- }
- .col-lg-push-0 {
- left: auto;
- }
+ left: 100%; }
+ .col-lg-offset-0 {
+ margin-left: 0%; }
+ .col-lg-offset-1 {
+ margin-left: 8.33333%; }
+ .col-lg-offset-2 {
+ margin-left: 16.66667%; }
+ .col-lg-offset-3 {
+ margin-left: 25%; }
+ .col-lg-offset-4 {
+ margin-left: 33.33333%; }
+ .col-lg-offset-5 {
+ margin-left: 41.66667%; }
+ .col-lg-offset-6 {
+ margin-left: 50%; }
+ .col-lg-offset-7 {
+ margin-left: 58.33333%; }
+ .col-lg-offset-8 {
+ margin-left: 66.66667%; }
+ .col-lg-offset-9 {
+ margin-left: 75%; }
+ .col-lg-offset-10 {
+ margin-left: 83.33333%; }
+ .col-lg-offset-11 {
+ margin-left: 91.66667%; }
.col-lg-offset-12 {
- margin-left: 100%;
- }
- .col-lg-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-lg-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-lg-offset-9 {
- margin-left: 75%;
- }
- .col-lg-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-lg-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-lg-offset-6 {
- margin-left: 50%;
- }
- .col-lg-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-lg-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-lg-offset-3 {
- margin-left: 25%;
- }
- .col-lg-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-lg-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-lg-offset-0 {
- margin-left: 0%;
- }
-}
+ margin-left: 100%; } }
+
table {
- background-color: transparent;
-}
+ background-color: transparent; }
+
caption {
padding-top: 8px;
padding-bottom: 8px;
color: #777777;
- text-align: left;
-}
+ text-align: left; }
+
th {
- text-align: left;
-}
+ text-align: left; }
+
.table {
width: 100%;
max-width: 100%;
- margin-bottom: 20px;
-}
-.table > thead > tr > th,
-.table > tbody > tr > th,
-.table > tfoot > tr > th,
-.table > thead > tr > td,
-.table > tbody > tr > td,
-.table > tfoot > tr > td {
- padding: 8px;
- line-height: 1.42857143;
- vertical-align: top;
- border-top: 1px solid #dddddd;
-}
-.table > thead > tr > th {
- vertical-align: bottom;
- border-bottom: 2px solid #dddddd;
-}
-.table > caption + thead > tr:first-child > th,
-.table > colgroup + thead > tr:first-child > th,
-.table > thead:first-child > tr:first-child > th,
-.table > caption + thead > tr:first-child > td,
-.table > colgroup + thead > tr:first-child > td,
-.table > thead:first-child > tr:first-child > td {
- border-top: 0;
-}
-.table > tbody + tbody {
- border-top: 2px solid #dddddd;
-}
-.table .table {
- background-color: #ffffff;
-}
+ margin-bottom: 20px; }
+ .table > thead > tr > th,
+ .table > thead > tr > td,
+ .table > tbody > tr > th,
+ .table > tbody > tr > td,
+ .table > tfoot > tr > th,
+ .table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.42857;
+ vertical-align: top;
+ border-top: 1px solid #ddd; }
+ .table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #ddd; }
+ .table > caption + thead > tr:first-child > th,
+ .table > caption + thead > tr:first-child > td,
+ .table > colgroup + thead > tr:first-child > th,
+ .table > colgroup + thead > tr:first-child > td,
+ .table > thead:first-child > tr:first-child > th,
+ .table > thead:first-child > tr:first-child > td {
+ border-top: 0; }
+ .table > tbody + tbody {
+ border-top: 2px solid #ddd; }
+ .table .table {
+ background-color: #fff; }
+
.table-condensed > thead > tr > th,
+.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > th,
-.table-condensed > tfoot > tr > th,
-.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > th,
.table-condensed > tfoot > tr > td {
- padding: 5px;
-}
+ padding: 5px; }
+
.table-bordered {
- border: 1px solid #dddddd;
-}
-.table-bordered > thead > tr > th,
-.table-bordered > tbody > tr > th,
-.table-bordered > tfoot > tr > th,
-.table-bordered > thead > tr > td,
-.table-bordered > tbody > tr > td,
-.table-bordered > tfoot > tr > td {
- border: 1px solid #dddddd;
-}
-.table-bordered > thead > tr > th,
-.table-bordered > thead > tr > td {
- border-bottom-width: 2px;
-}
-.table-striped > tbody > tr:nth-child(odd) {
- background-color: #f9f9f9;
-}
+ border: 1px solid #ddd; }
+ .table-bordered > thead > tr > th,
+ .table-bordered > thead > tr > td,
+ .table-bordered > tbody > tr > th,
+ .table-bordered > tbody > tr > td,
+ .table-bordered > tfoot > tr > th,
+ .table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd; }
+ .table-bordered > thead > tr > th,
+ .table-bordered > thead > tr > td {
+ border-bottom-width: 2px; }
+
+.table-striped > tbody > tr:nth-of-type(odd) {
+ background-color: #f9f9f9; }
+
.table-hover > tbody > tr:hover {
- background-color: #f5f5f5;
-}
+ background-color: #f5f5f5; }
+
table col[class*="col-"] {
position: static;
float: none;
- display: table-column;
-}
+ display: table-column; }
+
table td[class*="col-"],
table th[class*="col-"] {
position: static;
float: none;
- display: table-cell;
-}
+ display: table-cell; }
+
.table > thead > tr > td.active,
+.table > thead > tr > th.active,
+.table > thead > tr.active > td,
+.table > thead > tr.active > th,
.table > tbody > tr > td.active,
+.table > tbody > tr > th.active,
+.table > tbody > tr.active > td,
+.table > tbody > tr.active > th,
.table > tfoot > tr > td.active,
-.table > thead > tr > th.active,
-.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
-.table > thead > tr.active > td,
-.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
-.table > thead > tr.active > th,
-.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
- background-color: #f5f5f5;
-}
+ background-color: #f5f5f5; }
+
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
- background-color: #e8e8e8;
-}
+ background-color: #e8e8e8; }
+
.table > thead > tr > td.success,
+.table > thead > tr > th.success,
+.table > thead > tr.success > td,
+.table > thead > tr.success > th,
.table > tbody > tr > td.success,
+.table > tbody > tr > th.success,
+.table > tbody > tr.success > td,
+.table > tbody > tr.success > th,
.table > tfoot > tr > td.success,
-.table > thead > tr > th.success,
-.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
-.table > thead > tr.success > td,
-.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
-.table > thead > tr.success > th,
-.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
- background-color: #dff0d8;
-}
+ background-color: #dff0d8; }
+
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
- background-color: #d0e9c6;
-}
+ background-color: #d0e9c6; }
+
.table > thead > tr > td.info,
+.table > thead > tr > th.info,
+.table > thead > tr.info > td,
+.table > thead > tr.info > th,
.table > tbody > tr > td.info,
+.table > tbody > tr > th.info,
+.table > tbody > tr.info > td,
+.table > tbody > tr.info > th,
.table > tfoot > tr > td.info,
-.table > thead > tr > th.info,
-.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
-.table > thead > tr.info > td,
-.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
-.table > thead > tr.info > th,
-.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
- background-color: #d9edf7;
-}
+ background-color: #d9edf7; }
+
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
- background-color: #c4e3f3;
-}
+ background-color: #c4e3f3; }
+
.table > thead > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > thead > tr.warning > th,
.table > tbody > tr > td.warning,
+.table > tbody > tr > th.warning,
+.table > tbody > tr.warning > td,
+.table > tbody > tr.warning > th,
.table > tfoot > tr > td.warning,
-.table > thead > tr > th.warning,
-.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
-.table > thead > tr.warning > td,
-.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
-.table > thead > tr.warning > th,
-.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
- background-color: #fcf8e3;
-}
+ background-color: #fcf8e3; }
+
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
- background-color: #faf2cc;
-}
+ background-color: #faf2cc; }
+
.table > thead > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > thead > tr.danger > th,
.table > tbody > tr > td.danger,
+.table > tbody > tr > th.danger,
+.table > tbody > tr.danger > td,
+.table > tbody > tr.danger > th,
.table > tfoot > tr > td.danger,
-.table > thead > tr > th.danger,
-.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
-.table > thead > tr.danger > td,
-.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
-.table > thead > tr.danger > th,
-.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
- background-color: #f2dede;
-}
+ background-color: #f2dede; }
+
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
- background-color: #ebcccc;
-}
+ background-color: #ebcccc; }
+
.table-responsive {
overflow-x: auto;
- min-height: 0.01%;
-}
-@media screen and (max-width: 767px) {
- .table-responsive {
- width: 100%;
- margin-bottom: 15px;
- overflow-y: hidden;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- border: 1px solid #dddddd;
- }
- .table-responsive > .table {
- margin-bottom: 0;
- }
- .table-responsive > .table > thead > tr > th,
- .table-responsive > .table > tbody > tr > th,
- .table-responsive > .table > tfoot > tr > th,
- .table-responsive > .table > thead > tr > td,
- .table-responsive > .table > tbody > tr > td,
- .table-responsive > .table > tfoot > tr > td {
- white-space: nowrap;
- }
- .table-responsive > .table-bordered {
- border: 0;
- }
- .table-responsive > .table-bordered > thead > tr > th:first-child,
- .table-responsive > .table-bordered > tbody > tr > th:first-child,
- .table-responsive > .table-bordered > tfoot > tr > th:first-child,
- .table-responsive > .table-bordered > thead > tr > td:first-child,
- .table-responsive > .table-bordered > tbody > tr > td:first-child,
- .table-responsive > .table-bordered > tfoot > tr > td:first-child {
- border-left: 0;
- }
- .table-responsive > .table-bordered > thead > tr > th:last-child,
- .table-responsive > .table-bordered > tbody > tr > th:last-child,
- .table-responsive > .table-bordered > tfoot > tr > th:last-child,
- .table-responsive > .table-bordered > thead > tr > td:last-child,
- .table-responsive > .table-bordered > tbody > tr > td:last-child,
- .table-responsive > .table-bordered > tfoot > tr > td:last-child {
- border-right: 0;
- }
- .table-responsive > .table-bordered > tbody > tr:last-child > th,
- .table-responsive > .table-bordered > tfoot > tr:last-child > th,
- .table-responsive > .table-bordered > tbody > tr:last-child > td,
- .table-responsive > .table-bordered > tfoot > tr:last-child > td {
- border-bottom: 0;
- }
-}
+ min-height: 0.01%; }
+ @media screen and (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 15px;
+ overflow-y: hidden;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd; }
+ .table-responsive > .table {
+ margin-bottom: 0; }
+ .table-responsive > .table > thead > tr > th,
+ .table-responsive > .table > thead > tr > td,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > th,
+ .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap; }
+ .table-responsive > .table-bordered {
+ border: 0; }
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0; }
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0; }
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0; } }
+
fieldset {
padding: 0;
margin: 0;
border: 0;
- min-width: 0;
-}
+ min-width: 0; }
+
legend {
display: block;
width: 100%;
@@ -2284,229 +2257,313 @@
line-height: inherit;
color: #333333;
border: 0;
- border-bottom: 1px solid #e5e5e5;
-}
+ border-bottom: 1px solid #e5e5e5; }
+
label {
display: inline-block;
max-width: 100%;
margin-bottom: 5px;
- font-weight: bold;
-}
+ font-weight: bold; }
+
input[type="search"] {
- box-sizing: border-box;
-}
+ box-sizing: border-box; }
+
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px \9;
- line-height: normal;
-}
+ line-height: normal; }
+
input[type="file"] {
- display: block;
-}
+ display: block; }
+
input[type="range"] {
display: block;
- width: 100%;
-}
+ width: 100%; }
+
select[multiple],
select[size] {
- height: auto;
-}
+ height: auto; }
+
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
+ outline-offset: -2px; }
+
output {
display: block;
padding-top: 7px;
font-size: 14px;
- line-height: 1.42857143;
- color: #555555;
-}
+ line-height: 1.42857;
+ color: #555555; }
+
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
- line-height: 1.42857143;
+ line-height: 1.42857;
color: #555555;
- background-color: #ffffff;
+ background-color: #fff;
background-image: none;
- border: 1px solid #cccccc;
+ border: 1px solid #ccc;
border-radius: 4px;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-}
-.form-control:focus {
- border-color: #66afe9;
- outline: 0;
- box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
-}
-.form-control::-moz-placeholder {
- color: #999999;
- opacity: 1;
-}
-.form-control:-ms-input-placeholder {
- color: #999999;
-}
-.form-control::-webkit-input-placeholder {
- color: #999999;
-}
-.form-control[disabled],
-.form-control[readonly],
-fieldset[disabled] .form-control {
- cursor: not-allowed;
- background-color: #eeeeee;
- opacity: 1;
-}
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }
+ .form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }
+ .form-control::-moz-placeholder {
+ color: #999;
+ opacity: 1; }
+ .form-control:-ms-input-placeholder {
+ color: #999; }
+ .form-control::-webkit-input-placeholder {
+ color: #999; }
+ .form-control[disabled],
+ .form-control[readonly],
+ fieldset[disabled] .form-control {
+ background-color: #eeeeee;
+ opacity: 1; }
+ .form-control[disabled],
+ fieldset[disabled] .form-control {
+ cursor: not-allowed; }
+
textarea.form-control {
- height: auto;
-}
+ height: auto; }
+
input[type="search"] {
- -webkit-appearance: none;
-}
+ -webkit-appearance: none; }
+
@media screen and (-webkit-min-device-pixel-ratio: 0) {
- input[type="date"],
- input[type="time"],
- input[type="datetime-local"],
- input[type="month"] {
- line-height: 34px;
- }
+ input[type="date"].form-control,
+ input[type="time"].form-control,
+ input[type="datetime-local"].form-control,
+ input[type="month"].form-control {
+ line-height: 34px; }
input[type="date"].input-sm,
+ .input-group-sm > input[type="date"].form-control,
+ .input-group-sm > input[type="date"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="date"].btn,
+ .input-group-sm input[type="date"],
input[type="time"].input-sm,
+ .input-group-sm > input[type="time"].form-control,
+ .input-group-sm > input[type="time"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="time"].btn,
+ .input-group-sm input[type="time"],
input[type="datetime-local"].input-sm,
- input[type="month"].input-sm {
- line-height: 30px;
- }
+ .input-group-sm > input[type="datetime-local"].form-control,
+ .input-group-sm > input[type="datetime-local"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="datetime-local"].btn,
+ .input-group-sm input[type="datetime-local"],
+ input[type="month"].input-sm,
+ .input-group-sm > input[type="month"].form-control,
+ .input-group-sm > input[type="month"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="month"].btn,
+ .input-group-sm input[type="month"] {
+ line-height: 30px; }
input[type="date"].input-lg,
+ .input-group-lg > input[type="date"].form-control,
+ .input-group-lg > input[type="date"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="date"].btn,
+ .input-group-lg input[type="date"],
input[type="time"].input-lg,
+ .input-group-lg > input[type="time"].form-control,
+ .input-group-lg > input[type="time"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="time"].btn,
+ .input-group-lg input[type="time"],
input[type="datetime-local"].input-lg,
- input[type="month"].input-lg {
- line-height: 46px;
- }
-}
+ .input-group-lg > input[type="datetime-local"].form-control,
+ .input-group-lg > input[type="datetime-local"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="datetime-local"].btn,
+ .input-group-lg input[type="datetime-local"],
+ input[type="month"].input-lg,
+ .input-group-lg > input[type="month"].form-control,
+ .input-group-lg > input[type="month"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="month"].btn,
+ .input-group-lg input[type="month"] {
+ line-height: 46px; } }
+
.form-group {
- margin-bottom: 15px;
-}
+ margin-bottom: 15px; }
+
.radio,
.checkbox {
position: relative;
display: block;
margin-top: 10px;
- margin-bottom: 10px;
-}
-.radio label,
-.checkbox label {
- min-height: 20px;
- padding-left: 20px;
- margin-bottom: 0;
- font-weight: normal;
- cursor: pointer;
-}
+ margin-bottom: 10px; }
+ .radio label,
+ .checkbox label {
+ min-height: 20px;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer; }
+
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
position: absolute;
margin-left: -20px;
- margin-top: 4px \9;
-}
+ margin-top: 4px \9; }
+
.radio + .radio,
.checkbox + .checkbox {
- margin-top: -5px;
-}
+ margin-top: -5px; }
+
.radio-inline,
.checkbox-inline {
+ position: relative;
display: inline-block;
padding-left: 20px;
margin-bottom: 0;
vertical-align: middle;
font-weight: normal;
- cursor: pointer;
-}
+ cursor: pointer; }
+
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
margin-top: 0;
- margin-left: 10px;
-}
+ margin-left: 10px; }
+
input[type="radio"][disabled],
-input[type="checkbox"][disabled],
input[type="radio"].disabled,
+fieldset[disabled] input[type="radio"],
+input[type="checkbox"][disabled],
input[type="checkbox"].disabled,
-fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
- cursor: not-allowed;
-}
+ cursor: not-allowed; }
+
.radio-inline.disabled,
+fieldset[disabled] .radio-inline,
.checkbox-inline.disabled,
-fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
- cursor: not-allowed;
-}
+ cursor: not-allowed; }
+
.radio.disabled label,
+fieldset[disabled] .radio label,
.checkbox.disabled label,
-fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
- cursor: not-allowed;
-}
+ cursor: not-allowed; }
+
.form-control-static {
padding-top: 7px;
padding-bottom: 7px;
margin-bottom: 0;
-}
-.form-control-static.input-lg,
-.form-control-static.input-sm {
- padding-left: 0;
- padding-right: 0;
-}
-.input-sm,
+ min-height: 34px; }
+ .form-control-static.input-lg,
+ .input-group-lg > .form-control-static.form-control,
+ .input-group-lg > .form-control-static.input-group-addon,
+ .input-group-lg > .input-group-btn > .form-control-static.btn,
+ .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control,
+ .input-group-sm > .form-control-static.input-group-addon,
+ .input-group-sm > .input-group-btn > .form-control-static.btn {
+ padding-left: 0;
+ padding-right: 0; }
+
+.input-sm, .input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px; }
+
+select.input-sm, .input-group-sm > select.form-control,
+.input-group-sm > select.input-group-addon,
+.input-group-sm > .input-group-btn > select.btn {
+ height: 30px;
+ line-height: 30px; }
+
+textarea.input-sm,
+.input-group-sm > textarea.form-control,
+.input-group-sm > textarea.input-group-addon,
+.input-group-sm > .input-group-btn > textarea.btn,
+select[multiple].input-sm, .input-group-sm > select[multiple].form-control,
+.input-group-sm > select[multiple].input-group-addon,
+.input-group-sm > .input-group-btn > select[multiple].btn {
+ height: auto; }
+
.form-group-sm .form-control {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
- border-radius: 3px;
-}
-select.input-sm,
-select.form-group-sm .form-control {
+ border-radius: 3px; }
+
+.form-group-sm select.form-control {
+ height: 30px;
+ line-height: 30px; }
+
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
+ height: auto; }
+
+.form-group-sm .form-control-static {
height: 30px;
- line-height: 30px;
-}
-textarea.input-sm,
-textarea.form-group-sm .form-control,
-select[multiple].input-sm,
-select[multiple].form-group-sm .form-control {
- height: auto;
-}
-.input-lg,
+ min-height: 32px;
+ padding: 6px 10px;
+ font-size: 12px;
+ line-height: 1.5; }
+
+.input-lg, .input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33333;
+ border-radius: 6px; }
+
+select.input-lg, .input-group-lg > select.form-control,
+.input-group-lg > select.input-group-addon,
+.input-group-lg > .input-group-btn > select.btn {
+ height: 46px;
+ line-height: 46px; }
+
+textarea.input-lg,
+.input-group-lg > textarea.form-control,
+.input-group-lg > textarea.input-group-addon,
+.input-group-lg > .input-group-btn > textarea.btn,
+select[multiple].input-lg, .input-group-lg > select[multiple].form-control,
+.input-group-lg > select[multiple].input-group-addon,
+.input-group-lg > .input-group-btn > select[multiple].btn {
+ height: auto; }
+
.form-group-lg .form-control {
height: 46px;
padding: 10px 16px;
font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
-}
-select.input-lg,
-select.form-group-lg .form-control {
+ line-height: 1.33333;
+ border-radius: 6px; }
+
+.form-group-lg select.form-control {
height: 46px;
- line-height: 46px;
-}
-textarea.input-lg,
-textarea.form-group-lg .form-control,
-select[multiple].input-lg,
-select[multiple].form-group-lg .form-control {
- height: auto;
-}
+ line-height: 46px; }
+
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
+ height: auto; }
+
+.form-group-lg .form-control-static {
+ height: 46px;
+ min-height: 38px;
+ padding: 11px 16px;
+ font-size: 18px;
+ line-height: 1.33333; }
+
.has-feedback {
- position: relative;
-}
-.has-feedback .form-control {
- padding-right: 42.5px;
-}
+ position: relative; }
+ .has-feedback .form-control {
+ padding-right: 42.5px; }
+
.form-control-feedback {
position: absolute;
top: 0;
@@ -2517,18 +2574,28 @@
height: 34px;
line-height: 34px;
text-align: center;
- pointer-events: none;
-}
-.input-lg + .form-control-feedback {
+ pointer-events: none; }
+
+.input-lg + .form-control-feedback,
+.input-group-lg > .form-control + .form-control-feedback,
+.input-group-lg > .input-group-addon + .form-control-feedback,
+.input-group-lg > .input-group-btn > .btn + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
width: 46px;
height: 46px;
- line-height: 46px;
-}
-.input-sm + .form-control-feedback {
+ line-height: 46px; }
+
+.input-sm + .form-control-feedback,
+.input-group-sm > .form-control + .form-control-feedback,
+.input-group-sm > .input-group-addon + .form-control-feedback,
+.input-group-sm > .input-group-btn > .btn + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
width: 30px;
height: 30px;
- line-height: 30px;
-}
+ line-height: 30px; }
+
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
@@ -2539,24 +2606,23 @@
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
- color: #3c763d;
-}
+ color: #3c763d; }
+
.has-success .form-control {
border-color: #3c763d;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-success .form-control:focus {
- border-color: #2b542c;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
-}
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
+ .has-success .form-control:focus {
+ border-color: #2b542c;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; }
+
.has-success .input-group-addon {
color: #3c763d;
border-color: #3c763d;
- background-color: #dff0d8;
-}
+ background-color: #dff0d8; }
+
.has-success .form-control-feedback {
- color: #3c763d;
-}
+ color: #3c763d; }
+
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
@@ -2567,24 +2633,23 @@
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
- color: #8a6d3b;
-}
+ color: #8a6d3b; }
+
.has-warning .form-control {
border-color: #8a6d3b;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-warning .form-control:focus {
- border-color: #66512c;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
-}
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
+ .has-warning .form-control:focus {
+ border-color: #66512c;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; }
+
.has-warning .input-group-addon {
color: #8a6d3b;
border-color: #8a6d3b;
- background-color: #fcf8e3;
-}
+ background-color: #fcf8e3; }
+
.has-warning .form-control-feedback {
- color: #8a6d3b;
-}
+ color: #8a6d3b; }
+
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
@@ -2595,554 +2660,621 @@
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
- color: #a94442;
-}
+ color: #a94442; }
+
.has-error .form-control {
border-color: #a94442;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-error .form-control:focus {
- border-color: #843534;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
-}
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
+ .has-error .form-control:focus {
+ border-color: #843534;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; }
+
.has-error .input-group-addon {
color: #a94442;
border-color: #a94442;
- background-color: #f2dede;
-}
+ background-color: #f2dede; }
+
.has-error .form-control-feedback {
- color: #a94442;
-}
+ color: #a94442; }
+
.has-feedback label ~ .form-control-feedback {
- top: 25px;
-}
+ top: 25px; }
+
.has-feedback label.sr-only ~ .form-control-feedback {
- top: 0;
-}
+ top: 0; }
+
.help-block {
display: block;
margin-top: 5px;
margin-bottom: 10px;
- color: #737373;
-}
+ color: #737373; }
+
@media (min-width: 768px) {
.form-inline .form-group {
display: inline-block;
margin-bottom: 0;
- vertical-align: middle;
- }
+ vertical-align: middle; }
.form-inline .form-control {
display: inline-block;
width: auto;
- vertical-align: middle;
- }
+ vertical-align: middle; }
.form-inline .form-control-static {
- display: inline-block;
- }
+ display: inline-block; }
.form-inline .input-group {
display: inline-table;
- vertical-align: middle;
- }
- .form-inline .input-group .input-group-addon,
- .form-inline .input-group .input-group-btn,
- .form-inline .input-group .form-control {
- width: auto;
- }
+ vertical-align: middle; }
+ .form-inline .input-group .input-group-addon,
+ .form-inline .input-group .input-group-btn,
+ .form-inline .input-group .form-control {
+ width: auto; }
.form-inline .input-group > .form-control {
- width: 100%;
- }
+ width: 100%; }
.form-inline .control-label {
margin-bottom: 0;
- vertical-align: middle;
- }
+ vertical-align: middle; }
.form-inline .radio,
.form-inline .checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio label,
- .form-inline .checkbox label {
- padding-left: 0;
- }
+ vertical-align: middle; }
+ .form-inline .radio label,
+ .form-inline .checkbox label {
+ padding-left: 0; }
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
position: relative;
- margin-left: 0;
- }
+ margin-left: 0; }
.form-inline .has-feedback .form-control-feedback {
- top: 0;
- }
-}
+ top: 0; } }
+
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
margin-top: 0;
margin-bottom: 0;
- padding-top: 7px;
-}
+ padding-top: 7px; }
+
.form-horizontal .radio,
.form-horizontal .checkbox {
- min-height: 27px;
-}
+ min-height: 27px; }
+
.form-horizontal .form-group {
margin-left: -15px;
- margin-right: -15px;
-}
+ margin-right: -15px; }
+ .form-horizontal .form-group:before,
+ .form-horizontal .form-group:after {
+ content: " ";
+ display: table; }
+ .form-horizontal .form-group:after {
+ clear: both; }
+
@media (min-width: 768px) {
.form-horizontal .control-label {
text-align: right;
margin-bottom: 0;
- padding-top: 7px;
- }
-}
+ padding-top: 7px; } }
+
.form-horizontal .has-feedback .form-control-feedback {
- right: 15px;
-}
+ right: 15px; }
+
@media (min-width: 768px) {
.form-horizontal .form-group-lg .control-label {
- padding-top: 14.3px;
- }
-}
+ padding-top: 14.33333px;
+ font-size: 18px; } }
+
@media (min-width: 768px) {
.form-horizontal .form-group-sm .control-label {
padding-top: 6px;
- }
-}
+ font-size: 12px; } }
+
.btn {
display: inline-block;
margin-bottom: 0;
- font-weight: 300;
+ font-weight: normal;
text-align: center;
vertical-align: middle;
-ms-touch-action: manipulation;
- touch-action: manipulation;
+ touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
padding: 6px 12px;
font-size: 14px;
- line-height: 1.42857143;
+ line-height: 1.42857;
border-radius: 4px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
- user-select: none;
-}
-.btn:focus,
-.btn:active:focus,
-.btn.active:focus,
-.btn.focus,
-.btn:active.focus,
-.btn.active.focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-.btn:hover,
-.btn:focus,
-.btn.focus {
- color: #333333;
- text-decoration: none;
-}
-.btn:active,
-.btn.active {
- outline: 0;
- background-image: none;
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
-}
-.btn.disabled,
-.btn[disabled],
-fieldset[disabled] .btn {
- cursor: not-allowed;
- pointer-events: none;
- opacity: 0.65;
- filter: alpha(opacity=65);
- box-shadow: none;
-}
+ user-select: none; }
+ .btn:focus,
+ .btn.focus,
+ .btn:active:focus,
+ .btn:active.focus,
+ .btn.active:focus,
+ .btn.active.focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px; }
+ .btn:hover,
+ .btn:focus,
+ .btn.focus {
+ color: #333;
+ text-decoration: none; }
+ .btn:active,
+ .btn.active {
+ outline: 0;
+ background-image: none;
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
+ .btn.disabled,
+ .btn[disabled],
+ fieldset[disabled] .btn {
+ cursor: not-allowed;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ box-shadow: none; }
+
+a.btn.disabled,
+fieldset[disabled] a.btn {
+ pointer-events: none; }
+
.btn-default {
- color: #333333;
- background-color: #ffffff;
- border-color: #cccccc;
-}
-.btn-default:hover,
-.btn-default:focus,
-.btn-default.focus,
-.btn-default:active,
-.btn-default.active,
-.open > .dropdown-toggle.btn-default {
- color: #333333;
- background-color: #e6e6e6;
- border-color: #adadad;
-}
-.btn-default:active,
-.btn-default.active,
-.open > .dropdown-toggle.btn-default {
- background-image: none;
-}
-.btn-default.disabled,
-.btn-default[disabled],
-fieldset[disabled] .btn-default,
-.btn-default.disabled:hover,
-.btn-default[disabled]:hover,
-fieldset[disabled] .btn-default:hover,
-.btn-default.disabled:focus,
-.btn-default[disabled]:focus,
-fieldset[disabled] .btn-default:focus,
-.btn-default.disabled.focus,
-.btn-default[disabled].focus,
-fieldset[disabled] .btn-default.focus,
-.btn-default.disabled:active,
-.btn-default[disabled]:active,
-fieldset[disabled] .btn-default:active,
-.btn-default.disabled.active,
-.btn-default[disabled].active,
-fieldset[disabled] .btn-default.active {
- background-color: #ffffff;
- border-color: #cccccc;
-}
-.btn-default .badge {
- color: #ffffff;
- background-color: #333333;
-}
+ color: #333;
+ background-color: #fff;
+ border-color: #ccc; }
+ .btn-default:focus,
+ .btn-default.focus {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #8c8c8c; }
+ .btn-default:hover {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #adadad; }
+ .btn-default:active,
+ .btn-default.active,
+ .open > .btn-default.dropdown-toggle {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #adadad; }
+ .btn-default:active:hover,
+ .btn-default:active:focus,
+ .btn-default:active.focus,
+ .btn-default.active:hover,
+ .btn-default.active:focus,
+ .btn-default.active.focus,
+ .open > .btn-default.dropdown-toggle:hover,
+ .open > .btn-default.dropdown-toggle:focus,
+ .open > .btn-default.dropdown-toggle.focus {
+ color: #333;
+ background-color: #d4d4d4;
+ border-color: #8c8c8c; }
+ .btn-default:active,
+ .btn-default.active,
+ .open > .btn-default.dropdown-toggle {
+ background-image: none; }
+ .btn-default.disabled,
+ .btn-default.disabled:hover,
+ .btn-default.disabled:focus,
+ .btn-default.disabled.focus,
+ .btn-default.disabled:active,
+ .btn-default.disabled.active,
+ .btn-default[disabled],
+ .btn-default[disabled]:hover,
+ .btn-default[disabled]:focus,
+ .btn-default[disabled].focus,
+ .btn-default[disabled]:active,
+ .btn-default[disabled].active,
+ fieldset[disabled] .btn-default,
+ fieldset[disabled] .btn-default:hover,
+ fieldset[disabled] .btn-default:focus,
+ fieldset[disabled] .btn-default.focus,
+ fieldset[disabled] .btn-default:active,
+ fieldset[disabled] .btn-default.active {
+ background-color: #fff;
+ border-color: #ccc; }
+ .btn-default .badge {
+ color: #fff;
+ background-color: #333; }
+
.btn-primary {
- color: #ffffff;
+ color: #fff;
background-color: #337ab7;
- border-color: #2e6da4;
-}
-.btn-primary:hover,
-.btn-primary:focus,
-.btn-primary.focus,
-.btn-primary:active,
-.btn-primary.active,
-.open > .dropdown-toggle.btn-primary {
- color: #ffffff;
- background-color: #286090;
- border-color: #204d74;
-}
-.btn-primary:active,
-.btn-primary.active,
-.open > .dropdown-toggle.btn-primary {
- background-image: none;
-}
-.btn-primary.disabled,
-.btn-primary[disabled],
-fieldset[disabled] .btn-primary,
-.btn-primary.disabled:hover,
-.btn-primary[disabled]:hover,
-fieldset[disabled] .btn-primary:hover,
-.btn-primary.disabled:focus,
-.btn-primary[disabled]:focus,
-fieldset[disabled] .btn-primary:focus,
-.btn-primary.disabled.focus,
-.btn-primary[disabled].focus,
-fieldset[disabled] .btn-primary.focus,
-.btn-primary.disabled:active,
-.btn-primary[disabled]:active,
-fieldset[disabled] .btn-primary:active,
-.btn-primary.disabled.active,
-.btn-primary[disabled].active,
-fieldset[disabled] .btn-primary.active {
- background-color: #337ab7;
- border-color: #2e6da4;
-}
-.btn-primary .badge {
- color: #337ab7;
- background-color: #ffffff;
-}
+ border-color: #2e6da4; }
+ .btn-primary:focus,
+ .btn-primary.focus {
+ color: #fff;
+ background-color: #286090;
+ border-color: #122b40; }
+ .btn-primary:hover {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74; }
+ .btn-primary:active,
+ .btn-primary.active,
+ .open > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74; }
+ .btn-primary:active:hover,
+ .btn-primary:active:focus,
+ .btn-primary:active.focus,
+ .btn-primary.active:hover,
+ .btn-primary.active:focus,
+ .btn-primary.active.focus,
+ .open > .btn-primary.dropdown-toggle:hover,
+ .open > .btn-primary.dropdown-toggle:focus,
+ .open > .btn-primary.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #204d74;
+ border-color: #122b40; }
+ .btn-primary:active,
+ .btn-primary.active,
+ .open > .btn-primary.dropdown-toggle {
+ background-image: none; }
+ .btn-primary.disabled,
+ .btn-primary.disabled:hover,
+ .btn-primary.disabled:focus,
+ .btn-primary.disabled.focus,
+ .btn-primary.disabled:active,
+ .btn-primary.disabled.active,
+ .btn-primary[disabled],
+ .btn-primary[disabled]:hover,
+ .btn-primary[disabled]:focus,
+ .btn-primary[disabled].focus,
+ .btn-primary[disabled]:active,
+ .btn-primary[disabled].active,
+ fieldset[disabled] .btn-primary,
+ fieldset[disabled] .btn-primary:hover,
+ fieldset[disabled] .btn-primary:focus,
+ fieldset[disabled] .btn-primary.focus,
+ fieldset[disabled] .btn-primary:active,
+ fieldset[disabled] .btn-primary.active {
+ background-color: #337ab7;
+ border-color: #2e6da4; }
+ .btn-primary .badge {
+ color: #337ab7;
+ background-color: #fff; }
+
.btn-success {
- color: #ffffff;
+ color: #fff;
background-color: #5cb85c;
- border-color: #4cae4c;
-}
-.btn-success:hover,
-.btn-success:focus,
-.btn-success.focus,
-.btn-success:active,
-.btn-success.active,
-.open > .dropdown-toggle.btn-success {
- color: #ffffff;
- background-color: #449d44;
- border-color: #398439;
-}
-.btn-success:active,
-.btn-success.active,
-.open > .dropdown-toggle.btn-success {
- background-image: none;
-}
-.btn-success.disabled,
-.btn-success[disabled],
-fieldset[disabled] .btn-success,
-.btn-success.disabled:hover,
-.btn-success[disabled]:hover,
-fieldset[disabled] .btn-success:hover,
-.btn-success.disabled:focus,
-.btn-success[disabled]:focus,
-fieldset[disabled] .btn-success:focus,
-.btn-success.disabled.focus,
-.btn-success[disabled].focus,
-fieldset[disabled] .btn-success.focus,
-.btn-success.disabled:active,
-.btn-success[disabled]:active,
-fieldset[disabled] .btn-success:active,
-.btn-success.disabled.active,
-.btn-success[disabled].active,
-fieldset[disabled] .btn-success.active {
- background-color: #5cb85c;
- border-color: #4cae4c;
-}
-.btn-success .badge {
- color: #5cb85c;
- background-color: #ffffff;
-}
+ border-color: #4cae4c; }
+ .btn-success:focus,
+ .btn-success.focus {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #255625; }
+ .btn-success:hover {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #398439; }
+ .btn-success:active,
+ .btn-success.active,
+ .open > .btn-success.dropdown-toggle {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #398439; }
+ .btn-success:active:hover,
+ .btn-success:active:focus,
+ .btn-success:active.focus,
+ .btn-success.active:hover,
+ .btn-success.active:focus,
+ .btn-success.active.focus,
+ .open > .btn-success.dropdown-toggle:hover,
+ .open > .btn-success.dropdown-toggle:focus,
+ .open > .btn-success.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #398439;
+ border-color: #255625; }
+ .btn-success:active,
+ .btn-success.active,
+ .open > .btn-success.dropdown-toggle {
+ background-image: none; }
+ .btn-success.disabled,
+ .btn-success.disabled:hover,
+ .btn-success.disabled:focus,
+ .btn-success.disabled.focus,
+ .btn-success.disabled:active,
+ .btn-success.disabled.active,
+ .btn-success[disabled],
+ .btn-success[disabled]:hover,
+ .btn-success[disabled]:focus,
+ .btn-success[disabled].focus,
+ .btn-success[disabled]:active,
+ .btn-success[disabled].active,
+ fieldset[disabled] .btn-success,
+ fieldset[disabled] .btn-success:hover,
+ fieldset[disabled] .btn-success:focus,
+ fieldset[disabled] .btn-success.focus,
+ fieldset[disabled] .btn-success:active,
+ fieldset[disabled] .btn-success.active {
+ background-color: #5cb85c;
+ border-color: #4cae4c; }
+ .btn-success .badge {
+ color: #5cb85c;
+ background-color: #fff; }
+
.btn-info {
- color: #ffffff;
+ color: #fff;
background-color: #5bc0de;
- border-color: #46b8da;
-}
-.btn-info:hover,
-.btn-info:focus,
-.btn-info.focus,
-.btn-info:active,
-.btn-info.active,
-.open > .dropdown-toggle.btn-info {
- color: #ffffff;
- background-color: #31b0d5;
- border-color: #269abc;
-}
-.btn-info:active,
-.btn-info.active,
-.open > .dropdown-toggle.btn-info {
- background-image: none;
-}
-.btn-info.disabled,
-.btn-info[disabled],
-fieldset[disabled] .btn-info,
-.btn-info.disabled:hover,
-.btn-info[disabled]:hover,
-fieldset[disabled] .btn-info:hover,
-.btn-info.disabled:focus,
-.btn-info[disabled]:focus,
-fieldset[disabled] .btn-info:focus,
-.btn-info.disabled.focus,
-.btn-info[disabled].focus,
-fieldset[disabled] .btn-info.focus,
-.btn-info.disabled:active,
-.btn-info[disabled]:active,
-fieldset[disabled] .btn-info:active,
-.btn-info.disabled.active,
-.btn-info[disabled].active,
-fieldset[disabled] .btn-info.active {
- background-color: #5bc0de;
- border-color: #46b8da;
-}
-.btn-info .badge {
- color: #5bc0de;
- background-color: #ffffff;
-}
+ border-color: #46b8da; }
+ .btn-info:focus,
+ .btn-info.focus {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #1b6d85; }
+ .btn-info:hover {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #269abc; }
+ .btn-info:active,
+ .btn-info.active,
+ .open > .btn-info.dropdown-toggle {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #269abc; }
+ .btn-info:active:hover,
+ .btn-info:active:focus,
+ .btn-info:active.focus,
+ .btn-info.active:hover,
+ .btn-info.active:focus,
+ .btn-info.active.focus,
+ .open > .btn-info.dropdown-toggle:hover,
+ .open > .btn-info.dropdown-toggle:focus,
+ .open > .btn-info.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #269abc;
+ border-color: #1b6d85; }
+ .btn-info:active,
+ .btn-info.active,
+ .open > .btn-info.dropdown-toggle {
+ background-image: none; }
+ .btn-info.disabled,
+ .btn-info.disabled:hover,
+ .btn-info.disabled:focus,
+ .btn-info.disabled.focus,
+ .btn-info.disabled:active,
+ .btn-info.disabled.active,
+ .btn-info[disabled],
+ .btn-info[disabled]:hover,
+ .btn-info[disabled]:focus,
+ .btn-info[disabled].focus,
+ .btn-info[disabled]:active,
+ .btn-info[disabled].active,
+ fieldset[disabled] .btn-info,
+ fieldset[disabled] .btn-info:hover,
+ fieldset[disabled] .btn-info:focus,
+ fieldset[disabled] .btn-info.focus,
+ fieldset[disabled] .btn-info:active,
+ fieldset[disabled] .btn-info.active {
+ background-color: #5bc0de;
+ border-color: #46b8da; }
+ .btn-info .badge {
+ color: #5bc0de;
+ background-color: #fff; }
+
.btn-warning {
- color: #ffffff;
+ color: #fff;
background-color: #f0ad4e;
- border-color: #eea236;
-}
-.btn-warning:hover,
-.btn-warning:focus,
-.btn-warning.focus,
-.btn-warning:active,
-.btn-warning.active,
-.open > .dropdown-toggle.btn-warning {
- color: #ffffff;
- background-color: #ec971f;
- border-color: #d58512;
-}
-.btn-warning:active,
-.btn-warning.active,
-.open > .dropdown-toggle.btn-warning {
- background-image: none;
-}
-.btn-warning.disabled,
-.btn-warning[disabled],
-fieldset[disabled] .btn-warning,
-.btn-warning.disabled:hover,
-.btn-warning[disabled]:hover,
-fieldset[disabled] .btn-warning:hover,
-.btn-warning.disabled:focus,
-.btn-warning[disabled]:focus,
-fieldset[disabled] .btn-warning:focus,
-.btn-warning.disabled.focus,
-.btn-warning[disabled].focus,
-fieldset[disabled] .btn-warning.focus,
-.btn-warning.disabled:active,
-.btn-warning[disabled]:active,
-fieldset[disabled] .btn-warning:active,
-.btn-warning.disabled.active,
-.btn-warning[disabled].active,
-fieldset[disabled] .btn-warning.active {
- background-color: #f0ad4e;
- border-color: #eea236;
-}
-.btn-warning .badge {
- color: #f0ad4e;
- background-color: #ffffff;
-}
+ border-color: #eea236; }
+ .btn-warning:focus,
+ .btn-warning.focus {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #985f0d; }
+ .btn-warning:hover {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #d58512; }
+ .btn-warning:active,
+ .btn-warning.active,
+ .open > .btn-warning.dropdown-toggle {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #d58512; }
+ .btn-warning:active:hover,
+ .btn-warning:active:focus,
+ .btn-warning:active.focus,
+ .btn-warning.active:hover,
+ .btn-warning.active:focus,
+ .btn-warning.active.focus,
+ .open > .btn-warning.dropdown-toggle:hover,
+ .open > .btn-warning.dropdown-toggle:focus,
+ .open > .btn-warning.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #d58512;
+ border-color: #985f0d; }
+ .btn-warning:active,
+ .btn-warning.active,
+ .open > .btn-warning.dropdown-toggle {
+ background-image: none; }
+ .btn-warning.disabled,
+ .btn-warning.disabled:hover,
+ .btn-warning.disabled:focus,
+ .btn-warning.disabled.focus,
+ .btn-warning.disabled:active,
+ .btn-warning.disabled.active,
+ .btn-warning[disabled],
+ .btn-warning[disabled]:hover,
+ .btn-warning[disabled]:focus,
+ .btn-warning[disabled].focus,
+ .btn-warning[disabled]:active,
+ .btn-warning[disabled].active,
+ fieldset[disabled] .btn-warning,
+ fieldset[disabled] .btn-warning:hover,
+ fieldset[disabled] .btn-warning:focus,
+ fieldset[disabled] .btn-warning.focus,
+ fieldset[disabled] .btn-warning:active,
+ fieldset[disabled] .btn-warning.active {
+ background-color: #f0ad4e;
+ border-color: #eea236; }
+ .btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #fff; }
+
.btn-danger {
- color: #ffffff;
+ color: #fff;
background-color: #d9534f;
- border-color: #d43f3a;
-}
-.btn-danger:hover,
-.btn-danger:focus,
-.btn-danger.focus,
-.btn-danger:active,
-.btn-danger.active,
-.open > .dropdown-toggle.btn-danger {
- color: #ffffff;
- background-color: #c9302c;
- border-color: #ac2925;
-}
-.btn-danger:active,
-.btn-danger.active,
-.open > .dropdown-toggle.btn-danger {
- background-image: none;
-}
-.btn-danger.disabled,
-.btn-danger[disabled],
-fieldset[disabled] .btn-danger,
-.btn-danger.disabled:hover,
-.btn-danger[disabled]:hover,
-fieldset[disabled] .btn-danger:hover,
-.btn-danger.disabled:focus,
-.btn-danger[disabled]:focus,
-fieldset[disabled] .btn-danger:focus,
-.btn-danger.disabled.focus,
-.btn-danger[disabled].focus,
-fieldset[disabled] .btn-danger.focus,
-.btn-danger.disabled:active,
-.btn-danger[disabled]:active,
-fieldset[disabled] .btn-danger:active,
-.btn-danger.disabled.active,
-.btn-danger[disabled].active,
-fieldset[disabled] .btn-danger.active {
- background-color: #d9534f;
- border-color: #d43f3a;
-}
-.btn-danger .badge {
- color: #d9534f;
- background-color: #ffffff;
-}
+ border-color: #d43f3a; }
+ .btn-danger:focus,
+ .btn-danger.focus {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #761c19; }
+ .btn-danger:hover {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925; }
+ .btn-danger:active,
+ .btn-danger.active,
+ .open > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925; }
+ .btn-danger:active:hover,
+ .btn-danger:active:focus,
+ .btn-danger:active.focus,
+ .btn-danger.active:hover,
+ .btn-danger.active:focus,
+ .btn-danger.active.focus,
+ .open > .btn-danger.dropdown-toggle:hover,
+ .open > .btn-danger.dropdown-toggle:focus,
+ .open > .btn-danger.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #ac2925;
+ border-color: #761c19; }
+ .btn-danger:active,
+ .btn-danger.active,
+ .open > .btn-danger.dropdown-toggle {
+ background-image: none; }
+ .btn-danger.disabled,
+ .btn-danger.disabled:hover,
+ .btn-danger.disabled:focus,
+ .btn-danger.disabled.focus,
+ .btn-danger.disabled:active,
+ .btn-danger.disabled.active,
+ .btn-danger[disabled],
+ .btn-danger[disabled]:hover,
+ .btn-danger[disabled]:focus,
+ .btn-danger[disabled].focus,
+ .btn-danger[disabled]:active,
+ .btn-danger[disabled].active,
+ fieldset[disabled] .btn-danger,
+ fieldset[disabled] .btn-danger:hover,
+ fieldset[disabled] .btn-danger:focus,
+ fieldset[disabled] .btn-danger.focus,
+ fieldset[disabled] .btn-danger:active,
+ fieldset[disabled] .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d43f3a; }
+ .btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff; }
+
.btn-link {
color: #337ab7;
font-weight: normal;
- border-radius: 0;
-}
-.btn-link,
-.btn-link:active,
-.btn-link.active,
-.btn-link[disabled],
-fieldset[disabled] .btn-link {
- background-color: transparent;
- box-shadow: none;
-}
-.btn-link,
-.btn-link:hover,
-.btn-link:focus,
-.btn-link:active {
- border-color: transparent;
-}
-.btn-link:hover,
-.btn-link:focus {
- color: #23527c;
- text-decoration: underline;
- background-color: transparent;
-}
-.btn-link[disabled]:hover,
-fieldset[disabled] .btn-link:hover,
-.btn-link[disabled]:focus,
-fieldset[disabled] .btn-link:focus {
- color: #777777;
- text-decoration: none;
-}
-.btn-lg,
-.btn-group-lg > .btn {
+ border-radius: 0; }
+ .btn-link,
+ .btn-link:active,
+ .btn-link.active,
+ .btn-link[disabled],
+ fieldset[disabled] .btn-link {
+ background-color: transparent;
+ box-shadow: none; }
+ .btn-link,
+ .btn-link:hover,
+ .btn-link:focus,
+ .btn-link:active {
+ border-color: transparent; }
+ .btn-link:hover,
+ .btn-link:focus {
+ color: #23527c;
+ text-decoration: underline;
+ background-color: transparent; }
+ .btn-link[disabled]:hover,
+ .btn-link[disabled]:focus,
+ fieldset[disabled] .btn-link:hover,
+ fieldset[disabled] .btn-link:focus {
+ color: #777777;
+ text-decoration: none; }
+
+.btn-lg, .btn-group-lg > .btn {
padding: 10px 16px;
font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
-}
-.btn-sm,
-.btn-group-sm > .btn {
+ line-height: 1.33333;
+ border-radius: 6px; }
+
+.btn-sm, .btn-group-sm > .btn {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
- border-radius: 3px;
-}
-.btn-xs,
-.btn-group-xs > .btn {
+ border-radius: 3px; }
+
+.btn-xs, .btn-group-xs > .btn {
padding: 1px 5px;
font-size: 12px;
line-height: 1.5;
- border-radius: 3px;
-}
+ border-radius: 3px; }
+
.btn-block {
display: block;
- width: 100%;
-}
+ width: 100%; }
+
.btn-block + .btn-block {
- margin-top: 5px;
-}
+ margin-top: 5px; }
+
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
- width: 100%;
-}
+ width: 100%; }
+
.fade {
opacity: 0;
- transition: opacity 0.15s linear;
-}
-.fade.in {
- opacity: 1;
-}
+ transition: opacity 0.15s linear; }
+ .fade.in {
+ opacity: 1; }
+
.collapse {
- display: none;
- visibility: hidden;
-}
-.collapse.in {
- display: block;
- visibility: visible;
-}
+ display: none; }
+ .collapse.in {
+ display: block; }
+
tr.collapse.in {
- display: table-row;
-}
+ display: table-row; }
+
tbody.collapse.in {
- display: table-row-group;
-}
+ display: table-row-group; }
+
.collapsing {
position: relative;
height: 0;
overflow: hidden;
transition-property: height, visibility;
transition-duration: 0.35s;
- transition-timing-function: ease;
-}
+ transition-timing-function: ease; }
+
.caret {
display: inline-block;
width: 0;
height: 0;
margin-left: 2px;
vertical-align: middle;
- border-top: 4px solid;
+ border-top: 4px dashed;
+ border-top: 4px solid \9;
border-right: 4px solid transparent;
- border-left: 4px solid transparent;
-}
+ border-left: 4px solid transparent; }
+
+.dropup,
.dropdown {
- position: relative;
-}
+ position: relative; }
+
.dropdown-toggle:focus {
- outline: 0;
-}
+ outline: 0; }
+
.dropdown-menu {
position: absolute;
top: 100%;
@@ -3156,360 +3288,313 @@
list-style: none;
font-size: 14px;
text-align: left;
- background-color: #ffffff;
- border: 1px solid #cccccc;
+ background-color: #fff;
+ border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 4px;
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
- background-clip: padding-box;
-}
-.dropdown-menu.pull-right {
- right: 0;
- left: auto;
-}
-.dropdown-menu .divider {
- height: 1px;
- margin: 9px 0;
- overflow: hidden;
- background-color: #e5e5e5;
-}
-.dropdown-menu > li > a {
- display: block;
- padding: 3px 20px;
- clear: both;
- font-weight: normal;
- line-height: 1.42857143;
- color: #333333;
- white-space: nowrap;
-}
+ background-clip: padding-box; }
+ .dropdown-menu.pull-right {
+ right: 0;
+ left: auto; }
+ .dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5; }
+ .dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.42857;
+ color: #333333;
+ white-space: nowrap; }
+
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
text-decoration: none;
color: #262626;
- background-color: #f5f5f5;
-}
+ background-color: #f5f5f5; }
+
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
- color: #ffffff;
+ color: #fff;
text-decoration: none;
outline: 0;
- background-color: #337ab7;
-}
+ background-color: #337ab7; }
+
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
- color: #777777;
-}
+ color: #777777; }
+
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- cursor: not-allowed;
-}
+ cursor: not-allowed; }
+
.open > .dropdown-menu {
- display: block;
-}
+ display: block; }
+
.open > a {
- outline: 0;
-}
+ outline: 0; }
+
.dropdown-menu-right {
left: auto;
- right: 0;
-}
+ right: 0; }
+
.dropdown-menu-left {
left: 0;
- right: auto;
-}
+ right: auto; }
+
.dropdown-header {
display: block;
padding: 3px 20px;
font-size: 12px;
- line-height: 1.42857143;
+ line-height: 1.42857;
color: #777777;
- white-space: nowrap;
-}
+ white-space: nowrap; }
+
.dropdown-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
- z-index: 990;
-}
+ z-index: 990; }
+
.pull-right > .dropdown-menu {
right: 0;
- left: auto;
-}
+ left: auto; }
+
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
border-top: 0;
- border-bottom: 4px solid;
- content: "";
-}
+ border-bottom: 4px dashed;
+ border-bottom: 4px solid \9;
+ content: ""; }
+
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
top: auto;
bottom: 100%;
- margin-bottom: 1px;
-}
+ margin-bottom: 2px; }
+
@media (min-width: 768px) {
.navbar-right .dropdown-menu {
- left: auto;
right: 0;
- }
+ left: auto; }
.navbar-right .dropdown-menu-left {
left: 0;
- right: auto;
- }
-}
+ right: auto; } }
+
.btn-group,
.btn-group-vertical {
position: relative;
display: inline-block;
- vertical-align: middle;
-}
-.btn-group > .btn,
-.btn-group-vertical > .btn {
- position: relative;
- float: left;
-}
-.btn-group > .btn:hover,
-.btn-group-vertical > .btn:hover,
-.btn-group > .btn:focus,
-.btn-group-vertical > .btn:focus,
-.btn-group > .btn:active,
-.btn-group-vertical > .btn:active,
-.btn-group > .btn.active,
-.btn-group-vertical > .btn.active {
- z-index: 2;
-}
+ vertical-align: middle; }
+ .btn-group > .btn,
+ .btn-group-vertical > .btn {
+ position: relative;
+ float: left; }
+ .btn-group > .btn:hover,
+ .btn-group > .btn:focus,
+ .btn-group > .btn:active,
+ .btn-group > .btn.active,
+ .btn-group-vertical > .btn:hover,
+ .btn-group-vertical > .btn:focus,
+ .btn-group-vertical > .btn:active,
+ .btn-group-vertical > .btn.active {
+ z-index: 2; }
+
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
- margin-left: -1px;
-}
+ margin-left: -1px; }
+
.btn-toolbar {
- margin-left: -5px;
-}
-.btn-toolbar .btn-group,
-.btn-toolbar .input-group {
- float: left;
-}
-.btn-toolbar > .btn,
-.btn-toolbar > .btn-group,
-.btn-toolbar > .input-group {
- margin-left: 5px;
-}
+ margin-left: -5px; }
+ .btn-toolbar:before,
+ .btn-toolbar:after {
+ content: " ";
+ display: table; }
+ .btn-toolbar:after {
+ clear: both; }
+ .btn-toolbar .btn,
+ .btn-toolbar .btn-group,
+ .btn-toolbar .input-group {
+ float: left; }
+ .btn-toolbar > .btn,
+ .btn-toolbar > .btn-group,
+ .btn-toolbar > .input-group {
+ margin-left: 5px; }
+
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
- border-radius: 0;
-}
+ border-radius: 0; }
+
.btn-group > .btn:first-child {
- margin-left: 0;
-}
-.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0;
-}
+ margin-left: 0; }
+ .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
border-bottom-left-radius: 0;
- border-top-left-radius: 0;
-}
+ border-top-left-radius: 0; }
+
.btn-group > .btn-group {
- float: left;
-}
+ float: left; }
+
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
- border-radius: 0;
-}
-.btn-group > .btn-group:first-child > .btn:last-child,
-.btn-group > .btn-group:first-child > .dropdown-toggle {
+ border-radius: 0; }
+
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
- border-top-right-radius: 0;
-}
-.btn-group > .btn-group:last-child > .btn:first-child {
+ border-top-right-radius: 0; }
+
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-bottom-left-radius: 0;
- border-top-left-radius: 0;
-}
+ border-top-left-radius: 0; }
+
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
- outline: 0;
-}
+ outline: 0; }
+
.btn-group > .btn + .dropdown-toggle {
padding-left: 8px;
- padding-right: 8px;
-}
-.btn-group > .btn-lg + .dropdown-toggle {
+ padding-right: 8px; }
+
+.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle {
padding-left: 12px;
- padding-right: 12px;
-}
+ padding-right: 12px; }
+
.btn-group.open .dropdown-toggle {
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
-}
-.btn-group.open .dropdown-toggle.btn-link {
- box-shadow: none;
-}
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
+ .btn-group.open .dropdown-toggle.btn-link {
+ box-shadow: none; }
+
.btn .caret {
- margin-left: 0;
-}
-.btn-lg .caret {
+ margin-left: 0; }
+
+.btn-lg .caret, .btn-group-lg > .btn .caret {
border-width: 5px 5px 0;
- border-bottom-width: 0;
-}
-.dropup .btn-lg .caret {
- border-width: 0 5px 5px;
-}
+ border-bottom-width: 0; }
+
+.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret {
+ border-width: 0 5px 5px; }
+
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
display: block;
float: none;
width: 100%;
- max-width: 100%;
-}
+ max-width: 100%; }
+
+.btn-group-vertical > .btn-group:before,
+.btn-group-vertical > .btn-group:after {
+ content: " ";
+ display: table; }
+
+.btn-group-vertical > .btn-group:after {
+ clear: both; }
+
.btn-group-vertical > .btn-group > .btn {
- float: none;
-}
+ float: none; }
+
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
margin-top: -1px;
- margin-left: 0;
-}
+ margin-left: 0; }
+
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
- border-radius: 0;
-}
+ border-radius: 0; }
+
.btn-group-vertical > .btn:first-child:not(:last-child) {
border-top-right-radius: 4px;
border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
+ border-bottom-left-radius: 0; }
+
.btn-group-vertical > .btn:last-child:not(:first-child) {
border-bottom-left-radius: 4px;
border-top-right-radius: 0;
- border-top-left-radius: 0;
-}
+ border-top-left-radius: 0; }
+
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
- border-radius: 0;
-}
+ border-radius: 0; }
+
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
+ border-bottom-left-radius: 0; }
+
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-top-right-radius: 0;
- border-top-left-radius: 0;
-}
+ border-top-left-radius: 0; }
+
.btn-group-justified {
display: table;
width: 100%;
table-layout: fixed;
- border-collapse: separate;
-}
-.btn-group-justified > .btn,
-.btn-group-justified > .btn-group {
- float: none;
- display: table-cell;
- width: 1%;
-}
-.btn-group-justified > .btn-group .btn {
- width: 100%;
-}
-.btn-group-justified > .btn-group .dropdown-menu {
- left: auto;
-}
+ border-collapse: separate; }
+ .btn-group-justified > .btn,
+ .btn-group-justified > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%; }
+ .btn-group-justified > .btn-group .btn {
+ width: 100%; }
+ .btn-group-justified > .btn-group .dropdown-menu {
+ left: auto; }
+
[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
- pointer-events: none;
-}
+ pointer-events: none; }
+
.input-group {
position: relative;
display: table;
- border-collapse: separate;
-}
-.input-group[class*="col-"] {
- float: none;
- padding-left: 0;
- padding-right: 0;
-}
-.input-group .form-control {
- position: relative;
- z-index: 2;
- float: left;
- width: 100%;
- margin-bottom: 0;
-}
-.input-group-lg > .form-control,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn {
- height: 46px;
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
-}
-select.input-group-lg > .form-control,
-select.input-group-lg > .input-group-addon,
-select.input-group-lg > .input-group-btn > .btn {
- height: 46px;
- line-height: 46px;
-}
-textarea.input-group-lg > .form-control,
-textarea.input-group-lg > .input-group-addon,
-textarea.input-group-lg > .input-group-btn > .btn,
-select[multiple].input-group-lg > .form-control,
-select[multiple].input-group-lg > .input-group-addon,
-select[multiple].input-group-lg > .input-group-btn > .btn {
- height: auto;
-}
-.input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-select.input-group-sm > .form-control,
-select.input-group-sm > .input-group-addon,
-select.input-group-sm > .input-group-btn > .btn {
- height: 30px;
- line-height: 30px;
-}
-textarea.input-group-sm > .form-control,
-textarea.input-group-sm > .input-group-addon,
-textarea.input-group-sm > .input-group-btn > .btn,
-select[multiple].input-group-sm > .form-control,
-select[multiple].input-group-sm > .input-group-addon,
-select[multiple].input-group-sm > .input-group-btn > .btn {
- height: auto;
-}
+ border-collapse: separate; }
+ .input-group[class*="col-"] {
+ float: none;
+ padding-left: 0;
+ padding-right: 0; }
+ .input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0; }
+
.input-group-addon,
.input-group-btn,
.input-group .form-control {
- display: table-cell;
-}
-.input-group-addon:not(:first-child):not(:last-child),
-.input-group-btn:not(:first-child):not(:last-child),
-.input-group .form-control:not(:first-child):not(:last-child) {
- border-radius: 0;
-}
+ display: table-cell; }
+ .input-group-addon:not(:first-child):not(:last-child),
+ .input-group-btn:not(:first-child):not(:last-child),
+ .input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0; }
+
.input-group-addon,
.input-group-btn {
width: 1%;
white-space: nowrap;
- vertical-align: middle;
-}
+ vertical-align: middle; }
+
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
@@ -3518,23 +3603,22 @@
color: #555555;
text-align: center;
background-color: #eeeeee;
- border: 1px solid #cccccc;
- border-radius: 4px;
-}
-.input-group-addon.input-sm {
- padding: 5px 10px;
- font-size: 12px;
- border-radius: 3px;
-}
-.input-group-addon.input-lg {
- padding: 10px 16px;
- font-size: 18px;
- border-radius: 6px;
-}
-.input-group-addon input[type="radio"],
-.input-group-addon input[type="checkbox"] {
- margin-top: 0;
-}
+ border: 1px solid #ccc;
+ border-radius: 4px; }
+ .input-group-addon.input-sm, .input-group-sm > .input-group-addon,
+ .input-group-sm > .input-group-btn > .input-group-addon.btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 3px; }
+ .input-group-addon.input-lg, .input-group-lg > .input-group-addon,
+ .input-group-lg > .input-group-btn > .input-group-addon.btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ border-radius: 6px; }
+ .input-group-addon input[type="radio"],
+ .input-group-addon input[type="checkbox"] {
+ margin-top: 0; }
+
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
@@ -3543,11 +3627,11 @@
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
border-bottom-right-radius: 0;
- border-top-right-radius: 0;
-}
+ border-top-right-radius: 0; }
+
.input-group-addon:first-child {
- border-right: 0;
-}
+ border-right: 0; }
+
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
@@ -3556,356 +3640,283 @@
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
border-bottom-left-radius: 0;
- border-top-left-radius: 0;
-}
+ border-top-left-radius: 0; }
+
.input-group-addon:last-child {
- border-left: 0;
-}
+ border-left: 0; }
+
.input-group-btn {
position: relative;
font-size: 0;
- white-space: nowrap;
-}
-.input-group-btn > .btn {
- position: relative;
-}
-.input-group-btn > .btn + .btn {
- margin-left: -1px;
-}
-.input-group-btn > .btn:hover,
-.input-group-btn > .btn:focus,
-.input-group-btn > .btn:active {
- z-index: 2;
-}
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group {
- margin-right: -1px;
-}
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group {
- margin-left: -1px;
-}
+ white-space: nowrap; }
+ .input-group-btn > .btn {
+ position: relative; }
+ .input-group-btn > .btn + .btn {
+ margin-left: -1px; }
+ .input-group-btn > .btn:hover,
+ .input-group-btn > .btn:focus,
+ .input-group-btn > .btn:active {
+ z-index: 2; }
+ .input-group-btn:first-child > .btn,
+ .input-group-btn:first-child > .btn-group {
+ margin-right: -1px; }
+ .input-group-btn:last-child > .btn,
+ .input-group-btn:last-child > .btn-group {
+ z-index: 2;
+ margin-left: -1px; }
+
.nav {
margin-bottom: 0;
padding-left: 0;
- list-style: none;
-}
-.nav > li {
- position: relative;
- display: block;
-}
-.nav > li > a {
- position: relative;
- display: block;
- padding: 10px 15px;
-}
-.nav > li > a:hover,
-.nav > li > a:focus {
- text-decoration: none;
- background-color: #eeeeee;
-}
-.nav > li.disabled > a {
- color: #777777;
-}
-.nav > li.disabled > a:hover,
-.nav > li.disabled > a:focus {
- color: #777777;
- text-decoration: none;
- background-color: transparent;
- cursor: not-allowed;
-}
-.nav .open > a,
-.nav .open > a:hover,
-.nav .open > a:focus {
- background-color: #eeeeee;
- border-color: #337ab7;
-}
-.nav .nav-divider {
- height: 1px;
- margin: 9px 0;
- overflow: hidden;
- background-color: #e5e5e5;
-}
-.nav > li > a > img {
- max-width: none;
-}
+ list-style: none; }
+ .nav:before,
+ .nav:after {
+ content: " ";
+ display: table; }
+ .nav:after {
+ clear: both; }
+ .nav > li {
+ position: relative;
+ display: block; }
+ .nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px; }
+ .nav > li > a:hover,
+ .nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee; }
+ .nav > li.disabled > a {
+ color: #777777; }
+ .nav > li.disabled > a:hover,
+ .nav > li.disabled > a:focus {
+ color: #777777;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: not-allowed; }
+ .nav .open > a,
+ .nav .open > a:hover,
+ .nav .open > a:focus {
+ background-color: #eeeeee;
+ border-color: #337ab7; }
+ .nav .nav-divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5; }
+ .nav > li > a > img {
+ max-width: none; }
+
.nav-tabs {
- border-bottom: 1px solid #dddddd;
-}
-.nav-tabs > li {
- float: left;
- margin-bottom: -1px;
-}
-.nav-tabs > li > a {
- margin-right: 2px;
- line-height: 1.42857143;
- border: 1px solid transparent;
- border-radius: 4px 4px 0 0;
-}
-.nav-tabs > li > a:hover {
- border-color: #eeeeee #eeeeee #dddddd;
-}
-.nav-tabs > li.active > a,
-.nav-tabs > li.active > a:hover,
-.nav-tabs > li.active > a:focus {
- color: #555555;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- border-bottom-color: transparent;
- cursor: default;
-}
-.nav-tabs.nav-justified {
- width: 100%;
- border-bottom: 0;
-}
-.nav-tabs.nav-justified > li {
- float: none;
-}
-.nav-tabs.nav-justified > li > a {
- text-align: center;
- margin-bottom: 5px;
-}
-.nav-tabs.nav-justified > .dropdown .dropdown-menu {
- top: auto;
- left: auto;
-}
-@media (min-width: 768px) {
- .nav-tabs.nav-justified > li {
- display: table-cell;
- width: 1%;
- }
- .nav-tabs.nav-justified > li > a {
- margin-bottom: 0;
- }
-}
-.nav-tabs.nav-justified > li > a {
- margin-right: 0;
- border-radius: 4px;
-}
-.nav-tabs.nav-justified > .active > a,
-.nav-tabs.nav-justified > .active > a:hover,
-.nav-tabs.nav-justified > .active > a:focus {
- border: 1px solid #dddddd;
-}
-@media (min-width: 768px) {
- .nav-tabs.nav-justified > li > a {
- border-bottom: 1px solid #dddddd;
- border-radius: 4px 4px 0 0;
- }
- .nav-tabs.nav-justified > .active > a,
- .nav-tabs.nav-justified > .active > a:hover,
- .nav-tabs.nav-justified > .active > a:focus {
- border-bottom-color: #ffffff;
- }
-}
+ border-bottom: 1px solid #ddd; }
+ .nav-tabs > li {
+ float: left;
+ margin-bottom: -1px; }
+ .nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.42857;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0; }
+ .nav-tabs > li > a:hover {
+ border-color: #eeeeee #eeeeee #ddd; }
+ .nav-tabs > li.active > a,
+ .nav-tabs > li.active > a:hover,
+ .nav-tabs > li.active > a:focus {
+ color: #555555;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ cursor: default; }
+
.nav-pills > li {
- float: left;
-}
-.nav-pills > li > a {
- border-radius: 4px;
-}
-.nav-pills > li + li {
- margin-left: 2px;
-}
-.nav-pills > li.active > a,
-.nav-pills > li.active > a:hover,
-.nav-pills > li.active > a:focus {
- color: #ffffff;
- background-color: #337ab7;
-}
+ float: left; }
+ .nav-pills > li > a {
+ border-radius: 4px; }
+ .nav-pills > li + li {
+ margin-left: 2px; }
+ .nav-pills > li.active > a,
+ .nav-pills > li.active > a:hover,
+ .nav-pills > li.active > a:focus {
+ color: #fff;
+ background-color: #337ab7; }
+
.nav-stacked > li {
- float: none;
-}
-.nav-stacked > li + li {
- margin-top: 2px;
- margin-left: 0;
-}
-.nav-justified {
- width: 100%;
-}
-.nav-justified > li {
- float: none;
-}
-.nav-justified > li > a {
- text-align: center;
- margin-bottom: 5px;
-}
-.nav-justified > .dropdown .dropdown-menu {
- top: auto;
- left: auto;
-}
-@media (min-width: 768px) {
- .nav-justified > li {
- display: table-cell;
- width: 1%;
- }
- .nav-justified > li > a {
- margin-bottom: 0;
- }
-}
-.nav-tabs-justified {
- border-bottom: 0;
-}
-.nav-tabs-justified > li > a {
- margin-right: 0;
- border-radius: 4px;
-}
-.nav-tabs-justified > .active > a,
-.nav-tabs-justified > .active > a:hover,
-.nav-tabs-justified > .active > a:focus {
- border: 1px solid #dddddd;
-}
-@media (min-width: 768px) {
- .nav-tabs-justified > li > a {
- border-bottom: 1px solid #dddddd;
- border-radius: 4px 4px 0 0;
- }
+ float: none; }
+ .nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0; }
+
+.nav-justified, .nav-tabs.nav-justified {
+ width: 100%; }
+ .nav-justified > li, .nav-tabs.nav-justified > li {
+ float: none; }
+ .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px; }
+ .nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto; }
+ @media (min-width: 768px) {
+ .nav-justified > li, .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%; }
+ .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0; } }
+
+.nav-tabs-justified, .nav-tabs.nav-justified {
+ border-bottom: 0; }
+ .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px; }
.nav-tabs-justified > .active > a,
- .nav-tabs-justified > .active > a:hover,
- .nav-tabs-justified > .active > a:focus {
- border-bottom-color: #ffffff;
- }
-}
+ .nav-tabs.nav-justified > .active > a, .nav-tabs-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #ddd; }
+ @media (min-width: 768px) {
+ .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0; }
+ .nav-tabs-justified > .active > a,
+ .nav-tabs.nav-justified > .active > a, .nav-tabs-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #fff; } }
+
.tab-content > .tab-pane {
- display: none;
- visibility: hidden;
-}
+ display: none; }
+
.tab-content > .active {
- display: block;
- visibility: visible;
-}
+ display: block; }
+
.nav-tabs .dropdown-menu {
margin-top: -1px;
border-top-right-radius: 0;
- border-top-left-radius: 0;
-}
+ border-top-left-radius: 0; }
+
.navbar {
position: relative;
min-height: 50px;
margin-bottom: 20px;
- border: 1px solid transparent;
-}
-@media (min-width: 768px) {
- .navbar {
- border-radius: 4px;
- }
-}
+ border: 1px solid transparent; }
+ .navbar:before,
+ .navbar:after {
+ content: " ";
+ display: table; }
+ .navbar:after {
+ clear: both; }
+ @media (min-width: 768px) {
+ .navbar {
+ border-radius: 4px; } }
+
+.navbar-header:before,
+.navbar-header:after {
+ content: " ";
+ display: table; }
+
+.navbar-header:after {
+ clear: both; }
+
@media (min-width: 768px) {
.navbar-header {
- float: left;
- }
-}
+ float: left; } }
+
.navbar-collapse {
overflow-x: visible;
padding-right: 15px;
padding-left: 15px;
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
- -webkit-overflow-scrolling: touch;
-}
-.navbar-collapse.in {
- overflow-y: auto;
-}
-@media (min-width: 768px) {
- .navbar-collapse {
- width: auto;
- border-top: 0;
- box-shadow: none;
- }
- .navbar-collapse.collapse {
- display: block !important;
- visibility: visible !important;
- height: auto !important;
- padding-bottom: 0;
- overflow: visible !important;
- }
+ -webkit-overflow-scrolling: touch; }
+ .navbar-collapse:before,
+ .navbar-collapse:after {
+ content: " ";
+ display: table; }
+ .navbar-collapse:after {
+ clear: both; }
.navbar-collapse.in {
- overflow-y: visible;
- }
- .navbar-fixed-top .navbar-collapse,
- .navbar-static-top .navbar-collapse,
- .navbar-fixed-bottom .navbar-collapse {
- padding-left: 0;
- padding-right: 0;
- }
-}
+ overflow-y: auto; }
+ @media (min-width: 768px) {
+ .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ box-shadow: none; }
+ .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important; }
+ .navbar-collapse.in {
+ overflow-y: visible; }
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-static-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ padding-left: 0;
+ padding-right: 0; } }
+
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
- max-height: 340px;
-}
-@media (max-device-width: 480px) and (orientation: landscape) {
- .navbar-fixed-top .navbar-collapse,
- .navbar-fixed-bottom .navbar-collapse {
- max-height: 200px;
- }
-}
+ max-height: 340px; }
+ @media (max-device-width: 480px) and (orientation: landscape) {
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ max-height: 200px; } }
+
.container > .navbar-header,
+.container > .navbar-collapse,
.container-fluid > .navbar-header,
-.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
margin-right: -15px;
- margin-left: -15px;
-}
-@media (min-width: 768px) {
- .container > .navbar-header,
- .container-fluid > .navbar-header,
- .container > .navbar-collapse,
- .container-fluid > .navbar-collapse {
- margin-right: 0;
- margin-left: 0;
- }
-}
+ margin-left: -15px; }
+ @media (min-width: 768px) {
+ .container > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-header,
+ .container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0; } }
+
.navbar-static-top {
z-index: 1000;
- border-width: 0 0 1px;
-}
-@media (min-width: 768px) {
- .navbar-static-top {
- border-radius: 0;
- }
-}
+ border-width: 0 0 1px; }
+ @media (min-width: 768px) {
+ .navbar-static-top {
+ border-radius: 0; } }
+
.navbar-fixed-top,
.navbar-fixed-bottom {
position: fixed;
right: 0;
left: 0;
- z-index: 1030;
-}
-@media (min-width: 768px) {
- .navbar-fixed-top,
- .navbar-fixed-bottom {
- border-radius: 0;
- }
-}
+ z-index: 1030; }
+ @media (min-width: 768px) {
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ border-radius: 0; } }
+
.navbar-fixed-top {
top: 0;
- border-width: 0 0 1px;
-}
+ border-width: 0 0 1px; }
+
.navbar-fixed-bottom {
bottom: 0;
margin-bottom: 0;
- border-width: 1px 0 0;
-}
+ border-width: 1px 0 0; }
+
.navbar-brand {
float: left;
padding: 15px 15px;
font-size: 18px;
line-height: 20px;
- height: 50px;
-}
-.navbar-brand:hover,
-.navbar-brand:focus {
- text-decoration: none;
-}
-.navbar-brand > img {
- display: block;
-}
-@media (min-width: 768px) {
- .navbar > .container .navbar-brand,
- .navbar > .container-fluid .navbar-brand {
- margin-left: -15px;
- }
-}
+ height: 50px; }
+ .navbar-brand:hover,
+ .navbar-brand:focus {
+ text-decoration: none; }
+ .navbar-brand > img {
+ display: block; }
+ @media (min-width: 768px) {
+ .navbar > .container .navbar-brand,
+ .navbar > .container-fluid .navbar-brand {
+ margin-left: -15px; } }
+
.navbar-toggle {
position: relative;
float: right;
@@ -3916,68 +3927,53 @@
background-color: transparent;
background-image: none;
border: 1px solid transparent;
- border-radius: 4px;
-}
-.navbar-toggle:focus {
- outline: 0;
-}
-.navbar-toggle .icon-bar {
- display: block;
- width: 22px;
- height: 2px;
- border-radius: 1px;
-}
-.navbar-toggle .icon-bar + .icon-bar {
- margin-top: 4px;
-}
-@media (min-width: 768px) {
- .navbar-toggle {
- display: none;
- }
-}
+ border-radius: 4px; }
+ .navbar-toggle:focus {
+ outline: 0; }
+ .navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px; }
+ .navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px; }
+ @media (min-width: 768px) {
+ .navbar-toggle {
+ display: none; } }
+
.navbar-nav {
- margin: 7.5px -15px;
-}
-.navbar-nav > li > a {
- padding-top: 10px;
- padding-bottom: 10px;
- line-height: 20px;
-}
-@media (max-width: 767px) {
- .navbar-nav .open .dropdown-menu {
- position: static;
- float: none;
- width: auto;
- margin-top: 0;
- background-color: transparent;
- border: 0;
- box-shadow: none;
- }
- .navbar-nav .open .dropdown-menu > li > a,
- .navbar-nav .open .dropdown-menu .dropdown-header {
- padding: 5px 15px 5px 25px;
- }
- .navbar-nav .open .dropdown-menu > li > a {
- line-height: 20px;
- }
- .navbar-nav .open .dropdown-menu > li > a:hover,
- .navbar-nav .open .dropdown-menu > li > a:focus {
- background-image: none;
- }
-}
-@media (min-width: 768px) {
- .navbar-nav {
- float: left;
- margin: 0;
- }
- .navbar-nav > li {
- float: left;
- }
+ margin: 7.5px -15px; }
.navbar-nav > li > a {
- padding-top: 15px;
- padding-bottom: 15px;
- }
-}
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 20px; }
+ @media (max-width: 767px) {
+ .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none; }
+ .navbar-nav .open .dropdown-menu > li > a,
+ .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px; }
+ .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 20px; }
+ .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none; } }
+ @media (min-width: 768px) {
+ .navbar-nav {
+ float: left;
+ margin: 0; }
+ .navbar-nav > li {
+ float: left; }
+ .navbar-nav > li > a {
+ padding-top: 15px;
+ padding-bottom: 15px; } }
+
.navbar-form {
margin-left: -15px;
margin-right: -15px;
@@ -3986,1354 +3982,1231 @@
border-bottom: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
margin-top: 8px;
- margin-bottom: 8px;
-}
-@media (min-width: 768px) {
- .navbar-form .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .navbar-form .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .navbar-form .form-control-static {
- display: inline-block;
- }
- .navbar-form .input-group {
- display: inline-table;
- vertical-align: middle;
- }
- .navbar-form .input-group .input-group-addon,
- .navbar-form .input-group .input-group-btn,
- .navbar-form .input-group .form-control {
- width: auto;
- }
- .navbar-form .input-group > .form-control {
- width: 100%;
- }
- .navbar-form .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
- .navbar-form .radio,
- .navbar-form .checkbox {
- display: inline-block;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .navbar-form .radio label,
- .navbar-form .checkbox label {
- padding-left: 0;
- }
- .navbar-form .radio input[type="radio"],
- .navbar-form .checkbox input[type="checkbox"] {
- position: relative;
- margin-left: 0;
- }
- .navbar-form .has-feedback .form-control-feedback {
- top: 0;
- }
-}
-@media (max-width: 767px) {
- .navbar-form .form-group {
- margin-bottom: 5px;
- }
- .navbar-form .form-group:last-child {
- margin-bottom: 0;
- }
-}
-@media (min-width: 768px) {
- .navbar-form {
- width: auto;
- border: 0;
- margin-left: 0;
- margin-right: 0;
- padding-top: 0;
- padding-bottom: 0;
- box-shadow: none;
- }
-}
+ margin-bottom: 8px; }
+ @media (min-width: 768px) {
+ .navbar-form .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .navbar-form .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle; }
+ .navbar-form .form-control-static {
+ display: inline-block; }
+ .navbar-form .input-group {
+ display: inline-table;
+ vertical-align: middle; }
+ .navbar-form .input-group .input-group-addon,
+ .navbar-form .input-group .input-group-btn,
+ .navbar-form .input-group .form-control {
+ width: auto; }
+ .navbar-form .input-group > .form-control {
+ width: 100%; }
+ .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .navbar-form .radio,
+ .navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .navbar-form .radio label,
+ .navbar-form .checkbox label {
+ padding-left: 0; }
+ .navbar-form .radio input[type="radio"],
+ .navbar-form .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0; }
+ .navbar-form .has-feedback .form-control-feedback {
+ top: 0; } }
+ @media (max-width: 767px) {
+ .navbar-form .form-group {
+ margin-bottom: 5px; }
+ .navbar-form .form-group:last-child {
+ margin-bottom: 0; } }
+ @media (min-width: 768px) {
+ .navbar-form {
+ width: auto;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ box-shadow: none; } }
+
.navbar-nav > li > .dropdown-menu {
margin-top: 0;
border-top-right-radius: 0;
- border-top-left-radius: 0;
-}
+ border-top-left-radius: 0; }
+
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
border-top-right-radius: 4px;
border-top-left-radius: 4px;
border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
+ border-bottom-left-radius: 0; }
+
.navbar-btn {
margin-top: 8px;
- margin-bottom: 8px;
-}
-.navbar-btn.btn-sm {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-.navbar-btn.btn-xs {
- margin-top: 14px;
- margin-bottom: 14px;
-}
+ margin-bottom: 8px; }
+ .navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn {
+ margin-top: 10px;
+ margin-bottom: 10px; }
+ .navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn {
+ margin-top: 14px;
+ margin-bottom: 14px; }
+
.navbar-text {
margin-top: 15px;
- margin-bottom: 15px;
-}
-@media (min-width: 768px) {
- .navbar-text {
- float: left;
- margin-left: 15px;
- margin-right: 15px;
- }
-}
+ margin-bottom: 15px; }
+ @media (min-width: 768px) {
+ .navbar-text {
+ float: left;
+ margin-left: 15px;
+ margin-right: 15px; } }
+
@media (min-width: 768px) {
.navbar-left {
- float: left !important;
- }
+ float: left !important; }
.navbar-right {
float: right !important;
- margin-right: -15px;
- }
- .navbar-right ~ .navbar-right {
- margin-right: 0;
- }
-}
+ margin-right: -15px; }
+ .navbar-right ~ .navbar-right {
+ margin-right: 0; } }
+
.navbar-default {
background-color: #f8f8f8;
- border-color: #e7e7e7;
-}
-.navbar-default .navbar-brand {
- color: #777777;
-}
-.navbar-default .navbar-brand:hover,
-.navbar-default .navbar-brand:focus {
- color: #5e5e5e;
- background-color: transparent;
-}
-.navbar-default .navbar-text {
- color: #777777;
-}
-.navbar-default .navbar-nav > li > a {
- color: #777777;
-}
-.navbar-default .navbar-nav > li > a:hover,
-.navbar-default .navbar-nav > li > a:focus {
- color: #333333;
- background-color: transparent;
-}
-.navbar-default .navbar-nav > .active > a,
-.navbar-default .navbar-nav > .active > a:hover,
-.navbar-default .navbar-nav > .active > a:focus {
- color: #555555;
- background-color: #e7e7e7;
-}
-.navbar-default .navbar-nav > .disabled > a,
-.navbar-default .navbar-nav > .disabled > a:hover,
-.navbar-default .navbar-nav > .disabled > a:focus {
- color: #cccccc;
- background-color: transparent;
-}
-.navbar-default .navbar-toggle {
- border-color: #dddddd;
-}
-.navbar-default .navbar-toggle:hover,
-.navbar-default .navbar-toggle:focus {
- background-color: #dddddd;
-}
-.navbar-default .navbar-toggle .icon-bar {
- background-color: #888888;
-}
-.navbar-default .navbar-collapse,
-.navbar-default .navbar-form {
- border-color: #e7e7e7;
-}
-.navbar-default .navbar-nav > .open > a,
-.navbar-default .navbar-nav > .open > a:hover,
-.navbar-default .navbar-nav > .open > a:focus {
- background-color: #e7e7e7;
- color: #555555;
-}
-@media (max-width: 767px) {
- .navbar-default .navbar-nav .open .dropdown-menu > li > a {
- color: #777777;
- }
- .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
- .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
- color: #333333;
- background-color: transparent;
- }
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
- color: #555555;
+ border-color: #e7e7e7; }
+ .navbar-default .navbar-brand {
+ color: #777; }
+ .navbar-default .navbar-brand:hover,
+ .navbar-default .navbar-brand:focus {
+ color: #5e5e5e;
+ background-color: transparent; }
+ .navbar-default .navbar-text {
+ color: #777; }
+ .navbar-default .navbar-nav > li > a {
+ color: #777; }
+ .navbar-default .navbar-nav > li > a:hover,
+ .navbar-default .navbar-nav > li > a:focus {
+ color: #333;
+ background-color: transparent; }
+ .navbar-default .navbar-nav > .active > a,
+ .navbar-default .navbar-nav > .active > a:hover,
+ .navbar-default .navbar-nav > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7; }
+ .navbar-default .navbar-nav > .disabled > a,
+ .navbar-default .navbar-nav > .disabled > a:hover,
+ .navbar-default .navbar-nav > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent; }
+ .navbar-default .navbar-toggle {
+ border-color: #ddd; }
+ .navbar-default .navbar-toggle:hover,
+ .navbar-default .navbar-toggle:focus {
+ background-color: #ddd; }
+ .navbar-default .navbar-toggle .icon-bar {
+ background-color: #888; }
+ .navbar-default .navbar-collapse,
+ .navbar-default .navbar-form {
+ border-color: #e7e7e7; }
+ .navbar-default .navbar-nav > .open > a,
+ .navbar-default .navbar-nav > .open > a:hover,
+ .navbar-default .navbar-nav > .open > a:focus {
background-color: #e7e7e7;
- }
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
- color: #cccccc;
- background-color: transparent;
- }
-}
-.navbar-default .navbar-link {
- color: #777777;
-}
-.navbar-default .navbar-link:hover {
- color: #333333;
-}
-.navbar-default .btn-link {
- color: #777777;
-}
-.navbar-default .btn-link:hover,
-.navbar-default .btn-link:focus {
- color: #333333;
-}
-.navbar-default .btn-link[disabled]:hover,
-fieldset[disabled] .navbar-default .btn-link:hover,
-.navbar-default .btn-link[disabled]:focus,
-fieldset[disabled] .navbar-default .btn-link:focus {
- color: #cccccc;
-}
+ color: #555; }
+ @media (max-width: 767px) {
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #777; }
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #333;
+ background-color: transparent; }
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7; }
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent; } }
+ .navbar-default .navbar-link {
+ color: #777; }
+ .navbar-default .navbar-link:hover {
+ color: #333; }
+ .navbar-default .btn-link {
+ color: #777; }
+ .navbar-default .btn-link:hover,
+ .navbar-default .btn-link:focus {
+ color: #333; }
+ .navbar-default .btn-link[disabled]:hover,
+ .navbar-default .btn-link[disabled]:focus,
+ fieldset[disabled] .navbar-default .btn-link:hover,
+ fieldset[disabled] .navbar-default .btn-link:focus {
+ color: #ccc; }
+
.navbar-inverse {
- background-color: #222222;
- border-color: #080808;
-}
-.navbar-inverse .navbar-brand {
- color: #9d9d9d;
-}
-.navbar-inverse .navbar-brand:hover,
-.navbar-inverse .navbar-brand:focus {
- color: #ffffff;
- background-color: transparent;
-}
-.navbar-inverse .navbar-text {
- color: #9d9d9d;
-}
-.navbar-inverse .navbar-nav > li > a {
- color: #9d9d9d;
-}
-.navbar-inverse .navbar-nav > li > a:hover,
-.navbar-inverse .navbar-nav > li > a:focus {
- color: #ffffff;
- background-color: transparent;
-}
-.navbar-inverse .navbar-nav > .active > a,
-.navbar-inverse .navbar-nav > .active > a:hover,
-.navbar-inverse .navbar-nav > .active > a:focus {
- color: #ffffff;
- background-color: #080808;
-}
-.navbar-inverse .navbar-nav > .disabled > a,
-.navbar-inverse .navbar-nav > .disabled > a:hover,
-.navbar-inverse .navbar-nav > .disabled > a:focus {
- color: #444444;
- background-color: transparent;
-}
-.navbar-inverse .navbar-toggle {
- border-color: #333333;
-}
-.navbar-inverse .navbar-toggle:hover,
-.navbar-inverse .navbar-toggle:focus {
- background-color: #333333;
-}
-.navbar-inverse .navbar-toggle .icon-bar {
- background-color: #ffffff;
-}
-.navbar-inverse .navbar-collapse,
-.navbar-inverse .navbar-form {
- border-color: #101010;
-}
-.navbar-inverse .navbar-nav > .open > a,
-.navbar-inverse .navbar-nav > .open > a:hover,
-.navbar-inverse .navbar-nav > .open > a:focus {
- background-color: #080808;
- color: #ffffff;
-}
-@media (max-width: 767px) {
- .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
- border-color: #080808;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
- background-color: #080808;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
- color: #9d9d9d;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
- color: #ffffff;
- background-color: transparent;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
- color: #ffffff;
- background-color: #080808;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
- color: #444444;
- background-color: transparent;
- }
-}
-.navbar-inverse .navbar-link {
- color: #9d9d9d;
-}
-.navbar-inverse .navbar-link:hover {
- color: #ffffff;
-}
-.navbar-inverse .btn-link {
- color: #9d9d9d;
-}
-.navbar-inverse .btn-link:hover,
-.navbar-inverse .btn-link:focus {
- color: #ffffff;
-}
-.navbar-inverse .btn-link[disabled]:hover,
-fieldset[disabled] .navbar-inverse .btn-link:hover,
-.navbar-inverse .btn-link[disabled]:focus,
-fieldset[disabled] .navbar-inverse .btn-link:focus {
- color: #444444;
-}
+ background-color: #222;
+ border-color: #090909; }
+ .navbar-inverse .navbar-brand {
+ color: #9d9d9d; }
+ .navbar-inverse .navbar-brand:hover,
+ .navbar-inverse .navbar-brand:focus {
+ color: #fff;
+ background-color: transparent; }
+ .navbar-inverse .navbar-text {
+ color: #9d9d9d; }
+ .navbar-inverse .navbar-nav > li > a {
+ color: #9d9d9d; }
+ .navbar-inverse .navbar-nav > li > a:hover,
+ .navbar-inverse .navbar-nav > li > a:focus {
+ color: #fff;
+ background-color: transparent; }
+ .navbar-inverse .navbar-nav > .active > a,
+ .navbar-inverse .navbar-nav > .active > a:hover,
+ .navbar-inverse .navbar-nav > .active > a:focus {
+ color: #fff;
+ background-color: #090909; }
+ .navbar-inverse .navbar-nav > .disabled > a,
+ .navbar-inverse .navbar-nav > .disabled > a:hover,
+ .navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #444;
+ background-color: transparent; }
+ .navbar-inverse .navbar-toggle {
+ border-color: #333; }
+ .navbar-inverse .navbar-toggle:hover,
+ .navbar-inverse .navbar-toggle:focus {
+ background-color: #333; }
+ .navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #fff; }
+ .navbar-inverse .navbar-collapse,
+ .navbar-inverse .navbar-form {
+ border-color: #101010; }
+ .navbar-inverse .navbar-nav > .open > a,
+ .navbar-inverse .navbar-nav > .open > a:hover,
+ .navbar-inverse .navbar-nav > .open > a:focus {
+ background-color: #090909;
+ color: #fff; }
+ @media (max-width: 767px) {
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #090909; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #090909; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #9d9d9d; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: transparent; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: #090909; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #444;
+ background-color: transparent; } }
+ .navbar-inverse .navbar-link {
+ color: #9d9d9d; }
+ .navbar-inverse .navbar-link:hover {
+ color: #fff; }
+ .navbar-inverse .btn-link {
+ color: #9d9d9d; }
+ .navbar-inverse .btn-link:hover,
+ .navbar-inverse .btn-link:focus {
+ color: #fff; }
+ .navbar-inverse .btn-link[disabled]:hover,
+ .navbar-inverse .btn-link[disabled]:focus,
+ fieldset[disabled] .navbar-inverse .btn-link:hover,
+ fieldset[disabled] .navbar-inverse .btn-link:focus {
+ color: #444; }
+
.breadcrumb {
padding: 8px 15px;
margin-bottom: 20px;
list-style: none;
background-color: #f5f5f5;
- border-radius: 4px;
-}
-.breadcrumb > li {
- display: inline-block;
-}
-.breadcrumb > li + li:before {
- content: "/\00a0";
- padding: 0 5px;
- color: #cccccc;
-}
-.breadcrumb > .active {
- color: #777777;
-}
+ border-radius: 4px; }
+ .breadcrumb > li {
+ display: inline-block; }
+ .breadcrumb > li + li:before {
+ content: "/\\00a0";
+ padding: 0 5px;
+ color: #ccc; }
+ .breadcrumb > .active {
+ color: #777777; }
+
.pagination {
display: inline-block;
padding-left: 0;
margin: 20px 0;
- border-radius: 4px;
-}
-.pagination > li {
- display: inline;
-}
-.pagination > li > a,
-.pagination > li > span {
- position: relative;
- float: left;
- padding: 6px 12px;
- line-height: 1.42857143;
- text-decoration: none;
- color: #337ab7;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- margin-left: -1px;
-}
-.pagination > li:first-child > a,
-.pagination > li:first-child > span {
- margin-left: 0;
- border-bottom-left-radius: 4px;
- border-top-left-radius: 4px;
-}
-.pagination > li:last-child > a,
-.pagination > li:last-child > span {
- border-bottom-right-radius: 4px;
- border-top-right-radius: 4px;
-}
-.pagination > li > a:hover,
-.pagination > li > span:hover,
-.pagination > li > a:focus,
-.pagination > li > span:focus {
- color: #23527c;
- background-color: #eeeeee;
- border-color: #dddddd;
-}
-.pagination > .active > a,
-.pagination > .active > span,
-.pagination > .active > a:hover,
-.pagination > .active > span:hover,
-.pagination > .active > a:focus,
-.pagination > .active > span:focus {
- z-index: 2;
- color: #ffffff;
- background-color: #337ab7;
- border-color: #337ab7;
- cursor: default;
-}
-.pagination > .disabled > span,
-.pagination > .disabled > span:hover,
-.pagination > .disabled > span:focus,
-.pagination > .disabled > a,
-.pagination > .disabled > a:hover,
-.pagination > .disabled > a:focus {
- color: #777777;
- background-color: #ffffff;
- border-color: #dddddd;
- cursor: not-allowed;
-}
+ border-radius: 4px; }
+ .pagination > li {
+ display: inline; }
+ .pagination > li > a,
+ .pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ line-height: 1.42857;
+ text-decoration: none;
+ color: #337ab7;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ margin-left: -1px; }
+ .pagination > li:first-child > a,
+ .pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px; }
+ .pagination > li:last-child > a,
+ .pagination > li:last-child > span {
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px; }
+ .pagination > li > a:hover,
+ .pagination > li > a:focus,
+ .pagination > li > span:hover,
+ .pagination > li > span:focus {
+ z-index: 3;
+ color: #23527c;
+ background-color: #eeeeee;
+ border-color: #ddd; }
+ .pagination > .active > a,
+ .pagination > .active > a:hover,
+ .pagination > .active > a:focus,
+ .pagination > .active > span,
+ .pagination > .active > span:hover,
+ .pagination > .active > span:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+ cursor: default; }
+ .pagination > .disabled > span,
+ .pagination > .disabled > span:hover,
+ .pagination > .disabled > span:focus,
+ .pagination > .disabled > a,
+ .pagination > .disabled > a:hover,
+ .pagination > .disabled > a:focus {
+ color: #777777;
+ background-color: #fff;
+ border-color: #ddd;
+ cursor: not-allowed; }
+
.pagination-lg > li > a,
.pagination-lg > li > span {
padding: 10px 16px;
font-size: 18px;
-}
+ line-height: 1.33333; }
+
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
border-bottom-left-radius: 6px;
- border-top-left-radius: 6px;
-}
+ border-top-left-radius: 6px; }
+
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
border-bottom-right-radius: 6px;
- border-top-right-radius: 6px;
-}
+ border-top-right-radius: 6px; }
+
.pagination-sm > li > a,
.pagination-sm > li > span {
padding: 5px 10px;
font-size: 12px;
-}
+ line-height: 1.5; }
+
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
border-bottom-left-radius: 3px;
- border-top-left-radius: 3px;
-}
+ border-top-left-radius: 3px; }
+
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
border-bottom-right-radius: 3px;
- border-top-right-radius: 3px;
-}
+ border-top-right-radius: 3px; }
+
.pager {
padding-left: 0;
margin: 20px 0;
list-style: none;
- text-align: center;
-}
-.pager li {
- display: inline;
-}
-.pager li > a,
-.pager li > span {
- display: inline-block;
- padding: 5px 14px;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- border-radius: 15px;
-}
-.pager li > a:hover,
-.pager li > a:focus {
- text-decoration: none;
- background-color: #eeeeee;
-}
-.pager .next > a,
-.pager .next > span {
- float: right;
-}
-.pager .previous > a,
-.pager .previous > span {
- float: left;
-}
-.pager .disabled > a,
-.pager .disabled > a:hover,
-.pager .disabled > a:focus,
-.pager .disabled > span {
- color: #777777;
- background-color: #ffffff;
- cursor: not-allowed;
-}
+ text-align: center; }
+ .pager:before,
+ .pager:after {
+ content: " ";
+ display: table; }
+ .pager:after {
+ clear: both; }
+ .pager li {
+ display: inline; }
+ .pager li > a,
+ .pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 15px; }
+ .pager li > a:hover,
+ .pager li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee; }
+ .pager .next > a,
+ .pager .next > span {
+ float: right; }
+ .pager .previous > a,
+ .pager .previous > span {
+ float: left; }
+ .pager .disabled > a,
+ .pager .disabled > a:hover,
+ .pager .disabled > a:focus,
+ .pager .disabled > span {
+ color: #777777;
+ background-color: #fff;
+ cursor: not-allowed; }
+
.label {
display: inline;
- padding: .2em .6em .3em;
+ padding: 0.2em 0.6em 0.3em;
font-size: 75%;
font-weight: bold;
line-height: 1;
- color: #ffffff;
+ color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
- border-radius: .25em;
-}
+ border-radius: .25em; }
+ .label:empty {
+ display: none; }
+ .btn .label {
+ position: relative;
+ top: -1px; }
+
a.label:hover,
a.label:focus {
- color: #ffffff;
+ color: #fff;
text-decoration: none;
- cursor: pointer;
-}
-.label:empty {
- display: none;
-}
-.btn .label {
- position: relative;
- top: -1px;
-}
+ cursor: pointer; }
+
.label-default {
- background-color: #777777;
-}
-.label-default[href]:hover,
-.label-default[href]:focus {
- background-color: #5e5e5e;
-}
+ background-color: #777777; }
+ .label-default[href]:hover,
+ .label-default[href]:focus {
+ background-color: #5e5e5e; }
+
.label-primary {
- background-color: #337ab7;
-}
-.label-primary[href]:hover,
-.label-primary[href]:focus {
- background-color: #286090;
-}
+ background-color: #337ab7; }
+ .label-primary[href]:hover,
+ .label-primary[href]:focus {
+ background-color: #286090; }
+
.label-success {
- background-color: #5cb85c;
-}
-.label-success[href]:hover,
-.label-success[href]:focus {
- background-color: #449d44;
-}
+ background-color: #5cb85c; }
+ .label-success[href]:hover,
+ .label-success[href]:focus {
+ background-color: #449d44; }
+
.label-info {
- background-color: #5bc0de;
-}
-.label-info[href]:hover,
-.label-info[href]:focus {
- background-color: #31b0d5;
-}
+ background-color: #5bc0de; }
+ .label-info[href]:hover,
+ .label-info[href]:focus {
+ background-color: #31b0d5; }
+
.label-warning {
- background-color: #f0ad4e;
-}
-.label-warning[href]:hover,
-.label-warning[href]:focus {
- background-color: #ec971f;
-}
+ background-color: #f0ad4e; }
+ .label-warning[href]:hover,
+ .label-warning[href]:focus {
+ background-color: #ec971f; }
+
.label-danger {
- background-color: #d9534f;
-}
-.label-danger[href]:hover,
-.label-danger[href]:focus {
- background-color: #c9302c;
-}
+ background-color: #d9534f; }
+ .label-danger[href]:hover,
+ .label-danger[href]:focus {
+ background-color: #c9302c; }
+
.badge {
display: inline-block;
min-width: 10px;
padding: 3px 7px;
font-size: 12px;
font-weight: bold;
- color: #ffffff;
+ color: #fff;
line-height: 1;
- vertical-align: baseline;
+ vertical-align: middle;
white-space: nowrap;
text-align: center;
background-color: #777777;
- border-radius: 10px;
-}
-.badge:empty {
- display: none;
-}
-.btn .badge {
- position: relative;
- top: -1px;
-}
-.btn-xs .badge {
- top: 0;
- padding: 1px 5px;
-}
+ border-radius: 10px; }
+ .badge:empty {
+ display: none; }
+ .btn .badge {
+ position: relative;
+ top: -1px; }
+ .btn-xs .badge,
+ .btn-group-xs > .btn .badge,
+ .btn-group-xs > .btn .badge {
+ top: 0;
+ padding: 1px 5px; }
+ .list-group-item.active > .badge,
+ .nav-pills > .active > a > .badge {
+ color: #337ab7;
+ background-color: #fff; }
+ .list-group-item > .badge {
+ float: right; }
+ .list-group-item > .badge + .badge {
+ margin-right: 5px; }
+ .nav-pills > li > a > .badge {
+ margin-left: 3px; }
+
a.badge:hover,
a.badge:focus {
- color: #ffffff;
+ color: #fff;
text-decoration: none;
- cursor: pointer;
-}
-.list-group-item.active > .badge,
-.nav-pills > .active > a > .badge {
- color: #337ab7;
- background-color: #ffffff;
-}
-.list-group-item > .badge {
- float: right;
-}
-.list-group-item > .badge + .badge {
- margin-right: 5px;
-}
-.nav-pills > li > a > .badge {
- margin-left: 3px;
-}
+ cursor: pointer; }
+
.jumbotron {
- padding: 30px 15px;
+ padding-top: 30px;
+ padding-bottom: 30px;
margin-bottom: 30px;
color: inherit;
- background-color: #eeeeee;
-}
-.jumbotron h1,
-.jumbotron .h1 {
- color: inherit;
-}
-.jumbotron p {
- margin-bottom: 15px;
- font-size: 21px;
- font-weight: 200;
-}
-.jumbotron > hr {
- border-top-color: #d5d5d5;
-}
-.container .jumbotron,
-.container-fluid .jumbotron {
- border-radius: 6px;
-}
-.jumbotron .container {
- max-width: 100%;
-}
-@media screen and (min-width: 768px) {
- .jumbotron {
- padding: 48px 0;
- }
+ background-color: #eeeeee; }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ color: inherit; }
+ .jumbotron p {
+ margin-bottom: 15px;
+ font-size: 21px;
+ font-weight: 200; }
+ .jumbotron > hr {
+ border-top-color: #d5d5d5; }
.container .jumbotron,
.container-fluid .jumbotron {
- padding-left: 60px;
- padding-right: 60px;
- }
- .jumbotron h1,
- .jumbotron .h1 {
- font-size: 63px;
- }
-}
+ border-radius: 6px; }
+ .jumbotron .container {
+ max-width: 100%; }
+ @media screen and (min-width: 768px) {
+ .jumbotron {
+ padding-top: 48px;
+ padding-bottom: 48px; }
+ .container .jumbotron,
+ .container-fluid .jumbotron {
+ padding-left: 60px;
+ padding-right: 60px; }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ font-size: 63px; } }
+
.thumbnail {
display: block;
padding: 4px;
margin-bottom: 20px;
- line-height: 1.42857143;
- background-color: #ffffff;
- border: 1px solid #dddddd;
+ line-height: 1.42857;
+ background-color: #fff;
+ border: 1px solid #ddd;
border-radius: 4px;
- transition: border 0.2s ease-in-out;
-}
-.thumbnail > img,
-.thumbnail a > img {
- margin-left: auto;
- margin-right: auto;
-}
+ transition: border 0.2s ease-in-out; }
+ .thumbnail > img,
+ .thumbnail a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ margin-left: auto;
+ margin-right: auto; }
+ .thumbnail .caption {
+ padding: 9px;
+ color: #333333; }
+
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
- border-color: #337ab7;
-}
-.thumbnail .caption {
- padding: 9px;
- color: #333333;
-}
+ border-color: #337ab7; }
+
.alert {
padding: 15px;
margin-bottom: 20px;
border: 1px solid transparent;
- border-radius: 4px;
-}
-.alert h4 {
- margin-top: 0;
- color: inherit;
-}
-.alert .alert-link {
- font-weight: bold;
-}
-.alert > p,
-.alert > ul {
- margin-bottom: 0;
-}
-.alert > p + p {
- margin-top: 5px;
-}
-.alert-dismissable,
-.alert-dismissible {
- padding-right: 35px;
-}
-.alert-dismissable .close,
-.alert-dismissible .close {
- position: relative;
- top: -2px;
- right: -21px;
- color: inherit;
-}
+ border-radius: 4px; }
+ .alert h4 {
+ margin-top: 0;
+ color: inherit; }
+ .alert .alert-link {
+ font-weight: bold; }
+ .alert > p,
+ .alert > ul {
+ margin-bottom: 0; }
+ .alert > p + p {
+ margin-top: 5px; }
+
+.alert-dismissable, .alert-dismissible {
+ padding-right: 35px; }
+ .alert-dismissable .close, .alert-dismissible .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit; }
+
.alert-success {
background-color: #dff0d8;
border-color: #d6e9c6;
- color: #3c763d;
-}
-.alert-success hr {
- border-top-color: #c9e2b3;
-}
-.alert-success .alert-link {
- color: #2b542c;
-}
+ color: #3c763d; }
+ .alert-success hr {
+ border-top-color: #c9e2b3; }
+ .alert-success .alert-link {
+ color: #2b542c; }
+
.alert-info {
background-color: #d9edf7;
border-color: #bce8f1;
- color: #31708f;
-}
-.alert-info hr {
- border-top-color: #a6e1ec;
-}
-.alert-info .alert-link {
- color: #245269;
-}
+ color: #31708f; }
+ .alert-info hr {
+ border-top-color: #a6e1ec; }
+ .alert-info .alert-link {
+ color: #245269; }
+
.alert-warning {
background-color: #fcf8e3;
border-color: #faebcc;
- color: #8a6d3b;
-}
-.alert-warning hr {
- border-top-color: #f7e1b5;
-}
-.alert-warning .alert-link {
- color: #66512c;
-}
+ color: #8a6d3b; }
+ .alert-warning hr {
+ border-top-color: #f7e1b5; }
+ .alert-warning .alert-link {
+ color: #66512c; }
+
.alert-danger {
background-color: #f2dede;
border-color: #ebccd1;
- color: #a94442;
-}
-.alert-danger hr {
- border-top-color: #e4b9c0;
-}
-.alert-danger .alert-link {
- color: #843534;
-}
+ color: #a94442; }
+ .alert-danger hr {
+ border-top-color: #e4b9c0; }
+ .alert-danger .alert-link {
+ color: #843534; }
+
@-webkit-keyframes progress-bar-stripes {
from {
- background-position: 40px 0;
- }
+ background-position: 40px 0; }
to {
- background-position: 0 0;
- }
-}
+ background-position: 0 0; } }
+
@keyframes progress-bar-stripes {
from {
- background-position: 40px 0;
- }
+ background-position: 40px 0; }
to {
- background-position: 0 0;
- }
-}
+ background-position: 0 0; } }
+
.progress {
overflow: hidden;
height: 20px;
margin-bottom: 20px;
background-color: #f5f5f5;
border-radius: 4px;
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-}
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); }
+
.progress-bar {
float: left;
width: 0%;
height: 100%;
font-size: 12px;
line-height: 20px;
- color: #ffffff;
+ color: #fff;
text-align: center;
background-color: #337ab7;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
- transition: width 0.6s ease;
-}
+ transition: width 0.6s ease; }
+
.progress-striped .progress-bar,
.progress-bar-striped {
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-size: 40px 40px;
-}
+ background-size: 40px 40px; }
+
.progress.active .progress-bar,
.progress-bar.active {
-webkit-animation: progress-bar-stripes 2s linear infinite;
- animation: progress-bar-stripes 2s linear infinite;
-}
+ animation: progress-bar-stripes 2s linear infinite; }
+
.progress-bar-success {
- background-color: #5cb85c;
-}
-.progress-striped .progress-bar-success {
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
+ background-color: #5cb85c; }
+ .progress-striped .progress-bar-success {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
.progress-bar-info {
- background-color: #5bc0de;
-}
-.progress-striped .progress-bar-info {
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
+ background-color: #5bc0de; }
+ .progress-striped .progress-bar-info {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
.progress-bar-warning {
- background-color: #f0ad4e;
-}
-.progress-striped .progress-bar-warning {
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
+ background-color: #f0ad4e; }
+ .progress-striped .progress-bar-warning {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
.progress-bar-danger {
- background-color: #d9534f;
-}
-.progress-striped .progress-bar-danger {
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
+ background-color: #d9534f; }
+ .progress-striped .progress-bar-danger {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
.media {
- margin-top: 15px;
-}
-.media:first-child {
- margin-top: 0;
-}
+ margin-top: 15px; }
+ .media:first-child {
+ margin-top: 0; }
+
+.media,
+.media-body {
+ zoom: 1;
+ overflow: hidden; }
+
+.media-body {
+ width: 10000px; }
+
+.media-object {
+ display: block; }
+ .media-object.img-thumbnail {
+ max-width: none; }
+
.media-right,
.media > .pull-right {
- padding-left: 10px;
-}
+ padding-left: 10px; }
+
.media-left,
.media > .pull-left {
- padding-right: 10px;
-}
+ padding-right: 10px; }
+
.media-left,
.media-right,
.media-body {
display: table-cell;
- vertical-align: top;
-}
+ vertical-align: top; }
+
.media-middle {
- vertical-align: middle;
-}
+ vertical-align: middle; }
+
.media-bottom {
- vertical-align: bottom;
-}
+ vertical-align: bottom; }
+
.media-heading {
margin-top: 0;
- margin-bottom: 5px;
-}
+ margin-bottom: 5px; }
+
.media-list {
padding-left: 0;
- list-style: none;
-}
+ list-style: none; }
+
.list-group {
margin-bottom: 20px;
- padding-left: 0;
-}
+ padding-left: 0; }
+
.list-group-item {
position: relative;
display: block;
padding: 10px 15px;
margin-bottom: -1px;
- background-color: #ffffff;
- border: 1px solid #dddddd;
-}
-.list-group-item:first-child {
- border-top-right-radius: 4px;
- border-top-left-radius: 4px;
-}
-.list-group-item:last-child {
- margin-bottom: 0;
- border-bottom-right-radius: 4px;
- border-bottom-left-radius: 4px;
-}
-a.list-group-item {
- color: #555555;
-}
-a.list-group-item .list-group-item-heading {
- color: #333333;
-}
-a.list-group-item:hover,
-a.list-group-item:focus {
- text-decoration: none;
- color: #555555;
- background-color: #f5f5f5;
-}
+ background-color: #fff;
+ border: 1px solid #ddd; }
+ .list-group-item:first-child {
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px; }
+ .list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px; }
+
+a.list-group-item,
+button.list-group-item {
+ color: #555; }
+ a.list-group-item .list-group-item-heading,
+ button.list-group-item .list-group-item-heading {
+ color: #333; }
+ a.list-group-item:hover,
+ a.list-group-item:focus,
+ button.list-group-item:hover,
+ button.list-group-item:focus {
+ text-decoration: none;
+ color: #555;
+ background-color: #f5f5f5; }
+
+button.list-group-item {
+ width: 100%;
+ text-align: left; }
+
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
background-color: #eeeeee;
color: #777777;
- cursor: not-allowed;
-}
-.list-group-item.disabled .list-group-item-heading,
-.list-group-item.disabled:hover .list-group-item-heading,
-.list-group-item.disabled:focus .list-group-item-heading {
- color: inherit;
-}
-.list-group-item.disabled .list-group-item-text,
-.list-group-item.disabled:hover .list-group-item-text,
-.list-group-item.disabled:focus .list-group-item-text {
- color: #777777;
-}
+ cursor: not-allowed; }
+ .list-group-item.disabled .list-group-item-heading,
+ .list-group-item.disabled:hover .list-group-item-heading,
+ .list-group-item.disabled:focus .list-group-item-heading {
+ color: inherit; }
+ .list-group-item.disabled .list-group-item-text,
+ .list-group-item.disabled:hover .list-group-item-text,
+ .list-group-item.disabled:focus .list-group-item-text {
+ color: #777777; }
+
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
z-index: 2;
- color: #ffffff;
+ color: #fff;
background-color: #337ab7;
- border-color: #337ab7;
-}
-.list-group-item.active .list-group-item-heading,
-.list-group-item.active:hover .list-group-item-heading,
-.list-group-item.active:focus .list-group-item-heading,
-.list-group-item.active .list-group-item-heading > small,
-.list-group-item.active:hover .list-group-item-heading > small,
-.list-group-item.active:focus .list-group-item-heading > small,
-.list-group-item.active .list-group-item-heading > .small,
-.list-group-item.active:hover .list-group-item-heading > .small,
-.list-group-item.active:focus .list-group-item-heading > .small {
- color: inherit;
-}
-.list-group-item.active .list-group-item-text,
-.list-group-item.active:hover .list-group-item-text,
-.list-group-item.active:focus .list-group-item-text {
- color: #c7ddef;
-}
+ border-color: #337ab7; }
+ .list-group-item.active .list-group-item-heading,
+ .list-group-item.active .list-group-item-heading > small,
+ .list-group-item.active .list-group-item-heading > .small,
+ .list-group-item.active:hover .list-group-item-heading,
+ .list-group-item.active:hover .list-group-item-heading > small,
+ .list-group-item.active:hover .list-group-item-heading > .small,
+ .list-group-item.active:focus .list-group-item-heading,
+ .list-group-item.active:focus .list-group-item-heading > small,
+ .list-group-item.active:focus .list-group-item-heading > .small {
+ color: inherit; }
+ .list-group-item.active .list-group-item-text,
+ .list-group-item.active:hover .list-group-item-text,
+ .list-group-item.active:focus .list-group-item-text {
+ color: #c7ddef; }
+
.list-group-item-success {
color: #3c763d;
- background-color: #dff0d8;
-}
-a.list-group-item-success {
- color: #3c763d;
-}
-a.list-group-item-success .list-group-item-heading {
- color: inherit;
-}
-a.list-group-item-success:hover,
-a.list-group-item-success:focus {
- color: #3c763d;
- background-color: #d0e9c6;
-}
-a.list-group-item-success.active,
-a.list-group-item-success.active:hover,
-a.list-group-item-success.active:focus {
- color: #fff;
- background-color: #3c763d;
- border-color: #3c763d;
-}
+ background-color: #dff0d8; }
+
+a.list-group-item-success,
+button.list-group-item-success {
+ color: #3c763d; }
+ a.list-group-item-success .list-group-item-heading,
+ button.list-group-item-success .list-group-item-heading {
+ color: inherit; }
+ a.list-group-item-success:hover,
+ a.list-group-item-success:focus,
+ button.list-group-item-success:hover,
+ button.list-group-item-success:focus {
+ color: #3c763d;
+ background-color: #d0e9c6; }
+ a.list-group-item-success.active,
+ a.list-group-item-success.active:hover,
+ a.list-group-item-success.active:focus,
+ button.list-group-item-success.active,
+ button.list-group-item-success.active:hover,
+ button.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d; }
+
.list-group-item-info {
color: #31708f;
- background-color: #d9edf7;
-}
-a.list-group-item-info {
- color: #31708f;
-}
-a.list-group-item-info .list-group-item-heading {
- color: inherit;
-}
-a.list-group-item-info:hover,
-a.list-group-item-info:focus {
- color: #31708f;
- background-color: #c4e3f3;
-}
-a.list-group-item-info.active,
-a.list-group-item-info.active:hover,
-a.list-group-item-info.active:focus {
- color: #fff;
- background-color: #31708f;
- border-color: #31708f;
-}
+ background-color: #d9edf7; }
+
+a.list-group-item-info,
+button.list-group-item-info {
+ color: #31708f; }
+ a.list-group-item-info .list-group-item-heading,
+ button.list-group-item-info .list-group-item-heading {
+ color: inherit; }
+ a.list-group-item-info:hover,
+ a.list-group-item-info:focus,
+ button.list-group-item-info:hover,
+ button.list-group-item-info:focus {
+ color: #31708f;
+ background-color: #c4e3f3; }
+ a.list-group-item-info.active,
+ a.list-group-item-info.active:hover,
+ a.list-group-item-info.active:focus,
+ button.list-group-item-info.active,
+ button.list-group-item-info.active:hover,
+ button.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f; }
+
.list-group-item-warning {
color: #8a6d3b;
- background-color: #fcf8e3;
-}
-a.list-group-item-warning {
- color: #8a6d3b;
-}
-a.list-group-item-warning .list-group-item-heading {
- color: inherit;
-}
-a.list-group-item-warning:hover,
-a.list-group-item-warning:focus {
- color: #8a6d3b;
- background-color: #faf2cc;
-}
-a.list-group-item-warning.active,
-a.list-group-item-warning.active:hover,
-a.list-group-item-warning.active:focus {
- color: #fff;
- background-color: #8a6d3b;
- border-color: #8a6d3b;
-}
+ background-color: #fcf8e3; }
+
+a.list-group-item-warning,
+button.list-group-item-warning {
+ color: #8a6d3b; }
+ a.list-group-item-warning .list-group-item-heading,
+ button.list-group-item-warning .list-group-item-heading {
+ color: inherit; }
+ a.list-group-item-warning:hover,
+ a.list-group-item-warning:focus,
+ button.list-group-item-warning:hover,
+ button.list-group-item-warning:focus {
+ color: #8a6d3b;
+ background-color: #faf2cc; }
+ a.list-group-item-warning.active,
+ a.list-group-item-warning.active:hover,
+ a.list-group-item-warning.active:focus,
+ button.list-group-item-warning.active,
+ button.list-group-item-warning.active:hover,
+ button.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b; }
+
.list-group-item-danger {
color: #a94442;
- background-color: #f2dede;
-}
-a.list-group-item-danger {
- color: #a94442;
-}
-a.list-group-item-danger .list-group-item-heading {
- color: inherit;
-}
-a.list-group-item-danger:hover,
-a.list-group-item-danger:focus {
- color: #a94442;
- background-color: #ebcccc;
-}
-a.list-group-item-danger.active,
-a.list-group-item-danger.active:hover,
-a.list-group-item-danger.active:focus {
- color: #fff;
- background-color: #a94442;
- border-color: #a94442;
-}
+ background-color: #f2dede; }
+
+a.list-group-item-danger,
+button.list-group-item-danger {
+ color: #a94442; }
+ a.list-group-item-danger .list-group-item-heading,
+ button.list-group-item-danger .list-group-item-heading {
+ color: inherit; }
+ a.list-group-item-danger:hover,
+ a.list-group-item-danger:focus,
+ button.list-group-item-danger:hover,
+ button.list-group-item-danger:focus {
+ color: #a94442;
+ background-color: #ebcccc; }
+ a.list-group-item-danger.active,
+ a.list-group-item-danger.active:hover,
+ a.list-group-item-danger.active:focus,
+ button.list-group-item-danger.active,
+ button.list-group-item-danger.active:hover,
+ button.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442; }
+
.list-group-item-heading {
margin-top: 0;
- margin-bottom: 5px;
-}
+ margin-bottom: 5px; }
+
.list-group-item-text {
margin-bottom: 0;
- line-height: 1.3;
-}
+ line-height: 1.3; }
+
.panel {
margin-bottom: 20px;
- background-color: #ffffff;
+ background-color: #fff;
border: 1px solid transparent;
border-radius: 4px;
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
-}
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }
+
.panel-body {
- padding: 15px;
-}
+ padding: 15px; }
+ .panel-body:before,
+ .panel-body:after {
+ content: " ";
+ display: table; }
+ .panel-body:after {
+ clear: both; }
+
.panel-heading {
padding: 10px 15px;
border-bottom: 1px solid transparent;
border-top-right-radius: 3px;
- border-top-left-radius: 3px;
-}
-.panel-heading > .dropdown .dropdown-toggle {
- color: inherit;
-}
+ border-top-left-radius: 3px; }
+ .panel-heading > .dropdown .dropdown-toggle {
+ color: inherit; }
+
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 16px;
- color: inherit;
-}
-.panel-title > a {
- color: inherit;
-}
+ color: inherit; }
+ .panel-title > a,
+ .panel-title > small,
+ .panel-title > .small,
+ .panel-title > small > a,
+ .panel-title > .small > a {
+ color: inherit; }
+
.panel-footer {
padding: 10px 15px;
background-color: #f5f5f5;
- border-top: 1px solid #dddddd;
+ border-top: 1px solid #ddd;
border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
-}
+ border-bottom-left-radius: 3px; }
+
.panel > .list-group,
.panel > .panel-collapse > .list-group {
- margin-bottom: 0;
-}
-.panel > .list-group .list-group-item,
-.panel > .panel-collapse > .list-group .list-group-item {
- border-width: 1px 0;
- border-radius: 0;
-}
-.panel > .list-group:first-child .list-group-item:first-child,
-.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
- border-top: 0;
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
-}
-.panel > .list-group:last-child .list-group-item:last-child,
-.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
- border-bottom: 0;
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
-}
+ margin-bottom: 0; }
+ .panel > .list-group .list-group-item,
+ .panel > .panel-collapse > .list-group .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0; }
+ .panel > .list-group:first-child .list-group-item:first-child,
+ .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
+ border-top: 0;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px; }
+ .panel > .list-group:last-child .list-group-item:last-child,
+ .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
+ border-bottom: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px; }
+
+.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0; }
+
.panel-heading + .list-group .list-group-item:first-child {
- border-top-width: 0;
-}
+ border-top-width: 0; }
+
.list-group + .panel-footer {
- border-top-width: 0;
-}
+ border-top-width: 0; }
+
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
- margin-bottom: 0;
-}
-.panel > .table caption,
-.panel > .table-responsive > .table caption,
-.panel > .panel-collapse > .table caption {
- padding-left: 15px;
- padding-right: 15px;
-}
+ margin-bottom: 0; }
+ .panel > .table caption,
+ .panel > .table-responsive > .table caption,
+ .panel > .panel-collapse > .table caption {
+ padding-left: 15px;
+ padding-right: 15px; }
+
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
border-top-right-radius: 3px;
- border-top-left-radius: 3px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
- border-top-left-radius: 3px;
- border-top-right-radius: 3px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
- border-top-left-radius: 3px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
- border-top-right-radius: 3px;
-}
+ border-top-left-radius: 3px; }
+ .panel > .table:first-child > thead:first-child > tr:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px; }
+ .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+ .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+ border-top-left-radius: 3px; }
+ .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+ .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+ border-top-right-radius: 3px; }
+
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
- border-bottom-left-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
- border-bottom-left-radius: 3px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
- border-bottom-right-radius: 3px;
-}
+ border-bottom-left-radius: 3px; }
+ .panel > .table:last-child > tbody:last-child > tr:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+ border-bottom-left-radius: 3px;
+ border-bottom-right-radius: 3px; }
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+ border-bottom-left-radius: 3px; }
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+ border-bottom-right-radius: 3px; }
+
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
- border-top: 1px solid #dddddd;
-}
+ border-top: 1px solid #ddd; }
+
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
- border-top: 0;
-}
+ border-top: 0; }
+
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
- border: 0;
-}
-.panel > .table-bordered > thead > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
-.panel > .table-bordered > tbody > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
-.panel > .table-bordered > tfoot > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
-.panel > .table-bordered > thead > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
-.panel > .table-bordered > tbody > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
-.panel > .table-bordered > tfoot > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
- border-left: 0;
-}
-.panel > .table-bordered > thead > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
-.panel > .table-bordered > tbody > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
-.panel > .table-bordered > tfoot > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
-.panel > .table-bordered > thead > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
-.panel > .table-bordered > tbody > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
-.panel > .table-bordered > tfoot > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
- border-right: 0;
-}
-.panel > .table-bordered > thead > tr:first-child > td,
-.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
-.panel > .table-bordered > tbody > tr:first-child > td,
-.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
-.panel > .table-bordered > thead > tr:first-child > th,
-.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
-.panel > .table-bordered > tbody > tr:first-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
- border-bottom: 0;
-}
-.panel > .table-bordered > tbody > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
-.panel > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-bordered > tfoot > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
- border-bottom: 0;
-}
+ border: 0; }
+ .panel > .table-bordered > thead > tr > th:first-child,
+ .panel > .table-bordered > thead > tr > td:first-child,
+ .panel > .table-bordered > tbody > tr > th:first-child,
+ .panel > .table-bordered > tbody > tr > td:first-child,
+ .panel > .table-bordered > tfoot > tr > th:first-child,
+ .panel > .table-bordered > tfoot > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0; }
+ .panel > .table-bordered > thead > tr > th:last-child,
+ .panel > .table-bordered > thead > tr > td:last-child,
+ .panel > .table-bordered > tbody > tr > th:last-child,
+ .panel > .table-bordered > tbody > tr > td:last-child,
+ .panel > .table-bordered > tfoot > tr > th:last-child,
+ .panel > .table-bordered > tfoot > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0; }
+ .panel > .table-bordered > thead > tr:first-child > td,
+ .panel > .table-bordered > thead > tr:first-child > th,
+ .panel > .table-bordered > tbody > tr:first-child > td,
+ .panel > .table-bordered > tbody > tr:first-child > th,
+ .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+ .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+ .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+ .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0; }
+ .panel > .table-bordered > tbody > tr:last-child > td,
+ .panel > .table-bordered > tbody > tr:last-child > th,
+ .panel > .table-bordered > tfoot > tr:last-child > td,
+ .panel > .table-bordered > tfoot > tr:last-child > th,
+ .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+ .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+ border-bottom: 0; }
+
.panel > .table-responsive {
border: 0;
- margin-bottom: 0;
-}
+ margin-bottom: 0; }
+
.panel-group {
- margin-bottom: 20px;
-}
-.panel-group .panel {
- margin-bottom: 0;
- border-radius: 4px;
-}
-.panel-group .panel + .panel {
- margin-top: 5px;
-}
-.panel-group .panel-heading {
- border-bottom: 0;
-}
-.panel-group .panel-heading + .panel-collapse > .panel-body,
-.panel-group .panel-heading + .panel-collapse > .list-group {
- border-top: 1px solid #dddddd;
-}
-.panel-group .panel-footer {
- border-top: 0;
-}
-.panel-group .panel-footer + .panel-collapse .panel-body {
- border-bottom: 1px solid #dddddd;
-}
+ margin-bottom: 20px; }
+ .panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 4px; }
+ .panel-group .panel + .panel {
+ margin-top: 5px; }
+ .panel-group .panel-heading {
+ border-bottom: 0; }
+ .panel-group .panel-heading + .panel-collapse > .panel-body,
+ .panel-group .panel-heading + .panel-collapse > .list-group {
+ border-top: 1px solid #ddd; }
+ .panel-group .panel-footer {
+ border-top: 0; }
+ .panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid #ddd; }
+
.panel-default {
- border-color: #dddddd;
-}
-.panel-default > .panel-heading {
- color: #333333;
- background-color: #f5f5f5;
- border-color: #dddddd;
-}
-.panel-default > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #dddddd;
-}
-.panel-default > .panel-heading .badge {
- color: #f5f5f5;
- background-color: #333333;
-}
-.panel-default > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #dddddd;
-}
+ border-color: #ddd; }
+ .panel-default > .panel-heading {
+ color: #333333;
+ background-color: #f5f5f5;
+ border-color: #ddd; }
+ .panel-default > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ddd; }
+ .panel-default > .panel-heading .badge {
+ color: #f5f5f5;
+ background-color: #333333; }
+ .panel-default > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ddd; }
+
.panel-primary {
- border-color: #337ab7;
-}
-.panel-primary > .panel-heading {
- color: #ffffff;
- background-color: #337ab7;
- border-color: #337ab7;
-}
-.panel-primary > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #337ab7;
-}
-.panel-primary > .panel-heading .badge {
- color: #337ab7;
- background-color: #ffffff;
-}
-.panel-primary > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #337ab7;
-}
+ border-color: #337ab7; }
+ .panel-primary > .panel-heading {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7; }
+ .panel-primary > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #337ab7; }
+ .panel-primary > .panel-heading .badge {
+ color: #337ab7;
+ background-color: #fff; }
+ .panel-primary > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #337ab7; }
+
.panel-success {
- border-color: #d6e9c6;
-}
-.panel-success > .panel-heading {
- color: #3c763d;
- background-color: #dff0d8;
- border-color: #d6e9c6;
-}
-.panel-success > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #d6e9c6;
-}
-.panel-success > .panel-heading .badge {
- color: #dff0d8;
- background-color: #3c763d;
-}
-.panel-success > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #d6e9c6;
-}
+ border-color: #d6e9c6; }
+ .panel-success > .panel-heading {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6; }
+ .panel-success > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #d6e9c6; }
+ .panel-success > .panel-heading .badge {
+ color: #dff0d8;
+ background-color: #3c763d; }
+ .panel-success > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #d6e9c6; }
+
.panel-info {
- border-color: #bce8f1;
-}
-.panel-info > .panel-heading {
- color: #31708f;
- background-color: #d9edf7;
- border-color: #bce8f1;
-}
-.panel-info > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #bce8f1;
-}
-.panel-info > .panel-heading .badge {
- color: #d9edf7;
- background-color: #31708f;
-}
-.panel-info > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #bce8f1;
-}
+ border-color: #bce8f1; }
+ .panel-info > .panel-heading {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1; }
+ .panel-info > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #bce8f1; }
+ .panel-info > .panel-heading .badge {
+ color: #d9edf7;
+ background-color: #31708f; }
+ .panel-info > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #bce8f1; }
+
.panel-warning {
- border-color: #faebcc;
-}
-.panel-warning > .panel-heading {
- color: #8a6d3b;
- background-color: #fcf8e3;
- border-color: #faebcc;
-}
-.panel-warning > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #faebcc;
-}
-.panel-warning > .panel-heading .badge {
- color: #fcf8e3;
- background-color: #8a6d3b;
-}
-.panel-warning > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #faebcc;
-}
+ border-color: #faebcc; }
+ .panel-warning > .panel-heading {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc; }
+ .panel-warning > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #faebcc; }
+ .panel-warning > .panel-heading .badge {
+ color: #fcf8e3;
+ background-color: #8a6d3b; }
+ .panel-warning > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #faebcc; }
+
.panel-danger {
- border-color: #ebccd1;
-}
-.panel-danger > .panel-heading {
- color: #a94442;
- background-color: #f2dede;
- border-color: #ebccd1;
-}
-.panel-danger > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #ebccd1;
-}
-.panel-danger > .panel-heading .badge {
- color: #f2dede;
- background-color: #a94442;
-}
-.panel-danger > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #ebccd1;
-}
+ border-color: #ebccd1; }
+ .panel-danger > .panel-heading {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1; }
+ .panel-danger > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ebccd1; }
+ .panel-danger > .panel-heading .badge {
+ color: #f2dede;
+ background-color: #a94442; }
+ .panel-danger > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ebccd1; }
+
.embed-responsive {
position: relative;
display: block;
height: 0;
padding: 0;
- overflow: hidden;
-}
-.embed-responsive .embed-responsive-item,
-.embed-responsive iframe,
-.embed-responsive embed,
-.embed-responsive object,
-.embed-responsive video {
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- height: 100%;
- width: 100%;
- border: 0;
-}
-.embed-responsive.embed-responsive-16by9 {
- padding-bottom: 56.25%;
-}
-.embed-responsive.embed-responsive-4by3 {
- padding-bottom: 75%;
-}
+ overflow: hidden; }
+ .embed-responsive .embed-responsive-item,
+ .embed-responsive iframe,
+ .embed-responsive embed,
+ .embed-responsive object,
+ .embed-responsive video {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ height: 100%;
+ width: 100%;
+ border: 0; }
+
+.embed-responsive-16by9 {
+ padding-bottom: 56.25%; }
+
+.embed-responsive-4by3 {
+ padding-bottom: 75%; }
+
.well {
min-height: 20px;
padding: 19px;
@@ -5341,48 +5214,46 @@
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 4px;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-}
-.well blockquote {
- border-color: #ddd;
- border-color: rgba(0, 0, 0, 0.15);
-}
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }
+ .well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, 0.15); }
+
.well-lg {
padding: 24px;
- border-radius: 6px;
-}
+ border-radius: 6px; }
+
.well-sm {
padding: 9px;
- border-radius: 3px;
-}
+ border-radius: 3px; }
+
.close {
float: right;
font-size: 21px;
font-weight: bold;
line-height: 1;
- color: #000000;
- text-shadow: 0 1px 0 #ffffff;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
opacity: 0.2;
- filter: alpha(opacity=20);
-}
-.close:hover,
-.close:focus {
- color: #000000;
- text-decoration: none;
- cursor: pointer;
- opacity: 0.5;
- filter: alpha(opacity=50);
-}
+ filter: alpha(opacity=20); }
+ .close:hover,
+ .close:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.5;
+ filter: alpha(opacity=50); }
+
button.close {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
- -webkit-appearance: none;
-}
+ -webkit-appearance: none; }
+
.modal-open {
- overflow: hidden;
-}
+ overflow: hidden; }
+
.modal {
display: none;
overflow: hidden;
@@ -5391,215 +5262,215 @@
right: 0;
bottom: 0;
left: 0;
- z-index: 1040;
+ z-index: 1050;
-webkit-overflow-scrolling: touch;
- outline: 0;
-}
-.modal.fade .modal-dialog {
- -webkit-transform: translate(0, -25%);
- -ms-transform: translate(0, -25%);
- transform: translate(0, -25%);
- transition: -webkit-transform 0.3s ease-out;
- transition: transform 0.3s ease-out;
-}
-.modal.in .modal-dialog {
- -webkit-transform: translate(0, 0);
- -ms-transform: translate(0, 0);
- transform: translate(0, 0);
-}
+ outline: 0; }
+ .modal.fade .modal-dialog {
+ -webkit-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+ transition: -webkit-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out; }
+ .modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ transform: translate(0, 0); }
+
.modal-open .modal {
overflow-x: hidden;
- overflow-y: auto;
-}
+ overflow-y: auto; }
+
.modal-dialog {
position: relative;
width: auto;
- margin: 10px;
-}
+ margin: 10px; }
+
.modal-content {
position: relative;
- background-color: #ffffff;
- border: 1px solid #999999;
+ background-color: #fff;
+ border: 1px solid #999;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 6px;
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
background-clip: padding-box;
- outline: 0;
-}
+ outline: 0; }
+
.modal-backdrop {
- position: absolute;
+ position: fixed;
top: 0;
right: 0;
+ bottom: 0;
left: 0;
- background-color: #000000;
-}
-.modal-backdrop.fade {
- opacity: 0;
- filter: alpha(opacity=0);
-}
-.modal-backdrop.in {
- opacity: 0.5;
- filter: alpha(opacity=50);
-}
+ z-index: 1040;
+ background-color: #000; }
+ .modal-backdrop.fade {
+ opacity: 0;
+ filter: alpha(opacity=0); }
+ .modal-backdrop.in {
+ opacity: 0.5;
+ filter: alpha(opacity=50); }
+
.modal-header {
padding: 15px;
border-bottom: 1px solid #e5e5e5;
- min-height: 16.42857143px;
-}
+ min-height: 16.42857px; }
+
.modal-header .close {
- margin-top: -2px;
-}
+ margin-top: -2px; }
+
.modal-title {
margin: 0;
- line-height: 1.42857143;
-}
+ line-height: 1.42857; }
+
.modal-body {
position: relative;
- padding: 15px;
-}
+ padding: 15px; }
+
.modal-footer {
padding: 15px;
text-align: right;
- border-top: 1px solid #e5e5e5;
-}
-.modal-footer .btn + .btn {
- margin-left: 5px;
- margin-bottom: 0;
-}
-.modal-footer .btn-group .btn + .btn {
- margin-left: -1px;
-}
-.modal-footer .btn-block + .btn-block {
- margin-left: 0;
-}
+ border-top: 1px solid #e5e5e5; }
+ .modal-footer:before,
+ .modal-footer:after {
+ content: " ";
+ display: table; }
+ .modal-footer:after {
+ clear: both; }
+ .modal-footer .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0; }
+ .modal-footer .btn-group .btn + .btn {
+ margin-left: -1px; }
+ .modal-footer .btn-block + .btn-block {
+ margin-left: 0; }
+
.modal-scrollbar-measure {
position: absolute;
top: -9999px;
width: 50px;
height: 50px;
- overflow: scroll;
-}
+ overflow: scroll; }
+
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
- margin: 30px auto;
- }
+ margin: 30px auto; }
.modal-content {
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
- }
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); }
.modal-sm {
- width: 300px;
- }
-}
+ width: 300px; } }
+
@media (min-width: 992px) {
.modal-lg {
- width: 900px;
- }
-}
+ width: 900px; } }
+
.tooltip {
position: absolute;
z-index: 1070;
display: block;
- visibility: visible;
- font-family: "Roboto", Helvetica, Arial, sans-serif;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: 1.42857;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
font-size: 12px;
- font-weight: normal;
- line-height: 1.4;
opacity: 0;
- filter: alpha(opacity=0);
-}
-.tooltip.in {
- opacity: 0.9;
- filter: alpha(opacity=90);
-}
-.tooltip.top {
- margin-top: -3px;
- padding: 5px 0;
-}
-.tooltip.right {
- margin-left: 3px;
- padding: 0 5px;
-}
-.tooltip.bottom {
- margin-top: 3px;
- padding: 5px 0;
-}
-.tooltip.left {
- margin-left: -3px;
- padding: 0 5px;
-}
+ filter: alpha(opacity=0); }
+ .tooltip.in {
+ opacity: 0.9;
+ filter: alpha(opacity=90); }
+ .tooltip.top {
+ margin-top: -3px;
+ padding: 5px 0; }
+ .tooltip.right {
+ margin-left: 3px;
+ padding: 0 5px; }
+ .tooltip.bottom {
+ margin-top: 3px;
+ padding: 5px 0; }
+ .tooltip.left {
+ margin-left: -3px;
+ padding: 0 5px; }
+
.tooltip-inner {
max-width: 200px;
padding: 3px 8px;
- color: #ffffff;
+ color: #fff;
text-align: center;
- text-decoration: none;
- background-color: #000000;
- border-radius: 4px;
-}
+ background-color: #000;
+ border-radius: 4px; }
+
.tooltip-arrow {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
- border-style: solid;
-}
+ border-style: solid; }
+
.tooltip.top .tooltip-arrow {
bottom: 0;
left: 50%;
margin-left: -5px;
border-width: 5px 5px 0;
- border-top-color: #000000;
-}
+ border-top-color: #000; }
+
.tooltip.top-left .tooltip-arrow {
bottom: 0;
right: 5px;
margin-bottom: -5px;
border-width: 5px 5px 0;
- border-top-color: #000000;
-}
+ border-top-color: #000; }
+
.tooltip.top-right .tooltip-arrow {
bottom: 0;
left: 5px;
margin-bottom: -5px;
border-width: 5px 5px 0;
- border-top-color: #000000;
-}
+ border-top-color: #000; }
+
.tooltip.right .tooltip-arrow {
top: 50%;
left: 0;
margin-top: -5px;
border-width: 5px 5px 5px 0;
- border-right-color: #000000;
-}
+ border-right-color: #000; }
+
.tooltip.left .tooltip-arrow {
top: 50%;
right: 0;
margin-top: -5px;
border-width: 5px 0 5px 5px;
- border-left-color: #000000;
-}
+ border-left-color: #000; }
+
.tooltip.bottom .tooltip-arrow {
top: 0;
left: 50%;
margin-left: -5px;
border-width: 0 5px 5px;
- border-bottom-color: #000000;
-}
+ border-bottom-color: #000; }
+
.tooltip.bottom-left .tooltip-arrow {
top: 0;
right: 5px;
margin-top: -5px;
border-width: 0 5px 5px;
- border-bottom-color: #000000;
-}
+ border-bottom-color: #000; }
+
.tooltip.bottom-right .tooltip-arrow {
top: 0;
left: 5px;
margin-top: -5px;
border-width: 0 5px 5px;
- border-bottom-color: #000000;
-}
+ border-bottom-color: #000; }
+
.popover {
position: absolute;
top: 0;
@@ -5608,42 +5479,48 @@
display: none;
max-width: 276px;
padding: 1px;
- font-family: "Roboto", Helvetica, Arial, sans-serif;
- font-size: 14px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-style: normal;
font-weight: normal;
- line-height: 1.42857143;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: 1.42857;
text-align: left;
- background-color: #ffffff;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ font-size: 14px;
+ background-color: #fff;
background-clip: padding-box;
- border: 1px solid #cccccc;
+ border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 6px;
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
- white-space: normal;
-}
-.popover.top {
- margin-top: -10px;
-}
-.popover.right {
- margin-left: 10px;
-}
-.popover.bottom {
- margin-top: 10px;
-}
-.popover.left {
- margin-left: -10px;
-}
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); }
+ .popover.top {
+ margin-top: -10px; }
+ .popover.right {
+ margin-left: 10px; }
+ .popover.bottom {
+ margin-top: 10px; }
+ .popover.left {
+ margin-left: -10px; }
+
.popover-title {
margin: 0;
padding: 8px 14px;
font-size: 14px;
background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb;
- border-radius: 5px 5px 0 0;
-}
+ border-radius: 5px 5px 0 0; }
+
.popover-content {
- padding: 9px 14px;
-}
+ padding: 9px 14px; }
+
.popover > .arrow,
.popover > .arrow:after {
position: absolute;
@@ -5651,151 +5528,135 @@
width: 0;
height: 0;
border-color: transparent;
- border-style: solid;
-}
+ border-style: solid; }
+
.popover > .arrow {
- border-width: 11px;
-}
+ border-width: 11px; }
+
.popover > .arrow:after {
border-width: 10px;
- content: "";
-}
+ content: ""; }
+
.popover.top > .arrow {
left: 50%;
margin-left: -11px;
border-bottom-width: 0;
border-top-color: #999999;
border-top-color: rgba(0, 0, 0, 0.25);
- bottom: -11px;
-}
-.popover.top > .arrow:after {
- content: " ";
- bottom: 1px;
- margin-left: -10px;
- border-bottom-width: 0;
- border-top-color: #ffffff;
-}
+ bottom: -11px; }
+ .popover.top > .arrow:after {
+ content: " ";
+ bottom: 1px;
+ margin-left: -10px;
+ border-bottom-width: 0;
+ border-top-color: #fff; }
+
.popover.right > .arrow {
top: 50%;
left: -11px;
margin-top: -11px;
border-left-width: 0;
border-right-color: #999999;
- border-right-color: rgba(0, 0, 0, 0.25);
-}
-.popover.right > .arrow:after {
- content: " ";
- left: 1px;
- bottom: -10px;
- border-left-width: 0;
- border-right-color: #ffffff;
-}
+ border-right-color: rgba(0, 0, 0, 0.25); }
+ .popover.right > .arrow:after {
+ content: " ";
+ left: 1px;
+ bottom: -10px;
+ border-left-width: 0;
+ border-right-color: #fff; }
+
.popover.bottom > .arrow {
left: 50%;
margin-left: -11px;
border-top-width: 0;
border-bottom-color: #999999;
border-bottom-color: rgba(0, 0, 0, 0.25);
- top: -11px;
-}
-.popover.bottom > .arrow:after {
- content: " ";
- top: 1px;
- margin-left: -10px;
- border-top-width: 0;
- border-bottom-color: #ffffff;
-}
+ top: -11px; }
+ .popover.bottom > .arrow:after {
+ content: " ";
+ top: 1px;
+ margin-left: -10px;
+ border-top-width: 0;
+ border-bottom-color: #fff; }
+
.popover.left > .arrow {
top: 50%;
right: -11px;
margin-top: -11px;
border-right-width: 0;
border-left-color: #999999;
- border-left-color: rgba(0, 0, 0, 0.25);
-}
-.popover.left > .arrow:after {
- content: " ";
- right: 1px;
- border-right-width: 0;
- border-left-color: #ffffff;
- bottom: -10px;
-}
+ border-left-color: rgba(0, 0, 0, 0.25); }
+ .popover.left > .arrow:after {
+ content: " ";
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: #fff;
+ bottom: -10px; }
+
.carousel {
- position: relative;
-}
+ position: relative; }
+
.carousel-inner {
position: relative;
overflow: hidden;
- width: 100%;
-}
-.carousel-inner > .item {
- display: none;
- position: relative;
- transition: 0.6s ease-in-out left;
-}
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
- line-height: 1;
-}
-@media all and (transform-3d), (-webkit-transform-3d) {
+ width: 100%; }
.carousel-inner > .item {
- transition: -webkit-transform 0.6s ease-in-out;
- transition: transform 0.6s ease-in-out;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- -webkit-perspective: 1000;
- perspective: 1000;
- }
- .carousel-inner > .item.next,
- .carousel-inner > .item.active.right {
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- left: 0;
- }
- .carousel-inner > .item.prev,
- .carousel-inner > .item.active.left {
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- left: 0;
- }
- .carousel-inner > .item.next.left,
- .carousel-inner > .item.prev.right,
- .carousel-inner > .item.active {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- left: 0;
- }
-}
-.carousel-inner > .active,
-.carousel-inner > .next,
-.carousel-inner > .prev {
- display: block;
-}
-.carousel-inner > .active {
- left: 0;
-}
-.carousel-inner > .next,
-.carousel-inner > .prev {
- position: absolute;
- top: 0;
- width: 100%;
-}
-.carousel-inner > .next {
- left: 100%;
-}
-.carousel-inner > .prev {
- left: -100%;
-}
-.carousel-inner > .next.left,
-.carousel-inner > .prev.right {
- left: 0;
-}
-.carousel-inner > .active.left {
- left: -100%;
-}
-.carousel-inner > .active.right {
- left: 100%;
-}
+ display: none;
+ position: relative;
+ transition: 0.6s ease-in-out left; }
+ .carousel-inner > .item > img,
+ .carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ line-height: 1; }
+ @media all and (transform-3d), (-webkit-transform-3d) {
+ .carousel-inner > .item {
+ transition: -webkit-transform 0.6s ease-in-out;
+ transition: transform 0.6s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-perspective: 1000px;
+ perspective: 1000px; }
+ .carousel-inner > .item.next,
+ .carousel-inner > .item.active.right {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ left: 0; }
+ .carousel-inner > .item.prev,
+ .carousel-inner > .item.active.left {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ left: 0; }
+ .carousel-inner > .item.next.left,
+ .carousel-inner > .item.prev.right,
+ .carousel-inner > .item.active {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ left: 0; } }
+ .carousel-inner > .active,
+ .carousel-inner > .next,
+ .carousel-inner > .prev {
+ display: block; }
+ .carousel-inner > .active {
+ left: 0; }
+ .carousel-inner > .next,
+ .carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%; }
+ .carousel-inner > .next {
+ left: 100%; }
+ .carousel-inner > .prev {
+ left: -100%; }
+ .carousel-inner > .next.left,
+ .carousel-inner > .prev.right {
+ left: 0; }
+ .carousel-inner > .active.left {
+ left: -100%; }
+ .carousel-inner > .active.right {
+ left: 100%; }
+
.carousel-control {
position: absolute;
top: 0;
@@ -5805,62 +5666,54 @@
opacity: 0.5;
filter: alpha(opacity=50);
font-size: 20px;
- color: #ffffff;
+ color: #fff;
text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
-}
-.carousel-control.left {
- background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
-}
-.carousel-control.right {
- left: auto;
- right: 0;
- background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
-}
-.carousel-control:hover,
-.carousel-control:focus {
- outline: 0;
- color: #ffffff;
- text-decoration: none;
- opacity: 0.9;
- filter: alpha(opacity=90);
-}
-.carousel-control .icon-prev,
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-left,
-.carousel-control .glyphicon-chevron-right {
- position: absolute;
- top: 50%;
- z-index: 5;
- display: inline-block;
-}
-.carousel-control .icon-prev,
-.carousel-control .glyphicon-chevron-left {
- left: 50%;
- margin-left: -10px;
-}
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-right {
- right: 50%;
- margin-right: -10px;
-}
-.carousel-control .icon-prev,
-.carousel-control .icon-next {
- width: 20px;
- height: 20px;
- margin-top: -10px;
- font-family: serif;
-}
-.carousel-control .icon-prev:before {
- content: '\2039';
-}
-.carousel-control .icon-next:before {
- content: '\203a';
-}
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }
+ .carousel-control.left {
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); }
+ .carousel-control.right {
+ left: auto;
+ right: 0;
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); }
+ .carousel-control:hover,
+ .carousel-control:focus {
+ outline: 0;
+ color: #fff;
+ text-decoration: none;
+ opacity: 0.9;
+ filter: alpha(opacity=90); }
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next,
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ margin-top: -10px;
+ z-index: 5;
+ display: inline-block; }
+ .carousel-control .icon-prev,
+ .carousel-control .glyphicon-chevron-left {
+ left: 50%;
+ margin-left: -10px; }
+ .carousel-control .icon-next,
+ .carousel-control .glyphicon-chevron-right {
+ right: 50%;
+ margin-right: -10px; }
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next {
+ width: 20px;
+ height: 20px;
+ line-height: 1;
+ font-family: serif; }
+ .carousel-control .icon-prev:before {
+ content: '\2039'; }
+ .carousel-control .icon-next:before {
+ content: '\203a'; }
+
.carousel-indicators {
position: absolute;
bottom: 10px;
@@ -5870,26 +5723,24 @@
margin-left: -30%;
padding-left: 0;
list-style: none;
- text-align: center;
-}
-.carousel-indicators li {
- display: inline-block;
- width: 10px;
- height: 10px;
- margin: 1px;
- text-indent: -999px;
- border: 1px solid #ffffff;
- border-radius: 10px;
- cursor: pointer;
- background-color: #000 \9;
- background-color: rgba(0, 0, 0, 0);
-}
-.carousel-indicators .active {
- margin: 0;
- width: 12px;
- height: 12px;
- background-color: #ffffff;
-}
+ text-align: center; }
+ .carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid #fff;
+ border-radius: 10px;
+ cursor: pointer;
+ background-color: #000 \9;
+ background-color: transparent; }
+ .carousel-indicators .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: #fff; }
+
.carousel-caption {
position: absolute;
left: 15%;
@@ -5898,13 +5749,12 @@
z-index: 10;
padding-top: 20px;
padding-bottom: 20px;
- color: #ffffff;
+ color: #fff;
text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
-}
-.carousel-caption .btn {
- text-shadow: none;
-}
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }
+ .carousel-caption .btn {
+ text-shadow: none; }
+
@media screen and (min-width: 768px) {
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right,
@@ -5913,118 +5763,76 @@
width: 30px;
height: 30px;
margin-top: -15px;
- font-size: 30px;
- }
+ font-size: 30px; }
.carousel-control .glyphicon-chevron-left,
.carousel-control .icon-prev {
- margin-left: -15px;
- }
+ margin-left: -15px; }
.carousel-control .glyphicon-chevron-right,
.carousel-control .icon-next {
- margin-right: -15px;
- }
+ margin-right: -15px; }
.carousel-caption {
left: 20%;
right: 20%;
- padding-bottom: 30px;
- }
+ padding-bottom: 30px; }
.carousel-indicators {
- bottom: 20px;
- }
-}
+ bottom: 20px; } }
+
.clearfix:before,
-.clearfix:after,
-.dl-horizontal dd:before,
-.dl-horizontal dd:after,
-.container:before,
-.container:after,
-.container-fluid:before,
-.container-fluid:after,
-.row:before,
-.row:after,
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after,
-.btn-toolbar:before,
-.btn-toolbar:after,
-.btn-group-vertical > .btn-group:before,
-.btn-group-vertical > .btn-group:after,
-.nav:before,
-.nav:after,
-.navbar:before,
-.navbar:after,
-.navbar-header:before,
-.navbar-header:after,
-.navbar-collapse:before,
-.navbar-collapse:after,
-.pager:before,
-.pager:after,
-.panel-body:before,
-.panel-body:after,
-.modal-footer:before,
-.modal-footer:after {
+.clearfix:after {
content: " ";
- display: table;
-}
-.clearfix:after,
-.dl-horizontal dd:after,
-.container:after,
-.container-fluid:after,
-.row:after,
-.form-horizontal .form-group:after,
-.btn-toolbar:after,
-.btn-group-vertical > .btn-group:after,
-.nav:after,
-.navbar:after,
-.navbar-header:after,
-.navbar-collapse:after,
-.pager:after,
-.panel-body:after,
-.modal-footer:after {
- clear: both;
-}
+ display: table; }
+
+.clearfix:after {
+ clear: both; }
+
.center-block {
display: block;
margin-left: auto;
- margin-right: auto;
-}
+ margin-right: auto; }
+
.pull-right {
- float: right !important;
-}
+ float: right !important; }
+
.pull-left {
- float: left !important;
-}
+ float: left !important; }
+
.hide {
- display: none !important;
-}
+ display: none !important; }
+
.show {
- display: block !important;
-}
+ display: block !important; }
+
.invisible {
- visibility: hidden;
-}
+ visibility: hidden; }
+
.text-hide {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
- border: 0;
-}
+ border: 0; }
+
.hidden {
- display: none !important;
- visibility: hidden !important;
-}
+ display: none !important; }
+
.affix {
- position: fixed;
-}
+ position: fixed; }
+
@-ms-viewport {
- width: device-width;
-}
-.visible-xs,
-.visible-sm,
-.visible-md,
+ width: device-width; }
+
+.visible-xs {
+ display: none !important; }
+
+.visible-sm {
+ display: none !important; }
+
+.visible-md {
+ display: none !important; }
+
.visible-lg {
- display: none !important;
-}
+ display: none !important; }
+
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
@@ -6037,197 +5845,153 @@
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
- display: none !important;
-}
+ display: none !important; }
+
@media (max-width: 767px) {
.visible-xs {
- display: block !important;
- }
+ display: block !important; }
table.visible-xs {
- display: table;
- }
+ display: table !important; }
tr.visible-xs {
- display: table-row !important;
- }
+ display: table-row !important; }
th.visible-xs,
td.visible-xs {
- display: table-cell !important;
- }
-}
+ display: table-cell !important; } }
+
@media (max-width: 767px) {
.visible-xs-block {
- display: block !important;
- }
-}
+ display: block !important; } }
+
@media (max-width: 767px) {
.visible-xs-inline {
- display: inline !important;
- }
-}
+ display: inline !important; } }
+
@media (max-width: 767px) {
.visible-xs-inline-block {
- display: inline-block !important;
- }
-}
+ display: inline-block !important; } }
+
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm {
- display: block !important;
- }
+ display: block !important; }
table.visible-sm {
- display: table;
- }
+ display: table !important; }
tr.visible-sm {
- display: table-row !important;
- }
+ display: table-row !important; }
th.visible-sm,
td.visible-sm {
- display: table-cell !important;
- }
-}
+ display: table-cell !important; } }
+
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-block {
- display: block !important;
- }
-}
+ display: block !important; } }
+
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline {
- display: inline !important;
- }
-}
+ display: inline !important; } }
+
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline-block {
- display: inline-block !important;
- }
-}
+ display: inline-block !important; } }
+
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md {
- display: block !important;
- }
+ display: block !important; }
table.visible-md {
- display: table;
- }
+ display: table !important; }
tr.visible-md {
- display: table-row !important;
- }
+ display: table-row !important; }
th.visible-md,
td.visible-md {
- display: table-cell !important;
- }
-}
+ display: table-cell !important; } }
+
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-block {
- display: block !important;
- }
-}
+ display: block !important; } }
+
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline {
- display: inline !important;
- }
-}
+ display: inline !important; } }
+
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline-block {
- display: inline-block !important;
- }
-}
+ display: inline-block !important; } }
+
@media (min-width: 1200px) {
.visible-lg {
- display: block !important;
- }
+ display: block !important; }
table.visible-lg {
- display: table;
- }
+ display: table !important; }
tr.visible-lg {
- display: table-row !important;
- }
+ display: table-row !important; }
th.visible-lg,
td.visible-lg {
- display: table-cell !important;
- }
-}
+ display: table-cell !important; } }
+
@media (min-width: 1200px) {
.visible-lg-block {
- display: block !important;
- }
-}
+ display: block !important; } }
+
@media (min-width: 1200px) {
.visible-lg-inline {
- display: inline !important;
- }
-}
+ display: inline !important; } }
+
@media (min-width: 1200px) {
.visible-lg-inline-block {
- display: inline-block !important;
- }
-}
+ display: inline-block !important; } }
+
@media (max-width: 767px) {
.hidden-xs {
- display: none !important;
- }
-}
+ display: none !important; } }
+
@media (min-width: 768px) and (max-width: 991px) {
.hidden-sm {
- display: none !important;
- }
-}
+ display: none !important; } }
+
@media (min-width: 992px) and (max-width: 1199px) {
.hidden-md {
- display: none !important;
- }
-}
+ display: none !important; } }
+
@media (min-width: 1200px) {
.hidden-lg {
- display: none !important;
- }
-}
+ display: none !important; } }
+
.visible-print {
- display: none !important;
-}
+ display: none !important; }
+
@media print {
.visible-print {
- display: block !important;
- }
+ display: block !important; }
table.visible-print {
- display: table;
- }
+ display: table !important; }
tr.visible-print {
- display: table-row !important;
- }
+ display: table-row !important; }
th.visible-print,
td.visible-print {
- display: table-cell !important;
- }
-}
+ display: table-cell !important; } }
+
.visible-print-block {
- display: none !important;
-}
-@media print {
- .visible-print-block {
- display: block !important;
- }
-}
+ display: none !important; }
+ @media print {
+ .visible-print-block {
+ display: block !important; } }
+
.visible-print-inline {
- display: none !important;
-}
-@media print {
- .visible-print-inline {
- display: inline !important;
- }
-}
+ display: none !important; }
+ @media print {
+ .visible-print-inline {
+ display: inline !important; } }
+
.visible-print-inline-block {
- display: none !important;
-}
-@media print {
- .visible-print-inline-block {
- display: inline-block !important;
- }
-}
+ display: none !important; }
+ @media print {
+ .visible-print-inline-block {
+ display: inline-block !important; } }
+
@media print {
.hidden-print {
- display: none !important;
- }
-}
-body,
-label,
-.checkbox label {
- font-weight: 300;
-}
+ display: none !important; } }
+
+body, label, .checkbox label {
+ font-weight: 300; }
+
+/*# sourceMappingURL=app.css.map */
--- a/server/src/resources/assets/less/app.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-@import "bootstrap/bootstrap";
-
-@btn-font-weight: 300;
-@font-family-sans-serif: "Roboto", Helvetica, Arial, sans-serif;
-
-body, label, .checkbox label {
- font-weight: 300;
-}
--- a/server/src/resources/assets/less/bootstrap/alerts.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-//
-// Alerts
-// --------------------------------------------------
-
-
-// Base styles
-// -------------------------
-
-.alert {
- padding: @alert-padding;
- margin-bottom: @line-height-computed;
- border: 1px solid transparent;
- border-radius: @alert-border-radius;
-
- // Headings for larger alerts
- h4 {
- margin-top: 0;
- // Specified for the h4 to prevent conflicts of changing @headings-color
- color: inherit;
- }
- // Provide class for links that match alerts
- .alert-link {
- font-weight: @alert-link-font-weight;
- }
-
- // Improve alignment and spacing of inner content
- > p,
- > ul {
- margin-bottom: 0;
- }
- > p + p {
- margin-top: 5px;
- }
-}
-
-// Dismissible alerts
-//
-// Expand the right padding and account for the close button's positioning.
-
-.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
-.alert-dismissible {
- padding-right: (@alert-padding + 20);
-
- // Adjust close link position
- .close {
- position: relative;
- top: -2px;
- right: -21px;
- color: inherit;
- }
-}
-
-// Alternate styles
-//
-// Generate contextual modifier classes for colorizing the alert.
-
-.alert-success {
- .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
-}
-.alert-info {
- .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
-}
-.alert-warning {
- .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
-}
-.alert-danger {
- .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
-}
--- a/server/src/resources/assets/less/bootstrap/badges.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-//
-// Badges
-// --------------------------------------------------
-
-
-// Base class
-.badge {
- display: inline-block;
- min-width: 10px;
- padding: 3px 7px;
- font-size: @font-size-small;
- font-weight: @badge-font-weight;
- color: @badge-color;
- line-height: @badge-line-height;
- vertical-align: baseline;
- white-space: nowrap;
- text-align: center;
- background-color: @badge-bg;
- border-radius: @badge-border-radius;
-
- // Empty badges collapse automatically (not available in IE8)
- &:empty {
- display: none;
- }
-
- // Quick fix for badges in buttons
- .btn & {
- position: relative;
- top: -1px;
- }
- .btn-xs & {
- top: 0;
- padding: 1px 5px;
- }
-
- // Hover state, but only for links
- a& {
- &:hover,
- &:focus {
- color: @badge-link-hover-color;
- text-decoration: none;
- cursor: pointer;
- }
- }
-
- // Account for badges in navs
- .list-group-item.active > &,
- .nav-pills > .active > a > & {
- color: @badge-active-color;
- background-color: @badge-active-bg;
- }
- .list-group-item > & {
- float: right;
- }
- .list-group-item > & + & {
- margin-right: 5px;
- }
- .nav-pills > li > a > & {
- margin-left: 3px;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/bootstrap.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-// Core variables and mixins
-@import "variables.less";
-@import "mixins.less";
-
-// Reset and dependencies
-@import "normalize.less";
-@import "print.less";
-@import "glyphicons.less";
-
-// Core CSS
-@import "scaffolding.less";
-@import "type.less";
-@import "code.less";
-@import "grid.less";
-@import "tables.less";
-@import "forms.less";
-@import "buttons.less";
-
-// Components
-@import "component-animations.less";
-@import "dropdowns.less";
-@import "button-groups.less";
-@import "input-groups.less";
-@import "navs.less";
-@import "navbar.less";
-@import "breadcrumbs.less";
-@import "pagination.less";
-@import "pager.less";
-@import "labels.less";
-@import "badges.less";
-@import "jumbotron.less";
-@import "thumbnails.less";
-@import "alerts.less";
-@import "progress-bars.less";
-@import "media.less";
-@import "list-group.less";
-@import "panels.less";
-@import "responsive-embed.less";
-@import "wells.less";
-@import "close.less";
-
-// Components w/ JavaScript
-@import "modals.less";
-@import "tooltip.less";
-@import "popovers.less";
-@import "carousel.less";
-
-// Utility classes
-@import "utilities.less";
-@import "responsive-utilities.less";
--- a/server/src/resources/assets/less/bootstrap/breadcrumbs.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-//
-// Breadcrumbs
-// --------------------------------------------------
-
-
-.breadcrumb {
- padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
- margin-bottom: @line-height-computed;
- list-style: none;
- background-color: @breadcrumb-bg;
- border-radius: @border-radius-base;
-
- > li {
- display: inline-block;
-
- + li:before {
- content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
- padding: 0 5px;
- color: @breadcrumb-color;
- }
- }
-
- > .active {
- color: @breadcrumb-active-color;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/button-groups.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,243 +0,0 @@
-//
-// Button groups
-// --------------------------------------------------
-
-// Make the div behave like a button
-.btn-group,
-.btn-group-vertical {
- position: relative;
- display: inline-block;
- vertical-align: middle; // match .btn alignment given font-size hack above
- > .btn {
- position: relative;
- float: left;
- // Bring the "active" button to the front
- &:hover,
- &:focus,
- &:active,
- &.active {
- z-index: 2;
- }
- }
-}
-
-// Prevent double borders when buttons are next to each other
-.btn-group {
- .btn + .btn,
- .btn + .btn-group,
- .btn-group + .btn,
- .btn-group + .btn-group {
- margin-left: -1px;
- }
-}
-
-// Optional: Group multiple button groups together for a toolbar
-.btn-toolbar {
- margin-left: -5px; // Offset the first child's margin
- &:extend(.clearfix all);
-
- .btn-group,
- .input-group {
- float: left;
- }
- > .btn,
- > .btn-group,
- > .input-group {
- margin-left: 5px;
- }
-}
-
-.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
- border-radius: 0;
-}
-
-// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
-.btn-group > .btn:first-child {
- margin-left: 0;
- &:not(:last-child):not(.dropdown-toggle) {
- .border-right-radius(0);
- }
-}
-// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
-.btn-group > .btn:last-child:not(:first-child),
-.btn-group > .dropdown-toggle:not(:first-child) {
- .border-left-radius(0);
-}
-
-// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
-.btn-group > .btn-group {
- float: left;
-}
-.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
- border-radius: 0;
-}
-.btn-group > .btn-group:first-child {
- > .btn:last-child,
- > .dropdown-toggle {
- .border-right-radius(0);
- }
-}
-.btn-group > .btn-group:last-child > .btn:first-child {
- .border-left-radius(0);
-}
-
-// On active and open, don't show outline
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
- outline: 0;
-}
-
-
-// Sizing
-//
-// Remix the default button sizing classes into new ones for easier manipulation.
-
-.btn-group-xs > .btn { &:extend(.btn-xs); }
-.btn-group-sm > .btn { &:extend(.btn-sm); }
-.btn-group-lg > .btn { &:extend(.btn-lg); }
-
-
-// Split button dropdowns
-// ----------------------
-
-// Give the line between buttons some depth
-.btn-group > .btn + .dropdown-toggle {
- padding-left: 8px;
- padding-right: 8px;
-}
-.btn-group > .btn-lg + .dropdown-toggle {
- padding-left: 12px;
- padding-right: 12px;
-}
-
-// The clickable button for toggling the menu
-// Remove the gradient and set the same inset shadow as the :active state
-.btn-group.open .dropdown-toggle {
- .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
-
- // Show no shadow for `.btn-link` since it has no other button styles.
- &.btn-link {
- .box-shadow(none);
- }
-}
-
-
-// Reposition the caret
-.btn .caret {
- margin-left: 0;
-}
-// Carets in other button sizes
-.btn-lg .caret {
- border-width: @caret-width-large @caret-width-large 0;
- border-bottom-width: 0;
-}
-// Upside down carets for .dropup
-.dropup .btn-lg .caret {
- border-width: 0 @caret-width-large @caret-width-large;
-}
-
-
-// Vertical button groups
-// ----------------------
-
-.btn-group-vertical {
- > .btn,
- > .btn-group,
- > .btn-group > .btn {
- display: block;
- float: none;
- width: 100%;
- max-width: 100%;
- }
-
- // Clear floats so dropdown menus can be properly placed
- > .btn-group {
- &:extend(.clearfix all);
- > .btn {
- float: none;
- }
- }
-
- > .btn + .btn,
- > .btn + .btn-group,
- > .btn-group + .btn,
- > .btn-group + .btn-group {
- margin-top: -1px;
- margin-left: 0;
- }
-}
-
-.btn-group-vertical > .btn {
- &:not(:first-child):not(:last-child) {
- border-radius: 0;
- }
- &:first-child:not(:last-child) {
- border-top-right-radius: @border-radius-base;
- .border-bottom-radius(0);
- }
- &:last-child:not(:first-child) {
- border-bottom-left-radius: @border-radius-base;
- .border-top-radius(0);
- }
-}
-.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
- border-radius: 0;
-}
-.btn-group-vertical > .btn-group:first-child:not(:last-child) {
- > .btn:last-child,
- > .dropdown-toggle {
- .border-bottom-radius(0);
- }
-}
-.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
- .border-top-radius(0);
-}
-
-
-// Justified button groups
-// ----------------------
-
-.btn-group-justified {
- display: table;
- width: 100%;
- table-layout: fixed;
- border-collapse: separate;
- > .btn,
- > .btn-group {
- float: none;
- display: table-cell;
- width: 1%;
- }
- > .btn-group .btn {
- width: 100%;
- }
-
- > .btn-group .dropdown-menu {
- left: auto;
- }
-}
-
-
-// Checkbox and radio options
-//
-// In order to support the browser's form validation feedback, powered by the
-// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
-// `display: none;` or `visibility: hidden;` as that also hides the popover.
-// Simply visually hiding the inputs via `opacity` would leave them clickable in
-// certain cases which is prevented by using `clip` and `pointer-events`.
-// This way, we ensure a DOM element is visible to position the popover from.
-//
-// See https://github.com/twbs/bootstrap/pull/12794 and
-// https://github.com/twbs/bootstrap/pull/14559 for more information.
-
-[data-toggle="buttons"] {
- > .btn,
- > .btn-group > .btn {
- input[type="radio"],
- input[type="checkbox"] {
- position: absolute;
- clip: rect(0,0,0,0);
- pointer-events: none;
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/buttons.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-//
-// Buttons
-// --------------------------------------------------
-
-
-// Base styles
-// --------------------------------------------------
-
-.btn {
- display: inline-block;
- margin-bottom: 0; // For input.btn
- font-weight: @btn-font-weight;
- text-align: center;
- vertical-align: middle;
- touch-action: manipulation;
- cursor: pointer;
- background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
- border: 1px solid transparent;
- white-space: nowrap;
- .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base);
- .user-select(none);
-
- &,
- &:active,
- &.active {
- &:focus,
- &.focus {
- .tab-focus();
- }
- }
-
- &:hover,
- &:focus,
- &.focus {
- color: @btn-default-color;
- text-decoration: none;
- }
-
- &:active,
- &.active {
- outline: 0;
- background-image: none;
- .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
- }
-
- &.disabled,
- &[disabled],
- fieldset[disabled] & {
- cursor: @cursor-disabled;
- pointer-events: none; // Future-proof disabling of clicks
- .opacity(.65);
- .box-shadow(none);
- }
-}
-
-
-// Alternate buttons
-// --------------------------------------------------
-
-.btn-default {
- .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);
-}
-.btn-primary {
- .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
-}
-// Success appears as green
-.btn-success {
- .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);
-}
-// Info appears as blue-green
-.btn-info {
- .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);
-}
-// Warning appears as orange
-.btn-warning {
- .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
-}
-// Danger and error appear as red
-.btn-danger {
- .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
-}
-
-
-// Link buttons
-// -------------------------
-
-// Make a button look and behave like a link
-.btn-link {
- color: @link-color;
- font-weight: normal;
- border-radius: 0;
-
- &,
- &:active,
- &.active,
- &[disabled],
- fieldset[disabled] & {
- background-color: transparent;
- .box-shadow(none);
- }
- &,
- &:hover,
- &:focus,
- &:active {
- border-color: transparent;
- }
- &:hover,
- &:focus {
- color: @link-hover-color;
- text-decoration: underline;
- background-color: transparent;
- }
- &[disabled],
- fieldset[disabled] & {
- &:hover,
- &:focus {
- color: @btn-link-disabled-color;
- text-decoration: none;
- }
- }
-}
-
-
-// Button Sizes
-// --------------------------------------------------
-
-.btn-lg {
- // line-height: ensure even-numbered height of button next to large input
- .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
-}
-.btn-sm {
- // line-height: ensure proper height of button next to small input
- .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
-}
-.btn-xs {
- .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small);
-}
-
-
-// Block button
-// --------------------------------------------------
-
-.btn-block {
- display: block;
- width: 100%;
-}
-
-// Vertically space out multiple block buttons
-.btn-block + .btn-block {
- margin-top: 5px;
-}
-
-// Specificity overrides
-input[type="submit"],
-input[type="reset"],
-input[type="button"] {
- &.btn-block {
- width: 100%;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/carousel.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,267 +0,0 @@
-//
-// Carousel
-// --------------------------------------------------
-
-
-// Wrapper for the slide container and indicators
-.carousel {
- position: relative;
-}
-
-.carousel-inner {
- position: relative;
- overflow: hidden;
- width: 100%;
-
- > .item {
- display: none;
- position: relative;
- .transition(.6s ease-in-out left);
-
- // Account for jankitude on images
- > img,
- > a > img {
- &:extend(.img-responsive);
- line-height: 1;
- }
-
- // WebKit CSS3 transforms for supported devices
- @media all and (transform-3d), (-webkit-transform-3d) {
- transition: transform .6s ease-in-out;
- backface-visibility: hidden;
- perspective: 1000;
-
- &.next,
- &.active.right {
- transform: translate3d(100%, 0, 0);
- left: 0;
- }
- &.prev,
- &.active.left {
- transform: translate3d(-100%, 0, 0);
- left: 0;
- }
- &.next.left,
- &.prev.right,
- &.active {
- transform: translate3d(0, 0, 0);
- left: 0;
- }
- }
- }
-
- > .active,
- > .next,
- > .prev {
- display: block;
- }
-
- > .active {
- left: 0;
- }
-
- > .next,
- > .prev {
- position: absolute;
- top: 0;
- width: 100%;
- }
-
- > .next {
- left: 100%;
- }
- > .prev {
- left: -100%;
- }
- > .next.left,
- > .prev.right {
- left: 0;
- }
-
- > .active.left {
- left: -100%;
- }
- > .active.right {
- left: 100%;
- }
-
-}
-
-// Left/right controls for nav
-// ---------------------------
-
-.carousel-control {
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- width: @carousel-control-width;
- .opacity(@carousel-control-opacity);
- font-size: @carousel-control-font-size;
- color: @carousel-control-color;
- text-align: center;
- text-shadow: @carousel-text-shadow;
- // We can't have this transition here because WebKit cancels the carousel
- // animation if you trip this while in the middle of another animation.
-
- // Set gradients for backgrounds
- &.left {
- #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
- }
- &.right {
- left: auto;
- right: 0;
- #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
- }
-
- // Hover/focus state
- &:hover,
- &:focus {
- outline: 0;
- color: @carousel-control-color;
- text-decoration: none;
- .opacity(.9);
- }
-
- // Toggles
- .icon-prev,
- .icon-next,
- .glyphicon-chevron-left,
- .glyphicon-chevron-right {
- position: absolute;
- top: 50%;
- z-index: 5;
- display: inline-block;
- }
- .icon-prev,
- .glyphicon-chevron-left {
- left: 50%;
- margin-left: -10px;
- }
- .icon-next,
- .glyphicon-chevron-right {
- right: 50%;
- margin-right: -10px;
- }
- .icon-prev,
- .icon-next {
- width: 20px;
- height: 20px;
- margin-top: -10px;
- font-family: serif;
- }
-
-
- .icon-prev {
- &:before {
- content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
- }
- }
- .icon-next {
- &:before {
- content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
- }
- }
-}
-
-// Optional indicator pips
-//
-// Add an unordered list with the following class and add a list item for each
-// slide your carousel holds.
-
-.carousel-indicators {
- position: absolute;
- bottom: 10px;
- left: 50%;
- z-index: 15;
- width: 60%;
- margin-left: -30%;
- padding-left: 0;
- list-style: none;
- text-align: center;
-
- li {
- display: inline-block;
- width: 10px;
- height: 10px;
- margin: 1px;
- text-indent: -999px;
- border: 1px solid @carousel-indicator-border-color;
- border-radius: 10px;
- cursor: pointer;
-
- // IE8-9 hack for event handling
- //
- // Internet Explorer 8-9 does not support clicks on elements without a set
- // `background-color`. We cannot use `filter` since that's not viewed as a
- // background color by the browser. Thus, a hack is needed.
- //
- // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
- // set alpha transparency for the best results possible.
- background-color: #000 \9; // IE8
- background-color: rgba(0,0,0,0); // IE9
- }
- .active {
- margin: 0;
- width: 12px;
- height: 12px;
- background-color: @carousel-indicator-active-bg;
- }
-}
-
-// Optional captions
-// -----------------------------
-// Hidden by default for smaller viewports
-.carousel-caption {
- position: absolute;
- left: 15%;
- right: 15%;
- bottom: 20px;
- z-index: 10;
- padding-top: 20px;
- padding-bottom: 20px;
- color: @carousel-caption-color;
- text-align: center;
- text-shadow: @carousel-text-shadow;
- & .btn {
- text-shadow: none; // No shadow for button elements in carousel-caption
- }
-}
-
-
-// Scale up controls for tablets and up
-@media screen and (min-width: @screen-sm-min) {
-
- // Scale up the controls a smidge
- .carousel-control {
- .glyphicon-chevron-left,
- .glyphicon-chevron-right,
- .icon-prev,
- .icon-next {
- width: 30px;
- height: 30px;
- margin-top: -15px;
- font-size: 30px;
- }
- .glyphicon-chevron-left,
- .icon-prev {
- margin-left: -15px;
- }
- .glyphicon-chevron-right,
- .icon-next {
- margin-right: -15px;
- }
- }
-
- // Show and left align the captions
- .carousel-caption {
- left: 20%;
- right: 20%;
- padding-bottom: 30px;
- }
-
- // Move up the indicators
- .carousel-indicators {
- bottom: 20px;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/close.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-//
-// Close icons
-// --------------------------------------------------
-
-
-.close {
- float: right;
- font-size: (@font-size-base * 1.5);
- font-weight: @close-font-weight;
- line-height: 1;
- color: @close-color;
- text-shadow: @close-text-shadow;
- .opacity(.2);
-
- &:hover,
- &:focus {
- color: @close-color;
- text-decoration: none;
- cursor: pointer;
- .opacity(.5);
- }
-
- // Additional properties for button version
- // iOS requires the button element instead of an anchor tag.
- // If you want the anchor version, it requires `href="#"`.
- button& {
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/code.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-//
-// Code (inline and block)
-// --------------------------------------------------
-
-
-// Inline and block code styles
-code,
-kbd,
-pre,
-samp {
- font-family: @font-family-monospace;
-}
-
-// Inline code
-code {
- padding: 2px 4px;
- font-size: 90%;
- color: @code-color;
- background-color: @code-bg;
- border-radius: @border-radius-base;
-}
-
-// User input typically entered via keyboard
-kbd {
- padding: 2px 4px;
- font-size: 90%;
- color: @kbd-color;
- background-color: @kbd-bg;
- border-radius: @border-radius-small;
- box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
-
- kbd {
- padding: 0;
- font-size: 100%;
- font-weight: bold;
- box-shadow: none;
- }
-}
-
-// Blocks of code
-pre {
- display: block;
- padding: ((@line-height-computed - 1) / 2);
- margin: 0 0 (@line-height-computed / 2);
- font-size: (@font-size-base - 1); // 14px to 13px
- line-height: @line-height-base;
- word-break: break-all;
- word-wrap: break-word;
- color: @pre-color;
- background-color: @pre-bg;
- border: 1px solid @pre-border-color;
- border-radius: @border-radius-base;
-
- // Account for some code outputs that place code tags in pre tags
- code {
- padding: 0;
- font-size: inherit;
- color: inherit;
- white-space: pre-wrap;
- background-color: transparent;
- border-radius: 0;
- }
-}
-
-// Enable scrollable blocks of code
-.pre-scrollable {
- max-height: @pre-scrollable-max-height;
- overflow-y: scroll;
-}
--- a/server/src/resources/assets/less/bootstrap/component-animations.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-//
-// Component animations
-// --------------------------------------------------
-
-// Heads up!
-//
-// We don't use the `.opacity()` mixin here since it causes a bug with text
-// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
-
-.fade {
- opacity: 0;
- .transition(opacity .15s linear);
- &.in {
- opacity: 1;
- }
-}
-
-.collapse {
- display: none;
- visibility: hidden;
-
- &.in { display: block; visibility: visible; }
- tr&.in { display: table-row; }
- tbody&.in { display: table-row-group; }
-}
-
-.collapsing {
- position: relative;
- height: 0;
- overflow: hidden;
- .transition-property(~"height, visibility");
- .transition-duration(.35s);
- .transition-timing-function(ease);
-}
--- a/server/src/resources/assets/less/bootstrap/dropdowns.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-//
-// Dropdown menus
-// --------------------------------------------------
-
-
-// Dropdown arrow/caret
-.caret {
- display: inline-block;
- width: 0;
- height: 0;
- margin-left: 2px;
- vertical-align: middle;
- border-top: @caret-width-base solid;
- border-right: @caret-width-base solid transparent;
- border-left: @caret-width-base solid transparent;
-}
-
-// The dropdown wrapper (div)
-.dropdown {
- position: relative;
-}
-
-// Prevent the focus on the dropdown toggle when closing dropdowns
-.dropdown-toggle:focus {
- outline: 0;
-}
-
-// The dropdown menu (ul)
-.dropdown-menu {
- position: absolute;
- top: 100%;
- left: 0;
- z-index: @zindex-dropdown;
- display: none; // none by default, but block on "open" of the menu
- float: left;
- min-width: 160px;
- padding: 5px 0;
- margin: 2px 0 0; // override default ul
- list-style: none;
- font-size: @font-size-base;
- text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
- background-color: @dropdown-bg;
- border: 1px solid @dropdown-fallback-border; // IE8 fallback
- border: 1px solid @dropdown-border;
- border-radius: @border-radius-base;
- .box-shadow(0 6px 12px rgba(0,0,0,.175));
- background-clip: padding-box;
-
- // Aligns the dropdown menu to right
- //
- // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
- &.pull-right {
- right: 0;
- left: auto;
- }
-
- // Dividers (basically an hr) within the dropdown
- .divider {
- .nav-divider(@dropdown-divider-bg);
- }
-
- // Links within the dropdown menu
- > li > a {
- display: block;
- padding: 3px 20px;
- clear: both;
- font-weight: normal;
- line-height: @line-height-base;
- color: @dropdown-link-color;
- white-space: nowrap; // prevent links from randomly breaking onto new lines
- }
-}
-
-// Hover/Focus state
-.dropdown-menu > li > a {
- &:hover,
- &:focus {
- text-decoration: none;
- color: @dropdown-link-hover-color;
- background-color: @dropdown-link-hover-bg;
- }
-}
-
-// Active state
-.dropdown-menu > .active > a {
- &,
- &:hover,
- &:focus {
- color: @dropdown-link-active-color;
- text-decoration: none;
- outline: 0;
- background-color: @dropdown-link-active-bg;
- }
-}
-
-// Disabled state
-//
-// Gray out text and ensure the hover/focus state remains gray
-
-.dropdown-menu > .disabled > a {
- &,
- &:hover,
- &:focus {
- color: @dropdown-link-disabled-color;
- }
-
- // Nuke hover/focus effects
- &:hover,
- &:focus {
- text-decoration: none;
- background-color: transparent;
- background-image: none; // Remove CSS gradient
- .reset-filter();
- cursor: @cursor-disabled;
- }
-}
-
-// Open state for the dropdown
-.open {
- // Show the menu
- > .dropdown-menu {
- display: block;
- }
-
- // Remove the outline when :focus is triggered
- > a {
- outline: 0;
- }
-}
-
-// Menu positioning
-//
-// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
-// menu with the parent.
-.dropdown-menu-right {
- left: auto; // Reset the default from `.dropdown-menu`
- right: 0;
-}
-// With v3, we enabled auto-flipping if you have a dropdown within a right
-// aligned nav component. To enable the undoing of that, we provide an override
-// to restore the default dropdown menu alignment.
-//
-// This is only for left-aligning a dropdown menu within a `.navbar-right` or
-// `.pull-right` nav component.
-.dropdown-menu-left {
- left: 0;
- right: auto;
-}
-
-// Dropdown section headers
-.dropdown-header {
- display: block;
- padding: 3px 20px;
- font-size: @font-size-small;
- line-height: @line-height-base;
- color: @dropdown-header-color;
- white-space: nowrap; // as with > li > a
-}
-
-// Backdrop to catch body clicks on mobile, etc.
-.dropdown-backdrop {
- position: fixed;
- left: 0;
- right: 0;
- bottom: 0;
- top: 0;
- z-index: (@zindex-dropdown - 10);
-}
-
-// Right aligned dropdowns
-.pull-right > .dropdown-menu {
- right: 0;
- left: auto;
-}
-
-// Allow for dropdowns to go bottom up (aka, dropup-menu)
-//
-// Just add .dropup after the standard .dropdown class and you're set, bro.
-// TODO: abstract this so that the navbar fixed styles are not placed here?
-
-.dropup,
-.navbar-fixed-bottom .dropdown {
- // Reverse the caret
- .caret {
- border-top: 0;
- border-bottom: @caret-width-base solid;
- content: "";
- }
- // Different positioning for bottom up menu
- .dropdown-menu {
- top: auto;
- bottom: 100%;
- margin-bottom: 1px;
- }
-}
-
-
-// Component alignment
-//
-// Reiterate per navbar.less and the modified component alignment there.
-
-@media (min-width: @grid-float-breakpoint) {
- .navbar-right {
- .dropdown-menu {
- .dropdown-menu-right();
- }
- // Necessary for overrides of the default right aligned menu.
- // Will remove come v4 in all likelihood.
- .dropdown-menu-left {
- .dropdown-menu-left();
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/forms.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,546 +0,0 @@
-//
-// Forms
-// --------------------------------------------------
-
-
-// Normalize non-controls
-//
-// Restyle and baseline non-control form elements.
-
-fieldset {
- padding: 0;
- margin: 0;
- border: 0;
- // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
- // so we reset that to ensure it behaves more like a standard block element.
- // See https://github.com/twbs/bootstrap/issues/12359.
- min-width: 0;
-}
-
-legend {
- display: block;
- width: 100%;
- padding: 0;
- margin-bottom: @line-height-computed;
- font-size: (@font-size-base * 1.5);
- line-height: inherit;
- color: @legend-color;
- border: 0;
- border-bottom: 1px solid @legend-border-color;
-}
-
-label {
- display: inline-block;
- max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
- margin-bottom: 5px;
- font-weight: bold;
-}
-
-
-// Normalize form controls
-//
-// While most of our form styles require extra classes, some basic normalization
-// is required to ensure optimum display with or without those classes to better
-// address browser inconsistencies.
-
-// Override content-box in Normalize (* isn't specific enough)
-input[type="search"] {
- .box-sizing(border-box);
-}
-
-// Position radios and checkboxes better
-input[type="radio"],
-input[type="checkbox"] {
- margin: 4px 0 0;
- margin-top: 1px \9; // IE8-9
- line-height: normal;
-}
-
-// Set the height of file controls to match text inputs
-input[type="file"] {
- display: block;
-}
-
-// Make range inputs behave like textual form controls
-input[type="range"] {
- display: block;
- width: 100%;
-}
-
-// Make multiple select elements height not fixed
-select[multiple],
-select[size] {
- height: auto;
-}
-
-// Focus for file, radio, and checkbox
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus {
- .tab-focus();
-}
-
-// Adjust output element
-output {
- display: block;
- padding-top: (@padding-base-vertical + 1);
- font-size: @font-size-base;
- line-height: @line-height-base;
- color: @input-color;
-}
-
-
-// Common form controls
-//
-// Shared size and type resets for form controls. Apply `.form-control` to any
-// of the following form controls:
-//
-// select
-// textarea
-// input[type="text"]
-// input[type="password"]
-// input[type="datetime"]
-// input[type="datetime-local"]
-// input[type="date"]
-// input[type="month"]
-// input[type="time"]
-// input[type="week"]
-// input[type="number"]
-// input[type="email"]
-// input[type="url"]
-// input[type="search"]
-// input[type="tel"]
-// input[type="color"]
-
-.form-control {
- display: block;
- width: 100%;
- height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
- padding: @padding-base-vertical @padding-base-horizontal;
- font-size: @font-size-base;
- line-height: @line-height-base;
- color: @input-color;
- background-color: @input-bg;
- background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
- border: 1px solid @input-border;
- border-radius: @input-border-radius;
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
- .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
-
- // Customize the `:focus` state to imitate native WebKit styles.
- .form-control-focus();
-
- // Placeholder
- .placeholder();
-
- // Disabled and read-only inputs
- //
- // HTML5 says that controls under a fieldset > legend:first-child won't be
- // disabled if the fieldset is disabled. Due to implementation difficulty, we
- // don't honor that edge case; we style them as disabled anyway.
- &[disabled],
- &[readonly],
- fieldset[disabled] & {
- cursor: @cursor-disabled;
- background-color: @input-bg-disabled;
- opacity: 1; // iOS fix for unreadable disabled content
- }
-
- // Reset height for `textarea`s
- textarea& {
- height: auto;
- }
-}
-
-
-// Search inputs in iOS
-//
-// This overrides the extra rounded corners on search inputs in iOS so that our
-// `.form-control` class can properly style them. Note that this cannot simply
-// be added to `.form-control` as it's not specific enough. For details, see
-// https://github.com/twbs/bootstrap/issues/11586.
-
-input[type="search"] {
- -webkit-appearance: none;
-}
-
-
-// Special styles for iOS temporal inputs
-//
-// In Mobile Safari, setting `display: block` on temporal inputs causes the
-// text within the input to become vertically misaligned. As a workaround, we
-// set a pixel line-height that matches the given height of the input, but only
-// for Safari.
-
-@media screen and (-webkit-min-device-pixel-ratio: 0) {
- input[type="date"],
- input[type="time"],
- input[type="datetime-local"],
- input[type="month"] {
- line-height: @input-height-base;
- }
- input[type="date"].input-sm,
- input[type="time"].input-sm,
- input[type="datetime-local"].input-sm,
- input[type="month"].input-sm {
- line-height: @input-height-small;
- }
- input[type="date"].input-lg,
- input[type="time"].input-lg,
- input[type="datetime-local"].input-lg,
- input[type="month"].input-lg {
- line-height: @input-height-large;
- }
-}
-
-
-// Form groups
-//
-// Designed to help with the organization and spacing of vertical forms. For
-// horizontal forms, use the predefined grid classes.
-
-.form-group {
- margin-bottom: 15px;
-}
-
-
-// Checkboxes and radios
-//
-// Indent the labels to position radios/checkboxes as hanging controls.
-
-.radio,
-.checkbox {
- position: relative;
- display: block;
- margin-top: 10px;
- margin-bottom: 10px;
-
- label {
- min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text
- padding-left: 20px;
- margin-bottom: 0;
- font-weight: normal;
- cursor: pointer;
- }
-}
-.radio input[type="radio"],
-.radio-inline input[type="radio"],
-.checkbox input[type="checkbox"],
-.checkbox-inline input[type="checkbox"] {
- position: absolute;
- margin-left: -20px;
- margin-top: 4px \9;
-}
-
-.radio + .radio,
-.checkbox + .checkbox {
- margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
-}
-
-// Radios and checkboxes on same line
-.radio-inline,
-.checkbox-inline {
- display: inline-block;
- padding-left: 20px;
- margin-bottom: 0;
- vertical-align: middle;
- font-weight: normal;
- cursor: pointer;
-}
-.radio-inline + .radio-inline,
-.checkbox-inline + .checkbox-inline {
- margin-top: 0;
- margin-left: 10px; // space out consecutive inline controls
-}
-
-// Apply same disabled cursor tweak as for inputs
-// Some special care is needed because <label>s don't inherit their parent's `cursor`.
-//
-// Note: Neither radios nor checkboxes can be readonly.
-input[type="radio"],
-input[type="checkbox"] {
- &[disabled],
- &.disabled,
- fieldset[disabled] & {
- cursor: @cursor-disabled;
- }
-}
-// These classes are used directly on <label>s
-.radio-inline,
-.checkbox-inline {
- &.disabled,
- fieldset[disabled] & {
- cursor: @cursor-disabled;
- }
-}
-// These classes are used on elements with <label> descendants
-.radio,
-.checkbox {
- &.disabled,
- fieldset[disabled] & {
- label {
- cursor: @cursor-disabled;
- }
- }
-}
-
-
-// Static form control text
-//
-// Apply class to a `p` element to make any string of text align with labels in
-// a horizontal form layout.
-
-.form-control-static {
- // Size it appropriately next to real form controls
- padding-top: (@padding-base-vertical + 1);
- padding-bottom: (@padding-base-vertical + 1);
- // Remove default margin from `p`
- margin-bottom: 0;
-
- &.input-lg,
- &.input-sm {
- padding-left: 0;
- padding-right: 0;
- }
-}
-
-
-// Form control sizing
-//
-// Build on `.form-control` with modifier classes to decrease or increase the
-// height and font-size of form controls.
-
-.input-sm,
-.form-group-sm .form-control {
- .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);
-}
-
-.input-lg,
-.form-group-lg .form-control {
- .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);
-}
-
-
-// Form control feedback states
-//
-// Apply contextual and semantic states to individual form controls.
-
-.has-feedback {
- // Enable absolute positioning
- position: relative;
-
- // Ensure icons don't overlap text
- .form-control {
- padding-right: (@input-height-base * 1.25);
- }
-}
-// Feedback icon (requires .glyphicon classes)
-.form-control-feedback {
- position: absolute;
- top: 0;
- right: 0;
- z-index: 2; // Ensure icon is above input groups
- display: block;
- width: @input-height-base;
- height: @input-height-base;
- line-height: @input-height-base;
- text-align: center;
- pointer-events: none;
-}
-.input-lg + .form-control-feedback {
- width: @input-height-large;
- height: @input-height-large;
- line-height: @input-height-large;
-}
-.input-sm + .form-control-feedback {
- width: @input-height-small;
- height: @input-height-small;
- line-height: @input-height-small;
-}
-
-// Feedback states
-.has-success {
- .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
-}
-.has-warning {
- .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);
-}
-.has-error {
- .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);
-}
-
-// Reposition feedback icon if input has visible label above
-.has-feedback label {
-
- & ~ .form-control-feedback {
- top: (@line-height-computed + 5); // Height of the `label` and its margin
- }
- &.sr-only ~ .form-control-feedback {
- top: 0;
- }
-}
-
-
-// Help text
-//
-// Apply to any element you wish to create light text for placement immediately
-// below a form control. Use for general help, formatting, or instructional text.
-
-.help-block {
- display: block; // account for any element using help-block
- margin-top: 5px;
- margin-bottom: 10px;
- color: lighten(@text-color, 25%); // lighten the text some for contrast
-}
-
-
-// Inline forms
-//
-// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
-// forms begin stacked on extra small (mobile) devices and then go inline when
-// viewports reach <768px.
-//
-// Requires wrapping inputs and labels with `.form-group` for proper display of
-// default HTML form controls and our custom form controls (e.g., input groups).
-//
-// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
-
-.form-inline {
-
- // Kick in the inline
- @media (min-width: @screen-sm-min) {
- // Inline-block all the things for "inline"
- .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
-
- // In navbar-form, allow folks to *not* use `.form-group`
- .form-control {
- display: inline-block;
- width: auto; // Prevent labels from stacking above inputs in `.form-group`
- vertical-align: middle;
- }
-
- // Make static controls behave like regular ones
- .form-control-static {
- display: inline-block;
- }
-
- .input-group {
- display: inline-table;
- vertical-align: middle;
-
- .input-group-addon,
- .input-group-btn,
- .form-control {
- width: auto;
- }
- }
-
- // Input groups need that 100% width though
- .input-group > .form-control {
- width: 100%;
- }
-
- .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
-
- // Remove default margin on radios/checkboxes that were used for stacking, and
- // then undo the floating of radios and checkboxes to match (which also avoids
- // a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).
- .radio,
- .checkbox {
- display: inline-block;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
-
- label {
- padding-left: 0;
- }
- }
- .radio input[type="radio"],
- .checkbox input[type="checkbox"] {
- position: relative;
- margin-left: 0;
- }
-
- // Re-override the feedback icon.
- .has-feedback .form-control-feedback {
- top: 0;
- }
- }
-}
-
-
-// Horizontal forms
-//
-// Horizontal forms are built on grid classes and allow you to create forms with
-// labels on the left and inputs on the right.
-
-.form-horizontal {
-
- // Consistent vertical alignment of radios and checkboxes
- //
- // Labels also get some reset styles, but that is scoped to a media query below.
- .radio,
- .checkbox,
- .radio-inline,
- .checkbox-inline {
- margin-top: 0;
- margin-bottom: 0;
- padding-top: (@padding-base-vertical + 1); // Default padding plus a border
- }
- // Account for padding we're adding to ensure the alignment and of help text
- // and other content below items
- .radio,
- .checkbox {
- min-height: (@line-height-computed + (@padding-base-vertical + 1));
- }
-
- // Make form groups behave like rows
- .form-group {
- .make-row();
- }
-
- // Reset spacing and right align labels, but scope to media queries so that
- // labels on narrow viewports stack the same as a default form example.
- @media (min-width: @screen-sm-min) {
- .control-label {
- text-align: right;
- margin-bottom: 0;
- padding-top: (@padding-base-vertical + 1); // Default padding plus a border
- }
- }
-
- // Validation states
- //
- // Reposition the icon because it's now within a grid column and columns have
- // `position: relative;` on them. Also accounts for the grid gutter padding.
- .has-feedback .form-control-feedback {
- right: (@grid-gutter-width / 2);
- }
-
- // Form group sizes
- //
- // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
- // inputs and labels within a `.form-group`.
- .form-group-lg {
- @media (min-width: @screen-sm-min) {
- .control-label {
- padding-top: ((@padding-large-vertical * @line-height-large) + 1);
- }
- }
- }
- .form-group-sm {
- @media (min-width: @screen-sm-min) {
- .control-label {
- padding-top: (@padding-small-vertical + 1);
- }
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/glyphicons.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-//
-// Glyphicons for Bootstrap
-//
-// Since icons are fonts, they can be placed anywhere text is placed and are
-// thus automatically sized to match the surrounding child. To use, create an
-// inline element with the appropriate classes, like so:
-//
-// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
-
-// Import the fonts
-@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#@{icon-font-svg-id}') format('svg');
-}
-
-// Catchall baseclass
-.glyphicon {
- position: relative;
- top: 1px;
- display: inline-block;
- font-family: 'Glyphicons Halflings';
- font-style: normal;
- font-weight: normal;
- line-height: 1;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-// Individual icons
-.glyphicon-asterisk { &:before { content: "\2a"; } }
-.glyphicon-plus { &:before { content: "\2b"; } }
-.glyphicon-euro,
-.glyphicon-eur { &:before { content: "\20ac"; } }
-.glyphicon-minus { &:before { content: "\2212"; } }
-.glyphicon-cloud { &:before { content: "\2601"; } }
-.glyphicon-envelope { &:before { content: "\2709"; } }
-.glyphicon-pencil { &:before { content: "\270f"; } }
-.glyphicon-glass { &:before { content: "\e001"; } }
-.glyphicon-music { &:before { content: "\e002"; } }
-.glyphicon-search { &:before { content: "\e003"; } }
-.glyphicon-heart { &:before { content: "\e005"; } }
-.glyphicon-star { &:before { content: "\e006"; } }
-.glyphicon-star-empty { &:before { content: "\e007"; } }
-.glyphicon-user { &:before { content: "\e008"; } }
-.glyphicon-film { &:before { content: "\e009"; } }
-.glyphicon-th-large { &:before { content: "\e010"; } }
-.glyphicon-th { &:before { content: "\e011"; } }
-.glyphicon-th-list { &:before { content: "\e012"; } }
-.glyphicon-ok { &:before { content: "\e013"; } }
-.glyphicon-remove { &:before { content: "\e014"; } }
-.glyphicon-zoom-in { &:before { content: "\e015"; } }
-.glyphicon-zoom-out { &:before { content: "\e016"; } }
-.glyphicon-off { &:before { content: "\e017"; } }
-.glyphicon-signal { &:before { content: "\e018"; } }
-.glyphicon-cog { &:before { content: "\e019"; } }
-.glyphicon-trash { &:before { content: "\e020"; } }
-.glyphicon-home { &:before { content: "\e021"; } }
-.glyphicon-file { &:before { content: "\e022"; } }
-.glyphicon-time { &:before { content: "\e023"; } }
-.glyphicon-road { &:before { content: "\e024"; } }
-.glyphicon-download-alt { &:before { content: "\e025"; } }
-.glyphicon-download { &:before { content: "\e026"; } }
-.glyphicon-upload { &:before { content: "\e027"; } }
-.glyphicon-inbox { &:before { content: "\e028"; } }
-.glyphicon-play-circle { &:before { content: "\e029"; } }
-.glyphicon-repeat { &:before { content: "\e030"; } }
-.glyphicon-refresh { &:before { content: "\e031"; } }
-.glyphicon-list-alt { &:before { content: "\e032"; } }
-.glyphicon-lock { &:before { content: "\e033"; } }
-.glyphicon-flag { &:before { content: "\e034"; } }
-.glyphicon-headphones { &:before { content: "\e035"; } }
-.glyphicon-volume-off { &:before { content: "\e036"; } }
-.glyphicon-volume-down { &:before { content: "\e037"; } }
-.glyphicon-volume-up { &:before { content: "\e038"; } }
-.glyphicon-qrcode { &:before { content: "\e039"; } }
-.glyphicon-barcode { &:before { content: "\e040"; } }
-.glyphicon-tag { &:before { content: "\e041"; } }
-.glyphicon-tags { &:before { content: "\e042"; } }
-.glyphicon-book { &:before { content: "\e043"; } }
-.glyphicon-bookmark { &:before { content: "\e044"; } }
-.glyphicon-print { &:before { content: "\e045"; } }
-.glyphicon-camera { &:before { content: "\e046"; } }
-.glyphicon-font { &:before { content: "\e047"; } }
-.glyphicon-bold { &:before { content: "\e048"; } }
-.glyphicon-italic { &:before { content: "\e049"; } }
-.glyphicon-text-height { &:before { content: "\e050"; } }
-.glyphicon-text-width { &:before { content: "\e051"; } }
-.glyphicon-align-left { &:before { content: "\e052"; } }
-.glyphicon-align-center { &:before { content: "\e053"; } }
-.glyphicon-align-right { &:before { content: "\e054"; } }
-.glyphicon-align-justify { &:before { content: "\e055"; } }
-.glyphicon-list { &:before { content: "\e056"; } }
-.glyphicon-indent-left { &:before { content: "\e057"; } }
-.glyphicon-indent-right { &:before { content: "\e058"; } }
-.glyphicon-facetime-video { &:before { content: "\e059"; } }
-.glyphicon-picture { &:before { content: "\e060"; } }
-.glyphicon-map-marker { &:before { content: "\e062"; } }
-.glyphicon-adjust { &:before { content: "\e063"; } }
-.glyphicon-tint { &:before { content: "\e064"; } }
-.glyphicon-edit { &:before { content: "\e065"; } }
-.glyphicon-share { &:before { content: "\e066"; } }
-.glyphicon-check { &:before { content: "\e067"; } }
-.glyphicon-move { &:before { content: "\e068"; } }
-.glyphicon-step-backward { &:before { content: "\e069"; } }
-.glyphicon-fast-backward { &:before { content: "\e070"; } }
-.glyphicon-backward { &:before { content: "\e071"; } }
-.glyphicon-play { &:before { content: "\e072"; } }
-.glyphicon-pause { &:before { content: "\e073"; } }
-.glyphicon-stop { &:before { content: "\e074"; } }
-.glyphicon-forward { &:before { content: "\e075"; } }
-.glyphicon-fast-forward { &:before { content: "\e076"; } }
-.glyphicon-step-forward { &:before { content: "\e077"; } }
-.glyphicon-eject { &:before { content: "\e078"; } }
-.glyphicon-chevron-left { &:before { content: "\e079"; } }
-.glyphicon-chevron-right { &:before { content: "\e080"; } }
-.glyphicon-plus-sign { &:before { content: "\e081"; } }
-.glyphicon-minus-sign { &:before { content: "\e082"; } }
-.glyphicon-remove-sign { &:before { content: "\e083"; } }
-.glyphicon-ok-sign { &:before { content: "\e084"; } }
-.glyphicon-question-sign { &:before { content: "\e085"; } }
-.glyphicon-info-sign { &:before { content: "\e086"; } }
-.glyphicon-screenshot { &:before { content: "\e087"; } }
-.glyphicon-remove-circle { &:before { content: "\e088"; } }
-.glyphicon-ok-circle { &:before { content: "\e089"; } }
-.glyphicon-ban-circle { &:before { content: "\e090"; } }
-.glyphicon-arrow-left { &:before { content: "\e091"; } }
-.glyphicon-arrow-right { &:before { content: "\e092"; } }
-.glyphicon-arrow-up { &:before { content: "\e093"; } }
-.glyphicon-arrow-down { &:before { content: "\e094"; } }
-.glyphicon-share-alt { &:before { content: "\e095"; } }
-.glyphicon-resize-full { &:before { content: "\e096"; } }
-.glyphicon-resize-small { &:before { content: "\e097"; } }
-.glyphicon-exclamation-sign { &:before { content: "\e101"; } }
-.glyphicon-gift { &:before { content: "\e102"; } }
-.glyphicon-leaf { &:before { content: "\e103"; } }
-.glyphicon-fire { &:before { content: "\e104"; } }
-.glyphicon-eye-open { &:before { content: "\e105"; } }
-.glyphicon-eye-close { &:before { content: "\e106"; } }
-.glyphicon-warning-sign { &:before { content: "\e107"; } }
-.glyphicon-plane { &:before { content: "\e108"; } }
-.glyphicon-calendar { &:before { content: "\e109"; } }
-.glyphicon-random { &:before { content: "\e110"; } }
-.glyphicon-comment { &:before { content: "\e111"; } }
-.glyphicon-magnet { &:before { content: "\e112"; } }
-.glyphicon-chevron-up { &:before { content: "\e113"; } }
-.glyphicon-chevron-down { &:before { content: "\e114"; } }
-.glyphicon-retweet { &:before { content: "\e115"; } }
-.glyphicon-shopping-cart { &:before { content: "\e116"; } }
-.glyphicon-folder-close { &:before { content: "\e117"; } }
-.glyphicon-folder-open { &:before { content: "\e118"; } }
-.glyphicon-resize-vertical { &:before { content: "\e119"; } }
-.glyphicon-resize-horizontal { &:before { content: "\e120"; } }
-.glyphicon-hdd { &:before { content: "\e121"; } }
-.glyphicon-bullhorn { &:before { content: "\e122"; } }
-.glyphicon-bell { &:before { content: "\e123"; } }
-.glyphicon-certificate { &:before { content: "\e124"; } }
-.glyphicon-thumbs-up { &:before { content: "\e125"; } }
-.glyphicon-thumbs-down { &:before { content: "\e126"; } }
-.glyphicon-hand-right { &:before { content: "\e127"; } }
-.glyphicon-hand-left { &:before { content: "\e128"; } }
-.glyphicon-hand-up { &:before { content: "\e129"; } }
-.glyphicon-hand-down { &:before { content: "\e130"; } }
-.glyphicon-circle-arrow-right { &:before { content: "\e131"; } }
-.glyphicon-circle-arrow-left { &:before { content: "\e132"; } }
-.glyphicon-circle-arrow-up { &:before { content: "\e133"; } }
-.glyphicon-circle-arrow-down { &:before { content: "\e134"; } }
-.glyphicon-globe { &:before { content: "\e135"; } }
-.glyphicon-wrench { &:before { content: "\e136"; } }
-.glyphicon-tasks { &:before { content: "\e137"; } }
-.glyphicon-filter { &:before { content: "\e138"; } }
-.glyphicon-briefcase { &:before { content: "\e139"; } }
-.glyphicon-fullscreen { &:before { content: "\e140"; } }
-.glyphicon-dashboard { &:before { content: "\e141"; } }
-.glyphicon-paperclip { &:before { content: "\e142"; } }
-.glyphicon-heart-empty { &:before { content: "\e143"; } }
-.glyphicon-link { &:before { content: "\e144"; } }
-.glyphicon-phone { &:before { content: "\e145"; } }
-.glyphicon-pushpin { &:before { content: "\e146"; } }
-.glyphicon-usd { &:before { content: "\e148"; } }
-.glyphicon-gbp { &:before { content: "\e149"; } }
-.glyphicon-sort { &:before { content: "\e150"; } }
-.glyphicon-sort-by-alphabet { &:before { content: "\e151"; } }
-.glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } }
-.glyphicon-sort-by-order { &:before { content: "\e153"; } }
-.glyphicon-sort-by-order-alt { &:before { content: "\e154"; } }
-.glyphicon-sort-by-attributes { &:before { content: "\e155"; } }
-.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } }
-.glyphicon-unchecked { &:before { content: "\e157"; } }
-.glyphicon-expand { &:before { content: "\e158"; } }
-.glyphicon-collapse-down { &:before { content: "\e159"; } }
-.glyphicon-collapse-up { &:before { content: "\e160"; } }
-.glyphicon-log-in { &:before { content: "\e161"; } }
-.glyphicon-flash { &:before { content: "\e162"; } }
-.glyphicon-log-out { &:before { content: "\e163"; } }
-.glyphicon-new-window { &:before { content: "\e164"; } }
-.glyphicon-record { &:before { content: "\e165"; } }
-.glyphicon-save { &:before { content: "\e166"; } }
-.glyphicon-open { &:before { content: "\e167"; } }
-.glyphicon-saved { &:before { content: "\e168"; } }
-.glyphicon-import { &:before { content: "\e169"; } }
-.glyphicon-export { &:before { content: "\e170"; } }
-.glyphicon-send { &:before { content: "\e171"; } }
-.glyphicon-floppy-disk { &:before { content: "\e172"; } }
-.glyphicon-floppy-saved { &:before { content: "\e173"; } }
-.glyphicon-floppy-remove { &:before { content: "\e174"; } }
-.glyphicon-floppy-save { &:before { content: "\e175"; } }
-.glyphicon-floppy-open { &:before { content: "\e176"; } }
-.glyphicon-credit-card { &:before { content: "\e177"; } }
-.glyphicon-transfer { &:before { content: "\e178"; } }
-.glyphicon-cutlery { &:before { content: "\e179"; } }
-.glyphicon-header { &:before { content: "\e180"; } }
-.glyphicon-compressed { &:before { content: "\e181"; } }
-.glyphicon-earphone { &:before { content: "\e182"; } }
-.glyphicon-phone-alt { &:before { content: "\e183"; } }
-.glyphicon-tower { &:before { content: "\e184"; } }
-.glyphicon-stats { &:before { content: "\e185"; } }
-.glyphicon-sd-video { &:before { content: "\e186"; } }
-.glyphicon-hd-video { &:before { content: "\e187"; } }
-.glyphicon-subtitles { &:before { content: "\e188"; } }
-.glyphicon-sound-stereo { &:before { content: "\e189"; } }
-.glyphicon-sound-dolby { &:before { content: "\e190"; } }
-.glyphicon-sound-5-1 { &:before { content: "\e191"; } }
-.glyphicon-sound-6-1 { &:before { content: "\e192"; } }
-.glyphicon-sound-7-1 { &:before { content: "\e193"; } }
-.glyphicon-copyright-mark { &:before { content: "\e194"; } }
-.glyphicon-registration-mark { &:before { content: "\e195"; } }
-.glyphicon-cloud-download { &:before { content: "\e197"; } }
-.glyphicon-cloud-upload { &:before { content: "\e198"; } }
-.glyphicon-tree-conifer { &:before { content: "\e199"; } }
-.glyphicon-tree-deciduous { &:before { content: "\e200"; } }
--- a/server/src/resources/assets/less/bootstrap/grid.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-//
-// Grid system
-// --------------------------------------------------
-
-
-// Container widths
-//
-// Set the container width, and override it for fixed navbars in media queries.
-
-.container {
- .container-fixed();
-
- @media (min-width: @screen-sm-min) {
- width: @container-sm;
- }
- @media (min-width: @screen-md-min) {
- width: @container-md;
- }
- @media (min-width: @screen-lg-min) {
- width: @container-lg;
- }
-}
-
-
-// Fluid container
-//
-// Utilizes the mixin meant for fixed width containers, but without any defined
-// width for fluid, full width layouts.
-
-.container-fluid {
- .container-fixed();
-}
-
-
-// Row
-//
-// Rows contain and clear the floats of your columns.
-
-.row {
- .make-row();
-}
-
-
-// Columns
-//
-// Common styles for small and large grid columns
-
-.make-grid-columns();
-
-
-// Extra small grid
-//
-// Columns, offsets, pushes, and pulls for extra small devices like
-// smartphones.
-
-.make-grid(xs);
-
-
-// Small grid
-//
-// Columns, offsets, pushes, and pulls for the small device range, from phones
-// to tablets.
-
-@media (min-width: @screen-sm-min) {
- .make-grid(sm);
-}
-
-
-// Medium grid
-//
-// Columns, offsets, pushes, and pulls for the desktop device range.
-
-@media (min-width: @screen-md-min) {
- .make-grid(md);
-}
-
-
-// Large grid
-//
-// Columns, offsets, pushes, and pulls for the large desktop device range.
-
-@media (min-width: @screen-lg-min) {
- .make-grid(lg);
-}
--- a/server/src/resources/assets/less/bootstrap/input-groups.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-//
-// Input groups
-// --------------------------------------------------
-
-// Base styles
-// -------------------------
-.input-group {
- position: relative; // For dropdowns
- display: table;
- border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
-
- // Undo padding and float of grid classes
- &[class*="col-"] {
- float: none;
- padding-left: 0;
- padding-right: 0;
- }
-
- .form-control {
- // Ensure that the input is always above the *appended* addon button for
- // proper border colors.
- position: relative;
- z-index: 2;
-
- // IE9 fubars the placeholder attribute in text inputs and the arrows on
- // select elements in input groups. To fix it, we float the input. Details:
- // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
- float: left;
-
- width: 100%;
- margin-bottom: 0;
- }
-}
-
-// Sizing options
-//
-// Remix the default form control sizing classes into new ones for easier
-// manipulation.
-
-.input-group-lg > .form-control,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn {
- .input-lg();
-}
-.input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn {
- .input-sm();
-}
-
-
-// Display as table-cell
-// -------------------------
-.input-group-addon,
-.input-group-btn,
-.input-group .form-control {
- display: table-cell;
-
- &:not(:first-child):not(:last-child) {
- border-radius: 0;
- }
-}
-// Addon and addon wrapper for buttons
-.input-group-addon,
-.input-group-btn {
- width: 1%;
- white-space: nowrap;
- vertical-align: middle; // Match the inputs
-}
-
-// Text input groups
-// -------------------------
-.input-group-addon {
- padding: @padding-base-vertical @padding-base-horizontal;
- font-size: @font-size-base;
- font-weight: normal;
- line-height: 1;
- color: @input-color;
- text-align: center;
- background-color: @input-group-addon-bg;
- border: 1px solid @input-group-addon-border-color;
- border-radius: @border-radius-base;
-
- // Sizing
- &.input-sm {
- padding: @padding-small-vertical @padding-small-horizontal;
- font-size: @font-size-small;
- border-radius: @border-radius-small;
- }
- &.input-lg {
- padding: @padding-large-vertical @padding-large-horizontal;
- font-size: @font-size-large;
- border-radius: @border-radius-large;
- }
-
- // Nuke default margins from checkboxes and radios to vertically center within.
- input[type="radio"],
- input[type="checkbox"] {
- margin-top: 0;
- }
-}
-
-// Reset rounded corners
-.input-group .form-control:first-child,
-.input-group-addon:first-child,
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group > .btn,
-.input-group-btn:first-child > .dropdown-toggle,
-.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
- .border-right-radius(0);
-}
-.input-group-addon:first-child {
- border-right: 0;
-}
-.input-group .form-control:last-child,
-.input-group-addon:last-child,
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group > .btn,
-.input-group-btn:last-child > .dropdown-toggle,
-.input-group-btn:first-child > .btn:not(:first-child),
-.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
- .border-left-radius(0);
-}
-.input-group-addon:last-child {
- border-left: 0;
-}
-
-// Button input groups
-// -------------------------
-.input-group-btn {
- position: relative;
- // Jankily prevent input button groups from wrapping with `white-space` and
- // `font-size` in combination with `inline-block` on buttons.
- font-size: 0;
- white-space: nowrap;
-
- // Negative margin for spacing, position for bringing hovered/focused/actived
- // element above the siblings.
- > .btn {
- position: relative;
- + .btn {
- margin-left: -1px;
- }
- // Bring the "active" button to the front
- &:hover,
- &:focus,
- &:active {
- z-index: 2;
- }
- }
-
- // Negative margin to only have a 1px border between the two
- &:first-child {
- > .btn,
- > .btn-group {
- margin-right: -1px;
- }
- }
- &:last-child {
- > .btn,
- > .btn-group {
- margin-left: -1px;
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/jumbotron.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-//
-// Jumbotron
-// --------------------------------------------------
-
-
-.jumbotron {
- padding: @jumbotron-padding (@jumbotron-padding / 2);
- margin-bottom: @jumbotron-padding;
- color: @jumbotron-color;
- background-color: @jumbotron-bg;
-
- h1,
- .h1 {
- color: @jumbotron-heading-color;
- }
- p {
- margin-bottom: (@jumbotron-padding / 2);
- font-size: @jumbotron-font-size;
- font-weight: 200;
- }
-
- > hr {
- border-top-color: darken(@jumbotron-bg, 10%);
- }
-
- .container &,
- .container-fluid & {
- border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
- }
-
- .container {
- max-width: 100%;
- }
-
- @media screen and (min-width: @screen-sm-min) {
- padding: (@jumbotron-padding * 1.6) 0;
-
- .container &,
- .container-fluid & {
- padding-left: (@jumbotron-padding * 2);
- padding-right: (@jumbotron-padding * 2);
- }
-
- h1,
- .h1 {
- font-size: (@font-size-base * 4.5);
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/labels.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-//
-// Labels
-// --------------------------------------------------
-
-.label {
- display: inline;
- padding: .2em .6em .3em;
- font-size: 75%;
- font-weight: bold;
- line-height: 1;
- color: @label-color;
- text-align: center;
- white-space: nowrap;
- vertical-align: baseline;
- border-radius: .25em;
-
- // Add hover effects, but only for links
- a& {
- &:hover,
- &:focus {
- color: @label-link-hover-color;
- text-decoration: none;
- cursor: pointer;
- }
- }
-
- // Empty labels collapse automatically (not available in IE8)
- &:empty {
- display: none;
- }
-
- // Quick fix for labels in buttons
- .btn & {
- position: relative;
- top: -1px;
- }
-}
-
-// Colors
-// Contextual variations (linked labels get darker on :hover)
-
-.label-default {
- .label-variant(@label-default-bg);
-}
-
-.label-primary {
- .label-variant(@label-primary-bg);
-}
-
-.label-success {
- .label-variant(@label-success-bg);
-}
-
-.label-info {
- .label-variant(@label-info-bg);
-}
-
-.label-warning {
- .label-variant(@label-warning-bg);
-}
-
-.label-danger {
- .label-variant(@label-danger-bg);
-}
--- a/server/src/resources/assets/less/bootstrap/list-group.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-//
-// List groups
-// --------------------------------------------------
-
-
-// Base class
-//
-// Easily usable on <ul>, <ol>, or <div>.
-
-.list-group {
- // No need to set list-style: none; since .list-group-item is block level
- margin-bottom: 20px;
- padding-left: 0; // reset padding because ul and ol
-}
-
-
-// Individual list items
-//
-// Use on `li`s or `div`s within the `.list-group` parent.
-
-.list-group-item {
- position: relative;
- display: block;
- padding: 10px 15px;
- // Place the border on the list items and negative margin up for better styling
- margin-bottom: -1px;
- background-color: @list-group-bg;
- border: 1px solid @list-group-border;
-
- // Round the first and last items
- &:first-child {
- .border-top-radius(@list-group-border-radius);
- }
- &:last-child {
- margin-bottom: 0;
- .border-bottom-radius(@list-group-border-radius);
- }
-}
-
-
-// Linked list items
-//
-// Use anchor elements instead of `li`s or `div`s to create linked list items.
-// Includes an extra `.active` modifier class for showing selected items.
-
-a.list-group-item {
- color: @list-group-link-color;
-
- .list-group-item-heading {
- color: @list-group-link-heading-color;
- }
-
- // Hover state
- &:hover,
- &:focus {
- text-decoration: none;
- color: @list-group-link-hover-color;
- background-color: @list-group-hover-bg;
- }
-}
-
-.list-group-item {
- // Disabled state
- &.disabled,
- &.disabled:hover,
- &.disabled:focus {
- background-color: @list-group-disabled-bg;
- color: @list-group-disabled-color;
- cursor: @cursor-disabled;
-
- // Force color to inherit for custom content
- .list-group-item-heading {
- color: inherit;
- }
- .list-group-item-text {
- color: @list-group-disabled-text-color;
- }
- }
-
- // Active class on item itself, not parent
- &.active,
- &.active:hover,
- &.active:focus {
- z-index: 2; // Place active items above their siblings for proper border styling
- color: @list-group-active-color;
- background-color: @list-group-active-bg;
- border-color: @list-group-active-border;
-
- // Force color to inherit for custom content
- .list-group-item-heading,
- .list-group-item-heading > small,
- .list-group-item-heading > .small {
- color: inherit;
- }
- .list-group-item-text {
- color: @list-group-active-text-color;
- }
- }
-}
-
-
-// Contextual variants
-//
-// Add modifier classes to change text and background color on individual items.
-// Organizationally, this must come after the `:hover` states.
-
-.list-group-item-variant(success; @state-success-bg; @state-success-text);
-.list-group-item-variant(info; @state-info-bg; @state-info-text);
-.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);
-.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);
-
-
-// Custom content options
-//
-// Extra classes for creating well-formatted content within `.list-group-item`s.
-
-.list-group-item-heading {
- margin-top: 0;
- margin-bottom: 5px;
-}
-.list-group-item-text {
- margin-bottom: 0;
- line-height: 1.3;
-}
--- a/server/src/resources/assets/less/bootstrap/media.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-.media {
- // Proper spacing between instances of .media
- margin-top: 15px;
-
- &:first-child {
- margin-top: 0;
- }
-}
-
-.media-right,
-.media > .pull-right {
- padding-left: 10px;
-}
-
-.media-left,
-.media > .pull-left {
- padding-right: 10px;
-}
-
-.media-left,
-.media-right,
-.media-body {
- display: table-cell;
- vertical-align: top;
-}
-
-.media-middle {
- vertical-align: middle;
-}
-
-.media-bottom {
- vertical-align: bottom;
-}
-
-// Reset margins on headings for tighter default spacing
-.media-heading {
- margin-top: 0;
- margin-bottom: 5px;
-}
-
-// Media list variation
-//
-// Undo default ul/ol styles
-.media-list {
- padding-left: 0;
- list-style: none;
-}
--- a/server/src/resources/assets/less/bootstrap/mixins.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-// Mixins
-// --------------------------------------------------
-
-// Utilities
-@import "mixins/hide-text.less";
-@import "mixins/opacity.less";
-@import "mixins/image.less";
-@import "mixins/labels.less";
-@import "mixins/reset-filter.less";
-@import "mixins/resize.less";
-@import "mixins/responsive-visibility.less";
-@import "mixins/size.less";
-@import "mixins/tab-focus.less";
-@import "mixins/text-emphasis.less";
-@import "mixins/text-overflow.less";
-@import "mixins/vendor-prefixes.less";
-
-// Components
-@import "mixins/alerts.less";
-@import "mixins/buttons.less";
-@import "mixins/panels.less";
-@import "mixins/pagination.less";
-@import "mixins/list-group.less";
-@import "mixins/nav-divider.less";
-@import "mixins/forms.less";
-@import "mixins/progress-bar.less";
-@import "mixins/table-row.less";
-
-// Skins
-@import "mixins/background-variant.less";
-@import "mixins/border-radius.less";
-@import "mixins/gradients.less";
-
-// Layout
-@import "mixins/clearfix.less";
-@import "mixins/center-block.less";
-@import "mixins/nav-vertical-align.less";
-@import "mixins/grid-framework.less";
-@import "mixins/grid.less";
--- a/server/src/resources/assets/less/bootstrap/mixins/alerts.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-// Alerts
-
-.alert-variant(@background; @border; @text-color) {
- background-color: @background;
- border-color: @border;
- color: @text-color;
-
- hr {
- border-top-color: darken(@border, 5%);
- }
- .alert-link {
- color: darken(@text-color, 10%);
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/background-variant.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-// Contextual backgrounds
-
-.bg-variant(@color) {
- background-color: @color;
- a&:hover {
- background-color: darken(@color, 10%);
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/border-radius.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-// Single side border-radius
-
-.border-top-radius(@radius) {
- border-top-right-radius: @radius;
- border-top-left-radius: @radius;
-}
-.border-right-radius(@radius) {
- border-bottom-right-radius: @radius;
- border-top-right-radius: @radius;
-}
-.border-bottom-radius(@radius) {
- border-bottom-right-radius: @radius;
- border-bottom-left-radius: @radius;
-}
-.border-left-radius(@radius) {
- border-bottom-left-radius: @radius;
- border-top-left-radius: @radius;
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/buttons.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-// Button variants
-//
-// Easily pump out default styles, as well as :hover, :focus, :active,
-// and disabled options for all buttons
-
-.button-variant(@color; @background; @border) {
- color: @color;
- background-color: @background;
- border-color: @border;
-
- &:hover,
- &:focus,
- &.focus,
- &:active,
- &.active,
- .open > .dropdown-toggle& {
- color: @color;
- background-color: darken(@background, 10%);
- border-color: darken(@border, 12%);
- }
- &:active,
- &.active,
- .open > .dropdown-toggle& {
- background-image: none;
- }
- &.disabled,
- &[disabled],
- fieldset[disabled] & {
- &,
- &:hover,
- &:focus,
- &.focus,
- &:active,
- &.active {
- background-color: @background;
- border-color: @border;
- }
- }
-
- .badge {
- color: @background;
- background-color: @color;
- }
-}
-
-// Button sizes
-.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- line-height: @line-height;
- border-radius: @border-radius;
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/center-block.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-// Center-align a block level element
-
-.center-block() {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/clearfix.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-// Clearfix
-//
-// For modern browsers
-// 1. The space content is one way to avoid an Opera bug when the
-// contenteditable attribute is included anywhere else in the document.
-// Otherwise it causes space to appear at the top and bottom of elements
-// that are clearfixed.
-// 2. The use of `table` rather than `block` is only necessary if using
-// `:before` to contain the top-margins of child elements.
-//
-// Source: http://nicolasgallagher.com/micro-clearfix-hack/
-
-.clearfix() {
- &:before,
- &:after {
- content: " "; // 1
- display: table; // 2
- }
- &:after {
- clear: both;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/forms.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-// Form validation states
-//
-// Used in forms.less to generate the form validation CSS for warnings, errors,
-// and successes.
-
-.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
- // Color the label and help text
- .help-block,
- .control-label,
- .radio,
- .checkbox,
- .radio-inline,
- .checkbox-inline,
- &.radio label,
- &.checkbox label,
- &.radio-inline label,
- &.checkbox-inline label {
- color: @text-color;
- }
- // Set the border and box shadow on specific inputs to match
- .form-control {
- border-color: @border-color;
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
- &:focus {
- border-color: darken(@border-color, 10%);
- @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
- .box-shadow(@shadow);
- }
- }
- // Set validation states also for addons
- .input-group-addon {
- color: @text-color;
- border-color: @border-color;
- background-color: @background-color;
- }
- // Optional feedback icon
- .form-control-feedback {
- color: @text-color;
- }
-}
-
-
-// Form control focus state
-//
-// Generate a customized focus state and for any input with the specified color,
-// which defaults to the `@input-border-focus` variable.
-//
-// We highly encourage you to not customize the default value, but instead use
-// this to tweak colors on an as-needed basis. This aesthetic change is based on
-// WebKit's default styles, but applicable to a wider range of browsers. Its
-// usability and accessibility should be taken into account with any change.
-//
-// Example usage: change the default blue border and shadow to white for better
-// contrast against a dark gray background.
-.form-control-focus(@color: @input-border-focus) {
- @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
- &:focus {
- border-color: @color;
- outline: 0;
- .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
- }
-}
-
-// Form control sizing
-//
-// Relative text size, padding, and border-radii changes for form controls. For
-// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
-// element gets special love because it's special, and that's a fact!
-.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
- height: @input-height;
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- line-height: @line-height;
- border-radius: @border-radius;
-
- select& {
- height: @input-height;
- line-height: @input-height;
- }
-
- textarea&,
- select[multiple]& {
- height: auto;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/gradients.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-// Gradients
-
-#gradient {
-
- // Horizontal gradient, from left to right
- //
- // Creates two color stops, start and end, by specifying a color and position for each color stop.
- // Color stops are not available in IE9 and below.
- .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
- background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
- background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
- background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- background-repeat: repeat-x;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
- }
-
- // Vertical gradient, from top to bottom
- //
- // Creates two color stops, start and end, by specifying a color and position for each color stop.
- // Color stops are not available in IE9 and below.
- .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
- background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
- background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
- background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- background-repeat: repeat-x;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
- }
-
- .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
- background-repeat: repeat-x;
- background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
- background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
- background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- }
- .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
- background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
- background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
- background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
- background-repeat: no-repeat;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
- }
- .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
- background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
- background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
- background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
- background-repeat: no-repeat;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
- }
- .radial(@inner-color: #555; @outer-color: #333) {
- background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
- background-image: radial-gradient(circle, @inner-color, @outer-color);
- background-repeat: no-repeat;
- }
- .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
- background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/grid-framework.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-// Framework grid generation
-//
-// Used only by Bootstrap to generate the correct number of grid classes given
-// any value of `@grid-columns`.
-
-.make-grid-columns() {
- // Common styles for all sizes of grid columns, widths 1-12
- .col(@index) { // initial
- @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
- .col((@index + 1), @item);
- }
- .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
- @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
- .col((@index + 1), ~"@{list}, @{item}");
- }
- .col(@index, @list) when (@index > @grid-columns) { // terminal
- @{list} {
- position: relative;
- // Prevent columns from collapsing when empty
- min-height: 1px;
- // Inner gutter via padding
- padding-left: (@grid-gutter-width / 2);
- padding-right: (@grid-gutter-width / 2);
- }
- }
- .col(1); // kickstart it
-}
-
-.float-grid-columns(@class) {
- .col(@index) { // initial
- @item: ~".col-@{class}-@{index}";
- .col((@index + 1), @item);
- }
- .col(@index, @list) when (@index =< @grid-columns) { // general
- @item: ~".col-@{class}-@{index}";
- .col((@index + 1), ~"@{list}, @{item}");
- }
- .col(@index, @list) when (@index > @grid-columns) { // terminal
- @{list} {
- float: left;
- }
- }
- .col(1); // kickstart it
-}
-
-.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
- .col-@{class}-@{index} {
- width: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {
- .col-@{class}-push-@{index} {
- left: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {
- .col-@{class}-push-0 {
- left: auto;
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {
- .col-@{class}-pull-@{index} {
- right: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {
- .col-@{class}-pull-0 {
- right: auto;
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = offset) {
- .col-@{class}-offset-@{index} {
- margin-left: percentage((@index / @grid-columns));
- }
-}
-
-// Basic looping in LESS
-.loop-grid-columns(@index, @class, @type) when (@index >= 0) {
- .calc-grid-column(@index, @class, @type);
- // next iteration
- .loop-grid-columns((@index - 1), @class, @type);
-}
-
-// Create grid for specific class
-.make-grid(@class) {
- .float-grid-columns(@class);
- .loop-grid-columns(@grid-columns, @class, width);
- .loop-grid-columns(@grid-columns, @class, pull);
- .loop-grid-columns(@grid-columns, @class, push);
- .loop-grid-columns(@grid-columns, @class, offset);
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/grid.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-// Grid system
-//
-// Generate semantic grid columns with these mixins.
-
-// Centered container element
-.container-fixed(@gutter: @grid-gutter-width) {
- margin-right: auto;
- margin-left: auto;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
- &:extend(.clearfix all);
-}
-
-// Creates a wrapper for a series of columns
-.make-row(@gutter: @grid-gutter-width) {
- margin-left: (@gutter / -2);
- margin-right: (@gutter / -2);
- &:extend(.clearfix all);
-}
-
-// Generate the extra small columns
-.make-xs-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- float: left;
- width: percentage((@columns / @grid-columns));
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-}
-.make-xs-column-offset(@columns) {
- margin-left: percentage((@columns / @grid-columns));
-}
-.make-xs-column-push(@columns) {
- left: percentage((@columns / @grid-columns));
-}
-.make-xs-column-pull(@columns) {
- right: percentage((@columns / @grid-columns));
-}
-
-// Generate the small columns
-.make-sm-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-sm-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-offset(@columns) {
- @media (min-width: @screen-sm-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-push(@columns) {
- @media (min-width: @screen-sm-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-pull(@columns) {
- @media (min-width: @screen-sm-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-// Generate the medium columns
-.make-md-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-md-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-offset(@columns) {
- @media (min-width: @screen-md-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-push(@columns) {
- @media (min-width: @screen-md-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-pull(@columns) {
- @media (min-width: @screen-md-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-// Generate the large columns
-.make-lg-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-lg-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-offset(@columns) {
- @media (min-width: @screen-lg-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-push(@columns) {
- @media (min-width: @screen-lg-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-pull(@columns) {
- @media (min-width: @screen-lg-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/hide-text.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-// CSS image replacement
-//
-// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
-// mixins being reused as classes with the same name, this doesn't hold up. As
-// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
-//
-// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
-
-// Deprecated as of v3.0.1 (will be removed in v4)
-.hide-text() {
- font: ~"0/0" a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
-}
-
-// New mixin to use as of v3.0.1
-.text-hide() {
- .hide-text();
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/image.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-// Image Mixins
-// - Responsive image
-// - Retina image
-
-
-// Responsive image
-//
-// Keep images from scaling beyond the width of their parents.
-.img-responsive(@display: block) {
- display: @display;
- max-width: 100%; // Part 1: Set a maximum relative to the parent
- height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
-}
-
-
-// Retina image
-//
-// Short retina mixin for setting background-image and -size. Note that the
-// spelling of `min--moz-device-pixel-ratio` is intentional.
-.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
- background-image: url("@{file-1x}");
-
- @media
- only screen and (-webkit-min-device-pixel-ratio: 2),
- only screen and ( min--moz-device-pixel-ratio: 2),
- only screen and ( -o-min-device-pixel-ratio: 2/1),
- only screen and ( min-device-pixel-ratio: 2),
- only screen and ( min-resolution: 192dpi),
- only screen and ( min-resolution: 2dppx) {
- background-image: url("@{file-2x}");
- background-size: @width-1x @height-1x;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/labels.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-// Labels
-
-.label-variant(@color) {
- background-color: @color;
-
- &[href] {
- &:hover,
- &:focus {
- background-color: darken(@color, 10%);
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/list-group.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-// List Groups
-
-.list-group-item-variant(@state; @background; @color) {
- .list-group-item-@{state} {
- color: @color;
- background-color: @background;
-
- a& {
- color: @color;
-
- .list-group-item-heading {
- color: inherit;
- }
-
- &:hover,
- &:focus {
- color: @color;
- background-color: darken(@background, 5%);
- }
- &.active,
- &.active:hover,
- &.active:focus {
- color: #fff;
- background-color: @color;
- border-color: @color;
- }
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/nav-divider.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-// Horizontal dividers
-//
-// Dividers (basically an hr) within dropdowns and nav lists
-
-.nav-divider(@color: #e5e5e5) {
- height: 1px;
- margin: ((@line-height-computed / 2) - 1) 0;
- overflow: hidden;
- background-color: @color;
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/nav-vertical-align.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-// Navbar vertical align
-//
-// Vertically center elements in the navbar.
-// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
-
-.navbar-vertical-align(@element-height) {
- margin-top: ((@navbar-height - @element-height) / 2);
- margin-bottom: ((@navbar-height - @element-height) / 2);
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/opacity.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-// Opacity
-
-.opacity(@opacity) {
- opacity: @opacity;
- // IE8 filter
- @opacity-ie: (@opacity * 100);
- filter: ~"alpha(opacity=@{opacity-ie})";
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/pagination.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-// Pagination
-
-.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {
- > li {
- > a,
- > span {
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- }
- &:first-child {
- > a,
- > span {
- .border-left-radius(@border-radius);
- }
- }
- &:last-child {
- > a,
- > span {
- .border-right-radius(@border-radius);
- }
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/panels.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// Panels
-
-.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
- border-color: @border;
-
- & > .panel-heading {
- color: @heading-text-color;
- background-color: @heading-bg-color;
- border-color: @heading-border;
-
- + .panel-collapse > .panel-body {
- border-top-color: @border;
- }
- .badge {
- color: @heading-bg-color;
- background-color: @heading-text-color;
- }
- }
- & > .panel-footer {
- + .panel-collapse > .panel-body {
- border-bottom-color: @border;
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/progress-bar.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-// Progress bars
-
-.progress-bar-variant(@color) {
- background-color: @color;
-
- // Deprecated parent class requirement as of v3.2.0
- .progress-striped & {
- #gradient > .striped();
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/reset-filter.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-// Reset filters for IE
-//
-// When you need to remove a gradient background, do not forget to use this to reset
-// the IE filter for IE9 and below.
-
-.reset-filter() {
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/resize.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-// Resize anything
-
-.resizable(@direction) {
- resize: @direction; // Options: horizontal, vertical, both
- overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/responsive-visibility.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-// Responsive utilities
-
-//
-// More easily include all the states for responsive-utilities.less.
-.responsive-visibility() {
- display: block !important;
- table& { display: table; }
- tr& { display: table-row !important; }
- th&,
- td& { display: table-cell !important; }
-}
-
-.responsive-invisibility() {
- display: none !important;
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/size.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-// Sizing shortcuts
-
-.size(@width; @height) {
- width: @width;
- height: @height;
-}
-
-.square(@size) {
- .size(@size; @size);
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/tab-focus.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-// WebKit-style focus
-
-.tab-focus() {
- // Default
- outline: thin dotted;
- // WebKit
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/table-row.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Tables
-
-.table-row-variant(@state; @background) {
- // Exact selectors below required to override `.table-striped` and prevent
- // inheritance to nested tables.
- .table > thead > tr,
- .table > tbody > tr,
- .table > tfoot > tr {
- > td.@{state},
- > th.@{state},
- &.@{state} > td,
- &.@{state} > th {
- background-color: @background;
- }
- }
-
- // Hover states for `.table-hover`
- // Note: this is not available for cells or rows within `thead` or `tfoot`.
- .table-hover > tbody > tr {
- > td.@{state}:hover,
- > th.@{state}:hover,
- &.@{state}:hover > td,
- &:hover > .@{state},
- &.@{state}:hover > th {
- background-color: darken(@background, 5%);
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/text-emphasis.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-// Typography
-
-.text-emphasis-variant(@color) {
- color: @color;
- a&:hover {
- color: darken(@color, 10%);
- }
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/text-overflow.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-// Text overflow
-// Requires inline-block or block for proper styling
-
-.text-overflow() {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
--- a/server/src/resources/assets/less/bootstrap/mixins/vendor-prefixes.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,227 +0,0 @@
-// Vendor Prefixes
-//
-// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
-// Autoprefixer in our Gruntfile. They will be removed in v4.
-
-// - Animations
-// - Backface visibility
-// - Box shadow
-// - Box sizing
-// - Content columns
-// - Hyphens
-// - Placeholder text
-// - Transformations
-// - Transitions
-// - User Select
-
-
-// Animations
-.animation(@animation) {
- -webkit-animation: @animation;
- -o-animation: @animation;
- animation: @animation;
-}
-.animation-name(@name) {
- -webkit-animation-name: @name;
- animation-name: @name;
-}
-.animation-duration(@duration) {
- -webkit-animation-duration: @duration;
- animation-duration: @duration;
-}
-.animation-timing-function(@timing-function) {
- -webkit-animation-timing-function: @timing-function;
- animation-timing-function: @timing-function;
-}
-.animation-delay(@delay) {
- -webkit-animation-delay: @delay;
- animation-delay: @delay;
-}
-.animation-iteration-count(@iteration-count) {
- -webkit-animation-iteration-count: @iteration-count;
- animation-iteration-count: @iteration-count;
-}
-.animation-direction(@direction) {
- -webkit-animation-direction: @direction;
- animation-direction: @direction;
-}
-.animation-fill-mode(@fill-mode) {
- -webkit-animation-fill-mode: @fill-mode;
- animation-fill-mode: @fill-mode;
-}
-
-// Backface visibility
-// Prevent browsers from flickering when using CSS 3D transforms.
-// Default value is `visible`, but can be changed to `hidden`
-
-.backface-visibility(@visibility){
- -webkit-backface-visibility: @visibility;
- -moz-backface-visibility: @visibility;
- backface-visibility: @visibility;
-}
-
-// Drop shadows
-//
-// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
-// supported browsers that have box shadow capabilities now support it.
-
-.box-shadow(@shadow) {
- -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
- box-shadow: @shadow;
-}
-
-// Box sizing
-.box-sizing(@boxmodel) {
- -webkit-box-sizing: @boxmodel;
- -moz-box-sizing: @boxmodel;
- box-sizing: @boxmodel;
-}
-
-// CSS3 Content Columns
-.content-columns(@column-count; @column-gap: @grid-gutter-width) {
- -webkit-column-count: @column-count;
- -moz-column-count: @column-count;
- column-count: @column-count;
- -webkit-column-gap: @column-gap;
- -moz-column-gap: @column-gap;
- column-gap: @column-gap;
-}
-
-// Optional hyphenation
-.hyphens(@mode: auto) {
- word-wrap: break-word;
- -webkit-hyphens: @mode;
- -moz-hyphens: @mode;
- -ms-hyphens: @mode; // IE10+
- -o-hyphens: @mode;
- hyphens: @mode;
-}
-
-// Placeholder text
-.placeholder(@color: @input-color-placeholder) {
- // Firefox
- &::-moz-placeholder {
- color: @color;
- opacity: 1; // See https://github.com/twbs/bootstrap/pull/11526
- }
- &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
- &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
-}
-
-// Transformations
-.scale(@ratio) {
- -webkit-transform: scale(@ratio);
- -ms-transform: scale(@ratio); // IE9 only
- -o-transform: scale(@ratio);
- transform: scale(@ratio);
-}
-.scale(@ratioX; @ratioY) {
- -webkit-transform: scale(@ratioX, @ratioY);
- -ms-transform: scale(@ratioX, @ratioY); // IE9 only
- -o-transform: scale(@ratioX, @ratioY);
- transform: scale(@ratioX, @ratioY);
-}
-.scaleX(@ratio) {
- -webkit-transform: scaleX(@ratio);
- -ms-transform: scaleX(@ratio); // IE9 only
- -o-transform: scaleX(@ratio);
- transform: scaleX(@ratio);
-}
-.scaleY(@ratio) {
- -webkit-transform: scaleY(@ratio);
- -ms-transform: scaleY(@ratio); // IE9 only
- -o-transform: scaleY(@ratio);
- transform: scaleY(@ratio);
-}
-.skew(@x; @y) {
- -webkit-transform: skewX(@x) skewY(@y);
- -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
- -o-transform: skewX(@x) skewY(@y);
- transform: skewX(@x) skewY(@y);
-}
-.translate(@x; @y) {
- -webkit-transform: translate(@x, @y);
- -ms-transform: translate(@x, @y); // IE9 only
- -o-transform: translate(@x, @y);
- transform: translate(@x, @y);
-}
-.translate3d(@x; @y; @z) {
- -webkit-transform: translate3d(@x, @y, @z);
- transform: translate3d(@x, @y, @z);
-}
-.rotate(@degrees) {
- -webkit-transform: rotate(@degrees);
- -ms-transform: rotate(@degrees); // IE9 only
- -o-transform: rotate(@degrees);
- transform: rotate(@degrees);
-}
-.rotateX(@degrees) {
- -webkit-transform: rotateX(@degrees);
- -ms-transform: rotateX(@degrees); // IE9 only
- -o-transform: rotateX(@degrees);
- transform: rotateX(@degrees);
-}
-.rotateY(@degrees) {
- -webkit-transform: rotateY(@degrees);
- -ms-transform: rotateY(@degrees); // IE9 only
- -o-transform: rotateY(@degrees);
- transform: rotateY(@degrees);
-}
-.perspective(@perspective) {
- -webkit-perspective: @perspective;
- -moz-perspective: @perspective;
- perspective: @perspective;
-}
-.perspective-origin(@perspective) {
- -webkit-perspective-origin: @perspective;
- -moz-perspective-origin: @perspective;
- perspective-origin: @perspective;
-}
-.transform-origin(@origin) {
- -webkit-transform-origin: @origin;
- -moz-transform-origin: @origin;
- -ms-transform-origin: @origin; // IE9 only
- transform-origin: @origin;
-}
-
-
-// Transitions
-
-.transition(@transition) {
- -webkit-transition: @transition;
- -o-transition: @transition;
- transition: @transition;
-}
-.transition-property(@transition-property) {
- -webkit-transition-property: @transition-property;
- transition-property: @transition-property;
-}
-.transition-delay(@transition-delay) {
- -webkit-transition-delay: @transition-delay;
- transition-delay: @transition-delay;
-}
-.transition-duration(@transition-duration) {
- -webkit-transition-duration: @transition-duration;
- transition-duration: @transition-duration;
-}
-.transition-timing-function(@timing-function) {
- -webkit-transition-timing-function: @timing-function;
- transition-timing-function: @timing-function;
-}
-.transition-transform(@transition) {
- -webkit-transition: -webkit-transform @transition;
- -moz-transition: -moz-transform @transition;
- -o-transition: -o-transform @transition;
- transition: transform @transition;
-}
-
-
-// User select
-// For selecting text on the page
-
-.user-select(@select) {
- -webkit-user-select: @select;
- -moz-user-select: @select;
- -ms-user-select: @select; // IE10+
- user-select: @select;
-}
--- a/server/src/resources/assets/less/bootstrap/modals.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-//
-// Modals
-// --------------------------------------------------
-
-// .modal-open - body class for killing the scroll
-// .modal - container to scroll within
-// .modal-dialog - positioning shell for the actual modal
-// .modal-content - actual modal w/ bg and corners and shit
-
-// Kill the scroll on the body
-.modal-open {
- overflow: hidden;
-}
-
-// Container that the modal scrolls within
-.modal {
- display: none;
- overflow: hidden;
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: @zindex-modal;
- -webkit-overflow-scrolling: touch;
-
- // Prevent Chrome on Windows from adding a focus outline. For details, see
- // https://github.com/twbs/bootstrap/pull/10951.
- outline: 0;
-
- // When fading in the modal, animate it to slide down
- &.fade .modal-dialog {
- .translate(0, -25%);
- .transition-transform(~"0.3s ease-out");
- }
- &.in .modal-dialog { .translate(0, 0) }
-}
-.modal-open .modal {
- overflow-x: hidden;
- overflow-y: auto;
-}
-
-// Shell div to position the modal with bottom padding
-.modal-dialog {
- position: relative;
- width: auto;
- margin: 10px;
-}
-
-// Actual modal
-.modal-content {
- position: relative;
- background-color: @modal-content-bg;
- border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
- border: 1px solid @modal-content-border-color;
- border-radius: @border-radius-large;
- .box-shadow(0 3px 9px rgba(0,0,0,.5));
- background-clip: padding-box;
- // Remove focus outline from opened modal
- outline: 0;
-}
-
-// Modal background
-.modal-backdrop {
- position: absolute;
- top: 0;
- right: 0;
- left: 0;
- background-color: @modal-backdrop-bg;
- // Fade for backdrop
- &.fade { .opacity(0); }
- &.in { .opacity(@modal-backdrop-opacity); }
-}
-
-// Modal header
-// Top section of the modal w/ title and dismiss
-.modal-header {
- padding: @modal-title-padding;
- border-bottom: 1px solid @modal-header-border-color;
- min-height: (@modal-title-padding + @modal-title-line-height);
-}
-// Close icon
-.modal-header .close {
- margin-top: -2px;
-}
-
-// Title text within header
-.modal-title {
- margin: 0;
- line-height: @modal-title-line-height;
-}
-
-// Modal body
-// Where all modal content resides (sibling of .modal-header and .modal-footer)
-.modal-body {
- position: relative;
- padding: @modal-inner-padding;
-}
-
-// Footer (for actions)
-.modal-footer {
- padding: @modal-inner-padding;
- text-align: right; // right align buttons
- border-top: 1px solid @modal-footer-border-color;
- &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons
-
- // Properly space out buttons
- .btn + .btn {
- margin-left: 5px;
- margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
- }
- // but override that for button groups
- .btn-group .btn + .btn {
- margin-left: -1px;
- }
- // and override it for block buttons as well
- .btn-block + .btn-block {
- margin-left: 0;
- }
-}
-
-// Measure scrollbar width for padding body during modal show/hide
-.modal-scrollbar-measure {
- position: absolute;
- top: -9999px;
- width: 50px;
- height: 50px;
- overflow: scroll;
-}
-
-// Scale up the modal
-@media (min-width: @screen-sm-min) {
- // Automatically set modal's width for larger viewports
- .modal-dialog {
- width: @modal-md;
- margin: 30px auto;
- }
- .modal-content {
- .box-shadow(0 5px 15px rgba(0,0,0,.5));
- }
-
- // Modal sizes
- .modal-sm { width: @modal-sm; }
-}
-
-@media (min-width: @screen-md-min) {
- .modal-lg { width: @modal-lg; }
-}
--- a/server/src/resources/assets/less/bootstrap/navbar.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,660 +0,0 @@
-//
-// Navbars
-// --------------------------------------------------
-
-
-// Wrapper and base class
-//
-// Provide a static navbar from which we expand to create full-width, fixed, and
-// other navbar variations.
-
-.navbar {
- position: relative;
- min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
- margin-bottom: @navbar-margin-bottom;
- border: 1px solid transparent;
-
- // Prevent floats from breaking the navbar
- &:extend(.clearfix all);
-
- @media (min-width: @grid-float-breakpoint) {
- border-radius: @navbar-border-radius;
- }
-}
-
-
-// Navbar heading
-//
-// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
-// styling of responsive aspects.
-
-.navbar-header {
- &:extend(.clearfix all);
-
- @media (min-width: @grid-float-breakpoint) {
- float: left;
- }
-}
-
-
-// Navbar collapse (body)
-//
-// Group your navbar content into this for easy collapsing and expanding across
-// various device sizes. By default, this content is collapsed when <768px, but
-// will expand past that for a horizontal display.
-//
-// To start (on mobile devices) the navbar links, forms, and buttons are stacked
-// vertically and include a `max-height` to overflow in case you have too much
-// content for the user's viewport.
-
-.navbar-collapse {
- overflow-x: visible;
- padding-right: @navbar-padding-horizontal;
- padding-left: @navbar-padding-horizontal;
- border-top: 1px solid transparent;
- box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
- &:extend(.clearfix all);
- -webkit-overflow-scrolling: touch;
-
- &.in {
- overflow-y: auto;
- }
-
- @media (min-width: @grid-float-breakpoint) {
- width: auto;
- border-top: 0;
- box-shadow: none;
-
- &.collapse {
- display: block !important;
- visibility: visible !important;
- height: auto !important;
- padding-bottom: 0; // Override default setting
- overflow: visible !important;
- }
-
- &.in {
- overflow-y: visible;
- }
-
- // Undo the collapse side padding for navbars with containers to ensure
- // alignment of right-aligned contents.
- .navbar-fixed-top &,
- .navbar-static-top &,
- .navbar-fixed-bottom & {
- padding-left: 0;
- padding-right: 0;
- }
- }
-}
-
-.navbar-fixed-top,
-.navbar-fixed-bottom {
- .navbar-collapse {
- max-height: @navbar-collapse-max-height;
-
- @media (max-device-width: @screen-xs-min) and (orientation: landscape) {
- max-height: 200px;
- }
- }
-}
-
-
-// Both navbar header and collapse
-//
-// When a container is present, change the behavior of the header and collapse.
-
-.container,
-.container-fluid {
- > .navbar-header,
- > .navbar-collapse {
- margin-right: -@navbar-padding-horizontal;
- margin-left: -@navbar-padding-horizontal;
-
- @media (min-width: @grid-float-breakpoint) {
- margin-right: 0;
- margin-left: 0;
- }
- }
-}
-
-
-//
-// Navbar alignment options
-//
-// Display the navbar across the entirety of the page or fixed it to the top or
-// bottom of the page.
-
-// Static top (unfixed, but 100% wide) navbar
-.navbar-static-top {
- z-index: @zindex-navbar;
- border-width: 0 0 1px;
-
- @media (min-width: @grid-float-breakpoint) {
- border-radius: 0;
- }
-}
-
-// Fix the top/bottom navbars when screen real estate supports it
-.navbar-fixed-top,
-.navbar-fixed-bottom {
- position: fixed;
- right: 0;
- left: 0;
- z-index: @zindex-navbar-fixed;
-
- // Undo the rounded corners
- @media (min-width: @grid-float-breakpoint) {
- border-radius: 0;
- }
-}
-.navbar-fixed-top {
- top: 0;
- border-width: 0 0 1px;
-}
-.navbar-fixed-bottom {
- bottom: 0;
- margin-bottom: 0; // override .navbar defaults
- border-width: 1px 0 0;
-}
-
-
-// Brand/project name
-
-.navbar-brand {
- float: left;
- padding: @navbar-padding-vertical @navbar-padding-horizontal;
- font-size: @font-size-large;
- line-height: @line-height-computed;
- height: @navbar-height;
-
- &:hover,
- &:focus {
- text-decoration: none;
- }
-
- > img {
- display: block;
- }
-
- @media (min-width: @grid-float-breakpoint) {
- .navbar > .container &,
- .navbar > .container-fluid & {
- margin-left: -@navbar-padding-horizontal;
- }
- }
-}
-
-
-// Navbar toggle
-//
-// Custom button for toggling the `.navbar-collapse`, powered by the collapse
-// JavaScript plugin.
-
-.navbar-toggle {
- position: relative;
- float: right;
- margin-right: @navbar-padding-horizontal;
- padding: 9px 10px;
- .navbar-vertical-align(34px);
- background-color: transparent;
- background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
- border: 1px solid transparent;
- border-radius: @border-radius-base;
-
- // We remove the `outline` here, but later compensate by attaching `:hover`
- // styles to `:focus`.
- &:focus {
- outline: 0;
- }
-
- // Bars
- .icon-bar {
- display: block;
- width: 22px;
- height: 2px;
- border-radius: 1px;
- }
- .icon-bar + .icon-bar {
- margin-top: 4px;
- }
-
- @media (min-width: @grid-float-breakpoint) {
- display: none;
- }
-}
-
-
-// Navbar nav links
-//
-// Builds on top of the `.nav` components with its own modifier class to make
-// the nav the full height of the horizontal nav (above 768px).
-
-.navbar-nav {
- margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
-
- > li > a {
- padding-top: 10px;
- padding-bottom: 10px;
- line-height: @line-height-computed;
- }
-
- @media (max-width: @grid-float-breakpoint-max) {
- // Dropdowns get custom display when collapsed
- .open .dropdown-menu {
- position: static;
- float: none;
- width: auto;
- margin-top: 0;
- background-color: transparent;
- border: 0;
- box-shadow: none;
- > li > a,
- .dropdown-header {
- padding: 5px 15px 5px 25px;
- }
- > li > a {
- line-height: @line-height-computed;
- &:hover,
- &:focus {
- background-image: none;
- }
- }
- }
- }
-
- // Uncollapse the nav
- @media (min-width: @grid-float-breakpoint) {
- float: left;
- margin: 0;
-
- > li {
- float: left;
- > a {
- padding-top: @navbar-padding-vertical;
- padding-bottom: @navbar-padding-vertical;
- }
- }
- }
-}
-
-
-// Navbar form
-//
-// Extension of the `.form-inline` with some extra flavor for optimum display in
-// our navbars.
-
-.navbar-form {
- margin-left: -@navbar-padding-horizontal;
- margin-right: -@navbar-padding-horizontal;
- padding: 10px @navbar-padding-horizontal;
- border-top: 1px solid transparent;
- border-bottom: 1px solid transparent;
- @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
- .box-shadow(@shadow);
-
- // Mixin behavior for optimum display
- .form-inline();
-
- .form-group {
- @media (max-width: @grid-float-breakpoint-max) {
- margin-bottom: 5px;
-
- &:last-child {
- margin-bottom: 0;
- }
- }
- }
-
- // Vertically center in expanded, horizontal navbar
- .navbar-vertical-align(@input-height-base);
-
- // Undo 100% width for pull classes
- @media (min-width: @grid-float-breakpoint) {
- width: auto;
- border: 0;
- margin-left: 0;
- margin-right: 0;
- padding-top: 0;
- padding-bottom: 0;
- .box-shadow(none);
- }
-}
-
-
-// Dropdown menus
-
-// Menu position and menu carets
-.navbar-nav > li > .dropdown-menu {
- margin-top: 0;
- .border-top-radius(0);
-}
-// Menu position and menu caret support for dropups via extra dropup class
-.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
- .border-top-radius(@navbar-border-radius);
- .border-bottom-radius(0);
-}
-
-
-// Buttons in navbars
-//
-// Vertically center a button within a navbar (when *not* in a form).
-
-.navbar-btn {
- .navbar-vertical-align(@input-height-base);
-
- &.btn-sm {
- .navbar-vertical-align(@input-height-small);
- }
- &.btn-xs {
- .navbar-vertical-align(22);
- }
-}
-
-
-// Text in navbars
-//
-// Add a class to make any element properly align itself vertically within the navbars.
-
-.navbar-text {
- .navbar-vertical-align(@line-height-computed);
-
- @media (min-width: @grid-float-breakpoint) {
- float: left;
- margin-left: @navbar-padding-horizontal;
- margin-right: @navbar-padding-horizontal;
- }
-}
-
-
-// Component alignment
-//
-// Repurpose the pull utilities as their own navbar utilities to avoid specificity
-// issues with parents and chaining. Only do this when the navbar is uncollapsed
-// though so that navbar contents properly stack and align in mobile.
-//
-// Declared after the navbar components to ensure more specificity on the margins.
-
-@media (min-width: @grid-float-breakpoint) {
- .navbar-left { .pull-left(); }
- .navbar-right {
- .pull-right();
- margin-right: -@navbar-padding-horizontal;
-
- ~ .navbar-right {
- margin-right: 0;
- }
- }
-}
-
-
-// Alternate navbars
-// --------------------------------------------------
-
-// Default navbar
-.navbar-default {
- background-color: @navbar-default-bg;
- border-color: @navbar-default-border;
-
- .navbar-brand {
- color: @navbar-default-brand-color;
- &:hover,
- &:focus {
- color: @navbar-default-brand-hover-color;
- background-color: @navbar-default-brand-hover-bg;
- }
- }
-
- .navbar-text {
- color: @navbar-default-color;
- }
-
- .navbar-nav {
- > li > a {
- color: @navbar-default-link-color;
-
- &:hover,
- &:focus {
- color: @navbar-default-link-hover-color;
- background-color: @navbar-default-link-hover-bg;
- }
- }
- > .active > a {
- &,
- &:hover,
- &:focus {
- color: @navbar-default-link-active-color;
- background-color: @navbar-default-link-active-bg;
- }
- }
- > .disabled > a {
- &,
- &:hover,
- &:focus {
- color: @navbar-default-link-disabled-color;
- background-color: @navbar-default-link-disabled-bg;
- }
- }
- }
-
- .navbar-toggle {
- border-color: @navbar-default-toggle-border-color;
- &:hover,
- &:focus {
- background-color: @navbar-default-toggle-hover-bg;
- }
- .icon-bar {
- background-color: @navbar-default-toggle-icon-bar-bg;
- }
- }
-
- .navbar-collapse,
- .navbar-form {
- border-color: @navbar-default-border;
- }
-
- // Dropdown menu items
- .navbar-nav {
- // Remove background color from open dropdown
- > .open > a {
- &,
- &:hover,
- &:focus {
- background-color: @navbar-default-link-active-bg;
- color: @navbar-default-link-active-color;
- }
- }
-
- @media (max-width: @grid-float-breakpoint-max) {
- // Dropdowns get custom display when collapsed
- .open .dropdown-menu {
- > li > a {
- color: @navbar-default-link-color;
- &:hover,
- &:focus {
- color: @navbar-default-link-hover-color;
- background-color: @navbar-default-link-hover-bg;
- }
- }
- > .active > a {
- &,
- &:hover,
- &:focus {
- color: @navbar-default-link-active-color;
- background-color: @navbar-default-link-active-bg;
- }
- }
- > .disabled > a {
- &,
- &:hover,
- &:focus {
- color: @navbar-default-link-disabled-color;
- background-color: @navbar-default-link-disabled-bg;
- }
- }
- }
- }
- }
-
-
- // Links in navbars
- //
- // Add a class to ensure links outside the navbar nav are colored correctly.
-
- .navbar-link {
- color: @navbar-default-link-color;
- &:hover {
- color: @navbar-default-link-hover-color;
- }
- }
-
- .btn-link {
- color: @navbar-default-link-color;
- &:hover,
- &:focus {
- color: @navbar-default-link-hover-color;
- }
- &[disabled],
- fieldset[disabled] & {
- &:hover,
- &:focus {
- color: @navbar-default-link-disabled-color;
- }
- }
- }
-}
-
-// Inverse navbar
-
-.navbar-inverse {
- background-color: @navbar-inverse-bg;
- border-color: @navbar-inverse-border;
-
- .navbar-brand {
- color: @navbar-inverse-brand-color;
- &:hover,
- &:focus {
- color: @navbar-inverse-brand-hover-color;
- background-color: @navbar-inverse-brand-hover-bg;
- }
- }
-
- .navbar-text {
- color: @navbar-inverse-color;
- }
-
- .navbar-nav {
- > li > a {
- color: @navbar-inverse-link-color;
-
- &:hover,
- &:focus {
- color: @navbar-inverse-link-hover-color;
- background-color: @navbar-inverse-link-hover-bg;
- }
- }
- > .active > a {
- &,
- &:hover,
- &:focus {
- color: @navbar-inverse-link-active-color;
- background-color: @navbar-inverse-link-active-bg;
- }
- }
- > .disabled > a {
- &,
- &:hover,
- &:focus {
- color: @navbar-inverse-link-disabled-color;
- background-color: @navbar-inverse-link-disabled-bg;
- }
- }
- }
-
- // Darken the responsive nav toggle
- .navbar-toggle {
- border-color: @navbar-inverse-toggle-border-color;
- &:hover,
- &:focus {
- background-color: @navbar-inverse-toggle-hover-bg;
- }
- .icon-bar {
- background-color: @navbar-inverse-toggle-icon-bar-bg;
- }
- }
-
- .navbar-collapse,
- .navbar-form {
- border-color: darken(@navbar-inverse-bg, 7%);
- }
-
- // Dropdowns
- .navbar-nav {
- > .open > a {
- &,
- &:hover,
- &:focus {
- background-color: @navbar-inverse-link-active-bg;
- color: @navbar-inverse-link-active-color;
- }
- }
-
- @media (max-width: @grid-float-breakpoint-max) {
- // Dropdowns get custom display
- .open .dropdown-menu {
- > .dropdown-header {
- border-color: @navbar-inverse-border;
- }
- .divider {
- background-color: @navbar-inverse-border;
- }
- > li > a {
- color: @navbar-inverse-link-color;
- &:hover,
- &:focus {
- color: @navbar-inverse-link-hover-color;
- background-color: @navbar-inverse-link-hover-bg;
- }
- }
- > .active > a {
- &,
- &:hover,
- &:focus {
- color: @navbar-inverse-link-active-color;
- background-color: @navbar-inverse-link-active-bg;
- }
- }
- > .disabled > a {
- &,
- &:hover,
- &:focus {
- color: @navbar-inverse-link-disabled-color;
- background-color: @navbar-inverse-link-disabled-bg;
- }
- }
- }
- }
- }
-
- .navbar-link {
- color: @navbar-inverse-link-color;
- &:hover {
- color: @navbar-inverse-link-hover-color;
- }
- }
-
- .btn-link {
- color: @navbar-inverse-link-color;
- &:hover,
- &:focus {
- color: @navbar-inverse-link-hover-color;
- }
- &[disabled],
- fieldset[disabled] & {
- &:hover,
- &:focus {
- color: @navbar-inverse-link-disabled-color;
- }
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/navs.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-//
-// Navs
-// --------------------------------------------------
-
-
-// Base class
-// --------------------------------------------------
-
-.nav {
- margin-bottom: 0;
- padding-left: 0; // Override default ul/ol
- list-style: none;
- &:extend(.clearfix all);
-
- > li {
- position: relative;
- display: block;
-
- > a {
- position: relative;
- display: block;
- padding: @nav-link-padding;
- &:hover,
- &:focus {
- text-decoration: none;
- background-color: @nav-link-hover-bg;
- }
- }
-
- // Disabled state sets text to gray and nukes hover/tab effects
- &.disabled > a {
- color: @nav-disabled-link-color;
-
- &:hover,
- &:focus {
- color: @nav-disabled-link-hover-color;
- text-decoration: none;
- background-color: transparent;
- cursor: @cursor-disabled;
- }
- }
- }
-
- // Open dropdowns
- .open > a {
- &,
- &:hover,
- &:focus {
- background-color: @nav-link-hover-bg;
- border-color: @link-color;
- }
- }
-
- // Nav dividers (deprecated with v3.0.1)
- //
- // This should have been removed in v3 with the dropping of `.nav-list`, but
- // we missed it. We don't currently support this anywhere, but in the interest
- // of maintaining backward compatibility in case you use it, it's deprecated.
- .nav-divider {
- .nav-divider();
- }
-
- // Prevent IE8 from misplacing imgs
- //
- // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
- > li > a > img {
- max-width: none;
- }
-}
-
-
-// Tabs
-// -------------------------
-
-// Give the tabs something to sit on
-.nav-tabs {
- border-bottom: 1px solid @nav-tabs-border-color;
- > li {
- float: left;
- // Make the list-items overlay the bottom border
- margin-bottom: -1px;
-
- // Actual tabs (as links)
- > a {
- margin-right: 2px;
- line-height: @line-height-base;
- border: 1px solid transparent;
- border-radius: @border-radius-base @border-radius-base 0 0;
- &:hover {
- border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;
- }
- }
-
- // Active state, and its :hover to override normal :hover
- &.active > a {
- &,
- &:hover,
- &:focus {
- color: @nav-tabs-active-link-hover-color;
- background-color: @nav-tabs-active-link-hover-bg;
- border: 1px solid @nav-tabs-active-link-hover-border-color;
- border-bottom-color: transparent;
- cursor: default;
- }
- }
- }
- // pulling this in mainly for less shorthand
- &.nav-justified {
- .nav-justified();
- .nav-tabs-justified();
- }
-}
-
-
-// Pills
-// -------------------------
-.nav-pills {
- > li {
- float: left;
-
- // Links rendered as pills
- > a {
- border-radius: @nav-pills-border-radius;
- }
- + li {
- margin-left: 2px;
- }
-
- // Active state
- &.active > a {
- &,
- &:hover,
- &:focus {
- color: @nav-pills-active-link-hover-color;
- background-color: @nav-pills-active-link-hover-bg;
- }
- }
- }
-}
-
-
-// Stacked pills
-.nav-stacked {
- > li {
- float: none;
- + li {
- margin-top: 2px;
- margin-left: 0; // no need for this gap between nav items
- }
- }
-}
-
-
-// Nav variations
-// --------------------------------------------------
-
-// Justified nav links
-// -------------------------
-
-.nav-justified {
- width: 100%;
-
- > li {
- float: none;
- > a {
- text-align: center;
- margin-bottom: 5px;
- }
- }
-
- > .dropdown .dropdown-menu {
- top: auto;
- left: auto;
- }
-
- @media (min-width: @screen-sm-min) {
- > li {
- display: table-cell;
- width: 1%;
- > a {
- margin-bottom: 0;
- }
- }
- }
-}
-
-// Move borders to anchors instead of bottom of list
-//
-// Mixin for adding on top the shared `.nav-justified` styles for our tabs
-.nav-tabs-justified {
- border-bottom: 0;
-
- > li > a {
- // Override margin from .nav-tabs
- margin-right: 0;
- border-radius: @border-radius-base;
- }
-
- > .active > a,
- > .active > a:hover,
- > .active > a:focus {
- border: 1px solid @nav-tabs-justified-link-border-color;
- }
-
- @media (min-width: @screen-sm-min) {
- > li > a {
- border-bottom: 1px solid @nav-tabs-justified-link-border-color;
- border-radius: @border-radius-base @border-radius-base 0 0;
- }
- > .active > a,
- > .active > a:hover,
- > .active > a:focus {
- border-bottom-color: @nav-tabs-justified-active-link-border-color;
- }
- }
-}
-
-
-// Tabbable tabs
-// -------------------------
-
-// Hide tabbable panes to start, show them when `.active`
-.tab-content {
- > .tab-pane {
- display: none;
- visibility: hidden;
- }
- > .active {
- display: block;
- visibility: visible;
- }
-}
-
-
-// Dropdowns
-// -------------------------
-
-// Specific dropdowns
-.nav-tabs .dropdown-menu {
- // make dropdown border overlap tab border
- margin-top: -1px;
- // Remove the top rounded corners here since there is a hard edge above the menu
- .border-top-radius(0);
-}
--- a/server/src/resources/assets/less/bootstrap/normalize.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,427 +0,0 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
-
-//
-// 1. Set default font family to sans-serif.
-// 2. Prevent iOS text size adjust after orientation change, without disabling
-// user zoom.
-//
-
-html {
- font-family: sans-serif; // 1
- -ms-text-size-adjust: 100%; // 2
- -webkit-text-size-adjust: 100%; // 2
-}
-
-//
-// Remove default margin.
-//
-
-body {
- margin: 0;
-}
-
-// HTML5 display definitions
-// ==========================================================================
-
-//
-// Correct `block` display not defined for any HTML5 element in IE 8/9.
-// Correct `block` display not defined for `details` or `summary` in IE 10/11
-// and Firefox.
-// Correct `block` display not defined for `main` in IE 11.
-//
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
- display: block;
-}
-
-//
-// 1. Correct `inline-block` display not defined in IE 8/9.
-// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
-//
-
-audio,
-canvas,
-progress,
-video {
- display: inline-block; // 1
- vertical-align: baseline; // 2
-}
-
-//
-// Prevent modern browsers from displaying `audio` without controls.
-// Remove excess height in iOS 5 devices.
-//
-
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-
-//
-// Address `[hidden]` styling not present in IE 8/9/10.
-// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
-//
-
-[hidden],
-template {
- display: none;
-}
-
-// Links
-// ==========================================================================
-
-//
-// Remove the gray background color from active links in IE 10.
-//
-
-a {
- background-color: transparent;
-}
-
-//
-// Improve readability when focused and also mouse hovered in all browsers.
-//
-
-a:active,
-a:hover {
- outline: 0;
-}
-
-// Text-level semantics
-// ==========================================================================
-
-//
-// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
-//
-
-abbr[title] {
- border-bottom: 1px dotted;
-}
-
-//
-// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
-//
-
-b,
-strong {
- font-weight: bold;
-}
-
-//
-// Address styling not present in Safari and Chrome.
-//
-
-dfn {
- font-style: italic;
-}
-
-//
-// Address variable `h1` font-size and margin within `section` and `article`
-// contexts in Firefox 4+, Safari, and Chrome.
-//
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-//
-// Address styling not present in IE 8/9.
-//
-
-mark {
- background: #ff0;
- color: #000;
-}
-
-//
-// Address inconsistent and variable font size in all browsers.
-//
-
-small {
- font-size: 80%;
-}
-
-//
-// Prevent `sub` and `sup` affecting `line-height` in all browsers.
-//
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sup {
- top: -0.5em;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-// Embedded content
-// ==========================================================================
-
-//
-// Remove border when inside `a` element in IE 8/9/10.
-//
-
-img {
- border: 0;
-}
-
-//
-// Correct overflow not hidden in IE 9/10/11.
-//
-
-svg:not(:root) {
- overflow: hidden;
-}
-
-// Grouping content
-// ==========================================================================
-
-//
-// Address margin not present in IE 8/9 and Safari.
-//
-
-figure {
- margin: 1em 40px;
-}
-
-//
-// Address differences between Firefox and other browsers.
-//
-
-hr {
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- height: 0;
-}
-
-//
-// Contain overflow in all browsers.
-//
-
-pre {
- overflow: auto;
-}
-
-//
-// Address odd `em`-unit font size rendering in all browsers.
-//
-
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-
-// Forms
-// ==========================================================================
-
-//
-// Known limitation: by default, Chrome and Safari on OS X allow very limited
-// styling of `select`, unless a `border` property is set.
-//
-
-//
-// 1. Correct color not being inherited.
-// Known issue: affects color of disabled elements.
-// 2. Correct font properties not being inherited.
-// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
-//
-
-button,
-input,
-optgroup,
-select,
-textarea {
- color: inherit; // 1
- font: inherit; // 2
- margin: 0; // 3
-}
-
-//
-// Address `overflow` set to `hidden` in IE 8/9/10/11.
-//
-
-button {
- overflow: visible;
-}
-
-//
-// Address inconsistent `text-transform` inheritance for `button` and `select`.
-// All other form control elements do not inherit `text-transform` values.
-// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
-// Correct `select` style inheritance in Firefox.
-//
-
-button,
-select {
- text-transform: none;
-}
-
-//
-// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
-// and `video` controls.
-// 2. Correct inability to style clickable `input` types in iOS.
-// 3. Improve usability and consistency of cursor style between image-type
-// `input` and others.
-//
-
-button,
-html input[type="button"], // 1
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button; // 2
- cursor: pointer; // 3
-}
-
-//
-// Re-set default cursor for disabled elements.
-//
-
-button[disabled],
-html input[disabled] {
- cursor: default;
-}
-
-//
-// Remove inner padding and border in Firefox 4+.
-//
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0;
-}
-
-//
-// Address Firefox 4+ setting `line-height` on `input` using `!important` in
-// the UA stylesheet.
-//
-
-input {
- line-height: normal;
-}
-
-//
-// It's recommended that you don't attempt to style these elements.
-// Firefox's implementation doesn't respect box-sizing, padding, or width.
-//
-// 1. Address box sizing set to `content-box` in IE 8/9/10.
-// 2. Remove excess padding in IE 8/9/10.
-//
-
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box; // 1
- padding: 0; // 2
-}
-
-//
-// Fix the cursor style for Chrome's increment/decrement buttons. For certain
-// `font-size` values of the `input`, it causes the cursor style of the
-// decrement button to change from `default` to `text`.
-//
-
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-
-//
-// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
-// 2. Address `box-sizing` set to `border-box` in Safari and Chrome
-// (include `-moz` to future-proof).
-//
-
-input[type="search"] {
- -webkit-appearance: textfield; // 1
- -moz-box-sizing: content-box;
- -webkit-box-sizing: content-box; // 2
- box-sizing: content-box;
-}
-
-//
-// Remove inner padding and search cancel button in Safari and Chrome on OS X.
-// Safari (but not Chrome) clips the cancel button when the search input has
-// padding (and `textfield` appearance).
-//
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-//
-// Define consistent border, margin, and padding.
-//
-
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
-}
-
-//
-// 1. Correct `color` not being inherited in IE 8/9/10/11.
-// 2. Remove padding so people aren't caught out if they zero out fieldsets.
-//
-
-legend {
- border: 0; // 1
- padding: 0; // 2
-}
-
-//
-// Remove default vertical scrollbar in IE 8/9/10/11.
-//
-
-textarea {
- overflow: auto;
-}
-
-//
-// Don't inherit the `font-weight` (applied by a rule above).
-// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
-//
-
-optgroup {
- font-weight: bold;
-}
-
-// Tables
-// ==========================================================================
-
-//
-// Remove most spacing between table cells.
-//
-
-table {
- border-collapse: collapse;
- border-spacing: 0;
-}
-
-td,
-th {
- padding: 0;
-}
--- a/server/src/resources/assets/less/bootstrap/pager.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-//
-// Pager pagination
-// --------------------------------------------------
-
-
-.pager {
- padding-left: 0;
- margin: @line-height-computed 0;
- list-style: none;
- text-align: center;
- &:extend(.clearfix all);
- li {
- display: inline;
- > a,
- > span {
- display: inline-block;
- padding: 5px 14px;
- background-color: @pager-bg;
- border: 1px solid @pager-border;
- border-radius: @pager-border-radius;
- }
-
- > a:hover,
- > a:focus {
- text-decoration: none;
- background-color: @pager-hover-bg;
- }
- }
-
- .next {
- > a,
- > span {
- float: right;
- }
- }
-
- .previous {
- > a,
- > span {
- float: left;
- }
- }
-
- .disabled {
- > a,
- > a:hover,
- > a:focus,
- > span {
- color: @pager-disabled-color;
- background-color: @pager-bg;
- cursor: @cursor-disabled;
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/pagination.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-//
-// Pagination (multiple pages)
-// --------------------------------------------------
-.pagination {
- display: inline-block;
- padding-left: 0;
- margin: @line-height-computed 0;
- border-radius: @border-radius-base;
-
- > li {
- display: inline; // Remove list-style and block-level defaults
- > a,
- > span {
- position: relative;
- float: left; // Collapse white-space
- padding: @padding-base-vertical @padding-base-horizontal;
- line-height: @line-height-base;
- text-decoration: none;
- color: @pagination-color;
- background-color: @pagination-bg;
- border: 1px solid @pagination-border;
- margin-left: -1px;
- }
- &:first-child {
- > a,
- > span {
- margin-left: 0;
- .border-left-radius(@border-radius-base);
- }
- }
- &:last-child {
- > a,
- > span {
- .border-right-radius(@border-radius-base);
- }
- }
- }
-
- > li > a,
- > li > span {
- &:hover,
- &:focus {
- color: @pagination-hover-color;
- background-color: @pagination-hover-bg;
- border-color: @pagination-hover-border;
- }
- }
-
- > .active > a,
- > .active > span {
- &,
- &:hover,
- &:focus {
- z-index: 2;
- color: @pagination-active-color;
- background-color: @pagination-active-bg;
- border-color: @pagination-active-border;
- cursor: default;
- }
- }
-
- > .disabled {
- > span,
- > span:hover,
- > span:focus,
- > a,
- > a:hover,
- > a:focus {
- color: @pagination-disabled-color;
- background-color: @pagination-disabled-bg;
- border-color: @pagination-disabled-border;
- cursor: @cursor-disabled;
- }
- }
-}
-
-// Sizing
-// --------------------------------------------------
-
-// Large
-.pagination-lg {
- .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large);
-}
-
-// Small
-.pagination-sm {
- .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small);
-}
--- a/server/src/resources/assets/less/bootstrap/panels.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,261 +0,0 @@
-//
-// Panels
-// --------------------------------------------------
-
-
-// Base class
-.panel {
- margin-bottom: @line-height-computed;
- background-color: @panel-bg;
- border: 1px solid transparent;
- border-radius: @panel-border-radius;
- .box-shadow(0 1px 1px rgba(0,0,0,.05));
-}
-
-// Panel contents
-.panel-body {
- padding: @panel-body-padding;
- &:extend(.clearfix all);
-}
-
-// Optional heading
-.panel-heading {
- padding: @panel-heading-padding;
- border-bottom: 1px solid transparent;
- .border-top-radius((@panel-border-radius - 1));
-
- > .dropdown .dropdown-toggle {
- color: inherit;
- }
-}
-
-// Within heading, strip any `h*` tag of its default margins for spacing.
-.panel-title {
- margin-top: 0;
- margin-bottom: 0;
- font-size: ceil((@font-size-base * 1.125));
- color: inherit;
-
- > a {
- color: inherit;
- }
-}
-
-// Optional footer (stays gray in every modifier class)
-.panel-footer {
- padding: @panel-footer-padding;
- background-color: @panel-footer-bg;
- border-top: 1px solid @panel-inner-border;
- .border-bottom-radius((@panel-border-radius - 1));
-}
-
-
-// List groups in panels
-//
-// By default, space out list group content from panel headings to account for
-// any kind of custom content between the two.
-
-.panel {
- > .list-group,
- > .panel-collapse > .list-group {
- margin-bottom: 0;
-
- .list-group-item {
- border-width: 1px 0;
- border-radius: 0;
- }
-
- // Add border top radius for first one
- &:first-child {
- .list-group-item:first-child {
- border-top: 0;
- .border-top-radius((@panel-border-radius - 1));
- }
- }
- // Add border bottom radius for last one
- &:last-child {
- .list-group-item:last-child {
- border-bottom: 0;
- .border-bottom-radius((@panel-border-radius - 1));
- }
- }
- }
-}
-// Collapse space between when there's no additional content.
-.panel-heading + .list-group {
- .list-group-item:first-child {
- border-top-width: 0;
- }
-}
-.list-group + .panel-footer {
- border-top-width: 0;
-}
-
-// Tables in panels
-//
-// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
-// watch it go full width.
-
-.panel {
- > .table,
- > .table-responsive > .table,
- > .panel-collapse > .table {
- margin-bottom: 0;
-
- caption {
- padding-left: @panel-body-padding;
- padding-right: @panel-body-padding;
- }
- }
- // Add border top radius for first one
- > .table:first-child,
- > .table-responsive:first-child > .table:first-child {
- .border-top-radius((@panel-border-radius - 1));
-
- > thead:first-child,
- > tbody:first-child {
- > tr:first-child {
- border-top-left-radius: (@panel-border-radius - 1);
- border-top-right-radius: (@panel-border-radius - 1);
-
- td:first-child,
- th:first-child {
- border-top-left-radius: (@panel-border-radius - 1);
- }
- td:last-child,
- th:last-child {
- border-top-right-radius: (@panel-border-radius - 1);
- }
- }
- }
- }
- // Add border bottom radius for last one
- > .table:last-child,
- > .table-responsive:last-child > .table:last-child {
- .border-bottom-radius((@panel-border-radius - 1));
-
- > tbody:last-child,
- > tfoot:last-child {
- > tr:last-child {
- border-bottom-left-radius: (@panel-border-radius - 1);
- border-bottom-right-radius: (@panel-border-radius - 1);
-
- td:first-child,
- th:first-child {
- border-bottom-left-radius: (@panel-border-radius - 1);
- }
- td:last-child,
- th:last-child {
- border-bottom-right-radius: (@panel-border-radius - 1);
- }
- }
- }
- }
- > .panel-body + .table,
- > .panel-body + .table-responsive,
- > .table + .panel-body,
- > .table-responsive + .panel-body {
- border-top: 1px solid @table-border-color;
- }
- > .table > tbody:first-child > tr:first-child th,
- > .table > tbody:first-child > tr:first-child td {
- border-top: 0;
- }
- > .table-bordered,
- > .table-responsive > .table-bordered {
- border: 0;
- > thead,
- > tbody,
- > tfoot {
- > tr {
- > th:first-child,
- > td:first-child {
- border-left: 0;
- }
- > th:last-child,
- > td:last-child {
- border-right: 0;
- }
- }
- }
- > thead,
- > tbody {
- > tr:first-child {
- > td,
- > th {
- border-bottom: 0;
- }
- }
- }
- > tbody,
- > tfoot {
- > tr:last-child {
- > td,
- > th {
- border-bottom: 0;
- }
- }
- }
- }
- > .table-responsive {
- border: 0;
- margin-bottom: 0;
- }
-}
-
-
-// Collapsable panels (aka, accordion)
-//
-// Wrap a series of panels in `.panel-group` to turn them into an accordion with
-// the help of our collapse JavaScript plugin.
-
-.panel-group {
- margin-bottom: @line-height-computed;
-
- // Tighten up margin so it's only between panels
- .panel {
- margin-bottom: 0;
- border-radius: @panel-border-radius;
-
- + .panel {
- margin-top: 5px;
- }
- }
-
- .panel-heading {
- border-bottom: 0;
-
- + .panel-collapse > .panel-body,
- + .panel-collapse > .list-group {
- border-top: 1px solid @panel-inner-border;
- }
- }
-
- .panel-footer {
- border-top: 0;
- + .panel-collapse .panel-body {
- border-bottom: 1px solid @panel-inner-border;
- }
- }
-}
-
-
-// Contextual variations
-.panel-default {
- .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);
-}
-.panel-primary {
- .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);
-}
-.panel-success {
- .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);
-}
-.panel-info {
- .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);
-}
-.panel-warning {
- .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);
-}
-.panel-danger {
- .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);
-}
--- a/server/src/resources/assets/less/bootstrap/popovers.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-//
-// Popovers
-// --------------------------------------------------
-
-
-.popover {
- position: absolute;
- top: 0;
- left: 0;
- z-index: @zindex-popover;
- display: none;
- max-width: @popover-max-width;
- padding: 1px;
- // Reset font and text propertes given new insertion method
- font-family: @font-family-base;
- font-size: @font-size-base;
- font-weight: normal;
- line-height: @line-height-base;
- text-align: left;
- background-color: @popover-bg;
- background-clip: padding-box;
- border: 1px solid @popover-fallback-border-color;
- border: 1px solid @popover-border-color;
- border-radius: @border-radius-large;
- .box-shadow(0 5px 10px rgba(0,0,0,.2));
-
- // Overrides for proper insertion
- white-space: normal;
-
- // Offset the popover to account for the popover arrow
- &.top { margin-top: -@popover-arrow-width; }
- &.right { margin-left: @popover-arrow-width; }
- &.bottom { margin-top: @popover-arrow-width; }
- &.left { margin-left: -@popover-arrow-width; }
-}
-
-.popover-title {
- margin: 0; // reset heading margin
- padding: 8px 14px;
- font-size: @font-size-base;
- background-color: @popover-title-bg;
- border-bottom: 1px solid darken(@popover-title-bg, 5%);
- border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;
-}
-
-.popover-content {
- padding: 9px 14px;
-}
-
-// Arrows
-//
-// .arrow is outer, .arrow:after is inner
-
-.popover > .arrow {
- &,
- &:after {
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
- }
-}
-.popover > .arrow {
- border-width: @popover-arrow-outer-width;
-}
-.popover > .arrow:after {
- border-width: @popover-arrow-width;
- content: "";
-}
-
-.popover {
- &.top > .arrow {
- left: 50%;
- margin-left: -@popover-arrow-outer-width;
- border-bottom-width: 0;
- border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback
- border-top-color: @popover-arrow-outer-color;
- bottom: -@popover-arrow-outer-width;
- &:after {
- content: " ";
- bottom: 1px;
- margin-left: -@popover-arrow-width;
- border-bottom-width: 0;
- border-top-color: @popover-arrow-color;
- }
- }
- &.right > .arrow {
- top: 50%;
- left: -@popover-arrow-outer-width;
- margin-top: -@popover-arrow-outer-width;
- border-left-width: 0;
- border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback
- border-right-color: @popover-arrow-outer-color;
- &:after {
- content: " ";
- left: 1px;
- bottom: -@popover-arrow-width;
- border-left-width: 0;
- border-right-color: @popover-arrow-color;
- }
- }
- &.bottom > .arrow {
- left: 50%;
- margin-left: -@popover-arrow-outer-width;
- border-top-width: 0;
- border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback
- border-bottom-color: @popover-arrow-outer-color;
- top: -@popover-arrow-outer-width;
- &:after {
- content: " ";
- top: 1px;
- margin-left: -@popover-arrow-width;
- border-top-width: 0;
- border-bottom-color: @popover-arrow-color;
- }
- }
-
- &.left > .arrow {
- top: 50%;
- right: -@popover-arrow-outer-width;
- margin-top: -@popover-arrow-outer-width;
- border-right-width: 0;
- border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback
- border-left-color: @popover-arrow-outer-color;
- &:after {
- content: " ";
- right: 1px;
- border-right-width: 0;
- border-left-color: @popover-arrow-color;
- bottom: -@popover-arrow-width;
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/print.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
-
-// ==========================================================================
-// Print styles.
-// Inlined to avoid the additional HTTP request: h5bp.com/r
-// ==========================================================================
-
-@media print {
- *,
- *:before,
- *:after {
- background: transparent !important;
- color: #000 !important; // Black prints faster: h5bp.com/s
- box-shadow: none !important;
- text-shadow: none !important;
- }
-
- a,
- a:visited {
- text-decoration: underline;
- }
-
- a[href]:after {
- content: " (" attr(href) ")";
- }
-
- abbr[title]:after {
- content: " (" attr(title) ")";
- }
-
- // Don't show links that are fragment identifiers,
- // or use the `javascript:` pseudo protocol
- a[href^="#"]:after,
- a[href^="javascript:"]:after {
- content: "";
- }
-
- pre,
- blockquote {
- border: 1px solid #999;
- page-break-inside: avoid;
- }
-
- thead {
- display: table-header-group; // h5bp.com/t
- }
-
- tr,
- img {
- page-break-inside: avoid;
- }
-
- img {
- max-width: 100% !important;
- }
-
- p,
- h2,
- h3 {
- orphans: 3;
- widows: 3;
- }
-
- h2,
- h3 {
- page-break-after: avoid;
- }
-
- // Bootstrap specific changes start
- //
- // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245
- // Once fixed, we can just straight up remove this.
- select {
- background: #fff !important;
- }
-
- // Bootstrap components
- .navbar {
- display: none;
- }
- .btn,
- .dropup > .btn {
- > .caret {
- border-top-color: #000 !important;
- }
- }
- .label {
- border: 1px solid #000;
- }
-
- .table {
- border-collapse: collapse !important;
-
- td,
- th {
- background-color: #fff !important;
- }
- }
- .table-bordered {
- th,
- td {
- border: 1px solid #ddd !important;
- }
- }
-
- // Bootstrap specific changes end
-}
--- a/server/src/resources/assets/less/bootstrap/progress-bars.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-//
-// Progress bars
-// --------------------------------------------------
-
-
-// Bar animations
-// -------------------------
-
-// WebKit
-@-webkit-keyframes progress-bar-stripes {
- from { background-position: 40px 0; }
- to { background-position: 0 0; }
-}
-
-// Spec and IE10+
-@keyframes progress-bar-stripes {
- from { background-position: 40px 0; }
- to { background-position: 0 0; }
-}
-
-
-// Bar itself
-// -------------------------
-
-// Outer container
-.progress {
- overflow: hidden;
- height: @line-height-computed;
- margin-bottom: @line-height-computed;
- background-color: @progress-bg;
- border-radius: @progress-border-radius;
- .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
-}
-
-// Bar of progress
-.progress-bar {
- float: left;
- width: 0%;
- height: 100%;
- font-size: @font-size-small;
- line-height: @line-height-computed;
- color: @progress-bar-color;
- text-align: center;
- background-color: @progress-bar-bg;
- .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
- .transition(width .6s ease);
-}
-
-// Striped bars
-//
-// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
-// `.progress-bar-striped` class, which you just add to an existing
-// `.progress-bar`.
-.progress-striped .progress-bar,
-.progress-bar-striped {
- #gradient > .striped();
- background-size: 40px 40px;
-}
-
-// Call animation for the active one
-//
-// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
-// `.progress-bar.active` approach.
-.progress.active .progress-bar,
-.progress-bar.active {
- .animation(progress-bar-stripes 2s linear infinite);
-}
-
-
-// Variations
-// -------------------------
-
-.progress-bar-success {
- .progress-bar-variant(@progress-bar-success-bg);
-}
-
-.progress-bar-info {
- .progress-bar-variant(@progress-bar-info-bg);
-}
-
-.progress-bar-warning {
- .progress-bar-variant(@progress-bar-warning-bg);
-}
-
-.progress-bar-danger {
- .progress-bar-variant(@progress-bar-danger-bg);
-}
--- a/server/src/resources/assets/less/bootstrap/responsive-embed.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-// Embeds responsive
-//
-// Credit: Nicolas Gallagher and SUIT CSS.
-
-.embed-responsive {
- position: relative;
- display: block;
- height: 0;
- padding: 0;
- overflow: hidden;
-
- .embed-responsive-item,
- iframe,
- embed,
- object,
- video {
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- height: 100%;
- width: 100%;
- border: 0;
- }
-
- // Modifier class for 16:9 aspect ratio
- &.embed-responsive-16by9 {
- padding-bottom: 56.25%;
- }
-
- // Modifier class for 4:3 aspect ratio
- &.embed-responsive-4by3 {
- padding-bottom: 75%;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/responsive-utilities.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-//
-// Responsive: Utility classes
-// --------------------------------------------------
-
-
-// IE10 in Windows (Phone) 8
-//
-// Support for responsive views via media queries is kind of borked in IE10, for
-// Surface/desktop in split view and for Windows Phone 8. This particular fix
-// must be accompanied by a snippet of JavaScript to sniff the user agent and
-// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
-// our Getting Started page for more information on this bug.
-//
-// For more information, see the following:
-//
-// Issue: https://github.com/twbs/bootstrap/issues/10497
-// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
-// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
-// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
-
-@-ms-viewport {
- width: device-width;
-}
-
-
-// Visibility utilities
-// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
-.visible-xs,
-.visible-sm,
-.visible-md,
-.visible-lg {
- .responsive-invisibility();
-}
-
-.visible-xs-block,
-.visible-xs-inline,
-.visible-xs-inline-block,
-.visible-sm-block,
-.visible-sm-inline,
-.visible-sm-inline-block,
-.visible-md-block,
-.visible-md-inline,
-.visible-md-inline-block,
-.visible-lg-block,
-.visible-lg-inline,
-.visible-lg-inline-block {
- display: none !important;
-}
-
-.visible-xs {
- @media (max-width: @screen-xs-max) {
- .responsive-visibility();
- }
-}
-.visible-xs-block {
- @media (max-width: @screen-xs-max) {
- display: block !important;
- }
-}
-.visible-xs-inline {
- @media (max-width: @screen-xs-max) {
- display: inline !important;
- }
-}
-.visible-xs-inline-block {
- @media (max-width: @screen-xs-max) {
- display: inline-block !important;
- }
-}
-
-.visible-sm {
- @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
- .responsive-visibility();
- }
-}
-.visible-sm-block {
- @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
- display: block !important;
- }
-}
-.visible-sm-inline {
- @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
- display: inline !important;
- }
-}
-.visible-sm-inline-block {
- @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
- display: inline-block !important;
- }
-}
-
-.visible-md {
- @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
- .responsive-visibility();
- }
-}
-.visible-md-block {
- @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
- display: block !important;
- }
-}
-.visible-md-inline {
- @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
- display: inline !important;
- }
-}
-.visible-md-inline-block {
- @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
- display: inline-block !important;
- }
-}
-
-.visible-lg {
- @media (min-width: @screen-lg-min) {
- .responsive-visibility();
- }
-}
-.visible-lg-block {
- @media (min-width: @screen-lg-min) {
- display: block !important;
- }
-}
-.visible-lg-inline {
- @media (min-width: @screen-lg-min) {
- display: inline !important;
- }
-}
-.visible-lg-inline-block {
- @media (min-width: @screen-lg-min) {
- display: inline-block !important;
- }
-}
-
-.hidden-xs {
- @media (max-width: @screen-xs-max) {
- .responsive-invisibility();
- }
-}
-.hidden-sm {
- @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
- .responsive-invisibility();
- }
-}
-.hidden-md {
- @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
- .responsive-invisibility();
- }
-}
-.hidden-lg {
- @media (min-width: @screen-lg-min) {
- .responsive-invisibility();
- }
-}
-
-
-// Print utilities
-//
-// Media queries are placed on the inside to be mixin-friendly.
-
-// Note: Deprecated .visible-print as of v3.2.0
-.visible-print {
- .responsive-invisibility();
-
- @media print {
- .responsive-visibility();
- }
-}
-.visible-print-block {
- display: none !important;
-
- @media print {
- display: block !important;
- }
-}
-.visible-print-inline {
- display: none !important;
-
- @media print {
- display: inline !important;
- }
-}
-.visible-print-inline-block {
- display: none !important;
-
- @media print {
- display: inline-block !important;
- }
-}
-
-.hidden-print {
- @media print {
- .responsive-invisibility();
- }
-}
--- a/server/src/resources/assets/less/bootstrap/scaffolding.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-//
-// Scaffolding
-// --------------------------------------------------
-
-
-// Reset the box-sizing
-//
-// Heads up! This reset may cause conflicts with some third-party widgets.
-// For recommendations on resolving such conflicts, see
-// http://getbootstrap.com/getting-started/#third-box-sizing
-* {
- .box-sizing(border-box);
-}
-*:before,
-*:after {
- .box-sizing(border-box);
-}
-
-
-// Body reset
-
-html {
- font-size: 10px;
- -webkit-tap-highlight-color: rgba(0,0,0,0);
-}
-
-body {
- font-family: @font-family-base;
- font-size: @font-size-base;
- line-height: @line-height-base;
- color: @text-color;
- background-color: @body-bg;
-}
-
-// Reset fonts for relevant elements
-input,
-button,
-select,
-textarea {
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
-}
-
-
-// Links
-
-a {
- color: @link-color;
- text-decoration: none;
-
- &:hover,
- &:focus {
- color: @link-hover-color;
- text-decoration: @link-hover-decoration;
- }
-
- &:focus {
- .tab-focus();
- }
-}
-
-
-// Figures
-//
-// We reset this here because previously Normalize had no `figure` margins. This
-// ensures we don't break anyone's use of the element.
-
-figure {
- margin: 0;
-}
-
-
-// Images
-
-img {
- vertical-align: middle;
-}
-
-// Responsive images (ensure images don't scale beyond their parents)
-.img-responsive {
- .img-responsive();
-}
-
-// Rounded corners
-.img-rounded {
- border-radius: @border-radius-large;
-}
-
-// Image thumbnails
-//
-// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
-.img-thumbnail {
- padding: @thumbnail-padding;
- line-height: @line-height-base;
- background-color: @thumbnail-bg;
- border: 1px solid @thumbnail-border;
- border-radius: @thumbnail-border-radius;
- .transition(all .2s ease-in-out);
-
- // Keep them at most 100% wide
- .img-responsive(inline-block);
-}
-
-// Perfect circle
-.img-circle {
- border-radius: 50%; // set radius in percents
-}
-
-
-// Horizontal rules
-
-hr {
- margin-top: @line-height-computed;
- margin-bottom: @line-height-computed;
- border: 0;
- border-top: 1px solid @hr-border;
-}
-
-
-// Only display content to screen readers
-//
-// See: http://a11yproject.com/posts/how-to-hide-content/
-
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- margin: -1px;
- padding: 0;
- overflow: hidden;
- clip: rect(0,0,0,0);
- border: 0;
-}
-
-// Use in conjunction with .sr-only to only display content when it's focused.
-// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
-// Credit: HTML5 Boilerplate
-
-.sr-only-focusable {
- &:active,
- &:focus {
- position: static;
- width: auto;
- height: auto;
- margin: 0;
- overflow: visible;
- clip: auto;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/tables.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-//
-// Tables
-// --------------------------------------------------
-
-
-table {
- background-color: @table-bg;
-}
-caption {
- padding-top: @table-cell-padding;
- padding-bottom: @table-cell-padding;
- color: @text-muted;
- text-align: left;
-}
-th {
- text-align: left;
-}
-
-
-// Baseline styles
-
-.table {
- width: 100%;
- max-width: 100%;
- margin-bottom: @line-height-computed;
- // Cells
- > thead,
- > tbody,
- > tfoot {
- > tr {
- > th,
- > td {
- padding: @table-cell-padding;
- line-height: @line-height-base;
- vertical-align: top;
- border-top: 1px solid @table-border-color;
- }
- }
- }
- // Bottom align for column headings
- > thead > tr > th {
- vertical-align: bottom;
- border-bottom: 2px solid @table-border-color;
- }
- // Remove top border from thead by default
- > caption + thead,
- > colgroup + thead,
- > thead:first-child {
- > tr:first-child {
- > th,
- > td {
- border-top: 0;
- }
- }
- }
- // Account for multiple tbody instances
- > tbody + tbody {
- border-top: 2px solid @table-border-color;
- }
-
- // Nesting
- .table {
- background-color: @body-bg;
- }
-}
-
-
-// Condensed table w/ half padding
-
-.table-condensed {
- > thead,
- > tbody,
- > tfoot {
- > tr {
- > th,
- > td {
- padding: @table-condensed-cell-padding;
- }
- }
- }
-}
-
-
-// Bordered version
-//
-// Add borders all around the table and between all the columns.
-
-.table-bordered {
- border: 1px solid @table-border-color;
- > thead,
- > tbody,
- > tfoot {
- > tr {
- > th,
- > td {
- border: 1px solid @table-border-color;
- }
- }
- }
- > thead > tr {
- > th,
- > td {
- border-bottom-width: 2px;
- }
- }
-}
-
-
-// Zebra-striping
-//
-// Default zebra-stripe styles (alternating gray and transparent backgrounds)
-
-.table-striped {
- > tbody > tr:nth-child(odd) {
- background-color: @table-bg-accent;
- }
-}
-
-
-// Hover effect
-//
-// Placed here since it has to come after the potential zebra striping
-
-.table-hover {
- > tbody > tr:hover {
- background-color: @table-bg-hover;
- }
-}
-
-
-// Table cell sizing
-//
-// Reset default table behavior
-
-table col[class*="col-"] {
- position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
- float: none;
- display: table-column;
-}
-table {
- td,
- th {
- &[class*="col-"] {
- position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
- float: none;
- display: table-cell;
- }
- }
-}
-
-
-// Table backgrounds
-//
-// Exact selectors below required to override `.table-striped` and prevent
-// inheritance to nested tables.
-
-// Generate the contextual variants
-.table-row-variant(active; @table-bg-active);
-.table-row-variant(success; @state-success-bg);
-.table-row-variant(info; @state-info-bg);
-.table-row-variant(warning; @state-warning-bg);
-.table-row-variant(danger; @state-danger-bg);
-
-
-// Responsive tables
-//
-// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
-// by enabling horizontal scrolling. Only applies <768px. Everything above that
-// will display normally.
-
-.table-responsive {
- overflow-x: auto;
- min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
-
- @media screen and (max-width: @screen-xs-max) {
- width: 100%;
- margin-bottom: (@line-height-computed * 0.75);
- overflow-y: hidden;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- border: 1px solid @table-border-color;
-
- // Tighten up spacing
- > .table {
- margin-bottom: 0;
-
- // Ensure the content doesn't wrap
- > thead,
- > tbody,
- > tfoot {
- > tr {
- > th,
- > td {
- white-space: nowrap;
- }
- }
- }
- }
-
- // Special overrides for the bordered tables
- > .table-bordered {
- border: 0;
-
- // Nuke the appropriate borders so that the parent can handle them
- > thead,
- > tbody,
- > tfoot {
- > tr {
- > th:first-child,
- > td:first-child {
- border-left: 0;
- }
- > th:last-child,
- > td:last-child {
- border-right: 0;
- }
- }
- }
-
- // Only nuke the last row's bottom-border in `tbody` and `tfoot` since
- // chances are there will be only one `tr` in a `thead` and that would
- // remove the border altogether.
- > tbody,
- > tfoot {
- > tr:last-child {
- > th,
- > td {
- border-bottom: 0;
- }
- }
- }
-
- }
- }
-}
--- a/server/src/resources/assets/less/bootstrap/theme.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,272 +0,0 @@
-
-//
-// Load core variables and mixins
-// --------------------------------------------------
-
-@import "variables.less";
-@import "mixins.less";
-
-
-//
-// Buttons
-// --------------------------------------------------
-
-// Common styles
-.btn-default,
-.btn-primary,
-.btn-success,
-.btn-info,
-.btn-warning,
-.btn-danger {
- text-shadow: 0 -1px 0 rgba(0,0,0,.2);
- @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
- .box-shadow(@shadow);
-
- // Reset the shadow
- &:active,
- &.active {
- .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
- }
-
- .badge {
- text-shadow: none;
- }
-}
-
-// Mixin for generating new styles
-.btn-styles(@btn-color: #555) {
- #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));
- .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners
- background-repeat: repeat-x;
- border-color: darken(@btn-color, 14%);
-
- &:hover,
- &:focus {
- background-color: darken(@btn-color, 12%);
- background-position: 0 -15px;
- }
-
- &:active,
- &.active {
- background-color: darken(@btn-color, 12%);
- border-color: darken(@btn-color, 14%);
- }
-
- &:disabled,
- &[disabled] {
- background-color: darken(@btn-color, 12%);
- background-image: none;
- }
-}
-
-// Common styles
-.btn {
- // Remove the gradient for the pressed/active state
- &:active,
- &.active {
- background-image: none;
- }
-}
-
-// Apply the mixin to the buttons
-.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
-.btn-primary { .btn-styles(@btn-primary-bg); }
-.btn-success { .btn-styles(@btn-success-bg); }
-.btn-info { .btn-styles(@btn-info-bg); }
-.btn-warning { .btn-styles(@btn-warning-bg); }
-.btn-danger { .btn-styles(@btn-danger-bg); }
-
-
-//
-// Images
-// --------------------------------------------------
-
-.thumbnail,
-.img-thumbnail {
- .box-shadow(0 1px 2px rgba(0,0,0,.075));
-}
-
-
-//
-// Dropdowns
-// --------------------------------------------------
-
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
- #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));
- background-color: darken(@dropdown-link-hover-bg, 5%);
-}
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
- #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
- background-color: darken(@dropdown-link-active-bg, 5%);
-}
-
-
-//
-// Navbar
-// --------------------------------------------------
-
-// Default navbar
-.navbar-default {
- #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);
- .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
- border-radius: @navbar-border-radius;
- @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
- .box-shadow(@shadow);
-
- .navbar-nav > .open > a,
- .navbar-nav > .active > a {
- #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));
- .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
- }
-}
-.navbar-brand,
-.navbar-nav > li > a {
- text-shadow: 0 1px 0 rgba(255,255,255,.25);
-}
-
-// Inverted navbar
-.navbar-inverse {
- #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);
- .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
-
- .navbar-nav > .open > a,
- .navbar-nav > .active > a {
- #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));
- .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
- }
-
- .navbar-brand,
- .navbar-nav > li > a {
- text-shadow: 0 -1px 0 rgba(0,0,0,.25);
- }
-}
-
-// Undo rounded corners in static and fixed navbars
-.navbar-static-top,
-.navbar-fixed-top,
-.navbar-fixed-bottom {
- border-radius: 0;
-}
-
-// Fix active state of dropdown items in collapsed mode
-@media (max-width: @grid-float-breakpoint-max) {
- .navbar .navbar-nav .open .dropdown-menu > .active > a {
- &,
- &:hover,
- &:focus {
- color: #fff;
- #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
- }
- }
-}
-
-
-//
-// Alerts
-// --------------------------------------------------
-
-// Common styles
-.alert {
- text-shadow: 0 1px 0 rgba(255,255,255,.2);
- @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
- .box-shadow(@shadow);
-}
-
-// Mixin for generating new styles
-.alert-styles(@color) {
- #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));
- border-color: darken(@color, 15%);
-}
-
-// Apply the mixin to the alerts
-.alert-success { .alert-styles(@alert-success-bg); }
-.alert-info { .alert-styles(@alert-info-bg); }
-.alert-warning { .alert-styles(@alert-warning-bg); }
-.alert-danger { .alert-styles(@alert-danger-bg); }
-
-
-//
-// Progress bars
-// --------------------------------------------------
-
-// Give the progress background some depth
-.progress {
- #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)
-}
-
-// Mixin for generating new styles
-.progress-bar-styles(@color) {
- #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));
-}
-
-// Apply the mixin to the progress bars
-.progress-bar { .progress-bar-styles(@progress-bar-bg); }
-.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }
-.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }
-.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }
-.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }
-
-// Reset the striped class because our mixins don't do multiple gradients and
-// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
-.progress-bar-striped {
- #gradient > .striped();
-}
-
-
-//
-// List groups
-// --------------------------------------------------
-
-.list-group {
- border-radius: @border-radius-base;
- .box-shadow(0 1px 2px rgba(0,0,0,.075));
-}
-.list-group-item.active,
-.list-group-item.active:hover,
-.list-group-item.active:focus {
- text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);
- #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));
- border-color: darken(@list-group-active-border, 7.5%);
-
- .badge {
- text-shadow: none;
- }
-}
-
-
-//
-// Panels
-// --------------------------------------------------
-
-// Common styles
-.panel {
- .box-shadow(0 1px 2px rgba(0,0,0,.05));
-}
-
-// Mixin for generating new styles
-.panel-heading-styles(@color) {
- #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));
-}
-
-// Apply the mixin to the panel headings only
-.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }
-.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }
-.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }
-.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }
-.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }
-.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }
-
-
-//
-// Wells
-// --------------------------------------------------
-
-.well {
- #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);
- border-color: darken(@well-bg, 10%);
- @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
- .box-shadow(@shadow);
-}
--- a/server/src/resources/assets/less/bootstrap/thumbnails.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-//
-// Thumbnails
-// --------------------------------------------------
-
-
-// Mixin and adjust the regular image class
-.thumbnail {
- display: block;
- padding: @thumbnail-padding;
- margin-bottom: @line-height-computed;
- line-height: @line-height-base;
- background-color: @thumbnail-bg;
- border: 1px solid @thumbnail-border;
- border-radius: @thumbnail-border-radius;
- .transition(border .2s ease-in-out);
-
- > img,
- a > img {
- &:extend(.img-responsive);
- margin-left: auto;
- margin-right: auto;
- }
-
- // Add a hover state for linked versions only
- a&:hover,
- a&:focus,
- a&.active {
- border-color: @link-color;
- }
-
- // Image captions
- .caption {
- padding: @thumbnail-caption-padding;
- color: @thumbnail-caption-color;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/tooltip.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-//
-// Tooltips
-// --------------------------------------------------
-
-
-// Base class
-.tooltip {
- position: absolute;
- z-index: @zindex-tooltip;
- display: block;
- visibility: visible;
- // Reset font and text propertes given new insertion method
- font-family: @font-family-base;
- font-size: @font-size-small;
- font-weight: normal;
- line-height: 1.4;
- .opacity(0);
-
- &.in { .opacity(@tooltip-opacity); }
- &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }
- &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }
- &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }
- &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }
-}
-
-// Wrapper for the tooltip content
-.tooltip-inner {
- max-width: @tooltip-max-width;
- padding: 3px 8px;
- color: @tooltip-color;
- text-align: center;
- text-decoration: none;
- background-color: @tooltip-bg;
- border-radius: @border-radius-base;
-}
-
-// Arrows
-.tooltip-arrow {
- position: absolute;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
-}
-// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
-.tooltip {
- &.top .tooltip-arrow {
- bottom: 0;
- left: 50%;
- margin-left: -@tooltip-arrow-width;
- border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
- border-top-color: @tooltip-arrow-color;
- }
- &.top-left .tooltip-arrow {
- bottom: 0;
- right: @tooltip-arrow-width;
- margin-bottom: -@tooltip-arrow-width;
- border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
- border-top-color: @tooltip-arrow-color;
- }
- &.top-right .tooltip-arrow {
- bottom: 0;
- left: @tooltip-arrow-width;
- margin-bottom: -@tooltip-arrow-width;
- border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
- border-top-color: @tooltip-arrow-color;
- }
- &.right .tooltip-arrow {
- top: 50%;
- left: 0;
- margin-top: -@tooltip-arrow-width;
- border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;
- border-right-color: @tooltip-arrow-color;
- }
- &.left .tooltip-arrow {
- top: 50%;
- right: 0;
- margin-top: -@tooltip-arrow-width;
- border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;
- border-left-color: @tooltip-arrow-color;
- }
- &.bottom .tooltip-arrow {
- top: 0;
- left: 50%;
- margin-left: -@tooltip-arrow-width;
- border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
- border-bottom-color: @tooltip-arrow-color;
- }
- &.bottom-left .tooltip-arrow {
- top: 0;
- right: @tooltip-arrow-width;
- margin-top: -@tooltip-arrow-width;
- border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
- border-bottom-color: @tooltip-arrow-color;
- }
- &.bottom-right .tooltip-arrow {
- top: 0;
- left: @tooltip-arrow-width;
- margin-top: -@tooltip-arrow-width;
- border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
- border-bottom-color: @tooltip-arrow-color;
- }
-}
--- a/server/src/resources/assets/less/bootstrap/type.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,302 +0,0 @@
-//
-// Typography
-// --------------------------------------------------
-
-
-// Headings
-// -------------------------
-
-h1, h2, h3, h4, h5, h6,
-.h1, .h2, .h3, .h4, .h5, .h6 {
- font-family: @headings-font-family;
- font-weight: @headings-font-weight;
- line-height: @headings-line-height;
- color: @headings-color;
-
- small,
- .small {
- font-weight: normal;
- line-height: 1;
- color: @headings-small-color;
- }
-}
-
-h1, .h1,
-h2, .h2,
-h3, .h3 {
- margin-top: @line-height-computed;
- margin-bottom: (@line-height-computed / 2);
-
- small,
- .small {
- font-size: 65%;
- }
-}
-h4, .h4,
-h5, .h5,
-h6, .h6 {
- margin-top: (@line-height-computed / 2);
- margin-bottom: (@line-height-computed / 2);
-
- small,
- .small {
- font-size: 75%;
- }
-}
-
-h1, .h1 { font-size: @font-size-h1; }
-h2, .h2 { font-size: @font-size-h2; }
-h3, .h3 { font-size: @font-size-h3; }
-h4, .h4 { font-size: @font-size-h4; }
-h5, .h5 { font-size: @font-size-h5; }
-h6, .h6 { font-size: @font-size-h6; }
-
-
-// Body text
-// -------------------------
-
-p {
- margin: 0 0 (@line-height-computed / 2);
-}
-
-.lead {
- margin-bottom: @line-height-computed;
- font-size: floor((@font-size-base * 1.15));
- font-weight: 300;
- line-height: 1.4;
-
- @media (min-width: @screen-sm-min) {
- font-size: (@font-size-base * 1.5);
- }
-}
-
-
-// Emphasis & misc
-// -------------------------
-
-// Ex: (12px small font / 14px base font) * 100% = about 85%
-small,
-.small {
- font-size: floor((100% * @font-size-small / @font-size-base));
-}
-
-mark,
-.mark {
- background-color: @state-warning-bg;
- padding: .2em;
-}
-
-// Alignment
-.text-left { text-align: left; }
-.text-right { text-align: right; }
-.text-center { text-align: center; }
-.text-justify { text-align: justify; }
-.text-nowrap { white-space: nowrap; }
-
-// Transformation
-.text-lowercase { text-transform: lowercase; }
-.text-uppercase { text-transform: uppercase; }
-.text-capitalize { text-transform: capitalize; }
-
-// Contextual colors
-.text-muted {
- color: @text-muted;
-}
-.text-primary {
- .text-emphasis-variant(@brand-primary);
-}
-.text-success {
- .text-emphasis-variant(@state-success-text);
-}
-.text-info {
- .text-emphasis-variant(@state-info-text);
-}
-.text-warning {
- .text-emphasis-variant(@state-warning-text);
-}
-.text-danger {
- .text-emphasis-variant(@state-danger-text);
-}
-
-// Contextual backgrounds
-// For now we'll leave these alongside the text classes until v4 when we can
-// safely shift things around (per SemVer rules).
-.bg-primary {
- // Given the contrast here, this is the only class to have its color inverted
- // automatically.
- color: #fff;
- .bg-variant(@brand-primary);
-}
-.bg-success {
- .bg-variant(@state-success-bg);
-}
-.bg-info {
- .bg-variant(@state-info-bg);
-}
-.bg-warning {
- .bg-variant(@state-warning-bg);
-}
-.bg-danger {
- .bg-variant(@state-danger-bg);
-}
-
-
-// Page header
-// -------------------------
-
-.page-header {
- padding-bottom: ((@line-height-computed / 2) - 1);
- margin: (@line-height-computed * 2) 0 @line-height-computed;
- border-bottom: 1px solid @page-header-border-color;
-}
-
-
-// Lists
-// -------------------------
-
-// Unordered and Ordered lists
-ul,
-ol {
- margin-top: 0;
- margin-bottom: (@line-height-computed / 2);
- ul,
- ol {
- margin-bottom: 0;
- }
-}
-
-// List options
-
-// Unstyled keeps list items block level, just removes default browser padding and list-style
-.list-unstyled {
- padding-left: 0;
- list-style: none;
-}
-
-// Inline turns list items into inline-block
-.list-inline {
- .list-unstyled();
- margin-left: -5px;
-
- > li {
- display: inline-block;
- padding-left: 5px;
- padding-right: 5px;
- }
-}
-
-// Description Lists
-dl {
- margin-top: 0; // Remove browser default
- margin-bottom: @line-height-computed;
-}
-dt,
-dd {
- line-height: @line-height-base;
-}
-dt {
- font-weight: bold;
-}
-dd {
- margin-left: 0; // Undo browser default
-}
-
-// Horizontal description lists
-//
-// Defaults to being stacked without any of the below styles applied, until the
-// grid breakpoint is reached (default of ~768px).
-
-.dl-horizontal {
- dd {
- &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
- }
-
- @media (min-width: @grid-float-breakpoint) {
- dt {
- float: left;
- width: (@dl-horizontal-offset - 20);
- clear: left;
- text-align: right;
- .text-overflow();
- }
- dd {
- margin-left: @dl-horizontal-offset;
- }
- }
-}
-
-
-// Misc
-// -------------------------
-
-// Abbreviations and acronyms
-abbr[title],
-// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
-abbr[data-original-title] {
- cursor: help;
- border-bottom: 1px dotted @abbr-border-color;
-}
-.initialism {
- font-size: 90%;
- text-transform: uppercase;
-}
-
-// Blockquotes
-blockquote {
- padding: (@line-height-computed / 2) @line-height-computed;
- margin: 0 0 @line-height-computed;
- font-size: @blockquote-font-size;
- border-left: 5px solid @blockquote-border-color;
-
- p,
- ul,
- ol {
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- // Note: Deprecated small and .small as of v3.1.0
- // Context: https://github.com/twbs/bootstrap/issues/11660
- footer,
- small,
- .small {
- display: block;
- font-size: 80%; // back to default font-size
- line-height: @line-height-base;
- color: @blockquote-small-color;
-
- &:before {
- content: '\2014 \00A0'; // em dash, nbsp
- }
- }
-}
-
-// Opposite alignment of blockquote
-//
-// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
-.blockquote-reverse,
-blockquote.pull-right {
- padding-right: 15px;
- padding-left: 0;
- border-right: 5px solid @blockquote-border-color;
- border-left: 0;
- text-align: right;
-
- // Account for citation
- footer,
- small,
- .small {
- &:before { content: ''; }
- &:after {
- content: '\00A0 \2014'; // nbsp, em dash
- }
- }
-}
-
-// Addresses
-address {
- margin-bottom: @line-height-computed;
- font-style: normal;
- line-height: @line-height-base;
-}
--- a/server/src/resources/assets/less/bootstrap/utilities.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-//
-// Utility classes
-// --------------------------------------------------
-
-
-// Floats
-// -------------------------
-
-.clearfix {
- .clearfix();
-}
-.center-block {
- .center-block();
-}
-.pull-right {
- float: right !important;
-}
-.pull-left {
- float: left !important;
-}
-
-
-// Toggling content
-// -------------------------
-
-// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
-.hide {
- display: none !important;
-}
-.show {
- display: block !important;
-}
-.invisible {
- visibility: hidden;
-}
-.text-hide {
- .text-hide();
-}
-
-
-// Hide from screenreaders and browsers
-//
-// Credit: HTML5 Boilerplate
-
-.hidden {
- display: none !important;
- visibility: hidden !important;
-}
-
-
-// For Affix plugin
-// -------------------------
-
-.affix {
- position: fixed;
-}
--- a/server/src/resources/assets/less/bootstrap/variables.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,856 +0,0 @@
-//
-// Variables
-// --------------------------------------------------
-
-
-//== Colors
-//
-//## Gray and brand colors for use across Bootstrap.
-
-@gray-base: #000;
-@gray-darker: lighten(@gray-base, 13.5%); // #222
-@gray-dark: lighten(@gray-base, 20%); // #333
-@gray: lighten(@gray-base, 33.5%); // #555
-@gray-light: lighten(@gray-base, 46.7%); // #777
-@gray-lighter: lighten(@gray-base, 93.5%); // #eee
-
-@brand-primary: darken(#428bca, 6.5%);
-@brand-success: #5cb85c;
-@brand-info: #5bc0de;
-@brand-warning: #f0ad4e;
-@brand-danger: #d9534f;
-
-
-//== Scaffolding
-//
-//## Settings for some of the most global styles.
-
-//** Background color for `<body>`.
-@body-bg: #fff;
-//** Global text color on `<body>`.
-@text-color: @gray-dark;
-
-//** Global textual link color.
-@link-color: @brand-primary;
-//** Link hover color set via `darken()` function.
-@link-hover-color: darken(@link-color, 15%);
-//** Link hover decoration.
-@link-hover-decoration: underline;
-
-
-//== Typography
-//
-//## Font, line-height, and color for body text, headings, and more.
-
-@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
-@font-family-serif: Georgia, "Times New Roman", Times, serif;
-//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
-@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
-@font-family-base: @font-family-sans-serif;
-
-@font-size-base: 14px;
-@font-size-large: ceil((@font-size-base * 1.25)); // ~18px
-@font-size-small: ceil((@font-size-base * 0.85)); // ~12px
-
-@font-size-h1: floor((@font-size-base * 2.6)); // ~36px
-@font-size-h2: floor((@font-size-base * 2.15)); // ~30px
-@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px
-@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px
-@font-size-h5: @font-size-base;
-@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px
-
-//** Unit-less `line-height` for use in components like buttons.
-@line-height-base: 1.428571429; // 20/14
-//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
-@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px
-
-//** By default, this inherits from the `<body>`.
-@headings-font-family: inherit;
-@headings-font-weight: 500;
-@headings-line-height: 1.1;
-@headings-color: inherit;
-
-
-//== Iconography
-//
-//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
-
-//** Load fonts from this directory.
-@icon-font-path: "../fonts/";
-//** File name for all font files.
-@icon-font-name: "glyphicons-halflings-regular";
-//** Element ID within SVG icon file.
-@icon-font-svg-id: "glyphicons_halflingsregular";
-
-
-//== Components
-//
-//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
-
-@padding-base-vertical: 6px;
-@padding-base-horizontal: 12px;
-
-@padding-large-vertical: 10px;
-@padding-large-horizontal: 16px;
-
-@padding-small-vertical: 5px;
-@padding-small-horizontal: 10px;
-
-@padding-xs-vertical: 1px;
-@padding-xs-horizontal: 5px;
-
-@line-height-large: 1.33;
-@line-height-small: 1.5;
-
-@border-radius-base: 4px;
-@border-radius-large: 6px;
-@border-radius-small: 3px;
-
-//** Global color for active items (e.g., navs or dropdowns).
-@component-active-color: #fff;
-//** Global background color for active items (e.g., navs or dropdowns).
-@component-active-bg: @brand-primary;
-
-//** Width of the `border` for generating carets that indicator dropdowns.
-@caret-width-base: 4px;
-//** Carets increase slightly in size for larger components.
-@caret-width-large: 5px;
-
-
-//== Tables
-//
-//## Customizes the `.table` component with basic values, each used across all table variations.
-
-//** Padding for `<th>`s and `<td>`s.
-@table-cell-padding: 8px;
-//** Padding for cells in `.table-condensed`.
-@table-condensed-cell-padding: 5px;
-
-//** Default background color used for all tables.
-@table-bg: transparent;
-//** Background color used for `.table-striped`.
-@table-bg-accent: #f9f9f9;
-//** Background color used for `.table-hover`.
-@table-bg-hover: #f5f5f5;
-@table-bg-active: @table-bg-hover;
-
-//** Border color for table and cell borders.
-@table-border-color: #ddd;
-
-
-//== Buttons
-//
-//## For each of Bootstrap's buttons, define text, background and border color.
-
-@btn-font-weight: normal;
-
-@btn-default-color: #333;
-@btn-default-bg: #fff;
-@btn-default-border: #ccc;
-
-@btn-primary-color: #fff;
-@btn-primary-bg: @brand-primary;
-@btn-primary-border: darken(@btn-primary-bg, 5%);
-
-@btn-success-color: #fff;
-@btn-success-bg: @brand-success;
-@btn-success-border: darken(@btn-success-bg, 5%);
-
-@btn-info-color: #fff;
-@btn-info-bg: @brand-info;
-@btn-info-border: darken(@btn-info-bg, 5%);
-
-@btn-warning-color: #fff;
-@btn-warning-bg: @brand-warning;
-@btn-warning-border: darken(@btn-warning-bg, 5%);
-
-@btn-danger-color: #fff;
-@btn-danger-bg: @brand-danger;
-@btn-danger-border: darken(@btn-danger-bg, 5%);
-
-@btn-link-disabled-color: @gray-light;
-
-
-//== Forms
-//
-//##
-
-//** `<input>` background color
-@input-bg: #fff;
-//** `<input disabled>` background color
-@input-bg-disabled: @gray-lighter;
-
-//** Text color for `<input>`s
-@input-color: @gray;
-//** `<input>` border color
-@input-border: #ccc;
-
-// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
-//** Default `.form-control` border radius
-@input-border-radius: @border-radius-base;
-//** Large `.form-control` border radius
-@input-border-radius-large: @border-radius-large;
-//** Small `.form-control` border radius
-@input-border-radius-small: @border-radius-small;
-
-//** Border color for inputs on focus
-@input-border-focus: #66afe9;
-
-//** Placeholder text color
-@input-color-placeholder: #999;
-
-//** Default `.form-control` height
-@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);
-//** Large `.form-control` height
-@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
-//** Small `.form-control` height
-@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
-
-@legend-color: @gray-dark;
-@legend-border-color: #e5e5e5;
-
-//** Background color for textual input addons
-@input-group-addon-bg: @gray-lighter;
-//** Border color for textual input addons
-@input-group-addon-border-color: @input-border;
-
-//** Disabled cursor for form controls and buttons.
-@cursor-disabled: not-allowed;
-
-
-//== Dropdowns
-//
-//## Dropdown menu container and contents.
-
-//** Background for the dropdown menu.
-@dropdown-bg: #fff;
-//** Dropdown menu `border-color`.
-@dropdown-border: rgba(0,0,0,.15);
-//** Dropdown menu `border-color` **for IE8**.
-@dropdown-fallback-border: #ccc;
-//** Divider color for between dropdown items.
-@dropdown-divider-bg: #e5e5e5;
-
-//** Dropdown link text color.
-@dropdown-link-color: @gray-dark;
-//** Hover color for dropdown links.
-@dropdown-link-hover-color: darken(@gray-dark, 5%);
-//** Hover background for dropdown links.
-@dropdown-link-hover-bg: #f5f5f5;
-
-//** Active dropdown menu item text color.
-@dropdown-link-active-color: @component-active-color;
-//** Active dropdown menu item background color.
-@dropdown-link-active-bg: @component-active-bg;
-
-//** Disabled dropdown menu item background color.
-@dropdown-link-disabled-color: @gray-light;
-
-//** Text color for headers within dropdown menus.
-@dropdown-header-color: @gray-light;
-
-//** Deprecated `@dropdown-caret-color` as of v3.1.0
-@dropdown-caret-color: #000;
-
-
-//-- Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-//
-// Note: These variables are not generated into the Customizer.
-
-@zindex-navbar: 1000;
-@zindex-dropdown: 1000;
-@zindex-popover: 1060;
-@zindex-tooltip: 1070;
-@zindex-navbar-fixed: 1030;
-@zindex-modal: 1040;
-
-
-//== Media queries breakpoints
-//
-//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
-
-// Extra small screen / phone
-//** Deprecated `@screen-xs` as of v3.0.1
-@screen-xs: 480px;
-//** Deprecated `@screen-xs-min` as of v3.2.0
-@screen-xs-min: @screen-xs;
-//** Deprecated `@screen-phone` as of v3.0.1
-@screen-phone: @screen-xs-min;
-
-// Small screen / tablet
-//** Deprecated `@screen-sm` as of v3.0.1
-@screen-sm: 768px;
-@screen-sm-min: @screen-sm;
-//** Deprecated `@screen-tablet` as of v3.0.1
-@screen-tablet: @screen-sm-min;
-
-// Medium screen / desktop
-//** Deprecated `@screen-md` as of v3.0.1
-@screen-md: 992px;
-@screen-md-min: @screen-md;
-//** Deprecated `@screen-desktop` as of v3.0.1
-@screen-desktop: @screen-md-min;
-
-// Large screen / wide desktop
-//** Deprecated `@screen-lg` as of v3.0.1
-@screen-lg: 1200px;
-@screen-lg-min: @screen-lg;
-//** Deprecated `@screen-lg-desktop` as of v3.0.1
-@screen-lg-desktop: @screen-lg-min;
-
-// So media queries don't overlap when required, provide a maximum
-@screen-xs-max: (@screen-sm-min - 1);
-@screen-sm-max: (@screen-md-min - 1);
-@screen-md-max: (@screen-lg-min - 1);
-
-
-//== Grid system
-//
-//## Define your custom responsive grid.
-
-//** Number of columns in the grid.
-@grid-columns: 12;
-//** Padding between columns. Gets divided in half for the left and right.
-@grid-gutter-width: 30px;
-// Navbar collapse
-//** Point at which the navbar becomes uncollapsed.
-@grid-float-breakpoint: @screen-sm-min;
-//** Point at which the navbar begins collapsing.
-@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
-
-
-//== Container sizes
-//
-//## Define the maximum width of `.container` for different screen sizes.
-
-// Small screen / tablet
-@container-tablet: (720px + @grid-gutter-width);
-//** For `@screen-sm-min` and up.
-@container-sm: @container-tablet;
-
-// Medium screen / desktop
-@container-desktop: (940px + @grid-gutter-width);
-//** For `@screen-md-min` and up.
-@container-md: @container-desktop;
-
-// Large screen / wide desktop
-@container-large-desktop: (1140px + @grid-gutter-width);
-//** For `@screen-lg-min` and up.
-@container-lg: @container-large-desktop;
-
-
-//== Navbar
-//
-//##
-
-// Basics of a navbar
-@navbar-height: 50px;
-@navbar-margin-bottom: @line-height-computed;
-@navbar-border-radius: @border-radius-base;
-@navbar-padding-horizontal: floor((@grid-gutter-width / 2));
-@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);
-@navbar-collapse-max-height: 340px;
-
-@navbar-default-color: #777;
-@navbar-default-bg: #f8f8f8;
-@navbar-default-border: darken(@navbar-default-bg, 6.5%);
-
-// Navbar links
-@navbar-default-link-color: #777;
-@navbar-default-link-hover-color: #333;
-@navbar-default-link-hover-bg: transparent;
-@navbar-default-link-active-color: #555;
-@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%);
-@navbar-default-link-disabled-color: #ccc;
-@navbar-default-link-disabled-bg: transparent;
-
-// Navbar brand label
-@navbar-default-brand-color: @navbar-default-link-color;
-@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%);
-@navbar-default-brand-hover-bg: transparent;
-
-// Navbar toggle
-@navbar-default-toggle-hover-bg: #ddd;
-@navbar-default-toggle-icon-bar-bg: #888;
-@navbar-default-toggle-border-color: #ddd;
-
-
-// Inverted navbar
-// Reset inverted navbar basics
-@navbar-inverse-color: lighten(@gray-light, 15%);
-@navbar-inverse-bg: #222;
-@navbar-inverse-border: darken(@navbar-inverse-bg, 10%);
-
-// Inverted navbar links
-@navbar-inverse-link-color: lighten(@gray-light, 15%);
-@navbar-inverse-link-hover-color: #fff;
-@navbar-inverse-link-hover-bg: transparent;
-@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color;
-@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%);
-@navbar-inverse-link-disabled-color: #444;
-@navbar-inverse-link-disabled-bg: transparent;
-
-// Inverted navbar brand label
-@navbar-inverse-brand-color: @navbar-inverse-link-color;
-@navbar-inverse-brand-hover-color: #fff;
-@navbar-inverse-brand-hover-bg: transparent;
-
-// Inverted navbar toggle
-@navbar-inverse-toggle-hover-bg: #333;
-@navbar-inverse-toggle-icon-bar-bg: #fff;
-@navbar-inverse-toggle-border-color: #333;
-
-
-//== Navs
-//
-//##
-
-//=== Shared nav styles
-@nav-link-padding: 10px 15px;
-@nav-link-hover-bg: @gray-lighter;
-
-@nav-disabled-link-color: @gray-light;
-@nav-disabled-link-hover-color: @gray-light;
-
-//== Tabs
-@nav-tabs-border-color: #ddd;
-
-@nav-tabs-link-hover-border-color: @gray-lighter;
-
-@nav-tabs-active-link-hover-bg: @body-bg;
-@nav-tabs-active-link-hover-color: @gray;
-@nav-tabs-active-link-hover-border-color: #ddd;
-
-@nav-tabs-justified-link-border-color: #ddd;
-@nav-tabs-justified-active-link-border-color: @body-bg;
-
-//== Pills
-@nav-pills-border-radius: @border-radius-base;
-@nav-pills-active-link-hover-bg: @component-active-bg;
-@nav-pills-active-link-hover-color: @component-active-color;
-
-
-//== Pagination
-//
-//##
-
-@pagination-color: @link-color;
-@pagination-bg: #fff;
-@pagination-border: #ddd;
-
-@pagination-hover-color: @link-hover-color;
-@pagination-hover-bg: @gray-lighter;
-@pagination-hover-border: #ddd;
-
-@pagination-active-color: #fff;
-@pagination-active-bg: @brand-primary;
-@pagination-active-border: @brand-primary;
-
-@pagination-disabled-color: @gray-light;
-@pagination-disabled-bg: #fff;
-@pagination-disabled-border: #ddd;
-
-
-//== Pager
-//
-//##
-
-@pager-bg: @pagination-bg;
-@pager-border: @pagination-border;
-@pager-border-radius: 15px;
-
-@pager-hover-bg: @pagination-hover-bg;
-
-@pager-active-bg: @pagination-active-bg;
-@pager-active-color: @pagination-active-color;
-
-@pager-disabled-color: @pagination-disabled-color;
-
-
-//== Jumbotron
-//
-//##
-
-@jumbotron-padding: 30px;
-@jumbotron-color: inherit;
-@jumbotron-bg: @gray-lighter;
-@jumbotron-heading-color: inherit;
-@jumbotron-font-size: ceil((@font-size-base * 1.5));
-
-
-//== Form states and alerts
-//
-//## Define colors for form feedback states and, by default, alerts.
-
-@state-success-text: #3c763d;
-@state-success-bg: #dff0d8;
-@state-success-border: darken(spin(@state-success-bg, -10), 5%);
-
-@state-info-text: #31708f;
-@state-info-bg: #d9edf7;
-@state-info-border: darken(spin(@state-info-bg, -10), 7%);
-
-@state-warning-text: #8a6d3b;
-@state-warning-bg: #fcf8e3;
-@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);
-
-@state-danger-text: #a94442;
-@state-danger-bg: #f2dede;
-@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
-
-
-//== Tooltips
-//
-//##
-
-//** Tooltip max width
-@tooltip-max-width: 200px;
-//** Tooltip text color
-@tooltip-color: #fff;
-//** Tooltip background color
-@tooltip-bg: #000;
-@tooltip-opacity: .9;
-
-//** Tooltip arrow width
-@tooltip-arrow-width: 5px;
-//** Tooltip arrow color
-@tooltip-arrow-color: @tooltip-bg;
-
-
-//== Popovers
-//
-//##
-
-//** Popover body background color
-@popover-bg: #fff;
-//** Popover maximum width
-@popover-max-width: 276px;
-//** Popover border color
-@popover-border-color: rgba(0,0,0,.2);
-//** Popover fallback border color
-@popover-fallback-border-color: #ccc;
-
-//** Popover title background color
-@popover-title-bg: darken(@popover-bg, 3%);
-
-//** Popover arrow width
-@popover-arrow-width: 10px;
-//** Popover arrow color
-@popover-arrow-color: @popover-bg;
-
-//** Popover outer arrow width
-@popover-arrow-outer-width: (@popover-arrow-width + 1);
-//** Popover outer arrow color
-@popover-arrow-outer-color: fadein(@popover-border-color, 5%);
-//** Popover outer arrow fallback color
-@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%);
-
-
-//== Labels
-//
-//##
-
-//** Default label background color
-@label-default-bg: @gray-light;
-//** Primary label background color
-@label-primary-bg: @brand-primary;
-//** Success label background color
-@label-success-bg: @brand-success;
-//** Info label background color
-@label-info-bg: @brand-info;
-//** Warning label background color
-@label-warning-bg: @brand-warning;
-//** Danger label background color
-@label-danger-bg: @brand-danger;
-
-//** Default label text color
-@label-color: #fff;
-//** Default text color of a linked label
-@label-link-hover-color: #fff;
-
-
-//== Modals
-//
-//##
-
-//** Padding applied to the modal body
-@modal-inner-padding: 15px;
-
-//** Padding applied to the modal title
-@modal-title-padding: 15px;
-//** Modal title line-height
-@modal-title-line-height: @line-height-base;
-
-//** Background color of modal content area
-@modal-content-bg: #fff;
-//** Modal content border color
-@modal-content-border-color: rgba(0,0,0,.2);
-//** Modal content border color **for IE8**
-@modal-content-fallback-border-color: #999;
-
-//** Modal backdrop background color
-@modal-backdrop-bg: #000;
-//** Modal backdrop opacity
-@modal-backdrop-opacity: .5;
-//** Modal header border color
-@modal-header-border-color: #e5e5e5;
-//** Modal footer border color
-@modal-footer-border-color: @modal-header-border-color;
-
-@modal-lg: 900px;
-@modal-md: 600px;
-@modal-sm: 300px;
-
-
-//== Alerts
-//
-//## Define alert colors, border radius, and padding.
-
-@alert-padding: 15px;
-@alert-border-radius: @border-radius-base;
-@alert-link-font-weight: bold;
-
-@alert-success-bg: @state-success-bg;
-@alert-success-text: @state-success-text;
-@alert-success-border: @state-success-border;
-
-@alert-info-bg: @state-info-bg;
-@alert-info-text: @state-info-text;
-@alert-info-border: @state-info-border;
-
-@alert-warning-bg: @state-warning-bg;
-@alert-warning-text: @state-warning-text;
-@alert-warning-border: @state-warning-border;
-
-@alert-danger-bg: @state-danger-bg;
-@alert-danger-text: @state-danger-text;
-@alert-danger-border: @state-danger-border;
-
-
-//== Progress bars
-//
-//##
-
-//** Background color of the whole progress component
-@progress-bg: #f5f5f5;
-//** Progress bar text color
-@progress-bar-color: #fff;
-//** Variable for setting rounded corners on progress bar.
-@progress-border-radius: @border-radius-base;
-
-//** Default progress bar color
-@progress-bar-bg: @brand-primary;
-//** Success progress bar color
-@progress-bar-success-bg: @brand-success;
-//** Warning progress bar color
-@progress-bar-warning-bg: @brand-warning;
-//** Danger progress bar color
-@progress-bar-danger-bg: @brand-danger;
-//** Info progress bar color
-@progress-bar-info-bg: @brand-info;
-
-
-//== List group
-//
-//##
-
-//** Background color on `.list-group-item`
-@list-group-bg: #fff;
-//** `.list-group-item` border color
-@list-group-border: #ddd;
-//** List group border radius
-@list-group-border-radius: @border-radius-base;
-
-//** Background color of single list items on hover
-@list-group-hover-bg: #f5f5f5;
-//** Text color of active list items
-@list-group-active-color: @component-active-color;
-//** Background color of active list items
-@list-group-active-bg: @component-active-bg;
-//** Border color of active list elements
-@list-group-active-border: @list-group-active-bg;
-//** Text color for content within active list items
-@list-group-active-text-color: lighten(@list-group-active-bg, 40%);
-
-//** Text color of disabled list items
-@list-group-disabled-color: @gray-light;
-//** Background color of disabled list items
-@list-group-disabled-bg: @gray-lighter;
-//** Text color for content within disabled list items
-@list-group-disabled-text-color: @list-group-disabled-color;
-
-@list-group-link-color: #555;
-@list-group-link-hover-color: @list-group-link-color;
-@list-group-link-heading-color: #333;
-
-
-//== Panels
-//
-//##
-
-@panel-bg: #fff;
-@panel-body-padding: 15px;
-@panel-heading-padding: 10px 15px;
-@panel-footer-padding: @panel-heading-padding;
-@panel-border-radius: @border-radius-base;
-
-//** Border color for elements within panels
-@panel-inner-border: #ddd;
-@panel-footer-bg: #f5f5f5;
-
-@panel-default-text: @gray-dark;
-@panel-default-border: #ddd;
-@panel-default-heading-bg: #f5f5f5;
-
-@panel-primary-text: #fff;
-@panel-primary-border: @brand-primary;
-@panel-primary-heading-bg: @brand-primary;
-
-@panel-success-text: @state-success-text;
-@panel-success-border: @state-success-border;
-@panel-success-heading-bg: @state-success-bg;
-
-@panel-info-text: @state-info-text;
-@panel-info-border: @state-info-border;
-@panel-info-heading-bg: @state-info-bg;
-
-@panel-warning-text: @state-warning-text;
-@panel-warning-border: @state-warning-border;
-@panel-warning-heading-bg: @state-warning-bg;
-
-@panel-danger-text: @state-danger-text;
-@panel-danger-border: @state-danger-border;
-@panel-danger-heading-bg: @state-danger-bg;
-
-
-//== Thumbnails
-//
-//##
-
-//** Padding around the thumbnail image
-@thumbnail-padding: 4px;
-//** Thumbnail background color
-@thumbnail-bg: @body-bg;
-//** Thumbnail border color
-@thumbnail-border: #ddd;
-//** Thumbnail border radius
-@thumbnail-border-radius: @border-radius-base;
-
-//** Custom text color for thumbnail captions
-@thumbnail-caption-color: @text-color;
-//** Padding around the thumbnail caption
-@thumbnail-caption-padding: 9px;
-
-
-//== Wells
-//
-//##
-
-@well-bg: #f5f5f5;
-@well-border: darken(@well-bg, 7%);
-
-
-//== Badges
-//
-//##
-
-@badge-color: #fff;
-//** Linked badge text color on hover
-@badge-link-hover-color: #fff;
-@badge-bg: @gray-light;
-
-//** Badge text color in active nav link
-@badge-active-color: @link-color;
-//** Badge background color in active nav link
-@badge-active-bg: #fff;
-
-@badge-font-weight: bold;
-@badge-line-height: 1;
-@badge-border-radius: 10px;
-
-
-//== Breadcrumbs
-//
-//##
-
-@breadcrumb-padding-vertical: 8px;
-@breadcrumb-padding-horizontal: 15px;
-//** Breadcrumb background color
-@breadcrumb-bg: #f5f5f5;
-//** Breadcrumb text color
-@breadcrumb-color: #ccc;
-//** Text color of current page in the breadcrumb
-@breadcrumb-active-color: @gray-light;
-//** Textual separator for between breadcrumb elements
-@breadcrumb-separator: "/";
-
-
-//== Carousel
-//
-//##
-
-@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);
-
-@carousel-control-color: #fff;
-@carousel-control-width: 15%;
-@carousel-control-opacity: .5;
-@carousel-control-font-size: 20px;
-
-@carousel-indicator-active-bg: #fff;
-@carousel-indicator-border-color: #fff;
-
-@carousel-caption-color: #fff;
-
-
-//== Close
-//
-//##
-
-@close-font-weight: bold;
-@close-color: #000;
-@close-text-shadow: 0 1px 0 #fff;
-
-
-//== Code
-//
-//##
-
-@code-color: #c7254e;
-@code-bg: #f9f2f4;
-
-@kbd-color: #fff;
-@kbd-bg: #333;
-
-@pre-bg: #f5f5f5;
-@pre-color: @gray-dark;
-@pre-border-color: #ccc;
-@pre-scrollable-max-height: 340px;
-
-
-//== Type
-//
-//##
-
-//** Horizontal offset for forms and lists.
-@component-offset-horizontal: 180px;
-//** Text muted color
-@text-muted: @gray-light;
-//** Abbreviations and acronyms border color
-@abbr-border-color: @gray-light;
-//** Headings small color
-@headings-small-color: @gray-light;
-//** Blockquote small color
-@blockquote-small-color: @gray-light;
-//** Blockquote font size
-@blockquote-font-size: (@font-size-base * 1.25);
-//** Blockquote border color
-@blockquote-border-color: @gray-lighter;
-//** Page header border color
-@page-header-border-color: @gray-lighter;
-//** Width of horizontal description list titles
-@dl-horizontal-offset: @component-offset-horizontal;
-//** Horizontal line color.
-@hr-border: @gray-lighter;
--- a/server/src/resources/assets/less/bootstrap/wells.less Wed Jun 24 01:36:46 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-//
-// Wells
-// --------------------------------------------------
-
-
-// Base class
-.well {
- min-height: 20px;
- padding: 19px;
- margin-bottom: 20px;
- background-color: @well-bg;
- border: 1px solid @well-border;
- border-radius: @border-radius-base;
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
- blockquote {
- border-color: #ddd;
- border-color: rgba(0,0,0,.15);
- }
-}
-
-// Sizes
-.well-lg {
- padding: 24px;
- border-radius: @border-radius-large;
-}
-.well-sm {
- padding: 9px;
- border-radius: @border-radius-small;
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/resources/assets/sass/_app-core.scss Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,24 @@
+@import "bootstrap";
+
+$btn-font-weight: 300;
+$font-family-sans-serif: "Roboto", Helvetica, Arial, sans-serif;
+
+body, label, .checkbox label {
+ font-weight: 300;
+}
+
+.doc_details_title {
+ @extend .h3;
+ margin-top: 0;
+}
+.content-main-title {
+ @extend .h4;
+}
+
+.data-audio-title {
+ @extend .h4;
+}
+
+.content-title {
+ @extend .h5;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/resources/assets/sass/app.scss Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,1 @@
+@import "app-core";
--- a/server/src/resources/views/bo/docList.blade.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/resources/views/bo/docList.blade.php Mon Oct 05 17:02:10 2015 +0200
@@ -2,20 +2,26 @@
@section('content')
<div class="container">
- <div class="row">
- <div class="col-md-10 col-md-offset-1">
- <div class="panel panel-default">
- <div class="panel-heading">@lang('bo.document_list')</div>
+ <div class="row">
+ <div class="col-md-10 col-md-offset-1">
+ <div class="panel panel-default">
+ <div class="panel-heading">@lang('bo.document_list')</div>
- <div class="panel-body">
- <table class="table-stripped">
- @foreach ($docs as $doc)
- <tr><td>{{ $doc->getUri() }}</td><td><a href="{{ route('bo.docs.show',[ 'id' => $doc->getId()]) }}">{{ $doc->getId() }}</a></td></tr>
- @endforeach
- </table>
- </div>
- </div>
- </div>
- </div>
+ <div class="panel-body">
+ <table class="table table-striped">
+ <thead>
+ <tr><th>URI</th><th>ID</th></tr>
+ </thead>
+ <tbody>
+ @foreach ($docs as $doc)
+ <tr><td>{{ $doc->getUri() }}</td><td><a href="{{ route('bo.docs.show',[ 'id' => $doc->getId()]) }}">{{ $doc->getId() }}</a></td></tr>
+ @endforeach
+ </tbody>
+ </table>
+ {!! $docs->render() !!}
+ </div>
+ </div>
+ </div>
+ </div>
</div>
@endsection
--- a/server/src/tests/Controllers/DocumentListControllerTest.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/tests/Controllers/DocumentListControllerTest.php Mon Oct 05 17:02:10 2015 +0200
@@ -2,12 +2,73 @@
use CorpusParole\Repositories\DocumentRepository;
use Mockery as m;
+use Illuminate\Pagination\LengthAwarePaginator;
+use CorpusParole\Models\Document;
/**
*
*/
class DocumentListControllerTest extends TestCase {
+ const GET_DOC = <<<EOD
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+ @prefix sesame: <http://www.openrdf.org/schema/sesame#> .
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+ @prefix fn: <http://www.w3.org/2005/xpath-functions#> .
+
+ <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-BOD092_SOUND> <http://purl.org/dc/elements/1.1/title> "Corpus LS émergente, L'oncle Geraldo, raconté par Ivaldo"@fr ;
+ <http://www.language-archives.org/OLAC/1.1/depositor> <http://viaf.org/viaf/202009521> , <http://viaf.org/viaf/74053259> ;
+ <http://purl.org/dc/elements/1.1/rights> "Copyright (c) Cuxac, Christian" ;
+ <http://purl.org/dc/elements/1.1/format> "video/mp4"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/isFormatOf> <http://cocoon.huma-num.fr/data/boutet/BOD092_low.mp4> , <http://cocoon.huma-num.fr/data/boutet/BOD092_low.ogg> ;
+ <http://purl.org/dc/elements/1.1/subject> <http://lexvo.org/id/iso639-3/und> , "general_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
+ <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/und> ;
+ <http://purl.org/dc/elements/1.1/type> "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , <http://purl.org/dc/dcmitype/MovingImage> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> ;
+ <http://www.language-archives.org/OLAC/1.1/author> "Fusellier-Souza, Ivani" ;
+ <http://www.language-archives.org/OLAC/1.1/interviewer> "Fusellier-Souza, Ivani" ;
+ <http://www.language-archives.org/OLAC/1.1/compiler> "Boutet, Dominique" , "Cuxac, Christian" ;
+ <http://www.language-archives.org/OLAC/1.1/data_inputter> "Fiore, Sonia" , "Lacroix, Magdalena" , "Boutet, Dominique" ;
+ <http://www.language-archives.org/OLAC/1.1/speaker> "Ivaldo, Lucia" ;
+ <http://www.language-archives.org/OLAC/1.1/translator> "Fusellier-Souza, Ivani" ;
+ <http://purl.org/dc/elements/1.1/description> """Cette séquence fait partie du corpus vidéo de Langue des
+ Signes Emergentes utilisé lors de la thèse d'Ivani Fusellier-Souza : le locuteur Ivaldo
+ raconte que son oncle Geraldo est riche mais n'est pas radin, et qu'il y a très
+ longtemps lorsque les affaires marchaient pour son"""@fr ;
+ <http://purl.org/dc/terms/alternative> "Séquence 13, L'oncle Geraldo, raconté par Ivaldo"@fr ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> ;
+ <http://purl.org/dc/terms/spatial> "Brésil, Brasilia"@fr , "BR"^^<http://purl.org/dc/terms/ISO3166> ;
+ <http://www.w3.org/2003/01/geo/wgs84_pos#long> "-47.9291"^^xsd:float ;
+ <http://www.w3.org/2003/01/geo/wgs84_pos#lat> "-15.7801"^^xsd:float ;
+ <http://purl.org/dc/terms/created> "2001-03"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/tableOfContents> """00:00:00>00:00:45 Ivaldo raconte que son oncle
+ Geraldo est riche. C'est un homme cultivé, qui a beaucoup d'argent. Il habite près de
+ l'aéroport, où habite également l'amie de Lucia. La femme à Geraldo aussi est riche.
+ 00:00:45>00:00:46 Lucia dit qu'il est riche, tant mieux pour lui. 00:00:46>00:01:55
+ Ivaldo raconte que son oncle était riche mais généreux. Il lui donne des billets d'avion
+ pour voyager. Il lui donne également des vêtements. Ensuite, Ivaldo raconte qu'avant,
+ son père était aisé et c'est l'oncle Geraldo qui ne l'était pas. Alors son père aidait
+ l'oncle Geraldo car les affaires allaient bien. Mais par la suite, les affaires ont
+ chutées et pour l'oncle Geraldo elles montaient."""@fr ;
+ <http://purl.org/dc/terms/extent> "PT00H01M54S" ;
+ <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> ;
+ <http://purl.org/dc/terms/issued> "2013-06-04T22:39:21+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://crdo.risc.cnrs.fr/schemas/master> <http://cocoon.huma-num.fr/data/archi/masters/350801.mp4> ;
+ <http://purl.org/dc/terms/available> "2013-06-04"^^<http://purl.org/dc/terms/W3CDTF> .
+
+ <http://lexvo.org/id/iso639-3/und> rdfs:label "Langue des signes émergente"@fr .
+
+ <http://viaf.org/viaf/202009521> rdfs:label "Boutet, Dominique" ;
+ <http://xmlns.com/foaf/0.1/status> "depositor"^^<http://www.language-archives.org/OLAC/1.1/role> .
+
+ <http://viaf.org/viaf/74053259> rdfs:label "Cuxac, Christian" ;
+ <http://xmlns.com/foaf/0.1/status> "depositor"^^<http://www.language-archives.org/OLAC/1.1/role> .
+
+EOD;
+#""" comment for syntax highliting
+
private $documentRepository;
public function setUp() {
@@ -26,11 +87,29 @@
}
public function testIndex() {
- $this->documentRepository->shouldReceive('all')->once()->andReturn(array());
+ $this->documentRepository
+ ->shouldReceive('paginateAll')
+ ->once()
+ ->andReturn(
+ new LengthAwarePaginator([], 0, 10, 1, [
+ 'path' => '',
+ 'pageName' => 'page',
+ ]));
$response = $this->call('GET', '/bo/docs');
$this->assertResponseOk($response);
$this->assertViewHas('docs');
}
+
+ public function testShow() {
+ $res_doc = new EasyRdf\Graph('http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-BOD092_SOUND',DocumentListControllerTest::GET_DOC);
+ $this->documentRepository
+ ->shouldReceive('get')
+ ->once()
+ ->andReturn(new Document('http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-BOD092_SOUND', $res_doc));
+
+ $response = $this->visit('/bo/docs/crdo-BOD092_SOUND');
+
+ }
}
--- a/server/src/tests/Models/DocumentTest.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/tests/Models/DocumentTest.php Mon Oct 05 17:02:10 2015 +0200
@@ -8,56 +8,45 @@
class DocumentTest extends TestCase {
const TEST_DOC = <<<EOT
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/description> "Extrait des enqu\u00EAtes dialectologiques en vue de constituer un atlas linguistique de l'Alsace."@fr .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> <http://purl.org/dc/dcmitype/Sound> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> <http://lexvo.org/id/iso639-3/gsw> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/gsw> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/9122216> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/contributor> _:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/contributor> _:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/publisher> "Atlas linguistiques, cultures et parlers r\u00E9gionaux de France" .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/rights> "Copyright (c) D\u00E9partement de dialectologie alsacienne et mosellane de l'Universit\u00E9 de Strasbourg" .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/title> "Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_608"@fr .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_ALA_CL> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/extent> "PT02H04M16S" .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/created> "start=1980; end=1989; name=ann\u00E9es 80"^^<http://purl.org/dc/terms/Period> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/spatial> "France, Alsace"@fr .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/spatial> "FR"^^<http://purl.org/dc/terms/ISO3166> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isFormatOf> <http://cocoon.huma-num.fr/data/ala/ALA_608.mp3> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isFormatOf> <http://cocoon.huma-num.fr/data/ala/masters/ALA_608.wav> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/available> "2004-07-03"^^<http://purl.org/dc/terms/W3CDTF> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/issued> "2014-11-04T16:25:54+01:00"^^<http://purl.org/dc/terms/W3CDTF> .
-<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://www.openrdf.org/schema/sesame#directType> <http://xmlns.com/foaf/0.1/Document> .
-_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
-_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Agent> .
-_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 <http://xmlns.com/foaf/0.1/name> "Bothorel-Witz, Arlette" .
-_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 <http://xmlns.com/foaf/0.1/status> "interviewer"^^<http://www.language-archives.org/OLAC/1.1/role> .
-_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 <http://www.openrdf.org/schema/sesame#directType> <http://xmlns.com/foaf/0.1/Agent> .
-_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
-_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Agent> .
-_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 <http://xmlns.com/foaf/0.1/name> "Huck, Dominique" .
-_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 <http://xmlns.com/foaf/0.1/status> "interviewer"^^<http://www.language-archives.org/OLAC/1.1/role> .
-_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 <http://www.openrdf.org/schema/sesame#directType> <http://xmlns.com/foaf/0.1/Agent> .
-<http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608> <http://xmlns.com/foaf/0.1/primaryTopic> <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> .
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+ @prefix sesame: <http://www.openrdf.org/schema/sesame#> .
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+ @prefix fn: <http://www.w3.org/2005/xpath-functions#> .
+
+ <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608> <http://purl.org/dc/elements/1.1/description> "Extrait des enquêtes dialectologiques en vue de constituer un atlas linguistique de l'Alsace."@fr ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/elements/1.1/type> <http://purl.org/dc/dcmitype/Sound> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> , "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> ;
+ <http://purl.org/dc/elements/1.1/subject> <http://lexvo.org/id/iso639-3/gsw> , "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
+ <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/gsw> ;
+ <http://www.language-archives.org/OLAC/1.1/depositor> <http://viaf.org/viaf/9122216> ;
+ <http://purl.org/dc/elements/1.1/publisher> "Atlas linguistiques, cultures et parlers régionaux de France" ;
+ <http://purl.org/dc/elements/1.1/rights> "Copyright (c) Département de dialectologie alsacienne et mosellane de l'Université de Strasbourg" ;
+ <http://purl.org/dc/elements/1.1/title> "Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_608"@fr ;
+ <http://www.language-archives.org/OLAC/1.1/interviewer> "Bothorel-Witz, Arlette" , "Huck, Dominique" ;
+ <http://purl.org/dc/terms/isFormatOf> <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> , <http://cocoon.huma-num.fr/data/ala/ALA_608.mp3> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> ;
+ <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_ALA_CL> , <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> ;
+ <http://purl.org/dc/terms/extent> "PT02H04M16S" ;
+ <http://purl.org/dc/terms/created> "start=1980; end=1989; name=années 80"^^<http://purl.org/dc/terms/Period> ;
+ <http://purl.org/dc/terms/spatial> "France, Alsace"@fr , "FR"^^<http://purl.org/dc/terms/ISO3166> ;
+ <http://crdo.risc.cnrs.fr/schemas/master> <http://cocoon.huma-num.fr/data/ala/masters/ALA_608.wav> ;
+ <http://purl.org/dc/terms/available> "2004-07-03"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/issued> "2014-11-04T16:25:54+01:00"^^<http://purl.org/dc/terms/W3CDTF> .
+
+ <http://lexvo.org/id/iso639-3/gsw> rdfs:label "Alsacien"@fr .
+
+ <http://viaf.org/viaf/9122216> rdfs:label "Huck, Dominique" ;
+ <http://xmlns.com/foaf/0.1/status> "depositor"^^<http://www.language-archives.org/OLAC/1.1/role> .
EOT;
- private $testGraph;
public function setUp() {
parent::setup();
- $this->graph = new \EasyRdf_Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC);
+ $this->graph = new EasyRdf\Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC);
}
@@ -75,7 +64,7 @@
$doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph);
$this->assertEquals("Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_608",$doc->getTitle(),'Must have correct title');
- $this->assertInstanceOf(\EasyRdf_Literal::class, $doc->getTitle(), "Title must be a literal");
+ $this->assertInstanceOf(EasyRdf\Literal::class, $doc->getTitle(), "Title must be a literal");
$this->assertEquals('fr', $doc->getTitle()->getLang(), "Language title must be fr");
}
@@ -84,7 +73,7 @@
$doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph);
$this->assertCount(1, $doc->getPublishers(), 'Publisher is an array of size 1');
- $this->assertEquals(new \EasyRdf_Literal("Atlas linguistiques, cultures et parlers régionaux de France",null,null), $doc->getPublishers()[0], "Must contains correct publisher");
+ $this->assertEquals(new EasyRdf\Literal("Atlas linguistiques, cultures et parlers régionaux de France",null,null), $doc->getPublishers()[0], "Must contains correct publisher");
}
@@ -108,8 +97,8 @@
$this->assertThat(
$type,
$this->logicalXor(
- $this->isInstanceOf(\EasyRdf_Literal::class),
- $this->isInstanceOf(\EasyRdf_Resource::class)
+ $this->isInstanceOf(EasyRdf\Literal::class),
+ $this->isInstanceOf(EasyRdf\Resource::class)
)
);
}
@@ -124,8 +113,8 @@
$this->assertThat(
$type,
$this->logicalXor(
- $this->isInstanceOf(\EasyRdf_Literal::class),
- $this->isInstanceOf(\EasyRdf_Resource::class)
+ $this->isInstanceOf(EasyRdf\Literal::class),
+ $this->isInstanceOf(EasyRdf\Resource::class)
)
);
}
@@ -136,7 +125,7 @@
$this->assertCount(1, $doc->getDiscourseTypes(), "types array must be of size 1");
- $this->assertContainsOnlyInstancesOf("EasyRdf_Literal", $doc->getDiscourseTypes(), "Result contains only literals");
+ $this->assertContainsOnlyInstancesOf("EasyRdf\Literal", $doc->getDiscourseTypes(), "Result contains only literals");
$type = $doc->getDiscourseTypes()[0];
$this->assertEquals("dialogue", $type, "discourse type is dialogue");
$this->assertEquals("http://www.language-archives.org/OLAC/1.1/discourse-type", $type->getDatatypeUri(), "discourse type url");
@@ -150,16 +139,16 @@
$this->assertNotSame($doc, $doc2, "documents must not be the same");
$this->assertNotSame($doc->getGraph(), $doc2->getGraph(), "documents must not be the same");
- $this->assertTrue(\EasyRdf_Isomorphic::isomorphic($doc->getGraph(), $doc2->getGraph()),"graph must be isomorphic");
+ $this->assertTrue(EasyRdf\Isomorphic::isomorphic($doc->getGraph(), $doc2->getGraph()),"graph must be isomorphic");
}
public function testIsIsomorphic() {
$doc1 = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph);
- $doc2 = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", new \EasyRdf_Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC));
+ $doc2 = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", new EasyRdf\Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC));
$this->assertTrue($doc1->isIsomorphic($doc2),"document must be isomorphic");
- $doc2->addLiteral('dc11:type', new \EasyRdf_Literal("oratory", null, Config::get('OLAC_DISCOURSE_TYPE')['uri']));
+ $doc2->addLiteral('dc11:type', new EasyRdf\Literal("oratory", null, Config::get('OLAC_DISCOURSE_TYPE')['uri']));
$this->assertFalse($doc1->isIsomorphic($doc2),"document must not be isomorphic");
}
@@ -182,6 +171,37 @@
}
+ public function testUpdateDiscourseTypesDelta() {
+
+ $newDiscourseTypes = ['oratory','dialogue','narrative'];
+
+ $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph);
+
+ $doc->updateDiscourseTypes($newDiscourseTypes);
+
+ $this->assertTrue($doc->isDirty());
+
+ $this->assertEquals(1, $doc->deltaCount(), "There is one delta");
+
+ $delta = $doc->getDeltaList()[0];
+
+ $this->assertEquals("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $delta->getDeletedGraph()->getUri(), "uri of deleted graph must be ok");
+ $this->assertEquals("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $delta->getAddedGraph()->getUri(), "uri of added graph must be ok");
+
+ $this->assertEquals(1, $delta->getDeletedGraph()->countTriples(), "deleted graph must have only one triple");
+ $this->assertEquals(3, $delta->getAddedGraph()->countTriples(), "deleted graph must have only one triple");
+
+ $resQueryDiscourseType = $delta->getAddedGraph()->allLiterals('http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608', 'dc11:type');
+ foreach($resQueryDiscourseType as $dt) {
+ $this->assertInstanceOf(EasyRdf\Literal::class, $dt, "This must be a litteral");
+ $this->assertEquals('http://www.language-archives.org/OLAC/1.1/discourse-type', $dt->getDatatypeUri(), "The type of the Litteral must be correct");
+ }
+ foreach($newDiscourseTypes as $dt) {
+ $this->assertContains($dt, $resQueryDiscourseType, "all discourse types must be in result list");
+ }
+
+ }
+
public function testUpdateDiscourseTypesIsomorphic() {
$newDiscourseTypes = ['oratory','dialogue','narrative'];
@@ -189,7 +209,7 @@
$doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph);
$doc->updateDiscourseTypes($newDiscourseTypes);
- $doc2 = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", new \EasyRdf_Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC));
+ $doc2 = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", new EasyRdf\Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC));
$this->assertFalse($doc->isIsomorphic($doc2),"document must not be isomorphic after adding discourse type");
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/Repositories/DocumentRepositoryIntegrationTest.php Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,173 @@
+<?php
+
+use Illuminate\Support\Facades\Facade;
+use Illuminate\Support\Facades\Config;
+
+use CorpusParole\Repositories\DocumentRepository;
+use CorpusParole\Repositories\RdfDocumentRepository;
+use CorpusParole\Models\Document;
+
+use SebastianBergmann\Diff\Differ;
+
+use GuzzleHttp\Client;
+
+class DocumentRepositoryIntegrationTest extends TestCase {
+
+ const REPO_CREATION_TTL = <<<EOT
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
+ @prefix rep: <http://www.openrdf.org/config/repository#>.
+ @prefix sr: <http://www.openrdf.org/config/repository/sail#>.
+ @prefix sail: <http://www.openrdf.org/config/sail#>.
+ @prefix ms: <http://www.openrdf.org/config/sail/memory#>.
+
+ [] a rep:Repository ;
+ rep:repositoryID "%1\$s" ;
+ rdfs:label "%1\$s test repository" ;
+ rep:repositoryImpl [
+ rep:repositoryType "openrdf:SailRepository" ;
+ sr:sailImpl [
+ sail:sailType "openrdf:MemoryStore" ;
+ ms:persist false ;
+ ms:syncDelay 0
+ ]
+ ].
+EOT;
+
+ const TEST_DOC = <<<EOT
+ <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608> <http://xmlns.com/foaf/0.1/primaryTopic> <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/description> "Extrait des enqu\u00EAtes dialectologiques en vue de constituer un atlas linguistique de l'Alsace."@fr .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> <http://purl.org/dc/dcmitype/Sound> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> <http://lexvo.org/id/iso639-3/gsw> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/gsw> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/9122216> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/contributor> _:genid2d5831d84541df446694586ac2006f96042dgenid1 .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/contributor> _:genid2d5831d84541df446694586ac2006f96042dgenid2 .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/publisher> "Atlas linguistiques, cultures et parlers r\u00E9gionaux de France" .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/rights> "Copyright (c) D\u00E9partement de dialectologie alsacienne et mosellane de l'Universit\u00E9 de Strasbourg" .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/title> "Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_608"@fr .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_ALA_CL> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/extent> "PT02H04M16S" .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/created> "start=1980; end=1989; name=ann\u00E9es 80"^^<http://purl.org/dc/terms/Period> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/spatial> "France, Alsace"@fr .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/spatial> "FR"^^<http://purl.org/dc/terms/ISO3166> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isFormatOf> <http://cocoon.huma-num.fr/data/ala/ALA_608.mp3> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isFormatOf> <http://cocoon.huma-num.fr/data/ala/masters/ALA_608.wav> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/available> "2004-07-03"^^<http://purl.org/dc/terms/W3CDTF> .
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/issued> "2014-11-04T16:25:54+01:00"^^<http://purl.org/dc/terms/W3CDTF> .
+ <http://lexvo.org/id/iso639-3/gsw> <http://www.w3.org/2000/01/rdf-schema#label> "Alsacien"@fr .
+ <http://viaf.org/viaf/9122216> <http://www.w3.org/2000/01/rdf-schema#label> "Huck, Dominique" .
+ <http://viaf.org/viaf/9122216> <http://xmlns.com/foaf/0.1/status> "depositor"^^<http://www.language-archives.org/OLAC/1.1/role> .
+ _:genid2d5831d84541df446694586ac2006f96042dgenid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Agent> .
+ _:genid2d5831d84541df446694586ac2006f96042dgenid1 <http://xmlns.com/foaf/0.1/name> "Bothorel-Witz, Arlette" .
+ _:genid2d5831d84541df446694586ac2006f96042dgenid1 <http://xmlns.com/foaf/0.1/status> "interviewer"^^<http://www.language-archives.org/OLAC/1.1/role> .
+ _:genid2d5831d84541df446694586ac2006f96042dgenid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Agent> .
+ _:genid2d5831d84541df446694586ac2006f96042dgenid2 <http://xmlns.com/foaf/0.1/name> "Huck, Dominique" .
+ _:genid2d5831d84541df446694586ac2006f96042dgenid2 <http://xmlns.com/foaf/0.1/status> "interviewer"^^<http://www.language-archives.org/OLAC/1.1/role> .
+EOT;
+
+ function __construct(string $name = null) {
+ parent::__construct($name);
+ $this->graph = new EasyRdf\Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentRepositoryIntegrationTest::TEST_DOC);
+ }
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->httpClient = new Client(['base_uri' => config('corpusparole.sesame_base_url')]);
+ $this->sesameRepository = config('corpusparole.sesame_repository');
+ $this->cocoonDocIdBaseUri = config('corpusparole.cocoon_doc_id_base_uri');
+
+ $this->documentRepository = $this->app->make('CorpusParole\Repositories\DocumentRepository');
+ $uniqueid = uniqid('corpusparole', true);
+ $repoCreateStmt = sprintf(DocumentRepositoryIntegrationTest::REPO_CREATION_TTL, $this->sesameRepository);
+ $this->httpClient->delete("repositories/$this->sesameRepository", ['http_errors' => false]);
+ $this->httpClient->post('repositories/SYSTEM/statements', [
+ 'headers' => ['Content-type' => 'application/x-turtle;charset=UTF-8'],
+ 'query' => ['context' => "_:$uniqueid"],
+ 'body' => $repoCreateStmt,
+ ]);
+ $this->httpClient->put("repositories/$this->sesameRepository/statements", [
+ 'headers' => ['Content-type' => 'text/turtle;charset=UTF-8'],
+ 'body' => DocumentRepositoryIntegrationTest::TEST_DOC,
+ 'query' => ['context' => '<http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608>'],
+ ]);
+ }
+
+ public function tearDown() {
+ $this->httpClient->delete("repositories/$this->sesameRepository");
+ parent::tearDown();
+ }
+
+ public function testAll() {
+ $expectedId = $this->cocoonDocIdBaseUri.'crdo-ALA_608';
+ $docList = $this->documentRepository->all();
+ $this->assertCount(1, $docList, "Should have one element");
+
+ $resDoc = $docList[0];
+
+ $this->assertInstanceOf(Document::class, $resDoc, "Res doc must be a Document");
+ $this->assertEquals('crdo-ALA_608', $resDoc->getId(), "id must be crdo...");
+ $this->assertEquals($expectedId, $resDoc->getUri(), 'url must be ...');
+ $this->assertNull($resDoc->getGraph(), 'Graph must be null');
+
+ }
+
+ public function testGet() {
+
+ $expectedId = $this->cocoonDocIdBaseUri.'crdo-ALA_608';
+ $returnedGraph = new EasyRdf\Graph($expectedId, DocumentRepositoryIntegrationTest::TEST_DOC);
+
+ $res = $this->documentRepository->get('crdo-ALA_608');
+
+ $this->assertInstanceOf(Document::class, $res, "Result must be of type Document");
+ $this->assertEquals('crdo-ALA_608', $res->getId(), 'id should be crdo-ALA_608' );
+ $this->assertNotNull($res->getGraph(), "Graph shoul not be null");
+ $this->assertTrue(EasyRdf\Isomorphic::isomorphic($res->getGraph(),$returnedGraph));
+ }
+
+ public function testSave() {
+
+ $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph);
+ $doc->updateDiscourseTypes(['oratory','drama','narrative']);
+
+ $res = $this->documentRepository->save($doc);
+
+ $this->assertTrue($res, 'Has started a transaction');
+
+ $res = $this->documentRepository->get('crdo-ALA_608');
+
+ $discoursesTypes = $res->getDiscourseTypes();
+
+ $this->assertCount(3, $discoursesTypes, "types array must be of size 1");
+
+ $this->assertContainsOnlyInstancesOf("EasyRdf\Literal", $discoursesTypes, "Result contains only literals");
+
+ $newDiscoursesTypes = [];
+ foreach($discoursesTypes as $dt) {
+ array_push($newDiscoursesTypes, $dt->getValue());
+ $this->assertContains($dt->getValue(),['oratory','drama','narrative'],'Value in [oratory,drama,narrative]');
+ $this->assertEquals("http://www.language-archives.org/OLAC/1.1/discourse-type", $dt->getDatatypeUri(), "discourse type url");
+ }
+ sort($newDiscoursesTypes);
+ $this->assertEquals(['drama', 'narrative', 'oratory'], $newDiscoursesTypes, "array type must the same");
+ }
+
+ public function testCount() {
+ $res = $this->documentRepository->getCount();
+
+ $this->assertNotNull($res, "Res should not be null");
+ $this->assertSame(1, $res, "should heve only one document");
+ }
+
+
+}
--- a/server/src/tests/Repositories/DocumentRepositoryTest.php Wed Jun 24 01:36:46 2015 +0200
+++ b/server/src/tests/Repositories/DocumentRepositoryTest.php Mon Oct 05 17:02:10 2015 +0200
@@ -1,12 +1,191 @@
<?php
+use Illuminate\Support\Facades\Facade;
+
+use CorpusParole\Repositories\RdfDocumentRepository;
+use CorpusParole\Libraries\Sparql\SparqlClient;
+use CorpusParole\Models\Document;
+
+use Mockery as m;
+
class DocumentRepositoryTest extends TestCase {
- public function testBasicExample()
- {
- $response = $this->call('GET', '/');
+ const TEST_DOC = <<<EOT
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Document> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/description> "Extrait des enqu\u00EAtes dialectologiques en vue de constituer un atlas linguistique de l'Alsace."@fr .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> <http://purl.org/dc/dcmitype/Sound> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> <http://lexvo.org/id/iso639-3/gsw> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/subject> "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/gsw> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/9122216> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/contributor> _:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/contributor> _:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/publisher> "Atlas linguistiques, cultures et parlers r\u00E9gionaux de France" .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/rights> "Copyright (c) D\u00E9partement de dialectologie alsacienne et mosellane de l'Universit\u00E9 de Strasbourg" .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/title> "Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_608"@fr .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_ALA_CL> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/extent> "PT02H04M16S" .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/created> "start=1980; end=1989; name=ann\u00E9es 80"^^<http://purl.org/dc/terms/Period> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/spatial> "France, Alsace"@fr .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/spatial> "FR"^^<http://purl.org/dc/terms/ISO3166> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isFormatOf> <http://cocoon.huma-num.fr/data/ala/ALA_608.mp3> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/isFormatOf> <http://cocoon.huma-num.fr/data/ala/masters/ALA_608.wav> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/available> "2004-07-03"^^<http://purl.org/dc/terms/W3CDTF> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/terms/issued> "2014-11-04T16:25:54+01:00"^^<http://purl.org/dc/terms/W3CDTF> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://www.openrdf.org/schema/sesame#directType> <http://xmlns.com/foaf/0.1/Document> .
+_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
+_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Agent> .
+_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 <http://xmlns.com/foaf/0.1/name> "Bothorel-Witz, Arlette" .
+_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 <http://xmlns.com/foaf/0.1/status> "interviewer"^^<http://www.language-archives.org/OLAC/1.1/role> .
+_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 <http://www.openrdf.org/schema/sesame#directType> <http://xmlns.com/foaf/0.1/Agent> .
+_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Resource> .
+_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Agent> .
+_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 <http://xmlns.com/foaf/0.1/name> "Huck, Dominique" .
+_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 <http://xmlns.com/foaf/0.1/status> "interviewer"^^<http://www.language-archives.org/OLAC/1.1/role> .
+_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 <http://www.openrdf.org/schema/sesame#directType> <http://xmlns.com/foaf/0.1/Agent> .
+<http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608> <http://xmlns.com/foaf/0.1/primaryTopic> <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> .
+EOT;
+
+ const RES_DOC = <<<EOT
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+ @prefix sesame: <http://www.openrdf.org/schema/sesame#> .
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+ @prefix fn: <http://www.w3.org/2005/xpath-functions#> .
+
+ <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> a <http://xmlns.com/foaf/0.1/Document> ;
+ <http://purl.org/dc/elements/1.1/description> "Extrait des enquêtes dialectologiques en vue de constituer un atlas linguistique de l'Alsace."@fr ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/elements/1.1/type> <http://purl.org/dc/dcmitype/Sound> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> , "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> ;
+ <http://purl.org/dc/elements/1.1/subject> <http://lexvo.org/id/iso639-3/gsw> , "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
+ <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/gsw> ;
+ <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/9122216> , _:genid-39d722daa01242edb2da8d2d1e71eae7-ED8A67E3CE4C51EA8EDC4ED1190E161A , _:genid-39d722daa01242edb2da8d2d1e71eae7-FD40C63A1295F7BE6765BB87A70CE839 ;
+ <http://purl.org/dc/elements/1.1/publisher> "Atlas linguistiques, cultures et parlers régionaux de France" ;
+ <http://purl.org/dc/elements/1.1/rights> "Copyright (c) Département de dialectologie alsacienne et mosellane de l'Université de Strasbourg" ;
+ <http://purl.org/dc/elements/1.1/title> "Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_608"@fr ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> ;
+ <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_ALA_CL> , <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> ;
+ <http://purl.org/dc/terms/extent> "PT02H04M16S" ;
+ <http://purl.org/dc/terms/created> "start=1980; end=1989; name=années 80"^^<http://purl.org/dc/terms/Period> ;
+ <http://purl.org/dc/terms/spatial> "France, Alsace"@fr , "FR"^^<http://purl.org/dc/terms/ISO3166> ;
+ <http://purl.org/dc/terms/isFormatOf> <http://cocoon.huma-num.fr/data/ala/ALA_608.mp3> , <http://cocoon.huma-num.fr/data/ala/masters/ALA_608.wav> ;
+ <http://purl.org/dc/terms/available> "2004-07-03"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/issued> "2014-11-04T16:25:54+01:00"^^<http://purl.org/dc/terms/W3CDTF> .
+
+ _:genid-39d722daa01242edb2da8d2d1e71eae7-ED8A67E3CE4C51EA8EDC4ED1190E161A a <http://xmlns.com/foaf/0.1/Agent> ;
+ <http://xmlns.com/foaf/0.1/name> "Bothorel-Witz, Arlette" ;
+ <http://xmlns.com/foaf/0.1/status> "interviewer"^^<http://www.language-archives.org/OLAC/1.1/role> .
+
+ _:genid-39d722daa01242edb2da8d2d1e71eae7-FD40C63A1295F7BE6765BB87A70CE839 a <http://xmlns.com/foaf/0.1/Agent> ;
+ <http://xmlns.com/foaf/0.1/name> "Huck, Dominique" ;
+ <http://xmlns.com/foaf/0.1/status> "interviewer"^^<http://www.language-archives.org/OLAC/1.1/role> .
+
+ <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608> <http://xmlns.com/foaf/0.1/primaryTopic> <http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> .
+EOT;
+
- $this->assertEquals(200, $response->getStatusCode());
+ function __construct(string $name = null) {
+ parent::__construct($name);
+ }
+
+ public function setUp() {
+ parent::setUp();
+ $this->graph = new EasyRdf\Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentRepositoryTest::TEST_DOC);
+ $this->cocoonDocIdBaseUri = config('corpusparole.cocoon_doc_id_base_uri');
+ }
+
+ public function tearDown() {
+ parent::tearDown();
+ }
+
+
+ public function testAll() {
+ $expectedId = $this->cocoonDocIdBaseUri.'crdo-ALA_608';
+ $returnedArray = [
+ m::mock('resObj', function($mock) use (&$expectedId) {
+ $mock->uri = new EasyRdf\Resource($expectedId);
+ }),
+ ];
+
+ $sparqlClientMock = m::mock('CorpusParole\Libraries\Sparql\SparqlClient');
+ $sparqlClientMock->shouldReceive('query')->andReturn($returnedArray);
+
+ $documentRepository = $this->app->make('CorpusParole\Repositories\RdfDocumentRepository', [$sparqlClientMock]);
+
+ $res = $documentRepository->all();
+
+ $this->assertCount(1, $res, "Should have 1 doc in res");
+ $resDoc = $res[0];
+
+ $this->assertInstanceOf(Document::class, $resDoc, "Res doc must be a Document");
+ $this->assertEquals('crdo-ALA_608', $resDoc->getId(), "id must be crdo...");
+ $this->assertEquals($expectedId, $resDoc->getUri(), 'url must be ...');
+ $this->assertNull($resDoc->getGraph(), 'Graph must be null');
+ }
+
+ public function testGet() {
+
+ $expectedId = $this->cocoonDocIdBaseUri.'crdo-ALA_608';
+ $returnedGraph = new EasyRdf\Graph($expectedId, DocumentRepositoryTest::RES_DOC);
+
+ $sparqlClientMock = m::mock('CorpusParole\Libraries\Sparql\SparqlClient');
+ $sparqlClientMock->shouldReceive('query')->with(containsString($expectedId))
+ ->andReturn($returnedGraph);
+ $documentRepository = $this->app->make('CorpusParole\Repositories\RdfDocumentRepository', [$sparqlClientMock]);
+
+ $res = $documentRepository->get('crdo-ALA_608');
+
+ $this->assertInstanceOf(Document::class, $res, "Result must be of type Document");
+ $this->assertEquals('crdo-ALA_608', $res->getId(), 'id should be crdo-ALA_608' );
+ $this->assertNotNull($res->getGraph(), "Graph shoul not be null");
+ $this->assertTrue(EasyRdf\Isomorphic::isomorphic($res->getGraph(), new EasyRdf\Graph($expectedId, DocumentRepositoryTest::RES_DOC)));
+ }
+
+ public function testSave() {
+
+ $sparqlClientMock = m::mock('CorpusParole\Libraries\Sparql\SparqlClient', function($mock) {
+ $mock->shouldReceive('startTransaction')->andReturn(true)
+ ->shouldReceive('delete')->shouldReceive('add')
+ ->shouldReceive('commit')->andReturn(true);
+ });
+ $documentRepository = $this->app->make('CorpusParole\Repositories\RdfDocumentRepository', [$sparqlClientMock]);
+
+
+ $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph);
+ $doc->updateDiscourseTypes(['oratory','drama','narrative']);
+
+ $res = $documentRepository->save($doc);
+
+ $this->assertTrue($res, 'Has started a transaction');
+
+ }
+
+ public function testCount() {
+
+ $returnedCount = [
+ m::mock('resObj', function($mock) {
+ $mock->count = new EasyRdf\Literal(1);
+ }),
+ ];
+
+ $sparqlClientMock = m::mock('CorpusParole\Libraries\Sparql\SparqlClient');
+ $sparqlClientMock->shouldReceive('query')->with(containsString("COUNT"))
+ ->andReturn($returnedCount);
+ $documentRepository = $this->app->make('CorpusParole\Repositories\RdfDocumentRepository', [$sparqlClientMock]);
+
+
+
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/libraries/Sparql/SparqlClientTest.php Mon Oct 05 17:02:10 2015 +0200
@@ -0,0 +1,228 @@
+<?php
+
+use CorpusParole\Libraries\Sparql\SparqlClient;
+use CorpusParole\Libraries\CorpusParoleException;
+use CorpusParole\Models\Document;
+
+use GuzzleHttp\Client;
+use GuzzleHttp\Handler\MockHandler;
+use GuzzleHttp\HandlerStack;
+use GuzzleHttp\Psr7\Response;
+use GuzzleHttp\Middleware;
+
+use Mockery as m;
+
+class SparqlClientTest extends TestCase {
+
+ const TEST_DOC_ADD = <<<EOT
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> .
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "drama"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> .
+EOT;
+
+ const TEST_DOC_DELETE = <<<EOT
+<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> .
+EOT;
+
+
+ private $container;
+ private $sparqlClients;
+ private $transactionUrl;
+
+ private $responsesArray;
+
+ function __construct(string $name = null) {
+ parent::__construct($name);
+ }
+
+ private function getSparqlClient($responses, &$container, $sparqlClient) {
+ $mock = new MockHandler($responses);
+ $handler = HandlerStack::create($mock);
+ $history = Middleware::history($container);
+ $handler->push($history);
+ $httpClient = new Client(['handler' => $handler, 'http_errors' => false]);
+
+ return new SparqlClient($httpClient, $sparqlClient);
+ }
+
+ public function setUp() {
+ parent::setUp();
+ $this->sesameRepository = config('corpusparole.sesame_repository');
+ $this->transactionUrl = config('corpusparole.sesame_query_url').'/transactions/64a5937f-c112-d014-a044-f0123b93';
+
+ $this->addGraph = new EasyRdf\Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", SparqlClientTest::TEST_DOC_ADD);
+ $this->deleteGraph = new EasyRdf\Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", SparqlClientTest::TEST_DOC_DELETE);
+
+ }
+
+ public function tearDown() {
+ m::close();
+ parent::tearDown();
+ }
+
+ public function testCreateTransaction() {
+ $responses = [
+ new Response(201, ['Location' => "$this->transactionUrl"]),
+ ];
+ $container = [];
+ $sparqlClientMock = m::mock('EasyRdf\Sparql\Client');
+
+ $documentRepository = $this->getSparqlClient($responses, $container, $sparqlClientMock);
+
+ $documentRepository->startTransaction();
+
+ $this->assertEquals($this->transactionUrl, $documentRepository->getCurrentTransactionUrl(), 'Must have correct transaction url');
+ }
+
+ public function testCreateTransactionHistory() {
+ $responses = [
+ new Response(201, ['Location' => "$this->transactionUrl"]),
+ ];
+ $container = [];
+ $sparqlClientMock = m::mock('EasyRdf\Sparql\Client');
+
+ $documentRepository = $this->getSparqlClient($responses, $container, $sparqlClientMock);
+
+ $documentRepository->startTransaction();
+
+ $this->assertCount(1, $container, 'One request');
+ $req = $container[0]['request'];
+ $this->assertEquals("$this->sesameRepository/transactions", (string)$req->getUri(), "url must be ok");
+ $this->assertEquals('POST', $container[0]['request']->getMethod(), "methos is POST");
+ }
+
+ public function testRollbackTransaction() {
+ $responses = [
+ new Response(201, ['Location' => "$this->transactionUrl"]),
+ new Response(204)
+ ];
+ $container = [];
+ $sparqlClientMock = m::mock('EasyRdf\Sparql\Client');
+
+ $documentRepository = $this->getSparqlClient($responses, $container, $sparqlClientMock);
+
+ $documentRepository->startTransaction();
+ $documentRepository->rollback();
+
+ $this->assertCount(2, $container, '2 requests');
+
+ $this->assertNull($documentRepository->getCurrentTransactionUrl(), "Current Transaction url must be null");
+
+ $req = $container[1]['request'];
+
+ $this->assertEquals($this->transactionUrl, (string)$req->getUri(), "uri must be the transaction url");
+ $this->assertEquals('DELETE', $req->getMethod(), "Method must be DELETE");
+
+ }
+
+ public function testCommitTransaction() {
+ $responses = [
+ new Response(201, ['Location' => "$this->transactionUrl"]),
+ new Response(200)
+ ];
+ $container = [];
+ $sparqlClientMock = m::mock('EasyRdf\Sparql\Client');
+
+ $documentRepository = $this->getSparqlClient($responses, $container, $sparqlClientMock);
+
+ $documentRepository->startTransaction();
+ $documentRepository->commit();
+
+
+ $this->assertCount(2, $container, '2 requests');
+
+ $this->assertNull($documentRepository->getCurrentTransactionUrl(), "Current Transaction url must be null");
+
+ $req = $container[1]['request'];
+
+ $this->assertEquals($this->transactionUrl."?action=COMMIT", (string)$req->getUri(), "uri must be the transaction url");
+ $this->assertEquals('PUT', $req->getMethod(), "Method must be PUT");
+
+ }
+
+ /**
+ * @expectedException CorpusParole\Libraries\CorpusParoleException
+ */
+ public function testCommitTransactionFail() {
+ $responses = [
+ new Response(201, ['Location' => "$this->transactionUrl"]),
+ new Response(404, [], "Not found")
+ ];
+ $container = [];
+ $sparqlClientMock = m::mock('EasyRdf\Sparql\Client');
+
+ $documentRepository = $this->getSparqlClient($responses, $container, $sparqlClientMock);
+
+ $documentRepository->startTransaction();
+ $documentRepository->commit();
+
+ }
+
+
+ public function testAdd() {
+
+ $responses = [
+ new Response(201, ['Location' => "$this->transactionUrl"]),
+ new Response(204)
+ ];
+ $container = [];
+ $sparqlClientMock = m::mock('EasyRdf\Sparql\Client');
+
+ $documentRepository = $this->getSparqlClient($responses, $container, $sparqlClientMock);
+
+ $documentRepository->startTransaction();
+ $documentRepository->add($this->addGraph);
+
+ $this->assertCount(2, $container, '2 requests');
+
+ $this->assertNotNull($documentRepository->getCurrentTransactionUrl(), "Current Transaction url must be not null");
+
+ $req = $container[1]['request'];
+
+ $this->assertEquals($this->transactionUrl."?action=UPDATE", (string)$req->getUri(), "uri must be the transaction url");
+ $this->assertEquals('PUT', $req->getMethod(), "Method must be PUT");
+ $this->assertEquals(['application/x-www-form-urlencoded'], $req->getHeader('Content-type'), "content type must be form urlencoded");
+
+ $data = [];
+ parse_str($req->getBody(), $data);
+
+ $this->assertArrayHasKey('update', $data, "Submitted data must have updarte parameter");
+ $this->assertContains('INSERT DATA {', $data['update'], 'update parameter must contain INSERT');
+ $this->assertContains('GRAPH <'.$this->addGraph->getUri().'> {', $data['update'], 'update parameter must contain GRAPH id');
+ $this->assertContains('<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type>', $data['update'], 'update parameter must contain dialogue');
+ $this->assertContains('<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "drama"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> .', $data['update'], 'update parameter must contain drama');
+ }
+
+ public function testDelete() {
+ $responses = [
+ new Response(201, ['Location' => "$this->transactionUrl"]),
+ new Response(204)
+ ];
+ $container = [];
+ $sparqlClientMock = m::mock('EasyRdf\Sparql\Client');
+
+ $documentRepository = $this->getSparqlClient($responses, $container, $sparqlClientMock);
+
+ $documentRepository->startTransaction();
+ $documentRepository->delete($this->deleteGraph);
+
+ $this->assertCount(2, $container, '2 requests');
+
+ $this->assertNotNull($documentRepository->getCurrentTransactionUrl(), "Current Transaction url must be not null");
+
+ $req = $container[1]['request'];
+
+ $this->assertEquals($this->transactionUrl."?action=UPDATE", (string)$req->getUri(), "uri must be the transaction url");
+ $this->assertEquals('PUT', $req->getMethod(), "Method must be PUT");
+ $this->assertEquals(['application/x-www-form-urlencoded'], $req->getHeader('Content-type'), "content type must be form urlencoded");
+
+ $data = [];
+ parse_str($req->getBody(), $data);
+
+ $this->assertArrayHasKey('update', $data, "Submitted data must have updarte parameter");
+ $this->assertContains('DELETE DATA {', $data['update'], 'update parameter must contain DELETE');
+ $this->assertContains('GRAPH <'.$this->addGraph->getUri().'> {', $data['update'], 'update parameter must contain GRAPH id');
+ $this->assertContains('<http://cocoon.huma-num.fr/data/ala/ALA_608_22km.wav> <http://purl.org/dc/elements/1.1/type> "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type>', $data['update'], 'update parameter must contain GRAPH id');
+
+ }
+
+}