omf_web 0.9.6 → 0.9.7

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 (91) hide show
  1. data/README.md +168 -13
  2. data/bin/omf-web-basic +3 -3
  3. data/doc/index.md +205 -0
  4. data/example/NOT_WORKING/brooklyn/brooklyn_server.rb +2 -2
  5. data/example/NOT_WORKING/frisbee/data_sources/parse_log.rb +1 -1
  6. data/example/NOT_WORKING/frisbee/viz_server.rb +1 -1
  7. data/example/NOT_WORKING/gec12/gec12_demo_server.rb +1 -1
  8. data/example/NOT_WORKING/gec12/visualization.rb +2 -2
  9. data/example/NOT_WORKING/network/network_server.rb +2 -2
  10. data/example/NOT_WORKING/wimax/test.rb +2 -2
  11. data/example/NOT_WORKING/wimax/viz_server.rb +2 -2
  12. data/example/bridge/auth_basic.rb +75 -0
  13. data/example/bridge/config.ru +101 -0
  14. data/example/bridge/configure/configure_widget.rb +32 -0
  15. data/example/bridge/data_sources/sensor-sqlite.rb +28 -6
  16. data/example/bridge/data_sources/test31.sq3 +0 -0
  17. data/example/bridge/htdocs/{js/graph → graph/js}/bridge.js +2 -2
  18. data/example/bridge/htdocs/{js/graph → graph/js}/event_line_chart.js +7 -6
  19. data/example/bridge/htdocs/{js/graph → graph/js}/event_table.js +13 -5
  20. data/example/bridge/htdocs/template/login.html +23 -0
  21. data/example/bridge/viz_server.rb +3 -5
  22. data/example/bridge/widgets/configure.yaml +12 -0
  23. data/example/bridge/widgets/login.yaml +16 -0
  24. data/example/bridge/{overview.yaml → widgets/overview.yaml} +7 -4
  25. data/example/demo/data_sources/animals.rb +1 -1
  26. data/example/demo/data_sources/downloads.rb +1 -1
  27. data/example/demo/data_sources/generator.rb +1 -1
  28. data/example/demo/data_sources/histogram.rb +1 -1
  29. data/example/demo/data_sources/mobile_network.rb +4 -3
  30. data/example/demo/data_sources/movies.rb +1 -1
  31. data/example/demo/data_sources/network.rb +4 -3
  32. data/example/demo/data_sources/returns.rb +1 -1
  33. data/example/demo/data_sources/static_network.rb +4 -3
  34. data/example/demo/data_sources/walk.rb +1 -1
  35. data/example/demo/demo_viz_server.rb +1 -1
  36. data/example/demo/widgets/linked_graphs_tab.yaml +1 -1
  37. data/example/openflow-gec15/README.md +21 -0
  38. data/example/openflow-gec15/code_tab.yaml +36 -0
  39. data/example/openflow-gec15/dashboard_tab.yaml +72 -0
  40. data/example/openflow-gec15/doc/screenshot.png +0 -0
  41. data/example/openflow-gec15/exp_source.rb +104 -0
  42. data/example/openflow-gec15/of_viz_server.rb +63 -0
  43. data/example/openflow-gec15/openflow-demo.sq3 +0 -0
  44. data/example/openflow-gec15/raw_tab.yaml +37 -0
  45. data/example/openflow-gec15/repository/of-exp.rb +12 -0
  46. data/example/openflow-gec15/repository/sample.md +52 -0
  47. data/example/openflow-gec15/repository/trema-ctl6.rb +148 -0
  48. data/example/simple/README.md +2 -0
  49. data/example/simple/data_sources/gimi31.sq3 +0 -0
  50. data/example/simple/data_sources/ping_source.rb +56 -0
  51. data/example/simple/simple_viz_server.rb +39 -0
  52. data/example/simple/widgets/charts_tab.yaml +38 -0
  53. data/lib/omf-web/config.ru +31 -3
  54. data/lib/omf-web/data_source_proxy.rb +29 -26
  55. data/lib/omf-web/rack/session_authenticator.rb +93 -0
  56. data/lib/omf-web/rack/tab_mapper.rb +10 -5
  57. data/lib/omf-web/rack/websocket_handler.rb +17 -6
  58. data/lib/omf-web/theme/abstract_page.rb +1 -1
  59. data/lib/omf-web/theme/bright/flow_renderer.rb +2 -2
  60. data/lib/omf-web/theme/bright/layout_renderer.rb +15 -0
  61. data/lib/omf-web/theme/bright/mustache_renderer.rb +29 -0
  62. data/lib/omf-web/theme/bright/one_column_renderer.rb +2 -2
  63. data/lib/omf-web/theme/bright/page.rb +33 -8
  64. data/lib/omf-web/theme/bright/tabbed_renderer.rb +2 -3
  65. data/lib/omf-web/theme/bright/two_columns_renderer.rb +3 -4
  66. data/lib/omf-web/version.rb +1 -1
  67. data/lib/omf-web/widget/code_widget.rb +0 -7
  68. data/lib/omf-web/widget/layout/two_columns_layout.rb +3 -2
  69. data/lib/omf-web/widget/mustache_widget.rb +44 -0
  70. data/lib/omf-web/widget.rb +14 -1
  71. data/lib/omf_common/lobject.rb +6 -3
  72. data/omf_web.gemspec +3 -1
  73. data/share/htdocs/graph/js/abstract_nv_chart.js +14 -4
  74. data/share/htdocs/graph/js/abstract_widget.js +5 -4
  75. data/share/htdocs/graph/js/line_chart3.js +2 -0
  76. data/share/htdocs/graph/js/map2.js +3 -3
  77. data/share/htdocs/graph/js/network2.js +51 -19
  78. data/share/htdocs/graph/js/scatter_plot.js +6 -2
  79. data/share/htdocs/graph/js/table2.js +5 -2
  80. data/share/htdocs/js/data_source2.js +40 -8
  81. data/share/htdocs/js/mustache.js +29 -0
  82. data/share/htdocs/theme/abstract/abstract.js +10 -3
  83. data/share/htdocs/vendor/mustache-0.7.0/CHANGES +21 -0
  84. data/share/htdocs/vendor/mustache-0.7.0/LICENSE +10 -0
  85. data/share/htdocs/vendor/mustache-0.7.0/README.md +374 -0
  86. data/share/htdocs/vendor/mustache-0.7.0/jquery.mustache.js +635 -0
  87. data/share/htdocs/vendor/mustache-0.7.0/mustache.js +612 -0
  88. data/share/htdocs/vendor/nv_d3/js/nv.d3.js +9 -1
  89. data/share/htdocs/vendor/raphael-2.1.0/raphael.js +5815 -0
  90. metadata +74 -9
  91. data/DESIGN_NOTES.txt +0 -56
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omf_web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,10 +9,10 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-03 00:00:00.000000000 Z
12
+ date: 2013-01-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: omf-oml
15
+ name: omf_oml
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
@@ -203,6 +203,38 @@ dependencies:
203
203
  - - ~>
