04191cc7935a33221dcb66957adc054024b7b1ad.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. BemsWebApplication.ControlValueSet = function (params, viewInfo) {
  2. "use strict";
  3. /*
  4. var facilityViewModel = new BWA.CmFacilityViewModel();
  5. var cmFacilityDataSource = BemsWebApplication.db.createDataSource('CmFacility', true);
  6. var m_Facility;
  7. var facilityDataSource = BWA.db.createDataSource('CmFacility'),
  8. facilitiesForSearch = ko.observableArray(),
  9. facilityCodeForSearch = ko.observable(0),
  10. deferredForSearch = new $.Deferred(); */
  11. var facilityClassDataSource = BemsWebApplication.db.createDataSource('FmsFacilityCodeClass');
  12. //var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true),
  13. // floorDataSource = BemsWebApplication.db.createDataSource('CmFloor'),
  14. //zoneDataSource = BemsWebApplication.db.createDataSource('CmZone');
  15. // 설비분류 데이터소스
  16. var facilityTypeDataSource = BemsWebApplication.db.createDataSource('BemsFacilityType');
  17. var facilityTypes = ko.observableArray();
  18. var facilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()];
  19. var buildings = ko.observableArray(),
  20. floors = ko.observableArray(),
  21. zones = ko.observableArray();
  22. var searchFacilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()],
  23. searchFacilityClassValues = [ko.observable(), ko.observable(), ko.observable()],
  24. searchBuildings = ko.observableArray(),
  25. searchFloors = ko.observableArray(),
  26. searchBuildingId = ko.observable(),
  27. searchFloorId = ko.observable();
  28. // var defaultSearchClassArray = $SearchView.createDefaultArray('FacilityClassId'),
  29. // defaultSearchBuildingArray = $SearchView.createDefaultArray('BuildingId'),
  30. // defaultSearchFloorArray = $SearchView.createDefaultArray('FloorId');
  31. var searchDeferred = new $.Deferred();
  32. /*
  33. selectedFacilityDataInSearchParentPopup.subscribe(function (value) {
  34. viewModel.dataModel.ParentFacilityCode(value.FacilityCode);
  35. viewModel.dataModel.ParentFacilityName(value.Name);
  36. });
  37. selectedUserData.subscribe(function (value) {
  38. if (isMainContactor) {
  39. viewModel.dataModel.MainContactorUserId(value.UserId);
  40. viewModel.dataModel.MainContactorUserName(value.Name);
  41. }
  42. else {
  43. viewModel.dataModel.SubContactorUserId(value.UserId);
  44. viewModel.dataModel.SubContactorUserName(value.Name);
  45. }
  46. });*/
  47. var handleFirstClassChangedValueInSearchView = function (e) {
  48. if (e.value === 0) {
  49. initializeSearchClasses();
  50. return;
  51. }
  52. BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[1], defaultSearchClassArray);
  53. };
  54. var handleSecondClassChangedValueInSearchView = function (e) {
  55. if (e.value === 0) {
  56. initializeSearchClasses(true);
  57. return;
  58. }
  59. BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[2], defaultSearchClassArray);
  60. };
  61. /*
  62. var handleBuildingInSearchView = function (e) {
  63. if (e.value === 0) {
  64. searchFloors(defaultSearchFloorArray.slice(0));
  65. searchFloorId(0);
  66. return 0;
  67. }
  68. BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, searchFloors, defaultSearchFloorArray);
  69. }*/
  70. function initializeSearchClasses(onlyThird) {
  71. if (onlyThird === undefined || onlyThird === false) {
  72. searchFacilityClasses[1](defaultSearchClassArray.slice(0));
  73. searchFacilityClassValues[1](0);
  74. }
  75. searchFacilityClasses[2](defaultSearchClassArray.slice(0));
  76. searchFacilityClassValues[2](0);
  77. }
  78. var facilityOptions = BemsWebApplication.Factory.Facility;
  79. /*
  80. var works = ko.observableArray();
  81. var workDataSource = BWA.DataUtil.createDataSource({
  82. dataSourceOptions: {
  83. select: ['SiteId', 'FacilityCode', 'CmFacility/Name', 'Name', 'BemsFuelType/Name', 'BemsServiceType/Name'],
  84. //'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9', 'H10', 'H11', 'H12'],
  85. expand: ['CmFacility', 'BemsFuelType', 'BemsServiceType'],
  86. extendOptions: {
  87. forceOriginalField: true,
  88. }
  89. },
  90. }, 'BemsMonitoringPoint'); */
  91. function handleSearchInSearchView(filter, searchViewItems) {
  92. //workDataSource.filter = filter;
  93. //workDataSource.load().done(function (workResult) {
  94. viewModel.dataSource.load().done(function (workResult) {
  95. _.each(workResult, function (x) {
  96. x[6] = 'CV';
  97. x.CV = 100;
  98. //works.push(x);
  99. //alert(x.Name());
  100. });
  101. //datas = workResult;
  102. //works(workResult);
  103. //viewModel.dataSource = works;
  104. });
  105. viewModel.dataSource = null;
  106. viewModel.refreshList();
  107. }
  108. //var tempDate = new Date();
  109. var paramDate = new Date(2015,8,17, 15,0, 0);
  110. var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'BemsMonitoringPoint', {
  111. //var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, null, {
  112. rowAlternationEnabled: true,
  113. editing: {
  114. //editMode: 'batch',
  115. //editMode: 'editcell',
  116. editMode: 'cell', // 14.1은 batch, row 두가지 밖에 없다. cell->row로 동작중이다. 2015 07 15 hcLee
  117. editEnabled: true,
  118. //removeEnabled:false,
  119. //visible:false,
  120. },
  121. //dataSource: works,
  122. dataSourceOptions: {
  123. select: ['SiteId', 'FacilityCode', 'CmFacility/Name', 'Name', 'BemsFuelType/Name', 'BemsServiceType/Name', 'BemsMonitoringPointHistoryDaily/DailyValue'],
  124. //'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9', 'H10', 'H11', 'H12'],
  125. expand: ['CmFacility', 'BemsFuelType', 'BemsServiceType', 'BemsMonitoringPointHistoryDaily'],
  126. extendOptions: {
  127. forceOriginalField: true,
  128. },
  129. filter: [
  130. //['BemsMonitoringPointHistory15min/CreatedDateTime', ">=", paramDate],
  131. ['FacilityCode', "=", 1390],
  132. ]
  133. },
  134. columns: [
  135. { dataField: 'FacilityCode', caption: $G('number'), width: '4%', alignment: 'center' }, // ?
  136. { dataField: 'CmFacility/Name', caption: '설비명', width: '20%', alignment: 'center', allowEditing: false },
  137. { dataField: 'Name', caption: '관제점명', width: '20%', alignment: 'center', allowEditing: false },
  138. { dataField: 'BemsFuelType/Name', caption: '에너지원', width: '10%', alignment: 'center', allowEditing: false, },
  139. { dataField: 'BemsServiceType/Name', caption: '용도', width: '10%', alignment: 'center', allowEditing: false },
  140. { dataField: 'BemsMonitoringPointHistory15Min/CurrentValue', caption: '설정값', width: '8%', alignment: 'center', },
  141. /* { dataField: 'T4', caption: '2월', width: '6%', alignment: 'center' },
  142. { dataField: 'T5', caption: '2월', width: '6%', alignment: 'center' },
  143. { dataField: 'T6', caption: '2월', width: '6%', alignment: 'center' },
  144. { dataField: 'T7', caption: '2월', width: '6%', alignment: 'center' },
  145. { dataField: 'T8', caption: '2월', width: '6%', alignment: 'center' },
  146. { dataField: 'T9', caption: '2월', width: '6%', alignment: 'center' },
  147. { dataField: 'T10', caption: '2월', width: '6%', alignment: 'center' },
  148. { dataField: 'T11', caption: '2월', width: '6%', alignment: 'center' },
  149. { dataField: 'T12', caption: '2월', width: '6%', alignment: 'center' }, */
  150. //{ dataField: 'Target_humidity', caption: '목표습도', width: '40%', alignment: 'center' }
  151. //utils.datagrid.columnIsUse( '15%' )
  152. ],
  153. popupWidth: 480,
  154. searchViewItems: [
  155. /* { id: 'FacilityCode', ignoreValue: 0, defaultValue: 0, value: facilityCodeForSearch, dataSource: facilitiesForSearch }, */
  156. /*
  157. { id: 'FirstClassId', ignoreValue: 0, defaultValue: 0, value: searchFacilityClassValues[0], dataSource: searchFacilityClasses[0], handleChangedValue: handleFirstClassChangedValueInSearchView },
  158. { id: 'SecondClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'FirstClassId', value: searchFacilityClassValues[1], dataSource: searchFacilityClasses[1], handleChangedValue: handleSecondClassChangedValueInSearchView },
  159. { id: 'ThirdClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'FirstClassId', value: searchFacilityClassValues[2], dataSource: searchFacilityClasses[2] },*/
  160. //{ id: 'CmFacility/BuildingId', ignoreValue: 0, defaultValue: 0, value: searchBuildingId, dataSource: searchBuildings, handleChangedValue: handleBuildingInSearchView },
  161. //{ id: 'CmFacility/FloorId', ignoreValue: 0, defaultValue: 0, withCheckId: 'CmFacility/BuildingId', value: searchFloorId, dataSource: searchFloors },
  162. { id: 'CmFacility/Name' },
  163. { id: 'Name' },
  164. ],
  165. promiseDataInSearchView: searchDeferred.promise(),
  166. //promiseDataInSearchView: deferredForSearch.promise(),
  167. handleViewShowing: function () {
  168. facilityClassDataSource.filter([
  169. ['SiteId', '=', BWA.UserInfo.SiteId()],
  170. 'and',
  171. ['ParentFacilityClassId', '=', null]
  172. ]);
  173. facilityTypeDataSource.filter([
  174. ['FacilityTypeId', '=', 1]
  175. ]);
  176. // 빌딩 데이터 로드 시점
  177. $.when(facilityClassDataSource.load(),
  178. //buildingDataSource.load(),
  179. facilityTypeDataSource.load()
  180. ).done(function (result1, result2, result3) {
  181. // searchDeferred.resolve();
  182. });
  183. },
  184. handleViewShown: function (dataViewModel, isEditModeInPopup) {
  185. //setupDropZone(isEditModeInPopup, dataViewModel);
  186. handleSearchInSearchView();
  187. },
  188. handleViewHidden: function () {
  189. $SearchView.visibleObservable(false); // hcLee 2015 03 23
  190. visiblePopup(false);
  191. },
  192. handlePopupShowing: function (that) {
  193. alert(9);
  194. },
  195. });
  196. //floorDataSource.filter('BuildingId', -1);
  197. //zoneDataSource.filter('FloorId', -1);
  198. viewModel.handleSelectBoxChangeFirstClass = function (e) {
  199. BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, facilityClasses[1]);
  200. viewModel.dataModel.SecondClassId(null);
  201. viewModel.dataModel.ThirdClassId(null);
  202. };
  203. viewModel.handleSelectBoxChangeSecondClass = function (e) {
  204. BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, facilityClasses[2]);
  205. viewModel.dataModel.ThirdClassId(null);
  206. };
  207. /*
  208. viewModel.handleSelectBoxChangeBuilding = function (e) {
  209. BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, floors);
  210. viewModel.dataModel.FloorId(null);
  211. viewModel.dataModel.ZoneId(null);
  212. };
  213. viewModel.handleSelectBoxChangeFloor = function (e) {
  214. BWA.DataUtil.setArrayDataSourceFilter(zoneDataSource, 'FloorId', e.value, zones);
  215. viewModel.dataModel.ZoneId(null);
  216. };*/
  217. function refreshList() {
  218. //dataSource.pageIndex(0);
  219. //dataSource.load();
  220. }
  221. /*
  222. function getDefaultFloorForSearch() {
  223. return $SearchView.createDefaultArray( 'FloorId' );
  224. }*/
  225. /*
  226. viewModel.buildings = buildings;
  227. viewModel.buildingsForSearch = buildingsForSearch;
  228. viewModel.floors = floors;
  229. viewModel.floorsForSearch = floorsForSearch;
  230. viewModel.handleSelectBoxChangeBuilding = function( e ) {
  231. BWA.DataUtil.setArrayDataSourceFilter( floorDataSource, 'BuildingId', e.value, floors );
  232. viewModel.dataModel.FloorId( null );
  233. }*/
  234. viewModel.handleSearchInSearchView = handleSearchInSearchView;
  235. /*
  236. viewModel.facilityTypes = facilityTypes;
  237. viewModel.dataModel.ClassName = ko.observable();
  238. viewModel.facilityClasses = facilityClasses;
  239. viewModel.searchFacilityClasses = searchFacilityClasses;
  240. viewModel.buildings = buildings;
  241. viewModel.floors = floors;
  242. viewModel.zones = zones;*/
  243. /*
  244. function handleSelectedFacilityInSearchView(facility) {
  245. m_Facility = facility;
  246. return;
  247. }*/
  248. return viewModel;
  249. };