Skip to content

Commit c21cefa

Browse files
committed
Added support for switching extensions off for certain request
1 parent 2307880 commit c21cefa

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

nette.ajax.js

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@ var nette = function () {
3030
fire: function () {
3131
var result = true;
3232
var args = Array.prototype.slice.call(arguments);
33-
var name = args.shift();
33+
var props = args.shift();
34+
var name = (typeof props == 'string') ? props : props.name;
35+
var off = (typeof props == 'object') ? props.off || {} : {};
3436
args.push(inner.self);
3537
$.each(inner.on[name], function (index, reaction) {
36-
if (reaction === undefined) return true;
38+
if (reaction === undefined || $.inArray(index, off) !== -1) return true;
3739
var temp = reaction.apply(inner.contexts[index], args);
3840
return result = (temp === undefined || temp);
3941
});
@@ -169,20 +171,40 @@ var nette = function () {
169171
if (!settings.type) {
170172
settings.type = analyze.form ? analyze.form.attr('method') : 'get';
171173
}
174+
175+
if ($el.is('[data-ajax-off]')) {
176+
settings.off = $el.data('ajaxOff');
177+
if (typeof settings.off == 'string') setting.off = [settings.off];
178+
}
172179
}
173180

174-
if (!inner.fire('before', settings, ui, e)) return;
181+
if (!inner.fire({
182+
name: 'before',
183+
off: settings.off || {}
184+
}, settings, ui, e)) return;
175185

176186
return $.ajax($.extend({
177187
beforeSend: function (xhr) {
178-
return inner.fire('start', xhr);
188+
return inner.fire({
189+
name: 'start',
190+
off: settings.off || {}
191+
}, xhr);
179192
}
180193
}, settings)).done(function (payload) {
181-
inner.fire('success', payload);
194+
inner.fire({
195+
name: 'success',
196+
off: settings.off || {}
197+
}, payload);
182198
}).fail(function (xhr, status, error) {
183-
inner.fire('error', xhr, status, error);
199+
inner.fire({
200+
name :'error',
201+
off: settings.off || {}
202+
}, xhr, status, error);
184203
}).always(function () {
185-
inner.fire('complete');
204+
inner.fire({
205+
name: 'complete',
206+
off: settings.off || {}
207+
});
186208
});
187209
};
188210
};

0 commit comments

Comments
 (0)