| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | BemsWebApplication.AlarmAdmin = function (params, viewInfo) {    "use strict";    var CmAlarmAdminDataSource = BemsWebApplication.db.createDataSource('CmAlarmAdmin'),        isEmptyData = true;    var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmAlarmAdmin', {        dataSourceOptions: {            select: [                'SiteId',                'UserCode',                'DeptCode',                'PhoneNo',                'EmailAddress',                //'EmailPassword',            ],            filter: [                ['SiteId', '=', BWA.UserInfo.SiteId()]            ],            extendOptions: {                forceOriginalField: true            },        },        columns: [            { dataField: 'SiteId', caption: '번호', width: '5%', alignment: 'center', sortOder: 'desc' },                { dataField: 'UserCode', caption: '사용자 ID', width: '25%', alignment: 'center' },                { dataField: 'DeptCode', caption: 'API키', width: '25%', alignment: 'center' },                { dataField: 'PhoneNo', caption: '전화번호', width: '20%', alignment: 'center' },                { dataField: 'EmailAddress', caption: '이메일 주소', width: '25%', alignment: 'center' },               // { dataField: 'EmailPassword', caption: '이메일 암호', width: '20%', alignment: 'center' },        ],        popupWidth: 500,        NoSearchView: true,     // 2019.07.25 kgpark 검색버튼 삭제                handleViewShowing: function () {            CmAlarmAdminDataSource.filter([                ["SiteId", "=", BWA.UserInfo.SiteId()]            ]);            CmAlarmAdminDataSource.load().done(function (CmAlarmAdmin) {                if (CmAlarmAdmin.length == 0) {                    isEmptyData = true;                    $("#popupInsertButton").dxCommand("instance").option('disabled', false);                }                else {                    isEmptyData = false;                    $("#popupInsertButton").dxCommand("instance").option('disabled', true);                }            });        },        handleBeforeDelete: function () {            isEmptyData = true;            $("#popupInsertButton").dxCommand("instance").option('disabled', false);        },        // 열을 클릭했을 때 실행되는 함수        handleDataGridRowClick: function () {            viewModel.popupVisible(true);        },        // 팝업 항목에 데이터가 정상적으로 입력되지 않을 경우 예외처리        beforeInsertingDataViewModel: function (dataModel, dbModelId) {            var dfd = $.Deferred();            if (dataModel.UserCode() == null || dataModel.DeptCode() == null || dataModel.PhoneNo() == null ||                dataModel.EmailAddress() == null || dataModel.EmailPassword() == null) {                return dfd.resolve(false, '필수 항목이 입력되지 않았습니다!');            }            else {                var email_length = dataModel.EmailAddress().length;                var email_check = dataModel.EmailAddress().lastIndexOf("@gmail.com");                var dash_count = (dataModel.PhoneNo().match(/-/g) || []).length;                if (dash_count != 2) {                    return dfd.resolve(false, '전화번호에 - 가 제대로 포함되지 않았습니다!');                }                if (email_check == -1 || email_length - email_check != 10) {                    return dfd.resolve(false, '메일 계정이 올바르게 입력되지 않았습니다! (구글 계정만 입력 가능)');                }                isEmptyData = ko.observable(false);                $("#popupInsertButton").dxCommand("instance").option('disabled', true);                return dfd.resolve(true);            }        },        beforeUpdateDataViewModel: function (dataModel) {            if (_.isEmpty(viewModel.dataModel.UserCode()) || _.isEmpty(viewModel.dataModel.DeptCode()) || _.isEmpty(viewModel.dataModel.PhoneNo()) ||                _.isEmpty(viewModel.dataModel.EmailAddress()) || _.isEmpty(viewModel.dataModel.EmailPassword())) {                utils.toast.show('필수 항목이 입력되지 않았습니다.', 'error');                return 0;            }            else {                var email_length = dataModel.EmailAddress().length;                var email_check = dataModel.EmailAddress().lastIndexOf("@gmail.com");                var dash_count = (dataModel.PhoneNo().match(/-/g) || []).length;                if (dash_count != 2) {                    utils.toast.show('전화번호에 - 가 제대로 포함되지 않았습니다', 'error');                    return 0;                }                if (email_check == -1 || email_length - email_check != 10) {                    utils.toast.show('메일 계정이 올바르게 입력되지 않았습니다. (구글 계정만 입력 가능)', 'error');                    return 0;                }                return 2; // 2016 01 19 BaseClass 에서 update한다.            }        },        // 팝업 항목에 데이터가 정상적으로 들어가지 않을 경우 예외처리    });    function InsertButtonClickAction() {        if (!isEmptyData) {            utils.toast.show('관리자 계정은 하나만 생성할 수 있습니다.', 'error');        }        else {            viewModel.popupInsertView();        }    }    viewModel.popupInsertButtonOptions = {        icon: 'add',        id: 'create',        title: '등록',        action: InsertButtonClickAction,        disabled: !isEmptyData    };    return viewModel;};
 |