BemsWebApplication.ControlValueSet = function (params, viewInfo) { "use strict"; /* var facilityViewModel = new BWA.CmFacilityViewModel(); var cmFacilityDataSource = BemsWebApplication.db.createDataSource('CmFacility', true); var m_Facility; var facilityDataSource = BWA.db.createDataSource('CmFacility'), facilitiesForSearch = ko.observableArray(), facilityCodeForSearch = ko.observable(0), deferredForSearch = new $.Deferred(); */ var facilityClassDataSource = BemsWebApplication.db.createDataSource('FmsFacilityCodeClass'); //var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true), // floorDataSource = BemsWebApplication.db.createDataSource('CmFloor'), //zoneDataSource = BemsWebApplication.db.createDataSource('CmZone'); // 설비분류 데이터소스 var facilityTypeDataSource = BemsWebApplication.db.createDataSource('BemsFacilityType'); var facilityTypes = ko.observableArray(); var facilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()]; var buildings = ko.observableArray(), floors = ko.observableArray(), zones = ko.observableArray(); var searchFacilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()], searchFacilityClassValues = [ko.observable(), ko.observable(), ko.observable()], searchBuildings = ko.observableArray(), searchFloors = ko.observableArray(), searchBuildingId = ko.observable(), searchFloorId = ko.observable(); // var defaultSearchClassArray = $SearchView.createDefaultArray('FacilityClassId'), // defaultSearchBuildingArray = $SearchView.createDefaultArray('BuildingId'), // defaultSearchFloorArray = $SearchView.createDefaultArray('FloorId'); var searchDeferred = new $.Deferred(); /* selectedFacilityDataInSearchParentPopup.subscribe(function (value) { viewModel.dataModel.ParentFacilityCode(value.FacilityCode); viewModel.dataModel.ParentFacilityName(value.Name); }); selectedUserData.subscribe(function (value) { if (isMainContactor) { viewModel.dataModel.MainContactorUserId(value.UserId); viewModel.dataModel.MainContactorUserName(value.Name); } else { viewModel.dataModel.SubContactorUserId(value.UserId); viewModel.dataModel.SubContactorUserName(value.Name); } });*/ var handleFirstClassChangedValueInSearchView = function (e) { if (e.value === 0) { initializeSearchClasses(); return; } BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[1], defaultSearchClassArray); }; var handleSecondClassChangedValueInSearchView = function (e) { if (e.value === 0) { initializeSearchClasses(true); return; } BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[2], defaultSearchClassArray); }; /* var handleBuildingInSearchView = function (e) { if (e.value === 0) { searchFloors(defaultSearchFloorArray.slice(0)); searchFloorId(0); return 0; } BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, searchFloors, defaultSearchFloorArray); }*/ function initializeSearchClasses(onlyThird) { if (onlyThird === undefined || onlyThird === false) { searchFacilityClasses[1](defaultSearchClassArray.slice(0)); searchFacilityClassValues[1](0); } searchFacilityClasses[2](defaultSearchClassArray.slice(0)); searchFacilityClassValues[2](0); } var facilityOptions = BemsWebApplication.Factory.Facility; /* var works = ko.observableArray(); var workDataSource = BWA.DataUtil.createDataSource({ dataSourceOptions: { select: ['SiteId', 'FacilityCode', 'CmFacility/Name', 'Name', 'BemsFuelType/Name', 'BemsServiceType/Name'], //'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9', 'H10', 'H11', 'H12'], expand: ['CmFacility', 'BemsFuelType', 'BemsServiceType'], extendOptions: { forceOriginalField: true, } }, }, 'BemsMonitoringPoint'); */ function handleSearchInSearchView(filter, searchViewItems) { //workDataSource.filter = filter; //workDataSource.load().done(function (workResult) { viewModel.dataSource.load().done(function (workResult) { _.each(workResult, function (x) { x[6] = 'CV'; x.CV = 100; //works.push(x); //alert(x.Name()); }); //datas = workResult; //works(workResult); //viewModel.dataSource = works; }); viewModel.dataSource = null; viewModel.refreshList(); } //var tempDate = new Date(); var paramDate = new Date(2015,8,17, 15,0, 0); var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'BemsMonitoringPoint', { //var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, null, { rowAlternationEnabled: true, editing: { //editMode: 'batch', //editMode: 'editcell', editMode: 'cell', // 14.1은 batch, row 두가지 밖에 없다. cell->row로 동작중이다. 2015 07 15 hcLee editEnabled: true, //removeEnabled:false, //visible:false, }, //dataSource: works, dataSourceOptions: { select: ['SiteId', 'FacilityCode', 'CmFacility/Name', 'Name', 'BemsFuelType/Name', 'BemsServiceType/Name', 'BemsMonitoringPointHistoryDaily/DailyValue'], //'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9', 'H10', 'H11', 'H12'], expand: ['CmFacility', 'BemsFuelType', 'BemsServiceType', 'BemsMonitoringPointHistoryDaily'], extendOptions: { forceOriginalField: true, }, filter: [ //['BemsMonitoringPointHistory15min/CreatedDateTime', ">=", paramDate], ['FacilityCode', "=", 1390], ] }, columns: [ { dataField: 'FacilityCode', caption: $G('number'), width: '4%', alignment: 'center' }, // ? { dataField: 'CmFacility/Name', caption: '설비명', width: '20%', alignment: 'center', allowEditing: false }, { dataField: 'Name', caption: '관제점명', width: '20%', alignment: 'center', allowEditing: false }, { dataField: 'BemsFuelType/Name', caption: '에너지원', width: '10%', alignment: 'center', allowEditing: false, }, { dataField: 'BemsServiceType/Name', caption: '용도', width: '10%', alignment: 'center', allowEditing: false }, { dataField: 'BemsMonitoringPointHistory15Min/CurrentValue', caption: '설정값', width: '8%', alignment: 'center', }, /* { dataField: 'T4', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T5', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T6', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T7', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T8', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T9', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T10', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T11', caption: '2월', width: '6%', alignment: 'center' }, { dataField: 'T12', caption: '2월', width: '6%', alignment: 'center' }, */ //{ dataField: 'Target_humidity', caption: '목표습도', width: '40%', alignment: 'center' } //utils.datagrid.columnIsUse( '15%' ) ], popupWidth: 480, searchViewItems: [ /* { id: 'FacilityCode', ignoreValue: 0, defaultValue: 0, value: facilityCodeForSearch, dataSource: facilitiesForSearch }, */ /* { id: 'FirstClassId', ignoreValue: 0, defaultValue: 0, value: searchFacilityClassValues[0], dataSource: searchFacilityClasses[0], handleChangedValue: handleFirstClassChangedValueInSearchView }, { id: 'SecondClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'FirstClassId', value: searchFacilityClassValues[1], dataSource: searchFacilityClasses[1], handleChangedValue: handleSecondClassChangedValueInSearchView }, { id: 'ThirdClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'FirstClassId', value: searchFacilityClassValues[2], dataSource: searchFacilityClasses[2] },*/ //{ id: 'CmFacility/BuildingId', ignoreValue: 0, defaultValue: 0, value: searchBuildingId, dataSource: searchBuildings, handleChangedValue: handleBuildingInSearchView }, //{ id: 'CmFacility/FloorId', ignoreValue: 0, defaultValue: 0, withCheckId: 'CmFacility/BuildingId', value: searchFloorId, dataSource: searchFloors }, { id: 'CmFacility/Name' }, { id: 'Name' }, ], promiseDataInSearchView: searchDeferred.promise(), //promiseDataInSearchView: deferredForSearch.promise(), handleViewShowing: function () { facilityClassDataSource.filter([ ['SiteId', '=', BWA.UserInfo.SiteId()], 'and', ['ParentFacilityClassId', '=', null] ]); facilityTypeDataSource.filter([ ['FacilityTypeId', '=', 1] ]); // 빌딩 데이터 로드 시점 $.when(facilityClassDataSource.load(), //buildingDataSource.load(), facilityTypeDataSource.load() ).done(function (result1, result2, result3) { // searchDeferred.resolve(); }); }, handleViewShown: function (dataViewModel, isEditModeInPopup) { //setupDropZone(isEditModeInPopup, dataViewModel); handleSearchInSearchView(); }, handleViewHidden: function () { $SearchView.visibleObservable(false); // hcLee 2015 03 23 visiblePopup(false); }, handlePopupShowing: function (that) { alert(9); }, }); //floorDataSource.filter('BuildingId', -1); //zoneDataSource.filter('FloorId', -1); viewModel.handleSelectBoxChangeFirstClass = function (e) { BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, facilityClasses[1]); viewModel.dataModel.SecondClassId(null); viewModel.dataModel.ThirdClassId(null); }; viewModel.handleSelectBoxChangeSecondClass = function (e) { BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, facilityClasses[2]); viewModel.dataModel.ThirdClassId(null); }; /* viewModel.handleSelectBoxChangeBuilding = function (e) { BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, floors); viewModel.dataModel.FloorId(null); viewModel.dataModel.ZoneId(null); }; viewModel.handleSelectBoxChangeFloor = function (e) { BWA.DataUtil.setArrayDataSourceFilter(zoneDataSource, 'FloorId', e.value, zones); viewModel.dataModel.ZoneId(null); };*/ function refreshList() { //dataSource.pageIndex(0); //dataSource.load(); } /* function getDefaultFloorForSearch() { return $SearchView.createDefaultArray( 'FloorId' ); }*/ /* viewModel.buildings = buildings; viewModel.buildingsForSearch = buildingsForSearch; viewModel.floors = floors; viewModel.floorsForSearch = floorsForSearch; viewModel.handleSelectBoxChangeBuilding = function( e ) { BWA.DataUtil.setArrayDataSourceFilter( floorDataSource, 'BuildingId', e.value, floors ); viewModel.dataModel.FloorId( null ); }*/ viewModel.handleSearchInSearchView = handleSearchInSearchView; /* viewModel.facilityTypes = facilityTypes; viewModel.dataModel.ClassName = ko.observable(); viewModel.facilityClasses = facilityClasses; viewModel.searchFacilityClasses = searchFacilityClasses; viewModel.buildings = buildings; viewModel.floors = floors; viewModel.zones = zones;*/ /* function handleSelectedFacilityInSearchView(facility) { m_Facility = facility; return; }*/ return viewModel; };