You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by ah...@apache.org on 2017/04/20 04:52:46 UTC

[7/8] zeppelin git commit: [ZEPPELIN-1940] lint rule set is NOT applied at all.

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/19b0f30f/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 648a478..330c2ad 100644
--- a/zeppelin-web/src/app/interpreter/interpreter.controller.js
+++ b/zeppelin-web/src/app/interpreter/interpreter.controller.js
@@ -12,52 +12,52 @@
  * 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';
+function InterpreterCtrl ($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeout, $route) {
+  'ngInject'
 
-  var interpreterSettingsTmp = [];
-  $scope.interpreterSettings = [];
-  $scope.availableInterpreters = {};
-  $scope.showAddNewSetting = false;
-  $scope.showRepositoryInfo = false;
-  $scope.searchInterpreter = '';
-  $scope._ = _;
-  ngToast.dismiss();
+  let interpreterSettingsTmp = []
+  $scope.interpreterSettings = []
+  $scope.availableInterpreters = {}
+  $scope.showAddNewSetting = false
+  $scope.showRepositoryInfo = false
+  $scope.searchInterpreter = ''
+  $scope._ = _
+  ngToast.dismiss()
 
-  $scope.openPermissions = function() {
-    $scope.showInterpreterAuth = true;
-  };
+  $scope.openPermissions = function () {
+    $scope.showInterpreterAuth = true
+  }
 
-  $scope.closePermissions = function() {
-    $scope.showInterpreterAuth = false;
-  };
+  $scope.closePermissions = function () {
+    $scope.showInterpreterAuth = false
+  }
 
-  var getSelectJson = function() {
-    var selectJson = {
+  let getSelectJson = function () {
+    let selectJson = {
       tags: false,
       multiple: true,
       tokenSeparators: [',', ' '],
       minimumInputLength: 2,
       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) {
-          var users = [];
+        processResults: function (data, params) {
+          let users = []
           if (data.body.users.length !== 0) {
-            for (var i = 0; i < data.body.users.length; i++) {
+            for (let i = 0; i < data.body.users.length; i++) {
               users.push({
                 'id': data.body.users[i],
                 'text': data.body.users[i]
-              });
+              })
             }
           }
           return {
@@ -65,388 +65,389 @@ function InterpreterCtrl($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeou
             pagination: {
               more: false
             }
-          };
+          }
         },
         cache: false
       }
-    };
-    return selectJson;
-  };
+    }
+    return selectJson
+  }
 
-  $scope.togglePermissions = function(intpName) {
-    angular.element('#' + intpName + 'Users').select2(getSelectJson());
+  $scope.togglePermissions = function (intpName) {
+    angular.element('#' + intpName + 'Users').select2(getSelectJson())
     if ($scope.showInterpreterAuth) {
-      $scope.closePermissions();
+      $scope.closePermissions()
     } else {
-      $scope.openPermissions();
+      $scope.openPermissions()
     }
-  };
+  }
 
-  $scope.$on('ngRenderFinished', function(event, data) {
-    for (var setting = 0; setting < $scope.interpreterSettings.length; setting++) {
-      angular.element('#' + $scope.interpreterSettings[setting].name + 'Users').select2(getSelectJson());
+  $scope.$on('ngRenderFinished', function (event, data) {
+    for (let setting = 0; setting < $scope.interpreterSettings.length; setting++) {
+      angular.element('#' + $scope.interpreterSettings[setting].name + 'Users').select2(getSelectJson())
     }
-  });
+  })
 
-  var getInterpreterSettings = function() {
+  let getInterpreterSettings = function () {
     $http.get(baseUrlSrv.getRestApiBase() + '/interpreter/setting')
-      .success(function(data, status, headers, config) {
-        $scope.interpreterSettings = data.body;
-        checkDownloadingDependencies();
-      }).error(function(data, status, headers, config) {
-      if (status === 401) {
-        ngToast.danger({
-          content: 'You don\'t have permission on this page',
-          verticalPosition: 'bottom',
-          timeout: '3000'
-        });
-        setTimeout(function() {
-          window.location.replace('/');
-        }, 3000);
-      }
-      console.log('Error %o %o', status, data.message);
-    });
-  };
-
-  var checkDownloadingDependencies = function() {
-    var isDownloading = false;
-    for (var index = 0; index < $scope.interpreterSettings.length; index++) {
-      var setting = $scope.interpreterSettings[index];
+      .success(function (data, status, headers, config) {
+        $scope.interpreterSettings = data.body
+        checkDownloadingDependencies()
+      }).error(function (data, status, headers, config) {
+        if (status === 401) {
+          ngToast.danger({
+            content: 'You don\'t have permission on this page',
+            verticalPosition: 'bottom',
+            timeout: '3000'
+          })
+          setTimeout(function () {
+            window.location.replace('/')
+          }, 3000)
+        }
+        console.log('Error %o %o', status, data.message)
+      })
+  }
+
+  const checkDownloadingDependencies = function () {
+    let isDownloading = false
+    for (let index = 0; index < $scope.interpreterSettings.length; 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});
+          verticalPosition: 'top',
+          dismissOnTimeout: false
+        })
       }
     }
 
     if (isDownloading) {
-      $timeout(function() {
+      $timeout(function () {
         if ($route.current.$$route.originalPath === '/interpreter') {
-          getInterpreterSettings();
+          getInterpreterSettings()
         }
-      }, 2000);
+      }, 2000)
     }
