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);
|