diff --git a/zeppelin-web/src/app/interpreter/interpreter.controller.js b/zeppelin-web/src/app/interpreter/interpreter.controller.js index ab660330654..ad55aef3aa4 100644 --- a/zeppelin-web/src/app/interpreter/interpreter.controller.js +++ b/zeppelin-web/src/app/interpreter/interpreter.controller.js @@ -14,8 +14,9 @@ */ 'use strict'; -angular.module('zeppelinWebApp').controller('InterpreterCtrl', function($scope, $route, $routeParams, $location, $rootScope, - $http, baseUrlSrv, ngToast) { +angular.module('zeppelinWebApp').controller('InterpreterCtrl', function($scope, $route, + $routeParams, $location, $rootScope, $http, baseUrlSrv, + ngToast, baseInterpreterService) { var interpreterSettingsTmp = []; $scope.interpreterSettings = []; $scope.availableInterpreters = {}; @@ -23,16 +24,6 @@ angular.module('zeppelinWebApp').controller('InterpreterCtrl', function($scope, $scope.showRepositoryInfo = false; $scope._ = _; - var getInterpreterSettings = function() { - $http.get(baseUrlSrv.getRestApiBase()+'/interpreter/setting'). - success(function(data, status, headers, config) { - $scope.interpreterSettings = data.body; - }). - error(function(data, status, headers, config) { - console.log('Error %o %o', status, data.message); - }); - }; - var getAvailableInterpreters = function() { $http.get(baseUrlSrv.getRestApiBase()+'/interpreter'). success(function(data, status, headers, config) { @@ -153,14 +144,10 @@ angular.module('zeppelinWebApp').controller('InterpreterCtrl', function($scope, message: 'Do you want to restart this interpreter?', 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; - }). - error(function(data, status, headers, config) { - console.log('Error %o %o', status, data.message); - }); + baseInterpreterService.restartInterpreterSetting(settingId).then(function(interpreterSettings) { + var index = _.findIndex($scope.interpreterSettings, {'id': settingId}); + $scope.interpreterSettings[index] = interpreterSettings; + }); } } }); @@ -202,16 +189,18 @@ angular.module('zeppelinWebApp').controller('InterpreterCtrl', function($scope, } request.properties = newProperties; - $http.post(baseUrlSrv.getRestApiBase() + '/interpreter/setting', request). - success(function(data, status, headers, config) { - $scope.resetNewInterpreterSetting(); - getInterpreterSettings(); - $scope.showAddNewSetting = false; - }). - error(function(data, status, headers, config) { - console.log('Error %o %o', status, data.message); - ngToast.danger(data.message); + $http.post(baseUrlSrv.getRestApiBase()+'/interpreter/setting', newSetting). + success(function(data, status, headers, config) { + $scope.resetNewInterpreterSetting(); + baseInterpreterService.getInterpreterSettings().then(function(setting) { + $scope.interpreterSettings = setting; }); + $scope.showAddNewSetting = false; + }). + error(function(data, status, headers, config) { + console.log('Error %o %o', status, data.message); + ngToast.danger(data.message); + }); }; $scope.cancelInterpreterSetting = function() { @@ -399,8 +388,9 @@ angular.module('zeppelinWebApp').controller('InterpreterCtrl', function($scope, var init = function() { $scope.resetNewInterpreterSetting(); - $scope.resetNewRepositorySetting(); - getInterpreterSettings(); + baseInterpreterService.getInterpreterSettings().then(function(setting) { + $scope.interpreterSettings = setting; + }); getAvailableInterpreters(); getRepositories(); }; diff --git a/zeppelin-web/src/app/notebook/notebook.controller.js b/zeppelin-web/src/app/notebook/notebook.controller.js index 194cd7788ca..49b6518e962 100644 --- a/zeppelin-web/src/app/notebook/notebook.controller.js +++ b/zeppelin-web/src/app/notebook/notebook.controller.js @@ -16,8 +16,8 @@ 'use strict'; angular.module('zeppelinWebApp').controller('NotebookCtrl', - function($scope, $route, $routeParams, $location, $rootScope, $http, - websocketMsgSrv, baseUrlSrv, $timeout, SaveAsService) { + function($scope, $route, $routeParams, $location, $rootScope, $http, websocketMsgSrv, baseUrlSrv, + $timeout, SaveAsService, baseInterpreterService) { $scope.note = null; $scope.showEditor = false; $scope.editorToggled = false; @@ -694,6 +694,47 @@ angular.module('zeppelinWebApp').controller('NotebookCtrl', } }; + $scope.restartInterpreterSetting = function(id) { + var paragraph; + for (var paragraphIndex in $scope.note.paragraphs) { + if ($scope.note.paragraphs[paragraphIndex].id == id) { + paragraph = $scope.note.paragraphs[paragraphIndex]; + } + } + var settingId = ""; + var settingName = ""; + var language; + if (paragraph.text.split('\n')[0][0] === '%') { + language = paragraph.text.split('\n')[0].split(' ')[0].split('.')[0].split('%')[1]; + } + if (language) { + for (var settingIndex in $scope.interpreterBindings) { + if ($scope.interpreterBindings[settingIndex].name === language) { + settingId = $scope.interpreterBindings[settingIndex].id; + settingName = $scope.interpreterBindings[settingIndex].group; + break; + } + } + } else { + settingId = $scope.interpreterBindings[0].id; + settingName = $scope.interpreterBindings[0].group; + } + + BootstrapDialog.confirm({ + title: '', + message: 'Restart ' + settingName + ' interpreter?