%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /data/old/home/stash/atlassian-stash/static/page/project/settings/
Upload File :
Create Path :
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");
    };
});

Zerion Mini Shell 1.0