-  };
-
-  var getAvailableInterpreters = function() {
-    $http.get(baseUrlSrv.getRestApiBase() + '/interpreter').success(function(data, status, headers, config) {
-      $scope.availableInterpreters = data.body;
-    }).error(function(data, status, headers, config) {
-      console.log('Error %o %o', status, data.message);
-    });
-  };
-
-  var emptyNewProperty = function(object) {
-    angular.extend(object, {propertyValue: '', propertyKey: ''});
-  };
-
-  var emptyNewDependency = function(object) {
-    angular.extend(object, {depArtifact: '', depExclude: ''});
-  };
-
-  var removeTMPSettings = function(index) {
-    interpreterSettingsTmp.splice(index, 1);
-  };
-
-  $scope.copyOriginInterpreterSettingProperties = function(settingId) {
-    var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-    interpreterSettingsTmp[index] = angular.copy($scope.interpreterSettings[index]);
-  };
-
-  $scope.setPerNoteOption = function(settingId, sessionOption) {
-    var option;
+  }
+
+  let getAvailableInterpreters = function () {
+    $http.get(baseUrlSrv.getRestApiBase() + '/interpreter').success(function (data, status, headers, config) {
+      $scope.availableInterpreters = data.body
+    }).error(function (data, status, headers, config) {
+      console.log('Error %o %o', status, data.message)
+    })
+  }
+
+  let emptyNewProperty = function (object) {
+    angular.extend(object, {propertyValue: '', propertyKey: ''})
+  }
+
+  let emptyNewDependency = function (object) {
+    angular.extend(object, {depArtifact: '', depExclude: ''})
+  }
+
+  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.setPerNoteOption = function (settingId, sessionOption) {
+    let option
     if (settingId === undefined) {
-      option = $scope.newInterpreterSetting.option;
+      option = $scope.newInterpreterSetting.option
     } else {
-      var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-      var 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.setPerUserOption = function(settingId, sessionOption) {
-    var option;
+  $scope.setPerUserOption = function (settingId, sessionOption) {
+    let option
     if (settingId === undefined) {
-      option = $scope.newInterpreterSetting.option;
+      option = $scope.newInterpreterSetting.option
     } else {
-      var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-      var 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) {
-    var option;
+  $scope.getPerNoteOption = function (settingId) {
+    let option
     if (settingId === undefined) {
-      option = $scope.newInterpreterSetting.option;
+      option = $scope.newInterpreterSetting.option
     } else {
-      var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-      var 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) {
-    var option;
+  $scope.getPerUserOption = function (settingId) {
+    let option
     if (settingId === undefined) {
-      option = $scope.newInterpreterSetting.option;
+      option = $scope.newInterpreterSetting.option
     } else {
-      var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-      var 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) {
-    var sharedModeName = 'shared';
+  $scope.getInterpreterRunningOption = function (settingId) {
+    let sharedModeName = 'shared'
 
-    var globallyModeName = 'Globally';
-    var perNoteModeName = 'Per Note';
-    var perUserModeName = 'Per User';
+    let globallyModeName = 'Globally'
+    let perNoteModeName = 'Per Note'
+    let perUserModeName = 'Per User'
 
-    var option;
+    let option
     if (settingId === undefined) {
-      option = $scope.newInterpreterSetting.option;
+      option = $scope.newInterpreterSetting.option
     } else {
-      var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-      var setting = $scope.interpreterSettings[index];
-      option = setting.option;
+      let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
+      let setting = $scope.interpreterSettings[index]
+      option = setting.option
     }
 
-    var perNote = option.perNote;
-    var 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) {
-    var option;
+  $scope.setInterpreterRunningOption = function (settingId, isPerNoteMode, isPerUserMode) {
+    let option
     if (settingId === undefined) {
-      option = $scope.newInterpreterSetting.option;
+      option = $scope.newInterpreterSetting.option
     } else {
-      var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-      var 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) {
-    var thisConfirm = BootstrapDialog.confirm({
+  $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) {
-          var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-          var 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.users = angular.element('#' + setting.name + 'Users').val();
+          setting.option.users = angular.element('#' + setting.name + 'Users').val()
 
-          var request = {
+          let request = {
             option: angular.copy(setting.option),
             properties: angular.copy(setting.properties),
             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)
-            .success(function(data, status, headers, config) {
-              $scope.interpreterSettings[index] = data.body;
-              removeTMPSettings(index);
-              checkDownloadingDependencies();
-              thisConfirm.close();
+            .success(function (data, status, headers, config) {
+              $scope.interpreterSettings[index] = data.body
+              removeTMPSettings(index)
+              checkDownloadingDependencies()
+              thisConfirm.close()
+            })
+            .error(function (data, status, headers, config) {
+              console.log('Error %o %o', status, data.message)
+              ngToast.danger({content: data.message, verticalPosition: 'bottom'})
+              form.$show()
+              thisConfirm.close()
             })
-            .error(function(data, status, headers, config) {
-              console.log('Error %o %o', status, data.message);
-              ngToast.danger({content: data.message, verticalPosition: 'bottom'});
-              form.$show();
-              thisConfirm.close();
-            });
-          return false;
+          return false
         } else {
-          form.$show();
+          form.$show()
         }
       }
-    });
-  };
+    })
+  }
 
-  $scope.resetInterpreterSetting = function(settingId) {
-    var 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)
-            .success(function(data, status, headers, config) {
-
-              var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-              $scope.interpreterSettings.splice(index, 1);
-            }).error(function(data, status, headers, config) {
-            console.log('Error %o %o', status, data.message);
-          });
+            .success(function (data, status, headers, config) {
+              let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
+              $scope.interpreterSettings.splice(index, 1)
+            }).error(function (data, status, headers, config) {
+              console.log('Error %o %o', status, data.message)
+            })
         }
       }
-    });
-  };
-
-  $scope.newInterpreterGroupChange = function() {
-    var el = _.pluck(_.filter($scope.availableInterpreters, {'name': $scope.newInterpreterSetting.group}),
-      'properties');
-    var properties = {};
-    for (var i = 0; i < el.length; i++) {
-      var intpInfo = el[i];
-      for (var key in intpInfo) {
+    })
+  }
+
+  $scope.newInterpreterGroupChange = function () {
+    let el = _.pluck(_.filter($scope.availableInterpreters, {'name': $scope.newInterpreterSetting.group}),
+      'properties')
+    let properties = {}
+    for (let i = 0; i < el.length; i++) {
+      let intpInfo = el[i]
+      for (let key in intpInfo) {
         properties[key] = {
           value: intpInfo[key].defaultValue,
           description: intpInfo[key].description
-        };
+        }
       }
     }
-    $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)
-            .success(function(data, status, headers, config) {
-              var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-              $scope.interpreterSettings[index] = data.body;
-              ngToast.info('Interpreter stopped. Will be lazily started on next run.');
-            }).error(function(data, status, headers, config) {
-              var errorMsg = (data !== null) ? data.message : 'Could not connect to server.';
-              console.log('Error %o %o', status, errorMsg);
-              ngToast.danger(errorMsg);
-          });
+            .success(function (data, status, headers, config) {
+              let index = _.findIndex($scope.interpreterSettings, {'id': settingId})
+              $scope.interpreterSettings[index] = data.body
+              ngToast.info('Interpreter stopped. Will be lazily started on next run.')
+            }).error(function (data, status, headers, config) {
+              let errorMsg = (data !== null) ? data.message : 'Could not connect to server.'
+              console.log('Error %o %o', status, errorMsg)
+              ngToast.danger(errorMsg)
+            })
         }
       }
-    });
-  };
+    })
+  }
 
