netzke-basepack 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bf5c58faf416227bdbc8e57fce202ba5bfe073fc
4
- data.tar.gz: ab2ba7342fca7c413795685800526343e842b1ee
3
+ metadata.gz: abface49496fbac7db4c6a3ccbe7feba74ff737c
4
+ data.tar.gz: 3f2d99ca02b0310ae057b6edfc720b4a2e813716
5
5
  SHA512:
6
- metadata.gz: 53de795fda7f1aa8d96802d4ddfd71a418961acbd6433d0d8398355c5566496f1cf00548a49fbf4fea525278762f7b84fca726fd771ab0c50f18dc08505f96e6
7
- data.tar.gz: a1519277e2ec6d997b644adece7268ab1b84db4a13d19f9faac72e516d55670afce629fb4220354a5f94ed532096b894eed79f853be470a3840f484e54e64ac1
6
+ metadata.gz: aec16ea92de9fe52f5dcd15ccd8a10cedeb95624fd0e3b5f699f71710053569a45f35fd5dcd4c33bb53c89931896de9fd2a5729e946c2c69d3002b74ef1ab8ef
7
+ data.tar.gz: 0f18fb84455621cd1b9d721e36d8c89960f82d3d3cbf5b18368b2e66274ff66674eef7aaff4eca49815f8ae5c4b195b0aeb6346f69af9234e109440f4263ede0
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source 'http://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- gem 'rails', '~>4.2.0'
5
+ gem 'rails', '~>5.1.0'
6
6
  gem 'sqlite3'
7
7
  gem 'yard'
8
8
  gem 'rake'
@@ -15,7 +15,9 @@ group :test do
15
15
  gem 'rspec-rails'
16
16
  gem 'factory_girl'
17
17
  gem 'capybara'
18
- gem 'selenium-webdriver'
18
+ gem 'capybara-selenium'
19
+ gem 'selenium-webdriver', '~> 3.4.4'
20
+ gem 'chromedriver-helper'
19
21
  gem 'database_cleaner'
20
22
  end
21
23
 
@@ -24,9 +26,8 @@ group :development do
24
26
  end
25
27
 
26
28
  group :development, :test do
27
- # gem 'spring' # troubles...
28
29
  gem 'pry-rails'
29
- gem 'netzke-core', github: 'netzke/netzke-core', branch: 'master'
30
- gem 'netzke-testing', github: 'netzke/netzke-testing', branch: 'master'
30
+ gem 'netzke-core', git: 'https://github.com/netzke/netzke-core', branch: '6-5-0'
31
+ gem 'netzke-testing', git: 'https://github.com/netzke/netzke-testing', branch: '6-5-0'
31
32
  gem 'faker'
32
33
  end
@@ -0,0 +1,22 @@
1
+ Ext.define('Ext.data.operation.OperationsOverrided', {
2
+ override : 'Ext.data.operation.Operation',
3
+
4
+ initialize : function() {
5
+ this.callOverridden(arguments);
6
+ },
7
+
8
+ execute: function() {
9
+ var me = this,
10
+ request;
11
+ delete me.error;
12
+ delete me.success;
13
+ me.complete = me.exception = false;
14
+ me.setStarted();
15
+ me.request = request = me.doExecute();
16
+ // Original version calls setOperation even when request doesn't have this method.
17
+ if (request && request.setOperation) {
18
+ request.setOperation(me);
19
+ }
20
+ return request;
21
+ },
22
+ });
@@ -18,7 +18,7 @@ module Netzke
18
18
  class << self
19
19
  # Called from netzke-basepack.rb
20
20
  def init
21
- %w[tristate netzkeremotecombo xdatetime basepack grid/columns grid/event_handlers].each do |name|
21
+ %w[bugfixes tristate netzkeremotecombo xdatetime basepack grid/columns grid/event_handlers].each do |name|
22
22
  Netzke::Core.ext_javascripts << "#{File.dirname(__FILE__)}/../../javascripts/#{name}.js"
23
23
  end
24
24
 
@@ -326,7 +326,7 @@ module Netzke::Basepack::DataAdapters
326
326
  return nil if conditions.empty?
327
327
 
328
328
  predicates = conditions.map do |q|
329
- q = HashWithIndifferentAccess.new(q)
329
+ q = HashWithIndifferentAccess.new(Netzke::Support.permit_hash_params(q))
330
330
 
331
331
  attr = q[:attr]
332
332
  method, assoc = method_and_assoc(attr)
@@ -445,11 +445,13 @@ module Netzke::Basepack::DataAdapters
445
445
  when Proc
446
446
  scope.call(relation)
