BemsWebApplication.Building = function(params, viewInfo) { "use strict"; var BuildingInfo = ko.observableArray(); var isEmptyData = true;; var CmBuilidngDataSource = BemsWebApplication.db.createDataSource('CmBuilding'); var RowName; var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmBuilding', { columns: [ { dataField: 'BuildingId', caption: $G('number'), width: '20%', alignment: 'center' , sortOrder: 'desc' }, { dataField: 'Name', caption: $G('buildingName'), width: '80%', alignment: 'center' }, //utils.datagrid.columnIsUse( '20%' ) ], popupWidth: 480, searchViewItems: [{ id: 'Name' }], handleViewShown: function() { }, handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) { var data = clickRow.data; RowName = data.Name; popupVisible(true); }, handleViewShowing: function () { CmBuilidngDataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()] ]); CmBuilidngDataSource.load().done(function (CmBuilidng) { if (CmBuilidng.length == 0) { isEmptyData = true; $("#popupInsertButton").dxCommand("instance").option('disabled', false); } else { isEmptyData = false; $("#popupInsertButton").dxCommand("instance").option('disabled', true); } }); }, // 이름 중복 방지 handlePopupShowing: function () { CmBuilidngDataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()] ]); CmBuilidngDataSource.load().done(function (result) { BuildingInfo(result); }); }, beforeInsertingDataViewModel: function (dataModel, dbModelId) { var dfd = $.Deferred(); var isDuplicated = false; for (var i = 0; i < BuildingInfo().length; i++) { if (dataModel.Name() == BuildingInfo()[i].Name()) { isDuplicated = true; } } if (!BWA.DataUtil.isValidInputValue(dataModel.Name())) return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)'); else { if (isDuplicated) return dfd.resolve(false, '이미 동일 이름이 존재합니다.'); else return dfd.resolve(true); } }, beforeUpdateDataViewModel: function () { var isDuplicated = false; for (var i = 0; i < BuildingInfo().length; i++) { if (viewModel.dataModel.Name() == BuildingInfo()[i].Name() && RowName() != BuildingInfo()[i].Name()) { isDuplicated = true; } } if (!BWA.DataUtil.isValidInputValue(viewModel.dataModel.Name())) { utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error'); return 0; } else { if (isDuplicated) { utils.toast.show('이미 동일 이름이 존재합니다.', 'error'); return 0; } else return 2; } } }); function InsertButtonClickAction() { if (!isEmptyData) { utils.toast.show('빌딩 명칭은 하나만 생성할 수 있습니다.', 'error'); } else { viewModel.popupInsertView(); } } viewModel.popupInsertButtonOptions = { icon: 'add', id: 'create', title: '등록', action: InsertButtonClickAction, disabled: !isEmptyData }; return viewModel; };