|
|
- (function($K)
- {
- $K.add('module', 'magicquery', {
- init: function(app, context)
- {
- this.app = app;
- this.response = app.response;
-
- // defaults
- var defaults = {
- url: false
- };
-
- // context
- this.context = context;
- this.params = context.getParams(defaults);
- this.$element = context.getElement();
- },
- // public
- start: function()
- {
- this.$element.on('click.kube.magicquery', this._send.bind(this));
- },
- stop: function()
- {
- this._enable();
- this.$element.off('.kube.magicquery');
- },
-
- // private
- _disable: function()
- {
- this.$element.attr('disabled', true);
- },
- _enable: function()
- {
- this.$element.removeAttr('disabled');
- },
- _send: function(e)
- {
- e.preventDefault();
- this._disable();
-
- $K.ajax.post({
- url: this.params.url,
- success: this._parse.bind(this)
- });
- },
- _parse: function(data)
- {
- this._enable();
-
- var json = this.response.parse(data);
- if (json)
- {
- this.app.broadcast('magicquery.success', this, json);
- }
- },
- });
- })(Kube);
|