omf_web 0.9.6 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
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
-