mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
change ui for interpreter running Per x mode
This commit is contained in:
parent
0b5d671629
commit
8586e1f2a4
2 changed files with 121 additions and 41 deletions
|
|
@ -16,9 +16,9 @@
|
|||
|
||||
angular.module('zeppelinWebApp').controller('InterpreterCtrl', InterpreterCtrl);
|
||||
|
||||
InterpreterCtrl.$inject = ['$scope', '$http', 'baseUrlSrv', 'ngToast', '$timeout', '$route'];
|
||||
InterpreterCtrl.$inject = ['$rootScope', '$scope', '$http', 'baseUrlSrv', 'ngToast', '$timeout', '$route'];
|
||||
|
||||
function InterpreterCtrl($scope, $http, baseUrlSrv, ngToast, $timeout, $route) {
|
||||
function InterpreterCtrl($rootScope, $scope, $http, baseUrlSrv, ngToast, $timeout, $route) {
|
||||
var interpreterSettingsTmp = [];
|
||||
$scope.interpreterSettings = [];
|
||||
$scope.availableInterpreters = {};
|
||||
|
|
@ -196,6 +196,59 @@
|
|||
}
|
||||
};
|
||||
|
||||
$scope.getInterpreterRunningOption = function(settingId) {
|
||||
var option;
|
||||
if (settingId === undefined) {
|
||||
option = $scope.newInterpreterSetting.option;
|
||||
} else {
|
||||
var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
|
||||
var setting = $scope.interpreterSettings[index];
|
||||
option = setting.option;
|
||||
}
|
||||
|
||||
var isPerNote = option.perNote;
|
||||
var isPerUser = option.perUser;
|
||||
|
||||
if (isPerNote === true && isPerUser === false) {
|
||||
if (option.session === false && option.process === false) {
|
||||
option.session = true;
|
||||
}
|
||||
|
||||
return {value: 'Per Note', isPerNote: isPerNote, isPerUser: isPerUser};
|
||||
} else if (isPerNote !== undefined && isPerUser === true) {
|
||||
if (option.session === false && option.process === false) {
|
||||
option.session = true;
|
||||
}
|
||||
console.log('clover ', $rootScope.ticket);
|
||||
if ($rootScope.ticket.ticket === 'anonymous' && $rootScope.ticket.roles === '[]') {
|
||||
option.perNote = true;
|
||||
option.perUser = false;
|
||||
return {value: 'Per Note', isPerNote: isPerNote, isPerUser: isPerUser};
|
||||
}
|
||||
return {value: 'Per User', isPerNote: isPerNote, isPerUser: isPerUser};
|
||||
|
||||
} else {
|
||||
// fixed shared on Globally
|
||||
option.session = false;
|
||||
option.process = false;
|
||||
|
||||
return {value: 'Globally', isPerNote: isPerNote, isPerUser: isPerUser};
|
||||
}
|
||||
};
|
||||
|
||||
$scope.setInterpreterRunningOption = function (settingId, isPerNoteMode, isPerUserMode) {
|
||||
var option;
|
||||
if (settingId === undefined) {
|
||||
option = $scope.newInterpreterSetting.option;
|
||||
} else {
|
||||
var index = _.findIndex($scope.interpreterSettings, {'id': settingId});
|
||||
var setting = $scope.interpreterSettings[index];
|
||||
option = setting.option;
|
||||
}
|
||||
option.perNote = isPerNoteMode;
|
||||
option.perUser = isPerUserMode;
|
||||
};
|
||||
|
||||
$scope.updateInterpreterSetting = function(form, settingId) {
|
||||
var thisConfirm = BootstrapDialog.confirm({
|
||||
closable: false,
|
||||
|
|
|
|||
|
|
@ -145,45 +145,72 @@ limitations under the License.
|
|||
<div class="row interpreter">
|
||||
<div class="col-md-12">
|
||||
<h5>Option</h5>
|
||||
<span class="checkbox input-group">
|
||||
<label><input type="checkbox" style="width:0%;height:0%" id="perNote" ng-model="setting.option.perNote" ng-disabled="!valueform.$visible"/>
|
||||
perNote </label>
|
||||
</span>
|
||||
<span class="checkbox input-group">
|
||||
<label><input type="checkbox" style="width:0%;height:0%" id="perUser" ng-model="setting.option.perUser" ng-disabled="!valueform.$visible"/>
|
||||
perUser</label>
|
||||
</span>
|
||||
<span class="btn-group">
|
||||
<button type="button" class="btn btn-default btn-xs dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
ng-disabled="!valueform.$visible">
|
||||
{{getSessionOption(setting.id)}} <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li>
|
||||
<a style="cursor:pointer"
|
||||
tooltip="Single interpreter instance are shared across notes"
|
||||
ng-click="setSessionOption(setting.id, 'shared')">
|
||||
shared
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a style="cursor:pointer"
|
||||
tooltip="Separate Interpreter instance for each note"
|
||||
ng-click="setSessionOption(setting.id, 'scoped')">
|
||||
scoped
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a style="cursor:pointer"
|
||||
tooltip="Separate Interpreter process for each note"
|
||||
ng-click="setSessionOption(setting.id, 'isolated')">
|
||||
isolated
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
<span>Interpreter for note</span>
|
||||
<div class="row interpreter" style="margin-top: 5px;">
|
||||
<div class="col-md-12">
|
||||
The interpreter will be instantiated
|
||||
<span class="btn-group">
|
||||
<button type="button" class="btn btn-default btn-xs dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
ng-disabled="!valueform.$visible">
|
||||
{{getInterpreterRunningOption(setting.id).value}} <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li>
|
||||
<a style="cursor:pointer"
|
||||
ng-click="setInterpreterRunningOption(setting.id, false, false)">
|
||||
Globally
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a style="cursor:pointer"
|
||||
ng-click="setInterpreterRunningOption(setting.id, true, false)">
|
||||
Per Note
|
||||
</a>
|
||||
</li>
|
||||
<li ng-if="ticket.ticket !== 'anonymous' && ticket.roles.length !== 0">
|
||||
<a style="cursor:pointer"
|
||||
ng-click="setInterpreterRunningOption(setting.id, false, true)">
|
||||
Per User
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
in
|
||||
<span class="btn-group">
|
||||
<button type="button" class="btn btn-default btn-xs dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
ng-disabled="!valueform.$visible
|
||||
|| getInterpreterRunningOption(setting.id).value === 'Globally'">
|
||||
{{getSessionOption(setting.id)}} <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li
|
||||
ng-if="getInterpreterRunningOption(setting.id).value === 'Globally'">
|
||||
<a style="cursor:pointer"
|
||||
tooltip="Single interpreter instance are shared across notes"
|
||||
ng-click="setSessionOption(setting.id, 'shared')">
|
||||
shared
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a style="cursor:pointer"
|
||||
tooltip="Separate Interpreter instance for each note"
|
||||
ng-click="setSessionOption(setting.id, 'scoped')">
|
||||
scoped
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a style="cursor:pointer"
|
||||
tooltip="Separate Interpreter process for each note"
|
||||
ng-click="setSessionOption(setting.id, 'isolated')">
|
||||
isolated
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
process.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row interpreter" style="margin-top: 5px;">
|
||||
|
|
|
|||
Loading…
Reference in a new issue