mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Merge branch 'dashboard_loading_refactoring' of github.com:torkelo/grafana-private into dashboard_loading_refactoring
This commit is contained in:
commit
d9f2fca66d
17
CHANGELOG.md
17
CHANGELOG.md
@ -1,4 +1,18 @@
|
||||
# vNext
|
||||
vNext
|
||||
|
||||
**New features or improvements**
|
||||
- Ability to set y min/max for right y-axis (RR #519, Closes #360) - thx @acedrew
|
||||
|
||||
**Fixes**
|
||||
|
||||
- Fixes regex InfluxDB queries intoduced in 1.6.0 (PR #500)
|
||||
- Bug in when using % sign in legends (aliases), fixed by removing url decoding of metric names (Fixes #506)
|
||||
- Series names and column name typeahead cache fix (Fixes #522)
|
||||
- Fixed influxdb issue with raw query that caused wrong value column detection (Fixes #504)
|
||||
- Default property that marks which datasource is default in config.js is now optional (Fixes #526)
|
||||
- Auto-refresh caused 2 refreshes (and hence mulitple queries) each time (at least in firefox) (Fixes #342)
|
||||
|
||||
# 1.6.0 (2014-06-16)
|
||||
|
||||
#### New features or improvements
|
||||
- New Y-axis formater for metric values that represent seconds (Issue #427) - thx @jippi
|
||||
@ -28,6 +42,7 @@
|
||||
Use datasources config instead. panel_names removed from config.js. Use plugins.panels to add custom panels
|
||||
|
||||
#### Fixes
|
||||
- Graphite query lexer change, can now handle regex parameters for aliasSub function (Fixes #126)
|
||||
- Filter option loading when having muliple nested filters now works better.
|
||||
Options are now reloaded correctly and there are no multiple renders/refresh inbetween (#447),
|
||||
After an option is changed and a nested template param is also reloaded, if the current value
|
||||
|
24
README.md
24
README.md
@ -71,7 +71,14 @@ Header set Access-Control-Allow-Headers "origin, authorization, accept"
|
||||
```
|
||||
Note that using "\*" leaves your graphite instance quite open so you might want to consider using "http://my.graphite-dom.ain" in place of "\*"
|
||||
|
||||
If your Graphite web is proteced by basic authentication, you have to enable the HTTP verb OPTIONS, origin
|
||||
Here is the same thing, in nginx format:
|
||||
```
|
||||
add_header "Access-Control-Allow-Origin" "*";
|
||||
add_header "Access-Control-Allow-Credentials" "true";
|
||||
add_header "Access-Control-Allow-Methods" "GET, OPTIONS";
|
||||
add_header "Access-Control-Allow-Headers" "Authorization, origin, accept";
|
||||
```
|
||||
If your Graphite web is protected by basic authentication, you have to enable the HTTP verb OPTIONS, origin
|
||||
(no wildcards are allowed in this case) and add Access-Control-Allow-Credentials. This looks like the following for Apache:
|
||||
```
|
||||
Header set Access-Control-Allow-Origin "http://mygrafana.com:5656"
|
||||
@ -86,7 +93,20 @@ Header set Access-Control-Allow-Credentials true
|
||||
</LimitExcept>
|
||||
</Location>
|
||||
```
|
||||
|
||||
And in nginx:
|
||||
```
|
||||
auth_basic "Restricted";
|
||||
auth_basic_user_file /path/to/my/htpasswd/file;
|
||||
if ($http_origin ~* (https?://[^/]*\.somedomain\.com(:[0-9]+)?)) { #Test if request is from allowed domain, you can use multiple if
|
||||
set $cors "true"; #statements to allow multiple domains, simply setting $cors to true in each one.
|
||||
}
|
||||
if ($cors = 'true') {
|
||||
add_header Access-Control-Allow-Origin $http_origin; #this mirrors back whatever domain the request came from as authorized, as
|
||||
add_header "Access-Control-Allow-Credentials" "true"; #as long as it matches one of your if statements
|
||||
add_header "Access-Control-Allow-Methods" "GET, OPTIONS";
|
||||
add_header "Access-Control-Allow-Headers" "Authorization, origin, accept";
|
||||
}
|
||||
```
|
||||
# Roadmap
|
||||
- Improve and refine the target parser and editing
|
||||
- Improve graphite import feature
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"version": "1.5.4",
|
||||
"url": "http://grafanarel.s3.amazonaws.com/grafana-1.5.4.tar.gz"
|
||||
"version": "1.6.0",
|
||||
"url": "http://grafanarel.s3.amazonaws.com/grafana-1.6.0.tar.gz"
|
||||
}
|
14
package.json
14
package.json
@ -4,7 +4,7 @@
|
||||
"company": "Coding Instinct AB"
|
||||
},
|
||||
"name": "grafana",
|
||||
"version": "1.6.0-rc.1",
|
||||
"version": "1.6.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "http://github.com/torkelo/grafana.git"
|
||||
@ -32,17 +32,17 @@
|
||||
"expect.js": "~0.2.0",
|
||||
"karma-script-launcher": "~0.1.0",
|
||||
"karma-firefox-launcher": "~0.1.3",
|
||||
"karma-chrome-launcher": "~0.1.2",
|
||||
"karma-chrome-launcher": "~0.1.4",
|
||||
"karma-html2js-preprocessor": "~0.1.0",
|
||||
"karma-jasmine": "~0.1.5",
|
||||
"karma-jasmine": "~0.2.2",
|
||||
"requirejs": "~2.1.9",
|
||||
"karma-requirejs": "~0.2.1",
|
||||
"karma-coffee-preprocessor": "~0.1.2",
|
||||
"karma-phantomjs-launcher": "~0.1.1",
|
||||
"karma": "~0.10.9",
|
||||
"grunt-karma": "~0.6.2",
|
||||
"karma-mocha": "~0.1.1",
|
||||
"karma-expect": "~1.0.0",
|
||||
"karma": "~0.12.16",
|
||||
"grunt-karma": "~0.8.3",
|
||||
"karma-mocha": "~0.1.4",
|
||||
"karma-expect": "~1.1.0",
|
||||
"grunt-cli": "~0.1.13",
|
||||
"jshint-stylish": "~0.1.5",
|
||||
"grunt-contrib-concat": "^0.4.0",
|
||||
|
@ -45,6 +45,8 @@ function (angular, $, config, _) {
|
||||
$rootScope.fullscreen = false;
|
||||
|
||||
$scope.dashboard = dashboard.create(dashboardData);
|
||||
$scope.grafana.style = $scope.dashboard.style;
|
||||
|
||||
$scope.filter = filterSrv;
|
||||
$scope.filter.init($scope.dashboard);
|
||||
|
||||
|
@ -17,7 +17,7 @@ function (angular, _, moment) {
|
||||
$scope.elasticsearch = $scope.elasticsearch || {};
|
||||
|
||||
$scope.onAppEvent('save-dashboard', function() {
|
||||
$scope.elasticsearch_save('dashboard', false);
|
||||
$scope.saveDashboard();
|
||||
});
|
||||
|
||||
$scope.onAppEvent('zoom-out', function() {
|
||||
@ -142,6 +142,10 @@ function (angular, _, moment) {
|
||||
});
|
||||
};
|
||||
|
||||
$scope.styleUpdated = function() {
|
||||
$scope.grafana.style = $scope.dashboard.style;
|
||||
};
|
||||
|
||||
$scope.openSaveDropdown = function() {
|
||||
$scope.isFavorite = playlistSrv.isCurrentFavorite($scope.dashboard);
|
||||
};
|
||||
|
@ -15,6 +15,9 @@ function (angular, config, _) {
|
||||
$scope.init = function() {
|
||||
$scope._ = _;
|
||||
$scope.dashAlerts = alertSrv;
|
||||
$scope.grafana = {
|
||||
style: 'dark'
|
||||
};
|
||||
};
|
||||
|
||||
$rootScope.onAppEvent = function(name, callback) {
|
||||
|
@ -42,6 +42,7 @@ function (angular) {
|
||||
$scope.seriesBlur = function() {
|
||||
if ($scope.oldSeries !== $scope.target.series) {
|
||||
$scope.oldSeries = $scope.target.series;
|
||||
$scope.columnList = null;
|
||||
$scope.get_data();
|
||||
}
|
||||
};
|
||||
@ -67,7 +68,7 @@ function (angular) {
|
||||
};
|
||||
|
||||
$scope.listSeries = function(query, callback) {
|
||||
if (!seriesList) {
|
||||
if (!seriesList || query === '') {
|
||||
seriesList = [];
|
||||
$scope.datasource.listSeries().then(function(series) {
|
||||
seriesList = series;
|
||||
|
@ -259,8 +259,8 @@ function (angular, $, kbn, moment, _) {
|
||||
var defaults = {
|
||||
position: 'left',
|
||||
show: scope.panel['y-axis'],
|
||||
min: scope.panel.grid.min,
|
||||
max: scope.panel.percentage && scope.panel.stack ? 100 : scope.panel.grid.max,
|
||||
min: scope.panel.grid.leftMin,
|
||||
max: scope.panel.percentage && scope.panel.stack ? 100 : scope.panel.grid.leftMax,
|
||||
};
|
||||
|
||||
options.yaxes.push(defaults);
|
||||
@ -268,6 +268,8 @@ function (angular, $, kbn, moment, _) {
|
||||
if (_.findWhere(data, {yaxis: 2})) {
|
||||
var secondY = _.clone(defaults);
|
||||
secondY.position = 'right';
|
||||
secondY.min = scope.panel.grid.rightMin;
|
||||
secondY.max = scope.panel.percentage && scope.panel.stack ? 100 : scope.panel.grid.rightMax;
|
||||
options.yaxes.push(secondY);
|
||||
configureAxisMode(options.yaxes[1], scope.panel.y_formats[1]);
|
||||
}
|
||||
|
@ -114,10 +114,4 @@ define(['angular', 'jquery', 'underscore', 'moment'], function (angular, $, _, m
|
||||
};
|
||||
});
|
||||
|
||||
module.filter('urlDecode', function() {
|
||||
return function(input) {
|
||||
return decodeURIComponent(input);
|
||||
};
|
||||
});
|
||||
|
||||
});
|
@ -17,7 +17,7 @@
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="option in filter.options">
|
||||
<a ng-click="filterOptionSelected(filter, option)">{{option.text | urlDecode}}</a>
|
||||
<a ng-click="filterOptionSelected(filter, option)">{{option.text}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
@ -1,49 +1,47 @@
|
||||
|
||||
<div class="editor-row">
|
||||
|
||||
<div class="section">
|
||||
<h5>Axes</h5>
|
||||
<div class="editor-option">
|
||||
<label class="small">X-Axis</label><input type="checkbox" ng-model="panel['x-axis']" ng-checked="panel['x-axis']" ng-change="render()">
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Y-Axis</label><input type="checkbox" ng-model="panel['y-axis']" ng-checked="panel['y-axis']" ng-change="render()">
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Left Y Format <tip>Y-axis formatting</tip></label>
|
||||
<select class="input-small" ng-model="panel.y_formats[0]" ng-options="f for f in ['none','short','bytes', 'bits', 's', 'ms', 'µs', 'ns']" ng-change="render()"></select>
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Right Y Format <tip>Y-axis formatting</tip></label>
|
||||
<select class="input-small" ng-model="panel.y_formats[1]" ng-options="f for f in ['none','short','bytes', 'bits', 's', 'ms', 'µs', 'ns']" ng-change="render()"></select>
|
||||
</div>
|
||||
|
||||
<div class="editor-option">
|
||||
<label class="small">Left Y-axis label</label>
|
||||
<input ng-change="get_data()" ng-model-onblur placeholder="" type="text" class="input-medium" ng-model="panel.leftYAxisLabel">
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Right Y-axis label</label>
|
||||
<input ng-change="get_data()" ng-model-onblur placeholder="" type="text" class="input-medium" ng-model="panel.rightYAxisLabel">
|
||||
</div>
|
||||
|
||||
<h5>Left Y Axis</h5>
|
||||
<div class="editor-option">
|
||||
<label class="small">Format <tip>Y-axis formatting</tip></label>
|
||||
<select class="input-small" ng-model="panel.y_formats[0]" ng-options="f for f in ['none','short','bytes', 'bits', 's', 'ms', 'µs', 'ns']" ng-change="render()"></select>
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Min / <a ng-click="toggleGridMinMax('leftMin')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.leftMin)"></i></a></label>
|
||||
<input type="number" class="input-small" ng-model="panel.grid.leftMin" ng-change="render()" ng-model-onblur />
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Max / <a ng-click="toggleGridMinMax('leftMax')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.leftMax)"></i></a></label>
|
||||
<input type="number" class="input-small" ng-model="panel.grid.leftMax" ng-change="render()" ng-model-onblur />
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Label</label>
|
||||
<input ng-change="get_data()" ng-model-onblur placeholder="" type="text" class="input-medium" ng-model="panel.leftYAxisLabel">
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<h5>Right Y Axis</h5>
|
||||
<div class="editor-option">
|
||||
<label class="small">Format <tip>Y-axis formatting</tip></label>
|
||||
<select class="input-small" ng-model="panel.y_formats[1]" ng-options="f for f in ['none','short','bytes', 'bits', 's', 'ms', 'µs', 'ns']" ng-change="render()"></select>
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Min / <a ng-click="toggleGridMinMax('rightMin')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.rightMin)"></i></a></label>
|
||||
<input type="number" class="input-small" ng-model="panel.grid.rightMin" ng-change="render()" ng-model-onblur />
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Max / <a ng-click="toggleGridMinMax('rightMax')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.rightMax)"></i></a></label>
|
||||
<input type="number" class="input-small" ng-model="panel.grid.rightMax" ng-change="render()" ng-model-onblur />
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Label</label>
|
||||
<input ng-change="get_data()" ng-model-onblur placeholder="" type="text" class="input-medium" ng-model="panel.rightYAxisLabel">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="editor-row">
|
||||
|
||||
<div class="section">
|
||||
<h5>Grid</h5>
|
||||
<div class="editor-option">
|
||||
<label class="small">Min / <a ng-click="toggleGridMinMax('min')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.min)"></i></a></label>
|
||||
<input type="number" class="input-small" ng-model="panel.grid.min" ng-change="render()" ng-model-onblur />
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Max / <a ng-click="toggleGridMinMax('max')">Auto <i class="icon-star" ng-show="_.isNull(panel.grid.max)"></i></a></label>
|
||||
<input type="number" class="input-small" ng-model="panel.grid.max" ng-change="render()" ng-model-onblur />
|
||||
</div>
|
||||
</div>
|
||||
<div class="editor-row">
|
||||
|
||||
<div class="section">
|
||||
<h5>Grid thresholds</h5>
|
||||
@ -102,4 +100,14 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<h5>Show Axes</h5>
|
||||
<div class="editor-option">
|
||||
<label class="small">X-Axis</label><input type="checkbox" ng-model="panel['x-axis']" ng-checked="panel['x-axis']" ng-change="render()">
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Y-Axis</label><input type="checkbox" ng-model="panel['y-axis']" ng-checked="panel['y-axis']" ng-change="render()">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</i>
|
||||
<span class='small histogram-legend-item'>
|
||||
<a ng-click="toggleSeries(series, $event)" data-unique="1" data-placement="{{series.yaxis === 2 ? 'bottomRight' : 'bottomLeft'}}">
|
||||
{{series.alias | urlDecode}}
|
||||
{{series.alias}}
|
||||
</a>
|
||||
<span ng-if="panel.legend.values">
|
||||
<span ng-show="panel.legend.current">
|
||||
|
@ -95,8 +95,10 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
|
||||
* grid.ma1::: Maximum y-axis value
|
||||
*/
|
||||
grid : {
|
||||
max: null,
|
||||
min: null,
|
||||
leftMax: null,
|
||||
rightMax: null,
|
||||
leftMin: null,
|
||||
rightMin: null,
|
||||
threshold1: null,
|
||||
threshold2: null,
|
||||
threshold1Color: 'rgba(216, 200, 27, 0.27)',
|
||||
@ -191,10 +193,21 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
|
||||
_.defaults($scope.panel.legend, _d.legend);
|
||||
}
|
||||
|
||||
if ($scope.panel.grid.min) {
|
||||
$scope.panel.grid.leftMin = $scope.panel.grid.min;
|
||||
delete $scope.panel.grid.min;
|
||||
}
|
||||
|
||||
if ($scope.panel.grid.max) {
|
||||
$scope.panel.grid.leftMax = $scope.panel.grid.max;
|
||||
delete $scope.panel.grid.max;
|
||||
}
|
||||
|
||||
if ($scope.panel.y_format) {
|
||||
$scope.panel.y_formats[0] = $scope.panel.y_format;
|
||||
delete $scope.panel.y_format;
|
||||
}
|
||||
|
||||
if ($scope.panel.y2_format) {
|
||||
$scope.panel.y_formats[1] = $scope.panel.y2_format;
|
||||
delete $scope.panel.y2_format;
|
||||
|
@ -15,7 +15,7 @@
|
||||
<label class="small">Title</label><input type="text" class="input-large" ng-model='dashboard.title'></input>
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Style</label><select class="input-small" ng-model="dashboard.style" ng-options="f for f in ['dark','light']"></select>
|
||||
<label class="small">Theme</label><select class="input-small" ng-model="dashboard.style" ng-options="f for f in ['dark','light']" ng-change="styleUpdated()"></select>
|
||||
</div>
|
||||
<div class="editor-option">
|
||||
<label class="small">Time correction</label>
|
||||
|
@ -67,21 +67,25 @@ function (angular, $, kbn, _) {
|
||||
$rootScope.$broadcast('refresh');
|
||||
};
|
||||
|
||||
p.set_interval = function(interval) {
|
||||
this.refresh = interval;
|
||||
p.start_scheduled_refresh = function (after_ms) {
|
||||
this.cancel_scheduled_refresh();
|
||||
this.refresh_timer = timer.register($timeout(function () {
|
||||
this.start_scheduled_refresh(after_ms);
|
||||
this.emit_refresh();
|
||||
}.bind(this), after_ms));
|
||||
};
|
||||
|
||||
p.cancel_scheduled_refresh = function () {
|
||||
timer.cancel(this.refresh_timer);
|
||||
};
|
||||
|
||||
p.set_interval = function (interval) {
|
||||
this.refresh = interval;
|
||||
if (interval) {
|
||||
var _i = kbn.interval_to_ms(interval);
|
||||
timer.cancel(this.refresh_timer);
|
||||
var self = this;
|
||||
|
||||
this.refresh_timer = timer.register($timeout(function() {
|
||||
self.set_interval(interval);
|
||||
self.emit_refresh();
|
||||
},_i));
|
||||
this.emit_refresh();
|
||||
this.start_scheduled_refresh(_i);
|
||||
} else {
|
||||
timer.cancel(this.refresh_timer);
|
||||
this.cancel_scheduled_refresh();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -15,6 +15,9 @@ function (angular, _, config) {
|
||||
|
||||
this.init = function() {
|
||||
var defaultDatasource = _.findWhere(_.values(config.datasources), { default: true });
|
||||
if (!defaultDatasource) {
|
||||
defaultDatasource = config.datasources[_.keys(config.datasources)[0]];
|
||||
}
|
||||
this.default = this.datasourceFactory(defaultDatasource);
|
||||
};
|
||||
|
||||
|
@ -646,62 +646,6 @@ define([
|
||||
var jump = 1; // A length of a jump, after we're done
|
||||
// parsing this character.
|
||||
|
||||
// Special treatment for some escaped characters.
|
||||
if (char === "\\") {
|
||||
this.skip();
|
||||
char = this.peek();
|
||||
|
||||
switch (char) {
|
||||
case "'":
|
||||
break;
|
||||
case "b":
|
||||
char = "\b";
|
||||
break;
|
||||
case "f":
|
||||
char = "\f";
|
||||
break;
|
||||
case "n":
|
||||
char = "\n";
|
||||
break;
|
||||
case "r":
|
||||
char = "\r";
|
||||
break;
|
||||
case "t":
|
||||
char = "\t";
|
||||
break;
|
||||
case "0":
|
||||
char = "\0";
|
||||
break;
|
||||
case "u":
|
||||
char = String.fromCharCode(parseInt(this.input.substr(1, 4), 16));
|
||||
jump = 5;
|
||||
break;
|
||||
case "v":
|
||||
char = "\v";
|
||||
break;
|
||||
case "x":
|
||||
var x = parseInt(this.input.substr(1, 2), 16);
|
||||
char = String.fromCharCode(x);
|
||||
jump = 3;
|
||||
break;
|
||||
case "\\":
|
||||
case "\"":
|
||||
case "/":
|
||||
break;
|
||||
case "":
|
||||
char = "";
|
||||
break;
|
||||
case "!":
|
||||
if (value.slice(value.length - 2) === "<") {
|
||||
break;
|
||||
}
|
||||
|
||||
/*falls through */
|
||||
default:
|
||||
// Weird escaping.
|
||||
}
|
||||
}
|
||||
|
||||
value += char;
|
||||
this.skip(jump);
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ function (angular, _, kbn) {
|
||||
var groupByIndex = lowerCaseQueryElements.indexOf("group");
|
||||
var orderIndex = lowerCaseQueryElements.indexOf("order");
|
||||
|
||||
if (lowerCaseQueryElements[1].indexOf(',')) {
|
||||
if (lowerCaseQueryElements[1].indexOf(',') !== -1) {
|
||||
groupByField = lowerCaseQueryElements[1].replace(',', '');
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ function (angular, _, kbn) {
|
||||
}
|
||||
else {
|
||||
|
||||
var template = "select [[group]][[group_comma]] [[func]](\"[[column]]\") as \"[[column]]_[[func]]\" from \"[[series]]\" " +
|
||||
var template = "select [[group]][[group_comma]] [[func]]([[column]]) from [[series]] " +
|
||||
"where [[timeFilter]] [[condition_add]] [[condition_key]] [[condition_op]] [[condition_value]] " +
|
||||
"group by time([[interval]])[[group_comma]] [[group]] order asc";
|
||||
|
||||
@ -86,6 +86,10 @@ function (angular, _, kbn) {
|
||||
group: target.groupby_field_add ? target.groupby_field : '',
|
||||
};
|
||||
|
||||
if(!templateData.series.match('^/.*/')) {
|
||||
templateData.series = '"' + templateData.series + '"';
|
||||
}
|
||||
|
||||
query = _.template(template, templateData, this.templateSettings);
|
||||
query = filterSrv.applyTemplateToTarget(query);
|
||||
|
||||
@ -112,11 +116,10 @@ function (angular, _, kbn) {
|
||||
};
|
||||
|
||||
InfluxDatasource.prototype.listColumns = function(seriesName) {
|
||||
return this.doInfluxRequest('select * from "' + seriesName + '" limit 1').then(function(data) {
|
||||
return this.doInfluxRequest('select * from /' + seriesName + '/ limit 1').then(function(data) {
|
||||
if (!data) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return data[0].columns;
|
||||
});
|
||||
};
|
||||
@ -229,7 +232,7 @@ function (angular, _, kbn) {
|
||||
datapoints[i] = [metricValue, groupPoints[i][timeCol]];
|
||||
}
|
||||
|
||||
seriesName = alias ? alias : key;
|
||||
seriesName = alias ? alias : (series.name + '.' + key);
|
||||
|
||||
// if mulitple groups append key to alias
|
||||
if (alias && groupByField) {
|
||||
|
@ -32,6 +32,9 @@ function (Settings) {
|
||||
// default start dashboard
|
||||
default_route: '/dashboard/file/default.json',
|
||||
|
||||
// Elasticsearch index for storing dashboards
|
||||
grafana_index: "grafana-dash",
|
||||
|
||||
// timezoneOFfset:
|
||||
// If you experiance problems with zoom, it is probably caused by timezone diff between
|
||||
// your browser and the graphite-web application. timezoneOffset setting can be used to have Grafana
|
||||
@ -44,9 +47,6 @@ function (Settings) {
|
||||
//
|
||||
timezoneOffset: null,
|
||||
|
||||
// Elasticsearch index for storing dashboards
|
||||
grafana_index: "grafana-dash",
|
||||
|
||||
// set to false to disable unsaved changes warning
|
||||
unsaved_changes_warning: true,
|
||||
|
||||
@ -54,7 +54,6 @@ function (Settings) {
|
||||
// Example: "1m", "1h"
|
||||
playlist_timespan: "1m",
|
||||
|
||||
|
||||
// Add your own custom pannels
|
||||
plugins: {
|
||||
panels: []
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
<body ng-cloak ng-controller="GrafanaCtrl">
|
||||
|
||||
<link rel="stylesheet" href="css/bootstrap.light.min.css" ng-if="dashboard.style === 'light'">
|
||||
<link rel="stylesheet" href="css/bootstrap.light.min.css" ng-if="grafana.style === 'light'">
|
||||
<link rel="stylesheet" href="css/bootstrap-responsive.min.css">
|
||||
<link rel="stylesheet" href="css/font-awesome.min.css">
|
||||
|
||||
|
545
src/vendor/bootstrap/less/bak/bootswatch.dark.less
vendored
545
src/vendor/bootstrap/less/bak/bootswatch.dark.less
vendored
@ -1,545 +0,0 @@
|
||||
// Slate 2.3.2
|
||||
// Bootswatch
|
||||
// -----------------------------------------------------
|
||||
|
||||
// TYPOGRAPHY
|
||||
// -----------------------------------------------------
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
code, pre {
|
||||
background-color: #F7F7F7;
|
||||
border: 1px solid darken(@grayDarker, 5%);
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
// SCAFFOLDING
|
||||
// -----------------------------------------------------
|
||||
|
||||
legend, .page-header {
|
||||
border-bottom: 1px solid @hrBorder;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
// NAVBAR
|
||||
// -----------------------------------------------------
|
||||
|
||||
.navbar {
|
||||
|
||||
.navbar-inner {
|
||||
#gradient > .vertical-three-colors(@grayDark, darken(@bodyBackground,3%), 70%, darken(@bodyBackground,3%));
|
||||
}
|
||||
|
||||
.brand {
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.navbar-text {
|
||||
padding: 0 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.nav > li > a {
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.2);
|
||||
border-left: 1px solid rgba(255, 255, 255, 0.1);
|
||||
|
||||
&:hover {
|
||||
#gradient > .directional(@grayDarker, @grayDark, 280deg);
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.nav > li.active > a,
|
||||
.nav > li.active > a:hover {
|
||||
color: @grayLighter;
|
||||
background-color: @grayDark;
|
||||
#gradient > .directional(lighten(@grayDarker, 2%), lighten(@grayDark, 2%), 0deg);
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
|
||||
.navbar-search .search-query {
|
||||
border: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
|
||||
.btn,
|
||||
.btn-group {
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
.divider-vertical {
|
||||
background-color: transparent;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.dropdown-menu::after {
|
||||
border-bottom: 6px solid @grayDark;
|
||||
}
|
||||
|
||||
&-inverse {
|
||||
|
||||
.navbar-inner {
|
||||
#gradient > .vertical-three-colors(darken(@grayDarker, 3%), darken(@grayDarker, 8%), 70%, darken(@grayDarker, 8%));
|
||||
}
|
||||
|
||||
.nav li > a {
|
||||
background-image: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.nav li > a:hover,
|
||||
.nav li.active > a,
|
||||
.nav li.active > a:hover {
|
||||
#gradient > .directional(darken(@grayDarker, 10%), darken(@grayDarker, 5%), 280deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: @navbarCollapseWidth) {
|
||||
|
||||
.navbar .nav-collapse {
|
||||
|
||||
.nav li > a,
|
||||
.nav li > a:hover,
|
||||
.nav .active > a,
|
||||
.nav .active > a:hover {
|
||||
.box-shadow(none);
|
||||
color: @grayLighter;
|
||||
border: 1px solid transparent;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.nav li > a:hover,
|
||||
.nav .active > a:hover {
|
||||
background-color: @grayDarker;
|
||||
}
|
||||
|
||||
.navbar-form,
|
||||
.navbar-search {
|
||||
border-color: transparent;
|
||||
.box-shadow(none);
|
||||
}
|
||||
|
||||
.nav-header {
|
||||
color: @grayLight;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-inverse .nav-collapse {
|
||||
|
||||
.nav li > a:hover,
|
||||
.nav .active > a:hover {
|
||||
background-color: @grayDarker !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.nav-tabs {
|
||||
.active > a, .active a:hover {
|
||||
border-bottom: 1px solid darken(@grayDark, 5%);;
|
||||
}
|
||||
}
|
||||
|
||||
div.subnav {
|
||||
|
||||
margin: 0 1px;
|
||||
//#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
border: 1px solid transparent;
|
||||
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
|
||||
|
||||
.nav > li > a {
|
||||
color: @grayLighter;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
border-left: 1px solid @gray;
|
||||
|
||||
&:hover {
|
||||
color: @grayLighter;
|
||||
background-color: @grayDark;
|
||||
//#gradient > .directional(@grayDarker, @grayDark, 280deg);
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.nav > li.active > a,
|
||||
.nav > li.active > a:hover {
|
||||
color: @grayLighter;
|
||||
background-color: @grayDark;
|
||||
#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
|
||||
.nav > li:first-child > a,
|
||||
.nav > li:first-child > a:hover {
|
||||
border-left: 1px solid transparent;
|
||||
}
|
||||
|
||||
.nav > li.active:last-child > a,
|
||||
.nav > li:last-child > a:hover {
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
|
||||
.open .dropdown-toggle {
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
border-left: 1px solid @gray;
|
||||
}
|
||||
|
||||
&.subnav-fixed {
|
||||
top: @navbarHeight;
|
||||
margin: 0;
|
||||
.box-shadow(none);
|
||||
|
||||
.nav > li.active:first-child > a,
|
||||
.nav > li:first-child > a:hover {
|
||||
border-left: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// NAV
|
||||
// -----------------------------------------------------
|
||||
|
||||
.nav {
|
||||
|
||||
.nav-header {
|
||||
text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
& > li > a {
|
||||
//#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
|
||||
border: none;
|
||||
color: @grayLight;
|
||||
font-weight: bold;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
li.active > a,
|
||||
li.active > a:hover {
|
||||
background-color: transparent;
|
||||
color: @white;
|
||||
}
|
||||
|
||||
& > li.disabled > a,
|
||||
& > li.disabled > a:hover {
|
||||
color: @gray;
|
||||
}
|
||||
|
||||
li > a:hover {
|
||||
background-color: transparent;
|
||||
color: @grayLighter;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
border: 1px solid transparent;
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
|
||||
|
||||
a {
|
||||
color: @grayLighter;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
li {
|
||||
color: @grayLight;
|
||||
font-weight: bold;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
}
|
||||
|
||||
.pagination {
|
||||
|
||||
ul {
|
||||
.box-shadow(none);
|
||||
}
|
||||
|
||||
ul > li > a,
|
||||
ul > li > span {
|
||||
border-left: 1px solid @gray;
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
border-top: none;
|
||||
border-bottom: none;
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
|
||||
color: @grayLighter;
|
||||
font-weight: bold;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
|
||||
&:hover {
|
||||
#gradient > .directional(@grayDarker, @grayDark, 280deg);
|
||||
border-left: 1px solid transparent;
|
||||
}
|
||||
}
|
||||
|
||||
ul > .active > a,
|
||||
ul > .active > a:hover,
|
||||
ul > .active > span,
|
||||
ul > .active > span:hover {
|
||||
color: @grayLighter;
|
||||
background-color: @grayDark;
|
||||
#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
|
||||
border-left: 1px solid transparent;
|
||||
}
|
||||
|
||||
ul > .disabled > a,
|
||||
ul > .disabled > a:hover,
|
||||
ul > .disabled > span,
|
||||
ul > .disabled > span:hover {
|
||||
border-left: 1px solid @gray;
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
border-top: none;
|
||||
border-bottom: none;
|
||||
#gradient > .vertical-three-colors(@grayLight, @gray, 70%, @gray);
|
||||
}
|
||||
}
|
||||
|
||||
.pager {
|
||||
|
||||
li > a,
|
||||
li > span {
|
||||
|
||||
border: 1px solid transparent;
|
||||
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
|
||||
&:hover {
|
||||
#gradient > .directional(@grayDarker, @grayDark, 280deg);
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.disabled a,
|
||||
.disabled a:hover {
|
||||
background-color: transparent;
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
}
|
||||
}
|
||||
|
||||
// BUTTONS
|
||||
// -----------------------------------------------------
|
||||
|
||||
.btn {
|
||||
.buttonBackground(@gray, darken(@gray, 10%));
|
||||
.border-radius(3px);
|
||||
border: 1px solid @grayDarker;
|
||||
}
|
||||
|
||||
.btn, .btn:hover {
|
||||
color: @white;
|
||||
font-weight: bold;
|
||||
text-shadow: -1px -1px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
|
||||
color: @grayDark;
|
||||
text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
.btn-warning {
|
||||
.buttonBackground(lighten(@orange, 15%), @orange);
|
||||
}
|
||||
|
||||
.btn-danger {
|
||||
.buttonBackground(@red, #bd362f);
|
||||
}
|
||||
|
||||
.btn-success {
|
||||
.buttonBackground(@green, #51a351);
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
.buttonBackground(@blue, #2f96b4);
|
||||
}
|
||||
|
||||
.btn-inverse {
|
||||
.buttonBackground(@gray, @grayDarker);
|
||||
}
|
||||
|
||||
.caret {
|
||||
border-top-color: @white;
|
||||
}
|
||||
|
||||
// TABLES
|
||||
// -----------------------------------------------------
|
||||
|
||||
.table {
|
||||
|
||||
tbody tr.success td {
|
||||
background-color: @successText;
|
||||
}
|
||||
|
||||
tbody tr.error td {
|
||||
background-color: @errorText;
|
||||
}
|
||||
|
||||
tbody tr.info td {
|
||||
background-color: @infoText;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// FORMS
|
||||
// -----------------------------------------------------
|
||||
|
||||
label, input, button, select, textarea, legend {
|
||||
color: @textColor;
|
||||
}
|
||||
|
||||
legend, label {
|
||||
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.input-prepend .add-on,
|
||||
.input-append .add-on {
|
||||
vertical-align: top;
|
||||
background-color: @gray;
|
||||
border-top: 1px solid @grayLight;
|
||||
border-left: 1px solid @grayLight;
|
||||
border-bottom: 1px solid @grayDark;
|
||||
border-right: 1px solid @grayDark;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.input-append .btn,
|
||||
.input-prepend .btn {
|
||||
margin-top: -1px;
|
||||
padding: 5px 14px;
|
||||
}
|
||||
|
||||
.uneditable-input,
|
||||
input[disabled],
|
||||
select[disabled],
|
||||
textarea[disabled],
|
||||
input[readonly],
|
||||
select[readonly],
|
||||
textarea[readonly] {
|
||||
color: @gray;
|
||||
background: @grayDarker;
|
||||
}
|
||||
|
||||
.form-actions {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
// DROPDOWNS
|
||||
// -----------------------------------------------------
|
||||
|
||||
.dropdown-menu {
|
||||
.box-shadow(0 5px 5px rgba(0, 0, 0, 0.2));
|
||||
}
|
||||
|
||||
.dropdown.open .dropdown-toggle {
|
||||
background-color: @grayDark;
|
||||
color: @grayLighter;
|
||||
}
|
||||
|
||||
.dropdown-submenu > a::after {
|
||||
border-left-color: @white;
|
||||
}
|
||||
|
||||
// ALERTS, LABELS, BADGES
|
||||
// -----------------------------------------------------
|
||||
|
||||
.label, .alert {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
|
||||
.box-shadow(1px 1px 1px rgba(0, 0, 0, 0.3));
|
||||
}
|
||||
|
||||
.alert {
|
||||
background-color: @orange;
|
||||
border-color: @orange;
|
||||
|
||||
.alert-heading {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
}
|
||||
|
||||
.alert-success {
|
||||
background-color: @successText;
|
||||
border-color: @successText;
|
||||
}
|
||||
|
||||
.alert-error {
|
||||
background-color: @errorText;
|
||||
border-color: @errorText;
|
||||
}
|
||||
|
||||
.alert-info {
|
||||
background-color: @infoText;
|
||||
border-color: @infoText;
|
||||
}
|
||||
|
||||
// MISC
|
||||
// -----------------------------------------------------
|
||||
|
||||
.well, .hero-unit {
|
||||
.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
|
||||
}
|
||||
|
||||
.thumbnail,
|
||||
a.thumbnail:hover {
|
||||
border: 1px solid darken(@grayDarker, 5%);
|
||||
}
|
||||
|
||||
.progress {
|
||||
background-color: darken(@grayDarker, 3%);
|
||||
#gradient > .vertical(darken(@grayDarker, 3%), darken(@grayDarker, 3%));
|
||||
.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
|
||||
}
|
||||
|
||||
.footer {
|
||||
border-top: 1px solid darken(@grayDarker, 5%);
|
||||
|
||||
p {
|
||||
color: @textColor;
|
||||
}
|
||||
}
|
||||
|
||||
.modal {
|
||||
|
||||
background-color: darken(@grayDark, 5%);
|
||||
|
||||
&-header {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&-body {
|
||||
border-bottom: 1px solid #1C1E22;
|
||||
}
|
||||
|
||||
&-footer {
|
||||
border-top: none;
|
||||
background-color: @grayDarker;
|
||||
.box-shadow(none);
|
||||
}
|
||||
}
|
||||
|
||||
// MEDIA QUERIES
|
||||
// -----------------------------------------------------
|
||||
|
||||
@media (max-width: 979px) {
|
||||
.navbar .brand {
|
||||
border-right: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
div.subnav .nav > li + li > a {
|
||||
border-top: 1px solid transparent;
|
||||
}
|
||||
}
|
304
src/vendor/bootstrap/less/bak/variables.dark.less
vendored
304
src/vendor/bootstrap/less/bak/variables.dark.less
vendored
@ -1,304 +0,0 @@
|
||||
// Slate 2.3.2
|
||||
// Variables
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
// Global values
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
// Grays
|
||||
// -------------------------
|
||||
@black: #000;
|
||||
@grayDarker: #272B30;
|
||||
@grayDark: #3A3F44;
|
||||
@gray: #52575C;
|
||||
@grayLight: #7A8288;
|
||||
@grayLighter: #BBBFC2;
|
||||
@white: #fff;
|
||||
|
||||
|
||||
// Accent colors
|
||||
// -------------------------
|
||||
@blue: #5bc0de;
|
||||
@blueDark: #108CBB;
|
||||
@green: #62c462;
|
||||
@red: #ee5f5b;
|
||||
@yellow: #F6D30D;
|
||||
@orange: #f89406;
|
||||
@pink: #c3325f;
|
||||
@purple: #7a43b6;
|
||||
|
||||
|
||||
// Scaffolding
|
||||
// -------------------------
|
||||
@bodyBackground: @grayDarker;
|
||||
@textColor: #C8C8C8;
|
||||
|
||||
|
||||
// Links
|
||||
// -------------------------
|
||||
@linkColor: @white;
|
||||
@linkColorHover: @white;
|
||||
|
||||
|
||||
// Typography
|
||||
// -------------------------
|
||||
@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@serifFontFamily: Georgia, "Times New Roman", Times, serif;
|
||||
@monoFontFamily: Monaco, Menlo, Consolas, "Courier New", monospace;
|
||||
|
||||
@baseFontSize: 14px;
|
||||
@baseFontFamily: @sansFontFamily;
|
||||
@baseLineHeight: 21px;
|
||||
@altFontFamily: @serifFontFamily;
|
||||
|
||||
@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
|
||||
@headingsFontWeight: bold; // instead of browser default, bold
|
||||
@headingsColor: inherit; // empty to use BS default, @textColor
|
||||
|
||||
|
||||
// Component sizing
|
||||
// -------------------------
|
||||
// Based on 14px font-size and 20px line-height
|
||||
|
||||
@fontSizeLarge: @baseFontSize * 1.25; // ~18px
|
||||
@fontSizeSmall: @baseFontSize * 0.85; // ~12px
|
||||
@fontSizeMini: @baseFontSize * 0.75; // ~11px
|
||||
|
||||
@paddingLarge: 11px 19px; // 44px
|
||||
@paddingSmall: 2px 10px; // 26px
|
||||
@paddingMini: 0px 6px; // 22px
|
||||
|
||||
@baseBorderRadius: 4px;
|
||||
@borderRadiusLarge: 6px;
|
||||
@borderRadiusSmall: 3px;
|
||||
|
||||
|
||||
// Tables
|
||||
// -------------------------
|
||||
@tableBackground: transparent; // overall background-color
|
||||
@tableBackgroundAccent: darken(@grayDark, 5%); // for striping
|
||||
@tableBackgroundHover: @grayDark; // for hover
|
||||
@tableBorder: lighten(@grayDark, 2%); // table and cell border
|
||||
|
||||
// Buttons
|
||||
// -------------------------
|
||||
@btnBackground: @gray;
|
||||
@btnBackgroundHighlight: darken(@gray, 10%);
|
||||
@btnBorder: darken(@gray, 20%);
|
||||
|
||||
@btnPrimaryBackground: @grayLight;
|
||||
@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%);
|
||||
|
||||
@btnInfoBackground: @blue;
|
||||
@btnInfoBackgroundHighlight: #2f96b4;
|
||||
|
||||
@btnSuccessBackground: @green;
|
||||
@btnSuccessBackgroundHighlight: #51a351;
|
||||
|
||||
@btnWarningBackground: lighten(@orange, 15%);
|
||||
@btnWarningBackgroundHighlight: @orange;
|
||||
|
||||
@btnDangerBackground: @red;
|
||||
@btnDangerBackgroundHighlight: #bd362f;
|
||||
|
||||
@btnInverseBackground: @gray;
|
||||
@btnInverseBackgroundHighlight: @grayDarker;
|
||||
|
||||
// Forms
|
||||
// -------------------------
|
||||
@inputText: @white;
|
||||
@inputBackground: @gray;
|
||||
@inputBorder: @grayLight;
|
||||
@inputBorderRadius: @baseBorderRadius;
|
||||
@inputDisabledBackground: @grayLighter;
|
||||
@formActionsBackground: darken(@grayDarker, 3%);
|
||||
@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
|
||||
|
||||
|
||||
// Dropdowns
|
||||
// -------------------------
|
||||
@dropdownBackground: @grayDark;
|
||||
@dropdownBorder: rgba(0,0,0,.2);
|
||||
@dropdownDividerTop: transparent;
|
||||
@dropdownDividerBottom: darken(@grayDarker, 5%);
|
||||
|
||||
@dropdownLinkColor: @grayLight;
|
||||
@dropdownLinkColorHover: @white;
|
||||
@dropdownLinkColorActive: @white;
|
||||
|
||||
@dropdownLinkBackgroundActive: @grayDarker;
|
||||
@dropdownLinkBackgroundHover: @grayDarker;
|
||||
|
||||
|
||||
|
||||
// COMPONENT VARIABLES
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
// Z-index master list
|
||||
// -------------------------
|
||||
// Used for a bird's eye view of components dependent on the z-axis
|
||||
// Try to avoid customizing these :)
|
||||
@zindexDropdown: 1000;
|
||||
@zindexPopover: 1010;
|
||||
@zindexTooltip: 1030;
|
||||
@zindexFixedNavbar: 1030;
|
||||
@zindexModalBackdrop: 1040;
|
||||
@zindexModal: 1050;
|
||||
|
||||
|
||||
// Sprite icons path
|
||||
// -------------------------
|
||||
@iconSpritePath: "../img/glyphicons-halflings.png";
|
||||
@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
|
||||
|
||||
|
||||
// Input placeholder text color
|
||||
// -------------------------
|
||||
@placeholderText: @grayLight;
|
||||
|
||||
|
||||
// Hr border color
|
||||
// -------------------------
|
||||
@hrBorder: darken(@grayDarker, 5%);
|
||||
|
||||
|
||||
// Horizontal forms & lists
|
||||
// -------------------------
|
||||
@horizontalComponentOffset: 180px;
|
||||
|
||||
|
||||
// Wells
|
||||
// -------------------------
|
||||
@wellBackground: darken(@grayDarker, 3%);
|
||||
|
||||
|
||||
// Navbar
|
||||
// -------------------------
|
||||
|
||||
@navbarCollapseWidth: 979px;
|
||||
@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
|
||||
@navbarHeight: 40px;
|
||||
@navbarBackground: @grayDarker;
|
||||
@navbarBackgroundHighlight: @grayDark;
|
||||
@navbarBorder: darken(@navbarBackground, 12%);
|
||||
|
||||
@navbarText: @textColor;
|
||||
@navbarLinkColor: @textColor;
|
||||
@navbarLinkColorHover: @white;
|
||||
@navbarLinkColorActive: @navbarLinkColorHover;
|
||||
@navbarLinkBackgroundHover: @grayDark;
|
||||
@navbarLinkBackgroundActive: @navbarBackground;
|
||||
|
||||
@navbarBrandColor: @grayLighter;
|
||||
|
||||
// Inverted navbar
|
||||
@navbarInverseBackground: darken(@grayDarker, 10%);
|
||||
@navbarInverseBackgroundHighlight: @grayDarker;
|
||||
@navbarInverseBorder: #252525;
|
||||
|
||||
@navbarInverseText: @grayLight;
|
||||
@navbarInverseLinkColor: @grayLight;
|
||||
@navbarInverseLinkColorHover: @white;
|
||||
@navbarInverseLinkColorActive: @navbarInverseLinkColorHover;
|
||||
@navbarInverseLinkBackgroundHover: transparent;
|
||||
@navbarInverseLinkBackgroundActive: @navbarInverseBackground;
|
||||
|
||||
@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%);
|
||||
@navbarInverseSearchBackgroundFocus: @white;
|
||||
@navbarInverseSearchBorder: @navbarInverseBackground;
|
||||
@navbarInverseSearchPlaceholderColor: #ccc;
|
||||
|
||||
@navbarInverseBrandColor: @navbarInverseLinkColor;
|
||||
|
||||
|
||||
// Pagination
|
||||
// -------------------------
|
||||
@paginationBackground: #fff;
|
||||
@paginationBorder: #ddd;
|
||||
@paginationActiveBackground: #f5f5f5;
|
||||
|
||||
|
||||
// Hero unit
|
||||
// -------------------------
|
||||
@heroUnitBackground: darken(@grayDarker, 3%);
|
||||
@heroUnitHeadingColor: inherit;
|
||||
@heroUnitLeadColor: inherit;
|
||||
|
||||
|
||||
// Form states and alerts
|
||||
// -------------------------
|
||||
@warningText: #c09853;
|
||||
@warningBackground: #fcf8e3;
|
||||
@warningBorder: darken(spin(@warningBackground, -10), 3%);
|
||||
|
||||
@errorText: #b94a48;
|
||||
@errorBackground: #f2dede;
|
||||
@errorBorder: darken(spin(@errorBackground, -10), 3%);
|
||||
|
||||
@successText: #468847;
|
||||
@successBackground: #dff0d8;
|
||||
@successBorder: darken(spin(@successBackground, -10), 5%);
|
||||
|
||||
@infoText: #3a87ad;
|
||||
@infoBackground: #d9edf7;
|
||||
@infoBorder: darken(spin(@infoBackground, -10), 7%);
|
||||
|
||||
|
||||
// Tooltips and popovers
|
||||
// -------------------------
|
||||
@tooltipColor: #fff;
|
||||
@tooltipBackground: @dropdownBackground;
|
||||
@tooltipArrowWidth: 5px;
|
||||
@tooltipArrowColor: @tooltipBackground;
|
||||
|
||||
@popoverBackground: @dropdownBackground;
|
||||
@popoverArrowWidth: 10px;
|
||||
@popoverArrowColor: @dropdownBackground;
|
||||
@popoverTitleBackground: lighten(@popoverBackground, 3%);
|
||||
|
||||
// Special enhancement for popovers
|
||||
@popoverArrowOuterWidth: @popoverArrowWidth + 1;
|
||||
@popoverArrowOuterColor: rgba(0,0,0,.25);
|
||||
|
||||
|
||||
|
||||
// GRID
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
// Default 940px grid
|
||||
// -------------------------
|
||||
@gridColumns: 12;
|
||||
@gridColumnWidth: 60px;
|
||||
@gridGutterWidth: 10px;
|
||||
@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
|
||||
|
||||
// 1200px min
|
||||
@gridColumnWidth1200: 70px;
|
||||
@gridGutterWidth1200: 10px;
|
||||
@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));
|
||||
|
||||
// 768px-979px
|
||||
@gridColumnWidth768: 42px;
|
||||
@gridGutterWidth768: 10px;
|
||||
@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));
|
||||
|
||||
|
||||
// Fluid grid
|
||||
// -------------------------
|
||||
@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth);
|
||||
@gridGutterWidth: 10px;
|
||||
//@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth);
|
||||
|
||||
// 1200px min
|
||||
@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200);
|
||||
@gridGutterWidth: 10px;
|
||||
//@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200);
|
||||
|
||||
// 768px-979px
|
||||
@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768);
|
||||
@gridGutterWidth: 10px;
|
||||
//@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768);
|
139
src/vendor/bootstrap/less/tests/buttons.html
vendored
139
src/vendor/bootstrap/less/tests/buttons.html
vendored
@ -1,139 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Buttons · Bootstrap</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<!-- Le styles -->
|
||||
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
|
||||
<style>
|
||||
body {
|
||||
padding-top: 30px;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
</style>
|
||||
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
|
||||
|
||||
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!-- Le fav and touch icons -->
|
||||
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
|
||||
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h2>Dropups</h2>
|
||||
<div class="btn-toolbar">
|
||||
<div class="btn-group dropup">
|
||||
<button class="btn">Dropup</button>
|
||||
<button class="btn dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
</ul>
|
||||
</div><!-- /btn-group -->
|
||||
<div class="btn-group dropup">
|
||||
<button class="btn btn-primary">Dropup</button>
|
||||
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
</ul>
|
||||
</div><!-- /btn-group -->
|
||||
<div class="btn-group dropup">
|
||||
<button class="btn btn-danger">Dropup</button>
|
||||
<button class="btn btn-danger dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
</ul>
|
||||
</div><!-- /btn-group -->
|
||||
<div class="btn-group dropup">
|
||||
<button class="btn btn-warning">Dropup</button>
|
||||
<button class="btn btn-warning dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
</ul>
|
||||
</div><!-- /btn-group -->
|
||||
<div class="btn-group dropup">
|
||||
<button class="btn btn-success">Dropup</button>
|
||||
<button class="btn btn-success dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
</ul>
|
||||
</div><!-- /btn-group -->
|
||||
<div class="btn-group dropup">
|
||||
<button class="btn btn-info">Dropup</button>
|
||||
<button class="btn btn-info dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
</ul>
|
||||
</div><!-- /btn-group -->
|
||||
<div class="btn-group dropup">
|
||||
<button class="btn btn-inverse">Dropup</button>
|
||||
<button class="btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
</ul>
|
||||
</div><!-- /btn-group -->
|
||||
</div><!-- /btn-toolbar -->
|
||||
|
||||
|
||||
</div> <!-- /container -->
|
||||
|
||||
<!-- Le javascript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="../../docs/assets/js/jquery.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-transition.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-alert.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-modal.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-dropdown.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-scrollspy.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-tab.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-tooltip.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-popover.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-button.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-collapse.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-carousel.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-typeahead.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
150
src/vendor/bootstrap/less/tests/css-tests.css
vendored
150
src/vendor/bootstrap/less/tests/css-tests.css
vendored
@ -1,150 +0,0 @@
|
||||
/*!
|
||||
* Bootstrap CSS Tests
|
||||
*/
|
||||
|
||||
|
||||
/* Remove background image */
|
||||
body {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
/* Space out subhead */
|
||||
.subhead {
|
||||
margin-bottom: 36px;
|
||||
}
|
||||
/*h4 {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
*/
|
||||
|
||||
.type-test {
|
||||
margin-bottom: 20px;
|
||||
padding: 0 20px 20px;
|
||||
background: url(../../docs/assets/img/grid-baseline-20px.png);
|
||||
}
|
||||
.type-test h1,
|
||||
.type-test h2,
|
||||
.type-test h3,
|
||||
.type-test h4,
|
||||
.type-test h5,
|
||||
.type-test h6 {
|
||||
background-color: rgba(255,0,0,.2);
|
||||
}
|
||||
|
||||
|
||||
/* colgroup tests */
|
||||
.col1 {
|
||||
background-color: rgba(255,0,0,.1);
|
||||
}
|
||||
.col2 {
|
||||
background-color: rgba(0,255,0,.1);
|
||||
}
|
||||
.col3 {
|
||||
background-color: rgba(0,0,255,.1);
|
||||
}
|
||||
|
||||
|
||||
/* Fluid row inputs */
|
||||
#rowInputs .row > [class*=span],
|
||||
#fluidRowInputs .row-fluid > [class*=span] {
|
||||
background-color: rgba(255,0,0,.1);
|
||||
}
|
||||
|
||||
|
||||
/* Fluid grid */
|
||||
.fluid-grid {
|
||||
margin-bottom: 45px;
|
||||
}
|
||||
.fluid-grid .row {
|
||||
height: 40px;
|
||||
padding-top: 10px;
|
||||
margin-top: 10px;
|
||||
color: #ddd;
|
||||
text-align: center;
|
||||
}
|
||||
.fluid-grid .span1 {
|
||||
background-color: #999;
|
||||
}
|
||||
|
||||
|
||||
/* Gradients */
|
||||
|
||||
[class^="gradient-"] {
|
||||
width: 100%;
|
||||
height: 400px;
|
||||
margin: 20px 0;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.gradient-horizontal {
|
||||
background-color: #333333;
|
||||
background-image: -moz-linear-gradient(left, #555555, #333333);
|
||||
background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#555555), to(#333333));
|
||||
background-image: -webkit-linear-gradient(left, #555555, #333333);
|
||||
background-image: -o-linear-gradient(left, #555555, #333333);
|
||||
background-image: linear-gradient(to right, #555555, #333333);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=1);
|
||||
}
|
||||
|
||||
.gradient-vertical {
|
||||
background-color: #474747;
|
||||
background-image: -moz-linear-gradient(top, #555555, #333333);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#333333));
|
||||
background-image: -webkit-linear-gradient(top, #555555, #333333);
|
||||
background-image: -o-linear-gradient(top, #555555, #333333);
|
||||
background-image: linear-gradient(to bottom, #555555, #333333);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=0);
|
||||
}
|
||||
|
||||
.gradient-directional {
|
||||
background-color: #333333;
|
||||
background-image: -moz-linear-gradient(45deg, #555555, #333333);
|
||||
background-image: -webkit-linear-gradient(45deg, #555555, #333333);
|
||||
background-image: -o-linear-gradient(45deg, #555555, #333333);
|
||||
background-image: linear-gradient(45deg, #555555, #333333);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
.gradient-vertical-three {
|
||||
background-color: #8940a5;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#00b3ee), color-stop(50%, #7a43b6), to(#c3325f));
|
||||
background-image: -webkit-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);
|
||||
background-image: -moz-linear-gradient(top, #00b3ee, #7a43b6 50%, #c3325f);
|
||||
background-image: -o-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);
|
||||
background-image: linear-gradient(#00b3ee, #7a43b6 50%, #c3325f);
|
||||
background-repeat: no-repeat;
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff00b3ee', endColorstr='#ffc3325f', GradientType=0);
|
||||
}
|
||||
|
||||
.gradient-radial {
|
||||
background-color: #333333;
|
||||
background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(#555555), to(#333333));
|
||||
background-image: -webkit-radial-gradient(circle, #555555, #333333);
|
||||
background-image: -moz-radial-gradient(circle, #555555, #333333);
|
||||
background-image: -o-radial-gradient(circle, #555555, #333333);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.gradient-striped {
|
||||
background-color: #555555;
|
||||
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
|
||||
background-image: -webkit-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-image: -moz-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-image: -o-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-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);
|
||||
}
|
||||
|
||||
.gradient-horizontal-three {
|
||||
background-color: #00b3ee;
|
||||
background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(#00b3ee), color-stop(50%, #7a43b6), to(#c3325f));
|
||||
background-image: -webkit-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);
|
||||
background-image: -moz-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);
|
||||
background-image: -o-linear-gradient(left, #00b3ee, #7a43b6 50%, #c3325f);
|
||||
background-image: linear-gradient(to right, #00b3ee, #7a43b6 50%, #c3325f);
|
||||
background-repeat: no-repeat;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00b3ee', endColorstr='#c3325f', GradientType=0);
|
||||
}
|
1399
src/vendor/bootstrap/less/tests/css-tests.html
vendored
1399
src/vendor/bootstrap/less/tests/css-tests.html
vendored
File diff suppressed because it is too large
Load Diff
@ -1,71 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Bootstrap, from Twitter</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<!-- Le styles -->
|
||||
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
|
||||
<style>
|
||||
body {
|
||||
padding-top: 30px;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!-- Le fav and touch icons -->
|
||||
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
|
||||
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<form class="container">
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Fixed grid</h1>
|
||||
</div>
|
||||
|
||||
<h3>Vertical alignment</h3>
|
||||
<input type="text" class="span2" placeholder="span2">
|
||||
<select class="span2"><option>span2</option></select>
|
||||
<span class="uneditable-input span2">span1</span>
|
||||
|
||||
<h3>Width across elements</h3>
|
||||
<div>
|
||||
<input type="text" class="span2" placeholder="span2">
|
||||
</div>
|
||||
<div>
|
||||
<select class="span2"><option>span2</option></select>
|
||||
</div>
|
||||
<div>
|
||||
<span class="uneditable-input span2">span2</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Fluid grid</h1>
|
||||
</div>
|
||||
|
||||
<div class="row-fluid">
|
||||
<input type="text" class="span2" placeholder="span2">
|
||||
<select class="span2"><option>span2</option></select>
|
||||
<span class="uneditable-input span2">span1</span>
|
||||
</div>
|
||||
|
||||
</form> <!-- /container -->
|
||||
|
||||
</body>
|
||||
</html>
|
179
src/vendor/bootstrap/less/tests/forms.html
vendored
179
src/vendor/bootstrap/less/tests/forms.html
vendored
@ -1,179 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Bootstrap, from Twitter</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<!-- Le styles -->
|
||||
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
|
||||
<style>
|
||||
body {
|
||||
padding-top: 30px;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!-- Le fav and touch icons -->
|
||||
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.ico">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<form class="container">
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Form controls</h1>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
|
||||
<label>Select</label>
|
||||
<select>
|
||||
<option>Select</option>
|
||||
<option>Option 2</option>
|
||||
<option>Option 3</option>
|
||||
</select>
|
||||
|
||||
<hr>
|
||||
|
||||
<label>textarea</label>
|
||||
<textarea>Textarea</textarea>
|
||||
|
||||
<hr>
|
||||
|
||||
<label>text</label>
|
||||
<input type="text" value="Text input">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>password</label>
|
||||
<input type="password" value="Password input">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>checkbox</label>
|
||||
<input type="checkbox" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>radio</label>
|
||||
<input type="radio" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>button</label>
|
||||
<input type="button" value="Button">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>submit</label>
|
||||
<input type="submit" value="Submit">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>reset</label>
|
||||
<input type="reset" value="Reset">
|
||||
|
||||
</div><!-- /span4 -->
|
||||
<div class="span4">
|
||||
|
||||
<label>file</label>
|
||||
<input type="file" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>hidden</label>
|
||||
<input type="hidden" value="hidden">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>image</label>
|
||||
<input type="image" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>datetime</label>
|
||||
<input type="datetime" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>datetime-local</label>
|
||||
<input type="datetime-local" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>date</label>
|
||||
<input type="date" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>month</label>
|
||||
<input type="month" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>time</label>
|
||||
<input type="time" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>week</label>
|
||||
<input type="week" value="">
|
||||
|
||||
</div><!-- /span4 -->
|
||||
<div class="span4">
|
||||
|
||||
<label>number</label>
|
||||
<input type="number" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>range</label>
|
||||
<input type="range" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>email</label>
|
||||
<input type="email" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>url</label>
|
||||
<input type="url" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>search</label>
|
||||
<input type="search" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>tel</label>
|
||||
<input type="tel" value="">
|
||||
|
||||
<hr>
|
||||
|
||||
<label>color</label>
|
||||
<input type="color" value="">
|
||||
|
||||
</div><!-- /span4 -->
|
||||
</div><!-- /row -->
|
||||
|
||||
</form> <!-- /container -->
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,104 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Bootstrap, from Twitter</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<!-- Le styles -->
|
||||
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
|
||||
<style>
|
||||
body {
|
||||
padding-top: 60px;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
</style>
|
||||
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
|
||||
|
||||
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!-- Le fav and touch icons -->
|
||||
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
|
||||
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- Fixed navbar -->
|
||||
<div class="navbar navbar-fixed-top">
|
||||
<div class="navbar-inner">
|
||||
<div class="container">
|
||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<a class="brand" href="#">Project name</a>
|
||||
<div class="nav-collapse collapse">
|
||||
<ul class="nav">
|
||||
<li class="active"><a href="#">Home</a></li>
|
||||
<li><a href="#about">About</a></li>
|
||||
<li><a href="#contact">Contact</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="nav-header">Nav header</li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
<li><a href="#">One more separated link</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav pull-right">
|
||||
<li><a href="./navbar.html">Default</a></li>
|
||||
<li><a href="./navbar-static-top.html">Static top</a></li>
|
||||
<li class="active"><a href="./navbar-fixed-top.html">Fixed top</a></li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<!-- Main hero unit for a primary marketing message or call to action -->
|
||||
<div class="hero-unit">
|
||||
<h1>Navbar example</h1>
|
||||
<p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>
|
||||
<p>
|
||||
<a class="btn btn-large btn-primary" href="../components.html#navbar">View navbar docs »</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div> <!-- /container -->
|
||||
|
||||
<!-- Le javascript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="../../docs/assets/js/jquery.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-transition.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-alert.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-modal.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-dropdown.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-scrollspy.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-tab.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-tooltip.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-popover.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-button.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-collapse.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-carousel.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-typeahead.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,107 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Bootstrap, from Twitter</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<!-- Le styles -->
|
||||
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
|
||||
<style>
|
||||
body {
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
.hero-unit {
|
||||
margin-top: 20px;
|
||||
}
|
||||
</style>
|
||||
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
|
||||
|
||||
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!-- Le fav and touch icons -->
|
||||
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
|
||||
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- Static navbar -->
|
||||
<div class="navbar navbar-static-top">
|
||||
<div class="navbar-inner">
|
||||
<div class="container">
|
||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<a class="brand" href="#">Project name</a>
|
||||
<div class="nav-collapse collapse">
|
||||
<ul class="nav">
|
||||
<li class="active"><a href="#">Home</a></li>
|
||||
<li><a href="#about">About</a></li>
|
||||
<li><a href="#contact">Contact</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="nav-header">Nav header</li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
<li><a href="#">One more separated link</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav pull-right">
|
||||
<li><a href="./navbar.html">Default</a></li>
|
||||
<li class="active"><a href="./navbar-static-top.html">Static top</a></li>
|
||||
<li><a href="./navbar-fixed-top.html">Fixed top</a></li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="container">
|
||||
|
||||
<!-- Main hero unit for a primary marketing message or call to action -->
|
||||
<div class="hero-unit">
|
||||
<h1>Navbar example</h1>
|
||||
<p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>
|
||||
<p>
|
||||
<a class="btn btn-large btn-primary" href="../components.html#navbar">View navbar docs »</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div> <!-- /container -->
|
||||
|
||||
<!-- Le javascript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="../../docs/assets/js/jquery.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-transition.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-alert.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-modal.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-dropdown.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-scrollspy.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-tab.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-tooltip.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-popover.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-button.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-collapse.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-carousel.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-typeahead.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
107
src/vendor/bootstrap/less/tests/navbar.html
vendored
107
src/vendor/bootstrap/less/tests/navbar.html
vendored
@ -1,107 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Bootstrap, from Twitter</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<!-- Le styles -->
|
||||
<link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
|
||||
<style>
|
||||
body {
|
||||
padding-top: 0;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
.navbar {
|
||||
margin-top: 20px;
|
||||
}
|
||||
</style>
|
||||
<link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
|
||||
|
||||
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!-- Le fav and touch icons -->
|
||||
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../docs/assets/ico/apple-touch-icon-144-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../docs/assets/ico/apple-touch-icon-114-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../docs/assets/ico/apple-touch-icon-72-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" href="../../docs/assets/ico/apple-touch-icon-57-precomposed.png">
|
||||
<link rel="shortcut icon" href="../../docs/assets/ico/favicon.png">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<!-- Static navbar -->
|
||||
<div class="navbar">
|
||||
<div class="navbar-inner">
|
||||
<div class="container">
|
||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<a class="brand" href="#">Project name</a>
|
||||
<div class="nav-collapse collapse">
|
||||
<ul class="nav">
|
||||
<li class="active"><a href="#">Home</a></li>
|
||||
<li><a href="#about">About</a></li>
|
||||
<li><a href="#contact">Contact</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="nav-header">Nav header</li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
<li><a href="#">One more separated link</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav pull-right">
|
||||
<li class="active"><a href="./navbar.html">Default</a></li>
|
||||
<li><a href="./navbar-static-top.html">Static top</a></li>
|
||||
<li><a href="./navbar-fixed-top.html">Fixed top</a></li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Main hero unit for a primary marketing message or call to action -->
|
||||
<div class="hero-unit">
|
||||
<h1>Navbar example</h1>
|
||||
<p>This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.</p>
|
||||
<p>
|
||||
<a class="btn btn-large btn-primary" href="../components.html#navbar">View navbar docs »</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div> <!-- /container -->
|
||||
|
||||
<!-- Le javascript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="../../docs/assets/js/jquery.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-transition.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-alert.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-modal.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-dropdown.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-scrollspy.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-tab.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-tooltip.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-popover.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-button.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-collapse.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-carousel.js"></script>
|
||||
<script src="../../docs/assets/js/bootstrap-typeahead.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user