| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 | 
							- BemsWebApplication.PointLocationMapping = function (params, viewInfo) {
 
-     "use strict";
 
-     var BUILDING_DEPTH = 1,
 
-         FLOOR_DEPTH = 2,
 
-         ZONE_DEPTH = 3;
 
-     //권한설정
 
-     var hasnotModificationPermission = ko.observable(true);
 
-     //var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true),
 
-     var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', [('SiteId', '=', BWA.UserInfo.SiteId())]),
 
-         floorDataSource = BemsWebApplication.db.createDataSource('CmFloor', true),
 
-         zoneDataSource = BemsWebApplication.db.createDataSource('CmZone', true),
 
-         factory = BemsWebApplication.Factory.PointLocationMapping,
 
-         viewModel, gridView,
 
-         popupVisible = ko.observable(false),
 
-         selectedTreeItemData = ko.observable(null),
 
-         selectedTreeItem = ko.observable(null), // 2015 11 12 hcLee 추가 기존 TreeItem -> TreeItemData 로 변경 하고 (위) 이거 추가함
 
- //        selectedPoints = ko.observableArray(),
 
-         dataSource = factory.getDataSource(),
 
-         //dataSource. (dataSourceOptions).filter = ['SiteId', '=', BWA.UserInfo.SiteId()],
 
-         dataGridOptions = utils.datagrid.defaultOptions({
 
-             dxDataSource: dataSource,
 
-             //            datagridId: datagridId,
 
-             dbId: 'BemsMonitoringPoint',
 
-             width: '100%',
 
-             height: 685,
 
-             selection: {
 
-                 mode: 'multiple'
 
-             },
 
-             columns: factory.getColumns([
 
-                 { dataField: 'CmFacility/Name', width: '40%' },
 
-                 { dataField: 'Name', width: '40%' },
 
-                 { dataField: 'ValueType', width: '20%' }
 
-             ]),
 
-             wordWrapEnabled: true,
 
-             paging: {
 
-                 pageSize: 19,
 
-                 enabled: true
 
-             },
 
-             pager: {
 
-             },
 
-             handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
 
-             }
 
-         });
 
-     function refreshList() {
 
-         var date = moment();
 
-     }
 
-     function handleButtonSearchPointView() {
 
-         if (selectedTreeItemData() === null) {
 
-             utils.toast.show('선택된 빌딩/층/존이 없습니다.', 'warning');
 
-             return null;
 
-         }
 
-         viewModel.pointSearchPopup.show();
 
-     }
 
-     function handleClickTreeItem(element, data) {
 
-         // 2015 11 12  hcLee 추가
 
-         selectedTreeItem(data);
 
-         var eq = BWA.DataUtil.constructEqualFilter;
 
-         var depth = data.depth;
 
-         data = data.data;
 
-         selectedTreeItemData(data);
 
-         var filter = [eq('SiteId', data.SiteId()), 'and'];
 
-         var buildingId = null;
 
-         var floorId = null;
 
-         var zoneId = null;
 
-         switch (depth) {
 
-             case BUILDING_DEPTH: // building
 
-                 buildingId = data.BuildingId();
 
-                 break;
 
-             case FLOOR_DEPTH: // floor
 
-                 buildingId = data.BuildingId();
 
-                 floorId = data.FloorId();
 
-                 break;
 
-             case ZONE_DEPTH: // zone
 
-                 buildingId = data.BuildingId();
 
-                 floorId = data.FloorId();
 
-                 zoneId = data.ZoneId();
 
-                 break;
 
-         }
 
-         filter.push(eq('BuildingId', buildingId));
 
-         filter.push('and');
 
-         filter.push(eq('FloorId', floorId));
 
-         filter.push('and');
 
-         filter.push(eq('ZoneId', zoneId));
 
-         viewModel.pointSearchPopup.setLocation(data.SiteId(), buildingId, floorId, zoneId);
 
-         var datagrid = $('#datagrid').dxDataGrid('instance');
 
-         datagrid.filter(filter);
 
-     }
 
-     function handleViewShowing() {
 
-         //권한설정
 
-         hasnotModificationPermission(!BWA.UserInfo.hasPermissionOfModification(viewInfo.viewName));
 
-     }
 
