123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- BemsWebApplication.Floor = function(params, viewInfo) {
- "use strict";
-
- var FloorInfo = ko.observableArray();
- var CmFloorDataSource = BemsWebApplication.db.createDataSource('CmFloor');
- var RowName,RowBuilidngId;
- var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true);
- var buildings = ko.observableArray();
- var searchBuildings = ko.observableArray();
- var buildingDeferred = new $.Deferred();
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmFloor', {
- dataSourceOptions: {
- select: ['SiteId', 'FloorId', 'BuildingId', 'Name', 'CmBuilding/Name'],
- expand: ["CmBuilding"],
- extendOptions: {
- forceOriginalField: true,
- }
- },
- columns: [
- { dataField: 'FloorId', caption: $G('number'), width: '20%', alignment: 'center', sortOrder: 'desc' },
- { dataField: 'CmBuilding/Name', caption: $G('buildingName'), width: '20%', alignment: 'center' },
- { dataField: 'Name', caption: $G('floorName'), width: '60%', alignment: 'center' },
- //utils.datagrid.columnIsUse( '15%' )
- ],
- // 2019.04.17 엑셀 출력 기능 추가 ~~~
- "export": {
- enabled: true,
- fileName: '층 정보 목록'
- },
- onExporting: function (e) {
- e.component.columnOption("FloorId", "visible", false);
- },
- onExported: function (e) {
- e.component.columnOption("FloorId", "visible", true);
- },
- // ~~~ 2019.04.17 엑셀 출력 기능 추가
-
- paging: {
- pageSize: 18,
- enabled: true
- },
- pager:{visible: true},
- popupWidth: 480,
- promiseDataInSearchView: buildingDeferred.promise(),
- searchViewItems: [{ id: 'BuildingId', ignoreValue: 0, defaultValue: 0, dataSource: searchBuildings }, { id: 'Name' }],
- handleViewShowing: function() {
- buildingDataSource.load().done(function(result) {
- buildings(result);
- searchBuildings([{ BuildingId: 0, Name: $G('selectAll') }].concat(result));
- buildingDeferred.resolve();
- });
- },
- handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
- dataGrid.clearSelection();
- viewModel.isNewInPopup(false); // hcLee 2016 02 16 키필드가 콤보로 제공될때 등록시만 보이고 수정시에는 안보기에 하기 위하여 꼭 필요 !!!
- var data = clickRow.data;
- var dataModel = viewModel.dataModel;
- dataModel.BuildingName = $KoSet(dataModel.BuildingName, data['CmBuilding/Name']);
- RowName = data.Name;
- RowBuilidngId = data.BuildingId;
- popupVisible(true);
- },
-
- // 이름 중복 방지
- handlePopupShowing: function () {
- CmFloorDataSource.filter([
- ["SiteId", "=", BWA.UserInfo.SiteId()]
- ]);
- CmFloorDataSource.load().done(function (result) {
- FloorInfo(result);
- });
- },
- beforeInsertingDataViewModel: function (dataModel, dbModelId) {
- var dfd = $.Deferred();
- var isDuplicated = false;
-
- for (var i = 0; i < FloorInfo().length; i++) {
- if (dataModel.Name() == FloorInfo()[i].Name() && dataModel.BuildingId() == FloorInfo()[i].BuildingId()) {
- isDuplicated = true;
- break;
- }
- }
- if (!BWA.DataUtil.isValidInputValue(dataModel.Name()) || !BWA.DataUtil.isValidInputValue(dataModel.BuildingId()))
- 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 < FloorInfo().length; i++) {
- if (viewModel.dataModel.Name() == FloorInfo()[i].Name() && viewModel.dataModel.BuildingId() == FloorInfo()[i].BuildingId()
- && (RowName() != FloorInfo()[i].Name() || RowBuilidngId() != FloorInfo()[i].BuildingId())) {
- isDuplicated = true;
- break;
- }
- }
- 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;
- }
- }
- });
- viewModel.buildingDataSource = buildings;
- viewModel.searchBuildings = searchBuildings;
- viewModel.dataModel.BuildingName = ko.observable();
- // viewModel.handleSelectBoxChangeBuilding = handleSelectBoxBuilding;
- return viewModel;
- };
|