Commit faa15d0a by Rashid Khan

Removed dashcontrol, added default_route setting, bumped minimum version

parent d1c54c1c
== Configuration == == Configuration
config.js is where you will find the core Kibana configuration. This file contains parameter that config.js is where you will find the core Kibana configuration. This file contains parameter that
must be set before kibana is run for the first time. must be set before kibana is run for the first time.
// src/config.js:1 // src/config.js:1
=== Parameters === === Parameters
// src/config.js:10 // src/config.js:10
==== elasticsearch ==== ==== elasticsearch
The URL to your elasticsearch server. You almost certainly don't The URL to your elasticsearch server. You almost certainly don't
want +http://localhost:9200+ here. Even if Kibana and Elasticsearch are on want +http://localhost:9200+ here. Even if Kibana and Elasticsearch are on
...@@ -15,15 +15,24 @@ elasticsearch installed on. You probably want to set it to the FQDN of your ...@@ -15,15 +15,24 @@ elasticsearch installed on. You probably want to set it to the FQDN of your
elasticsearch host elasticsearch host
// src/config.js:15 // src/config.js:15
==== kibana-int ==== ==== default_route
This is the default landing page when you don't specify a dashboard to load. You can specify
files, scripts or saved dashboards here. For example, if you had saved a dashboard called
`WebLogs' to elasticsearch you might use:
+default_route: '/dashboard/elasticsearch/WebLogs',+
// src/config.js:26
==== kibana-int
The default ES index to use for storing Kibana specific object The default ES index to use for storing Kibana specific object
such as stored dashboards such as stored dashboards
// src/config.js:26 // src/config.js:37
==== panel_name ==== ==== panel_name
An array of panel modules available. Panels will only be loaded when they are defined in the An array of panel modules available. Panels will only be loaded when they are defined in the
dashboard, but this list is used in the "add panel" interface. dashboard, but this list is used in the "add panel" interface.
// src/config.js:34 // src/config.js:45
...@@ -12,9 +12,10 @@ define([ ...@@ -12,9 +12,10 @@ define([
'angular-strap', 'angular-strap',
'angular-dragdrop', 'angular-dragdrop',
'extend-jquery', 'extend-jquery',
'bindonce' 'bindonce',
], ],
function (angular, $, _, appLevelRequire) { function (angular, $, _, appLevelRequire) {
"use strict"; "use strict";
var app = angular.module('kibana', []), var app = angular.module('kibana', []),
...@@ -25,6 +26,11 @@ function (angular, $, _, appLevelRequire) { ...@@ -25,6 +26,11 @@ function (angular, $, _, appLevelRequire) {
// features if we define them after boot time // features if we define them after boot time
register_fns = {}; register_fns = {};
app.constant('kibanaVersion',"3.0.0pre5");
// Use this for cache busting partials
app.constant('cacheBust',"cache-bust="+Date.now());
/** /**
* Tells the application to watch the module, once bootstraping has completed * Tells the application to watch the module, once bootstraping has completed
* the modules controller, service, etc. functions will be overwritten to register directly * the modules controller, service, etc. functions will be overwritten to register directly
...@@ -59,6 +65,7 @@ function (angular, $, _, appLevelRequire) { ...@@ -59,6 +65,7 @@ function (angular, $, _, appLevelRequire) {
}; };
app.config(function ($routeProvider, $controllerProvider, $compileProvider, $filterProvider, $provide) { app.config(function ($routeProvider, $controllerProvider, $compileProvider, $filterProvider, $provide) {
$routeProvider $routeProvider
.when('/dashboard', { .when('/dashboard', {
templateUrl: 'app/partials/dashboard.html', templateUrl: 'app/partials/dashboard.html',
...@@ -72,6 +79,7 @@ function (angular, $, _, appLevelRequire) { ...@@ -72,6 +79,7 @@ function (angular, $, _, appLevelRequire) {
.otherwise({ .otherwise({
redirectTo: 'dashboard' redirectTo: 'dashboard'
}); });
// this is how the internet told me to dynamically add modules :/ // this is how the internet told me to dynamically add modules :/
register_fns.controller = $controllerProvider.register; register_fns.controller = $controllerProvider.register;
register_fns.directive = $compileProvider.directive; register_fns.directive = $compileProvider.directive;
......
...@@ -50,7 +50,7 @@ require.config({ ...@@ -50,7 +50,7 @@ require.config({
}, },
angular: { angular: {
deps: ['jquery'], deps: ['jquery','config'],
exports: 'angular' exports: 'angular'
}, },
...@@ -67,6 +67,7 @@ require.config({ ...@@ -67,6 +67,7 @@ require.config({
}, },
// simple dependency declaration // simple dependency declaration
//
'jquery-ui': ['jquery'], 'jquery-ui': ['jquery'],
'jquery.flot': ['jquery'], 'jquery.flot': ['jquery'],
'jquery.flot.byte': ['jquery', 'jquery.flot'], 'jquery.flot.byte': ['jquery', 'jquery.flot'],
......
...@@ -10,9 +10,10 @@ function (_) { ...@@ -10,9 +10,10 @@ function (_) {
* @type {Object} * @type {Object}
*/ */
var defaults = { var defaults = {
elasticsearch : "http://"+window.location.hostname+":9200", elasticsearch : "http://"+window.location.hostname+":9200",
panel_names : [], panel_names : [],
kibana_index : 'kibana-int' kibana_index : 'kibana-int',
default_route : '/dashboard/file/default.json'
}; };
// This initializes a new hash on purpose, to avoid adding parameters to // This initializes a new hash on purpose, to avoid adding parameters to
......
...@@ -31,7 +31,7 @@ function (angular, config, _) { ...@@ -31,7 +31,7 @@ function (angular, config, _) {
module.controller('DashCtrl', function( module.controller('DashCtrl', function(
$scope, $route, ejsResource, fields, dashboard, alertSrv, panelMove, esVersion) { $scope, $route, ejsResource, fields, dashboard, alertSrv, panelMove, esVersion) {
$scope.requiredElasticSearchVersion = ">=0.20.5"; $scope.requiredElasticSearchVersion = ">=0.90.3";
$scope.editor = { $scope.editor = {
index: 0 index: 0
......
...@@ -78,7 +78,8 @@ function (angular) { ...@@ -78,7 +78,8 @@ function (angular) {
var nameAsPath = name.replace(".", "/"); var nameAsPath = name.replace(".", "/");
$scope.require([ $scope.require([
'jquery', 'jquery',
'text!panels/'+nameAsPath+'/module.html' 'text!panels/'+nameAsPath+'/module.html',
'text!panels/'+nameAsPath+'/editor.html'
], function ($, moduleTemplate) { ], function ($, moduleTemplate) {
var $module = $(moduleTemplate); var $module = $(moduleTemplate);
// top level controllers // top level controllers
......
<div>
<a class="close" ng-click="dismiss()" href="">×</a>
<h4>Load</h4>
<div ng-show='panel.load.local'>
<h5>Local File</h5>
<form>
<input type="file" id="dashupload" dash-upload /><br>
</form>
</div>
<div ng-show='panel.load.gist'>
<h5>Gist <small>Enter a gist number or url</small></h5>
<form>
<input type="text" ng-model="gist.url"/><br>
<button class="btn" ng-click="gist_dblist(dashboard.gist_id(gist.url))" ng-show="dashboard.is_gist(gist.url)"><i class="icon-github-alt"></i> Get gist:{{gist.url | gistid}}</button>
<h6 ng-show="gist.files.length">Dashboards in gist:{{gist.url | gistid}} <small>click to load</small></h6>
<h6 ng-hide="gist.files.length">No gist dashboards found</h6>
<table class="table table-condensed table-striped">
<tr ng-repeat="file in gist.files">
<td><a ng-click="dashboard.dash_load(file)">{{file.title}}</a></td>
</tr>
</table>
</form>
</div>
<div ng-show='panel.load.elasticsearch'>
<h5>Elasticsearch</h5>
<form class="input-append">
<input type="text" ng-model="elasticsearch.query"/>
<button ng-click="elasticsearch_dblist(elasticsearch.query)" class='btn'><i class='icon-search'></i></button>
</form>
<h6 ng-show="elasticsearch.dashboards.length">Elasticsearch stored dashboards</h6>
<h6 ng-hide="elasticsearch.dashboards.length">No dashboards matching your query found</h6>
<table class="table table-condensed table-striped">
<tr ng-repeat="row in elasticsearch.dashboards | orderBy:['_id']">
<td><a ng-click="elasticsearch_delete(row._id)"><i class="icon-remove"></i></a></td>
<td><a href="#/dashboard/elasticsearch/{{row._id}}">{{row._id}}</a></td>
<td><a><i class="icon-share" ng-click="share = dashboard.share_link(row._id,'elasticsearch',row._id)" bs-modal="'app/panels/dashcontrol/share.html'"></i></a></td>
</tr>
</table>
</div>
</div>
<div ng-controller='dashcontrol' ng-init="init()"> <div ng-controller='dashcontrol' ng-init="init()">
<label class='small'>Dash Control <tip icon="warning-sign">This panel is deprecated! Please remove it from your dashboard</tip></label> This panel has been removed. Please use the dashboard controls in the top right and remove this panel from your dashboard
<button class='btn' ng-show="panel.load.gist || panel.load.elasticsearch || panel.load.local" data-placement="bottom" data-unique="1" ng-click="elasticsearch_dblist(elasticsearch.query)" bs-popover="'app/panels/dashcontrol/load.html'"><i class='icon-folder-open'></i> <i class='icon-caret-down'></i></button>
<button class='btn' ng-show="panel.save.gist || panel.save.elasticsearch || panel.save.local || panel.save.default" data-placement="bottom" data-unique="1" bs-popover="'app/panels/dashcontrol/save.html'"><i class='icon-save'></i> <i class='icon-caret-down'></i></button>
<button ng-show="panel.temp" class='btn' ng-click="elasticsearch_save('temp',panel.temp_ttl)" bs-modal="'app/panels/dashcontrol/share.html'"><i class='icon-share'></i></button>
</div> </div>
\ No newline at end of file
<div>
<a class="close" ng-click="dismiss()" href="">×</a>
<h4>Save</h4>
<div ng-show="panel.save.default || panel.save.local">
<h5>Locally</h5>
<form>
<ul class="nav nav-list">
<li><a ng-show="panel.save.local" ng-click="dashboard.to_file()"><i class="icon-download"></i> Export to File</a></li>
<li><a ng-show="panel.save.default" ng-click="set_default()"><i class="icon-bookmark"></i> Set as My Default</a></li>
<li><a ng-show="panel.save.default" ng-click="purge_default()"><i class="icon-ban-circle"></i> Clear My Default</a></li>
</ul>
</form>
</div>
<div ng-show="panel.save.gist">
<h5>Gist</h5>
<form class="input-append">
<input class='input-medium' placeholder='Title' type="text" ng-model="gist.title"/>
<button class="btn" ng-click="save_gist()"><i class="icon-github-alt"></i></button>
</form><br>
<small ng-show="gist.last">Last gist: <a target="_blank" href="{{gist.last}}">{{gist.last}}</a></small>
</div>
<div ng-show="panel.save.elasticsearch">
<h5>Elasticsearch</h5>
<form class="input-append">
<input class='input-medium' placeholder='Title' type="text" ng-model="elasticsearch.title"/>
<button class="btn" ng-click="elasticsearch_save('dashboard')"><i class="icon-save"></i></button>
</form>
</div>
</div>
\ No newline at end of file
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>{{share.title}} <small>shareable link</small></h3>
</div>
<div class="modal-body">
<label>Share this dashboard with this URL</label>
<input ng-model='share.link' type="text" style="width:90%" onclick="this.select()" onfocus="this.select()" ng-change="share = dashboard.share_link(share.title,share.type,share.id)">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" ng-click="dismiss();$broadcast('render')">Close</button>
</div>
\ No newline at end of file
...@@ -78,10 +78,10 @@ ...@@ -78,10 +78,10 @@
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li ng-show="dashboard.current.loader.save_default"> <li ng-show="dashboard.current.loader.save_default">
<a class="link" ng-click="set_default()">Set as my home</a> <a class="link" ng-click="set_default()">Save as Home</a>
</li> </li>
<li ng-show="dashboard.current.loader.save_default"> <li ng-show="dashboard.current.loader.save_default">
<a class="link" ng-click="purge_default()">Clear my home</a> <a class="link" ng-click="purge_default()">Reset Home</a>
</li> </li>
<li ng-show="dashboard.current.loader.save_local"> <li ng-show="dashboard.current.loader.save_local">
<a class="link" ng-click="dashboard.to_file()">Export schema</a> <a class="link" ng-click="dashboard.to_file()">Export schema</a>
......
...@@ -102,7 +102,7 @@ function (angular, $, kbn, _, config, moment, Modernizr) { ...@@ -102,7 +102,7 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
self.script_load(_id); self.script_load(_id);
break; break;
default: default:
self.file_load('default.json'); $location.path(config.default_route);
} }
// No dashboard in the URL // No dashboard in the URL
...@@ -116,7 +116,7 @@ function (angular, $, kbn, _, config, moment, Modernizr) { ...@@ -116,7 +116,7 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
self.dash_load(dashboard); self.dash_load(dashboard);
// No? Ok, grab default.json, its all we have now // No? Ok, grab default.json, its all we have now
} else { } else {
self.file_load('default.json'); $location.path(config.default_route);
} }
} }
}; };
......
/** @scratch /configuration/config.js/1 /** @scratch /configuration/config.js/1
* == Configuration == * == Configuration
* config.js is where you will find the core Kibana configuration. This file contains parameter that * config.js is where you will find the core Kibana configuration. This file contains parameter that
* must be set before kibana is run for the first time. * must be set before kibana is run for the first time.
*/ */
...@@ -8,12 +8,12 @@ function (Settings) { ...@@ -8,12 +8,12 @@ function (Settings) {
"use strict"; "use strict";
/** @scratch /configuration/config.js/2 /** @scratch /configuration/config.js/2
* === Parameters === * === Parameters
*/ */
return new Settings({ return new Settings({
/** @scratch /configuration/config.js/5 /** @scratch /configuration/config.js/5
* ==== elasticsearch ==== * ==== elasticsearch
* *
* The URL to your elasticsearch server. You almost certainly don't * The URL to your elasticsearch server. You almost certainly don't
* want +http://localhost:9200+ here. Even if Kibana and Elasticsearch are on * want +http://localhost:9200+ here. Even if Kibana and Elasticsearch are on
...@@ -24,7 +24,18 @@ function (Settings) { ...@@ -24,7 +24,18 @@ function (Settings) {
elasticsearch: "http://"+window.location.hostname+":9200", elasticsearch: "http://"+window.location.hostname+":9200",
/** @scratch /configuration/config.js/5 /** @scratch /configuration/config.js/5
* ==== kibana-int ==== * ==== default_route
*
* This is the default landing page when you don't specify a dashboard to load. You can specify
* files, scripts or saved dashboards here. For example, if you had saved a dashboard called
* `WebLogs' to elasticsearch you might use:
*
* +default_route: '/dashboard/elasticsearch/WebLogs',+
*/
default_route : '/dashboard/file/default.json',
/** @scratch /configuration/config.js/5
* ==== kibana-int
* *
* The default ES index to use for storing Kibana specific object * The default ES index to use for storing Kibana specific object
* such as stored dashboards * such as stored dashboards
...@@ -32,7 +43,7 @@ function (Settings) { ...@@ -32,7 +43,7 @@ function (Settings) {
kibana_index: "kibana-int", kibana_index: "kibana-int",
/** @scratch /configuration/config.js/5 /** @scratch /configuration/config.js/5
* ==== panel_name ==== * ==== panel_name
* *
* An array of panel modules available. Panels will only be loaded when they are defined in the * An array of panel modules available. Panels will only be loaded when they are defined in the
* dashboard, but this list is used in the "add panel" interface. * dashboard, but this list is used in the "add panel" interface.
...@@ -46,7 +57,6 @@ function (Settings) { ...@@ -46,7 +57,6 @@ function (Settings) {
'timepicker', 'timepicker',
'text', 'text',
'hits', 'hits',
'dashcontrol',
'column', 'column',
'trends', 'trends',
'bettermap', 'bettermap',
......
...@@ -30,7 +30,6 @@ module.exports = function(grunt) { ...@@ -30,7 +30,6 @@ module.exports = function(grunt) {
] ]
} }
}); });
grunt.task.run('string-replace:config'); grunt.task.run('string-replace:config');
}); });
grunt.task.run('git-describe'); grunt.task.run('git-describe');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment