Pass router to all views

This commit is contained in:
Mohsen Azimi
2015-03-16 11:08:28 -07:00
parent 194f2d5fb5
commit 9ed1ad88ec
6 changed files with 32 additions and 12 deletions

20
dist/swagger-ui.js vendored
View File

@@ -39,7 +39,7 @@ window.SwaggerUi = Backbone.Router.extend({
} }
// Create an empty div which contains the dom_id // Create an empty div which contains the dom_id
if (! $('#' + this.dom_id)){ if (! $('#' + this.dom_id).length){
$('body').append('<div id="' + this.dom_id + '"></div>') ; $('body').append('<div id="' + this.dom_id + '"></div>') ;
} }
@@ -118,7 +118,8 @@ window.SwaggerUi = Backbone.Router.extend({
this.mainView = new SwaggerUi.Views.MainView({ this.mainView = new SwaggerUi.Views.MainView({
model: this.api, model: this.api,
el: $('#' + this.dom_id), el: $('#' + this.dom_id),
swaggerOptions: this.options swaggerOptions: this.options,
router: this
}).render(); }).render();
this.showMessage(); this.showMessage();
switch (this.options.docExpansion) { switch (this.options.docExpansion) {
@@ -1181,6 +1182,9 @@ SwaggerUi.Views.MainView = Backbone.View.extend({
initialize: function(opts){ initialize: function(opts){
opts = opts || {}; opts = opts || {};
this.router = opts.router;
// set up the UI for input // set up the UI for input
this.model.auths = []; this.model.auths = [];
var key, value; var key, value;
@@ -1221,12 +1225,12 @@ SwaggerUi.Views.MainView = Backbone.View.extend({
var button; var button;
if (auth.type === 'apiKey' && $('#apikey_button').length === 0) { if (auth.type === 'apiKey' && $('#apikey_button').length === 0) {
button = new SwaggerUi.Views.ApiKeyButton({model: auth}).render().el; button = new SwaggerUi.Views.ApiKeyButton({model: auth, router: this.router}).render().el;
$('.auth_main_container').append(button); $('.auth_main_container').append(button);
} }
if (auth.type === 'basicAuth' && $('#basic_auth_button').length === 0) { if (auth.type === 'basicAuth' && $('#basic_auth_button').length === 0) {
button = new SwaggerUi.Views.BasicAuthButton({model: auth}).render().el; button = new SwaggerUi.Views.BasicAuthButton({model: auth, router: this.router}).render().el;
$('.auth_main_container').append(button); $('.auth_main_container').append(button);
} }
} }
@@ -1264,6 +1268,7 @@ SwaggerUi.Views.MainView = Backbone.View.extend({
resource.id = resource.id.replace(/\s/g, '_'); resource.id = resource.id.replace(/\s/g, '_');
var resourceView = new SwaggerUi.Views.ResourceView({ var resourceView = new SwaggerUi.Views.ResourceView({
model: resource, model: resource,
router: this.router,
tagName: 'li', tagName: 'li',
id: 'resource_' + resource.id, id: 'resource_' + resource.id,
className: 'resource', className: 'resource',
@@ -1293,6 +1298,7 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
initialize: function(opts) { initialize: function(opts) {
opts = opts || {}; opts = opts || {};
this.router = opts.router;
this.auths = opts.auths; this.auths = opts.auths;
this.parentId = this.model.parentId; this.parentId = this.model.parentId;
this.nickname = this.model.nickname; this.nickname = this.model.nickname;
@@ -1444,6 +1450,7 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
if (signatureModel) { if (signatureModel) {
responseSignatureView = new SwaggerUi.Views.SignatureView({ responseSignatureView = new SwaggerUi.Views.SignatureView({
model: signatureModel, model: signatureModel,
router: this.router,
tagName: 'div' tagName: 'div'
}); });
$('.model-signature', $(this.el)).append(responseSignatureView.render().el); $('.model-signature', $(this.el)).append(responseSignatureView.render().el);
@@ -1479,7 +1486,8 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
param.type = type; param.type = type;
} }
responseContentTypeView = new SwaggerUi.Views.ResponseContentTypeView({ responseContentTypeView = new SwaggerUi.Views.ResponseContentTypeView({
model: contentTypeModel model: contentTypeModel,
router: this.router
}); });
$('.response-content-type', $(this.el)).append(responseContentTypeView.render().el); $('.response-content-type', $(this.el)).append(responseContentTypeView.render().el);
ref4 = this.model.parameters; ref4 = this.model.parameters;
@@ -2021,6 +2029,7 @@ SwaggerUi.Views.ParameterView = Backbone.View.extend({
SwaggerUi.Views.ResourceView = Backbone.View.extend({ SwaggerUi.Views.ResourceView = Backbone.View.extend({
initialize: function(opts) { initialize: function(opts) {
opts = opts || {}; opts = opts || {};
this.router = opts.router;
this.auths = opts.auths; this.auths = opts.auths;
if ('' === this.model.description) { if ('' === this.model.description) {
this.model.description = null; this.model.description = null;
@@ -2068,6 +2077,7 @@ SwaggerUi.Views.ResourceView = Backbone.View.extend({
// Render an operation and add it to operations li // Render an operation and add it to operations li
var operationView = new SwaggerUi.Views.OperationView({ var operationView = new SwaggerUi.Views.OperationView({
model: operation, model: operation,
router: this.router,
tagName: 'li', tagName: 'li',
className: 'endpoint', className: 'endpoint',
swaggerOptions: this.options.swaggerOptions, swaggerOptions: this.options.swaggerOptions,

File diff suppressed because one or more lines are too long

View File

@@ -33,7 +33,7 @@ window.SwaggerUi = Backbone.Router.extend({
} }
// Create an empty div which contains the dom_id // Create an empty div which contains the dom_id
if (! $('#' + this.dom_id)){ if (! $('#' + this.dom_id).length){
$('body').append('<div id="' + this.dom_id + '"></div>') ; $('body').append('<div id="' + this.dom_id + '"></div>') ;
} }
@@ -112,7 +112,8 @@ window.SwaggerUi = Backbone.Router.extend({
this.mainView = new SwaggerUi.Views.MainView({ this.mainView = new SwaggerUi.Views.MainView({
model: this.api, model: this.api,
el: $('#' + this.dom_id), el: $('#' + this.dom_id),
swaggerOptions: this.options swaggerOptions: this.options,
router: this
}).render(); }).render();
this.showMessage(); this.showMessage();
switch (this.options.docExpansion) { switch (this.options.docExpansion) {

View File

@@ -10,6 +10,9 @@ SwaggerUi.Views.MainView = Backbone.View.extend({
initialize: function(opts){ initialize: function(opts){
opts = opts || {}; opts = opts || {};
this.router = opts.router;
// set up the UI for input // set up the UI for input
this.model.auths = []; this.model.auths = [];
var key, value; var key, value;
@@ -50,12 +53,12 @@ SwaggerUi.Views.MainView = Backbone.View.extend({
var button; var button;
if (auth.type === 'apiKey' && $('#apikey_button').length === 0) { if (auth.type === 'apiKey' && $('#apikey_button').length === 0) {
button = new SwaggerUi.Views.ApiKeyButton({model: auth}).render().el; button = new SwaggerUi.Views.ApiKeyButton({model: auth, router: this.router}).render().el;
$('.auth_main_container').append(button); $('.auth_main_container').append(button);
} }
if (auth.type === 'basicAuth' && $('#basic_auth_button').length === 0) { if (auth.type === 'basicAuth' && $('#basic_auth_button').length === 0) {
button = new SwaggerUi.Views.BasicAuthButton({model: auth}).render().el; button = new SwaggerUi.Views.BasicAuthButton({model: auth, router: this.router}).render().el;
$('.auth_main_container').append(button); $('.auth_main_container').append(button);
} }
} }
@@ -93,6 +96,7 @@ SwaggerUi.Views.MainView = Backbone.View.extend({
resource.id = resource.id.replace(/\s/g, '_'); resource.id = resource.id.replace(/\s/g, '_');
var resourceView = new SwaggerUi.Views.ResourceView({ var resourceView = new SwaggerUi.Views.ResourceView({
model: resource, model: resource,
router: this.router,
tagName: 'li', tagName: 'li',
id: 'resource_' + resource.id, id: 'resource_' + resource.id,
className: 'resource', className: 'resource',

View File

@@ -14,6 +14,7 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
initialize: function(opts) { initialize: function(opts) {
opts = opts || {}; opts = opts || {};
this.router = opts.router;
this.auths = opts.auths; this.auths = opts.auths;
this.parentId = this.model.parentId; this.parentId = this.model.parentId;
this.nickname = this.model.nickname; this.nickname = this.model.nickname;
@@ -165,6 +166,7 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
if (signatureModel) { if (signatureModel) {
responseSignatureView = new SwaggerUi.Views.SignatureView({ responseSignatureView = new SwaggerUi.Views.SignatureView({
model: signatureModel, model: signatureModel,
router: this.router,
tagName: 'div' tagName: 'div'
}); });
$('.model-signature', $(this.el)).append(responseSignatureView.render().el); $('.model-signature', $(this.el)).append(responseSignatureView.render().el);
@@ -200,7 +202,8 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({
param.type = type; param.type = type;
} }
responseContentTypeView = new SwaggerUi.Views.ResponseContentTypeView({ responseContentTypeView = new SwaggerUi.Views.ResponseContentTypeView({
model: contentTypeModel model: contentTypeModel,
router: this.router
}); });
$('.response-content-type', $(this.el)).append(responseContentTypeView.render().el); $('.response-content-type', $(this.el)).append(responseContentTypeView.render().el);
ref4 = this.model.parameters; ref4 = this.model.parameters;

View File

@@ -3,6 +3,7 @@
SwaggerUi.Views.ResourceView = Backbone.View.extend({ SwaggerUi.Views.ResourceView = Backbone.View.extend({
initialize: function(opts) { initialize: function(opts) {
opts = opts || {}; opts = opts || {};
this.router = opts.router;
this.auths = opts.auths; this.auths = opts.auths;
if ('' === this.model.description) { if ('' === this.model.description) {
this.model.description = null; this.model.description = null;
@@ -50,6 +51,7 @@ SwaggerUi.Views.ResourceView = Backbone.View.extend({
// Render an operation and add it to operations li // Render an operation and add it to operations li
var operationView = new SwaggerUi.Views.OperationView({ var operationView = new SwaggerUi.Views.OperationView({
model: operation, model: operation,
router: this.router,
tagName: 'li', tagName: 'li',
className: 'endpoint', className: 'endpoint',
swaggerOptions: this.options.swaggerOptions, swaggerOptions: this.options.swaggerOptions,