change ui for interpreter running Per x mode

This commit is contained in:
CloverHearts 2016-10-17 22:59:01 +09:00 committed by Jongyoul Lee
parent 0b5d671629
commit 8586e1f2a4
2 changed files with 121 additions and 41 deletions

View file

@ -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,

View file

@ -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;">