204
204
  - !ruby/object:Gem::Version
205
205
  version: 1.3.6
206
+ - !ruby/object:Gem::Dependency
207
+ name: postgres-pr
208
+ requirement: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ~>
212
+ - !ruby/object:Gem::Version
213
+ version: 0.6.3
214
+ type: :runtime
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ version: 0.6.3
222
+ - !ruby/object:Gem::Dependency
223
+ name: websocket-rack
224
+ requirement: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ~>
228
+ - !ruby/object:Gem::Version
229
+ version: 0.4.0
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ~>
236
+ - !ruby/object:Gem::Version
237
+ version: 0.4.0
206
238
  description: OMF's Web based control and visualization framework.
207
239
  email:
208
240
  - omf-user@lists.nicta.com.au
@@ -213,7 +245,6 @@ extensions: []
213
245
  extra_rdoc_files: []
214
246
  files:
215
247
  - .gitignore
216
- - DESIGN_NOTES.txt
217
248
  - Gemfile
218
249
  - README.md
219
250
  - Rakefile
@@ -240,6 +271,7 @@ files:
240
271
  - debug/test.html
241
272
  - debug/test_private.pem
242
273
  - debug/test_server.rb
274
+ - doc/index.md
243
275
  - doc/screenshot.png
244
276
  - etc/omf-web/omf_web.yml
245
277
  - example/NOT_WORKING/basic/hello-world-wired.rb
@@ -274,19 +306,26 @@ files:
274
306
  - example/NOT_WORKING/wimax/test.rb
275
307
  - example/NOT_WORKING/wimax/uplink.yaml
276
308
  - example/NOT_WORKING/wimax/viz_server.rb
309
+ - example/bridge/auth_basic.rb
277
310
  - example/bridge/bridge_ctl.sh
278
311
  - example/bridge/bridge_log4r.yaml
312
+ - example/bridge/config.ru
313
+ - example/bridge/configure/configure_widget.rb
279
314
  - example/bridge/data_sources/sensor-sqlite.rb
280
315
  - example/bridge/data_sources/test2.oml
281
316
  - example/bridge/data_sources/test2.sq3
282
317
  - example/bridge/data_sources/test3.sq3