-  $scope.addNewInterpreterSetting = function() {
-    //user input validation on interpreter creation
+  $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;
+      })
+      return
     }
 
     if ($scope.newInterpreterSetting.name.indexOf('.') >= 0) {
@@ -454,8 +455,8 @@ function InterpreterCtrl($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeou
         closable: true,
         title: 'Add interpreter',
         message: '\'.\' is invalid for interpreter name'
-      });
-      return;
+      })
+      return
     }
 
     if (_.findIndex($scope.interpreterSettings, {'name': $scope.newInterpreterSetting.name}) >= 0) {
@@ -463,49 +464,49 @@ function InterpreterCtrl($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeou
         closable: true,
         title: 'Add interpreter',
         message: 'Name ' + $scope.newInterpreterSetting.name + ' already exists'
-      });
-      return;
+      })
+      return
     }
 
-    var 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.users = angular.element('#newInterpreterUsers').val();
+    newSetting.option.users = angular.element('#newInterpreterUsers').val()
 
-    var request = angular.copy($scope.newInterpreterSetting);
+    let request = angular.copy($scope.newInterpreterSetting)
 
     // Change properties to proper request format
-    var newProperties = {};
-    for (var p in newSetting.properties) {
-      newProperties[p] = newSetting.properties[p].value;
+    let newProperties = {}
+    for (let p in newSetting.properties) {
+      newProperties[p] = newSetting.properties[p].value
     }
-    request.properties = newProperties;
+    request.properties = newProperties
 
     $http.post(baseUrlSrv.getRestApiBase() + '/interpreter/setting', request)
-      .success(function(data, status, headers, config) {
-        $scope.resetNewInterpreterSetting();
-        getInterpreterSettings();
-        $scope.showAddNewSetting = false;
-        checkDownloadingDependencies();
-      }).error(function(data, status, headers, config) {
-      console.log('Error %o %o', status, data.message);
-      ngToast.danger({content: data.message, verticalPosition: 'bottom'});
-    });
-  };
-
-  $scope.cancelInterpreterSetting = function() {
-    $scope.showAddNewSetting = false;
-    $scope.resetNewInterpreterSetting();
-  };
-
-  $scope.resetNewInterpreterSetting = function() {
+      .success(function (data, status, headers, config) {
+        $scope.resetNewInterpreterSetting()
+        getInterpreterSettings()
+        $scope.showAddNewSetting = false
+        checkDownloadingDependencies()
+      }).error(function (data, status, headers, config) {
+        console.log('Error %o %o', status, data.message)
+        ngToast.danger({content: data.message, verticalPosition: 'bottom'})
+      })
+  }
+
+  $scope.cancelInterpreterSetting = function () {
+    $scope.showAddNewSetting = false
+    $scope.resetNewInterpreterSetting()
+  }
+
+  $scope.resetNewInterpreterSetting = function () {
     $scope.newInterpreterSetting = {
       name: undefined,
       group: undefined,
@@ -519,110 +520,110 @@ function InterpreterCtrl($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeou
         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 {
-      var 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 {
-      var 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
-      };
-      emptyNewProperty($scope.newInterpreterSetting);
+      }
+      emptyNewProperty($scope.newInterpreterSetting)
     } else {
       // Add new property from edit form
-      var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-      var 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] = setting.propertyValue;
-      emptyNewProperty(setting);
+      setting.properties[setting.propertyKey] = setting.propertyValue
+      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
-      var newSetting = $scope.newInterpreterSetting;
-      for (var d in newSetting.dependencies) {
+      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);
+          }
+          newSetting.dependencies.splice(d, 1)
         }
       }
 
       newSetting.dependencies.push({
         'groupArtifactVersion': newSetting.depArtifact,
         'exclusions': (newSetting.depExclude === '') ? [] : newSetting.depExclude
-      });
-      emptyNewDependency(newSetting);
+      })
+      emptyNewDependency(newSetting)
     } else {
       // Add new dependency from edit form
-      var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
-      var 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
-      for (var dep in setting.dependencies) {
+      for (let dep in setting.dependencies) {
         if (setting.dependencies[dep].groupArtifactVersion === setting.depArtifact) {
           setting.dependencies[dep] = {
             'groupArtifactVersion': setting.depArtifact,
             'exclusions': setting.depExclude
-          };
-          setting.dependencies.splice(dep, 1);
+          }
+          setting.dependencies.splice(dep, 1)
         }
       }
 
       setting.dependencies.push({
         'groupArtifactVersion': setting.depArtifact,
         'exclusions': (setting.depExclude === '') ? [] : setting.depExclude
-      });
-      emptyNewDependency(setting);
+      })
+      emptyNewDependency(setting)
     }
