diff --git a/src/plugins/kibana/public/dashboard/index.js b/src/plugins/kibana/public/dashboard/index.js
index f55e8b96371c..d3464adca65b 100644
--- a/src/plugins/kibana/public/dashboard/index.js
+++ b/src/plugins/kibana/public/dashboard/index.js
@@ -26,8 +26,7 @@ define(function (require) {
'kibana/courier',
'kibana/config',
'kibana/notify',
- 'kibana/typeahead',
- 'kibana/share'
+ 'kibana/typeahead'
]);
require('ui/routes')
@@ -92,7 +91,6 @@ define(function (require) {
var $uiState = $scope.uiState = $state.makeStateful('uiState');
$scope.$watchCollection('state.options', function (newVal, oldVal) {
- //console.log('watch state.options');
if (!angular.equals(newVal, oldVal)) $state.save();
});
$scope.$watch('state.options.darkTheme', setDarkTheme);
@@ -157,7 +155,6 @@ define(function (require) {
}
function setDarkTheme(enabled) {
- //console.log('setDarkTheme');
var theme = Boolean(enabled) ? 'theme-dark' : 'theme-light';
chrome.removeApplicationClass(['theme-dark', 'theme-light']);
chrome.addApplicationClass(theme);
@@ -165,7 +162,6 @@ define(function (require) {
// update root source when filters update
$scope.$listen(queryFilter, 'update', function () {
- //console.log('queryFilter update');
updateQueryOnRootSource();
$state.save();
});
@@ -239,16 +235,6 @@ define(function (require) {
save: $scope.save,
addVis: $scope.addVis,
addSearch: $scope.addSearch
- // ,
- // shareData: function () {
- // //console.log('this is being called.');
- // return {
- // link: $location.absUrl(),
- // // This sucks, but seems like the cleanest way. Uhg.
- // embed: ''
- // };
- // }
};
init();
diff --git a/src/plugins/kibana/public/dashboard/partials/share.html b/src/plugins/kibana/public/dashboard/partials/share.html
index 79046da5db0b..cf9fc6898b4f 100644
--- a/src/plugins/kibana/public/dashboard/partials/share.html
+++ b/src/plugins/kibana/public/dashboard/partials/share.html
@@ -1,22 +1 @@
-
diff --git a/src/plugins/kibana/public/discover/controllers/discover.js b/src/plugins/kibana/public/discover/controllers/discover.js
index e69f9065736e..a457131965d3 100644
--- a/src/plugins/kibana/public/discover/controllers/discover.js
+++ b/src/plugins/kibana/public/discover/controllers/discover.js
@@ -20,6 +20,7 @@ define(function (require) {
require('ui/state_management/app_state');
require('ui/timefilter');
require('ui/highlight/highlight_tags');
+ require('ui/share');
var app = require('ui/modules').get('apps/discover', [
'kibana/notify',
diff --git a/src/plugins/kibana/public/discover/partials/share_search.html b/src/plugins/kibana/public/discover/partials/share_search.html
index 6b878b6c8c7f..3870634f8483 100644
--- a/src/plugins/kibana/public/discover/partials/share_search.html
+++ b/src/plugins/kibana/public/discover/partials/share_search.html
@@ -1,22 +1 @@
-
diff --git a/src/plugins/kibana/public/goto/index.js b/src/plugins/kibana/public/goto/index.js
deleted file mode 100644
index 9c1aea43172d..000000000000
--- a/src/plugins/kibana/public/goto/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-define(function (require) {
- var angular = require('angular');
-
- require('ui/routes')
- .when('/goto/:id', {
- template: require('plugins/kibana/dashboard/index.html'),
- resolve: {
- dash: function (savedDashboards, Notifier, $route, $location, courier) {
- return savedDashboards.get($route.current.params.id)
- .catch(courier.redirectWhenMissing({
- 'dashboard' : '/dashboard'
- }));
- }
- }
- });
-
- require('ui/routes')
- .when('/visualize', {
- redirectTo: '/visualize/step/1'
- });
-
-});
diff --git a/src/plugins/kibana/public/visualize/editor/editor.js b/src/plugins/kibana/public/visualize/editor/editor.js
index 92f4e2f2ea88..9f7c628493c0 100644
--- a/src/plugins/kibana/public/visualize/editor/editor.js
+++ b/src/plugins/kibana/public/visualize/editor/editor.js
@@ -6,6 +6,7 @@ define(function (require) {
require('ui/visualize');
require('ui/collapsible_sidebar');
+ require('ui/share');
require('ui/routes')
.when('/visualize/create', {
@@ -234,15 +235,6 @@ define(function (require) {
}, notify.fatal);
};
- // $scope.shareData = function () {
- // return {
- // link: $location.absUrl(),
- // // This sucks, but seems like the cleanest way. Uhg.
- // embed: ''
- // };
- // };
-
$scope.unlink = function () {
if (!$state.linked) return;
diff --git a/src/plugins/kibana/public/visualize/editor/panels/share.html b/src/plugins/kibana/public/visualize/editor/panels/share.html
index 2292d1eb311c..0a3cda5e13b2 100644
--- a/src/plugins/kibana/public/visualize/editor/panels/share.html
+++ b/src/plugins/kibana/public/visualize/editor/panels/share.html
@@ -1,23 +1 @@
-
diff --git a/src/server/http/index.js b/src/server/http/index.js
index 9c7fcfab30f3..52a79d145058 100644
--- a/src/server/http/index.js
+++ b/src/server/http/index.js
@@ -31,7 +31,6 @@ module.exports = function (kbnServer, server, config) {
server.connection(connectionOptions);
-
// provide a simple way to expose static directories
server.decorate('server', 'exposeStaticDir', function (routePath, dirPath) {
this.route({
diff --git a/src/server/http/urlLookup.js b/src/server/http/urlLookup.js
index e7c8f03931f6..18e094a08462 100644
--- a/src/server/http/urlLookup.js
+++ b/src/server/http/urlLookup.js
@@ -17,61 +17,83 @@ export default function (server) {
}
});
} catch (err) {
- console.log(err);
- //swallow errors. We don't care if there is no update.
+ console.log('Error updating url metadata', err);
+ //swallow errors. It isn't critical if there is no update.
}
}
- return {
- async generateUrlId(url) {
- const urlId = await new Promise((resolve, reject) => {
- const client = server.plugins.elasticsearch.client;
+ async function getUrlDoc(urlId) {
+ const urlDoc = await new Promise((resolve, reject) => {
+ const client = server.plugins.elasticsearch.client;
- // const urlId = crypto.createHash('md5')
- // .update(url)
- // .digest('hex');
+ client.get({
+ index: '.kibana',
+ type: 'url',
+ id: urlId
+ })
+ .then(response => {
+ resolve(response);
+ })
+ .catch(err => {
+ resolve();
+ });
+ });
- client.index({
- index: '.kibana',
- type: 'url',
- body: {
- url,
- 'access-count': 0,
- 'create-date': new Date(),
- 'access-date': new Date()
- }
- })
- .then(response => {
- const urlId = response._id;
- resolve(urlId);
- })
- .catch(err => {
- reject(err);
- });
+ return urlDoc;
+ }
+
+ async function createUrlDoc(url, urlId) {
+ const newUrlId = await new Promise((resolve, reject) => {
+ const client = server.plugins.elasticsearch.client;
+
+ client.index({
+ index: '.kibana',
+ type: 'url',
+ id: urlId,
+ body: {
+ url,
+ 'access-count': 0,
+ 'create-date': new Date(),
+ 'access-date': new Date()
+ }
+ })
+ .then(response => {
+ resolve(response._id);
+ })
+ .catch(err => {
+ reject(err);
});
+ });
+
+ return newUrlId;
+ }
+
+ function createUrlId(url) {
+ const urlId = crypto.createHash('md5')
+ .update(url)
+ .digest('hex');
+
+ return urlId;
+ }
- return urlId;
+ return {
+ async generateUrlId(url) {
+ const urlId = createUrlId(url);
+
+ const urlDoc = await getUrlDoc(urlId);
+ if (urlDoc) return urlId;
+
+ return createUrlDoc(url, urlId);
},
async getUrl(urlId) {
- const url = await new Promise((resolve, reject) => {
- const client = server.plugins.elasticsearch.client;
-
- client.get({
- index: '.kibana',
- type: 'url',
- id: urlId
- })
- .then(response => {
- const url = response._source.url;
- updateMetadata(urlId, response);
- resolve(url);
- })
- .catch(err => {
- resolve('/');
- });
- });
+ try {
+ const urlDoc = await getUrlDoc(urlId);
+ updateMetadata(urlId, urlDoc);
- return url;
+ return urlDoc._source.url;
+ } catch (err) {
+ return '/';
+ }
}
};
};
diff --git a/src/ui/public/directives/config.js b/src/ui/public/directives/config.js
index d02e99d7d074..a8f69b28ca5e 100644
--- a/src/ui/public/directives/config.js
+++ b/src/ui/public/directives/config.js
@@ -29,7 +29,6 @@ define(function (require) {
var tmpScope = $scope.$new();
$scope.$watch('configObject', function (newVal) {
- console.log('config watch');
$scope[attr.configObject] = $scope.configObject;
});
@@ -45,7 +44,6 @@ define(function (require) {
'configSubmit',
'configTemplate.current || configTemplate'
], function () {
- console.log('config watchMulti');
var tmpl = $scope.configTemplate;
if (tmpl instanceof ConfigTemplate) {
tmpl = tmpl.toString();
diff --git a/src/ui/public/share/index.js b/src/ui/public/share/index.js
index a815bf6ee29b..1e587a0fd745 100644
--- a/src/ui/public/share/index.js
+++ b/src/ui/public/share/index.js
@@ -1,5 +1,5 @@
define(function (require) {
- const app = require('ui/modules').get('kibana/share');
+ const app = require('ui/modules').get('kibana');
app.directive('share', function (Private) {
const urlShortener = Private(require('./url_shortener'));
diff --git a/src/ui/public/share/url_shortener.js b/src/ui/public/share/url_shortener.js
index 304e30b3456d..98411fd2bcd6 100644
--- a/src/ui/public/share/url_shortener.js
+++ b/src/ui/public/share/url_shortener.js
@@ -7,8 +7,7 @@ define(function (require) {
async function shortenUrl(url) {
const relativeUrl = url.replace(baseUrl, '');
-
- var formData = { url: relativeUrl };
+ const formData = { url: relativeUrl };
try {
const result = await $http.post('/shorten', formData);