You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by pr...@apache.org on 2018/02/23 04:54:51 UTC
[11/12] zeppelin git commit: [ZEPPELIN-3245] checkstyle/eslintrc for
zeppelin-web (JavaScript)
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/ea2c9447/zeppelin-web/src/app/helium/helium.service.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/helium/helium.service.js b/zeppelin-web/src/app/helium/helium.service.js
index d2054b3..7501fae 100644
--- a/zeppelin-web/src/app/helium/helium.service.js
+++ b/zeppelin-web/src/app/helium/helium.service.js
@@ -12,290 +12,294 @@
* limitations under the License.
*/
-import { HeliumType, } from './helium-type'
+import {HeliumType} from './helium-type';
import {
createAllPackageConfigs,
createPersistableConfig,
mergePersistedConfWithSpec,
-} from './helium-conf'
+} from './helium-conf';
import {
createDefaultPackages,
-} from './helium-package'
+} from './helium-package';
-angular.module('zeppelinWebApp').service('heliumService', HeliumService)
+angular.module('zeppelinWebApp').service('heliumService', HeliumService);
export default function HeliumService($http, $sce, baseUrlSrv) {
- 'ngInject'
+ 'ngInject';
- let visualizationBundles = []
- let visualizationPackageOrder = []
+ let visualizationBundles = [];
+ let visualizationPackageOrder = [];
// name `heliumBundles` should be same as `HeliumBundleFactory.HELIUM_BUNDLES_VAR`
- let heliumBundles = []
+ let heliumBundles = [];
// map for `{ magic: interpreter }`
- let spellPerMagic = {}
+ let spellPerMagic = {};
// map for `{ magic: package-name }`
- let pkgNamePerMagic = {}
+ let pkgNamePerMagic = {};
/**
* @param magic {string} e.g `%flowchart`
* @returns {SpellBase} undefined if magic is not registered
*/
- this.getSpellByMagic = function (magic) {
- return spellPerMagic[magic]
- }
+ this.getSpellByMagic = function(magic) {
+ return spellPerMagic[magic];
+ };
- this.executeSpell = function (magic, textWithoutMagic) {
+ this.executeSpell = function(magic, textWithoutMagic) {
const promisedConf = this.getSinglePackageConfigUsingMagic(magic)
- .then(confs => createPersistableConfig(confs))
+ .then((confs) => createPersistableConfig(confs));
- return promisedConf.then(conf => {
- const spell = this.getSpellByMagic(magic)
- const spellResult = spell.interpret(textWithoutMagic, conf)
+ return promisedConf.then((conf) => {
+ const spell = this.getSpellByMagic(magic);
+ const spellResult = spell.interpret(textWithoutMagic, conf);
const parsed = spellResult.getAllParsedDataWithTypes(
- spellPerMagic, magic, textWithoutMagic)
+ spellPerMagic, magic, textWithoutMagic);
- return parsed
- })
- }
+ return parsed;
+ });
+ };
- this.executeSpellAsDisplaySystem = function (magic, textWithoutMagic) {
+ this.executeSpellAsDisplaySystem = function(magic, textWithoutMagic) {
const promisedConf = this.getSinglePackageConfigUsingMagic(magic)
- .then(confs => createPersistableConfig(confs))
+ .then((confs) => createPersistableConfig(confs));
- return promisedConf.then(conf => {
- const spell = this.getSpellByMagic(magic)
- const spellResult = spell.interpret(textWithoutMagic.trim(), conf)
- const parsed = spellResult.getAllParsedDataWithTypes(spellPerMagic)
+ return promisedConf.then((conf) => {
+ const spell = this.getSpellByMagic(magic);
+ const spellResult = spell.interpret(textWithoutMagic.trim(), conf);
+ const parsed = spellResult.getAllParsedDataWithTypes(spellPerMagic);
- return parsed
- })
- }
+ return parsed;
+ });
+ };
- this.getVisualizationCachedPackages = function () {
- return visualizationBundles
- }
+ this.getVisualizationCachedPackages = function() {
+ return visualizationBundles;
+ };
- this.getVisualizationCachedPackageOrder = function () {
- return visualizationPackageOrder
- }
+ this.getVisualizationCachedPackageOrder = function() {
+ return visualizationPackageOrder;
+ };
/**
* @returns {Promise} which returns bundleOrder and cache it in `visualizationPackageOrder`
*/
- this.getVisualizationPackageOrder = function () {
+ this.getVisualizationPackageOrder = function() {
return $http.get(baseUrlSrv.getRestApiBase() + '/helium/order/visualization')
- .then(function (response, status) {
- const order = response.data.body
- visualizationPackageOrder = order
- return order
- })
- .catch(function (error) {
- console.error('Can not get bundle order', error)
+ .then(function(response, status) {
+ const order = response.data.body;
+ visualizationPackageOrder = order;
+ return order;
})
- }
+ .catch(function(error) {
+ console.error('Can not get bundle order', error);
+ });
+ };
- this.setVisualizationPackageOrder = function (list) {
- return $http.post(baseUrlSrv.getRestApiBase() + '/helium/order/visualization', list)
- }
+ this.setVisualizationPackageOrder = function(list) {
+ return $http.post(baseUrlSrv.getRestApiBase() + '/helium/order/visualization', list);
+ };
- this.enable = function (name, artifact) {
- return $http.post(baseUrlSrv.getRestApiBase() + '/helium/enable/' + name, artifact)
- }
+ this.enable = function(name, artifact) {
+ return $http.post(baseUrlSrv.getRestApiBase() + '/helium/enable/' + name, artifact);
+ };
- this.disable = function (name) {
- return $http.post(baseUrlSrv.getRestApiBase() + '/helium/disable/' + name)
- }
+ this.disable = function(name) {
+ return $http.post(baseUrlSrv.getRestApiBase() + '/helium/disable/' + name);
+ };
- this.saveConfig = function (pkg, defaultPackageConfig, closeConfigPanelCallback) {
+ this.saveConfig = function(pkg, defaultPackageConfig, closeConfigPanelCallback) {
// in case of local package, it will include `/`
- const pkgArtifact = encodeURIComponent(pkg.artifact)
- const pkgName = pkg.name
- const filtered = createPersistableConfig(defaultPackageConfig)
+ const pkgArtifact = encodeURIComponent(pkg.artifact);
+ const pkgName = pkg.name;
+ const filtered = createPersistableConfig(defaultPackageConfig);
if (!pkgName || !pkgArtifact || !filtered) {
console.error(
- `Can't save config for helium package '${pkgArtifact}'`, filtered)
- return
+ `Can't save config for helium package '${pkgArtifact}'`, filtered);
+ return;
}
- const url = `${baseUrlSrv.getRestApiBase()}/helium/config/${pkgName}/${pkgArtifact}`
+ const url = `${baseUrlSrv.getRestApiBase()}/helium/config/${pkgName}/${pkgArtifact}`;
return $http.post(url, filtered)
.then(() => {
- if (closeConfigPanelCallback) { closeConfigPanelCallback() }
+ if (closeConfigPanelCallback) {
+ closeConfigPanelCallback();
+ }
}).catch((error) => {
- console.error(`Failed to save config for ${pkgArtifact}`, error)
- })
- }
+ console.error(`Failed to save config for ${pkgArtifact}`, error);
+ });
+ };
/**
* @returns {Promise<Object>} which including {name, Array<package info for artifact>}
*/
- this.getAllPackageInfo = function () {
+ this.getAllPackageInfo = function() {
return $http.get(`${baseUrlSrv.getRestApiBase()}/helium/package`)
- .then(function (response, status) {
- return response.data.body
- })
- .catch(function (error) {
- console.error('Failed to get all package infos', error)
+ .then(function(response, status) {
+ return response.data.body;
})
- }
+ .catch(function(error) {
+ console.error('Failed to get all package infos', error);
+ });
+ };
- this.getAllEnabledPackages = function () {
+ this.getAllEnabledPackages = function() {
return $http.get(`${baseUrlSrv.getRestApiBase()}/helium/enabledPackage`)
- .then(function (response, status) {
- return response.data.body
+ .then(function(response, status) {
+ return response.data.body;
})
- .catch(function (error) {
- console.error('Failed to get all enabled package infos', error)
- })
- }
+ .catch(function(error) {
+ console.error('Failed to get all enabled package infos', error);
+ });
+ };
- this.getSingleBundle = function (pkgName) {
- let url = `${baseUrlSrv.getRestApiBase()}/helium/bundle/load/${pkgName}`
+ this.getSingleBundle = function(pkgName) {
+ let url = `${baseUrlSrv.getRestApiBase()}/helium/bundle/load/${pkgName}`;
if (process.env.HELIUM_BUNDLE_DEV) {
- url = url + '?refresh=true'
+ url = url + '?refresh=true';
}
return $http.get(url)
- .then(function (response, status) {
- const bundle = response.data
+ .then(function(response, status) {
+ const bundle = response.data;
if (bundle.substring(0, 'ERROR:'.length) === 'ERROR:') {
- console.error(`Failed to get bundle: ${pkgName}`, bundle)
- return '' // empty bundle will be filtered later
+ console.error(`Failed to get bundle: ${pkgName}`, bundle);
+ return ''; // empty bundle will be filtered later
}
- return bundle
- })
- .catch(function (error) {
- console.error(`Failed to get single bundle: ${pkgName}`, error)
+ return bundle;
})
- }
+ .catch(function(error) {
+ console.error(`Failed to get single bundle: ${pkgName}`, error);
+ });
+ };
- this.getDefaultPackages = function () {
+ this.getDefaultPackages = function() {
return this.getAllPackageInfo()
- .then(pkgSearchResults => {
- return createDefaultPackages(pkgSearchResults, $sce)
- })
- }
+ .then((pkgSearchResults) => {
+ return createDefaultPackages(pkgSearchResults, $sce);
+ });
+ };
- this.getAllPackageInfoAndDefaultPackages = function () {
+ this.getAllPackageInfoAndDefaultPackages = function() {
return this.getAllPackageInfo()
- .then(pkgSearchResults => {
+ .then((pkgSearchResults) => {
return {
pkgSearchResults: pkgSearchResults,
defaultPackages: createDefaultPackages(pkgSearchResults, $sce),
- }
- })
- }
+ };
+ });
+ };
/**
* get all package configs.
* @return { Promise<{name, Array<Object>}> }
*/
- this.getAllPackageConfigs = function () {
- const promisedDefaultPackages = this.getDefaultPackages()
+ this.getAllPackageConfigs = function() {
+ const promisedDefaultPackages = this.getDefaultPackages();
const promisedPersistedConfs =
$http.get(`${baseUrlSrv.getRestApiBase()}/helium/config`)
- .then(function (response, status) {
- return response.data.body
- })
+ .then(function(response, status) {
+ return response.data.body;
+ });
return Promise.all([promisedDefaultPackages, promisedPersistedConfs])
- .then(values => {
- const defaultPackages = values[0]
- const persistedConfs = values[1]
+ .then((values) => {
+ const defaultPackages = values[0];
+ const persistedConfs = values[1];
- return createAllPackageConfigs(defaultPackages, persistedConfs)
- })
- .catch(function (error) {
- console.error('Failed to get all package configs', error)
+ return createAllPackageConfigs(defaultPackages, persistedConfs);
})
- }
+ .catch(function(error) {
+ console.error('Failed to get all package configs', error);
+ });
+ };
/**
* get the package config which is persisted in server.
* @return { Promise<Array<Object>> }
*/
- this.getSinglePackageConfigs = function (pkg) {
- const pkgName = pkg.name
+ this.getSinglePackageConfigs = function(pkg) {
+ const pkgName = pkg.name;
// in case of local package, it will include `/`
- const pkgArtifact = encodeURIComponent(pkg.artifact)
+ const pkgArtifact = encodeURIComponent(pkg.artifact);
if (!pkgName || !pkgArtifact) {
- console.error('Failed to fetch config for\n', pkg)
- return Promise.resolve([])
+ console.error('Failed to fetch config for\n', pkg);
+ return Promise.resolve([]);
}
- const confUrl = `${baseUrlSrv.getRestApiBase()}/helium/config/${pkgName}/${pkgArtifact}`
+ const confUrl = `${baseUrlSrv.getRestApiBase()}/helium/config/${pkgName}/${pkgArtifact}`;
const promisedConf = $http.get(confUrl)
- .then(function (response, status) {
- return response.data.body
- })
+ .then(function(response, status) {
+ return response.data.body;
+ });
return promisedConf.then(({confSpec, confPersisted}) => {
- const merged = mergePersistedConfWithSpec(confPersisted, confSpec)
- return merged
- })
- }
+ const merged = mergePersistedConfWithSpec(confPersisted, confSpec);
+ return merged;
+ });
+ };
- this.getSinglePackageConfigUsingMagic = function (magic) {
- const pkgName = pkgNamePerMagic[magic]
+ this.getSinglePackageConfigUsingMagic = function(magic) {
+ const pkgName = pkgNamePerMagic[magic];
- const confUrl = `${baseUrlSrv.getRestApiBase()}/helium/spell/config/${pkgName}`
+ const confUrl = `${baseUrlSrv.getRestApiBase()}/helium/spell/config/${pkgName}`;
const promisedConf = $http.get(confUrl)
- .then(function (response, status) {
- return response.data.body
- })
+ .then(function(response, status) {
+ return response.data.body;
+ });
return promisedConf.then(({confSpec, confPersisted}) => {
- const merged = mergePersistedConfWithSpec(confPersisted, confSpec)
- return merged
- })
- }
+ const merged = mergePersistedConfWithSpec(confPersisted, confSpec);
+ return merged;
+ });
+ };
const p = this.getAllEnabledPackages()
- .then(enabledPackageSearchResults => {
- const promises = enabledPackageSearchResults.map(packageSearchResult => {
- const pkgName = packageSearchResult.pkg.name
- return this.getSingleBundle(pkgName)
- })
+ .then((enabledPackageSearchResults) => {
+ const promises = enabledPackageSearchResults.map((packageSearchResult) => {
+ const pkgName = packageSearchResult.pkg.name;
+ return this.getSingleBundle(pkgName);
+ });
- return Promise.all(promises)
+ return Promise.all(promises);
})
- .then(bundles => {
+ .then((bundles) => {
return bundles.reduce((acc, b) => {
// filter out empty bundle
- if (b === '') { return acc }
- acc.push(b)
- return acc
- }, [])
- })
+ if (b === '') {
+ return acc;
+ }
+ acc.push(b);
+ return acc;
+ }, []);
+ });
// load should be promise
- this.load = p.then(availableBundles => {
+ this.load = p.then((availableBundles) => {
// evaluate bundles
- availableBundles.map(b => {
+ availableBundles.map((b) => {
// eslint-disable-next-line no-eval
- eval(b)
- })
+ eval(b);
+ });
// extract bundles by type
- heliumBundles.map(b => {
+ heliumBundles.map((b) => {
if (b.type === HeliumType.SPELL) {
- const spell = new b.class() // eslint-disable-line new-cap
- const pkgName = b.id
- spellPerMagic[spell.getMagic()] = spell
- pkgNamePerMagic[spell.getMagic()] = pkgName
+ const spell = new b.class(); // eslint-disable-line new-cap
+ const pkgName = b.id;
+ spellPerMagic[spell.getMagic()] = spell;
+ pkgNamePerMagic[spell.getMagic()] = pkgName;
} else if (b.type === HeliumType.VISUALIZATION) {
- visualizationBundles.push(b)
+ visualizationBundles.push(b);
}
- })
- })
+ });
+ });
this.init = function() {
- this.getVisualizationPackageOrder()
- }
+ this.getVisualizationPackageOrder();
+ };
// init
- this.init()
+ this.init();
}
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/ea2c9447/zeppelin-web/src/app/helium/index.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/helium/index.js b/zeppelin-web/src/app/helium/index.js
index 2b27d60..754c949 100644
--- a/zeppelin-web/src/app/helium/index.js
+++ b/zeppelin-web/src/app/helium/index.js
@@ -12,7 +12,7 @@
* limitations under the License.
*/
-import HeliumController from './helium.controller'
+import HeliumController from './helium.controller';
angular.module('zeppelinWebApp')
- .controller('HeliumCtrl', HeliumController)
+ .controller('HeliumCtrl', HeliumController);
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/ea2c9447/zeppelin-web/src/app/home/home.controller.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/home/home.controller.js b/zeppelin-web/src/app/home/home.controller.js
index d2823dd..7ae5e44 100644
--- a/zeppelin-web/src/app/home/home.controller.js
+++ b/zeppelin-web/src/app/home/home.controller.js
@@ -12,145 +12,145 @@
* limitations under the License.
*/
-angular.module('zeppelinWebApp').controller('HomeCtrl', HomeCtrl)
+angular.module('zeppelinWebApp').controller('HomeCtrl', HomeCtrl);
-function HomeCtrl ($scope, noteListFactory, websocketMsgSrv, $rootScope, arrayOrderingSrv,
+function HomeCtrl($scope, noteListFactory, websocketMsgSrv, $rootScope, arrayOrderingSrv,
ngToast, noteActionService, TRASH_FOLDER_ID) {
- 'ngInject'
-
- ngToast.dismiss()
- let vm = this
- vm.notes = noteListFactory
- vm.websocketMsgSrv = websocketMsgSrv
- vm.arrayOrderingSrv = arrayOrderingSrv
- vm.noteActionService = noteActionService
- vm.numberOfNotesDisplayed = window.innerHeight / 20
-
- vm.notebookHome = false
- vm.noteCustomHome = true
+ 'ngInject';
+
+ ngToast.dismiss();
+ let vm = this;
+ vm.notes = noteListFactory;
+ vm.websocketMsgSrv = websocketMsgSrv;
+ vm.arrayOrderingSrv = arrayOrderingSrv;
+ vm.noteActionService = noteActionService;
+ vm.numberOfNotesDisplayed = window.innerHeight / 20;
+
+ vm.notebookHome = false;
+ vm.noteCustomHome = true;
if ($rootScope.ticket !== undefined) {
- vm.staticHome = false
+ vm.staticHome = false;
} else {
- vm.staticHome = true
+ vm.staticHome = true;
}
- $scope.isReloading = false
- $scope.TRASH_FOLDER_ID = TRASH_FOLDER_ID
- $scope.query = {q: ''}
+ $scope.isReloading = false;
+ $scope.TRASH_FOLDER_ID = TRASH_FOLDER_ID;
+ $scope.query = {q: ''};
- $scope.initHome = function () {
- websocketMsgSrv.getHomeNote()
- vm.noteCustomHome = false
- }
+ $scope.initHome = function() {
+ websocketMsgSrv.getHomeNote();
+ vm.noteCustomHome = false;
+ };
- $scope.reloadNoteList = function () {
- websocketMsgSrv.reloadAllNotesFromRepo()
- $scope.isReloadingNotes = true
- }
+ $scope.reloadNoteList = function() {
+ websocketMsgSrv.reloadAllNotesFromRepo();
+ $scope.isReloadingNotes = true;
+ };
- $scope.toggleFolderNode = function (node) {
- node.hidden = !node.hidden
- }
+ $scope.toggleFolderNode = function(node) {
+ node.hidden = !node.hidden;
+ };
- angular.element('#loginModal').on('hidden.bs.modal', function (e) {
- $rootScope.$broadcast('initLoginValues')
- })
+ angular.element('#loginModal').on('hidden.bs.modal', function(e) {
+ $rootScope.$broadcast('initLoginValues');
+ });
/*
** $scope.$on functions below
*/
- $scope.$on('setNoteMenu', function (event, notes) {
- $scope.isReloadingNotes = false
- })
+ $scope.$on('setNoteMenu', function(event, notes) {
+ $scope.isReloadingNotes = false;
+ });
- $scope.$on('setNoteContent', function (event, note) {
+ $scope.$on('setNoteContent', function(event, note) {
if (vm.noteCustomHome) {
- return
+ return;
}
if (note) {
- vm.note = note
+ vm.note = note;
// initialize look And Feel
- $rootScope.$broadcast('setLookAndFeel', 'home')
+ $rootScope.$broadcast('setLookAndFeel', 'home');
// make it read only
- vm.viewOnly = true
+ vm.viewOnly = true;
- vm.notebookHome = true
- vm.staticHome = false
+ vm.notebookHome = true;
+ vm.staticHome = false;
} else {
- vm.staticHome = true
- vm.notebookHome = false
+ vm.staticHome = true;
+ vm.notebookHome = false;
}
- })
+ });
- $scope.loadMoreNotes = function () {
- vm.numberOfNotesDisplayed += 10
- }
+ $scope.loadMoreNotes = function() {
+ vm.numberOfNotesDisplayed += 10;
+ };
- $scope.renameNote = function (nodeId, nodePath) {
- vm.noteActionService.renameNote(nodeId, nodePath)
- }
+ $scope.renameNote = function(nodeId, nodePath) {
+ vm.noteActionService.renameNote(nodeId, nodePath);
+ };
- $scope.moveNoteToTrash = function (noteId) {
- vm.noteActionService.moveNoteToTrash(noteId, false)
- }
+ $scope.moveNoteToTrash = function(noteId) {
+ vm.noteActionService.moveNoteToTrash(noteId, false);
+ };
- $scope.moveFolderToTrash = function (folderId) {
- vm.noteActionService.moveFolderToTrash(folderId)
- }
+ $scope.moveFolderToTrash = function(folderId) {
+ vm.noteActionService.moveFolderToTrash(folderId);
+ };
- $scope.restoreNote = function (noteId) {
- websocketMsgSrv.restoreNote(noteId)
- }
+ $scope.restoreNote = function(noteId) {
+ websocketMsgSrv.restoreNote(noteId);
+ };
- $scope.restoreFolder = function (folderId) {
- websocketMsgSrv.restoreFolder(folderId)
- }
+ $scope.restoreFolder = function(folderId) {
+ websocketMsgSrv.restoreFolder(folderId);
+ };
- $scope.restoreAll = function () {
- vm.noteActionService.restoreAll()
- }
+ $scope.restoreAll = function() {
+ vm.noteActionService.restoreAll();
+ };
- $scope.renameFolder = function (node) {
- vm.noteActionService.renameFolder(node.id)
- }
+ $scope.renameFolder = function(node) {
+ vm.noteActionService.renameFolder(node.id);
+ };
- $scope.removeNote = function (noteId) {
- vm.noteActionService.removeNote(noteId, false)
- }
+ $scope.removeNote = function(noteId) {
+ vm.noteActionService.removeNote(noteId, false);
+ };
- $scope.removeFolder = function (folderId) {
- vm.noteActionService.removeFolder(folderId)
- }
+ $scope.removeFolder = function(folderId) {
+ vm.noteActionService.removeFolder(folderId);
+ };
- $scope.emptyTrash = function () {
- vm.noteActionService.emptyTrash()
- }
+ $scope.emptyTrash = function() {
+ vm.noteActionService.emptyTrash();
+ };
- $scope.clearAllParagraphOutput = function (noteId) {
- vm.noteActionService.clearAllParagraphOutput(noteId)
- }
+ $scope.clearAllParagraphOutput = function(noteId) {
+ vm.noteActionService.clearAllParagraphOutput(noteId);
+ };
- $scope.isFilterNote = function (note) {
+ $scope.isFilterNote = function(note) {
if (!$scope.query.q) {
- return true
+ return true;
}
- let noteName = note.name
+ let noteName = note.name;
if (noteName.toLowerCase().indexOf($scope.query.q.toLowerCase()) > -1) {
- return true
+ return true;
}
- return false
- }
+ return false;
+ };
- $scope.getNoteName = function (note) {
- return arrayOrderingSrv.getNoteName(note)
- }
+ $scope.getNoteName = function(note) {
+ return arrayOrderingSrv.getNoteName(note);
+ };
- $scope.noteComparator = function (note1, note2) {
- return arrayOrderingSrv.noteComparator(note1, note2)
- }
+ $scope.noteComparator = function(note1, note2) {
+ return arrayOrderingSrv.noteComparator(note1, note2);
+ };
}
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/ea2c9447/zeppelin-web/src/app/interpreter/interpreter-item.directive.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/interpreter/interpreter-item.directive.js b/zeppelin-web/src/app/interpreter/interpreter-item.directive.js
index 4bde44d..cfb109a 100644
--- a/zeppelin-web/src/app/interpreter/interpreter-item.directive.js
+++ b/zeppelin-web/src/app/interpreter/interpreter-item.directive.js
@@ -12,20 +12,20 @@
* limitations under the License.
*/
-angular.module('zeppelinWebApp').directive('interpreterItem', InterpreterItemDirective)
+angular.module('zeppelinWebApp').directive('interpreterItem', InterpreterItemDirective);
-function InterpreterItemDirective ($timeout) {
- 'ngInject'
+function InterpreterItemDirective($timeout) {
+ 'ngInject';
return {
restrict: 'A',
- link: function (scope, element, attr) {
+ link: function(scope, element, attr) {
if (scope.$last === true) {
- $timeout(function () {
- let id = 'ngRenderFinished'
- scope.$emit(id)
- })
+ $timeout(function() {
+ let id = 'ngRenderFinished';
+ scope.$emit(id);
+ });
}
- }
- }
+ },
+ };
}
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/ea2c9447/zeppelin-web/src/app/interpreter/interpreter.controller.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/interpreter/interpreter.controller.js b/zeppelin-web/src/app/interpreter/interpreter.controller.js
index ef88402..060c6b6 100644
--- a/zeppelin-web/src/app/interpreter/interpreter.controller.js
+++ b/zeppelin-web/src/app/interpreter/interpreter.controller.js
@@ -12,548 +12,552 @@
* limitations under the License.
*/
-import { ParagraphStatus, } from '../notebook/paragraph/paragraph.status'
+import {ParagraphStatus} from '../notebook/paragraph/paragraph.status';
-angular.module('zeppelinWebApp').controller('InterpreterCtrl', InterpreterCtrl)
+angular.module('zeppelinWebApp').controller('InterpreterCtrl', InterpreterCtrl);
function InterpreterCtrl($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeout, $route) {
- 'ngInject'
-
- let interpreterSettingsTmp = []
- $scope.interpreterSettings = []
- $scope.availableInterpreters = {}
- $scope.showAddNewSetting = false
- $scope.showRepositoryInfo = false
- $scope.searchInterpreter = ''
- $scope._ = _
- $scope.interpreterPropertyTypes = []
- ngToast.dismiss()
-
- $scope.openPermissions = function () {
- $scope.showInterpreterAuth = true
- }
-
- $scope.closePermissions = function () {
- $scope.showInterpreterAuth = false
- }
-
- let getSelectJson = function () {
+ 'ngInject';
+
+ let interpreterSettingsTmp = [];
+ $scope.interpreterSettings = [];
+ $scope.availableInterpreters = {};
+ $scope.showAddNewSetting = false;
+ $scope.showRepositoryInfo = false;
+ $scope.searchInterpreter = '';
+ $scope._ = _;
+ $scope.interpreterPropertyTypes = [];
+ ngToast.dismiss();
+
+ $scope.openPermissions = function() {
+ $scope.showInterpreterAuth = true;
+ };
+
+ $scope.closePermissions = function() {
+ $scope.showInterpreterAuth = false;
+ };
+
+ let getSelectJson = function() {
let selectJson = {
tags: true,
minimumInputLength: 3,
multiple: true,
tokenSeparators: [',', ' '],
ajax: {
- url: function (params) {
+ url: function(params) {
if (!params.term) {
- return false
+ return false;
}
- return baseUrlSrv.getRestApiBase() + '/security/userlist/' + params.term
+ return baseUrlSrv.getRestApiBase() + '/security/userlist/' + params.term;
},
delay: 250,
- processResults: function (data, params) {
- let results = []
+ processResults: function(data, params) {
+ let results = [];
if (data.body.users.length !== 0) {
- let users = []
+ let users = [];
for (let len = 0; len < data.body.users.length; len++) {
users.push({
'id': data.body.users[len],
- 'text': data.body.users[len]
- })
+ 'text': data.body.users[len],
+ });
}
results.push({
'text': 'Users :',
- 'children': users
- })
+ 'children': users,
+ });
}
if (data.body.roles.length !== 0) {
- let roles = []
+ let roles = [];
for (let len = 0; len < data.body.roles.length; len++) {
roles.push({
'id': data.body.roles[len],
- 'text': data.body.roles[len]
- })
+ 'text': data.body.roles[len],
+ });
}
results.push({
'text': 'Roles :',
- 'children': roles
- })
+ 'children': roles,
+ });
}
return {
results: results,
pagination: {
- more: false
- }
- }
+ more: false,
+ },
+ };
},
- cache: false
- }
- }
- return selectJson
- }
-
- $scope.togglePermissions = function (intpName) {
- angular.element('#' + intpName + 'Owners').select2(getSelectJson())
+ cache: false,
+ },
+ };
+ return selectJson;
+ };
+
+ $scope.togglePermissions = function(intpName) {
+ angular.element('#' + intpName + 'Owners').select2(getSelectJson());
if ($scope.showInterpreterAuth) {
- $scope.closePermissions()
+ $scope.closePermissions();
} else {
- $scope.openPermissions()
+ $scope.openPermissions();
}
- }
+ };
- $scope.$on('ngRenderFinished', function (event, data) {
+ $scope.$on('ngRenderFinished', function(event, data) {
for (let setting = 0; setting < $scope.interpreterSettings.length; setting++) {
- angular.element('#' + $scope.interpreterSettings[setting].name + 'Owners').select2(getSelectJson())
+ angular.element('#' + $scope.interpreterSettings[setting].name + 'Owners').select2(getSelectJson());
}
- })
+ });
- let getInterpreterSettings = function () {
+ let getInterpreterSettings = function() {
$http.get(baseUrlSrv.getRestApiBase() + '/interpreter/setting')
- .then(function (res) {
- $scope.interpreterSettings = res.data.body
- checkDownloadingDependencies()
- }).catch(function (res) {
+ .then(function(res) {
+ $scope.interpreterSettings = res.data.body;
+ checkDownloadingDependencies();
+ }).catch(function(res) {
if (res.status === 401) {
ngToast.danger({
content: 'You don\'t have permission on this page',
verticalPosition: 'bottom',
- timeout: '3000'
- })
- setTimeout(function () {
- window.location = baseUrlSrv.getBase()
- }, 3000)
+ timeout: '3000',
+ });
+ setTimeout(function() {
+ window.location = baseUrlSrv.getBase();
+ }, 3000);
}
- console.log('Error %o %o', res.status, res.data ? res.data.message : '')
- })
- }
+ console.log('Error %o %o', res.status, res.data ? res.data.message : '');
+ });
+ };
- const checkDownloadingDependencies = function () {
- let isDownloading = false
+ const checkDownloadingDependencies = function() {
+ let isDownloading = false;
for (let index = 0; index < $scope.interpreterSettings.length; index++) {
- let setting = $scope.interpreterSettings[index]
+ let setting = $scope.interpreterSettings[index];
if (setting.status === 'DOWNLOADING_DEPENDENCIES') {
- isDownloading = true
+ isDownloading = true;
}
if (setting.status === ParagraphStatus.ERROR || setting.errorReason) {
ngToast.danger({content: 'Error setting properties for interpreter \'' +
setting.group + '.' + setting.name + '\': ' + setting.errorReason,
verticalPosition: 'top',
- dismissOnTimeout: false
- })
+ dismissOnTimeout: false,
+ });
}
}
if (isDownloading) {
- $timeout(function () {
+ $timeout(function() {
if ($route.current.$$route.originalPath === '/interpreter') {
- getInterpreterSettings()
+ getInterpreterSettings();
}
- }, 2000)
+ }, 2000);
}
- }
+ };
- let getAvailableInterpreters = function () {
- $http.get(baseUrlSrv.getRestApiBase() + '/interpreter').then(function (res) {
- $scope.availableInterpreters = res.data.body
- }).catch(function (res) {
- console.log('Error %o %o', res.status, res.data ? res.data.message : '')
- })
- }
+ let getAvailableInterpreters = function() {
+ $http.get(baseUrlSrv.getRestApiBase() + '/interpreter').then(function(res) {
+ $scope.availableInterpreters = res.data.body;
+ }).catch(function(res) {
+ console.log('Error %o %o', res.status, res.data ? res.data.message : '');
+ });
+ };
- let getAvailableInterpreterPropertyWidgets = function () {
+ let getAvailableInterpreterPropertyWidgets = function() {
$http.get(baseUrlSrv.getRestApiBase() + '/interpreter/property/types')
- .then(function (res) {
- $scope.interpreterPropertyTypes = res.data.body
- }).catch(function (res) {
- console.log('Error %o %o', res.status, res.data ? res.data.message : '')
- })
- }
+ .then(function(res) {
+ $scope.interpreterPropertyTypes = res.data.body;
+ }).catch(function(res) {
+ console.log('Error %o %o', res.status, res.data ? res.data.message : '');
+ });
+ };
let emptyNewProperty = function(object) {
- angular.extend(object, {propertyValue: '', propertyKey: '', propertyType: $scope.interpreterPropertyTypes[0]})
- }
+ angular.extend(object, {propertyValue: '', propertyKey: '', propertyType: $scope.interpreterPropertyTypes[0]});
+ };
- let emptyNewDependency = function (object) {
- angular.extend(object, {depArtifact: '', depExclude: ''})
- }
+ let emptyNewDependency = function(object) {
+ angular.extend(object, {depArtifact: '', depExclude: ''});
+ };
- let removeTMPSettings = function (index) {
- interpreterSettingsTmp.splice(index, 1)
- }
+ let removeTMPSettings = function(index) {
+ interpreterSettingsTmp.splice(index, 1);
+ };
- $scope.copyOriginInterpreterSettingProperties = function (settingId) {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- interpreterSettingsTmp[index] = angular.copy($scope.interpreterSettings[index])
- }
+ $scope.copyOriginInterpreterSettingProperties = function(settingId) {
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ interpreterSettingsTmp[index] = angular.copy($scope.interpreterSettings[index]);
+ };
- $scope.setPerNoteOption = function (settingId, sessionOption) {
- let option
+ $scope.setPerNoteOption = function(settingId, sessionOption) {
+ let option;
if (settingId === undefined) {
- option = $scope.newInterpreterSetting.option
+ option = $scope.newInterpreterSetting.option;
} else {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- let setting = $scope.interpreterSettings[index]
- option = setting.option
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ let setting = $scope.interpreterSettings[index];
+ option = setting.option;
}
if (sessionOption === 'isolated') {
- option.perNote = sessionOption
- option.session = false
- option.process = true
+ option.perNote = sessionOption;
+ option.session = false;
+ option.process = true;
} else if (sessionOption === 'scoped') {
- option.perNote = sessionOption
- option.session = true
- option.process = false
+ option.perNote = sessionOption;
+ option.session = true;
+ option.process = false;
} else {
- option.perNote = 'shared'
- option.session = false
- option.process = false
+ option.perNote = 'shared';
+ option.session = false;
+ option.process = false;
}
- }
+ };
- $scope.defaultValueByType = function (setting) {
+ $scope.defaultValueByType = function(setting) {
if (setting.propertyType === 'checkbox') {
- setting.propertyValue = false
- return
+ setting.propertyValue = false;
+ return;
}
- setting.propertyValue = ''
- }
+ setting.propertyValue = '';
+ };
- $scope.setPerUserOption = function (settingId, sessionOption) {
- let option
+ $scope.setPerUserOption = function(settingId, sessionOption) {
+ let option;
if (settingId === undefined) {
- option = $scope.newInterpreterSetting.option
+ option = $scope.newInterpreterSetting.option;
} else {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- let setting = $scope.interpreterSettings[index]
- option = setting.option
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ let setting = $scope.interpreterSettings[index];
+ option = setting.option;
}
if (sessionOption === 'isolated') {
- option.perUser = sessionOption
- option.session = false
- option.process = true
+ option.perUser = sessionOption;
+ option.session = false;
+ option.process = true;
} else if (sessionOption === 'scoped') {
- option.perUser = sessionOption
- option.session = true
- option.process = false
+ option.perUser = sessionOption;
+ option.session = true;
+ option.process = false;
} else {
- option.perUser = 'shared'
- option.session = false
- option.process = false
+ option.perUser = 'shared';
+ option.session = false;
+ option.process = false;
}
- }
+ };
- $scope.getPerNoteOption = function (settingId) {
- let option
+ $scope.getPerNoteOption = function(settingId) {
+ let option;
if (settingId === undefined) {
- option = $scope.newInterpreterSetting.option
+ option = $scope.newInterpreterSetting.option;
} else {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- let setting = $scope.interpreterSettings[index]
- option = setting.option
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ let setting = $scope.interpreterSettings[index];
+ option = setting.option;
}
if (option.perNote === 'scoped') {
- return 'scoped'
+ return 'scoped';
} else if (option.perNote === 'isolated') {
- return 'isolated'
+ return 'isolated';
} else {
- return 'shared'
+ return 'shared';
}
- }
+ };
- $scope.getPerUserOption = function (settingId) {
- let option
+ $scope.getPerUserOption = function(settingId) {
+ let option;
if (settingId === undefined) {
- option = $scope.newInterpreterSetting.option
+ option = $scope.newInterpreterSetting.option;
} else {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- let setting = $scope.interpreterSettings[index]
- option = setting.option
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ let setting = $scope.interpreterSettings[index];
+ option = setting.option;
}
if (option.perUser === 'scoped') {
- return 'scoped'
+ return 'scoped';
} else if (option.perUser === 'isolated') {
- return 'isolated'
+ return 'isolated';
} else {
- return 'shared'
+ return 'shared';
}
- }
+ };
- $scope.getInterpreterRunningOption = function (settingId) {
- let sharedModeName = 'shared'
+ $scope.getInterpreterRunningOption = function(settingId) {
+ let sharedModeName = 'shared';
- let globallyModeName = 'Globally'
- let perNoteModeName = 'Per Note'
- let perUserModeName = 'Per User'
+ let globallyModeName = 'Globally';
+ let perNoteModeName = 'Per Note';
+ let perUserModeName = 'Per User';
- let option
+ let option;
if (settingId === undefined) {
- option = $scope.newInterpreterSetting.option
+ option = $scope.newInterpreterSetting.option;
} else {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- let setting = $scope.interpreterSettings[index]
- option = setting.option
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ let setting = $scope.interpreterSettings[index];
+ option = setting.option;
}
- let perNote = option.perNote
- let perUser = option.perUser
+ let perNote = option.perNote;
+ let perUser = option.perUser;
// Globally == shared_perNote + shared_perUser
if (perNote === sharedModeName && perUser === sharedModeName) {
- return globallyModeName
+ return globallyModeName;
}
if ($rootScope.ticket.ticket === 'anonymous' && $rootScope.ticket.roles === '[]') {
if (perNote !== undefined && typeof perNote === 'string' && perNote !== '') {
- return perNoteModeName
+ return perNoteModeName;
}
} else if ($rootScope.ticket.ticket !== 'anonymous') {
if (perNote !== undefined && typeof perNote === 'string' && perNote !== '') {
if (perUser !== undefined && typeof perUser === 'string' && perUser !== '') {
- return perUserModeName
+ return perUserModeName;
}
- return perNoteModeName
+ return perNoteModeName;
}
}
- option.perNote = sharedModeName
- option.perUser = sharedModeName
- return globallyModeName
- }
+ option.perNote = sharedModeName;
+ option.perUser = sharedModeName;
+ return globallyModeName;
+ };
- $scope.setInterpreterRunningOption = function (settingId, isPerNoteMode, isPerUserMode) {
- let option
+ $scope.setInterpreterRunningOption = function(settingId, isPerNoteMode, isPerUserMode) {
+ let option;
if (settingId === undefined) {
- option = $scope.newInterpreterSetting.option
+ option = $scope.newInterpreterSetting.option;
} else {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- let setting = $scope.interpreterSettings[index]
- option = setting.option
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ let setting = $scope.interpreterSettings[index];
+ option = setting.option;
}
- option.perNote = isPerNoteMode
- option.perUser = isPerUserMode
- }
+ option.perNote = isPerNoteMode;
+ option.perUser = isPerUserMode;
+ };
- $scope.updateInterpreterSetting = function (form, settingId) {
+ $scope.updateInterpreterSetting = function(form, settingId) {
const thisConfirm = BootstrapDialog.confirm({
closable: false,
closeByBackdrop: false,
closeByKeyboard: false,
title: '',
message: 'Do you want to update this interpreter and restart with new settings?',
- callback: function (result) {
+ callback: function(result) {
if (result) {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- let setting = $scope.interpreterSettings[index]
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ let setting = $scope.interpreterSettings[index];
if (setting.propertyKey !== '' || setting.propertyKey) {
- $scope.addNewInterpreterProperty(settingId)
+ $scope.addNewInterpreterProperty(settingId);
}
if (setting.depArtifact !== '' || setting.depArtifact) {
- $scope.addNewInterpreterDependency(settingId)
+ $scope.addNewInterpreterDependency(settingId);
}
// add missing field of option
if (!setting.option) {
- setting.option = {}
+ setting.option = {};
}
if (setting.option.isExistingProcess === undefined) {
- setting.option.isExistingProcess = false
+ setting.option.isExistingProcess = false;
}
if (setting.option.setPermission === undefined) {
- setting.option.setPermission = false
+ setting.option.setPermission = false;
}
if (setting.option.isUserImpersonate === undefined) {
- setting.option.isUserImpersonate = false
+ setting.option.isUserImpersonate = false;
}
if (!($scope.getInterpreterRunningOption(settingId) === 'Per User' &&
$scope.getPerUserOption(settingId) === 'isolated')) {
- setting.option.isUserImpersonate = false
+ setting.option.isUserImpersonate = false;
}
if (setting.option.remote === undefined) {
// remote always true for now
- setting.option.remote = true
+ setting.option.remote = true;
}
- setting.option.owners = angular.element('#' + setting.name + 'Owners').val()
+ setting.option.owners = angular.element('#' + setting.name + 'Owners').val();
let request = {
option: angular.copy(setting.option),
properties: angular.copy(setting.properties),
- dependencies: angular.copy(setting.dependencies)
- }
+ dependencies: angular.copy(setting.dependencies),
+ };
- thisConfirm.$modalFooter.find('button').addClass('disabled')
+ thisConfirm.$modalFooter.find('button').addClass('disabled');
thisConfirm.$modalFooter.find('button:contains("OK")')
- .html('<i class="fa fa-circle-o-notch fa-spin"></i> Saving Setting')
+ .html('<i class="fa fa-circle-o-notch fa-spin"></i> Saving Setting');
$http.put(baseUrlSrv.getRestApiBase() + '/interpreter/setting/' + settingId, request)
- .then(function (res) {
- $scope.interpreterSettings[index] = res.data.body
- removeTMPSettings(index)
- checkDownloadingDependencies()
- thisConfirm.close()
- })
- .catch(function (res) {
- const message = res.data ? res.data.message : 'Could not connect to server.'
- console.log('Error %o %o', res.status, message)
- ngToast.danger({content: message, verticalPosition: 'bottom'})
- form.$show()
- thisConfirm.close()
+ .then(function(res) {
+ $scope.interpreterSettings[index] = res.data.body;
+ removeTMPSettings(index);
+ checkDownloadingDependencies();
+ thisConfirm.close();
})
- return false
+ .catch(function(res) {
+ const message = res.data ? res.data.message : 'Could not connect to server.';
+ console.log('Error %o %o', res.status, message);
+ ngToast.danger({content: message, verticalPosition: 'bottom'});
+ form.$show();
+ thisConfirm.close();
+ });
+ return false;
} else {
- form.$show()
+ form.$show();
}
- }
- })
- }
+ },
+ });
+ };
- $scope.resetInterpreterSetting = function (settingId) {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
+ $scope.resetInterpreterSetting = function(settingId) {
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
// Set the old settings back
- $scope.interpreterSettings[index] = angular.copy(interpreterSettingsTmp[index])
- removeTMPSettings(index)
- }
+ $scope.interpreterSettings[index] = angular.copy(interpreterSettingsTmp[index]);
+ removeTMPSettings(index);
+ };
- $scope.removeInterpreterSetting = function (settingId) {
+ $scope.removeInterpreterSetting = function(settingId) {
BootstrapDialog.confirm({
closable: true,
title: '',
message: 'Do you want to delete this interpreter setting?',
- callback: function (result) {
+ callback: function(result) {
if (result) {
$http.delete(baseUrlSrv.getRestApiBase() + '/interpreter/setting/' + settingId)
- .then(function (res) {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- $scope.interpreterSettings.splice(index, 1)
- }).catch(function (res) {
- console.log('Error %o %o', res.status, res.data ? res.data.message : '')
- })
+ .then(function(res) {
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ $scope.interpreterSettings.splice(index, 1);
+ }).catch(function(res) {
+ console.log('Error %o %o', res.status, res.data ? res.data.message : '');
+ });
}
- }
- })
- }
+ },
+ });
+ };
- $scope.newInterpreterGroupChange = function () {
+ $scope.newInterpreterGroupChange = function() {
let el = _.pluck(_.filter($scope.availableInterpreters, {'name': $scope.newInterpreterSetting.group}),
- 'properties')
- let properties = {}
+ 'properties');
+ let properties = {};
for (let i = 0; i < el.length; i++) {
- let intpInfo = el[i]
+ let intpInfo = el[i];
for (let key in intpInfo) {
- properties[key] = {
- value: intpInfo[key].defaultValue,
- description: intpInfo[key].description,
- type: intpInfo[key].type
+ if (intpInfo.hasOwnProperty(key)) {
+ properties[key] = {
+ value: intpInfo[key].defaultValue,
+ description: intpInfo[key].description,
+ type: intpInfo[key].type,
+ };
}
}
}
- $scope.newInterpreterSetting.properties = properties
- }
+ $scope.newInterpreterSetting.properties = properties;
+ };
- $scope.restartInterpreterSetting = function (settingId) {
+ $scope.restartInterpreterSetting = function(settingId) {
BootstrapDialog.confirm({
closable: true,
title: '',
message: 'Do you want to restart this interpreter?',
- callback: function (result) {
+ callback: function(result) {
if (result) {
$http.put(baseUrlSrv.getRestApiBase() + '/interpreter/setting/restart/' + settingId)
- .then(function (res) {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- $scope.interpreterSettings[index] = res.data.body
- ngToast.info('Interpreter stopped. Will be lazily started on next run.')
- }).catch(function (res) {
- let errorMsg = (res.data !== null) ? res.data.message : 'Could not connect to server.'
- console.log('Error %o %o', res.status, errorMsg)
- ngToast.danger(errorMsg)
- })
+ .then(function(res) {
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ $scope.interpreterSettings[index] = res.data.body;
+ ngToast.info('Interpreter stopped. Will be lazily started on next run.');
+ }).catch(function(res) {
+ let errorMsg = (res.data !== null) ? res.data.message : 'Could not connect to server.';
+ console.log('Error %o %o', res.status, errorMsg);
+ ngToast.danger(errorMsg);
+ });
}
- }
- })
- }
+ },
+ });
+ };
- $scope.addNewInterpreterSetting = function () {
+ $scope.addNewInterpreterSetting = function() {
// user input validation on interpreter creation
if (!$scope.newInterpreterSetting.name ||
!$scope.newInterpreterSetting.name.trim() || !$scope.newInterpreterSetting.group) {
BootstrapDialog.alert({
closable: true,
title: 'Add interpreter',
- message: 'Please fill in interpreter name and choose a group'
- })
- return
+ message: 'Please fill in interpreter name and choose a group',
+ });
+ return;
}
if ($scope.newInterpreterSetting.name.indexOf('.') >= 0) {
BootstrapDialog.alert({
closable: true,
title: 'Add interpreter',
- message: '\'.\' is invalid for interpreter name'
- })
- return
+ message: '\'.\' is invalid for interpreter name',
+ });
+ return;
}
if (_.findIndex($scope.interpreterSettings, {'name': $scope.newInterpreterSetting.name}) >= 0) {
BootstrapDialog.alert({
closable: true,
title: 'Add interpreter',
- message: 'Name ' + $scope.newInterpreterSetting.name + ' already exists'
- })
- return
+ message: 'Name ' + $scope.newInterpreterSetting.name + ' already exists',
+ });
+ return;
}
- let newSetting = $scope.newInterpreterSetting
+ let newSetting = $scope.newInterpreterSetting;
if (newSetting.propertyKey !== '' || newSetting.propertyKey) {
- $scope.addNewInterpreterProperty()
+ $scope.addNewInterpreterProperty();
}
if (newSetting.depArtifact !== '' || newSetting.depArtifact) {
- $scope.addNewInterpreterDependency()
+ $scope.addNewInterpreterDependency();
}
if (newSetting.option.setPermission === undefined) {
- newSetting.option.setPermission = false
+ newSetting.option.setPermission = false;
}
- newSetting.option.owners = angular.element('#newInterpreterOwners').val()
+ newSetting.option.owners = angular.element('#newInterpreterOwners').val();
- let request = angular.copy($scope.newInterpreterSetting)
+ let request = angular.copy($scope.newInterpreterSetting);
// Change properties to proper request format
- let newProperties = {}
+ let newProperties = {};
for (let p in newSetting.properties) {
- newProperties[p] = {
- value: newSetting.properties[p].value,
- type: newSetting.properties[p].type,
- name: p
+ if (newSetting.properties.hasOwnProperty(p)) {
+ newProperties[p] = {
+ value: newSetting.properties[p].value,
+ type: newSetting.properties[p].type,
+ name: p,
+ };
}
}
- request.properties = newProperties
+ request.properties = newProperties;
$http.post(baseUrlSrv.getRestApiBase() + '/interpreter/setting', request)
- .then(function (res) {
- $scope.resetNewInterpreterSetting()
- getInterpreterSettings()
- $scope.showAddNewSetting = false
- checkDownloadingDependencies()
- }).catch(function (res) {
- const errorMsg = res.data ? res.data.message : 'Could not connect to server.'
- console.log('Error %o %o', res.status, errorMsg)
- ngToast.danger({content: errorMsg, verticalPosition: 'bottom'})
- })
- }
-
- $scope.cancelInterpreterSetting = function () {
- $scope.showAddNewSetting = false
- $scope.resetNewInterpreterSetting()
- }
-
- $scope.resetNewInterpreterSetting = function () {
+ .then(function(res) {
+ $scope.resetNewInterpreterSetting();
+ getInterpreterSettings();
+ $scope.showAddNewSetting = false;
+ checkDownloadingDependencies();
+ }).catch(function(res) {
+ const errorMsg = res.data ? res.data.message : 'Could not connect to server.';
+ console.log('Error %o %o', res.status, errorMsg);
+ ngToast.danger({content: errorMsg, verticalPosition: 'bottom'});
+ });
+ };
+
+ $scope.cancelInterpreterSetting = function() {
+ $scope.showAddNewSetting = false;
+ $scope.resetNewInterpreterSetting();
+ };
+
+ $scope.resetNewInterpreterSetting = function() {
$scope.newInterpreterSetting = {
name: undefined,
group: undefined,
@@ -564,94 +568,94 @@ function InterpreterCtrl($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeou
isExistingProcess: false,
setPermission: false,
session: false,
- process: false
+ process: false,
- }
- }
- emptyNewProperty($scope.newInterpreterSetting)
- }
+ },
+ };
+ emptyNewProperty($scope.newInterpreterSetting);
+ };
- $scope.removeInterpreterProperty = function (key, settingId) {
+ $scope.removeInterpreterProperty = function(key, settingId) {
if (settingId === undefined) {
- delete $scope.newInterpreterSetting.properties[key]
+ delete $scope.newInterpreterSetting.properties[key];
} else {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- delete $scope.interpreterSettings[index].properties[key]
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ delete $scope.interpreterSettings[index].properties[key];
}
- }
+ };
- $scope.removeInterpreterDependency = function (artifact, settingId) {
+ $scope.removeInterpreterDependency = function(artifact, settingId) {
if (settingId === undefined) {
$scope.newInterpreterSetting.dependencies = _.reject($scope.newInterpreterSetting.dependencies,
- function (el) {
- return el.groupArtifactVersion === artifact
- })
+ function(el) {
+ return el.groupArtifactVersion === artifact;
+ });
} else {
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
$scope.interpreterSettings[index].dependencies = _.reject($scope.interpreterSettings[index].dependencies,
- function (el) {
- return el.groupArtifactVersion === artifact
- })
+ function(el) {
+ return el.groupArtifactVersion === artifact;
+ });
}
- }
+ };
- $scope.addNewInterpreterProperty = function (settingId) {
+ $scope.addNewInterpreterProperty = function(settingId) {
if (settingId === undefined) {
// Add new property from create form
if (!$scope.newInterpreterSetting.propertyKey || $scope.newInterpreterSetting.propertyKey === '') {
- return
+ return;
}
$scope.newInterpreterSetting.properties[$scope.newInterpreterSetting.propertyKey] = {
value: $scope.newInterpreterSetting.propertyValue,
- type: $scope.newInterpreterSetting.propertyType
- }
- emptyNewProperty($scope.newInterpreterSetting)
+ type: $scope.newInterpreterSetting.propertyType,
+ };
+ emptyNewProperty($scope.newInterpreterSetting);
} else {
// Add new property from edit form
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- let setting = $scope.interpreterSettings[index]
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ let setting = $scope.interpreterSettings[index];
if (!setting.propertyKey || setting.propertyKey === '') {
- return
+ return;
}
setting.properties[setting.propertyKey] =
- {value: setting.propertyValue, type: setting.propertyType}
+ {value: setting.propertyValue, type: setting.propertyType};
- emptyNewProperty(setting)
+ emptyNewProperty(setting);
}
- }
+ };
- $scope.addNewInterpreterDependency = function (settingId) {
+ $scope.addNewInterpreterDependency = function(settingId) {
if (settingId === undefined) {
// Add new dependency from create form
if (!$scope.newInterpreterSetting.depArtifact || $scope.newInterpreterSetting.depArtifact === '') {
- return
+ return;
}
// overwrite if artifact already exists
- let newSetting = $scope.newInterpreterSetting
+ let newSetting = $scope.newInterpreterSetting;
for (let d in newSetting.dependencies) {
if (newSetting.dependencies[d].groupArtifactVersion === newSetting.depArtifact) {
newSetting.dependencies[d] = {
'groupArtifactVersion': newSetting.depArtifact,
- 'exclusions': newSetting.depExclude
- }
- newSetting.dependencies.splice(d, 1)
+ 'exclusions': newSetting.depExclude,
+ };
+ newSetting.dependencies.splice(d, 1);
}
}
newSetting.dependencies.push({
'groupArtifactVersion': newSetting.depArtifact,
- 'exclusions': (newSetting.depExclude === '') ? [] : newSetting.depExclude
- })
- emptyNewDependency(newSetting)
+ 'exclusions': (newSetting.depExclude === '') ? [] : newSetting.depExclude,
+ });
+ emptyNewDependency(newSetting);
} else {
// Add new dependency from edit form
- let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
- let setting = $scope.interpreterSettings[index]
+ let index = _.findIndex($scope.interpreterSettings, {'id': settingId});
+ let setting = $scope.interpreterSettings[index];
if (!setting.depArtifact || setting.depArtifact === '') {
- return
+ return;
}
// overwrite if artifact already exists
@@ -659,21 +663,21 @@ function InterpreterCtrl($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeou
if (setting.dependencies[dep].groupArtifactVersion === setting.depArtifact) {
setting.dependencies[dep] = {
'groupArtifactVersion': setting.depArtifact,
- 'exclusions': setting.depExclude
- }
- setting.dependencies.splice(dep, 1)
+ 'exclusions': setting.depExclude,
+ };
+ setting.dependencies.splice(dep, 1);
}
}
setting.dependencies.push({
'groupArtifactVersion': setting.depArtifact,
- 'exclusions': (setting.depExclude === '') ? [] : setting.depExclude
- })
- emptyNewDependency(setting)
+ 'exclusions': (setting.depExclude === '') ? [] : setting.depExclude,
+ });
+ emptyNewDependency(setting);
}
- }
+ };
- $scope.resetNewRepositorySetting = function () {
+ $scope.resetNewRepositorySetting = function() {
$scope.newRepoSetting = {
id: '',
url: '',
@@ -684,102 +688,102 @@ function InterpreterCtrl($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeou
proxyHost: '',
proxyPort: null,
proxyLogin: '',
- proxyPassword: ''
- }
- }
+ proxyPassword: '',
+ };
+ };
- let getRepositories = function () {
+ let getRepositories = function() {
$http.get(baseUrlSrv.getRestApiBase() + '/interpreter/repository')
- .success(function (data, status, headers, config) {
- $scope.repositories = data.body
- }).error(function (data, status, headers, config) {
- console.log('Error %o %o', status, data.message)
- })
- }
+ .success(function(data, status, headers, config) {
+ $scope.repositories = data.body;
+ }).error(function(data, status, headers, config) {
+ console.log('Error %o %o', status, data.message);
+ });
+ };
- $scope.addNewRepository = function () {
- let request = angular.copy($scope.newRepoSetting)
+ $scope.addNewRepository = function() {
+ let request = angular.copy($scope.newRepoSetting);
$http.post(baseUrlSrv.getRestApiBase() + '/interpreter/repository', request)
- .then(function (res) {
- getRepositories()
- $scope.resetNewRepositorySetting()
- angular.element('#repoModal').modal('hide')
- }).catch(function (res) {
- console.log('Error %o %o', res.headers, res.config)
- })
- }
-
- $scope.removeRepository = function (repoId) {
+ .then(function(res) {
+ getRepositories();
+ $scope.resetNewRepositorySetting();
+ angular.element('#repoModal').modal('hide');
+ }).catch(function(res) {
+ console.log('Error %o %o', res.headers, res.config);
+ });
+ };
+
+ $scope.removeRepository = function(repoId) {
BootstrapDialog.confirm({
closable: true,
title: '',
message: 'Do you want to delete this repository?',
- callback: function (result) {
+ callback: function(result) {
if (result) {
$http.delete(baseUrlSrv.getRestApiBase() + '/interpreter/repository/' + repoId)
- .then(function (res) {
- let index = _.findIndex($scope.repositories, {'id': repoId})
- $scope.repositories.splice(index, 1)
- }).catch(function (res) {
- console.log('Error %o %o', res.status, res.data ? res.data.message : '')
- })
+ .then(function(res) {
+ let index = _.findIndex($scope.repositories, {'id': repoId});
+ $scope.repositories.splice(index, 1);
+ }).catch(function(res) {
+ console.log('Error %o %o', res.status, res.data ? res.data.message : '');
+ });
}
- }
- })
- }
+ },
+ });
+ };
- $scope.isDefaultRepository = function (repoId) {
+ $scope.isDefaultRepository = function(repoId) {
if (repoId === 'central' || repoId === 'local') {
- return true
+ return true;
} else {
- return false
+ return false;
}
- }
+ };
- $scope.showErrorMessage = function (setting) {
+ $scope.showErrorMessage = function(setting) {
BootstrapDialog.show({
title: 'Error downloading dependencies',
- message: setting.errorReason
- })
- }
+ message: setting.errorReason,
+ });
+ };
let init = function() {
- getAvailableInterpreterPropertyWidgets()
+ getAvailableInterpreterPropertyWidgets();
- $scope.resetNewInterpreterSetting()
- $scope.resetNewRepositorySetting()
+ $scope.resetNewInterpreterSetting();
+ $scope.resetNewRepositorySetting();
- getInterpreterSettings()
- getAvailableInterpreters()
- getRepositories()
- }
+ getInterpreterSettings();
+ getAvailableInterpreters();
+ getRepositories();
+ };
- $scope.showSparkUI = function (settingId) {
+ $scope.showSparkUI = function(settingId) {
$http.get(baseUrlSrv.getRestApiBase() + '/interpreter/metadata/' + settingId)
- .then(function (res) {
+ .then(function(res) {
if (res.data.body === undefined) {
BootstrapDialog.alert({
- message: 'No spark application running'
- })
- return
+ message: 'No spark application running',
+ });
+ return;
}
if (res.data.body.url) {
- window.open(res.data.body.url, '_blank')
+ window.open(res.data.body.url, '_blank');
} else {
BootstrapDialog.alert({
- message: res.data.body.message
- })
+ message: res.data.body.message,
+ });
}
- }).catch(function (res) {
- console.log('Error %o %o', res.status, res.data ? res.data.message : '')
- })
- }
+ }).catch(function(res) {
+ console.log('Error %o %o', res.status, res.data ? res.data.message : '');
+ });
+ };
$scope.getInterpreterBindingModeDocsLink = function() {
- const currentVersion = $rootScope.zeppelinVersion
- return `https://zeppelin.apache.org/docs/${currentVersion}/usage/interpreter/interpreter_binding_mode.html`
- }
+ const currentVersion = $rootScope.zeppelinVersion;
+ return `https://zeppelin.apache.org/docs/${currentVersion}/usage/interpreter/interpreter_binding_mode.html`;
+ };
- init()
+ init();
}
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/ea2c9447/zeppelin-web/src/app/interpreter/interpreter.filter.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/interpreter/interpreter.filter.js b/zeppelin-web/src/app/interpreter/interpreter.filter.js
index 3f42572..7b5ace0 100644
--- a/zeppelin-web/src/app/interpreter/interpreter.filter.js
+++ b/zeppelin-web/src/app/interpreter/interpreter.filter.js
@@ -12,11 +12,11 @@
* limitations under the License.
*/
-angular.module('zeppelinWebApp').filter('sortByKey', sortByKey)
+angular.module('zeppelinWebApp').filter('sortByKey', sortByKey);
-function sortByKey () {
- return function (properties) {
- let sortedKeys = properties ? Object.keys(properties) : []
- return sortedKeys.sort()
- }
+function sortByKey() {
+ return function(properties) {
+ let sortedKeys = properties ? Object.keys(properties) : [];
+ return sortedKeys.sort();
+ };
}
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/ea2c9447/zeppelin-web/src/app/interpreter/widget/number-widget.directive.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/interpreter/widget/number-widget.directive.js b/zeppelin-web/src/app/interpreter/widget/number-widget.directive.js
index 2046b94..6ea129a 100644
--- a/zeppelin-web/src/app/interpreter/widget/number-widget.directive.js
+++ b/zeppelin-web/src/app/interpreter/widget/number-widget.directive.js
@@ -12,20 +12,20 @@
* limitations under the License.
*/
-angular.module('zeppelinWebApp').directive('numberWidget', InterpreterNumberDirective)
+angular.module('zeppelinWebApp').directive('numberWidget', InterpreterNumberDirective);
function InterpreterNumberDirective() {
return {
require: 'ngModel',
- link: function (scope, element, attrs, modelCtrl) {
- modelCtrl.$parsers.push(function (inputValue) {
- let transformedInput = inputValue ? inputValue.replace(/[^\d.-]/g, '') : null
+ link: function(scope, element, attrs, modelCtrl) {
+ modelCtrl.$parsers.push(function(inputValue) {
+ let transformedInput = inputValue ? inputValue.replace(/[^\d.-]/g, '') : null;
if (transformedInput !== inputValue) {
- modelCtrl.$setViewValue(transformedInput)
- modelCtrl.$render()
+ modelCtrl.$setViewValue(transformedInput);
+ modelCtrl.$render();
}
- return transformedInput
- })
- }
- }
+ return transformedInput;
+ });
+ },
+ };
}
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/ea2c9447/zeppelin-web/src/app/jobmanager/job-status.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/jobmanager/job-status.js b/zeppelin-web/src/app/jobmanager/job-status.js
index eda41b1..d918299 100644
--- a/zeppelin-web/src/app/jobmanager/job-status.js
+++ b/zeppelin-web/src/app/jobmanager/job-status.js
@@ -19,36 +19,36 @@ export const JobStatus = {
ERROR: 'ERROR',
PENDING: 'PENDING',
RUNNING: 'RUNNING',
-}
+};
export function getJobIconByStatus(jobStatus) {
if (jobStatus === JobStatus.READY) {
- return 'fa fa-circle-o'
+ return 'fa fa-circle-o';
} else if (jobStatus === JobStatus.FINISHED) {
- return 'fa fa-circle'
+ return 'fa fa-circle';
} else if (jobStatus === JobStatus.ABORT) {
- return 'fa fa-circle'
+ return 'fa fa-circle';
} else if (jobStatus === JobStatus.ERROR) {
- return 'fa fa-circle'
+ return 'fa fa-circle';
} else if (jobStatus === JobStatus.PENDING) {
- return 'fa fa-circle'
+ return 'fa fa-circle';
} else if (jobStatus === JobStatus.RUNNING) {
- return 'fa fa-spinner'
+ return 'fa fa-spinner';
}
}
export function getJobColorByStatus(jobStatus) {
if (jobStatus === JobStatus.READY) {
- return 'green'
+ return 'green';
} else if (jobStatus === JobStatus.FINISHED) {
- return 'green'
+ return 'green';
} else if (jobStatus === JobStatus.ABORT) {
- return 'orange'
+ return 'orange';
} else if (jobStatus === JobStatus.ERROR) {
- return 'red'
+ return 'red';
} else if (jobStatus === JobStatus.PENDING) {
- return 'gray'
+ return 'gray';
} else if (jobStatus === JobStatus.RUNNING) {
- return 'blue'
+ return 'blue';
}
}
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/ea2c9447/zeppelin-web/src/app/jobmanager/job/job.component.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/jobmanager/job/job.component.js b/zeppelin-web/src/app/jobmanager/job/job.component.js
index c4d4f51..e6f102f 100644
--- a/zeppelin-web/src/app/jobmanager/job/job.component.js
+++ b/zeppelin-web/src/app/jobmanager/job/job.component.js
@@ -12,35 +12,35 @@
* limitations under the License.
*/
-import moment from 'moment'
+import moment from 'moment';
-import { ParagraphStatus, } from '../../notebook/paragraph/paragraph.status'
-import { getJobColorByStatus, getJobIconByStatus } from '../job-status'
+import {ParagraphStatus} from '../../notebook/paragraph/paragraph.status';
+import {getJobColorByStatus, getJobIconByStatus} from '../job-status';
-import jobTemplate from './job.html'
-import './job.css'
+import jobTemplate from './job.html';
+import './job.css';
class JobController {
constructor($http, JobManagerService) {
- 'ngInject'
- this.$http = $http
- this.JobManagerService = JobManagerService
+ 'ngInject';
+ this.$http = $http;
+ this.JobManagerService = JobManagerService;
}
isRunning() {
- return this.note.isRunningJob
+ return this.note.isRunningJob;
}
getParagraphs() {
- return this.note.paragraphs
+ return this.note.paragraphs;
}
getNoteId() {
- return this.note.noteId
+ return this.note.noteId;
}
getNoteName() {
- return this.note.noteName
+ return this.note.noteName;
}
runJob() {
@@ -48,19 +48,21 @@ class JobController {
closable: true,
title: 'Job Dialog',
message: 'Run all paragraphs?',
- callback: clickOk => {
- if (!clickOk) { return }
+ callback: (clickOk) => {
+ if (!clickOk) {
+ return;
+ }
- const noteId = this.getNoteId()
+ const noteId = this.getNoteId();
// if the request is handled successfully, the job page will get updated using websocket
this.JobManagerService.sendRunJobRequest(noteId)
- .catch(response => {
+ .catch((response) => {
let message = (response.data && response.data.message)
- ? response.data.message : 'SERVER ERROR'
- this.showErrorDialog('Execution Failure', message)
- })
- }
- })
+ ? response.data.message : 'SERVER ERROR';
+ this.showErrorDialog('Execution Failure', message);
+ });
+ },
+ });
}
stopJob() {
@@ -68,81 +70,85 @@ class JobController {
closable: true,
title: 'Job Dialog',
message: 'Stop all paragraphs?',
- callback: clickOk => {
- if (!clickOk) { return }
+ callback: (clickOk) => {
+ if (!clickOk) {
+ return;
+ }
- const noteId = this.getNoteId()
+ const noteId = this.getNoteId();
// if the request is handled successfully, the job page will get updated using websocket
this.JobManagerService.sendStopJobRequest(noteId)
- .catch(response => {
+ .catch((response) => {
let message = (response.data && response.data.message)
- ? response.data.message : 'SERVER ERROR'
- this.showErrorDialog('Stop Failure', message)
- })
- }
- })
+ ? response.data.message : 'SERVER ERROR';
+ this.showErrorDialog('Stop Failure', message);
+ });
+ },
+ });
}
showErrorDialog(title, errorMessage) {
- if (!errorMessage) { errorMessage = 'SERVER ERROR' }
+ if (!errorMessage) {
+ errorMessage = 'SERVER ERROR';
+ }
BootstrapDialog.alert({
closable: true,
title: title,
- message: errorMessage
- })
+ message: errorMessage,
+ });
}
lastExecuteTime() {
- const timestamp = this.note.unixTimeLastRun
- return moment.unix(timestamp / 1000).fromNow()
+ const timestamp = this.note.unixTimeLastRun;
+ return moment.unix(timestamp / 1000).fromNow();
}
getInterpreterName() {
return typeof this.note.interpreter === 'undefined'
- ? 'interpreter is not set' : this.note.interpreter
+ ? 'interpreter is not set' : this.note.interpreter;
}
getInterpreterNameStyle() {
return typeof this.note.interpreter === 'undefined'
- ? { color: 'gray' } : { color: 'black' }
+ ? {color: 'gray'} : {color: 'black'};
}
getJobTypeIcon() {
- const noteType = this.note.noteType
+ const noteType = this.note.noteType;
if (noteType === 'normal') {
- return 'icon-doc'
+ return 'icon-doc';
} else if (noteType === 'cron') {
- return 'icon-clock'
+ return 'icon-clock';
} else {
- return 'icon-question'
+ return 'icon-question';
}
}
getJobColorByStatus(status) {
- return getJobColorByStatus(status)
+ return getJobColorByStatus(status);
}
getJobIconByStatus(status) {
- return getJobIconByStatus(status)
+ return getJobIconByStatus(status);
}
getProgress() {
- const paragraphs = this.getParagraphs()
- let paragraphStatuses = paragraphs.map(p => p.status)
- let runningOrFinishedParagraphs = paragraphStatuses.filter(status => {
- return status === ParagraphStatus.RUNNING || status === ParagraphStatus.FINISHED
- })
+ const paragraphs = this.getParagraphs();
+ let paragraphStatuses = paragraphs.map((p) => p.status);
+ let runningOrFinishedParagraphs = paragraphStatuses.filter((status) => {
+ return status === ParagraphStatus.RUNNING || status === ParagraphStatus.FINISHED;
+ });
- let totalCount = paragraphStatuses.length
- let runningCount = runningOrFinishedParagraphs.length
- let result = Math.ceil(runningCount / totalCount * 100)
- result = isNaN(result) ? 0 : result
+ let totalCount = paragraphStatuses.length;
+ let runningCount = runningOrFinishedParagraphs.length;
+ let result = Math.ceil(runningCount / totalCount * 100);
+ result = isNaN(result) ? 0 : result;
- return `${result}%`
+ return `${result}%`;
}
showPercentProgressBar() {
- return this.getProgress() > 0 && this.getProgress() < 100
+ return this.getProgress() > 0 && this.getProgress() < 100;
}
}
@@ -152,9 +158,9 @@ export const JobComponent = {
},
template: jobTemplate,
controller: JobController,
-}
+};
export const JobModule = angular
.module('zeppelinWebApp')
.component('job', JobComponent)
- .name
+ .name;
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/ea2c9447/zeppelin-web/src/app/jobmanager/job/job.component.test.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/jobmanager/job/job.component.test.js b/zeppelin-web/src/app/jobmanager/job/job.component.test.js
index 6ca285c..5b6bec1 100644
--- a/zeppelin-web/src/app/jobmanager/job/job.component.test.js
+++ b/zeppelin-web/src/app/jobmanager/job/job.component.test.js
@@ -1,55 +1,55 @@
-import { ParagraphStatus } from '../../notebook/paragraph/paragraph.status'
+import {ParagraphStatus} from '../../notebook/paragraph/paragraph.status';
describe('JobComponent', () => {
- let $componentController
+ let $componentController;
- beforeEach(angular.mock.module('zeppelinWebApp'))
+ beforeEach(angular.mock.module('zeppelinWebApp'));
beforeEach(angular.mock.inject((_$componentController_) => {
- $componentController = _$componentController_
- }))
+ $componentController = _$componentController_;
+ }));
it('should get progress when there is a finished paragraph', () => {
const paragraphs = [
- { status: ParagraphStatus.FINISHED },
- ]
- const mockNote = createMockNote(paragraphs)
- const bindings = { note: mockNote, }
+ {status: ParagraphStatus.FINISHED},
+ ];
+ const mockNote = createMockNote(paragraphs);
+ const bindings = {note: mockNote};
- const ctrl = $componentController('job', null, bindings)
- expect(ctrl).toBeDefined()
+ const ctrl = $componentController('job', null, bindings);
+ expect(ctrl).toBeDefined();
- const progress1 = ctrl.getProgress()
- expect(progress1).toBe('100%')
- })
+ const progress1 = ctrl.getProgress();
+ expect(progress1).toBe('100%');
+ });
it('should get progress when there is pending and finished paragraphs', () => {
const paragraphs = [
- { status: ParagraphStatus.PENDING },
- { status: ParagraphStatus.FINISHED},
- ]
- const mockNote = createMockNote(paragraphs)
- const bindings = { note: mockNote, }
+ {status: ParagraphStatus.PENDING},
+ {status: ParagraphStatus.FINISHED},
+ ];
+ const mockNote = createMockNote(paragraphs);
+ const bindings = {note: mockNote};
- const ctrl = $componentController('job', null, bindings)
+ const ctrl = $componentController('job', null, bindings);
- const progress1 = ctrl.getProgress()
- expect(progress1).toBe('50%')
- })
+ const progress1 = ctrl.getProgress();
+ expect(progress1).toBe('50%');
+ });
it('should get proper job type icons', () => {
- const paragraphs = [ { status: ParagraphStatus.PENDING }, ]
- const mockNote = createMockNote(paragraphs)
- const bindings = { note: mockNote, }
+ const paragraphs = [{status: ParagraphStatus.PENDING}];
+ const mockNote = createMockNote(paragraphs);
+ const bindings = {note: mockNote};
- const ctrl = $componentController('job', null, bindings)
+ const ctrl = $componentController('job', null, bindings);
- let icon = ctrl.getJobTypeIcon()
- expect(icon).toBe('icon-doc')
+ let icon = ctrl.getJobTypeIcon();
+ expect(icon).toBe('icon-doc');
- mockNote.noteType = 'cron'
- icon = ctrl.getJobTypeIcon()
- expect(icon).toBe('icon-clock')
- })
+ mockNote.noteType = 'cron';
+ icon = ctrl.getJobTypeIcon();
+ expect(icon).toBe('icon-clock');
+ });
function createMockNote(paragraphs) {
return {
@@ -58,6 +58,6 @@ describe('JobComponent', () => {
noteId: 'NT01',
noteName: 'TestNote01',
noteType: 'normal',
- }
+ };
}
-})
+});