-  };
+  }
 
-  $scope.resetNewRepositorySetting = function() {
+  $scope.resetNewRepositorySetting = function () {
     $scope.newRepoSetting = {
       id: '',
       url: '',
@@ -634,90 +635,89 @@ function InterpreterCtrl($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeou
       proxyPort: null,
       proxyLogin: '',
       proxyPassword: ''
-    };
-  };
+    }
+  }
 
-  var 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() {
-    var request = angular.copy($scope.newRepoSetting);
+  $scope.addNewRepository = function () {
+    let request = angular.copy($scope.newRepoSetting)
 
     $http.post(baseUrlSrv.getRestApiBase() + '/interpreter/repository', request)
-      .success(function(data, status, headers, config) {
-        getRepositories();
-        $scope.resetNewRepositorySetting();
-        angular.element('#repoModal').modal('hide');
-      }).error(function(data, status, headers, config) {
-      console.log('Error %o %o', headers, config);
-    });
-  };
-
-  $scope.removeRepository = function(repoId) {
+      .success(function (data, status, headers, config) {
+        getRepositories()
+        $scope.resetNewRepositorySetting()
+        angular.element('#repoModal').modal('hide')
+      }).error(function (data, status, headers, config) {
+        console.log('Error %o %o', headers, 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)
-            .success(function(data, status, headers, config) {
-              var index = _.findIndex($scope.repositories, {'id': repoId});
-              $scope.repositories.splice(index, 1);
-            }).error(function(data, status, headers, config) {
-            console.log('Error %o %o', status, data.message);
-          });
+            .success(function (data, status, headers, config) {
+              let index = _.findIndex($scope.repositories, {'id': repoId})
+              $scope.repositories.splice(index, 1)
+            }).error(function (data, status, headers, config) {
+              console.log('Error %o %o', status, 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
-    });
-  };
+    })
+  }
 
-  var init = function() {
-    $scope.resetNewInterpreterSetting();
-    $scope.resetNewRepositorySetting();
+  let init = function () {
+    $scope.resetNewInterpreterSetting()
+    $scope.resetNewRepositorySetting()
 
-    getInterpreterSettings();
-    getAvailableInterpreters();
-    getRepositories();
-  };
+    getInterpreterSettings()
+    getAvailableInterpreters()
+    getRepositories()
+  }
 
-  $scope.showSparkUI = function(settingId) {
+  $scope.showSparkUI = function (settingId) {
     $http.get(baseUrlSrv.getRestApiBase() + '/interpreter/getmetainfos/' + settingId + '?propName=url')
-      .success(function(data, status, headers, config) {
-        var url = data.body.url;
+      .success(function (data, status, headers, config) {
+        let url = data.body.url
         if (!url) {
           BootstrapDialog.alert({
             message: 'No spark application running'
-          });
-          return;
+          })
+          return
         }
-        window.open(url, '_blank');
-      }).error(function(data, status, headers, config) {
-      console.log('Error %o %o', status, data.message);
-    });
-  };
+        window.open(url, '_blank')
+      }).error(function (data, status, headers, config) {
+        console.log('Error %o %o', status, data.message)
+      })
+  }
 
-  init();
+  init()
 }
