AppController.js 3.16 KB
Newer Older
1 2 3
app_module.controller('CreateAppController',
                      ['$scope', '$window', 'toastr', 'AppService', 'AppUtil', 'OrganizationService',
                       createAppController]);
4

5 6 7 8 9 10 11 12 13 14 15 16 17 18
function createAppController($scope, $window, toastr, AppService, AppUtil, OrganizationService) {

    $scope.app = {};
    $scope.submitBtnDisabled = false;

    $scope.create = create;

    init();

    function init() {
        initOrganization();
    }

    function initOrganization() {
19 20 21 22 23 24
        OrganizationService.find_organizations().then(function (result) {
            var organizations = [];
            result.forEach(function (item) {
                var org = {};
                org.id = item.orgId;
                org.text = item.orgName + '(' + item.orgId + ')';
25
                org.name = item.orgName;
26 27 28
                organizations.push(org);
            });
            $('#organization').select2({
29 30 31 32
                                           placeholder: '请选择部门',
                                           width: '100%',
                                           data: organizations
                                       });
33 34 35
        }, function (result) {
            toastr.error(AppUtil.errorMsg(result), "load organizations error");
        });
36
    }
37

38 39
    function create() {
        $scope.submitBtnDisabled = true;
lepdou committed
40

41 42 43 44 45 46 47 48 49
        var selectedOrg = $('#organization').select2('data')[0];

        if (!selectedOrg.id) {
            toastr.warning("请选择部门");
            return;
        }

        $scope.app.orgId = selectedOrg.id;
        $scope.app.orgName = selectedOrg.name;
lepdou committed
50

51 52 53
        // owner
        var owner = $('.ownerSelector').select2('data')[0];
        if (!owner) {
54
            toastr.warning("请选择应用负责人");
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
            return;
        }
        $scope.app.ownerName = owner.id;

        //admins
        $scope.app.admins = [];
        var admins = $(".adminSelector").select2('data');
        if (admins) {
            admins.forEach(function (admin) {
                $scope.app.admins.push(admin.id);
            })
        }

        AppService.create($scope.app).then(function (result) {
            toastr.success('创建成功!');
            setInterval(function () {
71
                $scope.submitBtnDisabled = false;
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
                $window.location.href = '/config.html?#appid=' + result.appId;
            }, 1000);
        }, function (result) {
            $scope.submitBtnDisabled = false;
            toastr.error(AppUtil.errorMsg(result), '创建失败!');
        });
    }


    $(".J_ownerSelectorPanel").on("select2:select", ".ownerSelector", selectEventHandler);
    var $adminSelectorPanel = $(".J_adminSelectorPanel");
    $adminSelectorPanel.on("select2:select", ".adminSelector", selectEventHandler);
    $adminSelectorPanel.on("select2:unselect", ".adminSelector", selectEventHandler);

    function selectEventHandler() {
        $('.J_owner').remove();

        var owner = $('.ownerSelector').select2('data')[0];
90

91 92 93 94 95 96 97
        if (owner) {
            $(".adminSelector").parent().find(".select2-selection__rendered").prepend(
                '<li class="select2-selection__choice J_owner">'
                + owner.text + '</li>')
        }
    }
}