recordselect 3.6.2 → 3.7.3

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: 3e70fe9dd387f2e4977683f62f5232e1b2e2bc79
4
- data.tar.gz: 6fea1d8d1d538fc9a43cb616ecf3d7bf771a67b8
3
+ metadata.gz: 7ac1e9e5a4f739a43f8a4be495630f808787f7b5
4
+ data.tar.gz: c95307b6061af403a3e4a6996e47043bfbc66f3e
5
5
  SHA512:
6
- metadata.gz: ce3a477f2f02b664c048ab93d990599d65c3e2f2642d6a29863d0ad2a00862297143fb9b0a22f212383eb17f6c9e7d08d5d88e9c9f952a65a343c7f8614f8c7b
7
- data.tar.gz: 40d9e12ed64a3934a8a510c8b814cdf5b49e3d7f7e831a77fc74a52fa2965f3c3deb18c51f2d72c7b5bca4ab052f19ced7d68fab5efcb8686111c1db390d7b9b
6
+ metadata.gz: a17a0f13b7d5c1708934d1cfd5425b3eeb27e01471befcc4fcb0befc5eba403ad2d5cbb71518e3dbbef5c788804d53f6157da420da94535919314c104ee2cd63
7
+ data.tar.gz: 4ec482ddf60812a49c5226f8bd9263fbd8bcee453f9991d017297e04e31c99b129d839c538558692867666bc21dc45e429136377600c153b7d39fc558106bfb6
@@ -140,9 +140,10 @@ RecordSelect.select_item = function(item) {
140
140
  }
141
141
  }
142
142
 