-

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/19b0f30f/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 c5f1572..3f42572 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) {
-    var 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/19b0f30f/zeppelin-web/src/app/jobmanager/jobmanager.controller.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/jobmanager/jobmanager.controller.js b/zeppelin-web/src/app/jobmanager/jobmanager.controller.js
index 5503be4..ec6f1ab 100644
--- a/zeppelin-web/src/app/jobmanager/jobmanager.controller.js
+++ b/zeppelin-web/src/app/jobmanager/jobmanager.controller.js
@@ -13,172 +13,169 @@
  */
 
 angular.module('zeppelinWebApp')
-  .controller('JobmanagerCtrl', JobmanagerCtrl);
+  .controller('JobmanagerCtrl', JobmanagerCtrl)
 
-function JobmanagerCtrl($scope, websocketMsgSrv, $interval, ngToast, $q, $timeout, jobManagerFilter) {
-  'ngInject';
+function JobmanagerCtrl ($scope, websocketMsgSrv, $interval, ngToast, $q, $timeout, jobManagerFilter) {
+  'ngInject'
 
-  ngToast.dismiss();
-  var asyncNotebookJobFilter = function(jobInfomations, filterConfig) {
-    return $q(function(resolve, reject) {
-      $scope.JobInfomationsByFilter = $scope.jobTypeFilter(jobInfomations, filterConfig);
-      resolve($scope.JobInfomationsByFilter);
-    });
-  };
+  ngToast.dismiss()
+  let asyncNotebookJobFilter = function (jobInfomations, filterConfig) {
+    return $q(function (resolve, reject) {
+      $scope.JobInfomationsByFilter = $scope.jobTypeFilter(jobInfomations, filterConfig)
+      resolve($scope.JobInfomationsByFilter)
+    })
+  }
 
-  $scope.doFiltering = function(jobInfomations, filterConfig) {
+  $scope.doFiltering = function (jobInfomations, filterConfig) {
     asyncNotebookJobFilter(jobInfomations, filterConfig).then(
-      function() {
+      function () {
         // success
-        $scope.isLoadingFilter = false;
+        $scope.isLoadingFilter = false
       },
-      function() {
+      function () {
         // failed
-      });
-  };
+      })
+  }
 
-  $scope.filterValueToName = function(filterValue, maxStringLength) {
+  $scope.filterValueToName = function (filterValue, maxStringLength) {
     if ($scope.activeInterpreters === undefined) {
-      return;
+      return
     }
-    var index = _.findIndex($scope.activeInterpreters, {value: filterValue});
+    let index = _.findIndex($scope.activeInterpreters, {value: filterValue})
     if ($scope.activeInterpreters[index].name !== undefined) {
       if (maxStringLength !== undefined && maxStringLength > $scope.activeInterpreters[index].name) {
-        return $scope.activeInterpreters[index].name.substr(0, maxStringLength - 3) + '...';
+        return $scope.activeInterpreters[index].name.substr(0, maxStringLength - 3) + '...'
       }
-      return $scope.activeInterpreters[index].name;
+      return $scope.activeInterpreters[index].name
     } else {
-      return 'Interpreter is not set';
+      return 'Interpreter is not set'
     }
-  };
-
-  $scope.setFilterValue = function(filterValue) {
-    $scope.filterConfig.filterValueInterpreter = filterValue;
-    $scope.doFiltering($scope.jobInfomations, $scope.filterConfig);
-  };
-
-  $scope.onChangeRunJobToAlwaysTopToggle = function() {
-    $scope.filterConfig.isRunningAlwaysTop = !$scope.filterConfig.isRunningAlwaysTop;
-    $scope.doFiltering($scope.jobInfomations, $scope.filterConfig);
-  };
-
-  $scope.onChangeSortAsc = function() {
-    $scope.filterConfig.isSortByAsc = !$scope.filterConfig.isSortByAsc;
-    $scope.doFiltering($scope.jobInfomations, $scope.filterConfig);
-  };
-
-  $scope.doFilterInputTyping = function(keyEvent, jobInfomations, filterConfig) {
-    var RETURN_KEY_CODE = 13;
-    $timeout.cancel($scope.dofilterTimeoutObject);
-    $scope.isActiveSearchTimer = true;
-    $scope.dofilterTimeoutObject = $timeout(function() {
-      $scope.doFiltering(jobInfomations, filterConfig);
-      $scope.isActiveSearchTimer = false;
-    }, 10000);
+  }
+
+  $scope.setFilterValue = function (filterValue) {
+    $scope.filterConfig.filterValueInterpreter = filterValue
+    $scope.doFiltering($scope.jobInfomations, $scope.filterConfig)
+  }
+
+  $scope.onChangeRunJobToAlwaysTopToggle = function () {
+    $scope.filterConfig.isRunningAlwaysTop = !$scope.filterConfig.isRunningAlwaysTop
+    $scope.doFiltering($scope.jobInfomations, $scope.filterConfig)
+  }
+
+  $scope.onChangeSortAsc = function () {
+    $scope.filterConfig.isSortByAsc = !$scope.filterConfig.isSortByAsc
+    $scope.doFiltering($scope.jobInfomations, $scope.filterConfig)
+  }
+
+  $scope.doFilterInputTyping = function (keyEvent, jobInfomations, filterConfig) {
+    let RETURN_KEY_CODE = 13
+    $timeout.cancel($scope.dofilterTimeoutObject)
+    $scope.isActiveSearchTimer = true
+    $scope.dofilterTimeoutObject = $timeout(function () {
+      $scope.doFiltering(jobInfomations, filterConfig)
+      $scope.isActiveSearchTimer = false
+    }, 10000)
     if (keyEvent.which === RETURN_KEY_CODE) {
-      $timeout.cancel($scope.dofilterTimeoutObject);
-      $scope.doFiltering(jobInfomations, filterConfig);
-      $scope.isActiveSearchTimer = false;
+      $timeout.cancel($scope.dofilterTimeoutObject)
+      $scope.doFiltering(jobInfomations, filterConfig)
+      $scope.isActiveSearchTimer = false
     }
-  };
-
-  $scope.doForceFilterInputTyping = function(keyEvent, jobInfomations, filterConfig) {
-    $timeout.cancel($scope.dofilterTimeoutObject);
-    $scope.doFiltering(jobInfomations, filterConfig);
-    $scope.isActiveSearchTimer = false;
-  };
-
-  $scope.init = function() {
-    $scope.isLoadingFilter = true;
-    $scope.jobInfomations = [];
-    $scope.JobInfomationsByFilter = $scope.jobInfomations;
+  }
+
+  $scope.doForceFilterInputTyping = function (keyEvent, jobInfomations, filterConfig) {
+    $timeout.cancel($scope.dofilterTimeoutObject)
+    $scope.doFiltering(jobInfomations, filterConfig)
+    $scope.isActiveSearchTimer = false
+  }
+
+  $scope.init = function () {
+    $scope.isLoadingFilter = true
+    $scope.jobInfomations = []
+    $scope.JobInfomationsByFilter = $scope.jobInfomations
     $scope.filterConfig = {
       isRunningAlwaysTop: true,
       filterValueNotebookName: '',
       filterValueInterpreter: '*',
       isSortByAsc: true
-    };
-    $scope.sortTooltipMsg = 'Switch to sort by desc';
-    $scope.jobTypeFilter = jobManagerFilter;
+    }
+    $scope.sortTooltipMsg = 'Switch to sort by desc'
+    $scope.jobTypeFilter = jobManagerFilter
 
-    websocketMsgSrv.getNoteJobsList();
+    websocketMsgSrv.getNoteJobsList()
 
     $scope.$watch('filterConfig.isSortByAsc', function (value) {
       if (value) {
-        $scope.sortTooltipMsg = 'Switch to sort by desc';
+        $scope.sortTooltipMsg = 'Switch to sort by desc'
       } else {
-        $scope.sortTooltipMsg = 'Switch to sort by asc';
+        $scope.sortTooltipMsg = 'Switch to sort by asc'
       }
-    });
+    })
 
-    $scope.$on('$destroy', function() {
-      websocketMsgSrv.unsubscribeJobManager();
-    });
-  };
+    $scope.$on('$destroy', function () {
+      websocketMsgSrv.unsubscribeJobManager()
+    })
+  }
 
   /*
    ** $scope.$on functions below
    */
 
