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.
- data/README.md +168 -13
- data/bin/omf-web-basic +3 -3
- data/doc/index.md +205 -0
- data/example/NOT_WORKING/brooklyn/brooklyn_server.rb +2 -2
- data/example/NOT_WORKING/frisbee/data_sources/parse_log.rb +1 -1
- data/example/NOT_WORKING/frisbee/viz_server.rb +1 -1
- data/example/NOT_WORKING/gec12/gec12_demo_server.rb +1 -1
- data/example/NOT_WORKING/gec12/visualization.rb +2 -2
- data/example/NOT_WORKING/network/network_server.rb +2 -2
- data/example/NOT_WORKING/wimax/test.rb +2 -2
- data/example/NOT_WORKING/wimax/viz_server.rb +2 -2
- data/example/bridge/auth_basic.rb +75 -0
- data/example/bridge/config.ru +101 -0
- data/example/bridge/configure/configure_widget.rb +32 -0
- data/example/bridge/data_sources/sensor-sqlite.rb +28 -6
- data/example/bridge/data_sources/test31.sq3 +0 -0
- data/example/bridge/htdocs/{js/graph → graph/js}/bridge.js +2 -2
- data/example/bridge/htdocs/{js/graph → graph/js}/event_line_chart.js +7 -6
- data/example/bridge/htdocs/{js/graph → graph/js}/event_table.js +13 -5
- data/example/bridge/htdocs/template/login.html +23 -0
- data/example/bridge/viz_server.rb +3 -5
- data/example/bridge/widgets/configure.yaml +12 -0
- data/example/bridge/widgets/login.yaml +16 -0
- data/example/bridge/{overview.yaml → widgets/overview.yaml} +7 -4
- data/example/demo/data_sources/animals.rb +1 -1
- data/example/demo/data_sources/downloads.rb +1 -1
- data/example/demo/data_sources/generator.rb +1 -1
- data/example/demo/data_sources/histogram.rb +1 -1
- data/example/demo/data_sources/mobile_network.rb +4 -3
- data/example/demo/data_sources/movies.rb +1 -1
- data/example/demo/data_sources/network.rb +4 -3
- data/example/demo/data_sources/returns.rb +1 -1
- data/example/demo/data_sources/static_network.rb +4 -3
- data/example/demo/data_sources/walk.rb +1 -1
- data/example/demo/demo_viz_server.rb +1 -1
- data/example/demo/widgets/linked_graphs_tab.yaml +1 -1
- data/example/openflow-gec15/README.md +21 -0
- data/example/openflow-gec15/code_tab.yaml +36 -0
- data/example/openflow-gec15/dashboard_tab.yaml +72 -0
- data/example/openflow-gec15/doc/screenshot.png +0 -0
- data/example/openflow-gec15/exp_source.rb +104 -0
- data/example/openflow-gec15/of_viz_server.rb +63 -0
- data/example/openflow-gec15/openflow-demo.sq3 +0 -0
- data/example/openflow-gec15/raw_tab.yaml +37 -0
- data/example/openflow-gec15/repository/of-exp.rb +12 -0
- data/example/openflow-gec15/repository/sample.md +52 -0
- data/example/openflow-gec15/repository/trema-ctl6.rb +148 -0
- data/example/simple/README.md +2 -0
- data/example/simple/data_sources/gimi31.sq3 +0 -0
- data/example/simple/data_sources/ping_source.rb +56 -0
- data/example/simple/simple_viz_server.rb +39 -0
- data/example/simple/widgets/charts_tab.yaml +38 -0
- data/lib/omf-web/config.ru +31 -3
- data/lib/omf-web/data_source_proxy.rb +29 -26
- data/lib/omf-web/rack/session_authenticator.rb +93 -0
- data/lib/omf-web/rack/tab_mapper.rb +10 -5
- data/lib/omf-web/rack/websocket_handler.rb +17 -6
- data/lib/omf-web/theme/abstract_page.rb +1 -1
- data/lib/omf-web/theme/bright/flow_renderer.rb +2 -2
- data/lib/omf-web/theme/bright/layout_renderer.rb +15 -0
- data/lib/omf-web/theme/bright/mustache_renderer.rb +29 -0
- data/lib/omf-web/theme/bright/one_column_renderer.rb +2 -2
- data/lib/omf-web/theme/bright/page.rb +33 -8
- data/lib/omf-web/theme/bright/tabbed_renderer.rb +2 -3
- data/lib/omf-web/theme/bright/two_columns_renderer.rb +3 -4
- data/lib/omf-web/version.rb +1 -1
- data/lib/omf-web/widget/code_widget.rb +0 -7
- data/lib/omf-web/widget/layout/two_columns_layout.rb +3 -2
- data/lib/omf-web/widget/mustache_widget.rb +44 -0
- data/lib/omf-web/widget.rb +14 -1
- data/lib/omf_common/lobject.rb +6 -3
- data/omf_web.gemspec +3 -1
- data/share/htdocs/graph/js/abstract_nv_chart.js +14 -4
- data/share/htdocs/graph/js/abstract_widget.js +5 -4
- data/share/htdocs/graph/js/line_chart3.js +2 -0
- data/share/htdocs/graph/js/map2.js +3 -3
- data/share/htdocs/graph/js/network2.js +51 -19
- data/share/htdocs/graph/js/scatter_plot.js +6 -2
- data/share/htdocs/graph/js/table2.js +5 -2
- data/share/htdocs/js/data_source2.js +40 -8
- data/share/htdocs/js/mustache.js +29 -0
- data/share/htdocs/theme/abstract/abstract.js +10 -3
- data/share/htdocs/vendor/mustache-0.7.0/CHANGES +21 -0
- data/share/htdocs/vendor/mustache-0.7.0/LICENSE +10 -0
- data/share/htdocs/vendor/mustache-0.7.0/README.md +374 -0
- data/share/htdocs/vendor/mustache-0.7.0/jquery.mustache.js +635 -0
- data/share/htdocs/vendor/mustache-0.7.0/mustache.js +612 -0
- data/share/htdocs/vendor/nv_d3/js/nv.d3.js +9 -1
- data/share/htdocs/vendor/raphael-2.1.0/raphael.js +5815 -0
- metadata +74 -9
- 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.
|
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:
|
12
|
+
date: 2013-01-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
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/
|
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
|
-
|