mirror of
https://github.com/sismics/docs.git
synced 2024-11-24 22:57:56 +01:00
#159: workflow ui init
This commit is contained in:
parent
332ac9c109
commit
5f9094c540
@ -155,6 +155,33 @@ angular.module('docs',
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.state('settings.workflow', {
|
||||||
|
url: '/workflow',
|
||||||
|
views: {
|
||||||
|
'settings': {
|
||||||
|
templateUrl: 'partial/docs/settings.workflow.html',
|
||||||
|
controller: 'SettingsWorkflow'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.workflow.edit', {
|
||||||
|
url: '/edit/:id',
|
||||||
|
views: {
|
||||||
|
'workflow': {
|
||||||
|
templateUrl: 'partial/docs/settings.workflow.edit.html',
|
||||||
|
controller: 'SettingsWorkflowEdit'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.workflow.add', {
|
||||||
|
url: '/add',
|
||||||
|
views: {
|
||||||
|
'workflow': {
|
||||||
|
templateUrl: 'partial/docs/settings.workflow.edit.html',
|
||||||
|
controller: 'SettingsWorkflowEdit'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
.state('settings.group', {
|
.state('settings.group', {
|
||||||
url: '/group',
|
url: '/group',
|
||||||
views: {
|
views: {
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Settings workflow page controller.
|
||||||
|
*/
|
||||||
|
angular.module('docs').controller('SettingsWorkflow', function($scope, $state, Restangular) {
|
||||||
|
/**
|
||||||
|
* Load workflows from server.
|
||||||
|
*/
|
||||||
|
$scope.loadWorkflows = function() {
|
||||||
|
Restangular.one('routemodel').get({
|
||||||
|
sort_column: 1,
|
||||||
|
asc: true
|
||||||
|
}).then(function(data) {
|
||||||
|
$scope.workflows = data.workflows;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.loadWorkflows();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Edit a user.
|
||||||
|
*/
|
||||||
|
$scope.editWorkflow = function(user) {
|
||||||
|
$state.go('settings.workflow.edit', { id: user.id });
|
||||||
|
};
|
||||||
|
});
|
@ -0,0 +1,68 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Settings workflow edition page controller.
|
||||||
|
*/
|
||||||
|
angular.module('docs').controller('SettingsWorkflowEdit', function($scope, $dialog, $state, $stateParams, Restangular, $translate) {
|
||||||
|
/**
|
||||||
|
* Returns true if in edit mode (false in add mode).
|
||||||
|
*/
|
||||||
|
$scope.isEdit = function () {
|
||||||
|
return $stateParams.id;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* In edit mode, load the current workflow.
|
||||||
|
*/
|
||||||
|
if ($scope.isEdit()) {
|
||||||
|
Restangular.one('routemodel', $stateParams.id).get().then(function (data) {
|
||||||
|
$scope.workflow = data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the current workflow.
|
||||||
|
*/
|
||||||
|
$scope.edit = function () {
|
||||||
|
var promise = null;
|
||||||
|
var workflow = angular.copy($scope.workflow);
|
||||||
|
|
||||||
|
if ($scope.isEdit()) {
|
||||||
|
promise = Restangular
|
||||||
|
.one('routemodel', $stateParams.id)
|
||||||
|
.post('', workflow);
|
||||||
|
} else {
|
||||||
|
promise = Restangular
|
||||||
|
.one('routemodel')
|
||||||
|
.put(workflow);
|
||||||
|
}
|
||||||
|
|
||||||
|
promise.then(function () {
|
||||||
|
$scope.loadWorkflows();
|
||||||
|
$state.go('settings.workflow');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete the current workflow.
|
||||||
|
*/
|
||||||
|
$scope.remove = function () {
|
||||||
|
var title = $translate.instant('settings.workflow.edit.delete_workflow_title');
|
||||||
|
var msg = $translate.instant('settings.workflow.edit.delete_workflow_message');
|
||||||
|
var btns = [
|
||||||
|
{ result:'cancel', label: $translate.instant('cancel') },
|
||||||
|
{ result:'ok', label: $translate.instant('ok'), cssClass: 'btn-primary' }
|
||||||
|
];
|
||||||
|
|
||||||
|
$dialog.messageBox(title, msg, btns, function (result) {
|
||||||
|
if (result === 'ok') {
|
||||||
|
Restangular.one('routemodel', $stateParams.id).remove().then(function () {
|
||||||
|
$scope.loadWorkflows();
|
||||||
|
$state.go('settings.workflow');
|
||||||
|
}, function() {
|
||||||
|
$state.go('settings.workflow');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
});
|
@ -74,6 +74,8 @@
|
|||||||
<script src="app/docs/controller/settings/SettingsSecurityModalDisableTotp.js" type="text/javascript"></script>
|
<script src="app/docs/controller/settings/SettingsSecurityModalDisableTotp.js" type="text/javascript"></script>
|
||||||
<script src="app/docs/controller/settings/SettingsSession.js" type="text/javascript"></script>
|
<script src="app/docs/controller/settings/SettingsSession.js" type="text/javascript"></script>
|
||||||
<script src="app/docs/controller/settings/SettingsLog.js" type="text/javascript"></script>
|
<script src="app/docs/controller/settings/SettingsLog.js" type="text/javascript"></script>
|
||||||
|
<script src="app/docs/controller/settings/SettingsWorkflow.js" type="text/javascript"></script>
|
||||||
|
<script src="app/docs/controller/settings/SettingsWorkflowEdit.js" type="text/javascript"></script>
|
||||||
<script src="app/docs/controller/settings/SettingsUser.js" type="text/javascript"></script>
|
<script src="app/docs/controller/settings/SettingsUser.js" type="text/javascript"></script>
|
||||||
<script src="app/docs/controller/settings/SettingsUserEdit.js" type="text/javascript"></script>
|
<script src="app/docs/controller/settings/SettingsUserEdit.js" type="text/javascript"></script>
|
||||||
<script src="app/docs/controller/settings/SettingsGroup.js" type="text/javascript"></script>
|
<script src="app/docs/controller/settings/SettingsGroup.js" type="text/javascript"></script>
|
||||||
|
@ -224,6 +224,7 @@
|
|||||||
"menu_two_factor_auth": "Two-factor authentication",
|
"menu_two_factor_auth": "Two-factor authentication",
|
||||||
"menu_opened_sessions": "Opened sessions",
|
"menu_opened_sessions": "Opened sessions",
|
||||||
"menu_general_settings": "General settings",
|
"menu_general_settings": "General settings",
|
||||||
|
"menu_workflow": "Workflow",
|
||||||
"menu_users": "Users",
|
"menu_users": "Users",
|
||||||
"menu_groups": "Groups",
|
"menu_groups": "Groups",
|
||||||
"menu_vocabularies": "Vocabularies",
|
"menu_vocabularies": "Vocabularies",
|
||||||
@ -255,6 +256,19 @@
|
|||||||
"password_lost_sent_message": "A password reset email has been sent to <strong>{{ username }}</strong>"
|
"password_lost_sent_message": "A password reset email has been sent to <strong>{{ username }}</strong>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"workflow": {
|
||||||
|
"title": "Workflow <small>configuration</small>",
|
||||||
|
"add_workflow": "Add a workflow",
|
||||||
|
"name": "Name",
|
||||||
|
"create_date": "Create date",
|
||||||
|
"edit": {
|
||||||
|
"delete_workflow_title": "Delete workflow",
|
||||||
|
"delete_workflow_message": "Do you really want to delete this workflow? Currently running workflows will not be deleted",
|
||||||
|
"edit_workflow_title": "<small>Edit</small> \"{{ name }}\"",
|
||||||
|
"add_workflow_title": "<small>Add a</small> workflow",
|
||||||
|
"name": "Name"
|
||||||
|
}
|
||||||
|
},
|
||||||
"security": {
|
"security": {
|
||||||
"enable_totp": "Enable two-factor authentication",
|
"enable_totp": "Enable two-factor authentication",
|
||||||
"enable_totp_message": "Make sure you have a TOTP-compatible application on your phone ready to add a new account",
|
"enable_totp_message": "Make sure you have a TOTP-compatible application on your phone ready to add a new account",
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
<div class="panel panel-default" ng-show="isAdmin">
|
<div class="panel panel-default" ng-show="isAdmin">
|
||||||
<div class="panel-heading"><strong>{{ 'settings.menu_general_settings' | translate }}</strong></div>
|
<div class="panel-heading"><strong>{{ 'settings.menu_general_settings' | translate }}</strong></div>
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
|
<a class="list-group-item" ui-sref-active="{ active: 'settings.workflow.**' }" href="#/settings/workflow">{{ 'settings.menu_workflow' | translate }}</a>
|
||||||
<a class="list-group-item" ui-sref-active="{ active: 'settings.user.**' }" href="#/settings/user">{{ 'settings.menu_users' | translate }}</a>
|
<a class="list-group-item" ui-sref-active="{ active: 'settings.user.**' }" href="#/settings/user">{{ 'settings.menu_users' | translate }}</a>
|
||||||
<a class="list-group-item" ui-sref-active="{ active: 'settings.group.**' }" href="#/settings/group">{{ 'settings.menu_groups' | translate }}</a>
|
<a class="list-group-item" ui-sref-active="{ active: 'settings.group.**' }" href="#/settings/group">{{ 'settings.menu_groups' | translate }}</a>
|
||||||
<a class="list-group-item" ui-sref-active="{ active: 'settings.vocabulary.**' }" href="#/settings/vocabulary">{{ 'settings.menu_vocabularies' | translate }}</a>
|
<a class="list-group-item" ui-sref-active="{ active: 'settings.vocabulary.**' }" href="#/settings/vocabulary">{{ 'settings.menu_vocabularies' | translate }}</a>
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
<img src="img/loader.gif" ng-show="!workflow && isEdit()" />
|
||||||
|
|
||||||
|
<div ng-show="workflow || !isEdit()">
|
||||||
|
<h2 ng-show="isEdit()" translate="settings.workflow.edit.edit_workflow_title" translate-values="{ name: workflow.name }"></h2>
|
||||||
|
<h2 ng-show="!isEdit()" translate="settings.workflow.edit.add_workflow_title"></h2>
|
||||||
|
|
||||||
|
<form class="form-horizontal" name="editWorkflowForm" novalidate>
|
||||||
|
<div class="form-group" ng-class="{ 'has-error': !editWorkflowForm.name.$valid && editWorkflowForm.$dirty, success: editWorkflowForm.name.$valid }">
|
||||||
|
<label class="col-sm-2 control-label" for="inputName">{{ 'settings.workflow.edit.name' | translate }}</label>
|
||||||
|
<div class="col-sm-7">
|
||||||
|
<input name="name" type="text" id="inputName" required ng-disabled="isEdit()" class="form-control"
|
||||||
|
ng-minlength="3" ng-maxlength="50" ng-attr-placeholder="{{ 'settings.workflow.edit.name' | translate }}" ng-model="workflow.name"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<span class="help-block" ng-show="editWorkflowForm.name.$error.required && editWorkflowForm.$dirty">{{ 'validation.required' | translate }}</span>
|
||||||
|
<span class="help-block" ng-show="editWorkflowForm.name.$error.minlength && editWorkflowForm.$dirty">{{ 'validation.too_short' | translate }}</span>
|
||||||
|
<span class="help-block" ng-show="editWorkflowForm.name.$error.maxlength && editWorkflowForm.$dirty">{{ 'validation.too_long' | translate }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="col-sm-offset-2 col-sm-10">
|
||||||
|
<button type="submit" class="btn btn-primary" ng-click="edit()" ng-disabled="!editWorkflowForm.$valid">
|
||||||
|
<span class="glyphicon glyphicon-pencil"></span> {{ isEdit() ? 'save' : 'add' | translate }}
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn btn-danger" ng-click="remove()" ng-show="isEdit()">
|
||||||
|
<span class="glyphicon glyphicon-trash"></span> {{ 'delete' | translate }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
@ -0,0 +1,28 @@
|
|||||||
|
<h1>
|
||||||
|
<span translate="settings.workflow.title"></span>
|
||||||
|
<a class="btn btn-primary" href="#/settings/workflow/add">{{ 'settings.workflow.add_workflow' | translate }}</a>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4 well">
|
||||||
|
<table class="table table-hover table-workflows">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>{{ 'settings.workflow.name' | translate }}</th>
|
||||||
|
<th>{{ 'settings.workflow.create_date' | translate }}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr ng-repeat="workflow in workflows | orderBy: 'name'" ng-click="editWorkflow(workflow)"
|
||||||
|
ng-class="{ active: $stateParams.id == workflow.id }">
|
||||||
|
<td>{{ workflow.name }}</td>
|
||||||
|
<td>{{ workflow.create_date | date: dateFormat }}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-8">
|
||||||
|
<div ui-view="workflow"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
Reference in New Issue
Block a user