jsgui3-server 0.0.121 → 0.0.122

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/.vscode/settings.json +6 -0
  2. package/README.md +10 -10
  3. package/controls/Active_HTML_Document.js +116 -116
  4. package/controls/README.md +7 -7
  5. package/controls/page/admin.js +74 -74
  6. package/controls/panel/admin.js +11 -11
  7. package/examples/_css/basic.css +913 -913
  8. package/examples/_css/database-control.css +51 -51
  9. package/examples/_css/jsgui.css +66 -66
  10. package/examples/_css/multi-layout.css +23 -23
  11. package/examples/_css/style.css +1669 -1669
  12. package/examples/_css/top-and-bottom-bars.css +54 -54
  13. package/examples/box/1) square box/client.js +188 -188
  14. package/examples/box/1) square box/server.js +112 -112
  15. package/examples/box/2) twenty square boxes/css flex wrap/client.js +248 -248
  16. package/examples/box/2) twenty square boxes/css flex wrap/server.js +112 -112
  17. package/examples/boxes/square_boxes.js +45 -48
  18. package/examples/boxes/square_boxes_client.js +132 -136
  19. package/examples/client-side-popup-menu-button.html +93 -93
  20. package/examples/color_palette.js +51 -51
  21. package/examples/color_palette_client.js +95 -95
  22. package/examples/controls/1) window/client.js +186 -186
  23. package/examples/controls/1) window/server.js +117 -117
  24. package/examples/controls/10) window, mirrored text inputs/client.js +320 -320
  25. package/examples/controls/10) window, mirrored text inputs/server.js +117 -117
  26. package/examples/controls/11) window, mirrored text fields/client.js +493 -251
  27. package/examples/controls/11) window, mirrored text fields/server.js +117 -117
  28. package/examples/controls/11b) window, shared Data_Object model mirrored text fields/client.js +613 -331
  29. package/examples/controls/11b) window, shared Data_Object model mirrored text fields/server.js +117 -117
  30. package/examples/controls/11c) window, shared Data_Value model mirrored text fields/client.js +617 -617
  31. package/examples/controls/11c) window, shared Data_Value model mirrored text fields/server.js +117 -117
  32. package/examples/controls/11d) window, shared model mirrored integer text fields/client.js +611 -280
  33. package/examples/controls/11d) window, shared model mirrored integer text fields/server.js +134 -22
  34. package/examples/controls/12) window, Select_Options control/client.js +435 -452
  35. package/examples/controls/12) window, Select_Options control/server.js +117 -117
  36. package/examples/controls/2) two windows/client.js +193 -193
  37. package/examples/controls/2) two windows/server.js +113 -113
  38. package/examples/controls/3) five windows/client.js +217 -217
  39. package/examples/controls/3) five windows/server.js +116 -115
  40. package/examples/controls/4) window, tabbed panel/client.js +54 -225
  41. package/examples/controls/4) window, tabbed panel/server.js +17 -117
  42. package/examples/controls/5) window, grid/client.js +204 -484
  43. package/examples/controls/5) window, grid/server.js +117 -119
  44. package/examples/controls/6) window, color_palette/client.js +204 -204
  45. package/examples/controls/6) window, color_palette/server.js +117 -117
  46. package/examples/controls/7) window, month_view/client.js +40 -231
  47. package/examples/controls/7) window, month_view/server.js +117 -117
  48. package/examples/controls/8) window, checkbox/client.js +247 -209
  49. package/examples/controls/8) window, checkbox/server.js +117 -117
  50. package/examples/controls/9) window, date picker/client.js +303 -303
  51. package/examples/controls/9) window, date picker/server.js +117 -117
  52. package/examples/controls/9b) window, shared data.model mirrored date pickers/client.js +398 -398
  53. package/examples/controls/9b) window, shared data.model mirrored date pickers/server.js +117 -117
  54. package/examples/controls/__old/_html-server-color-palette.js +114 -114
  55. package/examples/controls/__old/html-server-combo-box.js +104 -104
  56. package/examples/controls/__old/html-server-list.js +98 -98
  57. package/examples/controls/__old/html-server-popup-menu-button.js +114 -114
  58. package/examples/controls/__old/html-server-start-stop-toggle-button.js +146 -146
  59. package/examples/controls/__old/scs-arrow-button.js +36 -36
  60. package/examples/controls/__old/scs-date-picker.js +157 -157
  61. package/examples/controls/__old/scs-file-browser.js +82 -82
  62. package/examples/controls/__old/scs-item.js +159 -159
  63. package/examples/controls/__old/scs-month-arrow-selector.js +126 -126
  64. package/examples/controls/__old/scs-month-view.js +94 -94
  65. package/examples/controls/__old/scs-start-stop-toggle-button.js +40 -40
  66. package/examples/controls/__old/scs-tree.js +49 -49
  67. package/examples/controls/__old/scs-year-arrow-selector.js +127 -127
  68. package/examples/demos/date-picker.js +119 -119
  69. package/examples/demos/explain-encapsulation.js +9 -9
  70. package/examples/demos/resizing.js +35 -35
  71. package/examples/demos/server_time.js +6 -6
  72. package/examples/grids/grid_1.js +45 -45
  73. package/examples/grids/grid_1_client.js +329 -329
  74. package/examples/html-rendering.js +20 -20
  75. package/examples/html-server.js +105 -105
  76. package/examples/introducing jsgui3/server.js +110 -110
  77. package/examples/mx_display/mx_display_1.js +45 -45
  78. package/examples/mx_display/mx_display_1_client.js +444 -444
  79. package/fs2.js +1836 -1836
  80. package/http/responders/HTTP_Responder.js +15 -15
  81. package/http/responders/static/Static_Route_HTTP_Responder.js +105 -105
  82. package/module.js +34 -34
  83. package/old/_single-control-server.js +418 -418
  84. package/old/single-control-server.js +368 -368
  85. package/old/single-page-app.js +131 -131
  86. package/package.json +42 -42
  87. package/page-context.js +92 -92
  88. package/publishers/helpers/assigners/Assigner.js +10 -10
  89. package/publishers/helpers/assigners/static-compressed-response-buffers/Single_Control_Webpage_Server_Static_Compressed_Response_Buffers_Assigner.js +150 -150
  90. package/publishers/helpers/assigners/static-headers/Single_Control_Webpage_Server_Static_Headers_Assigner.js +109 -109
  91. package/publishers/helpers/assigners/static-routes/Single_Control_Webpage_Server_Static_Routes_Assigner.js +91 -91
  92. package/publishers/helpers/assigners/static-uncompressed-response-buffers/Single_Control_Webpage_Server_Static_Uncompressed_Response_Buffers_Assigner.js +104 -104
  93. package/publishers/helpers/preparers/static/bundle/Ready_To_Serve_Preparer.js +18 -18
  94. package/publishers/helpers/preparers/static/bundle/Static_Routes_Responses_Webpage_Bundle_Preparer.js +44 -44
  95. package/publishers/http-function-publisher.js +212 -212
  96. package/publishers/http-html-page-publisher.js +5 -5
  97. package/publishers/http-html-publisher.js +24 -24
  98. package/publishers/http-js-publisher.js +135 -135
  99. package/publishers/http-observable-publisher.js +124 -124
  100. package/publishers/http-publisher.js +53 -53
  101. package/publishers/http-resource-publisher.js +325 -325
  102. package/publishers/http-webpage-publisher.js +659 -658
  103. package/publishers/http-webpageorsite-publisher.js +343 -343
  104. package/publishers/http-website-publisher.js +640 -640
  105. package/publishers/notes.md +9 -9
  106. package/resources/README.md +16 -16
  107. package/resources/_old_website-javascript-resource.js +994 -994
  108. package/resources/_old_website-resource.js +507 -507
  109. package/resources/compile/server-resource-compilation.js +43 -43
  110. package/resources/data-resource.js +118 -118
  111. package/resources/fs-resource.js +146 -146
  112. package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -105
  113. package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +42 -42
  114. package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +61 -61
  115. package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +41 -41
  116. package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +61 -61
  117. package/resources/jsbuilder/JS_AST/JS_AST_Node.js +93 -93
  118. package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +253 -253
  119. package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +337 -337
  120. package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +39 -39
  121. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +96 -96
  122. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +37 -37
  123. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +61 -61
  124. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +43 -43
  125. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +72 -72
  126. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +92 -92
  127. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -29
  128. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -116
  129. package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +159 -159
  130. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +178 -178
  131. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +87 -87
  132. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +91 -91
  133. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +136 -136
  134. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +73 -73
  135. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +39 -39
  136. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +85 -85
  137. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +42 -42
  138. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +40 -40
  139. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +54 -54
  140. package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +45 -45
  141. package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +343 -343
  142. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +38 -38
  143. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +30 -30
  144. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +28 -28
  145. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +26 -26
  146. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +8 -8
  147. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +43 -43
  148. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +21 -21
  149. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +89 -89
  150. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +8 -8
  151. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +27 -27
  152. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +28 -28
  153. package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +736 -736
  154. package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +64 -64
  155. package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +31 -31
  156. package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -15
  157. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +305 -305
  158. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +77 -77
  159. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +248 -248
  160. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +138 -138
  161. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -10
  162. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +100 -100
  163. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +60 -60
  164. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +179 -179
  165. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -43
  166. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -12
  167. package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -35
  168. package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -11
  169. package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +31 -31
  170. package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +37 -37
  171. package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +39 -39
  172. package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -25
  173. package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +200 -200
  174. package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +43 -43
  175. package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +76 -76
  176. package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +227 -227
  177. package/resources/jsbuilder/JS_AST/query/find_object_keys.js +404 -404
  178. package/resources/jsbuilder/JS_AST/query/node_queries.js +8 -8
  179. package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +11 -11
  180. package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +85 -85
  181. package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +123 -123
  182. package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +87 -87
  183. package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +10 -10
  184. package/resources/jsbuilder/JS_Builder.js +10 -10
  185. package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +31 -31
  186. package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +25 -25
  187. package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +78 -78
  188. package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +17 -17
  189. package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +25 -25
  190. package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +8 -8
  191. package/resources/jsbuilder/JS_File/JS_File.js +12 -12
  192. package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -202
  193. package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -175
  194. package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -81
  195. package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -86
  196. package/resources/jsbuilder/JS_File/JS_File_4-Query.js +413 -413
  197. package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +414 -414
  198. package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -59
  199. package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -24
  200. package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -12
  201. package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +23 -23
  202. package/resources/jsbuilder/JS_File/JS_File_Import_References.js +31 -31
  203. package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -16
  204. package/resources/jsbuilder/JS_File/JS_Files.js +15 -15
  205. package/resources/jsbuilder/Module.js +14 -14
  206. package/resources/jsbuilder/Platform.js +13 -13
  207. package/resources/jsbuilder/Platforms.js +69 -69
  208. package/resources/jsbuilder/Project.js +109 -109
  209. package/resources/jsbuilder/Reference.js +1 -1
  210. package/resources/jsbuilder/Reference_Sequence.js +16 -16
  211. package/resources/jsbuilder/Scope.js +29 -29
  212. package/resources/jsbuilder/Variable_Name_Provider.js +42 -42
  213. package/resources/jsbuilder/_JS_File.js +225 -225
  214. package/resources/jsbuilder/ast_query.js +20 -20
  215. package/resources/jsbuilder/babel/babel_consts.js +162 -162
  216. package/resources/jsbuilder/babel/babel_node_tools.js +541 -541
  217. package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +923 -904
  218. package/resources/jsbuilder/build.js +16 -16
  219. package/resources/jsbuilder/platform_notes.md +66 -66
  220. package/resources/jsbuilder/test/test_ast_node.js +381 -381
  221. package/resources/jsbuilder/test/test_js_file.js +303 -303
  222. package/resources/jsbuilder/test/test_project.js +157 -157
  223. package/resources/local-server-info-resource.js +96 -96
  224. package/resources/notes.txt +10 -10
  225. package/resources/old/website-image-resource.js +1185 -1185
  226. package/resources/process-js.js +498 -498
  227. package/resources/processors/bundlers/bundle.js +29 -29
  228. package/resources/processors/bundlers/bundler.js +23 -23
  229. package/resources/processors/bundlers/css-bundler.js +234 -234
  230. package/resources/processors/bundlers/js/JS_Bundler.js +51 -51
  231. package/resources/processors/bundlers/js/esbuild/Advanced_JS_Bundler_Using_ESBuild.js +388 -391
  232. package/resources/processors/bundlers/js/esbuild/Bundler_Using_ESBuild.js +8 -8
  233. package/resources/processors/bundlers/js/esbuild/Core_JS_Non_Minifying_Bundler_Using_ESBuild.js +188 -188
  234. package/resources/processors/bundlers/js/esbuild/Core_JS_Single_File_Minifying_Bundler_Using_ESBuild.js +191 -192
  235. package/resources/processors/bundlers/js/esbuild/_Old_CSS_Extractor.js +239 -239
  236. package/resources/processors/bundlers/js-bundler.js +263 -263
  237. package/resources/processors/bundlers/test_ast.js +73 -73
  238. package/resources/processors/bundlers/webpage-bundler.js +404 -404
  239. package/resources/processors/bundlers/website-bundler.js +22 -22
  240. package/resources/processors/extractors/Extractor.js +9 -11
  241. package/resources/processors/extractors/js/css_and_js/AST_Node/CSS_And_JS_From_JS_String_Using_AST_Node_Extractor.js +239 -254
  242. package/resources/processors/extractors/js/css_and_js/CSS_And_JS_From_JS_String_Extractor.js +3 -3
  243. package/resources/processors/extractors/string/Pos_Span_String_Extractor.js +93 -93
  244. package/resources/server-installed-tools.js +28 -28
  245. package/resources/server-resource-pool.js +41 -41
  246. package/resources/website-audio-resource.js +735 -735
  247. package/resources/website-css-resource.js +411 -411
  248. package/resources/website-image-resource.js +412 -412
  249. package/resources/website-javascript-resource-processor.js +908 -908
  250. package/resources/website-javascript-resource.js +874 -874
  251. package/resources/website-resource-processor.js +10 -10
  252. package/resources/website-resource.js +164 -164
  253. package/resources/website-static-html-resource.js +199 -199
  254. package/resources/website-template-html-resource.js +231 -231
  255. package/roadmap.md +75 -75
  256. package/server.js +609 -573
  257. package/static-page-context.js +13 -13
  258. package/website/webpage.js +81 -81
  259. package/website/website-group.js +15 -15
  260. package/website/website.js +260 -260
  261. package/examples/controls/11d) window, shared model mirrored integer text fields/both.js +0 -17
  262. package/examples/controls/13) window, shared model mirrored lat_long/client.js +0 -933
  263. package/examples/controls/13) window, shared model mirrored lat_long/server.js +0 -50
  264. package/examples/controls/14) window, control compositional model/client.js +0 -328
  265. package/examples/controls/14) window, control compositional model/server.js +0 -118
  266. package/examples/controls/14a) window, control spec has compositional model/client.js +0 -440
  267. package/examples/controls/14a) window, control spec has compositional model/server.js +0 -118
  268. package/examples/controls/15) window, text field/client.js +0 -256
  269. package/examples/controls/15) window, text field/server.js +0 -39
  270. package/examples/controls/16) Window([Text_Input])/client.js +0 -266
  271. package/examples/controls/16) Window([Text_Input])/server.js +0 -109
  272. package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/client.js +0 -494
  273. package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/isomorphic.js +0 -24
  274. package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/server.js +0 -73
  275. package/examples/controls/2b) two window, context menus/client.js +0 -193
  276. package/examples/controls/2b) two window, context menus/server.js +0 -114
  277. package/examples/controls/4a) window, tabbed panel with various controls inside/client.js +0 -233
  278. package/examples/controls/4a) window, tabbed panel with various controls inside/server.js +0 -118