-  $scope.$on('setNoteJobs', function(event, responseData) {
-    $scope.lastJobServerUnixTime = responseData.lastResponseUnixTime;
-    $scope.jobInfomations = responseData.jobs;
-    $scope.jobInfomationsIndexs = $scope.jobInfomations ? _.indexBy($scope.jobInfomations, 'noteId') : {};
-    $scope.jobTypeFilter($scope.jobInfomations, $scope.filterConfig);
+  $scope.$on('setNoteJobs', function (event, responseData) {
+    $scope.lastJobServerUnixTime = responseData.lastResponseUnixTime
+    $scope.jobInfomations = responseData.jobs
+    $scope.jobInfomationsIndexs = $scope.jobInfomations ? _.indexBy($scope.jobInfomations, 'noteId') : {}
+    $scope.jobTypeFilter($scope.jobInfomations, $scope.filterConfig)
     $scope.activeInterpreters = [
       {
         name: 'ALL',
         value: '*'
       }
-    ];
-    var interpreterLists = _.uniq(_.pluck($scope.jobInfomations, 'interpreter'), false);
-    for (var index = 0, length = interpreterLists.length; index < length; index++) {
+    ]
+    let interpreterLists = _.uniq(_.pluck($scope.jobInfomations, 'interpreter'), false)
+    for (let index = 0, length = interpreterLists.length; index < length; index++) {
       $scope.activeInterpreters.push({
         name: interpreterLists[index],
         value: interpreterLists[index]
-      });
+      })
     }
-    $scope.doFiltering($scope.jobInfomations, $scope.filterConfig);
-  });
-
-  $scope.$on('setUpdateNoteJobs', function(event, responseData) {
-    var jobInfomations = $scope.jobInfomations;
-    var indexStore = $scope.jobInfomationsIndexs;
-    $scope.lastJobServerUnixTime = responseData.lastResponseUnixTime;
-    var notes = responseData.jobs;
-    notes.map(function(changedItem) {
+    $scope.doFiltering($scope.jobInfomations, $scope.filterConfig)
+  })
+
+  $scope.$on('setUpdateNoteJobs', function (event, responseData) {
+    let jobInfomations = $scope.jobInfomations
+    let indexStore = $scope.jobInfomationsIndexs
+    $scope.lastJobServerUnixTime = responseData.lastResponseUnixTime
+    let notes = responseData.jobs
+    notes.map(function (changedItem) {
       if (indexStore[changedItem.noteId] === undefined) {
-        var newItem = angular.copy(changedItem);
-        jobInfomations.push(newItem);
-        indexStore[changedItem.noteId] = newItem;
+        let newItem = angular.copy(changedItem)
+        jobInfomations.push(newItem)
+        indexStore[changedItem.noteId] = newItem
       } else {
-        var changeOriginTarget = indexStore[changedItem.noteId];
+        let changeOriginTarget = indexStore[changedItem.noteId]
 
         if (changedItem.isRemoved !== undefined && changedItem.isRemoved === true) {
-
           // remove Item.
-          var removeIndex = _.findIndex(indexStore, changedItem.noteId);
+          let removeIndex = _.findIndex(indexStore, changedItem.noteId)
           if (removeIndex > -1) {
-            indexStore.splice(removeIndex, 1);
+            indexStore.splice(removeIndex, 1)
           }
 
-          removeIndex = _.findIndex(jobInfomations, {'noteId': changedItem.noteId});
+          removeIndex = _.findIndex(jobInfomations, {'noteId': changedItem.noteId})
           if (removeIndex) {
-            jobInfomations.splice(removeIndex, 1);
+            jobInfomations.splice(removeIndex, 1)
           }
-
         } else {
           // change value for item.
-          changeOriginTarget.isRunningJob = changedItem.isRunningJob;
-          changeOriginTarget.noteName = changedItem.noteName;
-          changeOriginTarget.noteType = changedItem.noteType;
-          changeOriginTarget.interpreter = changedItem.interpreter;
-          changeOriginTarget.unixTimeLastRun = changedItem.unixTimeLastRun;
-          changeOriginTarget.paragraphs = changedItem.paragraphs;
+          changeOriginTarget.isRunningJob = changedItem.isRunningJob
+          changeOriginTarget.noteName = changedItem.noteName
+          changeOriginTarget.noteType = changedItem.noteType
+          changeOriginTarget.interpreter = changedItem.interpreter
+          changeOriginTarget.unixTimeLastRun = changedItem.unixTimeLastRun
+          changeOriginTarget.paragraphs = changedItem.paragraphs
         }
       }
-    });
-    $scope.doFiltering(jobInfomations, $scope.filterConfig);
-  });
+    })
+    $scope.doFiltering(jobInfomations, $scope.filterConfig)
+  })
 }
