103 lines
2.8 KiB
JavaScript
103 lines
2.8 KiB
JavaScript
|
/**
|
||
|
* 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, StateService) {
|
||
|
$scope.inReadOnlyMode = StateService.inReadOnlyMode();
|
||
|
|
||
|
$scope.newMessage = {
|
||
|
'media_type': 'text/markdown',
|
||
|
'severity': 'info'
|
||
|
};
|
||
|
$scope.creatingMessage = false;
|
||
|
|
||
|
$scope.showCreateMessage = function () {
|
||
|
$scope.createdMessage = null;
|
||
|
$('#createMessageModal').modal('show');
|
||
|
};
|
||
|
|
||
|
$scope.createNewMessage = function () {
|
||
|
if (StateService.inReadOnlyMode()) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$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.createGlobalMessage(data, null).then(function (resp) {
|
||
|
$scope.creatingMessage = false;
|
||
|
|
||
|
$('#createMessageModal').modal('hide');
|
||
|
$scope.loadMessageInternal();
|
||
|
}, errorHandler)
|
||
|
};
|
||
|
|
||
|
$scope.updateMessage = function(content) {
|
||
|
$scope.newMessage.content = content;
|
||
|
};
|
||
|
|
||
|
$scope.showDeleteMessage = function (uuid) {
|
||
|
if (StateService.inReadOnlyMode()) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$scope.messageToDelete = uuid;
|
||
|
$('#confirmDeleteMessageModal').modal({});
|
||
|
};
|
||
|
|
||
|
$scope.deleteMessage = function (uuid) {
|
||
|
if (StateService.inReadOnlyMode()) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$('#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.getGlobalMessages().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;
|
||
|
});
|