mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-20 05:23:31 -07:00
Bootstrap loading profiles via ajax
This commit is contained in:
parent
44c7a58595
commit
0ecbb30345
18 changed files with 92 additions and 122 deletions
|
@ -1,27 +0,0 @@
|
|||
NzbDrone = {};
|
||||
|
||||
NzbDrone.Views = {};
|
||||
NzbDrone.Models = {};
|
||||
NzbDrone.Collections = {};
|
||||
|
||||
NzbDrone.App = new Backbone.Marionette.Application();
|
||||
|
||||
// Setup default application views
|
||||
NzbDrone.App.addInitializer(function () {
|
||||
|
||||
NzbDrone.App.addRegions({
|
||||
main: '#main-region'
|
||||
});
|
||||
|
||||
var layout = new NzbDrone.Views.AppLayout();
|
||||
|
||||
NzbDrone.App.Layout = layout;
|
||||
NzbDrone.App.main.show(layout);
|
||||
|
||||
layout.header.show(new NzbDrone.Views.HeaderView());
|
||||
});
|
||||
|
||||
NzbDrone.App.addInitializer(function () {
|
||||
new NzbDrone.AppRouter();
|
||||
Backbone.history.start();
|
||||
});
|
19
NzbDrone.Web/Scripts/backbone/apps/qualityProfileApp.js
Normal file
19
NzbDrone.Web/Scripts/backbone/apps/qualityProfileApp.js
Normal file
|
@ -0,0 +1,19 @@
|
|||
QualityProfileApp = {};
|
||||
|
||||
QualityProfileApp.Views = {};
|
||||
QualityProfileApp.Models = {};
|
||||
QualityProfileApp.Collections = {};
|
||||
|
||||
QualityProfileApp.App = new Backbone.Marionette.Application();
|
||||
|
||||
// Setup default application views
|
||||
QualityProfileApp.App.addInitializer(function () {
|
||||
|
||||
QualityProfileApp.App.addRegions({
|
||||
mainRegion: '#profiles'
|
||||
});
|
||||
|
||||
var qualityProfiles = new QualityProfileCollectionView();
|
||||
|
||||
QualityProfileApp.App.mainRegion.show(qualityProfiles);
|
||||
});
|
|
@ -1,11 +1,6 @@
|
|||
NzbDrone.Constants = {
|
||||
QualityProfileApp.Constants = {
|
||||
Templates: {
|
||||
AppLayout: '#AppLayout',
|
||||
QualityProfilesView: '#QualityProfilesView',
|
||||
QualityProfileView: '#QualityProfileView'
|
||||
QualityProfileCollection: '#QualityProfileCollectionTemplate',
|
||||
QualityProfile: '#QualityProfileTemplate'
|
||||
},
|
||||
|
||||
Events: {
|
||||
MenuItemSelected: 'MenuItemSelected'
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
window.ProfileCollection = Backbone.Collection.extend({
|
||||
|
||||
model: Profile,
|
||||
|
||||
url: '/api/qualityprofiles',
|
||||
|
||||
search: function (searchTerm, options) {
|
||||
|
||||
var self = this;
|
||||
this.fetch({
|
||||
success: function () {
|
||||
if (options.success) {
|
||||
options.success();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
|
@ -1,4 +1,4 @@
|
|||
window.Profile = Backbone.Model.extend({
|
||||
window.QualityProfile = Backbone.Model.extend({
|
||||
|
||||
urlRoot: '/api/qualityprofiles',
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
window.QualityProfileCollection = Backbone.Collection.extend({
|
||||
model: QualityProfile,
|
||||
url: '/api/qualityprofiles'
|
||||
});
|
|
@ -1,16 +0,0 @@
|
|||
(function (nzbDrone, backbone) {
|
||||
nzbDrone.AppRouter = backbone.Marionette.AppRouter.extend({
|
||||
|
||||
controller: new nzbDrone.AppController(),
|
||||
|
||||
appRoutes: {
|
||||
'': 'home',
|
||||
'wines': 'list',
|
||||
'wines/page/:page': 'list',
|
||||
'wines/add': 'addWine',
|
||||
'wines/:id': 'wineDetails',
|
||||
'about': 'about',
|
||||
'search/:searchTerm': 'handleSearch'
|
||||
}
|
||||
});
|
||||
})(window.NzbDrone, window.Backbone);s
|
|
@ -1,37 +1,23 @@
|
|||
window.QualityProfilesView = Backbone.View.extend({
|
||||
|
||||
initialize: function () {
|
||||
this.render();
|
||||
},
|
||||
|
||||
render: function () {
|
||||
var profiles = this.model.models;
|
||||
var len = profiles.length;
|
||||
var startPos = (this.options.page - 1) * 8;
|
||||
var endPos = Math.min(startPos + 8, len);
|
||||
|
||||
$(this.el).html('<ul class="thumbnails"></ul>');
|
||||
|
||||
for (var i = startPos; i < endPos; i++) {
|
||||
$('.thumbnails', this.el).append(new QualityProfileView({ model: profiles[i] }).render().el);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
QualityProfileView = Backbone.Marionette.ItemView.extend({
|
||||
tagName: "div",
|
||||
className: "quality-profile",
|
||||
template: "#QualityProfileTemplate"
|
||||
});
|
||||
|
||||
window.QualityProfileView = Backbone.View.extend({
|
||||
|
||||
tagName: "li",
|
||||
|
||||
QualityProfileCollectionView = Backbone.Marionette.CompositeView.extend({
|
||||
tagName: "div",
|
||||
id: "quality-profile-collection",
|
||||
itemView: QualityProfileView,
|
||||
template: QualityProfileApp.Constants.Templates.QualityProfileCollection,
|
||||
|
||||
//appendHtml: function (collectionView, itemView) {
|
||||
// collectionView.$('#collection').append(itemView.el);
|
||||
//},
|
||||
|
||||
initialize: function () {
|
||||
this.model.bind("change", this.render, this);
|
||||
this.model.bind("destroy", this.close, this);
|
||||
},
|
||||
|
||||
render: function () {
|
||||
$(this.el).html(this.template(this.model.toJSON()));
|
||||
return this;
|
||||
_.bindAll(this, 'render');
|
||||
this.collection = new QualityProfileCollection();
|
||||
this.collection.fetch();
|
||||
this.collection.bind('reset', this.render);
|
||||
}
|
||||
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue