rsence-pre 2.1.0.3.pre → 2.1.0.4.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/js/comm/values/values.js +12 -5
- data/js/core/rsence_ns/rsence_ns.js +7 -0
- data/js/foundation/json_renderer/json_renderer.js +4 -1
- data/js/lists/propertylist/propertylist.js +3 -1
- data/lib/plugins/gui_plugin.rb +8 -5
- data/lib/plugins/guiparser.rb +37 -7
- data/lib/plugins/pluginmanager.rb +10 -12
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.0.
|
1
|
+
2.1.0.4.pre
|
data/js/comm/values/values.js
CHANGED
@@ -144,11 +144,15 @@ COMM.Values = HClass.extend({
|
|
144
144
|
* - 'b': Boolean (true/false)
|
145
145
|
* - 'n': Number (integers and floats)
|
146
146
|
* - 's': String
|
147
|
+
* - '~': Null
|
148
|
+
* - '-': Undefined
|
147
149
|
*
|
148
150
|
**/
|
149
151
|
type: function(_obj){
|
150
|
-
if(_obj === null
|
151
|
-
|
152
|
+
if(_obj === null){
|
153
|
+
return '~';
|
154
|
+
}
|
155
|
+
else if (_obj === undefined){
|
152
156
|
return '-';
|
153
157
|
}
|
154
158
|
var _type = (typeof _obj).slice(0,1);
|
@@ -366,9 +370,12 @@ COMM.Values = HClass.extend({
|
|
366
370
|
*
|
367
371
|
**/
|
368
372
|
clone: function( _obj, _shallow ){
|
369
|
-
if(_obj === null
|
370
|
-
|
371
|
-
|
373
|
+
if(_obj === null){
|
374
|
+
return null;
|
375
|
+
}
|
376
|
+
else if (_obj === undefined){
|
377
|
+
console.log('Undefined object, supplementing with null.');
|
378
|
+
return null;
|
372
379
|
}
|
373
380
|
var _item,
|
374
381
|
_cloned;
|
@@ -12,10 +12,17 @@
|
|
12
12
|
// ..into this namespace.
|
13
13
|
// Additional logic for handling the namespaces will however be required.
|
14
14
|
var RSence = {
|
15
|
+
|
16
|
+
// Configuration method for the html document of the server
|
15
17
|
serverConf: function(_clientPrefix,_helloUrl){
|
16
18
|
COMM.ClientPrefix=_clientPrefix;
|
17
19
|
COMM.Transporter.HelloUrl=_helloUrl;
|
18
20
|
HThemeManager.themePath=_clientPrefix+'/themes';
|
21
|
+
},
|
22
|
+
|
23
|
+
// Structure reserved for JSONRenderer instances remotely populated by the server
|
24
|
+
guiTrees: {
|
25
|
+
|
19
26
|
}
|
20
27
|
};
|
21
28
|
|
@@ -24,7 +24,7 @@
|
|
24
24
|
//var//RSence.Foundation
|
25
25
|
COMM.JSONRenderer = HClass.extend({
|
26
26
|
|
27
|
-
version: 0.
|
27
|
+
version: 0.7,
|
28
28
|
|
29
29
|
/** = Description
|
30
30
|
* Renders JSON structured data, see some of the demos for usage examples.
|
@@ -48,6 +48,9 @@ COMM.JSONRenderer = HClass.extend({
|
|
48
48
|
this.scopeDepth = 0;
|
49
49
|
this.view = this.renderNode( this.data, this.parent );
|
50
50
|
},
|
51
|
+
die: function(){
|
52
|
+
this.view.die();
|
53
|
+
},
|
51
54
|
defineInScope: function( _definition ){
|
52
55
|
var _isArr = (_definition instanceof Array),
|
53
56
|
_isObj = (_definition instanceof Object);
|
@@ -192,7 +192,9 @@ HPropertyList = HControl.extend({
|
|
192
192
|
a: 'Array',
|
193
193
|
s: 'String',
|
194
194
|
n: 'Number',
|
195
|
-
b: 'Boolean'
|
195
|
+
b: 'Boolean',
|
196
|
+
'~': 'Null',
|
197
|
+
'-': 'Undefined'
|
196
198
|
},
|
197
199
|
keyRowStyle: "position:absolute;z-index:1;right:0px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;",
|
198
200
|
addKeyColumnControl: function( token, i ){
|
data/lib/plugins/gui_plugin.rb
CHANGED
@@ -35,9 +35,11 @@ module RSence
|
|
35
35
|
def init
|
36
36
|
super
|
37
37
|
yaml_src = file_read( "gui/#{@name}.yaml" )
|
38
|
-
|
38
|
+
unless yaml_src
|
39
|
+
yaml_src = file_read( "gui/main.yaml" )
|
40
|
+
end
|
39
41
|
if yaml_src
|
40
|
-
@gui = GUIParser.new( self, yaml_src )
|
42
|
+
@gui = GUIParser.new( self, yaml_src, @name )
|
41
43
|
else
|
42
44
|
@gui = nil
|
43
45
|
end
|
@@ -128,9 +130,10 @@ module RSence
|
|
128
130
|
uninstall_client_pkgs if @client_pkgs
|
129
131
|
end
|
130
132
|
|
131
|
-
# @private
|
132
|
-
def
|
133
|
-
|
133
|
+
# @private Returns structured, processed gui tree to the caller.
|
134
|
+
def struct_ui( msg )
|
135
|
+
return {} unless @gui
|
136
|
+
@gui.struct( msg, gui_params( msg ) )
|
134
137
|
end
|
135
138
|
|
136
139
|
# Automatically inits the UI using {GUIParser#init}
|
data/lib/plugins/guiparser.rb
CHANGED
@@ -28,12 +28,10 @@ module RSence
|
|
28
28
|
|
29
29
|
# include ::RSence
|
30
30
|
|
31
|
-
|
32
|
-
# @param [Message] msg The +Message+ instance +msg+ used all over the place.
|
33
|
-
# @param [Hash] params Containing all parameters referred from the YAML file, see: {GUIPlugin__#gui_params GUIPlugin#gui_params}
|
34
|
-
def init( msg, params )
|
31
|
+
def struct( msg, params )
|
35
32
|
gui_data = YAML.load( @yaml_src )
|
36
33
|
parse_gui( gui_data, params )
|
34
|
+
return gui_data if gui_data.class == Array
|
37
35
|
if gui_data.has_key?('dependencies')
|
38
36
|
@parent.include_js( msg, gui_data['dependencies'] )
|
39
37
|
gui_data.delete('dependencies')
|
@@ -44,9 +42,36 @@ module RSence
|
|
44
42
|
msg.reply( js_src )
|
45
43
|
end
|
46
44
|
end
|
47
|
-
|
45
|
+
return gui_data
|
46
|
+
end
|
47
|
+
|
48
|
+
# Use this method to send the client all commands required to construct the GUI Tree using JSONRenderer.
|
49
|
+
# @param [Message] msg The +Message+ instance +msg+ used all over the place.
|
50
|
+
# @param [Hash] params Containing all parameters referred from the YAML file, see: {GUIPlugin__#gui_params GUIPlugin#gui_params}
|
51
|
+
def init( msg, params )
|
52
|
+
gui_data = struct( msg, params )
|
53
|
+
if gui_data.class == Array
|
54
|
+
gui_data = {
|
55
|
+
'type' => 'GUITree',
|
56
|
+
'version' => 0.7,
|
57
|
+
'class' => 'RSence.GUIApp',
|
58
|
+
'options' => {
|
59
|
+
'priority' => 0,
|
60
|
+
'label' => "#{@gui_name.capitalize} (autogenerated)"
|
61
|
+
},
|
62
|
+
'subviews' => gui_data
|
63
|
+
}
|
64
|
+
end
|
48
65
|
json_data = JSON.dump( gui_data )
|
49
|
-
msg.reply( "JSONRenderer.nu(#{json_data});", true )
|
66
|
+
msg.reply( "RSence.guiTrees[#{@gui_name.to_json}]=JSONRenderer.nu(#{json_data});", true )
|
67
|
+
end
|
68
|
+
|
69
|
+
def kill( msg )
|
70
|
+
gui_name = @parent.name
|
71
|
+
gui_ns = "RSence.guiTrees[#{@gui_name.to_json}]"
|
72
|
+
msg.reply( "#{gui_ns}.die();", true )
|
73
|
+
msg.reply( "#{gui_ns}=null;", true )
|
74
|
+
msg.reply( "delete #{gui_ns};", true )
|
50
75
|
end
|
51
76
|
|
52
77
|
# Use this method to extract all the value id's of the +ses+ hash.
|
@@ -113,8 +138,13 @@ module RSence
|
|
113
138
|
# = Parameters
|
114
139
|
# +parent+:: The Plugin instance called from, use +self+ when constructing in a Plugin method.
|
115
140
|
# +yaml_src+:: The YAML source template for the GUI
|
116
|
-
def initialize( parent, yaml_src )
|
141
|
+
def initialize( parent, yaml_src, gui_name=false )
|
117
142
|
@parent = parent
|
143
|
+
if gui_name
|
144
|
+
@gui_name = gui_name.to_s
|
145
|
+
else
|
146
|
+
@gui_name = parent.name.to_s
|
147
|
+
end
|
118
148
|
@yaml_src = yaml_src
|
119
149
|
end
|
120
150
|
|
@@ -87,20 +87,18 @@ module RSence
|
|
87
87
|
# Calls the method +method_name+ with args +args+ of the plugin +plugin_name+.
|
88
88
|
# Returns false, if no such plugin or method exists.
|
89
89
|
def call( plugin_name, method_name, *args )
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
return sub_manager.plugin_plugins.call( plugin_name, method_name, *args )
|
100
|
-
end
|
90
|
+
plugin_name_s = plugin_name.to_s
|
91
|
+
if plugin_name_s.include?(':')
|
92
|
+
colon_index = plugin_name_s.index(':')
|
93
|
+
sub_manager_name = plugin_name_s[0..(colon_index-1)].to_sym
|
94
|
+
plugin_name = plugin_name_s[(colon_index+1)..-1].to_sym
|
95
|
+
if @registry.has_key?( sub_manager_name )
|
96
|
+
sub_manager = @registry[sub_manager_name]
|
97
|
+
if sub_manager.respond_to?( :plugin_plugins )
|
98
|
+
return sub_manager.plugin_plugins.call( plugin_name, method_name, *args )
|
101
99
|
end
|
102
|
-
return false
|
103
100
|
end
|
101
|
+
return false
|
104
102
|
end
|
105
103
|
plugin_name = plugin_name.to_sym
|
106
104
|
if callable?( plugin_name, method_name )
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsence-pre
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 961916148
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 1
|
9
9
|
- 0
|
10
|
-
-
|
10
|
+
- 4
|
11
11
|
- pre
|
12
|
-
version: 2.1.0.
|
12
|
+
version: 2.1.0.4.pre
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Riassence Inc.
|