/** * Operation Select js in operationSelect.html * * @since cms:1.4.3.2&1.4.3.3 web:1.0 */ var OperationSelect = {}; OperationSelect.changeSelectCallback = function () {}; OperationSelect.operationIdSelected = ''; OperationSelect.operationNameSelected = ''; /** * default operation select data JSON */ OperationSelect.defaultOperationSelectJson = []; /** * get operation select data from cms * @param {function} callback */ OperationSelect.getOperationSelectData = function (callback) { let param = { sid: COMMON.getSid(), }; const url = COMMON.format(ClientData.conf_checkApiUrl(), ClientData.userInfo_accountPath()) + CONSTANT.URL.CMS.API.OPERATION_SELECT; COMMON.cmsAjax( url, param, false, function (json) { if (callback) { callback(json); } }, function () { console.log('OperationSelect.getOperationSelectData error'); if (callback) { callback(OperationSelect.defaultOperationSelectJson); } }, ); }; /** * handle click operation setting */ OperationSelect.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'); OperationSelect.operationIdSelected = $(this).attr('data-key'); OperationSelect.operationNameSelected = $(this).attr('data-name'); }); }; /** * init data, action when screen onload * @param selectedCallback */ OperationSelect.init = function (selectedCallback) { OperationSelect.getOperationSelectData(function (data) { if (typeof data === 'undefined' || data == null) return; OperationSelect.createOperationSelectList(data.operationList); }); OperationSelect.selectOperationClick(); OperationSelect.changeSelectCallback = selectedCallback; }; /** * Implement operation select html * @param operarionList * @returns */ OperationSelect.createOperationSelectList = function (operationList) { $('#operationSelectList').empty(); // sort operation list by operationId operationList = operationList.sort(function (a, b) { if (a.operationId < b.operationId) return 1; if (a.operationId > b.operationId) return -1; return 0; }); if (typeof operationList === 'undefined' || operationList.length < 1) return; for (let i = 0; i < operationList.length; i++) { let messageli = $("<li class='card mb-2' name = 'operationId_" + operationList[i].operationId + "' ></li>"); let ahrefRequiredFlg = $( "<a href='#' class='d-block px-5 py-3 text-decoration-none select-label' data-key='" + operationList[i].operationId + "' data-name='" + operationList[i].operationName + "' ></a>", ); let divText = $("<div class='fs-12 text-truncate d-block'>" + operationList[i].operationName + '</div>'); ahrefRequiredFlg.append(divText); messageli.append(ahrefRequiredFlg); $('#operationSelectList').append(messageli); } $('#operationSelectList :first-child').addClass('selected'); }; /** * handle click event of select button */ OperationSelect.onClickSelect = function () { OperationSelect.chooseOperationSelect(); }; /** * Get operation select and call back function in main page */ OperationSelect.chooseOperationSelect = function () { let param = {}; param.operationIdSelected = OperationSelect.operationIdSelected; param.operationNameSelected = OperationSelect.operationNameSelected; OperationSelect.closeModal(); if (OperationSelect.changeSelectCallback && typeof OperationSelect.changeSelectCallback === 'function') { OperationSelect.changeSelectCallback(param.operationIdSelected, param.operationNameSelected); } }; /** * close setting dialog */ OperationSelect.closeModal = function () { $('#task-list-modal .close').click(); };