123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- BemsWebApplication.Facility = function(params, viewInfo) {
- "use strict";
- var facilityClassDataSource = BemsWebApplication.db.createDataSource('FmsFacilityCodeClass');
- var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true),
- floorDataSource = BemsWebApplication.db.createDataSource('CmFloor'),
- zoneDataSource = BemsWebApplication.db.createDataSource('CmZone')
- ;
- 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 imagefileUrl = ko.observable(),
- uploadedFileInfo = {},
- dropZone = null;
- var isMainContactor = true,
- selectedUserData = ko.observable(),
- selectedFacility = ko.observable(),
- selectedFacilityDataInSearchParentPopup = ko.observable();
- var searchDeferred = new $.Deferred();
- var defaultSearchClassArray = $SearchView.createDefaultArray('FacilityClassId'),
- defaultSearchBuildingArray = $SearchView.createDefaultArray('BuildingId'),
- defaultSearchFloorArray = $SearchView.createDefaultArray('FloorId');
- var tabsVisible = ko.observable(false),
- currentTabIndex = ko.observable(0);
- 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);
- }
- function setupDropZone(isEditModeInPopup, dataViewModel) {
- var timer = null;
- isEditModeInPopup.subscribe(function(value) {
- if (value) {
- if (timer) {
- clearInterval(timer);
- }
- timer = setInterval(function() {
- if ($('#facilityDropZone').length) {
- if (_.isNull(dropZone)) {
- dropZone = BWA.DropZone.create({
- id: '#facilityDropZone',
- categoryId: $Code.FileCategory.FACILITY,
- uploadedFileInfo: uploadedFileInfo,
- handleRemoveBeforePromise: function() {
- var keys = BWA.db.extractKeysObject('CmFacility', dataViewModel);
- return BWA.db.CmFacility.update(keys, { FileId: null });
- },
- handleSuccess: function(fileInfo) {
- dataViewModel.FileId(fileInfo.FileId);
- },
- handleRemovedFile: function() {
- dataViewModel.FileId(null);
- },
- });
- uploadedFileInfo.SiteId = dataViewModel.SiteId();
- uploadedFileInfo.FileId = dataViewModel.FileId();
- if (uploadedFileInfo.FileId) {
- BWA.db.CmFile.byKey(uploadedFileInfo).done(function(data) {
- dropZone.removeAllFiles();
- dropZone.emit('addedfile', {
- name: data.Name,
- size: data.FileSize
- });
- //dropZone.options.maxFiles = 0; // 이게 있으면 삭제후 다시 업로드가 안 된다.
- });
- }
- }
- }
- }, 100);
- }
- else {
- if (timer) {
- clearInterval(timer);
- timer = null;
- }
- dropZone = null;
- }
- });
- }
- var facilityOptions = BemsWebApplication.Factory.Facility;
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmFacility', {
- dataSourceOptions: facilityOptions.getDataSourceForDataGrid(),
- //dataSourceOptions: {
- // store: BemsWebApplication.odata.Facility,
- // select: [ 'SiteId' , 'FacilityCode' , 'ParentFacilityName', 'FirstClassName', 'SecondClassName', 'ThirdClassName', 'Name', 'Nickname',
- // 'BuildingName', 'FloorName', 'ZoneName', 'ManufactureModel', 'MainContactorUserName', 'SubContactorUserName' ]
- //},
- columns: facilityOptions.getColumns([
- { dataField: 'FacilityCode' },
- { dataField: 'ClassName' },
- { dataField: 'Name' },
- { dataField: 'ManufactureModel' },
- { dataField: 'MainContactorUserName' },
- { dataField: 'SubContactorUserName' },
- { dataField: 'Location' }
- ]),
- popupWidth: '740px',
- wordWrapEnabled: true,
- cellPrepared: BemsWebApplication.Factory.Facility.cellPrepared,
- searchViewItems: [
- { 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: 'BuildingId', ignoreValue: 0, defaultValue: 0, value: searchBuildingId, dataSource: searchBuildings, handleChangedValue: handleBuildingInSearchView },
- { id: 'FloorId', ignoreValue: 0, defaultValue: 0, withCheckId: 'BuildingId', value: searchFloorId, dataSource: searchFloors },
- { id: 'Name' }
- ],
- promiseDataInSearchView: searchDeferred.promise(),
- handleViewShowing: function() {
- facilityClassDataSource.filter([
- ['SiteId', '=', BWA.UserInfo.SiteId()],
- 'and',
- ['ParentFacilityClassId', '=', null]
- ]);
- $.when(facilityClassDataSource.load(), buildingDataSource.load()).done(function(result1, result2) {
- facilityClasses[0](result1[0]);
- searchFacilityClasses[0](defaultSearchClassArray.slice(0).concat(result1[0]));
- initializeSearchClasses();
- buildings(result2[0]);
- searchBuildings(defaultSearchBuildingArray.slice(0).concat(result2[0]));
- searchFloors(defaultSearchFloorArray.slice(0));
- searchDeferred.resolve();
- });
- },
- handleViewShown: function(dataViewModel, isEditModeInPopup) {
- setupDropZone(isEditModeInPopup, dataViewModel);
- },
- handlePopupShowing: function(isNewInPopup) {
- tabsVisible(isNewInPopup() == false);
- },
- handlePopupShown: function(isEditModeInPopup, isNewInPopup, dataViewModel) {
- if (isNewInPopup === false) {
- //viewModel.childFacilitiesMultiView.load();
- }
- viewModel.searchViewPopup.show();
- },
- //handlePopupHiding: function() {
- // if (_.isNull(dropZone) === false) {
- // dropZone.dispose();
- // }
- //},
- //handleCancelInPopup: function() {
- // if (_.isNull(dropZone) === false) {
- // dropZone.dispose();
- // }
- //},
- handleSaveSuccess: function() {
- if (_.isNull(dropZone) === false) {
- dropZone.resetUploadedFileInfo();
- }
- },
- handleAfterLoadingModelByKey: function(data, dataViewModel, isNewInPopup) {
- if (isNewInPopup() == false) {
- BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', dataViewModel.FirstClassId(), facilityClasses[1]).done(function() {
- BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', dataViewModel.SecondClassId(), facilityClasses[2]);
- });
- BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', dataViewModel.BuildingId(), floors).done(function() {
- BWA.DataUtil.setArrayDataSourceFilter(zoneDataSource, 'FloorId', dataViewModel.FloorId(), zones);
- });
- if (_.isNull(dataViewModel.FileId()) === false) {
- imagefileUrl('{0}/CmFile(SiteId={1},FileId={2})/$value'.formati(BWA.db._url, dataViewModel.SiteId(), dataViewModel.FileId()));
- }
- else {
- imagefileUrl(undefined);
- }
- selectedFacility(dataViewModel);
- }
- },
- handleDataGridRowClick: function(id, dataGrid, clickRow, popupVisible) {
- dataGrid.clearSelection();
- var data = clickRow.data;
- var dataModel = viewModel.dataModel;
- dataModel.ParentFacilityName = $KoSet(dataModel.ParentFacilityName, data.ParentFacilityName);
- dataModel.ClassName = $KoSet(dataModel.ClassName,
- BWA.Factory.Facility.formatClassName(data.FirstClassName(), data.SecondClassName(), data.ThirdClassName()));
- dataModel.BuildingName = $KoSet(dataModel.BuildingName, data.BuildingName);
- dataModel.FloorName = $KoSet(dataModel.FloorName, data.FloorName);
- dataModel.ZoneName = $KoSet(dataModel.ZoneName, data.ZoneName);
- dataModel.MainContactorUserName = $KoSet(dataModel.MainContactorUserName, data.MainContactorUserName);
- dataModel.SubContactorUserName = $KoSet(dataModel.SubContactorUserName, data.SubContactorUserName);
- popupVisible(true);
- }
- });
- //var handleSelectBoxCompany = function( e ) {
- // viewModel.dataModel.CompanyId(e.value);
- //};
- 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);
- }
- viewModel.buttonSearchFacility = function() {
- viewModel.facilitySearchPopup.show();
- };
- viewModel.buttonSearchMainContactorUser = function(e) {
- isMainContactor = true;
- viewModel.userSearchPopup.show();
- }
- viewModel.buttonSearchSubContactorUser = function(e) {
- isMainContactor = false;
- viewModel.userSearchPopup.show();
- }
- viewModel.tabsOptions = {
- visible: tabsVisible,
- selectedIndex: currentTabIndex,
- dataSource: [
- { text: '시설정보' },
- { text: '작업이력' },
- { text: '하위시설' },
- { text: '점검항목' },
- { text: '법정항목' },
- { text: '운전일자항목' }
- ]
- };
- //viewModel.companyDataSource = companies;
- //viewModel.handleSelectBoxCompany = handleSelectBoxCompany;
- viewModel.dataModel.ClassName = ko.observable();
- viewModel.facilityClasses = facilityClasses;
- viewModel.searchFacilityClasses = searchFacilityClasses;
- viewModel.buildings = buildings;
- viewModel.floors = floors;
- viewModel.zones = zones;
- viewModel.userSearchPopup = $UserSearchPopup(viewModel, selectedUserData);
- viewModel.facilitySearchPopup = BWA.Popup.Facility.create(viewModel, selectedFacilityDataInSearchParentPopup);
- var multiViewDataSource = [{
- viewModel: viewModel,
- imagefileUrl: imagefileUrl,
- template: 'facility'
- }];
- //viewModel.childFacilitiesMultiView = BWA.Facility.createChildFacilitiesMultiViewInPopup(viewModel,selectedFacility);
- BWA.Popup.WorkResult.setupMultiViewInPopup(viewModel, selectedFacility, multiViewDataSource);
- BWA.Facility.setupMultiViewInPopup(viewModel, selectedFacility, multiViewDataSource);
- BWA.FacilityCheckItem.setupMultiViewInPopup($Code.WorkType.REGULAR_CHECK, 'checkItems',
- 'checkItemDataGrid', viewModel, selectedFacility, multiViewDataSource);
- BWA.FacilityCheckItem.setupMultiViewInPopup($Code.WorkType.LEGAL_CHECK, 'legalCheckItems',
- 'legalCheckItemDataGrid', viewModel, selectedFacility, multiViewDataSource);
- //BWA.CheckGroupManagement.setupMultiViewInPopup(viewModel, selectedFacility, multiViewDataSource);
- //BWA.LegalCheckGroupManagement.setupMultiViewInPopup(viewModel, selectedFacility, multiViewDataSource);
- viewModel.searchViewPopup = BWA.Popup.SearchView.create({
- parentPopupId: 'popupDetail',
- parentPopupVisible: viewModel.popupVisible,
- handleSearch: function(filter, searchItems) {
- }
- });
- // viewModel.searchViewPopup
- viewModel.multiViewOptions = {
- height: '560px',
- selectedIndex: currentTabIndex,
- dataSource: multiViewDataSource
- };
- return viewModel;
- };
|