assoc_whisperer 2.0.1 → 2.0.2

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: c12d3a84dff2b3fcedf60c2abd790d235626c566
4
- data.tar.gz: aacfc5036d39c470b1301cc6b7f853f0dded41d0
3
+ metadata.gz: 27b9b727c24d4854931accf16f95b6a7e5a37057
4
+ data.tar.gz: 43ecbae14277e0a36f996810f630c2ddce36ce82
5
5
  SHA512:
6
- metadata.gz: 760054c15cc9fc0aea5357f11db45cfb81e5245a3747f574ba6fccc1abeb3a50aac045d17a08e26a09122f238e5744ea18239fb4775977ef388cc82bc481c9ce
7
- data.tar.gz: 6309409f36c8087a4460dc542eaaf2b3d05fa1850f0df4cd5f2d20a4dd145eb97812a5cd4eafb542d946b9f9658576e0233bfb9c0f4917f75e33d0c45939c3bc
6
+ metadata.gz: 920c4fa5f5ddf259352295b986077d31642efa307da7ced452693d9df971637dd9d24b1b9254d3ad703eb6346fd1cd09b863a7aaa791c6ee5ef05e44a50ef186
7
+ data.tar.gz: 57e24abab50e7e490d7c5ac592920b6014c2fe92f3262205632d3a731bbcda1e0cf60fd3e6d11636f7964be620a8b9bb1d00033e43d5b907a67f01e763bf8743
@@ -22,6 +22,7 @@ document.AssocWhisperer = (function () {
22
22
  base: el,
23
23
  text_field: el.children('.text_field'),
24
24
  value_field: el.children('.value_field'),
25
+ dropdown_button: el.children('.dropdown_button'),
25
26
  list: null
26
27
  };
27
28
  opts = el.data('opts');
@@ -32,7 +33,7 @@ document.AssocWhisperer = (function () {
32
33
  w = Object.create(proto, {
33
34
  nodes: {value: _nodes},
34
35
  focused: {value: false, writable: true},
35
- filled: {value: _nodes['value_field'].val()!=='', writable: true},
36
+ filled: {value: _nodes.value_field.val()!=='', writable: true},
36
37
  // setting
37
38
  action: {value: opts['action']},
38
39
  params: {value: opts['params']}
@@ -56,17 +57,17 @@ document.AssocWhisperer = (function () {
56
57
  if (_timer) clearTimeout(_timer);
57
58
  if (w.filled) {
58
59
  w.filled = false;
59
- _nodes['value_field'].val('');
60
- _nodes['text_field'].addClass('unfilled');
60
+ _nodes.value_field.val('');
61
+ _nodes.text_field.addClass('unfilled');
61
62
  }
62
63
 
63
- input_text = _nodes['text_field'].val();
64
+ input_text = _nodes.text_field.val();
64
65
  if (input_text==='') {
65
66
  w.removeList();
66
67
  }
67
68
  else {
68
- if (_nodes['list']) {
69
- _nodes['list'].addClass('invalid');
69
+ if (_nodes.list) {
70
+ _nodes.list.addClass('invalid');
70
71
  }
71
72
  _timer = setTimeout(function () {
72
73
  if (w.client_side) {
@@ -82,10 +83,10 @@ document.AssocWhisperer = (function () {
82
83
  }, 700);
83
84
  }
84
85
  });
85
- _nodes.text_field.on('click', function(){ _nodes['text_field'].select(); });
86
+ _nodes.text_field.on('click', function(){ _nodes.text_field.select(); });
86
87
  _nodes.text_field.focus(function(){ w.focused = true; });
87
88
  _nodes.text_field.blur(function(){ onBlur(); });
88
- el.children('.dropdown_button').on('click', function(){
89
+ _nodes.dropdown_button.on('click', function(){
89
90
  var f;
90
91
  if (_timer) clearTimeout(_timer);
91
92
  if (w.client_side) {
@@ -93,10 +94,10 @@ document.AssocWhisperer = (function () {
93
94
  // var input_text;
94
95
  // if (w.filled) showList(w.full_data);
95
96
  // else {
96
- // input_text = _nodes['text_field'].val();
97
+ // input_text = _nodes.text_field.val();
97
98
  // showList(digest(input_text==='' ? null : input_text));
98
99
  // }
99
- // _nodes['list'].focus();
100
+ // _nodes.list.focus();
100
101
  // };
101
102
  // if (!w.full_data) query(w, null, function (html_text) {
102
103
  // w.full_data = $(html_text);
@@ -105,13 +106,13 @@ document.AssocWhisperer = (function () {
105
106
  // else f();
106
107
  }
107
108
  else {
108
- query(w, (w.filled ? null : _nodes['text_field'].val()), function (html_text) {
109
+ query(w, (w.filled ? null : _nodes.text_field.val()), function (html_text) {
109
110
  showList($(html_text));
110
- _nodes['list'].focus();
111
+ _nodes.list.focus();
111
112
  });
112
113
  }
113
114
  });
114
- el.children('.dropdown_button').removeClass('querying'); // css class is set, hence gif gets pre-loaded
115
+ _nodes.dropdown_button.removeClass('querying'); // css class is set, hence gif gets pre-loaded
115
116
 
116
117
  // // For local full_data finds matching rows and shows them.
117
118
  // function digest(input_text) {
@@ -129,19 +130,16 @@ document.AssocWhisperer = (function () {
129
130
 
130
131
  // Attaches a List sent by html string within Whisperer's tag. Positions it underneath the text field.
131
132
  function showList (list) {
132
- var base_dom;
133
133
  w.removeList();
134
134
 
135
- _nodes['list'] = list;
136
-
137
- base_dom = _nodes['base'];
138
- list.css('min-width', base_dom.width());
139
- list.css('left', base_dom.offset().left);
140
- list.css('top', base_dom.position().top + base_dom.outerHeight());
135
+ list.css('min-width', _nodes.base.width());
136
+ list.css('left', _nodes.base.offset().left);
137
+ list.css('top', _nodes.base.position().top + _nodes.base.outerHeight());
141
138
  list.focus(function(){ w.focused = true; });
142
139
  list.blur(function(){ onBlur(); });
143
- base_dom.append(list);
140
+ _nodes.base.append(list);
144
141
 
142
+ _nodes.list = list;
145
143
  list.find('div').on('click', function(el){ w.select($(el.currentTarget)); });
146
144
  }
147
145
 
@@ -163,9 +161,9 @@ document.AssocWhisperer = (function () {
163
161
  // Removes the List should there be any.
164
162
  Object.defineProperty(proto, 'removeList', {
165
163
  value: function () {
166
- if (this.nodes['list']) {
167
- this.nodes['list'].detach();
168
- this.nodes['list'] = null
164
+ if (this.nodes.list) {
165
+ this.nodes.list.detach();
166
+ this.nodes.list = null
169
167
  }
170
168
  }
171
169
  });
@@ -176,9 +174,9 @@ document.AssocWhisperer = (function () {
176
174
  var text;
177
175
  if (row.length!==1) return;
178
176
  text = row.text();
179
- this.nodes['text_field'].val(text);
180
- this.nodes['text_field'].removeClass('unfilled');
181
- this.nodes['value_field'].val(row.attr('data-value'));
177
+ this.nodes.text_field.val(text);
178
+ this.nodes.text_field.removeClass('unfilled');
179
+ this.nodes.value_field.val(row.attr('data-value'));
182
180
  this.filled = true;
183
181
  this.removeList();
184
182
  }
@@ -186,10 +184,8 @@ document.AssocWhisperer = (function () {
186
184
 
187
185
  // Actual ajax request for given input
188
186
  function query (w, input, on_success) {
189
- var btn;
190
187
  klass.querying = true;
191
- btn = w.nodes['base'].find('.dropdown_button');
192
- btn.addClass('querying');
188
+ w.nodes.dropdown_button.addClass('querying');
193
189
  w.params['input'] = input;
194
190
  $.ajax(w.action, {
195
191
  type: 'GET',
@@ -199,7 +195,7 @@ document.AssocWhisperer = (function () {
199
195
  success: on_success,
200
196
  complete: function () {
201
197
  klass.querying = false;
202
- btn.removeClass('querying');
198
+ w.nodes.dropdown_button.removeClass('querying');
203
199
  }
204
200
  }
205
201
  );
@@ -224,7 +220,7 @@ document.AssocWhisperer = (function () {
224
220
  // Sets a value to Whisperer
225
221
  Object.defineProperty(klass, 'setValueFor', {
226
222
  value: function (value, whisp_action) {
227
- findWhisperer(whisp_action).nodes['value_field'].val(value);
223
+ findWhisperer(whisp_action).nodes.value_field.val(value);
228
224
  }
229
225
  });
230
226
 
@@ -16,8 +16,10 @@ Gem::Specification.new do |spec|
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  # spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  # spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency "bundler"
22
- spec.add_development_dependency "rake"
21
+ spec.add_development_dependency 'bundler'
22
+ spec.add_development_dependency 'rake'
23
+ # spec.add_development_dependency 'cucumber'
24
+ # spec.add_development_dependency 'capybara-webkit'
23
25
  end
@@ -7,6 +7,7 @@ module AssocWhisperer
7
7
  def initialize(action, opts={})
8
8
  @action = action[0]=='/' ? action : "#{AssocWhisperer.def_url}/#{action}"
9
9
  @opts = opts
10
+ @opts[:dropdown_button] = true if @opts[:dropdown_button].nil?
10
11
  end
11
12
 
12
13
  def params(params)
@@ -63,6 +64,7 @@ module AssocWhisperer
63
64
  end
64
65
 
65
66
  def dropdown_button_tag
67
+ return '' unless @opts[:dropdown_button].is_a? TrueClass
66
68
  "<span class=\"dropdown_button querying\">\u25BE</span>"
67
69
  end
68
70
 
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
  module AssocWhisperer
3
- VERSION = "2.0.1"
3
+ VERSION = "2.0.2"
4
4
 
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assoc_whisperer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ondřej Želazko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-04 00:00:00.000000000 Z
11
+ date: 2014-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -82,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
82
  version: '0'
83
83
  requirements: []
84
84
  rubyforge_project:
85
- rubygems_version: 2.2.2
85
+ rubygems_version: 2.4.3
86
86
  signing_key:
87
87
  specification_version: 4
88
88
  summary: Rails tag assoc_whisperer for forms