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',
-    }
+    };
   }
-})
+});