netzke-basepack 1.0.0.0.pre3 → 1.0.0.0
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 +14 -16
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/javascripts/grid/event_handlers.js +5 -11
- data/lib/netzke/basepack/attributes.rb +2 -2
- data/lib/netzke/basepack/data_adapters/active_record_adapter.rb +16 -6
- data/lib/netzke/basepack/version.rb +1 -1
- data/lib/netzke/grid/base.rb +13 -3
- data/lib/netzke/grid/endpoints.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7b071b17635f26304174a2ce41906a80151f5dd
|
4
|
+
data.tar.gz: 87a442885af7cdbbba3bf8c8758c687f8cf58d66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9fcdb725adaec959082a2f9b9cc638dbbd424c329f13ff2086dfdd4a710d46f359544aa9f2831f9000a2246612f3c6a80c2e53993b0156a61439f1f154ef243
|
7
|
+
data.tar.gz: 0ccc9d5f7a241e02a00de6048e0c2dc74ebb0c30fab519bc27a3ead1769d60fe6239646418ca12757ba608c858dfab709824ce7ec5b99b21d67d4106640a8019
|
data/CHANGELOG.md
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
-
|
1
|
+
# v1.0.0.0 - 2016-01-04
|
2
|
+
|
3
|
+
## Components changed/renamed
|
2
4
|
|
3
5
|
* Base classes of main componens have been renamed from `Netzke::Basepack::{Grid|Form|Tree|Window|Viewport}` to `Netzke::{Grid|Form|Tree|Window|Viewport}::Base`.
|
4
6
|
|
5
|
-
* `Netzke::Basepack::
|
7
|
+
* `Netzke::Basepack::TabPanel` and `Netzke::Basepack::Accordion` have been removed. The only purpose for them was dynamic loading of child components, which didn't prove that useful.
|
6
8
|
|
7
|
-
|
9
|
+
## Form, Grid, Tree
|
8
10
|
|
9
|
-
|
11
|
+
### Breaking changes
|
10
12
|
|
11
13
|
* `strong_default_attrs` config option has been renamed to `strong_values`.
|
12
14
|
|
@@ -14,15 +16,15 @@
|
|
14
16
|
|
15
17
|
* The new `attribute` DSL method and the accompanying `attribute_overrides` config option allow reconfiguring the way specific model attributes are presented by both the grid and the form. The `column` DSL method has been left for configuring what's specific for a column. For details, see [Netzke::Basepack::Attributes](http://www.rubydoc.info/github/netzke/netzke-basepack/Netzke/Basepack/Attributes).
|
16
18
|
|
17
|
-
|
19
|
+
## Form
|
18
20
|
|
19
|
-
|
21
|
+
### Breaking changes
|
20
22
|
|
21
23
|
* The `netzkeSubmit` and `netzkeLoad` endpoints have been renamed to `submit` and `load` respectively; keep this in mind if you override them in your app.
|
22
24
|
|
23
|
-
|
25
|
+
## Grid
|
24
26
|
|
25
|
-
|
27
|
+
### Breaking changes
|
26
28
|
|
27
29
|
* Column/field label for association no longer includes association method name by default. For example, for
|
28
30
|
`author__name` attribute it'll now be "Author", not "Author name".
|
@@ -44,15 +46,15 @@
|
|
44
46
|
|
45
47
|
* The endpoints dropped their prefix `server`; additionally, `serverDelete` has become `destroy`; keep this in mind if you override endpoints in your app.
|
46
48
|
|
47
|
-
* All scope-related configs (including those of the columns) now only accept a Proc
|
49
|
+
* All scope-related configs (including those of the columns) now only accept a Proc or a Hash.
|
48
50
|
|
49
|
-
* Class-level configuration is gone (its sole purpose was to allow reducing the amount of generated JS code - not worth it).
|
51
|
+
* Class-level component configuration is gone (its sole purpose was to allow reducing the amount of generated JS code - not worth it).
|
50
52
|
|
51
53
|
* `enable_edit_in_form`, `enable_edit_inline`, `enable_pagination` options are gone.
|
52
54
|
|
53
55
|
* `enable_extended_search` option is gone.
|
54
56
|
|
55
|
-
|
57
|
+
### New and improved
|
56
58
|
|
57
59
|
* By default, Grid now uses form to add/edit records. Set `edit_inline` to true to use inline editing when possible (implicitly sets `paging` to `true`).
|
58
60
|
|
@@ -62,15 +64,11 @@
|
|
62
64
|
|
63
65
|
* Buttons previously disabled due to permissions are now not added to the bottom bar alltogether.
|
64
66
|
|
65
|
-
#### Added
|
66
|
-
|
67
67
|
* Override new `configure_form` method to specify extra configuration to the forms
|
68
68
|
|
69
69
|
* Warn the user at an attempt to change the page when there are unapplied changes; disable the warning by setting `disable_dirty_page_warning` to `true`.
|
70
70
|
|
71
|
-
* Proper support for decimal datatype
|
72
|
-
|
73
|
-
#### Bugfixes
|
71
|
+
* Proper support for decimal datatype was added
|
74
72
|
|
75
73
|
* Multiediting of reconds now works properly with boolean fields (a tristate selector was implemented).
|
76
74
|
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -103,4 +103,4 @@ If you feel particularily generous, you can donate a couple of bucks weekly at [
|
|
103
103
|
* [Twitter](http://twitter.com/netzke) - latest news about the framework
|
104
104
|
|
105
105
|
---
|
106
|
-
Copyright (c) 2009-
|
106
|
+
Copyright (c) 2009-2016 [Good Bit Labs](http://goodbitlabs.com/), released under the same license as [Ext JS](https://www.sencha.com/legal/#Sencha_Ext_JS)
|
@@ -92,16 +92,6 @@ Ext.define("Netzke.Grid.EventHandlers", {
|
|
92
92
|
}
|
93
93
|
},
|
94
94
|
|
95
|
-
// Not a very clean approach to clean-up. The problem is that this way the advanced search functionality stops being really pluggable. With Ext JS 4 find the way to make it truely so.
|
96
|
-
netzkeOnDestroy: function(){
|
97
|
-
this.callParent();
|
98
|
-
|
99
|
-
// Destroy the search window (here's the problem: we are not supposed to know it exists)
|
100
|
-
if (this.searchWindow) {
|
101
|
-
this.searchWindow.destroy();
|
102
|
-
}
|
103
|
-
},
|
104
|
-
|
105
95
|
netzkeOnAddInForm: function(){
|
106
96
|
this.netzkeLoadComponent("add_window", {
|
107
97
|
callback: function(w) {
|
@@ -167,6 +157,10 @@ Ext.define("Netzke.Grid.EventHandlers", {
|
|
167
157
|
}});
|
168
158
|
},
|
169
159
|
|
160
|
+
/**
|
161
|
+
* Reloads store
|
162
|
+
* @method netzkeReloadStore
|
163
|
+
*/
|
170
164
|
netzkeReloadStore: function(){
|
171
165
|
var store = this.getStore();
|
172
166
|
|
@@ -177,7 +171,7 @@ Ext.define("Netzke.Grid.EventHandlers", {
|
|
177
171
|
},
|
178
172
|
|
179
173
|
/**
|
180
|
-
*
|
174
|
+
* Processes selectionchange event to enable/disable actions.
|
181
175
|
* @method netzkeSetActionEvents
|
182
176
|
* @private
|
183
177
|
*/
|
@@ -70,13 +70,13 @@ module Netzke
|
|
70
70
|
#
|
71
71
|
# [scope]
|
72
72
|
#
|
73
|
-
#
|
73
|
+
# A Proc or a Hash used to scope out one-to-many association options. Same syntax applies as for scoping out records in the grid.
|
74
74
|
#
|
75
75
|
# [filter_association_with]
|
76
76
|
#
|
77
77
|
# A Proc object that receives the relation and the value to filter by. Example:
|
78
78
|
#
|
79
|
-
#
|
79
|
+
# attribute :author__name do |c|
|
80
80
|
# c.filter_association_with = lambda {|rel, value| rel.where("first_name like ? or last_name like ?", "%#{value}%", "%#{value}%" ) }
|
81
81
|
# end
|
82
82
|
#
|
@@ -89,7 +89,8 @@ module Netzke::Basepack::DataAdapters
|
|
89
89
|
# Options for an asssociation attribute
|
90
90
|
|
91
91
|
relation = assoc.klass.all
|
92
|
-
|
92
|
+
|
93
|
+
relation = extend_relation_with_scope(relation, attr[:scope])
|
93
94
|
|
94
95
|
if attr[:filter_association_with]
|
95
96
|
relation = attr[:filter_association_with].call(relation, query).to_a
|
@@ -316,11 +317,7 @@ module Netzke::Basepack::DataAdapters
|
|
316
317
|
relation = relation.where(predicates_for_and_conditions(and_query))
|
317
318
|
end
|
318
319
|
|
319
|
-
|
320
|
-
relation = params[:scope].call(relation)
|
321
|
-
else
|
322
|
-
raise ArgumentError, "Expected scope to be a Proc, got #{params[:scope].class}" unless params[:scope].nil?
|
323
|
-
end
|
320
|
+
relation = extend_relation_with_scope(relation, params[:scope])
|
324
321
|
|
325
322
|
@relation = relation
|
326
323
|
end
|
@@ -443,6 +440,19 @@ module Netzke::Basepack::DataAdapters
|
|
443
440
|
|
444
441
|
private
|
445
442
|
|
443
|
+
def extend_relation_with_scope(relation, scope)
|
444
|
+
case scope
|
445
|
+
when Proc
|
446
|
+
scope.call(relation)
|
447
|
+
when Hash
|
448
|
+
relation.where(scope)
|
449
|
+
when NilClass
|
450
|
+
relation
|
451
|
+
else
|
452
|
+
raise ArgumentError, "Expected scope to be a Proc or a Hash, got #{scope.class}"
|
453
|
+
end
|
454
|
+
end
|
455
|
+
|
446
456
|
def logger
|
447
457
|
Netzke::Base.logger
|
448
458
|
end
|
data/lib/netzke/grid/base.rb
CHANGED
@@ -79,17 +79,27 @@ module Netzke
|
|
79
79
|
#
|
80
80
|
# [scope]
|
81
81
|
#
|
82
|
-
# A Proc
|
83
|
-
# modified relation. For example:
|
82
|
+
# A Proc or a Hash used to scope out grid data. The Proc will receive the current relation as a parameter and must
|
83
|
+
# return the modified relation. For example:
|
84
84
|
#
|
85
85
|
# class Books < Netzke::Basepack::Grid
|
86
86
|
# def configure(c)
|
87
|
-
# c.model = "Book"
|
88
87
|
# super
|
88
|
+
# c.model = Book
|
89
89
|
# c.scope = lambda {|r| r.where(author_id: 1) }
|
90
90
|
# end
|
91
91
|
# end
|
92
92
|
#
|
93
|
+
# Hash is being accepted for conivience, it will be directly passed to `where`. So the above can be rewritten as:
|
94
|
+
#
|
95
|
+
# class Books < Netzke::Basepack::Grid
|
96
|
+
# def configure(c)
|
97
|
+
# super
|
98
|
+
# c.model = Book
|
99
|
+
# c.scope = {author_id: 1}
|
100
|
+
# end
|
101
|
+
# end
|
102
|
+
#
|
93
103
|
# [strong_values]
|
94
104
|
#
|
95
105
|
# A hash of attributes to be merged atop of every created/updated record, e.g. +role_id: 1+
|
@@ -84,7 +84,7 @@ module Netzke
|
|
84
84
|
|
85
85
|
# Attempts a given operation on the data. Checks permissions first.
|
86
86
|
# @param [Symbol] Operation: :create, :read, :update, or :delete
|
87
|
-
# @param [Array] Workload of operation data
|
87
|
+
# @param [Array|Hash] Workload of operation data
|
88
88
|
# @param [Netzke::Core::EndpointResponse] Object collecting response to the client
|
89
89
|
def attempt_operation(op, data, client)
|
90
90
|
if allowed_to?(op)
|
metadata
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: netzke-basepack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.0
|
4
|
+
version: 1.0.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Gorin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: A set of feature-rich extendible Netzke components (such as
|
14
|
-
|
15
|
-
|
13
|
+
description: A set of feature-rich extendible Netzke components (such as Grid, Tree,
|
14
|
+
Form, Window) and component extensions which can be used as building blocks for
|
15
|
+
your apps
|
16
16
|
email: max@goodbitlabs.com
|
17
17
|
executables: []
|
18
18
|
extensions: []
|