netzke-core 1.0.1.0 → 6.5.0.0.rc1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -123
- data/Gemfile +6 -4
- data/README.md +4 -4
- data/config/routes.rb +2 -3
- data/javascripts/core.js +2 -2
- data/javascripts/routing.js +3 -2
- data/lib/netzke/base.rb +3 -1
- data/lib/netzke/core/composition.rb +8 -2
- data/lib/netzke/core/railz/action_view_ext.rb +3 -3
- data/lib/netzke/core/railz/controller_extensions.rb +7 -7
- data/lib/netzke/core/support.rb +7 -0
- data/lib/netzke/core/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 364a0ced50530abfe4cd40c8476fd1488f38c36f
|
4
|
+
data.tar.gz: 9246a6f3e5d5ad641d42676cc90bd1eb48978eb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3d0e972371a38f2c2c091a5f5d398e8c9f0eb66f793e78c68abcc894dc6720cee2bd766b0c1f7b41916e959748ee8bb0f8ae4d1721b0e1060703dd56e95cce2
|
7
|
+
data.tar.gz: ec16ea789abd4c62c8a22fb4c6bfb816e927f3a5ed6d4558da0b2ca196c84bdc9ac1701e0c84a2f42e94a4befb6406c1d62a3ad5d55b2a5138264fa4d5ea6d9e
|
data/CHANGELOG.md
CHANGED
@@ -1,128 +1,13 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
* New `Netzke::Core.default_routes` config option.
|
4
|
-
|
5
|
-
# v1.0.0.0 - 2016-01-04
|
6
|
-
|
7
|
-
## New and improved
|
8
|
-
|
9
|
-
* Routing (see README)
|
10
|
-
|
11
|
-
* Introduce `Base#f` method that defines an inline wrapper for the client-side function that gets called in the scope of the component. This simplifies, for example, specifying handlers for buttons and tools, but also can be used in a few other occasions, where an Ext JS configuration option requires a function. See `spec/rails_app/app/components/actions.rb` for an example.
|
12
|
-
|
13
|
-
* Introduce `Base#l` method that converts the passed string to JSON literal; useful for asigning JS functions inline
|
14
|
-
(see below).
|
15
|
-
|
16
|
-
* There's no longer need to call `netzke` in routes.rb unless you want to modify routing defaults.
|
17
|
-
|
18
|
-
* The `action` DSL method now also accepts a list of endpoints, e.g.:
|
19
|
-
|
20
|
-
action :do_something, :do_something_else
|
21
|
-
|
22
|
-
* `netzkeNotify` (former `netzkeFeedback`) now accepts the `title` option
|
23
|
-
|
24
|
-
* Calling `callParent` in JS functions from the "mixins" will now properly call the previous override if that was defined; see `spec/rails_app/app/components/js_mixins.rb` for an example.
|
25
|
-
|
26
|
-
## Breaking changes
|
27
|
-
|
28
|
-
* A component's subfolders for client-class scripts and stylesheets have been consolidated from `javascripts`/`stylesheets` into `client`
|
29
|
-
|
30
|
-
* The client methods for endpoints are now created on the `this.server` object, so, you need to prefix the endpoint calls with `.server`, e.g. `this.server.doSomething()`. For details, see the updated "Client-server interaction" section in the README.
|
31
|
-
|
32
|
-
* `Base#js_configure` has been renamed to `Base#configure_client`
|
33
|
-
|
34
|
-
* `Base.js_configure` has been renamed to `Base.client_class`. There's also no longer need to call it just for the purpose of including the default mixin (which is now `<component_name>/client/<component_name>.js`).
|
35
|
-
|
36
|
-
* Assigning inline JS functions inside the `client_class` (former `js_configure`) block no longer automatically makes a JSON literal
|
37
|
-
of them; instead, you need to wrap it with the `l` method accessible for all components:
|
38
|
-
|
39
|
-
client_class do |c|
|
40
|
-
c.netzke_on_refresh = l(<<-JS)
|
41
|
-
function(){
|
42
|
-
this.setTitle("Refresh tool clicked");
|
43
|
-
}
|
44
|
-
JS
|
45
|
-
end
|
46
|
-
|
47
|
-
* `Base.css_configure` has been renamed to `Base.client_styles`.
|
48
|
-
|
49
|
-
* The `mixin` method in the former `js_configure` block (now `client_class`) has been renamed to `include`.
|
50
|
-
|
51
|
-
* Changes to endpoints API.
|
52
|
-
|
53
|
-
* Droped the `this` parameter from endpoint block on server side. Instead, use the `client` accessor, implicitely defined for you, for example:
|
54
|
-
|
55
|
-
endpoint :do_something do |arg1|
|
56
|
-
client.set_title("Recieved #{arg1}")
|
57
|
-
end
|
1
|
+
# v6.5.0.0 - WIP
|
58
2
|
|
59
|
-
|
3
|
+
* Support for Ext JS 6.5
|
4
|
+
* Support for Rails 5.1
|
5
|
+
* New version convention: the first 2 numbers correspond to the major Ext JS and Rails versions respectively.
|
60
6
|
|
61
|
-
|
62
|
-
endpoint :assign_user do |user_id, table_id|
|
63
|
-
end
|
64
|
-
|
65
|
-
// client side
|
66
|
-
this.server.assignUser(userId, tableId)
|
67
|
-
|
68
|
-
---
|
69
|
-
|
70
|
-
# server side (0 arguments)
|
71
|
-
endpoint :clear_data do
|
72
|
-
end
|
73
|
-
|
74
|
-
// client side
|
75
|
-
this.server.clearData()
|
76
|
-
|
77
|
-
* Whatever endpoint's server-side block returns will become the argument for the client-side callback function, for example:
|
78
|
-
|
79
|
-
# server side
|
80
|
-
endpoint :get_data do |params|
|
81
|
-
[1, 2, 3]
|
82
|
-
end
|
83
|
-
|
84
|
-
// client side
|
85
|
-
this.server.getData(params, function(result) {
|
86
|
-
// result equals [1, 2, 3]
|
87
|
-
})
|
88
|
-
|
89
|
-
* Internal rework of component loading, which also changes some API and behavior.
|
90
|
-
|
91
|
-
* If the loaded component is a window, its `show` method is called after loading. This can be prevented by the callback function returning `false` (which will also prevent other types of loaded components to be inserted into the container).
|
92
|
-
|
93
|
-
* On the client, the `clientConfig` config option has been renamed to `serverConfig`.
|
94
|
-
|
95
|
-
* To specify that a child component is eagerly loaded, the option is moved out of the block into the DSL `component` method parameter (also renamed to `eager_load`):
|
96
|
-
|
97
|
-
# BEFORE
|
98
|
-
component :foo do |c|
|
99
|
-
c.eager_loading = true
|
100
|
-
...
|
101
|
-
end
|
102
|
-
|
103
|
-
# NOW
|
104
|
-
component :foo, eager_load: true do |c|
|
105
|
-
...
|
106
|
-
end
|
107
|
-
|
108
|
-
Unless a component is declared as eagerly loaded, its config is no longer accessible on the client side (which means component is meant to be dynamically loadable).
|
109
|
-
|
110
|
-
* Specifying `bbar` and other toolbars in `configure_client` (former `js_configure`) no longer works. They must now be in the main `configure` method.
|
111
|
-
|
112
|
-
* Default handler name for actions is now prefixed with `netzkeOn` instead of `on`. E.g., for `action :do_something`, the handler
|
113
|
-
must be called `netzkeOnDoSomething`.
|
114
|
-
|
115
|
-
* `netzkeFeedback` has been renamed to `netzkeNotify`
|
116
|
-
|
117
|
-
* `Core.js_feedback_delay` has been renamed to `Core.client_notification_delay`
|
118
|
-
|
119
|
-
* `onNetzkeSessionExpired` has been renamed to `netzkeOnSessionExpired`
|
120
|
-
|
121
|
-
* Experimental support for HAML removed
|
122
|
-
|
123
|
-
* Drop possibility to list panel tools merely as symbols, as this was too limiting (e.g. Netzke was overriding the handler signature). As of now, use the `Base#f` method to specify the handler (will no longer be automatically set for you); see `spec/rails_app/app/components/tools.rb` for an example.
|
7
|
+
# v1.0.1.0 - 2016-05-01
|
124
8
|
|
125
|
-
* `
|
9
|
+
* New `Netzke::Core.default_routes` config option.
|
126
10
|
|
127
11
|
---
|
128
|
-
|
12
|
+
|
13
|
+
Please check [1-0-0](https://github.com/netzke/netzke-core/blob/1-0-0/CHANGELOG.md) for previous changes.
|
data/Gemfile
CHANGED
@@ -2,16 +2,18 @@ source 'http://rubygems.org'
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
gem 'rails', '~>
|
5
|
+
gem 'rails', '~>5.1.0'
|
6
6
|
gem 'sqlite3'
|
7
7
|
gem 'yard'
|
8
8
|
gem 'rake'
|
9
9
|
|
10
10
|
group :test do
|
11
11
|
gem 'rspec'
|
12
|
-
gem 'rspec-rails'
|
12
|
+
gem 'rspec-rails', '~> 3.5.0'
|
13
13
|
gem 'capybara'
|
14
|
-
gem 'selenium
|
14
|
+
gem 'capybara-selenium'
|
15
|
+
gem 'selenium-webdriver', '~> 3.4.4'
|
16
|
+
gem 'chromedriver-helper'
|
15
17
|
end
|
16
18
|
|
17
19
|
group :development do
|
@@ -20,5 +22,5 @@ end
|
|
20
22
|
|
21
23
|
group :development, :test do
|
22
24
|
gem 'pry-rails'
|
23
|
-
gem 'netzke-testing',
|
25
|
+
gem 'netzke-testing', git: 'https://github.com/netzke/netzke-testing', branch: '6-5-0'
|
24
26
|
end
|
data/README.md
CHANGED
@@ -264,9 +264,9 @@ You can access the instance of the Netzke controller via `Netzke::Base.controlle
|
|
264
264
|
|
265
265
|
## Requirements
|
266
266
|
|
267
|
-
* Ruby >=
|
268
|
-
* Rails ~>
|
269
|
-
* Ext JS = 5.1
|
267
|
+
* Ruby >= 2.3.0
|
268
|
+
* Rails ~> 5.1.0
|
269
|
+
* Ext JS = 6.5.1
|
270
270
|
|
271
271
|
## Installation
|
272
272
|
|
@@ -317,4 +317,4 @@ If you feel particularily generous, you can support the author by donating a cou
|
|
317
317
|
* [Twitter](http://twitter.com/netzke) - latest news about the framework
|
318
318
|
|
319
319
|
---
|
320
|
-
Copyright (c) 2009-
|
320
|
+
Copyright (c) 2009-2017 [Good Bit Labs](http://goodbitlabs.com/), released under the same license as [Ext JS](https://www.sencha.com/legal/#Sencha_Ext_JS)
|
data/config/routes.rb
CHANGED
data/javascripts/core.js
CHANGED
@@ -25,8 +25,8 @@ Netzke.exception = function(msg) {
|
|
25
25
|
|
26
26
|
// Check Ext JS version: both major and minor versions must be the same
|
27
27
|
(function(){
|
28
|
-
var requiredVersionMajor =
|
29
|
-
requiredVersionMinor =
|
28
|
+
var requiredVersionMajor = 6,
|
29
|
+
requiredVersionMinor = 5,
|
30
30
|
extVersion = Ext.getVersion('extjs'),
|
31
31
|
currentVersionMajor = extVersion.getMajor(),
|
32
32
|
currentVersionMinor = extVersion.getMinor(),
|
data/javascripts/routing.js
CHANGED
@@ -47,7 +47,7 @@ Ext.define('Netzke.Core.Routing', {
|
|
47
47
|
|
48
48
|
netzkeTriggerInitialRoute: function(){
|
49
49
|
var initToken = Ext.util.History.getToken();
|
50
|
-
if (initToken) this.netzkeRouter.redirectTo(initToken, true);
|
50
|
+
if (initToken) { this.netzkeRouter.redirectTo(initToken, true); }
|
51
51
|
},
|
52
52
|
|
53
53
|
netzkeGetRoutes: function(){
|
@@ -56,8 +56,9 @@ Ext.define('Netzke.Core.Routing', {
|
|
56
56
|
var handlerName = this.netzkeRoutes[route],
|
57
57
|
handler = this[handlerName];
|
58
58
|
if (!handler) Netzke.exception("Route handler " + handlerName + " is not defined");
|
59
|
-
out[route] = handler.bind(this);
|
59
|
+
out[route] = { action: handler.bind(this) };
|
60
60
|
}
|
61
61
|
return out;
|
62
62
|
}
|
63
63
|
});
|
64
|
+
|
data/lib/netzke/base.rb
CHANGED
@@ -12,6 +12,7 @@ require 'netzke/core/actions'
|
|
12
12
|
require 'netzke/core/session'
|
13
13
|
require 'netzke/core/core_i18n'
|
14
14
|
require 'netzke/core/inheritance'
|
15
|
+
require 'netzke/core/support'
|
15
16
|
|
16
17
|
module Netzke
|
17
18
|
# The base class for every Netzke component. Its main responsibilities include:
|
@@ -83,7 +84,8 @@ module Netzke
|
|
83
84
|
@item_id = conf[:item_id] || @name
|
84
85
|
|
85
86
|
# Make +client_config+ accessible in +configure+ before calling +super+
|
86
|
-
|
87
|
+
client_config = Netzke::Support.permit_hash_params(conf.delete(:client_config))
|
88
|
+
config.client_config = HashWithIndifferentAccess.new(client_config)
|
87
89
|
|
88
90
|
# Build complete component configuration
|
89
91
|
configure(config)
|
@@ -121,7 +121,13 @@ module Netzke::Core
|
|
121
121
|
component_name = params[:name].underscore.to_sym
|
122
122
|
|
123
123
|
item_id = params[:item_id]
|
124
|
-
cmp_instance = component_instance(
|
124
|
+
cmp_instance = component_instance(
|
125
|
+
component_name,
|
126
|
+
{
|
127
|
+
item_id: item_id,
|
128
|
+
client_config: Netzke::Support.permit_hash_params(params[:client_config])
|
129
|
+
}
|
130
|
+
)
|
125
131
|
|
126
132
|
if cmp_instance
|
127
133
|
js, css = cmp_instance.js_missing_code(cache), cmp_instance.css_missing_code(cache)
|
@@ -156,7 +162,7 @@ module Netzke::Core
|
|
156
162
|
component_name = component_name.to_sym
|
157
163
|
|
158
164
|
ComponentConfig.new(component_name, self).tap do |cfg|
|
159
|
-
cfg.client_config = HashWithIndifferentAccess.new(overrides[:client_config])
|
165
|
+
cfg.client_config = HashWithIndifferentAccess.new(Netzke::Support.permit_hash_params(overrides[:client_config]))
|
160
166
|
cfg.item_id = overrides[:item_id]
|
161
167
|
|
162
168
|
if respond_to?(:"#{component_name}_component")
|
@@ -21,7 +21,7 @@ module Netzke
|
|
21
21
|
# +true+ otherwise
|
22
22
|
def load_netzke(params = {})
|
23
23
|
params[:minified] = !Rails.env.development? if params[:minified].nil?
|
24
|
-
params[:theme] ||= "
|
24
|
+
params[:theme] ||= "triton"
|
25
25
|
|
26
26
|
raw([netzke_html, netzke_css_include(params), netzke_css(params), netzke_js_include(params), netzke_js(params)].join("\n"))
|
27
27
|
end
|
@@ -71,7 +71,7 @@ module Netzke
|
|
71
71
|
# Link tags for all the required stylsheets
|
72
72
|
def netzke_css_include(params)
|
73
73
|
# ExtJS base
|
74
|
-
res = ["#{Netzke::Core.ext_uri}/
|
74
|
+
res = ["#{Netzke::Core.ext_uri}/build/classic/theme-#{params[:theme]}/resources/theme-#{params[:theme]}-all.css"]
|
75
75
|
|
76
76
|
# Netzke-related dynamic css
|
77
77
|
res << netzke_ext_path
|
@@ -97,7 +97,7 @@ module Netzke
|
|
97
97
|
res << (params[:minified] ? "#{Netzke::Core.ext_uri}/build/ext-all.js" : "#{Netzke::Core.ext_uri}/build/ext-all-debug.js")
|
98
98
|
|
99
99
|
# Ext I18n
|
100
|
-
res << "#{Netzke::Core.ext_uri}/
|
100
|
+
res << "#{Netzke::Core.ext_uri}/build/classic/locale/locale-#{I18n.locale}" if I18n.locale != :en
|
101
101
|
|
102
102
|
# Netzke-related dynamic JavaScript
|
103
103
|
res << netzke_ext_path
|
@@ -33,14 +33,14 @@ module Netzke
|
|
33
33
|
|
34
34
|
# raw arguments from the client
|
35
35
|
def remoting_args
|
36
|
-
@_remoting_args ||= HashWithIndifferentAccess.new(@params
|
36
|
+
@_remoting_args ||= HashWithIndifferentAccess.new(data: @params[:data])[:data]
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
40
|
extend ActiveSupport::Concern
|
41
41
|
|
42
42
|
included do
|
43
|
-
send(:
|
43
|
+
send(:before_action, :set_controller_and_session)
|
44
44
|
end
|
45
45
|
|
46
46
|
module ClassMethods
|
@@ -63,18 +63,18 @@ module Netzke
|
|
63
63
|
response = direct_response(direct_request, invoke_endpoint(direct_request))
|
64
64
|
end
|
65
65
|
|
66
|
-
render
|
66
|
+
render plain: response.to_json, layout: false
|
67
67
|
end
|
68
68
|
|
69
69
|
# On-the-fly generation of public/netzke/ext.[js|css]
|
70
70
|
def ext
|
71
71
|
respond_to do |format|
|
72
72
|
format.js {
|
73
|
-
render :
|
73
|
+
render js: Netzke::Core::DynamicAssets.ext_js(form_authenticity_token)
|
74
74
|
}
|
75
75
|
|
76
76
|
format.css {
|
77
|
-
render :
|
77
|
+
render html: Netzke::Core::DynamicAssets.ext_css, content_type: 'text/css'
|
78
78
|
}
|
79
79
|
end
|
80
80
|
end
|
@@ -124,9 +124,9 @@ module Netzke
|
|
124
124
|
cmp_config[:client_config] = ActiveSupport::JSON.decode(params[:configs]).shift || {}
|
125
125
|
component_instance = Netzke::Base.instance_by_config(cmp_config)
|
126
126
|
|
127
|
-
render
|
127
|
+
render plain: component_instance.invoke_endpoint(sub_components.join("__"), [params]).netzke_jsonify.to_json, layout: false
|
128
128
|
else
|
129
|
-
render
|
129
|
+
render plain: { netzke_on_session_expired: [] }.to_json, layout: false
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
data/lib/netzke/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: netzke-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.5.0.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Gorin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: uglifier
|
@@ -106,6 +106,7 @@ files:
|
|
106
106
|
- lib/netzke/core/session.rb
|
107
107
|
- lib/netzke/core/state.rb
|
108
108
|
- lib/netzke/core/stylesheets.rb
|
109
|
+
- lib/netzke/core/support.rb
|
109
110
|
- lib/netzke/core/version.rb
|
110
111
|
- lib/netzke/plugin.rb
|
111
112
|
- lib/tasks/netzke_core_tasks.rake
|
@@ -131,9 +132,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
132
|
version: 1.3.4
|
132
133
|
requirements: []
|
133
134
|
rubyforge_project:
|
134
|
-
rubygems_version: 2.5.
|
135
|
+
rubygems_version: 2.5.2
|
135
136
|
signing_key:
|
136
137
|
specification_version: 4
|
137
138
|
summary: Client-server UI components with Sencha Ext JS and Ruby on Rails
|
138
139
|
test_files: []
|
139
|
-
has_rdoc:
|