143
- RecordSelect.observe = function(id) {
144
- var form = jQuery("#" + id), min_length = 0;
145
- var rs = form.closest('.record-select-container').data('recordselect');
143
+ RecordSelect.observe = function(form) {
144
+ if (typeof(form) == 'string') form = '#' + form;
145
+ form = jQuery(form);
146
+ var min_length = 0, rs = form.closest('.record-select-container').data('recordselect');
146
147
  if (rs) min_length = rs.min_length;
147
148
  form.find('input.text-input').delayedObserver(function() {
148
149
  if (form.closest('body').length) form.trigger("submit");
@@ -206,7 +207,7 @@ RecordSelect.Abstract = Class.extend({
206
207
  if (this.is_open()) return;
207
208
  var _this = this;
208
209
  jQuery.rails.fire(_this.obj, 'recordselect:before');
209
- _this.container.html('');
210
+ _this.create_form();
210
211
  _this.container.show();
211
212
  var params = _this.obj.data('params'), text = _this.obj.val();
212
213
 
@@ -214,19 +215,17 @@ RecordSelect.Abstract = Class.extend({
214
215
  params = params ? [params, search_params].join("&") : search_params;
215
216
  this.current_xhr = jQuery.ajax({
216
217
  url: this.url,
217
- //type: "POST",
218
218
  data: params,
219
- //dataType: options.ajax_data_type,
220
- success: function(data, status){
219
+ success: function(data, status, xhr) {
220
+ if (_this.current_xhr != xhr) return;
221
221
  if (status != 'abort') _this.current_xhr = null;
222
222
  _this.container.html(data);
223
223
  if (!_this.container.is(':visible')) _this.close();
224
224
  else {
225
225
  _this.container.find('.text-input').val(_this.obj.val());
226
- RecordSelect.observe(_this.container.find('form').attr('id'));
226
+ RecordSelect.observe(_this.container.find('form'));
227
227
  _this.container.hide(); // needed to get right document height to position first time
228
228
  if (text.length >= _this.min_length) _this.show();
229
- jQuery(document.body).mousedown(jQuery.proxy(_this, "onbodyclick"));
230
229
  }
231
230
  }
232
231
  });
@@ -292,7 +291,7 @@ RecordSelect.Abstract = Class.extend({
292
291
  * returns true/false for whether the recordselect is open
293
292
  */
294
293
  is_open: function() {
295
- return (!(jQuery.trim(this.container.html()).length == 0))
294
+ return jQuery.trim(this.container.html()).length != 0;
296
295
  },
297
296
 
298
297
  /**
@@ -322,11 +321,23 @@ RecordSelect.Abstract = Class.extend({
322
321
  }
323
322
  });
324
323
  jQuery(document.body).append(e);
324
+ jQuery(document.body).mousedown(jQuery.proxy(this, "onbodyclick"));
325
325
  if (!rs.fixed && e.offsetParent().css('position') == 'static') rs.body_static = true;
326
326
  e.get(0).onselect = jQuery.proxy(this, "onselect")
327
327
  return e;
328
328
  },
329
329
 
330
+ create_form: function() {
331
+ var div = jQuery('<div>').addClass('record-select').attr('id', this.options.id);
332
+ var form = jQuery('<form>').attr('action', this.url).attr('data-remote', true).attr('method', 'get');
333
+ form.append(jQuery('<input type="text" name="search" class="text-input">'));
334
+ form.append(jQuery('<input type="hidden" name="page" value="1">'));
335
+ form.append(jQuery('<input type="hidden" name="update" value="1">'));
336
+ div.append(form).append(jQuery('<ol>'));
337
+ this.container.html(div);
338
+ RecordSelect.observe(form);
339
+ },
340
+
330
341
  onkeyup: function(event) {
331
342
  if (!this.is_open()) return;
332
343
  this.container.find('.text-input').val(this.obj.val()).trigger(event);
@@ -19,7 +19,7 @@ module RecordSelectHelper
19
19
  options[:html][:id] ||= "rs_#{rand(9999)}"
20
20
 
21
21
  assert_controller_responds(options[:params][:controller])
22
- record_select_options = {:onselect => options[:onselect] || ''}
22
+ record_select_options = {id: record_select_id(controller.controller_path), onselect: options[:onselect] || ''}
23
23
  record_select_options.merge! options[:rs] if options[:rs]
24
24
 
25
25
  html = link_to(name, '#', options[:html])
@@ -49,7 +49,7 @@ module RecordSelectHelper
49
49
 
50
50
  controller = assert_controller_responds(options.delete(:controller))
51
51
  params = options.delete(:params)
52
- record_select_options = {}
52
+ record_select_options = {id: record_select_id(controller.controller_path)}
53
53
  record_select_options[:field_name] = options.delete(:field_name) if options[:field_name]
54
54
  if current and not current.new_record?
55
55
  record_select_options[:id] = current.id
@@ -84,7 +84,7 @@ module RecordSelectHelper
84
84
 
85
85
  controller = assert_controller_responds(options.delete(:controller))
86
86
  params = options.delete(:params)
87
- record_select_options = {:label => options.delete(:label)}
87
+ record_select_options = {id: record_select_id(controller.controller_path), label: options.delete(:label)}
88
88
  if current
89
89
  record_select_options[:label] ||= label_for_field(current, controller)
90
90
  end
@@ -118,7 +118,7 @@ module RecordSelectHelper
118
118
 
119
119
  controller = assert_controller_responds(options.delete(:controller))
120
120
  params = options.delete(:params)
121
- record_select_options = {}
121
+ record_select_options = {id: record_select_id(controller.controller_path)}
122
122
  record_select_options[:current] = current.inject([]) { |memo, record| memo.push({:id => record.id, :label => label_for_field(record, controller)}) }
123
123
  record_select_options.merge! options[:rs] if options[:rs]
124
124
 
@@ -1,8 +1,8 @@
1
1
  module RecordSelect
2
2
  module Version
3
3
  MAJOR = 3
4
- MINOR = 6
5
- PATCH = 2
4
+ MINOR = 7
5
+ PATCH = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recordselect
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.2
4
+ version: 3.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Cambra
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-06-09 00:00:00.000000000 Z
13
+ date: 2017-06-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler