netzke-basepack 1.0.1.0 → 6.5.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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: