import { apiGet } from "/js/utils/restApi.js";
const _apiUri         = '/api/rse/control';
let _listTable        = null;
let _listMap          = new Map();
let _resultTable      = null;
let _devcType         = null;
let _cntlType         = null;
const _userId         = window.opener.$userId;
let _selectedRseNmber;
let sendBtn;
$(()=>{

    //DSRC 상태 전체조회 테이블
    _listTable = $(".stts-table").width('100%').height('100%').dxDataGrid({
        dataSource              : null,
        allowColumnReordering   : true,
        showColumnLines         : true,
        showBorders             : true,
        allowColumnResizing     : true,
        rowAlternationEnabled   : true,
        columnAutoWidth         : true,
        focusedRowEnabled       : true,
        noDataText              : '표출할 정보가 없습니다.',
        headerFilter: {
            visible: true,
        },
        selection  : {
            mode :'single'
        },
        keyExpr : 'rse_ctlr_nmbr',
        paging: {
            enabled: false,
            pageSize: 1000,
        },
        selection : {
            mode  : 'single',
        },
        scrolling: {
            mode: 'standard',
        },
        columns:[
            {
                dataField    : "rse_ctlr_id",
                caption      : "DSRC ID",
                alignment    : "center",
                sortOrder    : 'asc',
            },
            {
                dataField    : "rse_nm",
                caption      : "명칭",
                alignment    : "center",
                cellTemplate(c,e){
                    alignTemplate(c, e, 'left');
                }
            },
            {
                dataField    : "updt_dt",
                caption      : "수집일시",
                alignment    : "center",
                dataType     : "datetime",
                format       : "yyyy-MM-dd hh:mm:ss",
            },
            {
                dataField    : "cmnc_stts_desc",
                caption      : "통신상태",
                alignment    : "center",
                cellTemplate(c,e){
                    cmncTemplate(c, e);
                }
            },
        ],
        onRowClick(info){
            listTableClick(info);
        },
    }).dxDataGrid("instance");

    // _devcType = $('.devc_type').dxRadioGroup({
    //     items : [
    //         {
    //             id : 0, 
    //             text : '제어부',
    //         },
    //         {
    //             id : 1,
    //             text : '안테나 1번',
    //         }
    //     ],
    //     width       : '100%',
    //     height      : '100%',
    //     displayExpr : 'text',
    //     valueExpr   : 'id',
    //     value       : 0,
    // })

    // _cntlType = $('.cntl_type').dxRadioGroup({
    //     items : [
    //         {
    //             id : 0, 
    //             text : '시스템 리셋 요청',
    //         },
    //         {
    //             id : 1,
    //             text : '무선 송출 중단',
    //         },
    //         {
    //             id : 2,
    //             text : '무선 송출 개시',
    //         }
    //     ],
    //     width       : '100%',
    //     height      : '100%',
    //     displayExpr : 'text',
    //     valueExpr   : 'id',
    //     value       : 0,
    // })
    // _resultTable = $(".result-table").width('100%').height('100%').dxDataGrid({
    //     dataSource              : null,
    //     allowColumnReordering   : true,
    //     showColumnLines         : true,
    //     showBorders             : true,
    //     allowColumnResizing     : true,
    //     rowAlternationEnabled   : true,
    //     columnAutoWidth         : true,
    //     focusedRowEnabled       : true,
    //     noDataText              : '표출할 정보가 없습니다.',
    //     headerFilter: {
    //         visible: false,
    //     },
    //     selection  : {
    //         mode :'single'
    //     },
    //     keyExpr : 'rse_ctlr_nmbr',
    //     paging: {
    //         enabled: false,
    //         pageSize: 1000,
    //     },
    //     selection : {
    //         mode  : 'single',
    //     },
    //     scrolling: {
    //         mode: 'standard',
    //     },
    //     columns:[
    //         {
    //             dataField    : "rse_ctlr_nmbr",
    //             caption      : "ID",
    //             alignment    : "center",
    //             sortIndex    : 0,
    //             width        : 120,
    //             sortOrder    : "asc",
    //         },
    //         {
    //             dataField    : "rse_mcu_id",
    //             caption      : "일련번호",
    //             alignment    : "center",
    //         },
    //         {
    //             dataField    : "result",
    //             caption      : "요청결과",
    //             alignment    : "center",
    //         },
    //         {
    //             dataField    : "response",
    //             caption      : "응답결과",
    //             alignment    : "center",
    //         },
    //     ],
    //     onRowClick(info){
    //     },
    // }).dxDataGrid("instance");
    sendBtn = new dxBtn($('.reset-btn'), '제어전송', 'preferences', 'outlined', null, null, true, true);
    const closeBtn = new dxBtn($('.close-btn'), '닫기', 'close', 'outlined', null, null, false, true);
    closeBtn.onClick(() => window.close());
    sendBtn.onClick(sendBtnClick);
    fetchBaseData();
});
function listTableClick(info){
    let selectedData = info.data;
    _selectedRseNmber = selectedData.rse_ctlr_nmbr;
    sendBtn.setDisabled(false);
    $('.rse-text').text(' : [' + selectedData.rse_ctlr_id + '] - ' + selectedData.rse_nm);
}
function sendBtnClick(){
    confirmMessage('선택하신 DSRC 제이기 상태를 초기화 하시겠습니까?').done((yes)=>{
        if (yes === true) {
            getPostDataAsync(_apiUri + '/reset/' + _selectedRseNmber, (jsonData)=>{
                if (jsonData) {
                    if (jsonData.error) {
                        alertError(jsonData.message);
                    }
                    else {
                        alertConfirm(jsonData.message);
                    }
                }
            },
            {
                control : 1,
                device  : 0,
                user_id : _userId,
            });
        }
    })
}

function cmncTemplate(c, e){
    let classNm = e.data.cmnc_stts_cd;
    let text = e.displayValue;
    if (nullChecker(classNm) === "" || classNm === '-') {
        text = '정보없음';
        classNm = '';
    }
    if (nullChecker(text) === ""){
        if (classNm) {
            text = classNm === 'CMS0' ? '정상' : classNm === 'CMS1' ? '통신이상' : '정보없음';
        } 
    }
    c.addClass(classNm);
    return c.text(text);
}

/**
 * DSRC 정보 데이터 수신 함수
 */
function fetchBaseData(){
    getDataAsync('/api/rse/monitoring/stts', (jsonData)=>{
        if (jsonData.length > 0) {
            jsonData.map((item)=>{
                if (item.updt_dt) item.updt_dt = getParseDateTime(item.updt_dt);
            })
        }
        _listTable.option('dataSource', jsonData);
    })
};
