jellyfish 0.9.2 → 1.0.0
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 +4 -4
- data/.gitignore +1 -2
- data/.travis.yml +3 -5
- data/CHANGES.md +18 -0
- data/Gemfile +10 -1
- data/README.md +121 -22
- data/Rakefile +6 -15
- data/config.ru +105 -0
- data/jellyfish.gemspec +21 -24
- data/lib/jellyfish.rb +24 -17
- data/lib/jellyfish/json.rb +64 -0
- data/lib/jellyfish/multi_actions.rb +1 -1
- data/lib/jellyfish/swagger.rb +166 -0
- data/lib/jellyfish/test.rb +4 -1
- data/lib/jellyfish/version.rb +1 -1
- data/public/css/screen.css +1070 -0
- data/public/index.html +45 -0
- data/public/js/shred.bundle.js +2765 -0
- data/public/js/shred/content.js +193 -0
- data/public/js/swagger-ui.js +2116 -0
- data/public/js/swagger.js +1400 -0
- data/task/README.md +54 -0
- data/task/gemgem.rb +151 -157
- data/test/sinatra/test_error.rb +31 -4
- data/test/test_from_readme.rb +2 -1
- data/test/test_log.rb +42 -0
- data/test/test_misc.rb +24 -0
- data/test/test_swagger.rb +131 -0
- data/test/test_threads.rb +1 -1
- metadata +25 -52
- data/task/.gitignore +0 -1
@@ -0,0 +1,193 @@
|
|
1
|
+
|
2
|
+
// The purpose of the `Content` object is to abstract away the data conversions
|
3
|
+
// to and from raw content entities as strings. For example, you want to be able
|
4
|
+
// to pass in a Javascript object and have it be automatically converted into a
|
5
|
+
// JSON string if the `content-type` is set to a JSON-based media type.
|
6
|
+
// Conversely, you want to be able to transparently get back a Javascript object
|
7
|
+
// in the response if the `content-type` is a JSON-based media-type.
|
8
|
+
|
9
|
+
// One limitation of the current implementation is that it [assumes the `charset` is UTF-8](https://github.com/spire-io/shred/issues/5).
|
10
|
+
|
11
|
+
// The `Content` constructor takes an options object, which *must* have either a
|
12
|
+
// `body` or `data` property and *may* have a `type` property indicating the
|
13
|
+
// media type. If there is no `type` attribute, a default will be inferred.
|
14
|
+
var Content = function(options) {
|
15
|
+
this.body = options.body;
|
16
|
+
this.data = options.data;
|
17
|
+
this.type = options.type;
|
18
|
+
};
|
19
|
+
|
20
|
+
Content.prototype = {
|
21
|
+
// Treat `toString()` as asking for the `content.body`. That is, the raw content entity.
|
22
|
+
//
|
23
|
+
// toString: function() { return this.body; }
|
24
|
+
//
|
25
|
+
// Commented out, but I've forgotten why. :/
|
26
|
+
};
|
27
|
+
|
28
|
+
|
29
|
+
// `Content` objects have the following attributes:
|
30
|
+
Object.defineProperties(Content.prototype,{
|
31
|
+
|
32
|
+
// - **type**. Typically accessed as `content.type`, reflects the `content-type`
|
33
|
+
// header associated with the request or response. If not passed as an options
|
34
|
+
// to the constructor or set explicitly, it will infer the type the `data`
|
35
|
+
// attribute, if possible, and, failing that, will default to `text/plain`.
|
36
|
+
type: {
|
37
|
+
get: function() {
|
38
|
+
if (this._type) {
|
39
|
+
return this._type;
|
40
|
+
} else {
|
41
|
+
if (this._data) {
|
42
|
+
switch(typeof this._data) {
|
43
|
+
case "string": return "text/plain";
|
44
|
+
case "object": return "application/json";
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
return "text/plain";
|
49
|
+
},
|
50
|
+
set: function(value) {
|
51
|
+
this._type = value;
|
52
|
+
return this;
|
53
|
+
},
|
54
|
+
enumerable: true
|
55
|
+
},
|
56
|
+
|
57
|
+
// - **data**. Typically accessed as `content.data`, reflects the content entity
|
58
|
+
// converted into Javascript data. This can be a string, if the `type` is, say,
|
59
|
+
// `text/plain`, but can also be a Javascript object. The conversion applied is
|
60
|
+
// based on the `processor` attribute. The `data` attribute can also be set
|
61
|
+
// directly, in which case the conversion will be done the other way, to infer
|
62
|
+
// the `body` attribute.
|
63
|
+
data: {
|
64
|
+
get: function() {
|
65
|
+
if (this._body) {
|
66
|
+
return this.processor.parser(this._body);
|
67
|
+
} else {
|
68
|
+
return this._data;
|
69
|
+
}
|
70
|
+
},
|
71
|
+
set: function(data) {
|
72
|
+
if (this._body&&data) Errors.setDataWithBody(this);
|
73
|
+
this._data = data;
|
74
|
+
return this;
|
75
|
+
},
|
76
|
+
enumerable: true
|
77
|
+
},
|
78
|
+
|
79
|
+
// - **body**. Typically accessed as `content.body`, reflects the content entity
|
80
|
+
// as a UTF-8 string. It is the mirror of the `data` attribute. If you set the
|
81
|
+
// `data` attribute, the `body` attribute will be inferred and vice-versa. If
|
82
|
+
// you attempt to set both, an exception is raised.
|
83
|
+
body: {
|
84
|
+
get: function() {
|
85
|
+
if (this._data) {
|
86
|
+
return this.processor.stringify(this._data);
|
87
|
+
} else {
|
88
|
+
return this._body.toString();
|
89
|
+
}
|
90
|
+
},
|
91
|
+
set: function(body) {
|
92
|
+
if (this._data&&body) Errors.setBodyWithData(this);
|
93
|
+
this._body = body;
|
94
|
+
return this;
|
95
|
+
},
|
96
|
+
enumerable: true
|
97
|
+
},
|
98
|
+
|
99
|
+
// - **processor**. The functions that will be used to convert to/from `data` and
|
100
|
+
// `body` attributes. You can add processors. The two that are built-in are for
|
101
|
+
// `text/plain`, which is basically an identity transformation and
|
102
|
+
// `application/json` and other JSON-based media types (including custom media
|
103
|
+
// types with `+json`). You can add your own processors. See below.
|
104
|
+
processor: {
|
105
|
+
get: function() {
|
106
|
+
var processor = Content.processors[this.type];
|
107
|
+
if (processor) {
|
108
|
+
return processor;
|
109
|
+
} else {
|
110
|
+
// Return the first processor that matches any part of the
|
111
|
+
// content type. ex: application/vnd.foobar.baz+json will match json.
|
112
|
+
var main = this.type.split(";")[0];
|
113
|
+
var parts = main.split(/\+|\//);
|
114
|
+
for (var i=0, l=parts.length; i < l; i++) {
|
115
|
+
processor = Content.processors[parts[i]]
|
116
|
+
}
|
117
|
+
return processor || {parser:identity,stringify:toString};
|
118
|
+
}
|
119
|
+
},
|
120
|
+
enumerable: true
|
121
|
+
},
|
122
|
+
|
123
|
+
// - **length**. Typically accessed as `content.length`, returns the length in
|
124
|
+
// bytes of the raw content entity.
|
125
|
+
length: {
|
126
|
+
get: function() {
|
127
|
+
if (typeof Buffer !== 'undefined') {
|
128
|
+
return Buffer.byteLength(this.body);
|
129
|
+
}
|
130
|
+
return this.body.length;
|
131
|
+
}
|
132
|
+
}
|
133
|
+
});
|
134
|
+
|
135
|
+
Content.processors = {};
|
136
|
+
|
137
|
+
// The `registerProcessor` function allows you to add your own processors to
|
138
|
+
// convert content entities. Each processor consists of a Javascript object with
|
139
|
+
// two properties:
|
140
|
+
// - **parser**. The function used to parse a raw content entity and convert it
|
141
|
+
// into a Javascript data type.
|
142
|
+
// - **stringify**. The function used to convert a Javascript data type into a
|
143
|
+
// raw content entity.
|
144
|
+
Content.registerProcessor = function(types,processor) {
|
145
|
+
|
146
|
+
// You can pass an array of types that will trigger this processor, or just one.
|
147
|
+
// We determine the array via duck-typing here.
|
148
|
+
if (types.forEach) {
|
149
|
+
types.forEach(function(type) {
|
150
|
+
Content.processors[type] = processor;
|
151
|
+
});
|
152
|
+
} else {
|
153
|
+
// If you didn't pass an array, we just use what you pass in.
|
154
|
+
Content.processors[types] = processor;
|
155
|
+
}
|
156
|
+
};
|
157
|
+
|
158
|
+
// Register the identity processor, which is used for text-based media types.
|
159
|
+
var identity = function(x) { return x; }
|
160
|
+
, toString = function(x) { return x.toString(); }
|
161
|
+
Content.registerProcessor(
|
162
|
+
["text/html","text/plain","text"],
|
163
|
+
{ parser: identity, stringify: toString });
|
164
|
+
|
165
|
+
// Register the JSON processor, which is used for JSON-based media types.
|
166
|
+
Content.registerProcessor(
|
167
|
+
["application/json; charset=utf-8","application/json","json"],
|
168
|
+
{
|
169
|
+
parser: function(string) {
|
170
|
+
return JSON.parse(string);
|
171
|
+
},
|
172
|
+
stringify: function(data) {
|
173
|
+
return JSON.stringify(data); }});
|
174
|
+
|
175
|
+
var qs = require('querystring');
|
176
|
+
// Register the post processor, which is used for JSON-based media types.
|
177
|
+
Content.registerProcessor(
|
178
|
+
["application/x-www-form-urlencoded"],
|
179
|
+
{ parser : qs.parse, stringify : qs.stringify });
|
180
|
+
|
181
|
+
// Error functions are defined separately here in an attempt to make the code
|
182
|
+
// easier to read.
|
183
|
+
var Errors = {
|
184
|
+
setDataWithBody: function(object) {
|
185
|
+
throw new Error("Attempt to set data attribute of a content object " +
|
186
|
+
"when the body attributes was already set.");
|
187
|
+
},
|
188
|
+
setBodyWithData: function(object) {
|
189
|
+
throw new Error("Attempt to set body attribute of a content object " +
|
190
|
+
"when the data attributes was already set.");
|
191
|
+
}
|
192
|
+
}
|
193
|
+
module.exports = Content;
|
@@ -0,0 +1,2116 @@
|
|
1
|
+
$(function() {
|
2
|
+
|
3
|
+
// Helper function for vertically aligning DOM elements
|
4
|
+
// http://www.seodenver.com/simple-vertical-align-plugin-for-jquery/
|
5
|
+
$.fn.vAlign = function() {
|
6
|
+
return this.each(function(i){
|
7
|
+
var ah = $(this).height();
|
8
|
+
var ph = $(this).parent().height();
|
9
|
+
var mh = (ph - ah) / 2;
|
10
|
+
$(this).css('margin-top', mh);
|
11
|
+
});
|
12
|
+
};
|
13
|
+
|
14
|
+
$.fn.stretchFormtasticInputWidthToParent = function() {
|
15
|
+
return this.each(function(i){
|
16
|
+
var p_width = $(this).closest("form").innerWidth();
|
17
|
+
var p_padding = parseInt($(this).closest("form").css('padding-left') ,10) + parseInt($(this).closest("form").css('padding-right'), 10);
|
18
|
+
var this_padding = parseInt($(this).css('padding-left'), 10) + parseInt($(this).css('padding-right'), 10);
|
19
|
+
$(this).css('width', p_width - p_padding - this_padding);
|
20
|
+
});
|
21
|
+
};
|
22
|
+
|
23
|
+
$('form.formtastic li.string input, form.formtastic textarea').stretchFormtasticInputWidthToParent();
|
24
|
+
|
25
|
+
// Vertically center these paragraphs
|
26
|
+
// Parent may need a min-height for this to work..
|
27
|
+
$('ul.downplayed li div.content p').vAlign();
|
28
|
+
|
29
|
+
// When a sandbox form is submitted..
|
30
|
+
$("form.sandbox").submit(function(){
|
31
|
+
|
32
|
+
var error_free = true;
|
33
|
+
|
34
|
+
// Cycle through the forms required inputs
|
35
|
+
$(this).find("input.required").each(function() {
|
36
|
+
|
37
|
+
// Remove any existing error styles from the input
|
38
|
+
$(this).removeClass('error');
|
39
|
+
|
40
|
+
// Tack the error style on if the input is empty..
|
41
|
+
if ($(this).val() == '') {
|
42
|
+
$(this).addClass('error');
|
43
|
+
$(this).wiggle();
|
44
|
+
error_free = false;
|
45
|
+
}
|
46
|
+
|
47
|
+
});
|
48
|
+
|
49
|
+
return error_free;
|
50
|
+
});
|
51
|
+
|
52
|
+
});
|
53
|
+
|
54
|
+
function clippyCopiedCallback(a) {
|
55
|
+
$('#api_key_copied').fadeIn().delay(1000).fadeOut();
|
56
|
+
|
57
|
+
// var b = $("#clippy_tooltip_" + a);
|
58
|
+
// b.length != 0 && (b.attr("title", "copied!").trigger("tipsy.reload"), setTimeout(function() {
|
59
|
+
// b.attr("title", "copy to clipboard")
|
60
|
+
// },
|
61
|
+
// 500))
|
62
|
+
}
|
63
|
+
|
64
|
+
// Logging function that accounts for browsers that don't have window.console
|
65
|
+
log = function(){
|
66
|
+
log.history = log.history || [];
|
67
|
+
log.history.push(arguments);
|
68
|
+
if(this.console){
|
69
|
+
console.log( Array.prototype.slice.call(arguments) );
|
70
|
+
}
|
71
|
+
};
|
72
|
+
|
73
|
+
// Handle browsers that do console incorrectly (IE9 and below, see http://stackoverflow.com/a/5539378/7913)
|
74
|
+
if (Function.prototype.bind && console && typeof console.log == "object") {
|
75
|
+
[
|
76
|
+
"log","info","warn","error","assert","dir","clear","profile","profileEnd"
|
77
|
+
].forEach(function (method) {
|
78
|
+
console[method] = this.bind(console[method], console);
|
79
|
+
}, Function.prototype.call);
|
80
|
+
}
|
81
|
+
|
82
|
+
var Docs = {
|
83
|
+
|
84
|
+
shebang: function() {
|
85
|
+
|
86
|
+
// If shebang has an operation nickname in it..
|
87
|
+
// e.g. /docs/#!/words/get_search
|
88
|
+
var fragments = $.param.fragment().split('/');
|
89
|
+
fragments.shift(); // get rid of the bang
|
90
|
+
|
91
|
+
switch (fragments.length) {
|
92
|
+
case 1:
|
93
|
+
// Expand all operations for the resource and scroll to it
|
94
|
+
log('shebang resource:' + fragments[0]);
|
95
|
+
var dom_id = 'resource_' + fragments[0];
|
96
|
+
|
97
|
+
Docs.expandEndpointListForResource(fragments[0]);
|
98
|
+
$("#"+dom_id).slideto({highlight: false});
|
99
|
+
break;
|
100
|
+
case 2:
|
101
|
+
// Refer to the endpoint DOM element, e.g. #words_get_search
|
102
|
+
log('shebang endpoint: ' + fragments.join('_'));
|
103
|
+
|
104
|
+
// Expand Resource
|
105
|
+
Docs.expandEndpointListForResource(fragments[0]);
|
106
|
+
$("#"+dom_id).slideto({highlight: false});
|
107
|
+
|
108
|
+
// Expand operation
|
109
|
+
var li_dom_id = fragments.join('_');
|
110
|
+
var li_content_dom_id = li_dom_id + "_content";
|
111
|
+
|
112
|
+
log("li_dom_id " + li_dom_id);
|
113
|
+
log("li_content_dom_id " + li_content_dom_id);
|
114
|
+
|
115
|
+
Docs.expandOperation($('#'+li_content_dom_id));
|
116
|
+
$('#'+li_dom_id).slideto({highlight: false});
|
117
|
+
break;
|
118
|
+
}
|
119
|
+
|
120
|
+
},
|
121
|
+
|
122
|
+
toggleEndpointListForResource: function(resource) {
|
123
|
+
var elem = $('li#resource_' + Docs.escapeResourceName(resource) + ' ul.endpoints');
|
124
|
+
if (elem.is(':visible')) {
|
125
|
+
Docs.collapseEndpointListForResource(resource);
|
126
|
+
} else {
|
127
|
+
Docs.expandEndpointListForResource(resource);
|
128
|
+
}
|
129
|
+
},
|
130
|
+
|
131
|
+
// Expand resource
|
132
|
+
expandEndpointListForResource: function(resource) {
|
133
|
+
var resource = Docs.escapeResourceName(resource);
|
134
|
+
if (resource == '') {
|
135
|
+
$('.resource ul.endpoints').slideDown();
|
136
|
+
return;
|
137
|
+
}
|
138
|
+
|
139
|
+
$('li#resource_' + resource).addClass('active');
|
140
|
+
|
141
|
+
var elem = $('li#resource_' + resource + ' ul.endpoints');
|
142
|
+
elem.slideDown();
|
143
|
+
},
|
144
|
+
|
145
|
+
// Collapse resource and mark as explicitly closed
|
146
|
+
collapseEndpointListForResource: function(resource) {
|
147
|
+
var resource = Docs.escapeResourceName(resource);
|
148
|
+
$('li#resource_' + resource).removeClass('active');
|
149
|
+
|
150
|
+
var elem = $('li#resource_' + resource + ' ul.endpoints');
|
151
|
+
elem.slideUp();
|
152
|
+
},
|
153
|
+
|
154
|
+
expandOperationsForResource: function(resource) {
|
155
|
+
// Make sure the resource container is open..
|
156
|
+
Docs.expandEndpointListForResource(resource);
|
157
|
+
|
158
|
+
if (resource == '') {
|
159
|
+
$('.resource ul.endpoints li.operation div.content').slideDown();
|
160
|
+
return;
|
161
|
+
}
|
162
|
+
|
163
|
+
$('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() {
|
164
|
+
Docs.expandOperation($(this));
|
165
|
+
});
|
166
|
+
},
|
167
|
+
|
168
|
+
collapseOperationsForResource: function(resource) {
|
169
|
+
// Make sure the resource container is open..
|
170
|
+
Docs.expandEndpointListForResource(resource);
|
171
|
+
|
172
|
+
$('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() {
|
173
|
+
Docs.collapseOperation($(this));
|
174
|
+
});
|
175
|
+
},
|
176
|
+
|
177
|
+
escapeResourceName: function(resource) {
|
178
|
+
return resource.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g, "\\$&");
|
179
|
+
},
|
180
|
+
|
181
|
+
expandOperation: function(elem) {
|
182
|
+
elem.slideDown();
|
183
|
+
},
|
184
|
+
|
185
|
+
collapseOperation: function(elem) {
|
186
|
+
elem.slideUp();
|
187
|
+
}
|
188
|
+
};(function() {
|
189
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
190
|
+
templates['content_type'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
191
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
192
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
193
|
+
var buffer = "", stack1, functionType="function", self=this;
|
194
|
+
|
195
|
+
function program1(depth0,data) {
|
196
|
+
|
197
|
+
var buffer = "", stack1;
|
198
|
+
buffer += "\n ";
|
199
|
+
stack1 = helpers.each.call(depth0, depth0.produces, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
|
200
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
201
|
+
buffer += "\n";
|
202
|
+
return buffer;
|
203
|
+
}
|
204
|
+
function program2(depth0,data) {
|
205
|
+
|
206
|
+
var buffer = "", stack1;
|
207
|
+
buffer += "\n <option value=\"";
|
208
|
+
stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
|
209
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
210
|
+
buffer += "\">";
|
211
|
+
stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
|
212
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
213
|
+
buffer += "</option>\n ";
|
214
|
+
return buffer;
|
215
|
+
}
|
216
|
+
|
217
|
+
function program4(depth0,data) {
|
218
|
+
|
219
|
+
|
220
|
+
return "\n <option value=\"application/json\">application/json</option>\n";
|
221
|
+
}
|
222
|
+
|
223
|
+
buffer += "<label for=\"contentType\"></label>\n<select name=\"contentType\">\n";
|
224
|
+
stack1 = helpers['if'].call(depth0, depth0.produces, {hash:{},inverse:self.program(4, program4, data),fn:self.program(1, program1, data),data:data});
|
225
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
226
|
+
buffer += "\n</select>\n";
|
227
|
+
return buffer;
|
228
|
+
});
|
229
|
+
})();
|
230
|
+
|
231
|
+
(function() {
|
232
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
233
|
+
templates['main'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
234
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
235
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
236
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
237
|
+
|
238
|
+
function program1(depth0,data) {
|
239
|
+
|
240
|
+
var buffer = "", stack1, stack2;
|
241
|
+
buffer += "\n <div class=\"info_title\">"
|
242
|
+
+ escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.title)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
243
|
+
+ "</div>\n <div class=\"info_description\">";
|
244
|
+
stack2 = ((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.description)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1);
|
245
|
+
if(stack2 || stack2 === 0) { buffer += stack2; }
|
246
|
+
buffer += "</div>\n ";
|
247
|
+
stack2 = helpers['if'].call(depth0, ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.termsOfServiceUrl), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
|
248
|
+
if(stack2 || stack2 === 0) { buffer += stack2; }
|
249
|
+
buffer += "\n ";
|
250
|
+
stack2 = helpers['if'].call(depth0, ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.contact), {hash:{},inverse:self.noop,fn:self.program(4, program4, data),data:data});
|
251
|
+
if(stack2 || stack2 === 0) { buffer += stack2; }
|
252
|
+
buffer += "\n ";
|
253
|
+
stack2 = helpers['if'].call(depth0, ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.license), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});
|
254
|
+
if(stack2 || stack2 === 0) { buffer += stack2; }
|
255
|
+
buffer += "\n ";
|
256
|
+
return buffer;
|
257
|
+
}
|
258
|
+
function program2(depth0,data) {
|
259
|
+
|
260
|
+
var buffer = "", stack1;
|
261
|
+
buffer += "<div class=\"info_tos\"><a href=\""
|
262
|
+
+ escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.termsOfServiceUrl)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
263
|
+
+ "\">Terms of service</a></div>";
|
264
|
+
return buffer;
|
265
|
+
}
|
266
|
+
|
267
|
+
function program4(depth0,data) {
|
268
|
+
|
269
|
+
var buffer = "", stack1;
|
270
|
+
buffer += "<div class='info_contact'><a href=\"mailto:"
|
271
|
+
+ escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.contact)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
272
|
+
+ "\">Contact the developer</a></div>";
|
273
|
+
return buffer;
|
274
|
+
}
|
275
|
+
|
276
|
+
function program6(depth0,data) {
|
277
|
+
|
278
|
+
var buffer = "", stack1;
|
279
|
+
buffer += "<div class='info_license'><a href='"
|
280
|
+
+ escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.licenseUrl)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
281
|
+
+ "'>"
|
282
|
+
+ escapeExpression(((stack1 = ((stack1 = depth0.info),stack1 == null || stack1 === false ? stack1 : stack1.license)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
283
|
+
+ "</a></div>";
|
284
|
+
return buffer;
|
285
|
+
}
|
286
|
+
|
287
|
+
function program8(depth0,data) {
|
288
|
+
|
289
|
+
var buffer = "", stack1;
|
290
|
+
buffer += "\n , <span style=\"font-variant: small-caps\">api version</span>: ";
|
291
|
+
if (stack1 = helpers.apiVersion) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
292
|
+
else { stack1 = depth0.apiVersion; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
293
|
+
buffer += escapeExpression(stack1)
|
294
|
+
+ "\n ";
|
295
|
+
return buffer;
|
296
|
+
}
|
297
|
+
|
298
|
+
buffer += "<div class='info' id='api_info'>\n ";
|
299
|
+
stack1 = helpers['if'].call(depth0, depth0.info, {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
300
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
301
|
+
buffer += "\n</div>\n<div class='container' id='resources_container'>\n <ul id='resources'>\n </ul>\n\n <div class=\"footer\">\n <br>\n <br>\n <h4 style=\"color: #999\">[ <span style=\"font-variant: small-caps\">base url</span>: ";
|
302
|
+
if (stack1 = helpers.basePath) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
303
|
+
else { stack1 = depth0.basePath; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
304
|
+
buffer += escapeExpression(stack1)
|
305
|
+
+ "\n ";
|
306
|
+
stack1 = helpers['if'].call(depth0, depth0.apiVersion, {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});
|
307
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
308
|
+
buffer += "]</h4>\n </div>\n</div>\n";
|
309
|
+
return buffer;
|
310
|
+
});
|
311
|
+
})();
|
312
|
+
|
313
|
+
(function() {
|
314
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
315
|
+
templates['operation'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
316
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
317
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
318
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
319
|
+
|
320
|
+
function program1(depth0,data) {
|
321
|
+
|
322
|
+
var buffer = "", stack1;
|
323
|
+
buffer += "\n <h4>Implementation Notes</h4>\n <p>";
|
324
|
+
if (stack1 = helpers.notes) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
325
|
+
else { stack1 = depth0.notes; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
326
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
327
|
+
buffer += "</p>\n ";
|
328
|
+
return buffer;
|
329
|
+
}
|
330
|
+
|
331
|
+
function program3(depth0,data) {
|
332
|
+
|
333
|
+
|
334
|
+
return "\n <h4>Response Class</h4>\n <p><span class=\"model-signature\" /></p>\n <br/>\n <div class=\"response-content-type\" />\n ";
|
335
|
+
}
|
336
|
+
|
337
|
+
function program5(depth0,data) {
|
338
|
+
|
339
|
+
|
340
|
+
return "\n <h4>Parameters</h4>\n <table class='fullwidth'>\n <thead>\n <tr>\n <th style=\"width: 100px; max-width: 100px\">Parameter</th>\n <th style=\"width: 310px; max-width: 310px\">Value</th>\n <th style=\"width: 200px; max-width: 200px\">Description</th>\n <th style=\"width: 100px; max-width: 100px\">Parameter Type</th>\n <th style=\"width: 220px; max-width: 230px\">Data Type</th>\n </tr>\n </thead>\n <tbody class=\"operation-params\">\n\n </tbody>\n </table>\n ";
|
341
|
+
}
|
342
|
+
|
343
|
+
function program7(depth0,data) {
|
344
|
+
|
345
|
+
|
346
|
+
return "\n <div style='margin:0;padding:0;display:inline'></div>\n <h4>Error Status Codes</h4>\n <table class='fullwidth'>\n <thead>\n <tr>\n <th>HTTP Status Code</th>\n <th>Reason</th>\n </tr>\n </thead>\n <tbody class=\"operation-status\">\n \n </tbody>\n </table>\n ";
|
347
|
+
}
|
348
|
+
|
349
|
+
function program9(depth0,data) {
|
350
|
+
|
351
|
+
|
352
|
+
return "\n ";
|
353
|
+
}
|
354
|
+
|
355
|
+
function program11(depth0,data) {
|
356
|
+
|
357
|
+
|
358
|
+
return "\n <div class='sandbox_header'>\n <input class='submit' name='commit' type='button' value='Try it out!' />\n <a href='#' class='response_hider' style='display:none'>Hide Response</a>\n <img alt='Throbber' class='response_throbber' src='images/throbber.gif' style='display:none' />\n </div>\n ";
|
359
|
+
}
|
360
|
+
|
361
|
+
buffer += "\n <ul class='operations' >\n <li class='";
|
362
|
+
if (stack1 = helpers.method) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
363
|
+
else { stack1 = depth0.method; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
364
|
+
buffer += escapeExpression(stack1)
|
365
|
+
+ " operation' id='";
|
366
|
+
if (stack1 = helpers.parentId) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
367
|
+
else { stack1 = depth0.parentId; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
368
|
+
buffer += escapeExpression(stack1)
|
369
|
+
+ "_";
|
370
|
+
if (stack1 = helpers.nickname) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
371
|
+
else { stack1 = depth0.nickname; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
372
|
+
buffer += escapeExpression(stack1)
|
373
|
+
+ "'>\n <div class='heading'>\n <h3>\n <span class='http_method'>\n <a href='#!/";
|
374
|
+
if (stack1 = helpers.parentId) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
375
|
+
else { stack1 = depth0.parentId; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
376
|
+
buffer += escapeExpression(stack1)
|
377
|
+
+ "/";
|
378
|
+
if (stack1 = helpers.nickname) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
379
|
+
else { stack1 = depth0.nickname; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
380
|
+
buffer += escapeExpression(stack1)
|
381
|
+
+ "' class=\"toggleOperation\">";
|
382
|
+
if (stack1 = helpers.method) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
383
|
+
else { stack1 = depth0.method; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
384
|
+
buffer += escapeExpression(stack1)
|
385
|
+
+ "</a>\n </span>\n <span class='path'>\n <a href='#!/";
|
386
|
+
if (stack1 = helpers.parentId) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
387
|
+
else { stack1 = depth0.parentId; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
388
|
+
buffer += escapeExpression(stack1)
|
389
|
+
+ "/";
|
390
|
+
if (stack1 = helpers.nickname) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
391
|
+
else { stack1 = depth0.nickname; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
392
|
+
buffer += escapeExpression(stack1)
|
393
|
+
+ "' class=\"toggleOperation\">";
|
394
|
+
if (stack1 = helpers.path) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
395
|
+
else { stack1 = depth0.path; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
396
|
+
buffer += escapeExpression(stack1)
|
397
|
+
+ "</a>\n </span>\n </h3>\n <ul class='options'>\n <li>\n <a href='#!/";
|
398
|
+
if (stack1 = helpers.parentId) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
399
|
+
else { stack1 = depth0.parentId; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
400
|
+
buffer += escapeExpression(stack1)
|
401
|
+
+ "/";
|
402
|
+
if (stack1 = helpers.nickname) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
403
|
+
else { stack1 = depth0.nickname; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
404
|
+
buffer += escapeExpression(stack1)
|
405
|
+
+ "' class=\"toggleOperation\">";
|
406
|
+
if (stack1 = helpers.summary) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
407
|
+
else { stack1 = depth0.summary; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
408
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
409
|
+
buffer += "</a>\n </li>\n </ul>\n </div>\n <div class='content' id='";
|
410
|
+
if (stack1 = helpers.parentId) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
411
|
+
else { stack1 = depth0.parentId; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
412
|
+
buffer += escapeExpression(stack1)
|
413
|
+
+ "_";
|
414
|
+
if (stack1 = helpers.nickname) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
415
|
+
else { stack1 = depth0.nickname; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
416
|
+
buffer += escapeExpression(stack1)
|
417
|
+
+ "_content' style='display:none'>\n ";
|
418
|
+
stack1 = helpers['if'].call(depth0, depth0.notes, {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
419
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
420
|
+
buffer += "\n ";
|
421
|
+
stack1 = helpers['if'].call(depth0, depth0.type, {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
|
422
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
423
|
+
buffer += "\n <form accept-charset='UTF-8' class='sandbox'>\n <div style='margin:0;padding:0;display:inline'></div>\n ";
|
424
|
+
stack1 = helpers['if'].call(depth0, depth0.parameters, {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
|
425
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
426
|
+
buffer += "\n ";
|
427
|
+
stack1 = helpers['if'].call(depth0, depth0.responseMessages, {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
|
428
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
429
|
+
buffer += "\n ";
|
430
|
+
stack1 = helpers['if'].call(depth0, depth0.isReadOnly, {hash:{},inverse:self.program(11, program11, data),fn:self.program(9, program9, data),data:data});
|
431
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
432
|
+
buffer += "\n </form>\n <div class='response' style='display:none'>\n <h4>Request URL</h4>\n <div class='block request_url'></div>\n <h4>Response Body</h4>\n <div class='block response_body'></div>\n <h4>Response Code</h4>\n <div class='block response_code'></div>\n <h4>Response Headers</h4>\n <div class='block response_headers'></div>\n </div>\n </div>\n </li>\n </ul>\n";
|
433
|
+
return buffer;
|
434
|
+
});
|
435
|
+
})();
|
436
|
+
|
437
|
+
(function() {
|
438
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
439
|
+
templates['param'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
440
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
441
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
442
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
443
|
+
|
444
|
+
function program1(depth0,data) {
|
445
|
+
|
446
|
+
var buffer = "", stack1;
|
447
|
+
buffer += "\n ";
|
448
|
+
stack1 = helpers['if'].call(depth0, depth0.isFile, {hash:{},inverse:self.program(4, program4, data),fn:self.program(2, program2, data),data:data});
|
449
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
450
|
+
buffer += "\n ";
|
451
|
+
return buffer;
|
452
|
+
}
|
453
|
+
function program2(depth0,data) {
|
454
|
+
|
455
|
+
var buffer = "", stack1;
|
456
|
+
buffer += "\n <input type=\"file\" name='";
|
457
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
458
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
459
|
+
buffer += escapeExpression(stack1)
|
460
|
+
+ "'/>\n <div class=\"parameter-content-type\" />\n ";
|
461
|
+
return buffer;
|
462
|
+
}
|
463
|
+
|
464
|
+
function program4(depth0,data) {
|
465
|
+
|
466
|
+
var buffer = "", stack1;
|
467
|
+
buffer += "\n ";
|
468
|
+
stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(7, program7, data),fn:self.program(5, program5, data),data:data});
|
469
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
470
|
+
buffer += "\n ";
|
471
|
+
return buffer;
|
472
|
+
}
|
473
|
+
function program5(depth0,data) {
|
474
|
+
|
475
|
+
var buffer = "", stack1;
|
476
|
+
buffer += "\n <textarea class='body-textarea' name='";
|
477
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
478
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
479
|
+
buffer += escapeExpression(stack1)
|
480
|
+
+ "'>";
|
481
|
+
if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
482
|
+
else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
483
|
+
buffer += escapeExpression(stack1)
|
484
|
+
+ "</textarea>\n ";
|
485
|
+
return buffer;
|
486
|
+
}
|
487
|
+
|
488
|
+
function program7(depth0,data) {
|
489
|
+
|
490
|
+
var buffer = "", stack1;
|
491
|
+
buffer += "\n <textarea class='body-textarea' name='";
|
492
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
493
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
494
|
+
buffer += escapeExpression(stack1)
|
495
|
+
+ "'></textarea>\n <br />\n <div class=\"parameter-content-type\" />\n ";
|
496
|
+
return buffer;
|
497
|
+
}
|
498
|
+
|
499
|
+
function program9(depth0,data) {
|
500
|
+
|
501
|
+
var buffer = "", stack1;
|
502
|
+
buffer += "\n ";
|
503
|
+
stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(12, program12, data),fn:self.program(10, program10, data),data:data});
|
504
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
505
|
+
buffer += "\n ";
|
506
|
+
return buffer;
|
507
|
+
}
|
508
|
+
function program10(depth0,data) {
|
509
|
+
|
510
|
+
var buffer = "", stack1;
|
511
|
+
buffer += "\n <input class='parameter' minlength='0' name='";
|
512
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
513
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
514
|
+
buffer += escapeExpression(stack1)
|
515
|
+
+ "' placeholder='' type='text' value='";
|
516
|
+
if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
517
|
+
else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
518
|
+
buffer += escapeExpression(stack1)
|
519
|
+
+ "'/>\n ";
|
520
|
+
return buffer;
|
521
|
+
}
|
522
|
+
|
523
|
+
function program12(depth0,data) {
|
524
|
+
|
525
|
+
var buffer = "", stack1;
|
526
|
+
buffer += "\n <input class='parameter' minlength='0' name='";
|
527
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
528
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
529
|
+
buffer += escapeExpression(stack1)
|
530
|
+
+ "' placeholder='' type='text' value=''/>\n ";
|
531
|
+
return buffer;
|
532
|
+
}
|
533
|
+
|
534
|
+
buffer += "<td class='code'>";
|
535
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
536
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
537
|
+
buffer += escapeExpression(stack1)
|
538
|
+
+ "</td>\n<td>\n\n ";
|
539
|
+
stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(9, program9, data),fn:self.program(1, program1, data),data:data});
|
540
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
541
|
+
buffer += "\n\n</td>\n<td>";
|
542
|
+
if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
543
|
+
else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
544
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
545
|
+
buffer += "</td>\n<td>";
|
546
|
+
if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
547
|
+
else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
548
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
549
|
+
buffer += "</td>\n<td>\n <span class=\"model-signature\"></span>\n</td>\n";
|
550
|
+
return buffer;
|
551
|
+
});
|
552
|
+
})();
|
553
|
+
|
554
|
+
(function() {
|
555
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
556
|
+
templates['param_list'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
557
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
558
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
559
|
+
var buffer = "", stack1, stack2, self=this, functionType="function", escapeExpression=this.escapeExpression;
|
560
|
+
|
561
|
+
function program1(depth0,data) {
|
562
|
+
|
563
|
+
|
564
|
+
return " multiple='multiple'";
|
565
|
+
}
|
566
|
+
|
567
|
+
function program3(depth0,data) {
|
568
|
+
|
569
|
+
|
570
|
+
return "\n ";
|
571
|
+
}
|
572
|
+
|
573
|
+
function program5(depth0,data) {
|
574
|
+
|
575
|
+
var buffer = "", stack1;
|
576
|
+
buffer += "\n ";
|
577
|
+
stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(8, program8, data),fn:self.program(6, program6, data),data:data});
|
578
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
579
|
+
buffer += "\n ";
|
580
|
+
return buffer;
|
581
|
+
}
|
582
|
+
function program6(depth0,data) {
|
583
|
+
|
584
|
+
|
585
|
+
return "\n ";
|
586
|
+
}
|
587
|
+
|
588
|
+
function program8(depth0,data) {
|
589
|
+
|
590
|
+
var buffer = "", stack1;
|
591
|
+
buffer += "\n ";
|
592
|
+
stack1 = helpers['if'].call(depth0, depth0.allowMultiple, {hash:{},inverse:self.program(11, program11, data),fn:self.program(9, program9, data),data:data});
|
593
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
594
|
+
buffer += "\n ";
|
595
|
+
return buffer;
|
596
|
+
}
|
597
|
+
function program9(depth0,data) {
|
598
|
+
|
599
|
+
|
600
|
+
return "\n ";
|
601
|
+
}
|
602
|
+
|
603
|
+
function program11(depth0,data) {
|
604
|
+
|
605
|
+
|
606
|
+
return "\n <option selected=\"\" value=''></option>\n ";
|
607
|
+
}
|
608
|
+
|
609
|
+
function program13(depth0,data) {
|
610
|
+
|
611
|
+
var buffer = "", stack1;
|
612
|
+
buffer += "\n ";
|
613
|
+
stack1 = helpers['if'].call(depth0, depth0.isDefault, {hash:{},inverse:self.program(16, program16, data),fn:self.program(14, program14, data),data:data});
|
614
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
615
|
+
buffer += "\n ";
|
616
|
+
return buffer;
|
617
|
+
}
|
618
|
+
function program14(depth0,data) {
|
619
|
+
|
620
|
+
var buffer = "", stack1;
|
621
|
+
buffer += "\n <option selected=\"\" value='";
|
622
|
+
if (stack1 = helpers.value) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
623
|
+
else { stack1 = depth0.value; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
624
|
+
buffer += escapeExpression(stack1)
|
625
|
+
+ "'>";
|
626
|
+
if (stack1 = helpers.value) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
627
|
+
else { stack1 = depth0.value; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
628
|
+
buffer += escapeExpression(stack1)
|
629
|
+
+ " (default)</option>\n ";
|
630
|
+
return buffer;
|
631
|
+
}
|
632
|
+
|
633
|
+
function program16(depth0,data) {
|
634
|
+
|
635
|
+
var buffer = "", stack1;
|
636
|
+
buffer += "\n <option value='";
|
637
|
+
if (stack1 = helpers.value) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
638
|
+
else { stack1 = depth0.value; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
639
|
+
buffer += escapeExpression(stack1)
|
640
|
+
+ "'>";
|
641
|
+
if (stack1 = helpers.value) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
642
|
+
else { stack1 = depth0.value; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
643
|
+
buffer += escapeExpression(stack1)
|
644
|
+
+ "</option>\n ";
|
645
|
+
return buffer;
|
646
|
+
}
|
647
|
+
|
648
|
+
buffer += "<td class='code'>";
|
649
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
650
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
651
|
+
buffer += escapeExpression(stack1)
|
652
|
+
+ "</td>\n<td>\n <select ";
|
653
|
+
stack1 = helpers['if'].call(depth0, depth0.allowMultiple, {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
654
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
655
|
+
buffer += " class='parameter' name='";
|
656
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
657
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
658
|
+
buffer += escapeExpression(stack1)
|
659
|
+
+ "'>\n ";
|
660
|
+
stack1 = helpers['if'].call(depth0, depth0.required, {hash:{},inverse:self.program(5, program5, data),fn:self.program(3, program3, data),data:data});
|
661
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
662
|
+
buffer += "\n ";
|
663
|
+
stack2 = helpers.each.call(depth0, ((stack1 = depth0.allowableValues),stack1 == null || stack1 === false ? stack1 : stack1.descriptiveValues), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});
|
664
|
+
if(stack2 || stack2 === 0) { buffer += stack2; }
|
665
|
+
buffer += "\n </select>\n</td>\n<td>";
|
666
|
+
if (stack2 = helpers.description) { stack2 = stack2.call(depth0, {hash:{},data:data}); }
|
667
|
+
else { stack2 = depth0.description; stack2 = typeof stack2 === functionType ? stack2.apply(depth0) : stack2; }
|
668
|
+
if(stack2 || stack2 === 0) { buffer += stack2; }
|
669
|
+
buffer += "</td>\n<td>";
|
670
|
+
if (stack2 = helpers.paramType) { stack2 = stack2.call(depth0, {hash:{},data:data}); }
|
671
|
+
else { stack2 = depth0.paramType; stack2 = typeof stack2 === functionType ? stack2.apply(depth0) : stack2; }
|
672
|
+
if(stack2 || stack2 === 0) { buffer += stack2; }
|
673
|
+
buffer += "</td>\n<td><span class=\"model-signature\"></span></td>";
|
674
|
+
return buffer;
|
675
|
+
});
|
676
|
+
})();
|
677
|
+
|
678
|
+
(function() {
|
679
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
680
|
+
templates['param_readonly'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
681
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
682
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
683
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
684
|
+
|
685
|
+
function program1(depth0,data) {
|
686
|
+
|
687
|
+
var buffer = "", stack1;
|
688
|
+
buffer += "\n <textarea class='body-textarea' readonly='readonly' name='";
|
689
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
690
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
691
|
+
buffer += escapeExpression(stack1)
|
692
|
+
+ "'>";
|
693
|
+
if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
694
|
+
else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
695
|
+
buffer += escapeExpression(stack1)
|
696
|
+
+ "</textarea>\n ";
|
697
|
+
return buffer;
|
698
|
+
}
|
699
|
+
|
700
|
+
function program3(depth0,data) {
|
701
|
+
|
702
|
+
var buffer = "", stack1;
|
703
|
+
buffer += "\n ";
|
704
|
+
stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(6, program6, data),fn:self.program(4, program4, data),data:data});
|
705
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
706
|
+
buffer += "\n ";
|
707
|
+
return buffer;
|
708
|
+
}
|
709
|
+
function program4(depth0,data) {
|
710
|
+
|
711
|
+
var buffer = "", stack1;
|
712
|
+
buffer += "\n ";
|
713
|
+
if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
714
|
+
else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
715
|
+
buffer += escapeExpression(stack1)
|
716
|
+
+ "\n ";
|
717
|
+
return buffer;
|
718
|
+
}
|
719
|
+
|
720
|
+
function program6(depth0,data) {
|
721
|
+
|
722
|
+
|
723
|
+
return "\n (empty)\n ";
|
724
|
+
}
|
725
|
+
|
726
|
+
buffer += "<td class='code'>";
|
727
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
728
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
729
|
+
buffer += escapeExpression(stack1)
|
730
|
+
+ "</td>\n<td>\n ";
|
731
|
+
stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data});
|
732
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
733
|
+
buffer += "\n</td>\n<td>";
|
734
|
+
if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
735
|
+
else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
736
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
737
|
+
buffer += "</td>\n<td>";
|
738
|
+
if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
739
|
+
else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
740
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
741
|
+
buffer += "</td>\n<td><span class=\"model-signature\"></span></td>\n";
|
742
|
+
return buffer;
|
743
|
+
});
|
744
|
+
})();
|
745
|
+
|
746
|
+
(function() {
|
747
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
748
|
+
templates['param_readonly_required'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
749
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
750
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
751
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
752
|
+
|
753
|
+
function program1(depth0,data) {
|
754
|
+
|
755
|
+
var buffer = "", stack1;
|
756
|
+
buffer += "\n <textarea class='body-textarea' readonly='readonly' placeholder='(required)' name='";
|
757
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
758
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
759
|
+
buffer += escapeExpression(stack1)
|
760
|
+
+ "'>";
|
761
|
+
if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
762
|
+
else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
763
|
+
buffer += escapeExpression(stack1)
|
764
|
+
+ "</textarea>\n ";
|
765
|
+
return buffer;
|
766
|
+
}
|
767
|
+
|
768
|
+
function program3(depth0,data) {
|
769
|
+
|
770
|
+
var buffer = "", stack1;
|
771
|
+
buffer += "\n ";
|
772
|
+
stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(6, program6, data),fn:self.program(4, program4, data),data:data});
|
773
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
774
|
+
buffer += "\n ";
|
775
|
+
return buffer;
|
776
|
+
}
|
777
|
+
function program4(depth0,data) {
|
778
|
+
|
779
|
+
var buffer = "", stack1;
|
780
|
+
buffer += "\n ";
|
781
|
+
if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
782
|
+
else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
783
|
+
buffer += escapeExpression(stack1)
|
784
|
+
+ "\n ";
|
785
|
+
return buffer;
|
786
|
+
}
|
787
|
+
|
788
|
+
function program6(depth0,data) {
|
789
|
+
|
790
|
+
|
791
|
+
return "\n (empty)\n ";
|
792
|
+
}
|
793
|
+
|
794
|
+
buffer += "<td class='code required'>";
|
795
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
796
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
797
|
+
buffer += escapeExpression(stack1)
|
798
|
+
+ "</td>\n<td>\n ";
|
799
|
+
stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data});
|
800
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
801
|
+
buffer += "\n</td>\n<td>";
|
802
|
+
if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
803
|
+
else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
804
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
805
|
+
buffer += "</td>\n<td>";
|
806
|
+
if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
807
|
+
else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
808
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
809
|
+
buffer += "</td>\n<td><span class=\"model-signature\"></span></td>\n";
|
810
|
+
return buffer;
|
811
|
+
});
|
812
|
+
})();
|
813
|
+
|
814
|
+
(function() {
|
815
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
816
|
+
templates['param_required'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
817
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
818
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
819
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
820
|
+
|
821
|
+
function program1(depth0,data) {
|
822
|
+
|
823
|
+
var buffer = "", stack1;
|
824
|
+
buffer += "\n ";
|
825
|
+
stack1 = helpers['if'].call(depth0, depth0.isFile, {hash:{},inverse:self.program(4, program4, data),fn:self.program(2, program2, data),data:data});
|
826
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
827
|
+
buffer += "\n ";
|
828
|
+
return buffer;
|
829
|
+
}
|
830
|
+
function program2(depth0,data) {
|
831
|
+
|
832
|
+
var buffer = "", stack1;
|
833
|
+
buffer += "\n <input type=\"file\" name='";
|
834
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
835
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
836
|
+
buffer += escapeExpression(stack1)
|
837
|
+
+ "'/>\n ";
|
838
|
+
return buffer;
|
839
|
+
}
|
840
|
+
|
841
|
+
function program4(depth0,data) {
|
842
|
+
|
843
|
+
var buffer = "", stack1;
|
844
|
+
buffer += "\n ";
|
845
|
+
stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(7, program7, data),fn:self.program(5, program5, data),data:data});
|
846
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
847
|
+
buffer += "\n ";
|
848
|
+
return buffer;
|
849
|
+
}
|
850
|
+
function program5(depth0,data) {
|
851
|
+
|
852
|
+
var buffer = "", stack1;
|
853
|
+
buffer += "\n <textarea class='body-textarea' placeholder='(required)' name='";
|
854
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
855
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
856
|
+
buffer += escapeExpression(stack1)
|
857
|
+
+ "'>";
|
858
|
+
if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
859
|
+
else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
860
|
+
buffer += escapeExpression(stack1)
|
861
|
+
+ "</textarea>\n ";
|
862
|
+
return buffer;
|
863
|
+
}
|
864
|
+
|
865
|
+
function program7(depth0,data) {
|
866
|
+
|
867
|
+
var buffer = "", stack1;
|
868
|
+
buffer += "\n <textarea class='body-textarea' placeholder='(required)' name='";
|
869
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
870
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
871
|
+
buffer += escapeExpression(stack1)
|
872
|
+
+ "'></textarea>\n <br />\n <div class=\"parameter-content-type\" />\n ";
|
873
|
+
return buffer;
|
874
|
+
}
|
875
|
+
|
876
|
+
function program9(depth0,data) {
|
877
|
+
|
878
|
+
var buffer = "", stack1;
|
879
|
+
buffer += "\n ";
|
880
|
+
stack1 = helpers['if'].call(depth0, depth0.isFile, {hash:{},inverse:self.program(12, program12, data),fn:self.program(10, program10, data),data:data});
|
881
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
882
|
+
buffer += "\n ";
|
883
|
+
return buffer;
|
884
|
+
}
|
885
|
+
function program10(depth0,data) {
|
886
|
+
|
887
|
+
var buffer = "", stack1;
|
888
|
+
buffer += "\n <input class='parameter' class='required' type='file' name='";
|
889
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
890
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
891
|
+
buffer += escapeExpression(stack1)
|
892
|
+
+ "'/>\n ";
|
893
|
+
return buffer;
|
894
|
+
}
|
895
|
+
|
896
|
+
function program12(depth0,data) {
|
897
|
+
|
898
|
+
var buffer = "", stack1;
|
899
|
+
buffer += "\n ";
|
900
|
+
stack1 = helpers['if'].call(depth0, depth0.defaultValue, {hash:{},inverse:self.program(15, program15, data),fn:self.program(13, program13, data),data:data});
|
901
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
902
|
+
buffer += "\n ";
|
903
|
+
return buffer;
|
904
|
+
}
|
905
|
+
function program13(depth0,data) {
|
906
|
+
|
907
|
+
var buffer = "", stack1;
|
908
|
+
buffer += "\n <input class='parameter required' minlength='1' name='";
|
909
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
910
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
911
|
+
buffer += escapeExpression(stack1)
|
912
|
+
+ "' placeholder='(required)' type='text' value='";
|
913
|
+
if (stack1 = helpers.defaultValue) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
914
|
+
else { stack1 = depth0.defaultValue; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
915
|
+
buffer += escapeExpression(stack1)
|
916
|
+
+ "'/>\n ";
|
917
|
+
return buffer;
|
918
|
+
}
|
919
|
+
|
920
|
+
function program15(depth0,data) {
|
921
|
+
|
922
|
+
var buffer = "", stack1;
|
923
|
+
buffer += "\n <input class='parameter required' minlength='1' name='";
|
924
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
925
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
926
|
+
buffer += escapeExpression(stack1)
|
927
|
+
+ "' placeholder='(required)' type='text' value=''/>\n ";
|
928
|
+
return buffer;
|
929
|
+
}
|
930
|
+
|
931
|
+
buffer += "<td class='code required'>";
|
932
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
933
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
934
|
+
buffer += escapeExpression(stack1)
|
935
|
+
+ "</td>\n<td>\n ";
|
936
|
+
stack1 = helpers['if'].call(depth0, depth0.isBody, {hash:{},inverse:self.program(9, program9, data),fn:self.program(1, program1, data),data:data});
|
937
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
938
|
+
buffer += "\n</td>\n<td>\n <strong>";
|
939
|
+
if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
940
|
+
else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
941
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
942
|
+
buffer += "</strong>\n</td>\n<td>";
|
943
|
+
if (stack1 = helpers.paramType) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
944
|
+
else { stack1 = depth0.paramType; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
945
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
946
|
+
buffer += "</td>\n<td><span class=\"model-signature\"></span></td>\n";
|
947
|
+
return buffer;
|
948
|
+
});
|
949
|
+
})();
|
950
|
+
|
951
|
+
(function() {
|
952
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
953
|
+
templates['parameter_content_type'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
954
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
955
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
956
|
+
var buffer = "", stack1, functionType="function", self=this;
|
957
|
+
|
958
|
+
function program1(depth0,data) {
|
959
|
+
|
960
|
+
var buffer = "", stack1;
|
961
|
+
buffer += "\n ";
|
962
|
+
stack1 = helpers.each.call(depth0, depth0.consumes, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
|
963
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
964
|
+
buffer += "\n";
|
965
|
+
return buffer;
|
966
|
+
}
|
967
|
+
function program2(depth0,data) {
|
968
|
+
|
969
|
+
var buffer = "", stack1;
|
970
|
+
buffer += "\n <option value=\"";
|
971
|
+
stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
|
972
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
973
|
+
buffer += "\">";
|
974
|
+
stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
|
975
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
976
|
+
buffer += "</option>\n ";
|
977
|
+
return buffer;
|
978
|
+
}
|
979
|
+
|
980
|
+
function program4(depth0,data) {
|
981
|
+
|
982
|
+
|
983
|
+
return "\n <option value=\"application/json\">application/json</option>\n";
|
984
|
+
}
|
985
|
+
|
986
|
+
buffer += "<label for=\"parameterContentType\"></label>\n<select name=\"parameterContentType\">\n";
|
987
|
+
stack1 = helpers['if'].call(depth0, depth0.consumes, {hash:{},inverse:self.program(4, program4, data),fn:self.program(1, program1, data),data:data});
|
988
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
989
|
+
buffer += "\n</select>\n";
|
990
|
+
return buffer;
|
991
|
+
});
|
992
|
+
})();
|
993
|
+
|
994
|
+
(function() {
|
995
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
996
|
+
templates['resource'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
997
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
998
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
999
|
+
var buffer = "", stack1, options, functionType="function", escapeExpression=this.escapeExpression, self=this, blockHelperMissing=helpers.blockHelperMissing;
|
1000
|
+
|
1001
|
+
function program1(depth0,data) {
|
1002
|
+
|
1003
|
+
|
1004
|
+
return " : ";
|
1005
|
+
}
|
1006
|
+
|
1007
|
+
buffer += "<div class='heading'>\n <h2>\n <a href='#!/";
|
1008
|
+
if (stack1 = helpers.id) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1009
|
+
else { stack1 = depth0.id; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1010
|
+
buffer += escapeExpression(stack1)
|
1011
|
+
+ "' onclick=\"Docs.toggleEndpointListForResource('";
|
1012
|
+
if (stack1 = helpers.id) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1013
|
+
else { stack1 = depth0.id; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1014
|
+
buffer += escapeExpression(stack1)
|
1015
|
+
+ "');\">";
|
1016
|
+
if (stack1 = helpers.name) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1017
|
+
else { stack1 = depth0.name; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1018
|
+
buffer += escapeExpression(stack1)
|
1019
|
+
+ "</a> ";
|
1020
|
+
options = {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data};
|
1021
|
+
if (stack1 = helpers.description) { stack1 = stack1.call(depth0, options); }
|
1022
|
+
else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1023
|
+
if (!helpers.description) { stack1 = blockHelperMissing.call(depth0, stack1, options); }
|
1024
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
1025
|
+
if (stack1 = helpers.description) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1026
|
+
else { stack1 = depth0.description; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1027
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
1028
|
+
buffer += "\n </h2>\n <ul class='options'>\n <li>\n <a href='#!/";
|
1029
|
+
if (stack1 = helpers.id) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1030
|
+
else { stack1 = depth0.id; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1031
|
+
buffer += escapeExpression(stack1)
|
1032
|
+
+ "' id='endpointListTogger_";
|
1033
|
+
if (stack1 = helpers.id) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1034
|
+
else { stack1 = depth0.id; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1035
|
+
buffer += escapeExpression(stack1)
|
1036
|
+
+ "'\n onclick=\"Docs.toggleEndpointListForResource('";
|
1037
|
+
if (stack1 = helpers.id) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1038
|
+
else { stack1 = depth0.id; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1039
|
+
buffer += escapeExpression(stack1)
|
1040
|
+
+ "');\">Show/Hide</a>\n </li>\n <li>\n <a href='#' onclick=\"Docs.collapseOperationsForResource('";
|
1041
|
+
if (stack1 = helpers.id) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1042
|
+
else { stack1 = depth0.id; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1043
|
+
buffer += escapeExpression(stack1)
|
1044
|
+
+ "'); return false;\">\n List Operations\n </a>\n </li>\n <li>\n <a href='#' onclick=\"Docs.expandOperationsForResource('";
|
1045
|
+
if (stack1 = helpers.id) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1046
|
+
else { stack1 = depth0.id; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1047
|
+
buffer += escapeExpression(stack1)
|
1048
|
+
+ "'); return false;\">\n Expand Operations\n </a>\n </li>\n <li>\n <a href='";
|
1049
|
+
if (stack1 = helpers.url) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1050
|
+
else { stack1 = depth0.url; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1051
|
+
buffer += escapeExpression(stack1)
|
1052
|
+
+ "'>Raw</a>\n </li>\n </ul>\n</div>\n<ul class='endpoints' id='";
|
1053
|
+
if (stack1 = helpers.id) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1054
|
+
else { stack1 = depth0.id; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1055
|
+
buffer += escapeExpression(stack1)
|
1056
|
+
+ "_endpoint_list' style='display:none'>\n\n</ul>\n";
|
1057
|
+
return buffer;
|
1058
|
+
});
|
1059
|
+
})();
|
1060
|
+
|
1061
|
+
(function() {
|
1062
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
1063
|
+
templates['response_content_type'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
1064
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
1065
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
1066
|
+
var buffer = "", stack1, functionType="function", self=this;
|
1067
|
+
|
1068
|
+
function program1(depth0,data) {
|
1069
|
+
|
1070
|
+
var buffer = "", stack1;
|
1071
|
+
buffer += "\n ";
|
1072
|
+
stack1 = helpers.each.call(depth0, depth0.produces, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
|
1073
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
1074
|
+
buffer += "\n";
|
1075
|
+
return buffer;
|
1076
|
+
}
|
1077
|
+
function program2(depth0,data) {
|
1078
|
+
|
1079
|
+
var buffer = "", stack1;
|
1080
|
+
buffer += "\n <option value=\"";
|
1081
|
+
stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
|
1082
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
1083
|
+
buffer += "\">";
|
1084
|
+
stack1 = (typeof depth0 === functionType ? depth0.apply(depth0) : depth0);
|
1085
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
1086
|
+
buffer += "</option>\n ";
|
1087
|
+
return buffer;
|
1088
|
+
}
|
1089
|
+
|
1090
|
+
function program4(depth0,data) {
|
1091
|
+
|
1092
|
+
|
1093
|
+
return "\n <option value=\"application/json\">application/json</option>\n";
|
1094
|
+
}
|
1095
|
+
|
1096
|
+
buffer += "<label for=\"responseContentType\"></label>\n<select name=\"responseContentType\">\n";
|
1097
|
+
stack1 = helpers['if'].call(depth0, depth0.produces, {hash:{},inverse:self.program(4, program4, data),fn:self.program(1, program1, data),data:data});
|
1098
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
1099
|
+
buffer += "\n</select>\n";
|
1100
|
+
return buffer;
|
1101
|
+
});
|
1102
|
+
})();
|
1103
|
+
|
1104
|
+
(function() {
|
1105
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
1106
|
+
templates['signature'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
1107
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
1108
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
1109
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;
|
1110
|
+
|
1111
|
+
|
1112
|
+
buffer += "<div>\n<ul class=\"signature-nav\">\n <li><a class=\"description-link\" href=\"#\">Model</a></li>\n <li><a class=\"snippet-link\" href=\"#\">Model Schema</a></li>\n</ul>\n<div>\n\n<div class=\"signature-container\">\n <div class=\"description\">\n ";
|
1113
|
+
if (stack1 = helpers.signature) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1114
|
+
else { stack1 = depth0.signature; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1115
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
1116
|
+
buffer += "\n </div>\n\n <div class=\"snippet\">\n <pre><code>";
|
1117
|
+
if (stack1 = helpers.sampleJSON) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1118
|
+
else { stack1 = depth0.sampleJSON; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1119
|
+
buffer += escapeExpression(stack1)
|
1120
|
+
+ "</code></pre>\n <small class=\"notice\"></small>\n </div>\n</div>\n\n";
|
1121
|
+
return buffer;
|
1122
|
+
});
|
1123
|
+
})();
|
1124
|
+
|
1125
|
+
(function() {
|
1126
|
+
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
|
1127
|
+
templates['status_code'] = template(function (Handlebars,depth0,helpers,partials,data) {
|
1128
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
1129
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
1130
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;
|
1131
|
+
|
1132
|
+
|
1133
|
+
buffer += "<td width='15%' class='code'>";
|
1134
|
+
if (stack1 = helpers.code) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1135
|
+
else { stack1 = depth0.code; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1136
|
+
buffer += escapeExpression(stack1)
|
1137
|
+
+ "</td>\n<td>";
|
1138
|
+
if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }
|
1139
|
+
else { stack1 = depth0.message; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }
|
1140
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
1141
|
+
buffer += "</td>\n";
|
1142
|
+
return buffer;
|
1143
|
+
});
|
1144
|
+
})();
|
1145
|
+
|
1146
|
+
|
1147
|
+
|
1148
|
+
// Generated by CoffeeScript 1.6.3
|
1149
|
+
(function() {
|
1150
|
+
var ContentTypeView, HeaderView, MainView, OperationView, ParameterContentTypeView, ParameterView, ResourceView, ResponseContentTypeView, SignatureView, StatusCodeView, SwaggerUi, _ref, _ref1, _ref10, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9,
|
1151
|
+
__hasProp = {}.hasOwnProperty,
|
1152
|
+
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
1153
|
+
|
1154
|
+
SwaggerUi = (function(_super) {
|
1155
|
+
__extends(SwaggerUi, _super);
|
1156
|
+
|
1157
|
+
function SwaggerUi() {
|
1158
|
+
_ref = SwaggerUi.__super__.constructor.apply(this, arguments);
|
1159
|
+
return _ref;
|
1160
|
+
}
|
1161
|
+
|
1162
|
+
SwaggerUi.prototype.dom_id = "swagger_ui";
|
1163
|
+
|
1164
|
+
SwaggerUi.prototype.options = null;
|
1165
|
+
|
1166
|
+
SwaggerUi.prototype.api = null;
|
1167
|
+
|
1168
|
+
SwaggerUi.prototype.headerView = null;
|
1169
|
+
|
1170
|
+
SwaggerUi.prototype.mainView = null;
|
1171
|
+
|
1172
|
+
SwaggerUi.prototype.initialize = function(options) {
|
1173
|
+
var _this = this;
|
1174
|
+
if (options == null) {
|
1175
|
+
options = {};
|
1176
|
+
}
|
1177
|
+
if (options.dom_id != null) {
|
1178
|
+
this.dom_id = options.dom_id;
|
1179
|
+
delete options.dom_id;
|
1180
|
+
}
|
1181
|
+
if ($('#' + this.dom_id) == null) {
|
1182
|
+
$('body').append('<div id="' + this.dom_id + '"></div>');
|
1183
|
+
}
|
1184
|
+
this.options = options;
|
1185
|
+
this.options.success = function() {
|
1186
|
+
return _this.render();
|
1187
|
+
};
|
1188
|
+
this.options.progress = function(d) {
|
1189
|
+
return _this.showMessage(d);
|
1190
|
+
};
|
1191
|
+
this.options.failure = function(d) {
|
1192
|
+
return _this.onLoadFailure(d);
|
1193
|
+
};
|
1194
|
+
this.headerView = new HeaderView({
|
1195
|
+
el: $('#header')
|
1196
|
+
});
|
1197
|
+
return this.headerView.on('update-swagger-ui', function(data) {
|
1198
|
+
return _this.updateSwaggerUi(data);
|
1199
|
+
});
|
1200
|
+
};
|
1201
|
+
|
1202
|
+
SwaggerUi.prototype.updateSwaggerUi = function(data) {
|
1203
|
+
this.options.url = data.url;
|
1204
|
+
return this.load();
|
1205
|
+
};
|
1206
|
+
|
1207
|
+
SwaggerUi.prototype.load = function() {
|
1208
|
+
var url, _ref1;
|
1209
|
+
if ((_ref1 = this.mainView) != null) {
|
1210
|
+
_ref1.clear();
|
1211
|
+
}
|
1212
|
+
url = this.options.url;
|
1213
|
+
if (url.indexOf("http") !== 0) {
|
1214
|
+
url = this.buildUrl(window.location.href.toString(), url);
|
1215
|
+
}
|
1216
|
+
this.options.url = url;
|
1217
|
+
this.headerView.update(url);
|
1218
|
+
this.api = new SwaggerApi(this.options);
|
1219
|
+
this.api.build();
|
1220
|
+
return this.api;
|
1221
|
+
};
|
1222
|
+
|
1223
|
+
SwaggerUi.prototype.render = function() {
|
1224
|
+
var _this = this;
|
1225
|
+
this.showMessage('Finished Loading Resource Information. Rendering Swagger UI...');
|
1226
|
+
this.mainView = new MainView({
|
1227
|
+
model: this.api,
|
1228
|
+
el: $('#' + this.dom_id)
|
1229
|
+
}).render();
|
1230
|
+
this.showMessage();
|
1231
|
+
switch (this.options.docExpansion) {
|
1232
|
+
case "full":
|
1233
|
+
Docs.expandOperationsForResource('');
|
1234
|
+
break;
|
1235
|
+
case "list":
|
1236
|
+
Docs.collapseOperationsForResource('');
|
1237
|
+
}
|
1238
|
+
if (this.options.onComplete) {
|
1239
|
+
this.options.onComplete(this.api, this);
|
1240
|
+
}
|
1241
|
+
return setTimeout(function() {
|
1242
|
+
return Docs.shebang();
|
1243
|
+
}, 400);
|
1244
|
+
};
|
1245
|
+
|
1246
|
+
SwaggerUi.prototype.buildUrl = function(base, url) {
|
1247
|
+
var endOfPath, parts;
|
1248
|
+
log("base is " + base);
|
1249
|
+
if (url.indexOf("/") === 0) {
|
1250
|
+
parts = base.split("/");
|
1251
|
+
base = parts[0] + "//" + parts[2];
|
1252
|
+
return base + url;
|
1253
|
+
} else {
|
1254
|
+
endOfPath = base.length;
|
1255
|
+
if (base.indexOf("?") > -1) {
|
1256
|
+
endOfPath = Math.min(endOfPath, base.indexOf("?"));
|
1257
|
+
}
|
1258
|
+
if (base.indexOf("#") > -1) {
|
1259
|
+
endOfPath = Math.min(endOfPath, base.indexOf("#"));
|
1260
|
+
}
|
1261
|
+
base = base.substring(0, endOfPath);
|
1262
|
+
if (base.indexOf("/", base.length - 1) !== -1) {
|
1263
|
+
return base + url;
|
1264
|
+
}
|
1265
|
+
return base + "/" + url;
|
1266
|
+
}
|
1267
|
+
};
|
1268
|
+
|
1269
|
+
SwaggerUi.prototype.showMessage = function(data) {
|
1270
|
+
if (data == null) {
|
1271
|
+
data = '';
|
1272
|
+
}
|
1273
|
+
$('#message-bar').removeClass('message-fail');
|
1274
|
+
$('#message-bar').addClass('message-success');
|
1275
|
+
return $('#message-bar').html(data);
|
1276
|
+
};
|
1277
|
+
|
1278
|
+
SwaggerUi.prototype.onLoadFailure = function(data) {
|
1279
|
+
var val;
|
1280
|
+
if (data == null) {
|
1281
|
+
data = '';
|
1282
|
+
}
|
1283
|
+
$('#message-bar').removeClass('message-success');
|
1284
|
+
$('#message-bar').addClass('message-fail');
|
1285
|
+
val = $('#message-bar').html(data);
|
1286
|
+
if (this.options.onFailure != null) {
|
1287
|
+
this.options.onFailure(data);
|
1288
|
+
}
|
1289
|
+
return val;
|
1290
|
+
};
|
1291
|
+
|
1292
|
+
return SwaggerUi;
|
1293
|
+
|
1294
|
+
})(Backbone.Router);
|
1295
|
+
|
1296
|
+
window.SwaggerUi = SwaggerUi;
|
1297
|
+
|
1298
|
+
HeaderView = (function(_super) {
|
1299
|
+
__extends(HeaderView, _super);
|
1300
|
+
|
1301
|
+
function HeaderView() {
|
1302
|
+
_ref1 = HeaderView.__super__.constructor.apply(this, arguments);
|
1303
|
+
return _ref1;
|
1304
|
+
}
|
1305
|
+
|
1306
|
+
HeaderView.prototype.events = {
|
1307
|
+
'click #show-pet-store-icon': 'showPetStore',
|
1308
|
+
'click #show-wordnik-dev-icon': 'showWordnikDev',
|
1309
|
+
'click #explore': 'showCustom',
|
1310
|
+
'keyup #input_baseUrl': 'showCustomOnKeyup',
|
1311
|
+
'keyup #input_apiKey': 'showCustomOnKeyup'
|
1312
|
+
};
|
1313
|
+
|
1314
|
+
HeaderView.prototype.initialize = function() {};
|
1315
|
+
|
1316
|
+
HeaderView.prototype.showPetStore = function(e) {
|
1317
|
+
return this.trigger('update-swagger-ui', {
|
1318
|
+
url: "http://petstore.swagger.wordnik.com/api/api-docs"
|
1319
|
+
});
|
1320
|
+
};
|
1321
|
+
|
1322
|
+
HeaderView.prototype.showWordnikDev = function(e) {
|
1323
|
+
return this.trigger('update-swagger-ui', {
|
1324
|
+
url: "http://api.wordnik.com/v4/resources.json"
|
1325
|
+
});
|
1326
|
+
};
|
1327
|
+
|
1328
|
+
HeaderView.prototype.showCustomOnKeyup = function(e) {
|
1329
|
+
if (e.keyCode === 13) {
|
1330
|
+
return this.showCustom();
|
1331
|
+
}
|
1332
|
+
};
|
1333
|
+
|
1334
|
+
HeaderView.prototype.showCustom = function(e) {
|
1335
|
+
if (e != null) {
|
1336
|
+
e.preventDefault();
|
1337
|
+
}
|
1338
|
+
return this.trigger('update-swagger-ui', {
|
1339
|
+
url: $('#input_baseUrl').val(),
|
1340
|
+
apiKey: $('#input_apiKey').val()
|
1341
|
+
});
|
1342
|
+
};
|
1343
|
+
|
1344
|
+
HeaderView.prototype.update = function(url, apiKey, trigger) {
|
1345
|
+
if (trigger == null) {
|
1346
|
+
trigger = false;
|
1347
|
+
}
|
1348
|
+
$('#input_baseUrl').val(url);
|
1349
|
+
if (trigger) {
|
1350
|
+
return this.trigger('update-swagger-ui', {
|
1351
|
+
url: url
|
1352
|
+
});
|
1353
|
+
}
|
1354
|
+
};
|
1355
|
+
|
1356
|
+
return HeaderView;
|
1357
|
+
|
1358
|
+
})(Backbone.View);
|
1359
|
+
|
1360
|
+
MainView = (function(_super) {
|
1361
|
+
__extends(MainView, _super);
|
1362
|
+
|
1363
|
+
function MainView() {
|
1364
|
+
_ref2 = MainView.__super__.constructor.apply(this, arguments);
|
1365
|
+
return _ref2;
|
1366
|
+
}
|
1367
|
+
|
1368
|
+
MainView.prototype.initialize = function() {};
|
1369
|
+
|
1370
|
+
MainView.prototype.render = function() {
|
1371
|
+
var counter, id, resource, resources, _i, _len, _ref3;
|
1372
|
+
$(this.el).html(Handlebars.templates.main(this.model));
|
1373
|
+
resources = {};
|
1374
|
+
counter = 0;
|
1375
|
+
_ref3 = this.model.apisArray;
|
1376
|
+
for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
|
1377
|
+
resource = _ref3[_i];
|
1378
|
+
id = resource.name;
|
1379
|
+
while (typeof resources[id] !== 'undefined') {
|
1380
|
+
id = id + "_" + counter;
|
1381
|
+
counter += 1;
|
1382
|
+
}
|
1383
|
+
resource.id = id;
|
1384
|
+
resources[id] = resource;
|
1385
|
+
this.addResource(resource);
|
1386
|
+
}
|
1387
|
+
return this;
|
1388
|
+
};
|
1389
|
+
|
1390
|
+
MainView.prototype.addResource = function(resource) {
|
1391
|
+
var resourceView;
|
1392
|
+
resourceView = new ResourceView({
|
1393
|
+
model: resource,
|
1394
|
+
tagName: 'li',
|
1395
|
+
id: 'resource_' + resource.id,
|
1396
|
+
className: 'resource'
|
1397
|
+
});
|
1398
|
+
return $('#resources').append(resourceView.render().el);
|
1399
|
+
};
|
1400
|
+
|
1401
|
+
MainView.prototype.clear = function() {
|
1402
|
+
return $(this.el).html('');
|
1403
|
+
};
|
1404
|
+
|
1405
|
+
return MainView;
|
1406
|
+
|
1407
|
+
})(Backbone.View);
|
1408
|
+
|
1409
|
+
ResourceView = (function(_super) {
|
1410
|
+
__extends(ResourceView, _super);
|
1411
|
+
|
1412
|
+
function ResourceView() {
|
1413
|
+
_ref3 = ResourceView.__super__.constructor.apply(this, arguments);
|
1414
|
+
return _ref3;
|
1415
|
+
}
|
1416
|
+
|
1417
|
+
ResourceView.prototype.initialize = function() {};
|
1418
|
+
|
1419
|
+
ResourceView.prototype.render = function() {
|
1420
|
+
var counter, id, methods, operation, _i, _len, _ref4;
|
1421
|
+
$(this.el).html(Handlebars.templates.resource(this.model));
|
1422
|
+
methods = {};
|
1423
|
+
_ref4 = this.model.operationsArray;
|
1424
|
+
for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
|
1425
|
+
operation = _ref4[_i];
|
1426
|
+
counter = 0;
|
1427
|
+
id = operation.nickname;
|
1428
|
+
while (typeof methods[id] !== 'undefined') {
|
1429
|
+
id = id + "_" + counter;
|
1430
|
+
counter += 1;
|
1431
|
+
}
|
1432
|
+
methods[id] = operation;
|
1433
|
+
operation.nickname = id;
|
1434
|
+
operation.parentId = this.model.id;
|
1435
|
+
this.addOperation(operation);
|
1436
|
+
}
|
1437
|
+
return this;
|
1438
|
+
};
|
1439
|
+
|
1440
|
+
ResourceView.prototype.addOperation = function(operation) {
|
1441
|
+
var operationView;
|
1442
|
+
operation.number = this.number;
|
1443
|
+
operationView = new OperationView({
|
1444
|
+
model: operation,
|
1445
|
+
tagName: 'li',
|
1446
|
+
className: 'endpoint'
|
1447
|
+
});
|
1448
|
+
$('.endpoints', $(this.el)).append(operationView.render().el);
|
1449
|
+
return this.number++;
|
1450
|
+
};
|
1451
|
+
|
1452
|
+
return ResourceView;
|
1453
|
+
|
1454
|
+
})(Backbone.View);
|
1455
|
+
|
1456
|
+
OperationView = (function(_super) {
|
1457
|
+
__extends(OperationView, _super);
|
1458
|
+
|
1459
|
+
function OperationView() {
|
1460
|
+
_ref4 = OperationView.__super__.constructor.apply(this, arguments);
|
1461
|
+
return _ref4;
|
1462
|
+
}
|
1463
|
+
|
1464
|
+
OperationView.prototype.invocationUrl = null;
|
1465
|
+
|
1466
|
+
OperationView.prototype.events = {
|
1467
|
+
'submit .sandbox': 'submitOperation',
|
1468
|
+
'click .submit': 'submitOperation',
|
1469
|
+
'click .response_hider': 'hideResponse',
|
1470
|
+
'click .toggleOperation': 'toggleOperationContent'
|
1471
|
+
};
|
1472
|
+
|
1473
|
+
OperationView.prototype.initialize = function() {};
|
1474
|
+
|
1475
|
+
OperationView.prototype.render = function() {
|
1476
|
+
var contentTypeModel, isMethodSubmissionSupported, param, responseContentTypeView, responseSignatureView, signatureModel, statusCode, type, _i, _j, _k, _len, _len1, _len2, _ref5, _ref6, _ref7;
|
1477
|
+
isMethodSubmissionSupported = true;
|
1478
|
+
if (!isMethodSubmissionSupported) {
|
1479
|
+
this.model.isReadOnly = true;
|
1480
|
+
}
|
1481
|
+
$(this.el).html(Handlebars.templates.operation(this.model));
|
1482
|
+
if (this.model.responseClassSignature && this.model.responseClassSignature !== 'string') {
|
1483
|
+
signatureModel = {
|
1484
|
+
sampleJSON: this.model.responseSampleJSON,
|
1485
|
+
isParam: false,
|
1486
|
+
signature: this.model.responseClassSignature
|
1487
|
+
};
|
1488
|
+
responseSignatureView = new SignatureView({
|
1489
|
+
model: signatureModel,
|
1490
|
+
tagName: 'div'
|
1491
|
+
});
|
1492
|
+
$('.model-signature', $(this.el)).append(responseSignatureView.render().el);
|
1493
|
+
} else {
|
1494
|
+
$('.model-signature', $(this.el)).html(this.model.type);
|
1495
|
+
}
|
1496
|
+
contentTypeModel = {
|
1497
|
+
isParam: false
|
1498
|
+
};
|
1499
|
+
contentTypeModel.consumes = this.model.consumes;
|
1500
|
+
contentTypeModel.produces = this.model.produces;
|
1501
|
+
_ref5 = this.model.parameters;
|
1502
|
+
for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
|
1503
|
+
param = _ref5[_i];
|
1504
|
+
type = param.type || param.dataType;
|
1505
|
+
if (type.toLowerCase() === 'file') {
|
1506
|
+
if (!contentTypeModel.consumes) {
|
1507
|
+
log("set content type ");
|
1508
|
+
contentTypeModel.consumes = 'multipart/form-data';
|
1509
|
+
}
|
1510
|
+
}
|
1511
|
+
}
|
1512
|
+
responseContentTypeView = new ResponseContentTypeView({
|
1513
|
+
model: contentTypeModel
|
1514
|
+
});
|
1515
|
+
$('.response-content-type', $(this.el)).append(responseContentTypeView.render().el);
|
1516
|
+
_ref6 = this.model.parameters;
|
1517
|
+
for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
|
1518
|
+
param = _ref6[_j];
|
1519
|
+
this.addParameter(param, contentTypeModel.consumes);
|
1520
|
+
}
|
1521
|
+
_ref7 = this.model.responseMessages;
|
1522
|
+
for (_k = 0, _len2 = _ref7.length; _k < _len2; _k++) {
|
1523
|
+
statusCode = _ref7[_k];
|
1524
|
+
this.addStatusCode(statusCode);
|
1525
|
+
}
|
1526
|
+
return this;
|
1527
|
+
};
|
1528
|
+
|
1529
|
+
OperationView.prototype.addParameter = function(param, consumes) {
|
1530
|
+
var paramView;
|
1531
|
+
param.consumes = consumes;
|
1532
|
+
paramView = new ParameterView({
|
1533
|
+
model: param,
|
1534
|
+
tagName: 'tr',
|
1535
|
+
readOnly: this.model.isReadOnly
|
1536
|
+
});
|
1537
|
+
return $('.operation-params', $(this.el)).append(paramView.render().el);
|
1538
|
+
};
|
1539
|
+
|
1540
|
+
OperationView.prototype.addStatusCode = function(statusCode) {
|
1541
|
+
var statusCodeView;
|
1542
|
+
statusCodeView = new StatusCodeView({
|
1543
|
+
model: statusCode,
|
1544
|
+
tagName: 'tr'
|
1545
|
+
});
|
1546
|
+
return $('.operation-status', $(this.el)).append(statusCodeView.render().el);
|
1547
|
+
};
|
1548
|
+
|
1549
|
+
OperationView.prototype.submitOperation = function(e) {
|
1550
|
+
var error_free, form, isFileUpload, map, o, opts, val, _i, _j, _k, _len, _len1, _len2, _ref5, _ref6, _ref7;
|
1551
|
+
if (e != null) {
|
1552
|
+
e.preventDefault();
|
1553
|
+
}
|
1554
|
+
form = $('.sandbox', $(this.el));
|
1555
|
+
error_free = true;
|
1556
|
+
form.find("input.required").each(function() {
|
1557
|
+
var _this = this;
|
1558
|
+
$(this).removeClass("error");
|
1559
|
+
if (jQuery.trim($(this).val()) === "") {
|
1560
|
+
$(this).addClass("error");
|
1561
|
+
$(this).wiggle({
|
1562
|
+
callback: function() {
|
1563
|
+
return $(_this).focus();
|
1564
|
+
}
|
1565
|
+
});
|
1566
|
+
return error_free = false;
|
1567
|
+
}
|
1568
|
+
});
|
1569
|
+
if (error_free) {
|
1570
|
+
map = {};
|
1571
|
+
opts = {
|
1572
|
+
parent: this
|
1573
|
+
};
|
1574
|
+
isFileUpload = false;
|
1575
|
+
_ref5 = form.find("input");
|
1576
|
+
for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
|
1577
|
+
o = _ref5[_i];
|
1578
|
+
if ((o.value != null) && jQuery.trim(o.value).length > 0) {
|
1579
|
+
map[o.name] = o.value;
|
1580
|
+
}
|
1581
|
+
if (o.type === "file") {
|
1582
|
+
isFileUpload = true;
|
1583
|
+
}
|
1584
|
+
}
|
1585
|
+
_ref6 = form.find("textarea");
|
1586
|
+
for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
|
1587
|
+
o = _ref6[_j];
|
1588
|
+
if ((o.value != null) && jQuery.trim(o.value).length > 0) {
|
1589
|
+
map["body"] = o.value;
|
1590
|
+
}
|
1591
|
+
}
|
1592
|
+
_ref7 = form.find("select");
|
1593
|
+
for (_k = 0, _len2 = _ref7.length; _k < _len2; _k++) {
|
1594
|
+
o = _ref7[_k];
|
1595
|
+
val = this.getSelectedValue(o);
|
1596
|
+
if ((val != null) && jQuery.trim(val).length > 0) {
|
1597
|
+
map[o.name] = val;
|
1598
|
+
}
|
1599
|
+
}
|
1600
|
+
opts.responseContentType = $("div select[name=responseContentType]", $(this.el)).val();
|
1601
|
+
opts.requestContentType = $("div select[name=parameterContentType]", $(this.el)).val();
|
1602
|
+
$(".response_throbber", $(this.el)).show();
|
1603
|
+
if (isFileUpload) {
|
1604
|
+
return this.handleFileUpload(map, form);
|
1605
|
+
} else {
|
1606
|
+
return this.model["do"](map, opts, this.showCompleteStatus, this.showErrorStatus, this);
|
1607
|
+
}
|
1608
|
+
}
|
1609
|
+
};
|
1610
|
+
|
1611
|
+
OperationView.prototype.success = function(response, parent) {
|
1612
|
+
return parent.showCompleteStatus(response);
|
1613
|
+
};
|
1614
|
+
|
1615
|
+
OperationView.prototype.handleFileUpload = function(map, form) {
|
1616
|
+
var bodyParam, el, headerParams, o, obj, param, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref5, _ref6, _ref7, _ref8,
|
1617
|
+
_this = this;
|
1618
|
+
log("it's a file upload");
|
1619
|
+
_ref5 = form.serializeArray();
|
1620
|
+
for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
|
1621
|
+
o = _ref5[_i];
|
1622
|
+
if ((o.value != null) && jQuery.trim(o.value).length > 0) {
|
1623
|
+
map[o.name] = o.value;
|
1624
|
+
}
|
1625
|
+
}
|
1626
|
+
bodyParam = new FormData();
|
1627
|
+
_ref6 = this.model.parameters;
|
1628
|
+
for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
|
1629
|
+
param = _ref6[_j];
|
1630
|
+
if (param.paramType === 'form') {
|
1631
|
+
bodyParam.append(param.name, map[param.name]);
|
1632
|
+
}
|
1633
|
+
}
|
1634
|
+
headerParams = {};
|
1635
|
+
_ref7 = this.model.parameters;
|
1636
|
+
for (_k = 0, _len2 = _ref7.length; _k < _len2; _k++) {
|
1637
|
+
param = _ref7[_k];
|
1638
|
+
if (param.paramType === 'header') {
|
1639
|
+
headerParams[param.name] = map[param.name];
|
1640
|
+
}
|
1641
|
+
}
|
1642
|
+
log(headerParams);
|
1643
|
+
_ref8 = form.find('input[type~="file"]');
|
1644
|
+
for (_l = 0, _len3 = _ref8.length; _l < _len3; _l++) {
|
1645
|
+
el = _ref8[_l];
|
1646
|
+
bodyParam.append($(el).attr('name'), el.files[0]);
|
1647
|
+
}
|
1648
|
+
log(bodyParam);
|
1649
|
+
this.invocationUrl = this.model.supportHeaderParams() ? (headerParams = this.model.getHeaderParams(map), this.model.urlify(map, false)) : this.model.urlify(map, true);
|
1650
|
+
$(".request_url", $(this.el)).html("<pre>" + this.invocationUrl + "</pre>");
|
1651
|
+
obj = {
|
1652
|
+
type: this.model.method,
|
1653
|
+
url: this.invocationUrl,
|
1654
|
+
headers: headerParams,
|
1655
|
+
data: bodyParam,
|
1656
|
+
dataType: 'json',
|
1657
|
+
contentType: false,
|
1658
|
+
processData: false,
|
1659
|
+
error: function(data, textStatus, error) {
|
1660
|
+
return _this.showErrorStatus(_this.wrap(data), _this);
|
1661
|
+
},
|
1662
|
+
success: function(data) {
|
1663
|
+
return _this.showResponse(data, _this);
|
1664
|
+
},
|
1665
|
+
complete: function(data) {
|
1666
|
+
return _this.showCompleteStatus(_this.wrap(data), _this);
|
1667
|
+
}
|
1668
|
+
};
|
1669
|
+
if (window.authorizations) {
|
1670
|
+
window.authorizations.apply(obj);
|
1671
|
+
}
|
1672
|
+
jQuery.ajax(obj);
|
1673
|
+
return false;
|
1674
|
+
};
|
1675
|
+
|
1676
|
+
OperationView.prototype.wrap = function(data) {
|
1677
|
+
var headerArray, headers, i, o, _i, _ref5, _ref6;
|
1678
|
+
headers = {};
|
1679
|
+
headerArray = data.getAllResponseHeaders().split(":");
|
1680
|
+
for (i = _i = 0, _ref5 = headerArray.length / 2, _ref6 = 2.; _ref6 > 0 ? _i <= _ref5 : _i >= _ref5; i = _i += _ref6) {
|
1681
|
+
headers[headerArray[i]] = headerArray[i + 1];
|
1682
|
+
}
|
1683
|
+
o = {};
|
1684
|
+
o.content = {};
|
1685
|
+
o.content.data = data.responseText;
|
1686
|
+
o.headers = headers;
|
1687
|
+
o.request = {};
|
1688
|
+
o.request.url = this.invocationUrl;
|
1689
|
+
o.status = data.status;
|
1690
|
+
return o;
|
1691
|
+
};
|
1692
|
+
|
1693
|
+
OperationView.prototype.getSelectedValue = function(select) {
|
1694
|
+
var opt, options, _i, _len, _ref5;
|
1695
|
+
if (!select.multiple) {
|
1696
|
+
return select.value;
|
1697
|
+
} else {
|
1698
|
+
options = [];
|
1699
|
+
_ref5 = select.options;
|
1700
|
+
for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
|
1701
|
+
opt = _ref5[_i];
|
1702
|
+
if (opt.selected) {
|
1703
|
+
options.push(opt.value);
|
1704
|
+
}
|
1705
|
+
}
|
1706
|
+
if (options.length > 0) {
|
1707
|
+
return options.join(",");
|
1708
|
+
} else {
|
1709
|
+
return null;
|
1710
|
+
}
|
1711
|
+
}
|
1712
|
+
};
|
1713
|
+
|
1714
|
+
OperationView.prototype.hideResponse = function(e) {
|
1715
|
+
if (e != null) {
|
1716
|
+
e.preventDefault();
|
1717
|
+
}
|
1718
|
+
$(".response", $(this.el)).slideUp();
|
1719
|
+
return $(".response_hider", $(this.el)).fadeOut();
|
1720
|
+
};
|
1721
|
+
|
1722
|
+
OperationView.prototype.showResponse = function(response) {
|
1723
|
+
var prettyJson;
|
1724
|
+
prettyJson = JSON.stringify(response, null, "\t").replace(/\n/g, "<br>");
|
1725
|
+
return $(".response_body", $(this.el)).html(escape(prettyJson));
|
1726
|
+
};
|
1727
|
+
|
1728
|
+
OperationView.prototype.showErrorStatus = function(data, parent) {
|
1729
|
+
return parent.showStatus(data);
|
1730
|
+
};
|
1731
|
+
|
1732
|
+
OperationView.prototype.showCompleteStatus = function(data, parent) {
|
1733
|
+
return parent.showStatus(data);
|
1734
|
+
};
|
1735
|
+
|
1736
|
+
OperationView.prototype.formatXml = function(xml) {
|
1737
|
+
var contexp, formatted, indent, lastType, lines, ln, pad, reg, transitions, wsexp, _fn, _i, _len;
|
1738
|
+
reg = /(>)(<)(\/*)/g;
|
1739
|
+
wsexp = /[ ]*(.*)[ ]+\n/g;
|
1740
|
+
contexp = /(<.+>)(.+\n)/g;
|
1741
|
+
xml = xml.replace(reg, '$1\n$2$3').replace(wsexp, '$1\n').replace(contexp, '$1\n$2');
|
1742
|
+
pad = 0;
|
1743
|
+
formatted = '';
|
1744
|
+
lines = xml.split('\n');
|
1745
|
+
indent = 0;
|
1746
|
+
lastType = 'other';
|
1747
|
+
transitions = {
|
1748
|
+
'single->single': 0,
|
1749
|
+
'single->closing': -1,
|
1750
|
+
'single->opening': 0,
|
1751
|
+
'single->other': 0,
|
1752
|
+
'closing->single': 0,
|
1753
|
+
'closing->closing': -1,
|
1754
|
+
'closing->opening': 0,
|
1755
|
+
'closing->other': 0,
|
1756
|
+
'opening->single': 1,
|
1757
|
+
'opening->closing': 0,
|
1758
|
+
'opening->opening': 1,
|
1759
|
+
'opening->other': 1,
|
1760
|
+
'other->single': 0,
|
1761
|
+
'other->closing': -1,
|
1762
|
+
'other->opening': 0,
|
1763
|
+
'other->other': 0
|
1764
|
+
};
|
1765
|
+
_fn = function(ln) {
|
1766
|
+
var fromTo, j, key, padding, type, types, value;
|
1767
|
+
types = {
|
1768
|
+
single: Boolean(ln.match(/<.+\/>/)),
|
1769
|
+
closing: Boolean(ln.match(/<\/.+>/)),
|
1770
|
+
opening: Boolean(ln.match(/<[^!?].*>/))
|
1771
|
+
};
|
1772
|
+
type = ((function() {
|
1773
|
+
var _results;
|
1774
|
+
_results = [];
|
1775
|
+
for (key in types) {
|
1776
|
+
value = types[key];
|
1777
|
+
if (value) {
|
1778
|
+
_results.push(key);
|
1779
|
+
}
|
1780
|
+
}
|
1781
|
+
return _results;
|
1782
|
+
})())[0];
|
1783
|
+
type = type === void 0 ? 'other' : type;
|
1784
|
+
fromTo = lastType + '->' + type;
|
1785
|
+
lastType = type;
|
1786
|
+
padding = '';
|
1787
|
+
indent += transitions[fromTo];
|
1788
|
+
padding = ((function() {
|
1789
|
+
var _j, _ref5, _results;
|
1790
|
+
_results = [];
|
1791
|
+
for (j = _j = 0, _ref5 = indent; 0 <= _ref5 ? _j < _ref5 : _j > _ref5; j = 0 <= _ref5 ? ++_j : --_j) {
|
1792
|
+
_results.push(' ');
|
1793
|
+
}
|
1794
|
+
return _results;
|
1795
|
+
})()).join('');
|
1796
|
+
if (fromTo === 'opening->closing') {
|
1797
|
+
return formatted = formatted.substr(0, formatted.length - 1) + ln + '\n';
|
1798
|
+
} else {
|
1799
|
+
return formatted += padding + ln + '\n';
|
1800
|
+
}
|
1801
|
+
};
|
1802
|
+
for (_i = 0, _len = lines.length; _i < _len; _i++) {
|
1803
|
+
ln = lines[_i];
|
1804
|
+
_fn(ln);
|
1805
|
+
}
|
1806
|
+
return formatted;
|
1807
|
+
};
|
1808
|
+
|
1809
|
+
OperationView.prototype.showStatus = function(response) {
|
1810
|
+
var code, content, contentType, headers, pre, response_body, url;
|
1811
|
+
if (response.content === void 0) {
|
1812
|
+
content = response.data;
|
1813
|
+
url = response.url;
|
1814
|
+
} else {
|
1815
|
+
content = response.content.data;
|
1816
|
+
url = response.request.url;
|
1817
|
+
}
|
1818
|
+
headers = response.headers;
|
1819
|
+
contentType = headers && headers["Content-Type"] ? headers["Content-Type"].split(";")[0].trim() : null;
|
1820
|
+
if (!content) {
|
1821
|
+
code = $('<code />').text("no content");
|
1822
|
+
pre = $('<pre class="json" />').append(code);
|
1823
|
+
} else if (contentType === "application/json" || /\+json$/.test(contentType)) {
|
1824
|
+
code = $('<code />').text(JSON.stringify(JSON.parse(content), null, " "));
|
1825
|
+
pre = $('<pre class="json" />').append(code);
|
1826
|
+
} else if (contentType === "application/xml" || /\+xml$/.test(contentType)) {
|
1827
|
+
code = $('<code />').text(this.formatXml(content));
|
1828
|
+
pre = $('<pre class="xml" />').append(code);
|
1829
|
+
} else if (contentType === "text/html") {
|
1830
|
+
code = $('<code />').html(content);
|
1831
|
+
pre = $('<pre class="xml" />').append(code);
|
1832
|
+
} else if (/^image\//.test(contentType)) {
|
1833
|
+
pre = $('<img>').attr('src', url);
|
1834
|
+
} else {
|
1835
|
+
code = $('<code />').text(content);
|
1836
|
+
pre = $('<pre class="json" />').append(code);
|
1837
|
+
}
|
1838
|
+
response_body = pre;
|
1839
|
+
$(".request_url", $(this.el)).html("<pre>" + url + "</pre>");
|
1840
|
+
$(".response_code", $(this.el)).html("<pre>" + response.status + "</pre>");
|
1841
|
+
$(".response_body", $(this.el)).html(response_body);
|
1842
|
+
$(".response_headers", $(this.el)).html("<pre>" + JSON.stringify(response.headers, null, " ").replace(/\n/g, "<br>") + "</pre>");
|
1843
|
+
$(".response", $(this.el)).slideDown();
|
1844
|
+
$(".response_hider", $(this.el)).show();
|
1845
|
+
$(".response_throbber", $(this.el)).hide();
|
1846
|
+
return hljs.highlightBlock($('.response_body', $(this.el))[0]);
|
1847
|
+
};
|
1848
|
+
|
1849
|
+
OperationView.prototype.toggleOperationContent = function() {
|
1850
|
+
var elem;
|
1851
|
+
elem = $('#' + Docs.escapeResourceName(this.model.parentId) + "_" + this.model.nickname + "_content");
|
1852
|
+
if (elem.is(':visible')) {
|
1853
|
+
return Docs.collapseOperation(elem);
|
1854
|
+
} else {
|
1855
|
+
return Docs.expandOperation(elem);
|
1856
|
+
}
|
1857
|
+
};
|
1858
|
+
|
1859
|
+
return OperationView;
|
1860
|
+
|
1861
|
+
})(Backbone.View);
|
1862
|
+
|
1863
|
+
StatusCodeView = (function(_super) {
|
1864
|
+
__extends(StatusCodeView, _super);
|
1865
|
+
|
1866
|
+
function StatusCodeView() {
|
1867
|
+
_ref5 = StatusCodeView.__super__.constructor.apply(this, arguments);
|
1868
|
+
return _ref5;
|
1869
|
+
}
|
1870
|
+
|
1871
|
+
StatusCodeView.prototype.initialize = function() {};
|
1872
|
+
|
1873
|
+
StatusCodeView.prototype.render = function() {
|
1874
|
+
var template;
|
1875
|
+
template = this.template();
|
1876
|
+
$(this.el).html(template(this.model));
|
1877
|
+
return this;
|
1878
|
+
};
|
1879
|
+
|
1880
|
+
StatusCodeView.prototype.template = function() {
|
1881
|
+
return Handlebars.templates.status_code;
|
1882
|
+
};
|
1883
|
+
|
1884
|
+
return StatusCodeView;
|
1885
|
+
|
1886
|
+
})(Backbone.View);
|
1887
|
+
|
1888
|
+
ParameterView = (function(_super) {
|
1889
|
+
__extends(ParameterView, _super);
|
1890
|
+
|
1891
|
+
function ParameterView() {
|
1892
|
+
_ref6 = ParameterView.__super__.constructor.apply(this, arguments);
|
1893
|
+
return _ref6;
|
1894
|
+
}
|
1895
|
+
|
1896
|
+
ParameterView.prototype.initialize = function() {};
|
1897
|
+
|
1898
|
+
ParameterView.prototype.render = function() {
|
1899
|
+
var contentTypeModel, isParam, parameterContentTypeView, responseContentTypeView, signatureModel, signatureView, template, type;
|
1900
|
+
type = this.model.type || this.model.dataType;
|
1901
|
+
if (this.model.paramType === 'body') {
|
1902
|
+
this.model.isBody = true;
|
1903
|
+
}
|
1904
|
+
if (type.toLowerCase() === 'file') {
|
1905
|
+
this.model.isFile = true;
|
1906
|
+
}
|
1907
|
+
template = this.template();
|
1908
|
+
$(this.el).html(template(this.model));
|
1909
|
+
signatureModel = {
|
1910
|
+
sampleJSON: this.model.sampleJSON,
|
1911
|
+
isParam: true,
|
1912
|
+
signature: this.model.signature
|
1913
|
+
};
|
1914
|
+
if (this.model.sampleJSON) {
|
1915
|
+
signatureView = new SignatureView({
|
1916
|
+
model: signatureModel,
|
1917
|
+
tagName: 'div'
|
1918
|
+
});
|
1919
|
+
$('.model-signature', $(this.el)).append(signatureView.render().el);
|
1920
|
+
} else {
|
1921
|
+
$('.model-signature', $(this.el)).html(this.model.signature);
|
1922
|
+
}
|
1923
|
+
isParam = false;
|
1924
|
+
if (this.model.isBody) {
|
1925
|
+
isParam = true;
|
1926
|
+
}
|
1927
|
+
contentTypeModel = {
|
1928
|
+
isParam: isParam
|
1929
|
+
};
|
1930
|
+
contentTypeModel.consumes = this.model.consumes;
|
1931
|
+
if (isParam) {
|
1932
|
+
parameterContentTypeView = new ParameterContentTypeView({
|
1933
|
+
model: contentTypeModel
|
1934
|
+
});
|
1935
|
+
$('.parameter-content-type', $(this.el)).append(parameterContentTypeView.render().el);
|
1936
|
+
} else {
|
1937
|
+
responseContentTypeView = new ResponseContentTypeView({
|
1938
|
+
model: contentTypeModel
|
1939
|
+
});
|
1940
|
+
$('.response-content-type', $(this.el)).append(responseContentTypeView.render().el);
|
1941
|
+
}
|
1942
|
+
return this;
|
1943
|
+
};
|
1944
|
+
|
1945
|
+
ParameterView.prototype.template = function() {
|
1946
|
+
if (this.model.isList) {
|
1947
|
+
return Handlebars.templates.param_list;
|
1948
|
+
} else {
|
1949
|
+
if (this.options.readOnly) {
|
1950
|
+
if (this.model.required) {
|
1951
|
+
return Handlebars.templates.param_readonly_required;
|
1952
|
+
} else {
|
1953
|
+
return Handlebars.templates.param_readonly;
|
1954
|
+
}
|
1955
|
+
} else {
|
1956
|
+
if (this.model.required) {
|
1957
|
+
return Handlebars.templates.param_required;
|
1958
|
+
} else {
|
1959
|
+
return Handlebars.templates.param;
|
1960
|
+
}
|
1961
|
+
}
|
1962
|
+
}
|
1963
|
+
};
|
1964
|
+
|
1965
|
+
return ParameterView;
|
1966
|
+
|
1967
|
+
})(Backbone.View);
|
1968
|
+
|
1969
|
+
SignatureView = (function(_super) {
|
1970
|
+
__extends(SignatureView, _super);
|
1971
|
+
|
1972
|
+
function SignatureView() {
|
1973
|
+
_ref7 = SignatureView.__super__.constructor.apply(this, arguments);
|
1974
|
+
return _ref7;
|
1975
|
+
}
|
1976
|
+
|
1977
|
+
SignatureView.prototype.events = {
|
1978
|
+
'click a.description-link': 'switchToDescription',
|
1979
|
+
'click a.snippet-link': 'switchToSnippet',
|
1980
|
+
'mousedown .snippet': 'snippetToTextArea'
|
1981
|
+
};
|
1982
|
+
|
1983
|
+
SignatureView.prototype.initialize = function() {};
|
1984
|
+
|
1985
|
+
SignatureView.prototype.render = function() {
|
1986
|
+
var template;
|
1987
|
+
template = this.template();
|
1988
|
+
$(this.el).html(template(this.model));
|
1989
|
+
this.switchToDescription();
|
1990
|
+
this.isParam = this.model.isParam;
|
1991
|
+
if (this.isParam) {
|
1992
|
+
$('.notice', $(this.el)).text('Click to set as parameter value');
|
1993
|
+
}
|
1994
|
+
return this;
|
1995
|
+
};
|
1996
|
+
|
1997
|
+
SignatureView.prototype.template = function() {
|
1998
|
+
return Handlebars.templates.signature;
|
1999
|
+
};
|
2000
|
+
|
2001
|
+
SignatureView.prototype.switchToDescription = function(e) {
|
2002
|
+
if (e != null) {
|
2003
|
+
e.preventDefault();
|
2004
|
+
}
|
2005
|
+
$(".snippet", $(this.el)).hide();
|
2006
|
+
$(".description", $(this.el)).show();
|
2007
|
+
$('.description-link', $(this.el)).addClass('selected');
|
2008
|
+
return $('.snippet-link', $(this.el)).removeClass('selected');
|
2009
|
+
};
|
2010
|
+
|
2011
|
+
SignatureView.prototype.switchToSnippet = function(e) {
|
2012
|
+
if (e != null) {
|
2013
|
+
e.preventDefault();
|
2014
|
+
}
|
2015
|
+
$(".description", $(this.el)).hide();
|
2016
|
+
$(".snippet", $(this.el)).show();
|
2017
|
+
$('.snippet-link', $(this.el)).addClass('selected');
|
2018
|
+
return $('.description-link', $(this.el)).removeClass('selected');
|
2019
|
+
};
|
2020
|
+
|
2021
|
+
SignatureView.prototype.snippetToTextArea = function(e) {
|
2022
|
+
var textArea;
|
2023
|
+
if (this.isParam) {
|
2024
|
+
if (e != null) {
|
2025
|
+
e.preventDefault();
|
2026
|
+
}
|
2027
|
+
textArea = $('textarea', $(this.el.parentNode.parentNode.parentNode));
|
2028
|
+
if ($.trim(textArea.val()) === '') {
|
2029
|
+
return textArea.val(this.model.sampleJSON);
|
2030
|
+
}
|
2031
|
+
}
|
2032
|
+
};
|
2033
|
+
|
2034
|
+
return SignatureView;
|
2035
|
+
|
2036
|
+
})(Backbone.View);
|
2037
|
+
|
2038
|
+
ContentTypeView = (function(_super) {
|
2039
|
+
__extends(ContentTypeView, _super);
|
2040
|
+
|
2041
|
+
function ContentTypeView() {
|
2042
|
+
_ref8 = ContentTypeView.__super__.constructor.apply(this, arguments);
|
2043
|
+
return _ref8;
|
2044
|
+
}
|
2045
|
+
|
2046
|
+
ContentTypeView.prototype.initialize = function() {};
|
2047
|
+
|
2048
|
+
ContentTypeView.prototype.render = function() {
|
2049
|
+
var template;
|
2050
|
+
template = this.template();
|
2051
|
+
$(this.el).html(template(this.model));
|
2052
|
+
$('label[for=contentType]', $(this.el)).text('Response Content Type');
|
2053
|
+
return this;
|
2054
|
+
};
|
2055
|
+
|
2056
|
+
ContentTypeView.prototype.template = function() {
|
2057
|
+
return Handlebars.templates.content_type;
|
2058
|
+
};
|
2059
|
+
|
2060
|
+
return ContentTypeView;
|
2061
|
+
|
2062
|
+
})(Backbone.View);
|
2063
|
+
|
2064
|
+
ResponseContentTypeView = (function(_super) {
|
2065
|
+
__extends(ResponseContentTypeView, _super);
|
2066
|
+
|
2067
|
+
function ResponseContentTypeView() {
|
2068
|
+
_ref9 = ResponseContentTypeView.__super__.constructor.apply(this, arguments);
|
2069
|
+
return _ref9;
|
2070
|
+
}
|
2071
|
+
|
2072
|
+
ResponseContentTypeView.prototype.initialize = function() {};
|
2073
|
+
|
2074
|
+
ResponseContentTypeView.prototype.render = function() {
|
2075
|
+
var template;
|
2076
|
+
template = this.template();
|
2077
|
+
$(this.el).html(template(this.model));
|
2078
|
+
$('label[for=responseContentType]', $(this.el)).text('Response Content Type');
|
2079
|
+
return this;
|
2080
|
+
};
|
2081
|
+
|
2082
|
+
ResponseContentTypeView.prototype.template = function() {
|
2083
|
+
return Handlebars.templates.response_content_type;
|
2084
|
+
};
|
2085
|
+
|
2086
|
+
return ResponseContentTypeView;
|
2087
|
+
|
2088
|
+
})(Backbone.View);
|
2089
|
+
|
2090
|
+
ParameterContentTypeView = (function(_super) {
|
2091
|
+
__extends(ParameterContentTypeView, _super);
|
2092
|
+
|
2093
|
+
function ParameterContentTypeView() {
|
2094
|
+
_ref10 = ParameterContentTypeView.__super__.constructor.apply(this, arguments);
|
2095
|
+
return _ref10;
|
2096
|
+
}
|
2097
|
+
|
2098
|
+
ParameterContentTypeView.prototype.initialize = function() {};
|
2099
|
+
|
2100
|
+
ParameterContentTypeView.prototype.render = function() {
|
2101
|
+
var template;
|
2102
|
+
template = this.template();
|
2103
|
+
$(this.el).html(template(this.model));
|
2104
|
+
$('label[for=parameterContentType]', $(this.el)).text('Parameter content type:');
|
2105
|
+
return this;
|
2106
|
+
};
|
2107
|
+
|
2108
|
+
ParameterContentTypeView.prototype.template = function() {
|
2109
|
+
return Handlebars.templates.parameter_content_type;
|
2110
|
+
};
|
2111
|
+
|
2112
|
+
return ParameterContentTypeView;
|
2113
|
+
|
2114
|
+
})(Backbone.View);
|
2115
|
+
|
2116
|
+
}).call(this);
|