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; };