-     function handleViewShown() {
 
-         if (buildingDataSource._items.length != 0) {
 
-             var data = selectedTreeItem();
 
-             if (data != null)
 
-                 $('#locationTreeView').cwTreeView('reload', selectedTreeItem().parentData);
 
-         }
 
-         var eq = BWA.DataUtil.constructEqualFilter;
 
-         $('#locationTreeView').cwTreeView({
 
-             width: '30%',
 
-             height: 'auto',
 
-             //            height: '480px',
 
-             onClickTreeItem: handleClickTreeItem,
 
-             delegateDataSource: function (data, alterObj) {
 
-                 var id = data.id;
 
-                 var depth = data.depth;
 
-                 var promise = null;
 
-                 switch (depth) {
 
-                     case 0:
 
-                         promise = buildingDataSource.load();
 
-                         break;
 
-                     case 1:
 
-                         floorDataSource.filter([
 
-                             eq('SiteId', BWA.UserInfo.SiteId()),
 
-                             'and',
 
-                             eq('BuildingId', data.data.BuildingId())
 
-                         ]);
 
-                         promise = floorDataSource.load();
 
-                         break;
 
-                     case 2:
 
-                         zoneDataSource.filter([
 
-                             eq('SiteId', BWA.UserInfo.SiteId()),
 
-                             'and',
 
-                             eq('BuildingId', data.data.BuildingId()),
 
-                             'and',
 
-                             eq('FloorId', data.data.FloorId())
 
-                         ]);
 
-                         promise = zoneDataSource.load();
 
-                         break;
 
-                 }
 
-                 return promise;
 
-             }
 
-         });
 
-         gridView = $('#datagrid').dxDataGrid('instance');
 
-         // hcLee 2016 01 22
 
-         if (selectedTreeItemData() === null) {
 
-             var eq = BWA.DataUtil.constructEqualFilter;
 
-             var filterInit = [eq('SiteId', -1)];
 
-             //..var datagrid = $('#datagrid').dxDataGrid('instance');
 
-             gridView.filter(filterInit);
 
-         }
 
-         $SearchView.setPopupVisibleObservable(null);
 
-         //$SideMenu.showSideMenuIfWill(params.view);
 
-     }
 
-     function handleAddPoints(points) {
 
-         if (points.length === 0) return;
 
-         if (selectedTreeItemData() === null) {
 
-             utils.toast.show('선택된 빌딩/층/존이 없습니다.', 'warning');
 
-             return null;
 
-         }
 
-         var rows = window.utils.datagrid.getItems(gridView);
 
-         points = _.map(points, function (item) {
 
-             var facilityCode = item.FacilityCode;
 
-             var propertyId = item.PropertyId;
 
-             if (_.some(rows, function (x) {
 
-                 return (x.FacilityCode() === facilityCode && x.PropertyId === propertyId);
 
-             })) {
 
-                 return null;
 
-             }
 
-             return item;
 
-         });
 
-         var data = selectedTreeItemData();
 
-         var parameters = {
 
-             BuildingId: data.BuildingId()
 
-         };
 
-         if (_.isUndefined(data.FloorId) === false) {
 
-             parameters.FloorId = data.FloorId();
 
-             if (_.isUndefined(data.ZoneId) === false) {
 
-                 parameters.ZoneId = data.ZoneId();
 
-             }
 
-             else {
 
-                 parameters.ZoneId = null;
 
-             }
 
-         }
 
-         else {
 
-             parameters.FloorId = null;
 
-             parameters.ZoneId = null;
 
-         }
 
-         var postData = [];
 
-         var itemKeys = ['SiteId', 'FacilityCode', 'PropertyId'];
 
-         var toJS = BWA.DataUtil.convertHybridViewModelToJS;
 
-         //        $.each(points.concat(rows), function(i, item) {
 
-         $.each(points, function (i, item) {
 
-             item = toJS(_.pick(item, itemKeys));
 
-             item = $.extend(item, parameters);
 
-             postData.push(item);
 
-         });
 
-         parameters.SiteId = data.SiteId();
 
-         var promise = BemsWebApplication.api.post(
 
-             'BemsMonitoringPoint/AddLocation', postData, parameters
 
-         );
 
-         promise.done(function () {
 
-             utils.toast.show($G('successDatabaseProcessMsg'));
 
-             gridView.refresh();
 
-         });
 
-         console.log(points);
 
-         return promise;
 
-     }
 
-     function handleRemoveSelectedPoints() {
 
-         if (selectedTreeItemData() === null) {
 
-             utils.toast.show('선택된 빌딩/층/존이 없습니다.', 'warning');
 
-             return null;
 
-         }
 
-         var rows = gridView.getSelectedRowsData();
 
-         var postData = [];
 
-         var itemKeys = BWA.db.BemsMonitoringPoint.key();
 
-         var toJS = BWA.DataUtil.convertHybridViewModelToJS;
 
-         $.each(rows, function (i, item) {
 
-             item = toJS(_.pick(item, itemKeys));
 
-             postData.push(item);
 
-         });
 
-         var promise = BemsWebApplication.api.post(
 
-             'BemsMonitoringPoint/RemoveLocation', postData
 
-         );
 
-         promise.done(function () {
 
-             utils.toast.show($G('successDatabaseProcessMsg'));
 
-             gridView.clearSelection();
 
-             gridView.refresh();
 
-         });
 
-         return promise;
 
-     }
 
-     viewModel = {
 
-         viewShowing: handleViewShowing,
 
-         hasnotModificationPermission: hasnotModificationPermission, //권한설정
 
-         refreshList: refreshList,
 
-         handleRemoveSelectedPoints: handleRemoveSelectedPoints,
 
-         handleButtonSearchPointView: handleButtonSearchPointView,
 
-         dataGridOptions: dataGridOptions,
 
-     };
 
-     viewModel.pointSearchPopup = BWA.Popup.PointSearch.create(viewModel, handleAddPoints);
 
-     return $.extend(BWA.CommonView.create(params, viewInfo, viewModel.options, null, handleViewShown), viewModel);
 
-     //    return viewModel;
 
- };
 
 
  |