UNPKG

1.63 kBJavaScriptView Raw
1(function() {
2 var View, ajax_request,
3 __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
4
5 ajax_request = require("./ajax_request");
6
7 View = (function() {
8 function View(model) {
9 this.model = model;
10 this.failResponse = __bind(this.failResponse, this);
11 this.recordsResponse = __bind(this.recordsResponse, this);
12 }
13
14 View.prototype.call = function(name, values, options) {
15 var params;
16 if (options == null) {
17 options = {};
18 }
19 options.url = this.model.url() + "/views/" + name;
20 params = {
21 query: values
22 };
23 ajax_request.queueRequest.get(params, options).end((function(_this) {
24 return function(err, res) {
25 if (err) {
26 return _this.failResponse(err, options);
27 } else if (res.status >= 400) {
28 return _this.failResponse(res.text, options);
29 }
30 return _this.recordsResponse(res.body, options);
31 };
32 })(this));
33 return true;
34 };
35
36 View.prototype.recordsResponse = function(data, options) {
37 var _ref;
38 this.model.trigger('ajaxSuccess', data);
39 this.model.trigger('viewSuccess', data);
40 return (_ref = options.done) != null ? _ref.apply(this.model, [data]) : void 0;
41 };
42
43 View.prototype.failResponse = function(error, options) {
44 var _ref;
45 this.model.trigger('ajaxError', error);
46 this.model.trigger('viewError', error);
47 return (_ref = options.fail) != null ? _ref.apply(this.model, [error]) : void 0;
48 };
49
50 return View;
51
52 })();
53
54 module.exports = View;
55
56}).call(this);