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