%PDF- %PDF-
| Direktori : /data/old/home/stash/atlassian-stash/static/page/project/settings/ |
| Current File : //data/old/home/stash/atlassian-stash/static/page/project/settings/project-settings.js |
define('page/project/settings', [
'aui',
'jquery',
'util/ajax',
'util/flash-notifications',
'util/navbuilder',
'model/page-state',
'widget/confirm-dialog',
'feature/project/project-avatar-picker',
'exports'
], function(
_aui,
$,
ajax,
flashNotifications,
nav,
pageState,
ConfirmDialog,
ProjectAvatarPicker,
exports) {
exports.initDeleteButton = function (deleteButtonSelector) {
var $panelContent = $("<div class='container'></div>"), // css class used for func test
$spinner;
var confirmDialog = new ConfirmDialog({
id: "delete-project-dialog",
titleText: AJS.I18n.getText('stash.web.project.delete'),
titleClass: 'warning-header',
confirmButtonClass: 'delete-confirm-button',
panelContent: $panelContent,
submitText: AJS.I18n.getText('stash.web.button.delete')
}, { type: 'DELETE' });
function initContent() {
$panelContent.empty();
$spinner = $("<div class='spinner'></div>").appendTo($panelContent);
}
function setDeleteButtonEnabled(enabled) {
if (enabled) {
$(".delete-confirm-button").removeProp("disabled").removeClass("disabled");
} else {
$(".delete-confirm-button").prop("disabled", "disabled").addClass("disabled");
}
}
function okToDeleteProject() {
var $content =
$("<p>").html(AJS.I18n.getText('stash.web.project.delete.confirm', "<b>" + _aui.escapeHtml(pageState.getProject().getName()) + "</b>"));
var $contentDetail =
$("<p>").html(AJS.I18n.getText('stash.web.project.delete.confirm.detail'));
$.merge($content, $contentDetail);
$panelContent.append($content);
setDeleteButtonEnabled(true);
}
function cannotDeleteProject() {
var $content =
$("<p>").html(AJS.I18n.getText('stash.web.project.delete.unable', "<b>" + _aui.escapeHtml(pageState.getProject().getName()) + "</b>"));
var $contentDetail =
$("<p>").html(AJS.I18n.getText('stash.web.project.delete.unable.detail'));
$.merge($content, $contentDetail);
$panelContent.append($content);
setDeleteButtonEnabled(false);
}
confirmDialog.attachTo(deleteButtonSelector, function () {
initContent();
setDeleteButtonEnabled(false);
$spinner.spin('large');
ajax.rest({
url: nav.rest().currentProject().allRepos().build(),
statusCode : {
'*' : function() {
return false; // don't show any error messages.
}
}
}).done(function (data) {
if (data && data.size) {
cannotDeleteProject();
} else {
okToDeleteProject();
}
}).fail(function () {
okToDeleteProject();
}).always(function () {
$spinner.spinStop().remove();
});
});
confirmDialog.addConfirmListener(function (promise) {
promise.done(function (data) {
flashNotifications.addNotification(AJS.I18n.getText('stash.web.project.deleted', pageState.getProject().getName()));
window.location = nav.allProjects().build();
});
});
};
exports.onReady = function(){
new ProjectAvatarPicker(".avatar-picker-field");
};
});