lazy loading for everybody!
parent
a10761b889
commit
68580dad72
|
@ -16,6 +16,17 @@
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
Backbone.Model.prototype.fetchIfNeeded = function(options) {
|
Backbone.Model.prototype.fetchIfNeeded = function(options) {
|
||||||
|
var _self = this;
|
||||||
|
if (!options) {
|
||||||
|
options = {};
|
||||||
|
}
|
||||||
|
var success = options.success;
|
||||||
|
options.success = function(c, r) {
|
||||||
|
_self.isFetched = true;
|
||||||
|
if (success) {
|
||||||
|
success(c, r);
|
||||||
|
}
|
||||||
|
};
|
||||||
if (!this.isFetched) {
|
if (!this.isFetched) {
|
||||||
return this.fetch(options);
|
return this.fetch(options);
|
||||||
} else {
|
} else {
|
||||||
|
@ -23,6 +34,17 @@ Backbone.Model.prototype.fetchIfNeeded = function(options) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Backbone.Collection.prototype.fetchIfNeeded = function(options) {
|
Backbone.Collection.prototype.fetchIfNeeded = function(options) {
|
||||||
|
var _self = this;
|
||||||
|
if (!options) {
|
||||||
|
options = {};
|
||||||
|
}
|
||||||
|
var success = options.success;
|
||||||
|
options.success = function(c, r) {
|
||||||
|
_self.isFetched = true;
|
||||||
|
if (success) {
|
||||||
|
success(c, r);
|
||||||
|
}
|
||||||
|
};
|
||||||
if (!this.isFetched) {
|
if (!this.isFetched) {
|
||||||
return this.fetch(options);
|
return this.fetch(options);
|
||||||
} else {
|
} else {
|
||||||
|
@ -244,16 +266,28 @@ var BlackListListView = Backbone.View.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
load:function(callback) {
|
||||||
|
$('#loadingbox').show();
|
||||||
|
$('#loading').html('blacklist');
|
||||||
|
|
||||||
|
$.when(this.model.fetchIfNeeded()).done(function() {
|
||||||
|
$('#loadingbox').hide('slow');
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
events: {
|
events: {
|
||||||
"click .refresh-table":"refreshTable"
|
"click .refresh-table":"refreshTable"
|
||||||
},
|
},
|
||||||
|
|
||||||
refreshTable:function() {
|
refreshTable:function() {
|
||||||
var _self = this;
|
var _self = this;
|
||||||
this.model.fetch({
|
$('#loadingbox').show();
|
||||||
success: function() {
|
$('#loading').html('blacklist');
|
||||||
|
|
||||||
|
$.when(this.model.fetchIfNeeded()).done(function() {
|
||||||
|
$('#loadingbox').hide('slow');
|
||||||
_self.render();
|
_self.render();
|
||||||
}
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -581,9 +615,16 @@ var AppRouter = Backbone.Router.extend({
|
||||||
{text:"Manage Whitelisted Sites", href:"manage/#admin/whitelists"}
|
{text:"Manage Whitelisted Sites", href:"manage/#admin/whitelists"}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$('#content').html(this.whiteListListView.render().el);
|
var view = this.whiteListListView;
|
||||||
this.whiteListListView.delegateEvents();
|
|
||||||
|
view.load(
|
||||||
|
function() {
|
||||||
|
$('#content').html(view.render().el);
|
||||||
|
view.delegateEvents();
|
||||||
setPageTitle("Manage Whitelists");
|
setPageTitle("Manage Whitelists");
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -663,12 +704,12 @@ var AppRouter = Backbone.Router.extend({
|
||||||
|
|
||||||
var view = this.approvedSiteListView;
|
var view = this.approvedSiteListView;
|
||||||
|
|
||||||
this.approvedSiteList.fetch({success:
|
this.approvedSiteListView.load(
|
||||||
function(collection, response, options) {
|
function(collection, response, options) {
|
||||||
$('#content').html(view.render().el);
|
$('#content').html(view.render().el);
|
||||||
setPageTitle("Manage Approved Sites");
|
setPageTitle("Manage Approved Sites");
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -681,16 +722,13 @@ var AppRouter = Backbone.Router.extend({
|
||||||
|
|
||||||
var view = this.tokensListView;
|
var view = this.tokensListView;
|
||||||
|
|
||||||
app.accessTokensList.fetch({
|
view.load(
|
||||||
success:function(collection, response, options) {
|
function(collection, response, options) {
|
||||||
app.refreshTokensList.fetch({
|
|
||||||
success:function(collection, response, options) {
|
|
||||||
$('#content').html(view.render().el);
|
$('#content').html(view.render().el);
|
||||||
setPageTitle("Manage Active Tokens");
|
setPageTitle("Manage Active Tokens");
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
notImplemented:function(){
|
notImplemented:function(){
|
||||||
|
@ -716,13 +754,12 @@ var AppRouter = Backbone.Router.extend({
|
||||||
|
|
||||||
var view = this.blackListListView;
|
var view = this.blackListListView;
|
||||||
|
|
||||||
this.blackListList.fetch({success:
|
view.load(
|
||||||
function(collection, response, options) {
|
function(collection, response, options) {
|
||||||
$('#content').html(view.render().el);
|
$('#content').html(view.render().el);
|
||||||
setPageTitle("Manage Blacklist");
|
setPageTitle("Manage Blacklist");
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
siteScope:function() {
|
siteScope:function() {
|
||||||
|
@ -738,9 +775,13 @@ var AppRouter = Backbone.Router.extend({
|
||||||
{text:"Manage System Scopes", href:"manage/#admin/scope"}
|
{text:"Manage System Scopes", href:"manage/#admin/scope"}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$('#content').html(this.systemScopeListView.render().el);
|
var view = this.systemScopeListView;
|
||||||
this.systemScopeListView.delegateEvents();
|
|
||||||
|
view.load(function() {
|
||||||
|
$('#content').html(view.render().el);
|
||||||
|
view.delegateEvents();
|
||||||
setPageTitle("Manage System Scopes");
|
setPageTitle("Manage System Scopes");
|
||||||
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -236,20 +236,16 @@ var ClientListView = Backbone.View.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
load:function(callback) {
|
load:function(callback) {
|
||||||
var cleanup = function() {
|
$('#loadingbox').show();
|
||||||
$('#loadingbox').hide('slow');
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#loadingbox').show('slow');
|
|
||||||
$('#loading').html('clients');
|
$('#loading').html('clients');
|
||||||
|
|
||||||
$.when(this.model.fetchIfNeeded(),
|
$.when(this.model.fetchIfNeeded(),
|
||||||
this.options.whiteListList.fetchIfNeeded(),
|
this.options.whiteListList.fetchIfNeeded(),
|
||||||
this.options.stats.fetchIfNeeded(),
|
this.options.stats.fetchIfNeeded(),
|
||||||
this.options.systemScopeList.fetchIfNeeded()).done(cleanup);
|
this.options.systemScopeList.fetchIfNeeded()).done(function() {
|
||||||
|
$('#loadingbox').hide('slow');
|
||||||
//this.model.fetchIfNeeded({success:cleanup});
|
callback();
|
||||||
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -297,14 +293,11 @@ var ClientListView = Backbone.View.extend({
|
||||||
|
|
||||||
refreshTable:function() {
|
refreshTable:function() {
|
||||||
var _self = this;
|
var _self = this;
|
||||||
_self.model.fetch({
|
$.when(this.model.fetchIfNeeded(),
|
||||||
success: function() {
|
this.options.whiteListList.fetchIfNeeded(),
|
||||||
_self.options.stats.fetch({
|
this.options.stats.fetchIfNeeded(),
|
||||||
success: function () {
|
this.options.systemScopeList.fetchIfNeeded()).done(function() {
|
||||||
_self.render();
|
_self.render();
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -36,6 +36,18 @@ var ApprovedSiteListView = Backbone.View.extend({
|
||||||
|
|
||||||
initialize:function() { },
|
initialize:function() { },
|
||||||
|
|
||||||
|
load:function(callback) {
|
||||||
|
$('#loadingbox').show();
|
||||||
|
$('#loading').html('approved sites');
|
||||||
|
|
||||||
|
$.when(this.model.fetchIfNeeded(),
|
||||||
|
this.options.clientList.fetchIfNeeded(),
|
||||||
|
this.options.systemScopeList.fetchIfNeeded()).done(function() {
|
||||||
|
$('#loadingbox').hide('slow');
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
events: {
|
events: {
|
||||||
"click .refresh-table":"refreshTable"
|
"click .refresh-table":"refreshTable"
|
||||||
},
|
},
|
||||||
|
@ -94,10 +106,14 @@ var ApprovedSiteListView = Backbone.View.extend({
|
||||||
|
|
||||||
refreshTable:function() {
|
refreshTable:function() {
|
||||||
var _self = this;
|
var _self = this;
|
||||||
this.model.fetch({
|
$('#loadingbox').show();
|
||||||
success: function() {
|
$('#loading').html('approved sites');
|
||||||
|
|
||||||
|
$.when(this.model.fetch(),
|
||||||
|
this.options.clientList.fetch(),
|
||||||
|
this.options.systemScopeList.fetch()).done(function() {
|
||||||
|
$('#loadingbox').hide('slow');
|
||||||
_self.render();
|
_self.render();
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -134,6 +134,16 @@ var SystemScopeView = Backbone.View.extend({
|
||||||
var SystemScopeListView = Backbone.View.extend({
|
var SystemScopeListView = Backbone.View.extend({
|
||||||
tagName: 'span',
|
tagName: 'span',
|
||||||
|
|
||||||
|
load:function(callback) {
|
||||||
|
$('#loadingbox').show();
|
||||||
|
$('#loading').html('approved sites');
|
||||||
|
|
||||||
|
$.when(this.model.fetchIfNeeded()).done(function() {
|
||||||
|
$('#loadingbox').hide('slow');
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
events:{
|
events:{
|
||||||
"click .new-scope":"newScope",
|
"click .new-scope":"newScope",
|
||||||
"click .refresh-table":"refreshTable"
|
"click .refresh-table":"refreshTable"
|
||||||
|
@ -146,10 +156,12 @@ var SystemScopeListView = Backbone.View.extend({
|
||||||
|
|
||||||
refreshTable:function() {
|
refreshTable:function() {
|
||||||
var _self = this;
|
var _self = this;
|
||||||
this.model.fetch({
|
$('#loadingbox').show();
|
||||||
success: function() {
|
$('#loading').html('approved sites');
|
||||||
|
|
||||||
|
$.when(this.model.fetch()).done(function() {
|
||||||
|
$('#loadingbox').hide('slow');
|
||||||
_self.render();
|
_self.render();
|
||||||
}
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -311,16 +311,30 @@ var TokenListView = Backbone.View.extend({
|
||||||
"click .refresh-table":"refreshTable"
|
"click .refresh-table":"refreshTable"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
load:function(callback) {
|
||||||
|
$('#loadingbox').show();
|
||||||
|
$('#loading').html('tokens');
|
||||||
|
|
||||||
|
$.when(this.model.access.fetchIfNeeded(),
|
||||||
|
this.model.refresh.fetchIfNeeded(),
|
||||||
|
this.options.clientList.fetchIfNeeded(),
|
||||||
|
this.options.systemScopeList.fetchIfNeeded()).done(function() {
|
||||||
|
$('#loadingbox').hide('slow');
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
refreshTable:function() {
|
refreshTable:function() {
|
||||||
|
$('#loadingbox').show();
|
||||||
|
$('#loading').html('tokens');
|
||||||
var _self = this;
|
var _self = this;
|
||||||
_self.model.access.fetch({
|
$.when(this.model.access.fetch(),
|
||||||
success: function() {
|
this.model.refresh.fetch(),
|
||||||
_self.model.refresh.fetch({
|
this.options.clientList.fetch(),
|
||||||
success:function() {
|
this.options.systemScopeList.fetch()).done(function(){
|
||||||
_self.render();
|
_self.render();
|
||||||
}
|
$('#loadingbox').hide('slow');
|
||||||
})
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,18 @@ var WhiteListListView = Backbone.View.extend({
|
||||||
//this.model.bind("reset", this.render, this);
|
//this.model.bind("reset", this.render, this);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
load:function(callback) {
|
||||||
|
$('#loadingbox').show();
|
||||||
|
$('#loading').html('whitelist');
|
||||||
|
|
||||||
|
$.when(this.model.fetchIfNeeded(),
|
||||||
|
this.options.clientList.fetchIfNeeded(),
|
||||||
|
this.options.systemScopeList.fetchIfNeeded()).done(function() {
|
||||||
|
$('#loadingbox').hide('slow');
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
events:{
|
events:{
|
||||||
"click .refresh-table":"refreshTable"
|
"click .refresh-table":"refreshTable"
|
||||||
},
|
},
|
||||||
|
@ -86,10 +98,14 @@ var WhiteListListView = Backbone.View.extend({
|
||||||
|
|
||||||
refreshTable:function() {
|
refreshTable:function() {
|
||||||
var _self = this;
|
var _self = this;
|
||||||
this.model.fetch({
|
$('#loadingbox').show();
|
||||||
success: function() {
|
$('#loading').html('whitelist');
|
||||||
|
|
||||||
|
$.when(this.model.fetchIfNeeded(),
|
||||||
|
this.options.clientList.fetchIfNeeded(),
|
||||||
|
this.options.systemScopeList.fetchIfNeeded()).done(function() {
|
||||||
|
$('#loadingbox').hide('slow');
|
||||||
_self.render();
|
_self.render();
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue