notificationContent.js 4.62 KB
Newer Older
1
/**
NGO THI HONG committed
2
 * Operation Select js in operationSelect.html
3
 *
4
 * @since cms:1.4.3.2&1.4.3.3 web:1.0
5 6 7
 */
var NotificationSelect = {};

8 9
NotificationSelect.nameSelected = '';
NotificationSelect.valueSelected = '';
10 11 12 13 14 15 16
/**
 * default operation select data JSON
 */
NotificationSelect.defaultNotificationSelectJson = [];

/**
 * get operation select data from cms
17
 * @param {function} callback
18 19 20 21 22
 */
NotificationSelect.getNotificationSelectData = function (callback) {
    let param = {
        sid: COMMON.getSid(),
    };
Kang Donghun committed
23
    const url = COMMON.format(ClientData.conf_checkApiUrl(), ClientData.userInfo_accountPath()) + CONSTANT.URL.CMS.API.PUSH_MESSAGE_TEMPLATE;
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
    COMMON.cmsAjax(
        url,
        param,
        false,
        function (json) {
            if (callback) {
                callback(json);
            }
        },
        function () {
            console.log('NotificationSelect.getNotificationSelectData error');
            if (callback) {
                callback(NotificationSelect.defaultNotificationSelectJson);
            }
        },
    );
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
};

/**
 * handle click operation setting
 */
NotificationSelect.selectOperationClick = function () {
    $('.select-card-list .card .select-label').on('click', function () {
        $(this).closest('.select-card-list').find('.card').removeClass('selected');
        $(this).closest('.card').addClass('selected');
        NotificationSelect.nameSelected = $(this).text();
        NotificationSelect.valueSelected = $(this).closest('.accordion').find('.card-body').text();
    });
};

/**
 * init data, action when screen onload
 */
57
NotificationSelect.init = function (selectedCallback) {
58
    NotificationSelect.getNotificationSelectData(function (data) {
NGO THI HONG committed
59 60
        if (typeof data === 'undefined' || data == null) return;
        NotificationSelect.createNotificationSelectList(data.pushMessageTemplate);
61 62
    });
    NotificationSelect.selectOperationClick();
NGO THI HONG committed
63
    NotificationSelect.changeSelectCallback = selectedCallback;
64 65 66 67
};

/**
 * Implement notification select html
68
 * @returns
69
 */
70 71
NotificationSelect.createNotificationSelectList = function (pushMessageTemplate) {
    $('#notificationSelectList').empty();
NGO THI HONG committed
72
    if (typeof pushMessageTemplate === 'undefined' || pushMessageTemplate.length < 1) return;
73
    let classSelected = 'selected';
NGO THI HONG committed
74
    for (let i = 0; i < pushMessageTemplate.length; i++) {
75 76 77 78 79 80 81 82 83 84 85
        let divName = $("<div class='pl-5 py-3 h-100 w-100 align-self-center select-label'>" + pushMessageTemplate[i].name + '</div>');
        let divIcon = $(
            "<div class='flex-shrink-1 mx-3 align-self-center'>" +
                "<button class='btn btn-link border collapsed' type='button' data-toggle='collapse' data-target='#collapse" +
                i +
                "' aria-expanded='true' aria-controls='collapse" +
                i +
                "'>" +
                "<div class='arrow-icon'></div>" +
                '</button></div>',
        );
86

87 88 89
        let ahrefName = $("<a href='#' class='d-flex text-decoration-none'></a>");
        let divParentName = $("<div class='card mb-2 " + classSelected + "' id='heading" + i + "'></div>");
        classSelected = '';
90

91 92
        let divValue = $("<div id='collapse" + i + "' class='collapse' aria-labelledby='heading" + i + "' data-parent='#accordion" + i + "'></div>");
        let divBodyValue = $("<div class='card-body'>" + pushMessageTemplate[i].value + '</div>');
93

94 95 96 97
        let messageli = $("<li class='accordion' id='accordion" + i + "'></li>");

        ahrefName.append(divName);
        ahrefName.append(divIcon);
98 99
        divParentName.append(ahrefName);
        divValue.append(divBodyValue);
100 101 102
        messageli.append(divParentName);
        messageli.append(divValue);
        if (i == 0) {
NGO THI HONG committed
103 104 105
            NotificationSelect.nameSelected = pushMessageTemplate[i].name;
            NotificationSelect.valueSelected = pushMessageTemplate[i].value;
        }
106 107 108
        $('#notificationSelectList').append(messageli);
    }
};
NGO THI HONG committed
109 110 111 112

/**
 * handle click event of select button
 */
113
NotificationSelect.onClickTempalte = function () {
NGO THI HONG committed
114 115 116 117 118 119
    NotificationSelect.chooseTemplate();
};

/**
 * Get operation select and call back function in main page
 */
120
NotificationSelect.chooseTemplate = function () {
NGO THI HONG committed
121 122 123 124 125 126 127 128 129 130 131 132
    let param = {};
    param.nameSelected = NotificationSelect.nameSelected;
    param.valueSelected = NotificationSelect.valueSelected;
    NotificationSelect.closeModal();
    if (NotificationSelect.changeSelectCallback && typeof NotificationSelect.changeSelectCallback === 'function') {
        NotificationSelect.changeSelectCallback(param.valueSelected);
    }
};

/**
 * close setting dialog
 */
133
NotificationSelect.closeModal = function () {
NGO THI HONG committed
134
    $('#select-template-modal .close').click();
135
};