$(function() { 'use strict'; BWA.Popup = BWA.Popup || {}; BWA.Popup.Point = { create: function(viewModel, selectedTreeItem) { var facilityTypeDataSource = BemsWebApplication.db.createDataSource('BemsFacilityType'), serviceTypeDataSource = BemsWebApplication.db.createDataSource('BemsServiceType'), fuelTypeDataSource = BemsWebApplication.db.createDataSource('BemsFuelType'), pointBaseDataDataSource = BemsWebApplication.db.createDataSource('BemsMonitoringPointBaseData'), serviceTypes = ko.observableArray(), fuelTypes = ko.observableArray(), properties = ko.observableArray(), valueTypes = $G.ValueTypes, eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter, dataModel = viewModel.dataModel ; dataModel.FacilityTypeName = ko.observable(); dataModel.ServiceTypeName = ko.observable(); dataModel.ValueTypeName = ko.observable(); dataModel.FuelTypeName = ko.observable(); dataModel.FacilityName = ko.observable(); function getDoneFunc(koObservableArray) { return function(dbArray) { koObservableArray(dbArray); }; } function handleInitializeDataModelValue(dataModel) { var item = selectedTreeItem(); if (item == null) return; if (item.depth !== 3) return; var facility = item.data; dataModel.SiteId(facility.SiteId()); //dataModel.SiteId(BWA.UserInfo.SiteId()); // hcLee 2016 06 03 dataModel.FacilityCode(facility.FacilityCode()); dataModel.FacilityTypeId(facility.FacilityTypeId()); dataModel.FacilityTypeName(facility['BemsFacilityType/Name']()); dataModel.FacilityName(facility.Name()); //dataModel.PropertyId(100); //dataModel.IsAccumulated(true); pointBaseDataDataSource.filter([ eq('FacilityTypeId', dataModel.FacilityTypeId()) ]); pointBaseDataDataSource.load().done(getDoneFunc(properties)); } function handleSelectBoxChangeProperty(e) { var property = _.find(properties(), function(x) { return x.PropertyId() === e.value; }); if (property) { dataModel.Name(property.Name()); } } function handleDataGridRowClick(id, dataGrid, clickRow, popupVisible) { var data = clickRow.data; var valueType = _.find(valueTypes, function(x) { return x.ValueType === data.ValueType(); }); dataModel.FacilityName(data['CmFacility/Name']()); dataModel.FacilityTypeName(data['BemsFacilityType/Name']()); dataModel.ServiceTypeName(data['BemsServiceType/Name']()); dataModel.FuelTypeName(data['BemsFuelType/Name']()); dataModel.ValueTypeName(valueType.Name); popupVisible(true); } function handleViewShown() { serviceTypeDataSource.load().done(getDoneFunc(serviceTypes)); fuelTypeDataSource.load().done(getDoneFunc(fuelTypes)); } return { serviceTypes: serviceTypes, fuelTypes: fuelTypes, properties: properties, valueTypes: valueTypes, handleViewShown: handleViewShown, handleDataGridRowClick: handleDataGridRowClick, handleSelectBoxChangeProperty: handleSelectBoxChangeProperty, handleInitializeDataModelValue: handleInitializeDataModelValue, }; } } });