-

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/19b0f30f/zeppelin-web/src/app/jobmanager/jobmanager.filter.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/jobmanager/jobmanager.filter.js b/zeppelin-web/src/app/jobmanager/jobmanager.filter.js
index 05a1b6e..9211498 100644
--- a/zeppelin-web/src/app/jobmanager/jobmanager.filter.js
+++ b/zeppelin-web/src/app/jobmanager/jobmanager.filter.js
@@ -12,37 +12,36 @@
  * limitations under the License.
  */
 
-angular.module('zeppelinWebApp').filter('jobManager', jobManagerFilter);
+angular.module('zeppelinWebApp').filter('jobManager', jobManagerFilter)
 
-function jobManagerFilter() {
-  function filterContext(jobItems, filterConfig) {
-    var filterValueInterpreter = filterConfig.filterValueInterpreter;
-    var filterValueNotebookName = filterConfig.filterValueNotebookName;
-    var isSortByAsc = filterConfig.isSortByAsc;
-    var filterItems = jobItems;
+function jobManagerFilter () {
+  function filterContext (jobItems, filterConfig) {
+    let filterValueInterpreter = filterConfig.filterValueInterpreter
+    let filterValueNotebookName = filterConfig.filterValueNotebookName
+    let isSortByAsc = filterConfig.isSortByAsc
+    let filterItems = jobItems
 
     if (filterValueInterpreter === undefined) {
-      filterItems = _.filter(filterItems, function(jobItem) {
-        return jobItem.interpreter === undefined ? true : false;
-      });
+      filterItems = _.filter(filterItems, function (jobItem) {
+        return jobItem.interpreter === undefined ? true : false
+      })
     } else if (filterValueInterpreter !== '*') {
-      filterItems = _.where(filterItems, {interpreter: filterValueInterpreter});
+      filterItems = _.where(filterItems, {interpreter: filterValueInterpreter})
     }
 
     if (filterValueNotebookName !== '') {
-      filterItems = _.filter(filterItems, function(jobItem) {
-        var lowerFilterValue = filterValueNotebookName.toLocaleLowerCase();
-        var lowerNotebookName = jobItem.noteName.toLocaleLowerCase();
-        return lowerNotebookName.match(new RegExp('.*' + lowerFilterValue + '.*'));
-      });
+      filterItems = _.filter(filterItems, function (jobItem) {
+        let lowerFilterValue = filterValueNotebookName.toLocaleLowerCase()
+        let lowerNotebookName = jobItem.noteName.toLocaleLowerCase()
+        return lowerNotebookName.match(new RegExp('.*' + lowerFilterValue + '.*'))
+      })
     }
 
-    filterItems = _.sortBy(filterItems, function(sortItem) {
-      return sortItem.noteName.toLowerCase();
-    });
+    filterItems = _.sortBy(filterItems, function (sortItem) {
+      return sortItem.noteName.toLowerCase()
+    })
 
-    return isSortByAsc ? filterItems : filterItems.reverse();
+    return isSortByAsc ? filterItems : filterItems.reverse()
   }
-  return filterContext;
+  return filterContext
 }
-

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/19b0f30f/zeppelin-web/src/app/jobmanager/jobs/job.controller.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/jobmanager/jobs/job.controller.js b/zeppelin-web/src/app/jobmanager/jobs/job.controller.js
index 50f8d7a..e1ce02d 100644
--- a/zeppelin-web/src/app/jobmanager/jobs/job.controller.js
+++ b/zeppelin-web/src/app/jobmanager/jobs/job.controller.js
@@ -12,38 +12,38 @@
  * limitations under the License.
  */
 
-import { ParagraphStatus, } from '../../notebook/paragraph/paragraph.status';
+import { ParagraphStatus, } from '../../notebook/paragraph/paragraph.status'
 
-angular.module('zeppelinWebApp').controller('JobCtrl', JobCtrl);
+angular.module('zeppelinWebApp').controller('JobCtrl', JobCtrl)
 
-function JobCtrl($scope, $http, baseUrlSrv) {
-  'ngInject';
+function JobCtrl ($scope, $http, baseUrlSrv) {
+  'ngInject'
 
-  $scope.init = function(jobInformation) {
-    $scope.progressValue = 0;
-  };
+  $scope.init = function (jobInformation) {
+    $scope.progressValue = 0
+  }
 
-  $scope.getProgress = function() {
-    var statusList = _.pluck($scope.notebookJob.paragraphs, 'status');
-    var runningJob = _.countBy(statusList, function(status) {
+  $scope.getProgress = function () {
+    let statusList = _.pluck($scope.notebookJob.paragraphs, 'status')
+    let runningJob = _.countBy(statusList, function (status) {
       if (status === ParagraphStatus.RUNNING || status === ParagraphStatus.FINISHED) {
-        return 'matchCount';
+        return 'matchCount'
       } else {
-        return 'none';
+        return 'none'
       }
-    });
-    var totalCount = statusList.length;
-    var runningJobCount = runningJob.matchCount;
-    var result = Math.ceil(runningJobCount / totalCount * 100);
-    return isNaN(result) ? 0 : result;
-  };
+    })
+    let totalCount = statusList.length
+    let runningJobCount = runningJob.matchCount
+    let result = Math.ceil(runningJobCount / totalCount * 100)
+    return isNaN(result) ? 0 : result
+  }
 
-  $scope.runNotebookJob = function(notebookId) {
+  $scope.runNotebookJob = function (notebookId) {
     BootstrapDialog.confirm({
       closable: true,
       title: '',
       message: 'Run all paragraphs?',
-      callback: function(result) {
+      callback: function (result) {
         if (result) {
           $http({
             method: 'POST',
@@ -51,30 +51,31 @@ function JobCtrl($scope, $http, baseUrlSrv) {
             headers: {
               'Content-Type': 'application/x-www-form-urlencoded'
             }
-          }).then(function successCallback(response) {
+          }).then(function successCallback (response) {
             // success
-          }, function errorCallback(errorResponse) {
-            var errorText = 'SERVER ERROR';
+          }, function errorCallback (errorResponse) {
+            let errorText = 'SERVER ERROR'
+            // eslint-disable-next-line no-extra-boolean-cast
             if (!!errorResponse.data.message) {
-              errorText = errorResponse.data.message;
+              errorText = errorResponse.data.message
             }
             BootstrapDialog.alert({
               closable: true,
               title: 'Execution Failure',
               message: errorText
-            });
-          });
+            })
+          })
         }
       }
-    });
-  };
+    })
+  }
 
