Added: incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/requirements.txt URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/requirements.txt?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/requirements.txt (added) +++ incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/requirements.txt Mon Aug 25 11:39:37 2014 @@ -0,0 +1 @@ +boto==2.25.0
Added: incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/s3_cache.py URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/s3_cache.py?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/s3_cache.py (added) +++ incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/s3_cache.py Mon Aug 25 11:39:37 2014 @@ -0,0 +1,184 @@ +#!/usr/bin/env python2.7 +# pylint: disable=C0301 +from __future__ import absolute_import, unicode_literals, print_function, division + +from sys import argv +from os import environ, stat, chdir, remove as _delete_file +from os.path import dirname, basename, abspath, realpath, expandvars +from hashlib import sha256 +from subprocess import check_call as run +from json import load, dump as save +from contextlib import contextmanager +from datetime import datetime + +from boto.s3.connection import S3Connection +from boto.s3.key import Key +from boto.exception import S3ResponseError + + +CONFIG_FILE = './S3Cachefile.json' +UPLOAD_TODO_FILE = './S3CacheTodo.json' +BYTES_PER_MB = 1024 * 1024 + + +@contextmanager +def timer(): + start = datetime.utcnow() + yield + end = datetime.utcnow() + elapsed = end - start + print("\tDone. Took", int(elapsed.total_seconds()), "second(s).") + + +@contextmanager +def todo_file(writeback=True): + try: + with open(UPLOAD_TODO_FILE, 'rt') as json_file: + todo = load(json_file) + except (IOError, OSError, ValueError): + todo = {} + + yield todo + + if writeback: + try: + with open(UPLOAD_TODO_FILE, 'wt') as json_file: + save(todo, json_file) + except (OSError, IOError) as save_err: + print("Error saving {}:".format(UPLOAD_TODO_FILE), save_err) + + +def _sha256_of_file(filename): + hasher = sha256() + with open(filename, 'rb') as input_file: + hasher.update(input_file.read()) + file_hash = hasher.hexdigest() + print('sha256({}) = {}'.format(filename, file_hash)) + return file_hash + + +def _delete_file_quietly(filename): + try: + _delete_file(filename) + except (OSError, IOError): + pass + + +def mark_needs_uploading(cache_name): + with todo_file() as todo: + todo[cache_name] = True + + +def mark_uploaded(cache_name): + with todo_file() as todo: + todo.pop(cache_name, None) + + +def need_to_upload(cache_name): + with todo_file(writeback=False) as todo: + return todo.get(cache_name, False) + + +def _tarball_size(directory): + kib = stat(_tarball_filename_for(directory)).st_size // BYTES_PER_MB + return "{} MiB".format(kib) + + +def _tarball_filename_for(directory): + return abspath('./{}.tar.gz'.format(basename(directory))) + + +def _create_tarball(directory): + print("Creating tarball of {}...".format(directory)) + with timer(): + run(['tar', '-czf', _tarball_filename_for(directory), '-C', dirname(directory), basename(directory)]) + + +def _extract_tarball(directory): + print("Extracting tarball of {}...".format(directory)) + with timer(): + run(['tar', '-xzf', _tarball_filename_for(directory), '-C', dirname(directory)]) + + +def download(directory): + mark_uploaded(cache_name) # reset + try: + print("Downloading {} tarball from S3...".format(cache_name)) + with timer(): + key.get_contents_to_filename(_tarball_filename_for(directory)) + except S3ResponseError as err: + mark_needs_uploading(cache_name) + raise SystemExit("Cached {} download failed!".format(cache_name)) + print("Downloaded {}.".format(_tarball_size(directory))) + _extract_tarball(directory) + print("{} successfully installed from cache.".format(cache_name)) + + +def upload(directory): + _create_tarball(directory) + print("Uploading {} tarball to S3... ({})".format(cache_name, _tarball_size(directory))) + with timer(): + key.set_contents_from_filename(_tarball_filename_for(directory)) + print("{} cache successfully updated.".format(cache_name)) + mark_uploaded(cache_name) + + +if __name__ == '__main__': + # Uses environment variables: + # AWS_ACCESS_KEY_ID -- AWS Access Key ID + # AWS_SECRET_ACCESS_KEY -- AWS Secret Access Key + argv.pop(0) + if len(argv) != 2: + raise SystemExit("USAGE: s3_cache.py <download | upload> <cache name>") + mode, cache_name = argv + script_dir = dirname(realpath(__file__)) + chdir(script_dir) + try: + with open(CONFIG_FILE, 'rt') as config_file: + config = load(config_file) + except (IOError, OSError, ValueError) as config_err: + print(config_err) + raise SystemExit("Error when trying to load config from JSON file!") + + try: + cache_info = config[cache_name] + key_file = expandvars(cache_info["key"]) + fallback_cmd = cache_info["generate"] + directory = expandvars(cache_info["cache"]) + except (TypeError, KeyError) as load_err: + print(load_err) + raise SystemExit("Config for cache named {!r} is missing or malformed!".format(cache_name)) + + try: + try: + BUCKET_NAME = environ['TWBS_S3_BUCKET'] + except KeyError: + raise SystemExit("TWBS_S3_BUCKET environment variable not set!") + + conn = S3Connection() + bucket = conn.lookup(BUCKET_NAME) + if bucket is None: + raise SystemExit("Could not access bucket!") + + key_file_hash = _sha256_of_file(key_file) + + key = Key(bucket, key_file_hash) + key.storage_class = 'REDUCED_REDUNDANCY' + + if mode == 'download': + download(directory) + elif mode == 'upload': + if need_to_upload(cache_name): + upload(directory) + else: + print("No need to upload anything.") + else: + raise SystemExit("Unrecognized mode {!r}".format(mode)) + except BaseException as exc: + if mode != 'download': + raise + print("Error!:", exc) + print("Unable to download from cache.") + print("Running fallback command to generate cache directory {!r}: {}".format(directory, fallback_cmd)) + with timer(): + run(fallback_cmd, shell=True) Propchange: incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/s3_cache.py ------------------------------------------------------------------------------ svn:executable = Added: incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/uncached-npm-install.sh URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/uncached-npm-install.sh?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/uncached-npm-install.sh (added) +++ incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/uncached-npm-install.sh Mon Aug 25 11:39:37 2014 @@ -0,0 +1,6 @@ +#!/bin/bash +set -e +cd .. # /bootstrap/ +cp test-infra/npm-shrinkwrap.json npm-shrinkwrap.json +npm install +rm npm-shrinkwrap.json Propchange: incubator/devicemap/whiteboard/_less/bootstrap-3.2.0/test-infra/uncached-npm-install.sh ------------------------------------------------------------------------------ svn:executable = Added: incubator/devicemap/whiteboard/_less/devicemap-bootstrap-other.less URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_less/devicemap-bootstrap-other.less?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_less/devicemap-bootstrap-other.less (added) +++ incubator/devicemap/whiteboard/_less/devicemap-bootstrap-other.less Mon Aug 25 11:39:37 2014 @@ -0,0 +1,56 @@ +body { + margin: 0; + padding: 0; +} + +.navbar-brand { + background: url('@{images}/devicemap_alt_2.svg') no-repeat 50% 50%; + height: @navbar-height; + width: 200px; + padding: 0; +} + + +.dropdown-menu li a { + height: 30px; +} + +.header-placeholder { + height: @navbar-height; +} + +.news-item-meta { + font-size: @font-size-smaller; + margin: 5px auto 20px auto; +} + +.footer { + margin-top: 20px; +} + +.copyright { + p, a { + font-size: @font-size-smallest; + } + +} + +ul.news-items { + list-style-type: none; + padding-left: 0; + + + .news-item-meta { + font-size: @font-size-base; + margin: 0; + } +} + +.news-item-date { + color: @news-item-date-color; + font-family: monospace; +} + +.news-item-excerpt { + margin-bottom: (@line-height-computed * 1.5); +} Added: incubator/devicemap/whiteboard/_less/devicemap-bootstrap-variables.less URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_less/devicemap-bootstrap-variables.less?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_less/devicemap-bootstrap-variables.less (added) +++ incubator/devicemap/whiteboard/_less/devicemap-bootstrap-variables.less Mon Aug 25 11:39:37 2014 @@ -0,0 +1,848 @@ +// +// Variables +// -------------------------------------------------- + + +//== Colors +// +//## Gray and brand colors for use across Bootstrap. + +@gray-darker: lighten(#000, 13.5%); // #222 +@gray-dark: lighten(#000, 20%); // #333 +@gray: lighten(#000, 33.5%); // #555 +@gray-light: lighten(#000, 46.7%); // #777 +@gray-lighter: lighten(#000, 93.5%); // #eee + +@brand-primary: #428bca; +@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%); + + +//== 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: 17px; +@font-size-large: ceil((@font-size-base * 1.25)); // ~18px +@font-size-small: ceil((@font-size-base * 0.85)); // ~12px +@font-size-smaller: ceil((@font-size-base * 0.7)); // ~12px +@font-size-smallest: ceil((@font-size-base * 0.6)); // ~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; +//** `<input>` border radius +@input-border-radius: @border-radius-base; +//** Border color for inputs on focus +@input-border-focus: #66afe9; + +//** Placeholder text color +@input-color-placeholder: @gray-light; + +//** 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; + + +//== 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-background: 1040; +@zindex-modal: 1050; + + +//== 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: 90px; +@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: white; +@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: @gray-light; +@navbar-inverse-bg: #222; +@navbar-inverse-border: darken(@navbar-inverse-bg, 10%); + +// Inverted navbar links +@navbar-inverse-link-color: @gray-light; +@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; + +@nav-open-link-hover-color: #fff; + +//== 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: #fff; + +//** 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; + +//** 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; + + Added: incubator/devicemap/whiteboard/_less/devicemap-bootstrap.less URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_less/devicemap-bootstrap.less?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_less/devicemap-bootstrap.less (added) +++ incubator/devicemap/whiteboard/_less/devicemap-bootstrap.less Mon Aug 25 11:39:37 2014 @@ -0,0 +1,5 @@ +@import './bootstrap-3.2.0/less/bootstrap.less'; +@import 'devicemap-bootstrap-variables.less'; +@import 'devicemap-variables.less'; +@import 'devicemap-bootstrap-other.less'; +@import './bootstrap-3.2.0/less/utilities.less'; Added: incubator/devicemap/whiteboard/_less/devicemap-variables.less URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_less/devicemap-variables.less?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_less/devicemap-variables.less (added) +++ incubator/devicemap/whiteboard/_less/devicemap-variables.less Mon Aug 25 11:39:37 2014 @@ -0,0 +1,3 @@ +@images: '/images/site'; + +@news-item-date-color: #aaaaaa; Added: incubator/devicemap/whiteboard/_posts/news/2014-07-10-yes-yes.md URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_posts/news/2014-07-10-yes-yes.md?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_posts/news/2014-07-10-yes-yes.md (added) +++ incubator/devicemap/whiteboard/_posts/news/2014-07-10-yes-yes.md Mon Aug 25 11:39:37 2014 @@ -0,0 +1,9 @@ +--- +layout: news +author: radu +--- +This is a test! + +<!--more--> + +This is the content. Added: incubator/devicemap/whiteboard/_posts/news/2014-08-10-hello-world.md URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_posts/news/2014-08-10-hello-world.md?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_posts/news/2014-08-10-hello-world.md (added) +++ incubator/devicemap/whiteboard/_posts/news/2014-08-10-hello-world.md Mon Aug 25 11:39:37 2014 @@ -0,0 +1,13 @@ +--- +layout: news +author: radu +--- +This is a test! + +Modus ullum cu qui. Dolorem definitiones cum cu, id eos eleifend cotidieque theophrastus, ne timeam invidunt probatus has. Ei nec hinc munere atomorum, illud posse te ius. In solum facete inimicus usu. + +Ea possim meliore iracundia mei, erat debet et qui. Ad mazim constituto vim. Recteque liberavisse at sit, ut has veri laoreet. Liber aeterno vim ei, est aperiam nominavi necessitatibus in. + +<!--more--> + +This is the content. Added: incubator/devicemap/whiteboard/_vagrant/.vagrant/hostmanager/id URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_vagrant/.vagrant/hostmanager/id?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_vagrant/.vagrant/hostmanager/id (added) +++ incubator/devicemap/whiteboard/_vagrant/.vagrant/hostmanager/id Mon Aug 25 11:39:37 2014 @@ -0,0 +1 @@ +553ec4b4-12cf-450d-a84a-43dccb2878cb \ No newline at end of file Added: incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/action_provision URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/action_provision?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/action_provision (added) +++ incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/action_provision Mon Aug 25 11:39:37 2014 @@ -0,0 +1 @@ +1.5:5db288cc-bd10-4e9d-9a53-253fdce7956b \ No newline at end of file Added: incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/action_set_name URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/action_set_name?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/action_set_name (added) +++ incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/action_set_name Mon Aug 25 11:39:37 2014 @@ -0,0 +1 @@ +1408956132 \ No newline at end of file Added: incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/id URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/id?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/id (added) +++ incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/id Mon Aug 25 11:39:37 2014 @@ -0,0 +1 @@ +5db288cc-bd10-4e9d-9a53-253fdce7956b \ No newline at end of file Added: incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/index_uuid URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/index_uuid?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/index_uuid (added) +++ incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/index_uuid Mon Aug 25 11:39:37 2014 @@ -0,0 +1 @@ +12bef42b676a4c63aa7ae67a02ddae8c \ No newline at end of file Added: incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/synced_folders URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/synced_folders?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/synced_folders (added) +++ incubator/devicemap/whiteboard/_vagrant/.vagrant/machines/default/virtualbox/synced_folders Mon Aug 25 11:39:37 2014 @@ -0,0 +1 @@ +{"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"/Users/radu/workspace/apache/devicemap-site-jekyll","disabled":false}}} \ No newline at end of file Added: incubator/devicemap/whiteboard/_vagrant/Vagrantfile URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_vagrant/Vagrantfile?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_vagrant/Vagrantfile (added) +++ incubator/devicemap/whiteboard/_vagrant/Vagrantfile Mon Aug 25 11:39:37 2014 @@ -0,0 +1,28 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +VAGRANTFILE_API_VERSION = "2" +NAME = "devicemap-site-builder" + +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| + config.vm.box = "ubuntu/trusty64" + config.vm.hostname = NAME + config.vm.provision "shell", :path => "provision.sh", :privileged => false + config.vm.network "private_network", ip: "192.168.50.2" + config.vm.synced_folder "../", "/vagrant" + + config.hostmanager.enabled = true + config.hostmanager.manage_host = true + config.hostmanager.ignore_private_ip = true + config.hostmanager.include_offline = true + config.hostmanager.ip_resolver = proc do |vm,resolving_vm| + ip = /inet addr:(\d+\.\d+\.\d+\.\d+)/.match(`vagrant ssh -c "sudo ifconfig eth1"`) + if (!ip.nil?) + ip[1] + end + end + + config.vm.provider "virtualbox" do |v| + v.name = NAME + end +end Added: incubator/devicemap/whiteboard/_vagrant/provision.sh URL: http://svn.apache.org/viewvc/incubator/devicemap/whiteboard/_vagrant/provision.sh?rev=1620294&view=auto ============================================================================== --- incubator/devicemap/whiteboard/_vagrant/provision.sh (added) +++ incubator/devicemap/whiteboard/_vagrant/provision.sh Mon Aug 25 11:39:37 2014 @@ -0,0 +1,53 @@ +#!/bin/bash +############################################################################### +# CONFIGURATION SECTION # +############################################################################### +PROFILE=/home/vagrant/.profile +RUBY_VERSION="2.1.2" +NODE_VERSION="0.10.31" +JEKYLL_VERSION="2.3.0" +PROVISIONING_LOG="provisioning.log" +############################################################################### +# END CONFIG # +############################################################################### + +function die { + echo "ERROR: $1." + exit 1 +} + +echo "Preparing to install Ruby $RUBY_VERSION..." +curl -sSL https://get.rvm.io | bash -s stable --ruby=2.1.2 >> $PROVISIONING_LOG 2>&1 +if [ $? -eq 0 ]; then + echo "Successfully installed Ruby." +else + die "Failed to install Ruby. Please check the provisioning log at $PROVISIONING_LOG." +fi +echo "source /home/vagrant/.rvm/scripts/rvm" >> $PROFILE +source $PROFILE +echo "Preparing to install Jekyll $JEKYLL_VERSION..." +gem install jekyll -v 2.3.0 >> $PROVISIONING_LOG 2>&1 +if [ $? -eq 0 ]; then + echo "Successfully installed Jekyll." +else + die "Failed to install Ruby. Please check the provisioning log at $PROVISIONING_LOG." +fi +echo "Preparing to install Node.js $NODE_VERSION..." +wget -o $PROVISIONING_LOG "http://nodejs.org/dist/v0.10.31/node-v${NODE_VERSION}-linux-x64.tar.gz" +if [ -f node-v${NODE_VERSION}-linux-x64.tar.gz ]; then + tar -xzf node-v0.10.31-linux-x64.tar.gz + mv node-v0.10.31-linux-x64 .node + rm node-v0.10.31-linux-x64.tar.gz + echo 'export PATH="$PATH:/home/vagrant/.node/bin"' >> $PROFILE + source $PROFILE + echo "Successfully installed Node.js." + echo "Preparing to install Less..." + npm install -g less >> $PROVISIONING_LOG 2>&1 + if [ $? -eq 0 ]; then + echo "Successfully installed Less." + else + die "Failed to install Less. Please check the provisioning log at $PROVISIONING_LOG." + fi +else + die "Failed to install Node.js. Please check the provisioning log at $PROVISIONING_LOG." +fi
