Add new movie to top of wanted list. closes #301
This commit is contained in:
1 parent
75b734db72
commit
11958334ac
5 files changed
+59
-27
No files matched your search
@@ -138,8 +138,8 @@ class LibraryPlugin(Plugin):
|
|||||||
library = db.query(Library).filter_by(identifier = identifier).first()
|
library = db.query(Library).filter_by(identifier = identifier).first()
|
||||||
|
|
||||||
if not library.info:
|
if not library.info:
|
||||||
self.update(identifier)
|
library_dict = self.update(identifier)
|
||||||
dates = library.get('info', {}).get('release_dates')
|
dates = library_dict.get('info', {}).get('release_dates')
|
||||||
else:
|
else:
|
||||||
dates = library.info.get('release_date')
|
dates = library.info.get('release_date')
|
||||||
|
|
||||||
|
|||||||
@@ -287,7 +287,7 @@ class MoviePlugin(Plugin):
|
|||||||
|
|
||||||
db = get_session()
|
db = get_session()
|
||||||
m = db.query(Movie).filter_by(library_id = library.get('id')).first()
|
m = db.query(Movie).filter_by(library_id = library.get('id')).first()
|
||||||
do_search = False
|
added = True
|
||||||
if not m:
|
if not m:
|
||||||
m = Movie(
|
m = Movie(
|
||||||
library_id = library.get('id'),
|
library_id = library.get('id'),
|
||||||
@@ -295,8 +295,13 @@ class MoviePlugin(Plugin):
|
|||||||
status_id = status_active.get('id'),
|
status_id = status_active.get('id'),
|
||||||
)
|
)
|
||||||
db.add(m)
|
db.add(m)
|
||||||
fireEvent('library.update', params.get('identifier'), default_title = params.get('title', ''))
|
db.commit()
|
||||||
do_search = True
|
|
||||||
|
onComplete = None
|
||||||
|
if search_after:
|
||||||
|
onComplete = self.createOnComplete(m.id)
|
||||||
|
|
||||||
|
fireEventAsync('library.update', params.get('identifier'), default_title = params.get('title', ''), on_complete = onComplete)
|
||||||
elif force_readd:
|
elif force_readd:
|
||||||
# Clean snatched history
|
# Clean snatched history
|
||||||
for release in m.releases:
|
for release in m.releases:
|
||||||
@@ -306,9 +311,11 @@ class MoviePlugin(Plugin):
|
|||||||
m.profile_id = params.get('profile_id', default_profile.get('id'))
|
m.profile_id = params.get('profile_id', default_profile.get('id'))
|
||||||
else:
|
else:
|
||||||
log.debug('Movie already exists, not updating: %s' % params)
|
log.debug('Movie already exists, not updating: %s' % params)
|
||||||
|
added = False
|
||||||
|
|
||||||
if force_readd:
|
if force_readd:
|
||||||
m.status_id = status_active.get('id')
|
m.status_id = status_active.get('id')
|
||||||
|
do_search = True
|
||||||
|
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
@@ -321,8 +328,12 @@ class MoviePlugin(Plugin):
|
|||||||
|
|
||||||
movie_dict = m.to_dict(self.default_dict)
|
movie_dict = m.to_dict(self.default_dict)
|
||||||
|
|
||||||
if (force_readd or do_search) and search_after:
|
if do_search and search_after:
|
||||||
fireEventAsync('searcher.single', movie_dict)
|
onComplete = self.createOnComplete(m.id)
|
||||||
|
onComplete()
|
||||||
|
|
||||||
|
if added:
|
||||||
|
fireEvent('notify.frontend', type = 'movie.added', data = movie_dict)
|
||||||
|
|
||||||
#db.close()
|
#db.close()
|
||||||
return movie_dict
|
return movie_dict
|
||||||
|
|||||||
@@ -5,10 +5,12 @@ var MovieList = new Class({
|
|||||||
options: {
|
options: {
|
||||||
navigation: true,
|
navigation: true,
|
||||||
limit: 50,
|
limit: 50,
|
||||||
menu: []
|
menu: [],
|
||||||
|
add_new: false
|
||||||
},
|
},
|
||||||
|
|
||||||
movies: [],
|
movies: [],
|
||||||
|
movies_added: [],
|
||||||
letters: {},
|
letters: {},
|
||||||
filter: {
|
filter: {
|
||||||
'startswith': null,
|
'startswith': null,
|
||||||
@@ -30,6 +32,17 @@ var MovieList = new Class({
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
self.getMovies();
|
self.getMovies();
|
||||||
|
|
||||||
|
if(options.add_new)
|
||||||
|
App.addEvent('movie.added', self.movieAdded.bind(self))
|
||||||
|
},
|
||||||
|
|
||||||
|
movieAdded: function(notification){
|
||||||
|
var self = this;
|
||||||
|
window.scroll(0,0);
|
||||||
|
|
||||||
|
if(self.movies_added[notification.data.id])
|
||||||
|
self.createMovie(notification.data, 'top');
|
||||||
},
|
},
|
||||||
|
|
||||||
create: function(){
|
create: function(){
|
||||||
@@ -71,26 +84,31 @@ var MovieList = new Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
Object.each(movies, function(movie){
|
Object.each(movies, function(movie){
|
||||||
|
self.createMovie(movie);
|
||||||
// Attach proper actions
|
|
||||||
var a = self.options.actions,
|
|
||||||
status = Status.get(movie.status_id);
|
|
||||||
var actions = a[status.identifier.capitalize()] || a.Wanted || {};
|
|
||||||
|
|
||||||
var m = new Movie(self, {
|
|
||||||
'actions': actions,
|
|
||||||
'view': self.current_view,
|
|
||||||
'onSelect': self.calculateSelected.bind(self)
|
|
||||||
}, movie);
|
|
||||||
$(m).inject(self.movie_list);
|
|
||||||
m.fireEvent('injected');
|
|
||||||
|
|
||||||
self.movies.include(m)
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
createMovie: function(movie, inject_at){
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
// Attach proper actions
|
||||||
|
var a = self.options.actions,
|
||||||
|
status = Status.get(movie.status_id);
|
||||||
|
var actions = a[status.identifier.capitalize()] || a.Wanted || {};
|
||||||
|
|
||||||
|
var m = new Movie(self, {
|
||||||
|
'actions': actions,
|
||||||
|
'view': self.current_view,
|
||||||
|
'onSelect': self.calculateSelected.bind(self)
|
||||||
|
}, movie);
|
||||||
|
$(m).inject(self.movie_list, inject_at || 'bottom');
|
||||||
|
m.fireEvent('injected');
|
||||||
|
|
||||||
|
self.movies.include(m)
|
||||||
|
self.movies_added.include(movie.id);
|
||||||
|
},
|
||||||
|
|
||||||
createNavigation: function(){
|
createNavigation: function(){
|
||||||
var self = this;
|
var self = this;
|
||||||
var chars = '#ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
var chars = '#ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||||
|
|||||||
@@ -28,8 +28,10 @@ var Movie = new Class({
|
|||||||
if(self.spinner){
|
if(self.spinner){
|
||||||
self.mask.fade('out');
|
self.mask.fade('out');
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
self.mask.destroy();
|
if(self.mask)
|
||||||
self.spinner.el.destroy();
|
self.mask.destroy();
|
||||||
|
if(self.spinner)
|
||||||
|
self.spinner.el.destroy();
|
||||||
self.spinner = null;
|
self.spinner = null;
|
||||||
self.mask = null;
|
self.mask = null;
|
||||||
}, 400);
|
}, 400);
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ Page.Wanted = new Class({
|
|||||||
self.wanted = new MovieList({
|
self.wanted = new MovieList({
|
||||||
'identifier': 'wanted',
|
'identifier': 'wanted',
|
||||||
'status': 'active',
|
'status': 'active',
|
||||||
'actions': MovieActions
|
'actions': MovieActions,
|
||||||
|
'add_new': true
|
||||||
});
|
});
|
||||||
$(self.wanted).inject(self.el);
|
$(self.wanted).inject(self.el);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user