@@ -1,419 +1,419 @@
1
- /**
2
- * Created by james on 04/12/2016.
3
- */
4
-
5
- /**
6
- * Created by James on 02/10/2016.
7
- */
8
-
9
- // This one will need to activate on the client.
10
- // Really want the whole thing to be in one file.
11
- // Possible to have a standard activation?
12
- //
13
- // Or we need to have a client-side control?
14
- //
15
- // Some of the wiring could be done automatically.
16
- //
17
-
18
- //console.log('pre require jsgui');
19
- var jsgui = require('jsgui3-html');
20
- const each = jsgui.each;
21
- //console.log('post require jsgui');
22
- //var Start_Stop_Toggle_Button = require('../controls/start-stop-toggle-button');
23
- const is_array = jsgui.is_array;
24
- var Server = require('./server');
25
- var Website_Resource = require('./resources/website-resource');
26
- var port = 80;
27
- //console.log('!!Server', !!Server);
28
- //console.log('Object.keys(Server)', Object.keys(Server));
29
- var Server_Page_Context = require('./page-context');
30
-
31
- // js_mode option
32
- // compress
33
- // debug
34
- // (standard)
35
-
36
- // Want to get the library compressed sizes down. Particulatly client. Can do much more with oext.
37
-
38
-
39
-
40
- /*
41
- var server = new Server({
42
- '*': {
43
- 'name': 'html-server'
44
- }
45
- });
46
-
47
- */
48
- /*
49
- var resource_pool = root_server.resource_pool;
50
- // link these getters with the resource pool resource getters?
51
- let app_server = resource_pool['HTML Server'];
52
- //console.log('app_server', app_server);
53
- //
54
-
55
- //console.log('app_server.resource_names', app_server.resource_names);
56
- //console.log('!!app_server.resource_pool', !!app_server.resource_pool);
57
- let js = app_server.resource_pool['Site JavaScript'];
58
- */
59
-
60
- //console.log('Server', Server);
61
-
62
- // And choose the CSS file / files to send it.
63
- // Could send basic jsgui css by default
64
- // Then there would be app css on top of that.
65
-
66
- // Authenticated_Server?
67
- // Has got authentication mechanisms as a wrapper for the controls inside.
68
-
69
-
70
- // Want to be able to set up icons as well.
71
-
72
-
73
-
74
- class Single_Control_Server extends Server {
75
- constructor(spec) {
76
- //spec['*'] = {
77
- // 'name': 'html-server'
78
- //};
79
-
80
- // If the spec is a control contructor...
81
- if (typeof spec === 'function') {
82
- super({}, 'single-control-server');
83
- this.Ctrl = spec;
84
- this.port = 80;
85
- } else {
86
- super(spec);
87
- let Ctrl = spec.Ctrl || spec.ctrl; // not .ctrl? makes it ambiguous / inconsistent.
88
- if (is_array(Ctrl)) {
89
- this.Ctrl = Ctrl[0];
90
- this.params = Ctrl[1];
91
- } else {
92
- if (Ctrl) {
93
- this.Ctrl = Ctrl;
94
- } else {
95
- throw 'Single_Control_Server needs a Ctrl property'
96
- }
97
- }
98
- if (spec.js_mode) this.js_mode = spec.js_mode;
99
- if (spec.js_client) this.js_client = spec.js_client;
100
- // deliver app specific css
101
- // an obj
102
- if (spec.css) this.css = spec.css;
103
- if (spec.icons) this.icons = spec.icons;
104
- if (spec.include_server_ref_in_page_context) {
105
- this.include_server_ref_in_page_context = spec.include_server_ref_in_page_context;
106
- }
107
- // Ctrl.activate_app
108
- //spec.activate_app;
109
- if (spec.activate_app && !this.activate_app) {
110
- this.activate_app = spec.activate_app;
111
- }
112
- //console.log('this.activate_app', this.activate_app);
113
- //throw 'stop';
114
- if (spec.client_package) this.client_package = spec.client_package;
115
- this.port = spec.port || 80;
116
- }
117
- //this.__type_name = 'single-control-server';
118
- var app = new Website_Resource({
119
- 'name': 'html-server'
120
- });
121
-
122
- // will need to keep access to the server?
123
- // server_page_context keeping access to the server?
124
-
125
- // some place to keep variables on the server.
126
- // Especially when we are not coding any / much server-side logic.
127
-
128
- // server.shared
129
- // want an object that is shared between all server instances.
130
-
131
- // A server-side Data_Resource could be the way.
132
-
133
- // Maybe make something like Resource_Pool but simpler?
134
- // Less prescriptive, but allowing a more complex api...?
135
-
136
- // page_context.shared
137
- // shared with the server
138
- // shared with all page contexts.
139
-
140
- this.publish = (...args) => app.publish(...args);
141
- //console.log('app', app);
142
- //throw 'stop';
143
- this.resource_pool.add(app);
144
- this.server_router.set_route('*', app, app.process);
145
- this.app_server = app;
146
- }
147
-
148
- // Could start it up with a client_js reference
149
-
150
- 'start' (callback) {
151
- //throw 'stop';
152
- //var resource_pool = this.resource_pool;
153
-
154
- var resource_pool = this.app_server.resource_pool;
155
- var server_router = this.resource_pool.get_resource('Server Router');
156
- // Build the client js and include that.
157
- // Could have been given a different client js file too.
158
- // By default want to provide the html client from jsgui.
159
- // /client/client
160
-
161
- // build the html client code.
162
- let js = this.app_server.resource_pool['Site JavaScript'];
163
- let css = this.app_server.resource_pool['Site CSS'];
164
- let imgs = this.app_server.resource_pool['Site Images'];
165
-
166
-
167
-
168
- // will look into the resource publisher to see what is published.
169
-
170
- // serve package with replacement options.
171
- // // the activate app function.
172
- // Can be put into place in the served JS.
173
-
174
- // with replacement option within serve_package
175
-
176
- let o_serve_package = {
177
- //'babel': 'mini'
178
- }
179
-
180
- // babel option.
181
- // Activation should be defined
182
- // Or there is some default activation in the client.js
183
- // It has the maps of controls and Controls
184
- // Then can activate these controls.
185
- // There should maybe be some more data services in the client.
186
- // Could make the client more miniature and modular once it works, and then incorporate react.
187
- // Data-Resource would be general enough to work on both.
188
- // The client data resources could then direct their requests to the server ones.
189
- // Could make a resource-pool for both client and server
190
-
191
- //console.log('this.activate_app', this.activate_app);
192
- //throw 'stop';
193
-
194
- // Should do this before the babel compilation. Think that's the sequence anyway.
195
- // Not sure why it's not working.
196
- if (this.activate_app) {
197
- o_serve_package.replace = {
198
- '/* -- ACTIVATE-APP -- */': this.activate_app.toString()
199
- }
200
- //
201
- }
202
- // want it to serve with debug code map
203
- // for the moment
204
- // want that to be easier to do with a --debug option.
205
- // should read command line options.
206
- o_serve_package.js_mode = 'mini';
207
- if (this.js_mode) {
208
- o_serve_package.js_mode = this.js_mode;
209
- } else {
210
- //o_serve_package.babel = 'mini';
211
- }
212
- // need to minify the js.
213
- // Also, gzip compression as standard.
214
- // Need HTTPS for Brotli - but want to get HTTPS working more, tested online and running.
215
-
216
- // Need to minify js, reduce file size.
217
-
218
- // Minifying currently breaks it.
219
-
220
- //o_serve_package.js_mode = 'debug';
221
-
222
- // Extra functionality for loading / serving icon files?
223
- // Easily available / usable named icons will be very useful within the app.
224
- // Could be in sprites / pre-loaded.
225
-
226
-
227
-
228
-
229
- // Not sure how to do the replace when loading from disk.
230
- // Give a reference to the package to serve itself.
231
- // example servers -
232
- // serve the css as well.
233
- if (this.css) {
234
- each(this.css, (path, serve_as) => {
235
- css.serve(serve_as, path);
236
- })
237
- }
238
- let js_client = this.client_package || this.js_client || 'jsgui3-client';
239
- js.serve_package('/js/app.js', js_client, o_serve_package, (err, served) => {
240
- //var resource_pool = this.resource_pool;
241
- //console.log('server_router', server_router);
242
- //console.log('js_client', js_client);
243
- if (!server_router) {
244
- throw 'no server_router';
245
- }
246
- var routing_tree = server_router.routing_tree;
247
- routing_tree.set('/', (req, res) => {
248
- //console.log('root path / request');
249
-
250
- const o_spc = {
251
- 'req': req,
252
- 'res': res,
253
- 'resource_pool': resource_pool
254
- }
255
-
256
- if (this.include_server_ref_in_page_context) o_spc.server = this;
257
-
258
-
259
- var server_page_context = new Server_Page_Context(o_spc);
260
-
261
- // and .server property?
262
- // a different way to get the server info to the components is needed.
263
-
264
- // Page_Bounds_Specifier
265
- var hd = new jsgui.Client_HTML_Document({
266
- 'context': server_page_context
267
- });
268
- hd.include_client_css();
269
- hd.include_css('/css/basic.css')
270
-
271
- if (this.css) {
272
- each(this.css, (path, serve_as) => {
273
- //css.serve(serve_as, path);
274
- hd.include_css('/css/' + serve_as);
275
- });
276
- }
277
-
278
- // include a js script block, having it set up the
279
- // not include_client_js
280
-
281
- // .include_client_config_js()
282
- // will get the resource config from the resource publisher.
283
-
284
- // including data on published resources in the initial html download would be very useful.
285
- // auto event wiring, so that controls that rely on having this data will have it available.
286
-
287
- // Want to get this to work, then greatly slim down the codebase, or at least delete comments, use some more syntactic sugar.
288
-
289
- // Calling 'publish' would be a good method.
290
- //console.log('this.app_server.map_resource_publishers', this.app_server.map_resource_publishers);
291
- //console.log('this.app_server.def_resource_publishers', this.app_server.def_resource_publishers);
292
-
293
- // a script block where we assign the resource publishers.
294
- // tell the client what resources are available on the server.
295
-
296
- // include a js script block.
297
- // jsgui.register_server_resources({...})
298
- // o_def
299
- // an object that describes how the resources are published.
300
-
301
- // app_server.def_resource_publishers
302
- // the urls
303
- // what data it provides / its schema.
304
- // a def from each of the publishers
305
- // with a schema similar to graphql?
306
-
307
- //throw 'stop';
308
-
309
- var body = hd.body;
310
- let o_params = this.params || {};
311
- Object.assign(o_params, {
312
- 'context': server_page_context
313
- });
314
- //console.log('o_params', o_params);
315
- //console.log('this.Ctrl', this.Ctrl);
316
- var ctrl = this.ctrl = new this.Ctrl(o_params);
317
- ctrl.active();
318
- //var ctrl2 = new jsgui.Control({});
319
- body.add(ctrl);
320
-
321
- let resources_script = new jsgui.script({
322
- context: server_page_context
323
- });
324
- // it will be a client-side function.
325
-
326
- // Should not use 'add' here.
327
- // it's the script content.
328
-
329
- // want to get around that escaping.
330
- // options escaping / escape : false
331
-
332
- hd.include_js('/js/app.js');
333
-
334
- // Would this be a place to register icons?
335
-
336
-
337
- const strc = new jsgui.String_Control({
338
- context: server_page_context,
339
-
340
- // Won't have access to the context when registering there?
341
- // Will need to access the client-side context.
342
- // Setting jsgui.context on the client-side does make sense.
343
- // There would only be one context per instance of jsgui on the client.
344
-
345
- // Could raise an event on jsgui, which the page_context listens to?
346
- // The calls need to be set up within the page_context, I think.
347
-
348
- // Could just set the def_server_resources property.
349
- // Then later activation with the page_context could refer to it.
350
-
351
- // setting up the def_resource_publishers
352
- // maybe 'resource' will be a generic term for something in some place.
353
- // can be non-local, but api will localise its use.
354
-
355
- text: `jsgui.register_server_resources(${JSON.stringify(this.app_server.def_resource_publishers)});`
356
- });
357
-
358
- resources_script.add(strc);
359
- body.add(resources_script);
360
-
361
- hd.all_html_render(function (err, deferred_html) {
362
- if (err) {
363
- throw err;
364
- } else {
365
- //console.log('deferred_html', deferred_html);
366
- var mime_type = 'text/html';
367
- //console.log('mime_type ' + mime_type);
368
- res.writeHead(200, {
369
- 'Content-Type': mime_type
370
- });
371
- res.end('<!DOCTYPE html>' + deferred_html, 'utf-8');
372
- }
373
- });
374
- });
375
- //console.log('pre super start');
376
-
377
- super.start(this.port, (err, res_super_start) => {
378
- if (err) {
379
- callback(err);
380
- } else {
381
- //console.log('res_super_start', res_super_start);
382
- this.raise('scs_ready');
383
- callback(null, res_super_start);
384
- }
385
- });
386
- });
387
- // console.log('this.port', this.port);
388
- }
389
-
390
- load_icon_set(path, map_icons) {
391
- // will load each icon into the image resource.
392
- // sequential way of doing this?
393
-
394
-
395
-
396
-
397
-
398
- }
399
- }
400
-
401
- module.exports = Single_Control_Server;
402
-
403
- // Rendering single page controls makes a lot of sense.
404
- // It means the activation code can be contained better there.
405
-
406
- //console.log('resource_pool', resource_pool);
407
- //console.log('resource_pool.resources', resource_pool.resources);
408
-
409
- // The start stop toggle button would need to be registered on the client side.
410
- // May be worth it to have the standard controls registered to start with.
411
- // Or to have the app know which controls are used, so it can register them.
412
-
413
- // Get the website resource
414
-
415
- // Caching items / resources by type?
416
- // Need to give the resources a name.
417
- //var website = resource_pool.get_resource('Server Router');
418
-
1
+ /**
2
+ * Created by james on 04/12/2016.
3
+ */
4
+
5
+ /**
6
+ * Created by James on 02/10/2016.
7
+ */
8
+
9
+ // This one will need to activate on the client.
10
+ // Really want the whole thing to be in one file.
11
+ // Possible to have a standard activation?
12
+ //
13
+ // Or we need to have a client-side control?
14
+ //
15
+ // Some of the wiring could be done automatically.
16
+ //
17
+
18
+ //console.log('pre require jsgui');
19
+ var jsgui = require('jsgui3-html');
20
+ const each = jsgui.each;
21
+ //console.log('post require jsgui');
22
+ //var Start_Stop_Toggle_Button = require('../controls/start-stop-toggle-button');
23
+ const is_array = jsgui.is_array;
24
+ var Server = require('./server');
25
+ var Website_Resource = require('./resources/website-resource');
26
+ var port = 80;
27
+ //console.log('!!Server', !!Server);
28
+ //console.log('Object.keys(Server)', Object.keys(Server));
29
+ var Server_Page_Context = require('./page-context');
30
+
31
+ // js_mode option
32
+ // compress
33
+ // debug
34
+ // (standard)
35
+
36
+ // Want to get the library compressed sizes down. Particulatly client. Can do much more with oext.
37
+
38
+
39
+
40
+ /*
41
+ var server = new Server({
42
+ '*': {
43
+ 'name': 'html-server'
44
+ }
45
+ });
46
+
47
+ */
48
+ /*
49
+ var resource_pool = root_server.resource_pool;
50
+ // link these getters with the resource pool resource getters?
51
+ let app_server = resource_pool['HTML Server'];
52
+ //console.log('app_server', app_server);
53
+ //
54
+
55
+ //console.log('app_server.resource_names', app_server.resource_names);
56
+ //console.log('!!app_server.resource_pool', !!app_server.resource_pool);
57
+ let js = app_server.resource_pool['Site JavaScript'];
58
+ */
59
+
60
+ //console.log('Server', Server);
61
+
62
+ // And choose the CSS file / files to send it.
63
+ // Could send basic jsgui css by default
64
+ // Then there would be app css on top of that.
65
+
66
+ // Authenticated_Server?
67
+ // Has got authentication mechanisms as a wrapper for the controls inside.
68
+
69
+
70
+ // Want to be able to set up icons as well.
71
+
72
+
73
+
74
+ class Single_Control_Server extends Server {
75
+ constructor(spec) {
76
+ //spec['*'] = {
77
+ // 'name': 'html-server'
78
+ //};
79
+
80
+ // If the spec is a control contructor...
81
+ if (typeof spec === 'function') {
82
+ super({}, 'single-control-server');
83
+ this.Ctrl = spec;
84
+ this.port = 80;
85
+ } else {
86
+ super(spec);
87
+ let Ctrl = spec.Ctrl || spec.ctrl; // not .ctrl? makes it ambiguous / inconsistent.
88
+ if (is_array(Ctrl)) {
89
+ this.Ctrl = Ctrl[0];
90
+ this.params = Ctrl[1];
91
+ } else {
92
+ if (Ctrl) {
93
+ this.Ctrl = Ctrl;
94
+ } else {
95
+ throw 'Single_Control_Server needs a Ctrl property'
96
+ }
97
+ }
98
+ if (spec.js_mode) this.js_mode = spec.js_mode;
99
+ if (spec.js_client) this.js_client = spec.js_client;
100
+ // deliver app specific css
101
+ // an obj
102
+ if (spec.css) this.css = spec.css;
103
+ if (spec.icons) this.icons = spec.icons;
104
+ if (spec.include_server_ref_in_page_context) {
105
+ this.include_server_ref_in_page_context = spec.include_server_ref_in_page_context;
106
+ }
107
+ // Ctrl.activate_app
108
+ //spec.activate_app;
109
+ if (spec.activate_app && !this.activate_app) {
110
+ this.activate_app = spec.activate_app;
111
+ }
112
+ //console.log('this.activate_app', this.activate_app);
113
+ //throw 'stop';
114
+ if (spec.client_package) this.client_package = spec.client_package;
115
+ this.port = spec.port || 80;
116
+ }
117
+ //this.__type_name = 'single-control-server';
118
+ var app = new Website_Resource({
119
+ 'name': 'html-server'
120
+ });
121
+
122
+ // will need to keep access to the server?
123
+ // server_page_context keeping access to the server?
124
+
125
+ // some place to keep variables on the server.
126
+ // Especially when we are not coding any / much server-side logic.
127
+
128
+ // server.shared
129
+ // want an object that is shared between all server instances.
130
+
131
+ // A server-side Data_Resource could be the way.
132
+
133
+ // Maybe make something like Resource_Pool but simpler?
134
+ // Less prescriptive, but allowing a more complex api...?
135
+
136
+ // page_context.shared
137
+ // shared with the server
138
+ // shared with all page contexts.
139
+
140
+ this.publish = (...args) => app.publish(...args);
141
+ //console.log('app', app);
142
+ //throw 'stop';
143
+ this.resource_pool.add(app);
144
+ this.server_router.set_route('*', app, app.process);
145
+ this.app_server = app;
146
+ }
147
+
148
+ // Could start it up with a client_js reference
149
+
150
+ 'start' (callback) {
151
+ //throw 'stop';
152
+ //var resource_pool = this.resource_pool;
153
+
154
+ var resource_pool = this.app_server.resource_pool;
155
+ var server_router = this.resource_pool.get_resource('Server Router');
156
+ // Build the client js and include that.
157
+ // Could have been given a different client js file too.
158
+ // By default want to provide the html client from jsgui.
159
+ // /client/client
160
+
161
+ // build the html client code.
162
+ let js = this.app_server.resource_pool['Site JavaScript'];
163
+ let css = this.app_server.resource_pool['Site CSS'];
164
+ let imgs = this.app_server.resource_pool['Site Images'];
165
+
166
+
167
+
168
+ // will look into the resource publisher to see what is published.
169
+
170
+ // serve package with replacement options.
171
+ // // the activate app function.
172
+ // Can be put into place in the served JS.
173
+
174
+ // with replacement option within serve_package
175
+
176
+ let o_serve_package = {
177
+ //'babel': 'mini'
178
+ }
179
+
180
+ // babel option.
181
+ // Activation should be defined
182
+ // Or there is some default activation in the client.js
183
+ // It has the maps of controls and Controls
184
+ // Then can activate these controls.
185
+ // There should maybe be some more data services in the client.
186
+ // Could make the client more miniature and modular once it works, and then incorporate react.
187
+ // Data-Resource would be general enough to work on both.
188
+ // The client data resources could then direct their requests to the server ones.
189
+ // Could make a resource-pool for both client and server
190
+
191
+ //console.log('this.activate_app', this.activate_app);
192
+ //throw 'stop';
193
+
194
+ // Should do this before the babel compilation. Think that's the sequence anyway.
195
+ // Not sure why it's not working.
196
+ if (this.activate_app) {
197
+ o_serve_package.replace = {
198
+ '/* -- ACTIVATE-APP -- */': this.activate_app.toString()
199
+ }
200
+ //
201
+ }
202
+ // want it to serve with debug code map
203
+ // for the moment
204
+ // want that to be easier to do with a --debug option.
205
+ // should read command line options.
206
+ o_serve_package.js_mode = 'mini';
207
+ if (this.js_mode) {
208
+ o_serve_package.js_mode = this.js_mode;
209
+ } else {
210
+ //o_serve_package.babel = 'mini';
211
+ }
212
+ // need to minify the js.
213
+ // Also, gzip compression as standard.
214
+ // Need HTTPS for Brotli - but want to get HTTPS working more, tested online and running.
215
+
216
+ // Need to minify js, reduce file size.
217
+
218
+ // Minifying currently breaks it.
219
+
220
+ //o_serve_package.js_mode = 'debug';
221
+
222
+ // Extra functionality for loading / serving icon files?
223
+ // Easily available / usable named icons will be very useful within the app.
224
+ // Could be in sprites / pre-loaded.
225
+
226
+
227
+
228
+
229
+ // Not sure how to do the replace when loading from disk.
230
+ // Give a reference to the package to serve itself.
231
+ // example servers -
232
+ // serve the css as well.
233
+ if (this.css) {
234
+ each(this.css, (path, serve_as) => {
235
+ css.serve(serve_as, path);
236
+ })
237
+ }
238
+ let js_client = this.client_package || this.js_client || 'jsgui3-client';
239
+ js.serve_package('/js/app.js', js_client, o_serve_package, (err, served) => {
240
+ //var resource_pool = this.resource_pool;
241
+ //console.log('server_router', server_router);
242
+ //console.log('js_client', js_client);
243
+ if (!server_router) {
244
+ throw 'no server_router';
245
+ }
246
+ var routing_tree = server_router.routing_tree;
247
+ routing_tree.set('/', (req, res) => {
248
+ //console.log('root path / request');
249
+
250
+ const o_spc = {
251
+ 'req': req,
252
+ 'res': res,
253
+ 'resource_pool': resource_pool
254
+ }
255
+
256
+ if (this.include_server_ref_in_page_context) o_spc.server = this;
257
+
258
+
259
+ var server_page_context = new Server_Page_Context(o_spc);
260
+
261
+ // and .server property?
262
+ // a different way to get the server info to the components is needed.
263
+
264
+ // Page_Bounds_Specifier
265
+ var hd = new jsgui.Client_HTML_Document({
266
+ 'context': server_page_context
267
+ });
268
+ hd.include_client_css();
269
+ hd.include_css('/css/basic.css')
270
+
271
+ if (this.css) {
272
+ each(this.css, (path, serve_as) => {
273
+ //css.serve(serve_as, path);
274
+ hd.include_css('/css/' + serve_as);
275
+ });
276
+ }
277
+
278
+ // include a js script block, having it set up the
279
+ // not include_client_js
280
+
281
+ // .include_client_config_js()
282
+ // will get the resource config from the resource publisher.
283
+
284
+ // including data on published resources in the initial html download would be very useful.
285
+ // auto event wiring, so that controls that rely on having this data will have it available.
286
+
287
+ // Want to get this to work, then greatly slim down the codebase, or at least delete comments, use some more syntactic sugar.
288
+
289
+ // Calling 'publish' would be a good method.
290
+ //console.log('this.app_server.map_resource_publishers', this.app_server.map_resource_publishers);
291
+ //console.log('this.app_server.def_resource_publishers', this.app_server.def_resource_publishers);
292
+
293
+ // a script block where we assign the resource publishers.
294
+ // tell the client what resources are available on the server.
295
+
296
+ // include a js script block.
297
+ // jsgui.register_server_resources({...})
298
+ // o_def
299
+ // an object that describes how the resources are published.
300
+
301
+ // app_server.def_resource_publishers
302
+ // the urls
303
+ // what data it provides / its schema.
304
+ // a def from each of the publishers
305
+ // with a schema similar to graphql?
306
+
307
+ //throw 'stop';
308
+
309
+ var body = hd.body;
310
+ let o_params = this.params || {};
311
+ Object.assign(o_params, {
312
+ 'context': server_page_context
313
+ });
314
+ //console.log('o_params', o_params);
315
+ //console.log('this.Ctrl', this.Ctrl);
316
+ var ctrl = this.ctrl = new this.Ctrl(o_params);
317
+ ctrl.active();
318
+ //var ctrl2 = new jsgui.Control({});
319
+ body.add(ctrl);
320
+
321
+ let resources_script = new jsgui.script({
322
+ context: server_page_context
323
+ });
324
+ // it will be a client-side function.
325
+
326
+ // Should not use 'add' here.
327
+ // it's the script content.
328
+
329
+ // want to get around that escaping.
330
+ // options escaping / escape : false
331
+
332
+ hd.include_js('/js/app.js');
333
+
334
+ // Would this be a place to register icons?
335
+
336
+
337
+ const strc = new jsgui.String_Control({
338
+ context: server_page_context,
339
+
340
+ // Won't have access to the context when registering there?
341
+ // Will need to access the client-side context.
342
+ // Setting jsgui.context on the client-side does make sense.
343
+ // There would only be one context per instance of jsgui on the client.
344
+
345
+ // Could raise an event on jsgui, which the page_context listens to?
346
+ // The calls need to be set up within the page_context, I think.
347
+
348
+ // Could just set the def_server_resources property.
349
+ // Then later activation with the page_context could refer to it.
350
+
351
+ // setting up the def_resource_publishers
352
+ // maybe 'resource' will be a generic term for something in some place.
353
+ // can be non-local, but api will localise its use.
354
+
355
+ text: `jsgui.register_server_resources(${JSON.stringify(this.app_server.def_resource_publishers)});`
356
+ });
357
+
358
+ resources_script.add(strc);
359
+ body.add(resources_script);
360
+
361
+ hd.all_html_render(function (err, deferred_html) {
362
+ if (err) {
363
+ throw err;
364
+ } else {
365
+ //console.log('deferred_html', deferred_html);
366
+ var mime_type = 'text/html';
367
+ //console.log('mime_type ' + mime_type);
368
+ res.writeHead(200, {
369
+ 'Content-Type': mime_type
370
+ });
371
+ res.end('<!DOCTYPE html>' + deferred_html, 'utf-8');
372
+ }
373
+ });
374
+ });
375
+ //console.log('pre super start');
376
+
377
+ super.start(this.port, (err, res_super_start) => {
378
+ if (err) {
379
+ callback(err);
380
+ } else {
381
+ //console.log('res_super_start', res_super_start);
382
+ this.raise('scs_ready');
383
+ callback(null, res_super_start);
384
+ }
385
+ });
386
+ });
387
+ // console.log('this.port', this.port);
388
+ }
389
+
390
+ load_icon_set(path, map_icons) {
391
+ // will load each icon into the image resource.
392
+ // sequential way of doing this?
393
+
394
+
395
+
396
+
397
+
398
+ }
399
+ }
400
+
401
+ module.exports = Single_Control_Server;
402
+
403
+ // Rendering single page controls makes a lot of sense.
404
+ // It means the activation code can be contained better there.
405
+
406
+ //console.log('resource_pool', resource_pool);
407
+ //console.log('resource_pool.resources', resource_pool.resources);
408
+
409
+ // The start stop toggle button would need to be registered on the client side.
410
+ // May be worth it to have the standard controls registered to start with.
411
+ // Or to have the app know which controls are used, so it can register them.
412
+
413
+ // Get the website resource
414
+
415
+ // Caching items / resources by type?
416
+ // Need to give the resources a name.
417
+ //var website = resource_pool.get_resource('Server Router');
418
+
419
419
  //console.log('\n\n');