jquery_ujs_handlers 0.0.1 → 0.0.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: 82f95fe1d1bb807c65e766483c5729fbc6a35e72
4
- data.tar.gz: f77925f459150e86ef4172832ef3da8dcb0a52cb
3
+ metadata.gz: a08accdd42081d25b31116b956b90773651eb602
4
+ data.tar.gz: b0865b0f7e93266e6423040fe512b7fa7d5f9b0b
5
5
  SHA512:
6
- metadata.gz: d58569c9417df8cefab039c3aff5430adb7ec8f89632ff951b58096c620b97fd13020185fdcc2acf47246237f59d17a96abe232684dced0228f38b07508c3255
7
- data.tar.gz: ade1c0419216d3d461f4b7e426f848497db4514b0fdd862eca12b0a1471002cd825e67fe23dde7f31c65bb572629727f233732dff2bace1857809667238f01bb
6
+ metadata.gz: d8029df8199331270e540bee6a743bba2b61bbbba7becd07594d81320ecc7203694781b61f7cc617a2c76c9d70b7e7cde94664086a63d7dbb5217f78054c86af
7
+ data.tar.gz: 02d2562856903f716cb6c8bf93b9b9f16bd93bde5b092c92c0707653abf0923c29eb105bba99a9f516c4ae0384ed13154cfdff09dbfe6daa6971644dfab949d2
@@ -30,7 +30,7 @@
30
30
  var dialogTmp = '' +
31
31
  '<div class="ujsh-dialog ujsh-dialog__{{modifier}}">' +
32
32
  '<div class="ujsh-dialog--wrapper">' +
33
- '<div class="ujsh-dialog--container>' +
33
+ '<div class="ujsh-dialog--container">' +
34
34
  '<div class="ujsh-dialog--header">' +
35
35
  '<a class="ujsh-dialog--button-close" data-ujsh-dialog-close>&times;</a>' +
36
36
  '</div>' +