-  $scope.stopNotebookJob = function(notebookId) {
+  $scope.stopNotebookJob = function (notebookId) {
     BootstrapDialog.confirm({
       closable: true,
       title: '',
       message: 'Stop all paragraphs?',
-      callback: function(result) {
+      callback: function (result) {
         if (result) {
           $http({
             method: 'DELETE',
@@ -82,28 +83,26 @@ function JobCtrl($scope, $http, baseUrlSrv) {
             headers: {
               'Content-Type': 'application/x-www-form-urlencoded'
             }
-          }).then(function successCallback(response) {
+          }).then(function successCallback (response) {
             // success
-          }, function errorCallback(errorResponse) {
-            var errorText = 'SERVER ERROR';
+          }, function errorCallback (errorResponse) {
+            let errorText = 'SERVER ERROR'
+            // eslint-disable-next-line no-extra-boolean-cast
             if (!!errorResponse.data.message) {
-
-              errorText = errorResponse.data.message;
+              errorText = errorResponse.data.message
             }
             BootstrapDialog.alert({
               closable: true,
               title: 'Stop Failure',
               message: errorText
-            });
-          });
+            })
+          })
         }
       }
-    });
-  };
-
-  $scope.lastExecuteTime = function(unixtime) {
-    return moment.unix(unixtime / 1000).fromNow();
-  };
+    })
+  }
 
+  $scope.lastExecuteTime = function (unixtime) {
+    return moment.unix(unixtime / 1000).fromNow()
+  }
 }
-