123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- BemsWebApplication.PatrolPos = function (params, viewInfo) {
- "use strict";
- var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true),
- floorDataSource = BemsWebApplication.db.createDataSource('CmFloor', true);
- var buildings = ko.observableArray(),
- floors = ko.observableArray();
- var eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter;
- var buildingsForSearch = ko.observableArray(),
- floorsForSearch = ko.observableArray(),
- buildingIdForSerach = ko.observable(),
- floorIdForSerach = ko.observable(),
- defaultSearchBuildingArray = $SearchView.createDefaultArray('BuildingId'),
- defaultSearchFloorArray = $SearchView.createDefaultArray('FloorId');
- var deferredForSearch = new $.Deferred();
- var CmPatrolPosDataSource = BemsWebApplication.db.createDataSource('CmPatrolPos');
- var PatrolPosInfo = ko.observableArray();
- var RowName, RowBuildingId, RowFloorId;
- function handleBuildingInSearchView(e) {
- if (e.value === 0) {
- floorsForSearch(getDefaultFloorForSearch());
- }
- else {
- BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, floorsForSearch, getDefaultFloorForSearch());
- }
- floorIdForSerach(0);
- }
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmPatrolPos', {
- rowAlternationEnabled: true,
- /*
- editing: {
- editMode: 'batch',
- editEnabled: true,
- //removeEnabled: true,
- //insertEnabled: true
- },*/
- dataSourceOptions: {
- select: ['SiteId', 'FloorId', 'BuildingId', 'PosId', 'Name', 'CmBuilding/Name', 'CmFloor/Name', 'PosDesc', 'TagId'],
- expand: ['CmBuilding', 'CmFloor'],
- extendOptions: {
- forceOriginalField: true,
- }
- },
- columns: [
- { dataField: 'PosId', caption: $G('number'), width: '10%', alignment: 'center', sortOrder: 'desc' },
- /*
- { dataField: 'CmBuilding/Name', caption: $G('buildingName'), width: '22%', alignment: 'center', allowEditing: false },
- { dataField: 'CmFloor/Name', caption: $G('floorName'), width: '23%', alignment: 'center', allowEditing: false },
- { dataField: 'Name', caption: $G('zoneName'), width: '40%', alignment: 'center', allowEditing: false }, */
- { dataField: 'CmBuilding/Name', caption: $G('buildingName'), width: '20%', alignment: 'center' },
- { dataField: 'CmFloor/Name', caption: $G('floorName'), width: '20%', alignment: 'center' },
- { dataField: 'Name', caption: '순찰지점명', width: '30%', alignment: 'center' },
- { dataField: 'TagId', caption: '지점TAG ID', width: '30%', alignment: 'center' },
- { dataField: 'PosDesc', caption: '설명', width: '30%', alignment: 'center' },
- //{ dataField: 'Target_temperature', caption: '목표온도', width: '40%', alignment: 'center' },
- //{ dataField: 'Target_humidity', caption: '목표습도', width: '40%', alignment: 'center' }
- //utils.datagrid.columnIsUse( '15%' )
- ],
- popupWidth: 480,
- promiseDataInSearchView: deferredForSearch.promise(),
- searchViewItems: [
- { id: 'BuildingId', ignoreValue: 0, defaultValue: 0, value: buildingIdForSerach, dataSource: buildingsForSearch, handleChangedValue: handleBuildingInSearchView },
- { id: 'FloorId', ignoreValue: 0, defaultValue: 0, value: floorIdForSerach, dataSource: floorsForSearch }, //withCheckId: 'BuildingId',
- { id: 'Name' }
- ],
- handleViewShowing: function () {
- buildingDataSource.load().done(function (buildingResults) {
- buildings(buildingResults);
- //buildingsForSearch( $SearchView.createArrayOfSelectBox( 'BuildingId', buildings() ) );
- //floorsForSearch( getDefaultFloorForSearch() );
- buildingsForSearch(defaultSearchBuildingArray.slice(0).concat(buildingResults));
- floorsForSearch(defaultSearchFloorArray.slice(0));
- buildingIdForSerach(0);
- floorIdForSerach(0);
- deferredForSearch.resolve();
- });
- },
- handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
- dataGrid.clearSelection();
- // hcLee 2016 02 16 키필드가 콤보로 제공될때 등록시만 보이고 수정시에는 안보기에 하기 위하여 꼭 필요 !!!
- viewModel.isNewInPopup(false); //
- var data = clickRow.data;
- var dataModel = viewModel.dataModel;
- dataModel.BuildingName = $KoSet(dataModel.BuildingName, data['CmBuilding/Name']);
- dataModel.FloorName = $KoSet(dataModel.FloorName, data['CmFloor/Name']);
- RowName = data.Name;
- RowFloorId = data.FloorId;
- RowBuildingId = data.BuildingId;
- popupVisible(true);
- },
- handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {
- if (isNewInPopup() == false) {
- BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', dataViewModel.BuildingId(), floors);
- }
- },
- viewHidden: function () {
- $SearchView.visibleObservable(false); // hcLee 2015 03 23
- visiblePopup(false);
- },
- handlePopupShowing: function (that) {
- CmPatrolPosDataSource.filter([
- ["SiteId", "=", BWA.UserInfo.SiteId()]
- ]);
- CmPatrolPosDataSource.load().done(function (result) {
- PatrolPosInfo(result);
- });
- },
- handleBeforeDelete: function (db) {
- /* var dataViewModel = new BemsWebApplication['CmZoneTempHumiSetViewModel']();
- dataViewModel.SiteId = db.SiteId;
- dataViewModel.BuildingId = db.BuildingId;
- dataViewModel.FloorId = db.FloorId;
- dataViewModel.ZoneId = db.ZoneId;
-
- var promise = BemsWebApplication.api.post('BemsMonitoringPoint/RemoveZoneTempHumiSet', dataViewModel);
- promise.done(function () {
- ;
- });*/
- },
- beforeInsertingDataViewModel: function (dataModel, dbModelId) {
- var dfd = $.Deferred();
- var isDuplicated = false;
- for (var i = 0; i < PatrolPosInfo().length; i++) {
- if (dataModel.Name() == PatrolPosInfo()[i].Name() && dataModel.BuildingId() == PatrolPosInfo()[i].BuildingId() && dataModel.FloorId() == PatrolPosInfo()[i].FloorId()) {
- 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 < PatrolPosInfo().length; i++) {
- if (viewModel.dataModel.Name() == PatrolPosInfo()[i].Name() && (RowName() != PatrolPosInfo()[i].Name())
- && viewModel.dataModel.BuildingId() == PatrolPosInfo()[i].BuildingId() && (RowBuildingId() != PatrolPosInfo()[i].BuildingId())
- && viewModel.dataModel.FloorId() == PatrolPosInfo()[i].FloorId() && (RowFloorId() != PatrolPosInfo()[i].FloorId())) {
- 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;
- }
- },
- handleAfterInsert: function (db) {
- /*
- var dataViewModel = new BemsWebApplication['CmZoneTempHumiSetViewModel']();
- dataViewModel.SiteId = db.SiteId;
- dataViewModel.BuildingId = db.BuildingId;
- dataViewModel.FloorId = db.FloorId;
- dataViewModel.ZoneId = db.ZoneId;
- var promise = BemsWebApplication.api.post('BemsMonitoringPoint/AddZoneTempHumiSet', dataViewModel);
- promise.done(function () {
- ;
- });*/
- },
- });
- function getDefaultFloorForSearch() {
- return $SearchView.createDefaultArray('FloorId');
- }
- floorDataSource.filter('BuildingId', -1);
- // 콤보, text 등록먼저후 생기는 팝업에서 안보이는 문제해결
- viewModel.dataModel.BuildingName = ko.observable();
- viewModel.dataModel.FloorName = ko.observable();
- viewModel.buildings = buildings;
- //viewModel.buildingsForSearch = buildingsForSearch;
- viewModel.floors = floors;
- //viewModel.floorsForSearch = floorsForSearch;
- viewModel.handleSelectBoxChangeBuilding = function (e) {
- floorDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- eq('BuildingId', e.value)
- ]);
- $.when(floorDataSource.load()
- ).done(function (Result) {
- floors(Result);
- });
- //BWA.DataUtil.setArrayDataSourceFilter( floorDataSource, '', , );
- viewModel.dataModel.FloorId(null);
- }
- /*
- viewModel.searchViewPopup = BWA.Popup.SearchView.create({
- parentPopupId: 'popupDetail',
- parentPopupVisible: viewModel.popupVisible,
- handleSearch: function (filter, searchItems) {
- }
- });*/
- /*
- viewModel.popupInsertButtonOptions.action = function () {
- alert('insett');
- }*/
- return viewModel;
- };
|