447
447
  when Hash
448
- relation.where(scope)
448
+ relation.where(Netzke::Support.permit_hash_params(scope))
449
+ when ActionController::Parameters
450
+ relation.where(Netzke::Support.permit_hash_params(scope))
449
451
  when NilClass
450
452
  relation
451
453
  else
452
- raise ArgumentError, "Expected scope to be a Proc or a Hash, got #{scope.class}"
454
+ raise ArgumentError, "Expected scope to be a Proc, ActionController::Parameters or a Hash, got #{scope.class}"
453
455
  end
454
456
  end
455
457
 
@@ -16,6 +16,14 @@
16
16
  tab = this.insert(i, cmp);
17
17
  }
18
18
 
19
+ if(config.tabIcon){
20
+ tab.setIcon(config.tabIcon);
21
+ }
22
+
23
+ if(config.tabTitle){
24
+ tab.setTitle(config.tabTitle);
25
+ }
26
+
19
27
  this.setActiveTab(tab);
20
28
  },
21
29
 
@@ -30,7 +30,7 @@
30
30
  }, this);
31
31
  }
32
32
 
33
- this.doLayout();
33
+ this.updateLayout();
34
34
  },
35
35
 
36
36
  addTab: function(activate, closable){
@@ -14,7 +14,7 @@
14
14
  f.ownerCt = this;
15
15
  this.insert(this.items.length - 1, Ext.createByAlias('widget.netzkebasepacksearchpanelconditionfield', f));
16
16
  }, this);
17
- this.doLayout();
17
+ this.updateLayout();
18
18
  },
19
19
 
20
20
  netzkeOnAddCondition: function() {
@@ -23,7 +23,7 @@
23
23
  this.netzkeOnAddCondition();
24
24
  }, this, {single: true});
25
25
  this.add(condField);
26
- this.doLayout();
26
+ this.updateLayout();
27
27
  this.fireEvent('fieldsnumberchange');
28
28
  },
29
29
 
@@ -1,5 +1,5 @@
1
1
  module Netzke
2
2
  module Basepack
3
- VERSION = "1.0.1.0"
3
+ VERSION = "6.5.0.0.rc1"
4
4
  end
5
5
  end
@@ -99,7 +99,7 @@
99
99
  tbar.insert( buttonIndex, this.actions.apply );
100
100
  }
101
101
 
102
- tbar.doLayout();
102
+ tbar.updateLaytout();
103
103
  },
104
104
 
105
105
  /**
@@ -213,7 +213,7 @@
213
213
  });
214
214
 
215
215
  // this.getForm().cleanDestroyed(); // because fields inside of composite fields are not auto-cleaned!
216
- this.doLayout();
216
+ this.updateLayout();
217
217
  this.inReadonlyMode = onOff;
218
218
  if (this.mode == "lockable") this.netzkeUpdateToolbar();
219
219
  },
@@ -131,9 +131,40 @@
131
131
  this.netzkeBulkExecute(commands);
132
132
  }, this);
133
133
 
134
+ this.netzkeApplyStoreBugfixes(store)
135
+
134
136
  return store;
135
137
  },
136
138
 
139
+ // Modifies store, to avoid bugs in Ext.js
140
+ netzkeApplyStoreBugfixes(store) {
141
+ store.totalCount = store.totalCount === undefined ? 0 : store.totalCount;
142
+
143
+ store._oldGetRange = store.getRange
144
+ store.getRange = function(start, end, options) {
145
+ var newEnd;
146
+ var newStart = start === undefined ? 0 : start;
147
+
148
+ if (end !== undefined) { newEnd = end }
149
+ else if (this.totalCount !== undefined) { newEnd = this.totalCount }
150
+ else { newEnd = 0 }
151
+
152
+ return this._oldGetRange(newStart, newEnd, options)
153
+ }
154
+
155
+ // When store is empty
156
+ store._oldRangeCached = store.rangeCached;
157
+
158
+ store.rangeCached = function(start, end) {
159
+ var newEnd = end < 0 ? 0 : end;
160
+ return this._oldRangeCached(start, newEnd);
161
+ }
162
+
163
+ store.prefetch = this.prefetchFix;
164
+
165
+ return store
166
+ },
167
+
137
168
  /**
138
169
  * @method netzkeStoreConfig
139
170
  * @return {Object} Configuration for the store
@@ -148,9 +179,9 @@
148
179
  buffered: this.paging == 'buffered'
149
180
  };
150
181
 
151
- if (this.paging == 'buffered') defaults.pageSize = 300;
182
+ if (this.paging == 'buffered') { defaults.pageSize = 300; }
152
183
 
153
- if (this.paging == 'none') defaults.pageSize = 0;
184
+ if (this.paging == 'none') { defaults.pageSize = 0; }
154
185
 
155
186
  return Ext.apply({}, this.storeConfig, defaults);
156
187
  },
@@ -192,5 +223,60 @@
192
223
  if (store.getNewRecords().length > 0 || store.getModifiedRecords().length > 0) {
193
224
  return confirm(this.i18n.proceedWithUnappliedChanges);
194
225
  }
226
+ },
227
+
228
+ prefetchFix: function(options) {
229
+ var me = this,
230
+ pageSize = me.getPageSize(),
231
+ data = me.getData(),
232
+ operation, existingPageRequest;
233
+ // Check pageSize has not been tampered with. That would break page caching
234
+ if (pageSize) {
235
+ if (me.lastPageSize && pageSize != me.lastPageSize) {
236
+ Ext.raise("pageSize cannot be dynamically altered");
237
+ }
238
+ if (!data.getPageSize()) {
239
+ data.setPageSize(pageSize);
240
+ }
241
+ } else // Allow first prefetch call to imply the required page size.
242
+ {
243
+ me.pageSize = data.setPageSize(pageSize = options.limit);
244
+ }
245
+ // So that we can check for tampering next time through
246
+ me.lastPageSize = pageSize;
247
+ // Always get whole pages.
248
+ if (!options.page) {
249
+ options.page = me.getPageFromRecordIndex(options.start);
250
+ options.start = (options.page - 1) * pageSize;
251
+ options.limit = Math.ceil(options.limit / pageSize) * pageSize;
252
+ }
253
+ // Currently not requesting this page, or the request was for the last
254
+ // generation of the data cache (clearing it changes generations)
255
+ // then request it...
256
+ existingPageRequest = me.pageRequests[options.page];
257
+ pageMapGeneraton = existingPageRequest && existingPageRequest.getOperation && existingPageRequest.getOperation().pageMapGeneration !== data.pageMapGeneration;
258
+
259
+ if (!existingPageRequest || pageMapGeneraton) {
260
+ // Copy options into a new object so as not to mutate passed in objects
261
+ options = Ext.apply({
262
+ action: 'read',
263
+ filters: me.getFilters().items,
264
+ sorters: me.getSorters().items,
265
+ grouper: me.getGrouper(),
266
+ internalCallback: me.onProxyPrefetch,
267
+ internalScope: me
268
+ }, options);
269
+ operation = me.createOperation('read', options);
270
+ // Generation # of the page map to which the requested records belong.
271
+ // If page map is cleared while this request is in flight, the pageMapGeneration will increment and the payload will be rejected
272
+ operation.pageMapGeneration = data.pageMapGeneration;
273
+ if (me.fireEvent('beforeprefetch', me, operation) !== false) {
274
+ me.pageRequests[options.page] = operation.execute();
275
+ if (me.getProxy().isSynchronous) {
276
+ delete me.pageRequests[options.page];
277
+ }
278
+ }
279
+ }
280
+ return me;
195
281
  }
196
282
  }
@@ -86,7 +86,7 @@
86
86
  var records = dataRecords.map(function(element){ return { id: element.id, parentId: parentId } });
87
87
  this.panel.server.updateParentId(records, function(response){
88
88
  dataRecords.forEach(function(record){
89
- if (record.modified !== undefined &&
89
+ if (record.modified &&
90
90
  Object.keys(record.modified).length == 1
91
91
  && record.modified["parentId"] !== undefined){
92
92
  record.dirty = false;
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netzke-basepack
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1.0
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: 2016-05-01 00:00:00.000000000 Z
11
+ date: 2017-08-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A set of feature-rich extendible Netzke components (such as Grid, Tree,
14
14
  Form, Window) and component extensions which can be used as building blocks for
@@ -25,6 +25,7 @@ files:
25
25
  - Rakefile
26
26
  - init.rb
27
27
  - javascripts/basepack.js
28
+ - javascripts/bugfixes.js
28
29
  - javascripts/grid/columns.js
29
30
  - javascripts/grid/event_handlers.js
30
31
  - javascripts/netzkeremotecombo.js
@@ -113,9 +114,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
114
  version: 1.3.4
114
115
  requirements: []
115
116
  rubyforge_project:
116
- rubygems_version: 2.5.1
117
+ rubygems_version: 2.5.2
117
118
  signing_key:
118
119
  specification_version: 4
119
120
  summary: Pre-built Netzke components
120
121
  test_files: []
121
- has_rdoc: