$(function () { 'use strict'; BemsWebApplication.Popup.FacilityWorkHistory = { create: function (viewInfo, viewModel) { var eq = BWA.DataUtil.constructEqualFilter; var and = BWA.DataUtil.andFilter; var facilities = ko.observableArray(), facilitiesInView = ko.observableArray(), businessFields = ko.observableArray(); var facilitySearchPopup = null, facilityFactory = BWA.Factory.Facility, facilityGridView = ko.observable(undefined), facilityDataGridOptions, modifiableFacilityDataGridOptions = undefined; var facilityDataSource = facilityFactory.getBasicDataSourceRef({ dbModeIId: 'FmsWorkOrderToFacility', primaryKeyDataField: 'WorkRequestId' }) ; function isValidateWithFunction(errorMessage) { if (_.isEmpty(facilities())) { errorMessage.message = '점검을 위한 시설이 없습니다.'; return false; } return true; } function handlePopupShowing(isNewInPopup, dataModel, selectedData) { facilityDataSource.filter([ eq('SiteId', selectedData.SiteId()), and, eq('WorkRequestId', selectedData.WorkRequestId()) ]); facilityDataSource.load().done(function (dbFacilities) { facilitiesInView(dbFacilities); }); } function handleBeforeShowingPopupForEdit(rowData, dataViewModel) { dataViewModel.BusinessFieldName(rowData['FmsWorkOrder/CmBusinessField/Name']()); dataViewModel.WorkTypeName(rowData['FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType/Name']()); dataViewModel.WorkProgressName(rowData['FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress/Name']()); dataViewModel.OrderUserName(rowData['FmsWorkOrder/CmUser/Name']()); dataViewModel.RejectUserName($KoValue(rowData['FmsWorkOrder/CmUser1/Name'])); dataViewModel.OrderDate = $KoSet(dataViewModel.OrderDate, rowData['FmsWorkOrder/OrderDate']); dataViewModel.StartWorkDate = $KoSet(dataViewModel.StartWorkDate, rowData['FmsWorkOrder/StartWorkDate']); dataViewModel.Title = $KoSet(dataViewModel.Title, rowData['FmsWorkOrder/Title']); dataViewModel.Content = $KoSet(dataViewModel.Content, rowData['FmsWorkOrder/Content']); } viewModel.popupVisible.subscribe(function (visible) { if (!visible) { facilitiesInView([]); } }); //viewModel.isEditModeInPopup.subscribe(function (isEditMode) { // if (isEditMode) { // facilities(facilitiesInView.slice(0)); // } //}); viewModel.dataModel.WorkTypeName = ko.observable(); viewModel.dataModel.BusinessFieldName = ko.observable(); viewModel.dataModel.OrderUserName = ko.observable(); viewModel.dataModel.RejectUserName = ko.observable(); viewModel.dataModel.WorkProgressName = ko.observable(); facilityDataGridOptions = BWA.Popup.Facility.getReadOnlyDataGridOptions( facilitiesInView, viewModel.viewModeInPopup); modifiableFacilityDataGridOptions = BWA.Popup.Facility.getModifiableDataGridOptions( facilities, viewModel.isEditModeInPopup, facilityGridView); return { facilitySearchPopup: facilitySearchPopup, facilities: facilitiesInView, businessFields: businessFields, isValidateWithFunction: isValidateWithFunction, facilityDataGridOptions: facilityDataGridOptions, modifiableFacilityDataGridOptions: modifiableFacilityDataGridOptions, handlePopupShowing: handlePopupShowing, handleBeforeShowingPopupForEdit: handleBeforeShowingPopupForEdit, handleDeleteSelectedFacilities: BWA.Popup.Facility.getDeleteSelectedFacilitiesFunc(facilityGridView, facilities) }; } } });