@@ -44,22 +44,27 @@
44
44
  error: {
45
45
  hint: function (request, status, error) {
46
46
  var errors = parseErrors(request);
47
- var field, fieldErrors, $field;
48
- var hintTmp = options.error.reporting.hint.tmp;
47
+ var field, fieldErrors, $field, fieldSelector;
48
+ var hintTmp = this.options.error.reporting.hint.tmp;
49
49
 
50
50
  for (field in errors) {
51
51
  fieldErrors = errors[field];
52
- $field = this.find('[type!=hidden][name*="[' + field + ']"]');
53
- $field.toggleClass(options.error.className, true);
52
+ fieldSelector = field;
53
+ if (field.indexOf('.') > -1) {
54
+ fieldSelector = field.split('.');
55
+ fieldSelector = fieldSelector[fieldSelector.length -1];
56
+ }
57
+ $field = this.find('[type!=hidden][name*="[' + fieldSelector + ']"]');
58
+ $field.toggleClass(this.options.error.className, true);
54
59
  $(hintTmp.replace(/{{content}}/, fieldErrors.join(', '))).insertAfter($field);
55
60
  }
56
61
  },
57
62
  list: function (request, status, error) {
58
- this.prepend(requestToErrorList(request));
63
+ this.prepend(requestToErrorList.call(this, request));
59
64
  },
60
65
  dialog: function (request, status, error) {
61
- var $list = requestToErrorList(request);
62
- var dialogTmp = options.error.reporting.dialog.tmp;
66
+ var $list = requestToErrorList.call(this, request);
67
+ var dialogTmp = this.options.error.reporting.dialog.tmp;
63
68
  var $dialog = $(dialogTmp.replace(/{{content}}/, $list[0].outerHTML));
64
69
  $dialog.find('[data-ujsh-dialog-close]').on('click', dialogCloseHandler.bind($dialog));
65
70
  $('body').prepend($dialog);
@@ -67,13 +72,13 @@
67
72
  },
68
73
  success: {
69
74
  list: function (data, status, request) {
70
- var $list = $(options.error.reporting.list.tmp);
71
- var itemTmp = options.error.reporting.list.itemTmp;
75
+ var $list = $(this.options.error.reporting.list.tmp);
76
+ var itemTmp = this.options.error.reporting.list.itemTmp;
72
77
  $list.append(itemTmp.replace(/{{content}}/, data.notice));
73
78
  this.prepend($list);
74
79
  },
75
80
  dialog: function (data, status, request) {
76
- var dialogTmp = options.success.reporting.dialog.tmp;
81
+ var dialogTmp = this.options.success.reporting.dialog.tmp;
77
82
  var $dialog = $(dialogTmp.replace(/{{content}}/, data.notice));
78
83
  $dialog.find('[data-ujsh-dialog-close]').on('click', dialogCloseHandler.bind($dialog));
79
84
  $('body').prepend($dialog);
@@ -138,8 +143,8 @@
138
143
  function requestToErrorList (request) {
139
144
  var errors = parseErrors(request);
140
145
  var field, fieldErrors;
141
- var $list = $(options.error.reporting.list.tmp);
142
- var itemTmp = options.error.reporting.list.itemTmp;
146
+ var $list = $(this.options.error.reporting.list.tmp);
147
+ var itemTmp = this.options.error.reporting.list.itemTmp;
143
148
  var items = [];
144
149
 
145
150
  for (field in errors) {
@@ -173,59 +178,64 @@
173
178
  }
174
179
 
175
180
  function beforeHandler (e) {
176
- if (options.before.clear) {
177
- $('.ujsh-' + options.error.reporting.style).remove();
178
- if (options.error.reporting.style === HINT) {
181
+ if (this.options.before.clear) {
182
+ $('.ujsh-' + this.options.error.reporting.style).remove();
183
+ if (this.options.error.reporting.style === HINT) {
179
184
  this.find(
180
- 'input.' + options.error.className + ', ' +
181
- 'select.' + options.error.className + ', ' +
182
- 'textarea.' + options.error.className
183
- ).toggleClass(options.error.className, false);
185
+ 'input.' + this.options.error.className + ', ' +
186
+ 'select.' + this.options.error.className + ', ' +
187
+ 'textarea.' + this.options.error.className
188
+ ).toggleClass(this.options.error.className, false);
184
189
  }
185
190
 
186
- $('.ujsh-' + options.success.reporting.style).remove();
191
+ $('.ujsh-' + this.options.success.reporting.style).remove();
187
192
  }
188
193
  }
189
194
 
190
195
  function errorHandler (e, request, status, error) {
191
- if (typeof options.error.beforeFilter === 'function') {
192
- options.error.beforeFilter.call(this, e, request, status, error);
196
+ if (typeof this.options.error.beforeFilter === 'function') {
197
+ if (!this.options.error.beforeFilter.call(this, e, request, status, error)) {
198
+ return;
199
+ }
193
200
  }
194
- if (options.error.redirect) {
201
+ if (this.options.error.redirect) {
195
202
  return redirect(request);
196
203
  }
197
- reporters.error[options.error.reporting.style].call(this, request, status, error);
198
- if (typeof options.error.afterFilter === 'function') {
199
- options.error.afterFilter.call(this, e, request, status, error);
204
+ reporters.error[this.options.error.reporting.style].call(this, request, status, error);
205
+ if (typeof this.options.error.afterFilter === 'function') {
206
+ this.options.error.afterFilter.call(this, e, request, status, error);
200
207
  }
201
208
  }
202
209
 
203
210
  function successHandler (e, data, status, request) {
204
- if (typeof options.success.beforeFilter === 'function') {
205
- options.success.beforeFilter.call(this, e, data, status, request);
211
+ if (typeof this.options.success.beforeFilter === 'function') {
212
+ if (!this.options.success.beforeFilter.call(this, e, data, status, request)) {
213
+ return;
214
+ }
206
215
  }
207
- if (options.success.redirect) {
216
+ if (this.options.success.redirect) {
208
217
  return redirect(request);
209
218
  }
210
- reporters.success[options.success.reporting.style].call(this, data, status, request);
211
- if (typeof options.success.afterFilter === 'function') {
212
- options.success.afterFilter.call(this, e, data, status, request);
219
+ reporters.success[this.options.success.reporting.style].call(this, data, status, request);
220
+ if (typeof this.options.success.afterFilter === 'function') {
221
+ this.options.success.afterFilter.call(this, e, data, status, request);
213
222
  }
214
223
  }
215
224
 
216
- options = $.extend(true, defaultOptions, options || {});
217
- if (this.data('error-redirect')) options.error.redirect = this.data('error-redirect')
218
- if (this.data('success-redirect')) options.success.redirect = this.data('success-redirect')
219
- if (this.data('error-reporting-style')) options.error.reporting.style = this.data('error-reporting-style')
220
- if (this.data('success-reporting-style')) options.error.reporting.style = this.data('success-reporting-style')
225
+ return this.each(function() {
226
+ var $element = $(this),
227
+ element = this;
221
228
 
222
- if (!options.before.disable) this.on('ajax:before', options.before.handler.bind(this));
223
- if (!options.error.disable) this.on('ajax:error', options.error.handler.bind(this));
224
- if (!options.success.disable) this.on('ajax:success', options.success.handler.bind(this));
229
+ $element.options = $.extend(true, {}, defaultOptions, options || {});
225
230
 
226
- this.options = options;
227
- this.defaultOptions = defaultOptions;
231
+ if ($element.data('error-redirect')) $element.options.error.redirect = $element.data('error-redirect')
232
+ if ($element.data('success-redirect')) $element.options.success.redirect = $element.data('success-redirect')
233
+ if ($element.data('error-reporting-style')) $element.options.error.reporting.style = $element.data('error-reporting-style')
234
+ if ($element.data('success-reporting-style')) $element.options.error.reporting.style = $element.data('success-reporting-style')
228
235
 
229
- return this;
236
+ if (!$element.options.before.disable) $element.on('ajax:before', $element.options.before.handler.bind($element));
237
+ if (!$element.options.error.disable) $element.on('ajax:error', $element.options.error.handler.bind($element));
238
+ if (!$element.options.success.disable) $element.on('ajax:success', $element.options.success.handler.bind($element));
239
+ });
230
240
  }
231
241
  })( jQuery );
@@ -1,3 +1,3 @@
1
1
  module JqueryUjsHandlers
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery_ujs_handlers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Onur Uyar