Adding in the delete api and the delete and create UI.
This commit is contained in:
parent
43063272bb
commit
97d644d95d
12 changed files with 277 additions and 12 deletions
90
static/directives/global-message-tab.html
Normal file
90
static/directives/global-message-tab.html
Normal file
|
@ -0,0 +1,90 @@
|
|||
<!-- Messages tab -->
|
||||
<div class="global-message-tab-element">
|
||||
<div class="cor-loader" ng-show="!messages"></div>
|
||||
<div ng-show="messages">
|
||||
<div class="manager-header" header-title="Messages">
|
||||
<button class="create-button btn btn-primary" ng-click="showCreateMessage()">
|
||||
<i class="fa fa-plus" style="margin-right: 6px;"></i>Create Message
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<table class="cor-table">
|
||||
<thead>
|
||||
<td>Message</td>
|
||||
<td style="options-cols"></td>
|
||||
</thead>
|
||||
|
||||
<tr ng-repeat="message in messages" class="user-row">
|
||||
<td>
|
||||
{{ message.content }}
|
||||
</td>
|
||||
<td class="options-col">
|
||||
<span class="cor-options-menu">
|
||||
<span class="cor-option" option-click="showDeleteMessage(message.uuid)">
|
||||
<i class="fa fa-times"></i> Delete Message
|
||||
</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><!-- Messages tab -->
|
||||
|
||||
<!-- Modal delete message dialog -->
|
||||
<div class="co-dialog modal fade" id="confirmDeleteMessageModal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">Delete Message?</h4>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-danger" ng-click="deleteMessage(messageToDelete)">Delete Message</button>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- Modal create message dialog -->
|
||||
<div class="co-dialog modal fade" id="createMessageModal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">Create new message</h4>
|
||||
</div>
|
||||
<form name="createMessageForm" ng-submit="createNewMessage()">
|
||||
<div class="modal-body" ng-show="createdMessage">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<th>Message</th>
|
||||
</thead>
|
||||
<tr class="user-row">
|
||||
<td>{{ createdMessage.content }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="modal-body" ng-show="creatingMessage">
|
||||
<div class="cor-loader"></div>
|
||||
</div>
|
||||
<div class="modal-body" ng-show="!creatingMessage && !createdMessage">
|
||||
<div class="form-group">
|
||||
<label>Message</label>
|
||||
<input class="form-control" type="text" ng-model="newMessage.content" required>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer" ng-show="createdMessage">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
</div>
|
||||
<div class="modal-footer" ng-show="!creatingMessage && !createdMessage">
|
||||
<button class="btn btn-primary" type="submit" ng-disabled="!createMessageForm.$valid">
|
||||
Create Message
|
||||
</button>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
</form>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
</div>
|
81
static/js/directives/ui/global-message-tab.js
Normal file
81
static/js/directives/ui/global-message-tab.js
Normal file
|
@ -0,0 +1,81 @@
|
|||
/**
|
||||
* An element for managing global messages.
|
||||
*/
|
||||
angular.module('quay').directive('globalMessageTab', function () {
|
||||
var directiveDefinitionObject = {
|
||||
priority: 0,
|
||||
templateUrl: '/static/directives/global-message-tab.html',
|
||||
replace: false,
|
||||
transclude: true,
|
||||
restrict: 'C',
|
||||
scope: {
|
||||
'isEnabled': '=isEnabled'
|
||||
},
|
||||
controller: function ($scope, $element, ApiService) {
|
||||
$scope.newMessage = {};
|
||||
$scope.creatingMessage = false;
|
||||
|
||||
$scope.showCreateMessage = function () {
|
||||
$scope.createdMessage = null;
|
||||
$('#createMessageModal').modal('show');
|
||||
};
|
||||
|
||||
$scope.createNewMessage = function () {
|
||||
$scope.creatingMessage = true;
|
||||
$scope.createdMessage = null;
|
||||
|
||||
var errorHandler = ApiService.errorDisplay('Cannot create message', function () {
|
||||
$scope.creatingMessage = false;
|
||||
$('#createMessageModal').modal('hide');
|
||||
});
|
||||
|
||||
var data = {
|
||||
message: $scope.newMessage
|
||||
};
|
||||
|
||||
ApiService.createMessages(data, null).then(function (resp) {
|
||||
$scope.creatingMessage = false;
|
||||
$scope.createdMessage = {content: $scope.newMessage.content};
|
||||
$scope.newMessage = {};
|
||||
$scope.loadMessageInternal();
|
||||
}, errorHandler)
|
||||
};
|
||||
|
||||
$scope.showDeleteMessage = function (uuid) {
|
||||
$scope.messageToDelete = uuid;
|
||||
$('#confirmDeleteMessageModal').modal({});
|
||||
};
|
||||
|
||||
$scope.deleteMessage = function (uuid) {
|
||||
$('#confirmDeleteMessageModal').modal('hide');
|
||||
ApiService.deleteGlobalMessage(null, {uuid: uuid}).then(function (resp) {
|
||||
$scope.loadMessageInternal();
|
||||
}, ApiService.errorDisplay('Can not delete message'));
|
||||
};
|
||||
|
||||
$scope.loadMessageOfTheDay = function () {
|
||||
if ($scope.messages) {
|
||||
return;
|
||||
}
|
||||
|
||||
$scope.loadMessageInternal();
|
||||
};
|
||||
|
||||
$scope.loadMessageInternal = function () {
|
||||
ApiService.getMessages().then(function (resp) {
|
||||
$scope.messages = resp['messages'];
|
||||
}, function (resp) {
|
||||
$scope.messages = [];
|
||||
$scope.messagesErrors = ApiService.getErrorMessage(resp);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.$watch('isEnabled', function (value) {
|
||||
if (value) {
|
||||
$scope.loadMessageInternal();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
return directiveDefinitionObject;
|
||||
});
|
|
@ -31,8 +31,12 @@
|
|||
$scope.csrf_token = encodeURIComponent(window.__token);
|
||||
$scope.currentConfig = null;
|
||||
$scope.serviceKeysActive = false;
|
||||
$scope.globalMessagesActive = false;
|
||||
$scope.takeOwnershipInfo = null;
|
||||
|
||||
$scope.loadMessageOfTheDay = function () {
|
||||
$scope.globalMessagesActive = true;
|
||||
};
|
||||
$scope.configurationSaved = function(config) {
|
||||
$scope.currentConfig = config;
|
||||
$scope.requiresRestart = true;
|
||||
|
@ -69,7 +73,7 @@
|
|||
var errorHandler = ApiService.errorDisplay('Cannot load system logs. Please contact support.',
|
||||
function() {
|
||||
callback(false);
|
||||
})
|
||||
});
|
||||
|
||||
ApiService.getSystemLogs(null, params, /* background */true).then(function(resp) {
|
||||
$scope.debugLogs = resp['logs'];
|
||||
|
@ -95,7 +99,7 @@
|
|||
ApiService.getChangeLog().then(function(resp) {
|
||||
$scope.changeLog = resp;
|
||||
}, ApiService.errorDisplay('Cannot load change log. Please contact support.'))
|
||||
}
|
||||
};
|
||||
|
||||
$scope.loadUsageLogs = function() {
|
||||
$scope.logsCounter++;
|
||||
|
|
|
@ -41,6 +41,10 @@
|
|||
tab-init="loadConfig()">
|
||||
<i class="fa fa-cog"></i>
|
||||
</span>
|
||||
<span class="cor-tab hidden-xs" tab-title="Globally visible user messages" tab-target="#message-of-the-day"
|
||||
tab-init="loadMessageOfTheDay()">
|
||||
<i class="fa fa-newspaper-o"></i>
|
||||
</span>
|
||||
</div> <!-- /cor-tabs -->
|
||||
|
||||
<div class="cor-tab-content">
|
||||
|
@ -50,6 +54,12 @@
|
|||
configuration-saved="configurationSaved(config)"></div>
|
||||
</div>
|
||||
|
||||
<!-- Messages tab -->
|
||||
<div id="message-of-the-day" class="tab-pane">
|
||||
<div class="global-message-tab" is-enabled="globalMessagesActive"></div>
|
||||
</div> <!-- Messages tab -->
|
||||
|
||||
|
||||
<!-- Service keys tab -->
|
||||
<div id="servicekeys" class="tab-pane">
|
||||
<div class="service-keys-manager" is-enabled="serviceKeysActive"></div>
|
||||
|
@ -269,7 +279,7 @@
|
|||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
<!-- Modal message dialog -->
|
||||
<!-- Modal create user dialog -->
|
||||
<div class="co-dialog modal fade" id="createUserModal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
|
|
Reference in a new issue