318
+ - example/bridge/data_sources/test31.sq3
283
319
  - example/bridge/htdocs/css/bridge.css
320
+ - example/bridge/htdocs/graph/js/bridge.js
321
+ - example/bridge/htdocs/graph/js/event_line_chart.js
322
+ - example/bridge/htdocs/graph/js/event_table.js
284
323
  - example/bridge/htdocs/image/imagined_by_nicta.jpeg
285
- - example/bridge/htdocs/js/graph/bridge.js
286
- - example/bridge/htdocs/js/graph/event_line_chart.js
287
- - example/bridge/htdocs/js/graph/event_table.js
288
- - example/bridge/overview.yaml
324
+ - example/bridge/htdocs/template/login.html
289
325
  - example/bridge/viz_server.rb
326
+ - example/bridge/widgets/configure.yaml
327
+ - example/bridge/widgets/login.yaml
328
+ - example/bridge/widgets/overview.yaml
290
329
  - example/demo/data_sources/animals.rb
291
330
  - example/demo/data_sources/downloads.csv
292
331
  - example/demo/data_sources/downloads.rb
@@ -316,6 +355,22 @@ files:
316
355
  - example/demo/widgets/stacked_widget.yaml
317
356
  - example/demo/widgets/table_widget.yaml
318
357
  - example/demo/widgets/text_widget.yaml
358
+ - example/openflow-gec15/README.md
359
+ - example/openflow-gec15/code_tab.yaml
360
+ - example/openflow-gec15/dashboard_tab.yaml
361
+ - example/openflow-gec15/doc/screenshot.png
362
+ - example/openflow-gec15/exp_source.rb
363
+ - example/openflow-gec15/of_viz_server.rb
364
+ - example/openflow-gec15/openflow-demo.sq3
365
+ - example/openflow-gec15/raw_tab.yaml
366
+ - example/openflow-gec15/repository/of-exp.rb
367
+ - example/openflow-gec15/repository/sample.md
368
+ - example/openflow-gec15/repository/trema-ctl6.rb
369
+ - example/simple/README.md
370
+ - example/simple/data_sources/gimi31.sq3
371
+ - example/simple/data_sources/ping_source.rb
372
+ - example/simple/simple_viz_server.rb
373
+ - example/simple/widgets/charts_tab.yaml
319
374
  - lib/omf-web/UNUSED/tab.rb
320
375
  - lib/omf-web/UNUSED/tab/abstract_service.rb
321
376
  - lib/omf-web/UNUSED/tab/code/code_service.rb
@@ -337,6 +392,7 @@ files:
337
392
  - lib/omf-web/rack/content_handler.rb
338
393
  - lib/omf-web/rack/multi_file.rb
339
394
  - lib/omf-web/rack/rack_exceptions.rb
395
+ - lib/omf-web/rack/session_authenticator.rb
340
396
  - lib/omf-web/rack/tab_mapper.rb
341
397
  - lib/omf-web/rack/update_handler.rb
342
398
  - lib/omf-web/rack/websocket_handler.rb
@@ -349,6 +405,8 @@ files:
349
405
  - lib/omf-web/theme/bright/data_renderer.rb
350
406
  - lib/omf-web/theme/bright/flow_renderer.rb
351
407
  - lib/omf-web/theme/bright/init.rb
408
+ - lib/omf-web/theme/bright/layout_renderer.rb
409
+ - lib/omf-web/theme/bright/mustache_renderer.rb
352
410
  - lib/omf-web/theme/bright/one_column_renderer.rb
353
411
  - lib/omf-web/theme/bright/page.rb
354
412
  - lib/omf-web/theme/bright/stacked_renderer.rb
@@ -376,6 +434,7 @@ files:
376
434
  - lib/omf-web/widget/layout/stacked_layout.rb
377
435
  - lib/omf-web/widget/layout/tabbed_layout.rb
378
436
  - lib/omf-web/widget/layout/two_columns_layout.rb
437
+ - lib/omf-web/widget/mustache_widget.rb
379
438
  - lib/omf-web/widget/text/maruku.rb
380
439
  - lib/omf-web/widget/text/maruku/MARUKU-LICENSE
381
440
  - lib/omf-web/widget/text/maruku/helpers.rb
@@ -423,6 +482,7 @@ files:
423
482
  - share/htdocs/graph/js/table2.js
424
483
  - share/htdocs/js/data_source.js
425
484
  - share/htdocs/js/data_source2.js
485
+ - share/htdocs/js/mustache.js
426
486
  - share/htdocs/js/require3.js
427
487
  - share/htdocs/js/stacktrace.js
428
488
  - share/htdocs/theme/abstract/abstract.js
@@ -1054,6 +1114,11 @@ files:
1054
1114
  - share/htdocs/vendor/must_have_icon_set/Zoom Out/Zoom Out_32x32.png
1055
1115
  - share/htdocs/vendor/must_have_icon_set/Zoom Out/Zoom Out_48x48.png
1056
1116
  - share/htdocs/vendor/must_have_icon_set/to_customize_desktop_icons.txt
1117
+ - share/htdocs/vendor/mustache-0.7.0/CHANGES
1118
+ - share/htdocs/vendor/mustache-0.7.0/LICENSE
1119
+ - share/htdocs/vendor/mustache-0.7.0/README.md
1120
+ - share/htdocs/vendor/mustache-0.7.0/jquery.mustache.js
1121
+ - share/htdocs/vendor/mustache-0.7.0/mustache.js
1057
1122
  - share/htdocs/vendor/nv_d3/css/nv.d3.css
1058
1123
  - share/htdocs/vendor/nv_d3/js/models/line.js
1059
1124
  - share/htdocs/vendor/nv_d3/js/models/lineChart.js
@@ -1138,6 +1203,7 @@ files:
1138
1203
  - share/htdocs/vendor/raphael-1.5.2/raphael.path.methods.js
1139
1204
  - share/htdocs/vendor/raphael-1.5.2/raphael.primitives.js
1140
1205
  - share/htdocs/vendor/raphael-1.5.2/raphael.shadow.js
1206
+ - share/htdocs/vendor/raphael-2.1.0/raphael.js
1141
1207
  - share/htdocs/vendor/silk_icons_v013/icons/accept.png
1142
1208
  - share/htdocs/vendor/silk_icons_v013/icons/add.png
1143
1209
  - share/htdocs/vendor/silk_icons_v013/icons/anchor.png
@@ -2347,4 +2413,3 @@ signing_key:
2347
2413
  specification_version: 3
2348
2414
  summary: OMF's web frontend.
2349
2415
  test_files: []
2350
- has_rdoc:
data/DESIGN_NOTES.txt DELETED
@@ -1,56 +0,0 @@
1
-
2
- This module is used to define and run a web server which allows a user to explore and
3
- intereact with various experiments. It is a stand-alone unit communicating through
4
- the OMF messaging framework with other entities.
5
-
6
- The content of such a web site consists of
7
-
8
- * A +Page+ which is essentially representing a context, most likely that of a
9
- a single experiment.
10
-
11
- * Pages can contain multiple +Cards+. The containing Page will contain
12
- navigational elements to switch between those cards
13
-
14
- * Each card contains one or more +Widgets+ which are arranged by an
15
- associated +Formatter+ implementing a certain layout.
16
-
17
- * A +Session+ represents the context of a specific user of the server. Users
18
- may be associated with different privileges (not implemented) which determine
19
- what pages they can see (and interact) and also what cards and widgets
20
-
21
- * Theme ... explain
22
-
23
- The actual session state is kept in the widgets. The card description (defCard)
24
- defines the formatter to use and the type of widgets to populate it with. The
25
- respective widgets are initialised the first time such a card is rendered
26
- within a user session and kept in the session to be reused the next time
27
- the user requests the card. The primary decision for this design is the fact
28
- that many widgets visualize dynamic state and any updates to that should be
29
- propagated to the user's web browser if that widget instance is visisble there.
30
- Therefore, many widgets either establish web sockets back to the server or
31
- issue periodic AJAX calls. Maintaining interal widget state will also speed
32
- up the rendering of a specific card. The drawback of this design is that it
33
- can create substantial state for each user session. Given the envisioned use
34
- case this is not really a concern as the number of active sessions will be small.
35
- However, we do envision use cases where the server will run for a long time, which
36
- in term will require pruning of 'dead' sessions and the associated freeing of
37
- state.
38
-
39
- With such a desing the main extension point will be around widgets and to a lesser
40
- extend around formaters and themes.
41
-
42
- As the primary objective of this package is to visualize and interact with dynamic
43
- system state we introduce a few more concepts.
44
-
45
- * An +Event+ is a time-stamped tuple (hash) which describes the properties of a
46
- specific event whch occured at a certain time (timestamp).
47
-
48
- * An +EventList+ which holds an (ordered ?) list of Events with every event belonging
49
- to the same schema. It will be the primary source of information for widgets.
50
-
51
- It provides means for other objects to subscribe to receive notification when the
52
- list changes. There is also an associated policy on how to maintain the list
53
- (e.g. keep only the last N recent events). In addition, an event list may subscribe
54
- to the OMF messaging framework to receive events created by system and other
55
- experiment services.
56
-