Add new movie to top of wanted list. closes #301
This commit is contained in:
@@ -138,8 +138,8 @@ class LibraryPlugin(Plugin):
|
||||
library = db.query(Library).filter_by(identifier = identifier).first()
|
||||
|
||||
if not library.info:
|
||||
self.update(identifier)
|
||||
dates = library.get('info', {}).get('release_dates')
|
||||
library_dict = self.update(identifier)
|
||||
dates = library_dict.get('info', {}).get('release_dates')
|
||||
else:
|
||||
dates = library.info.get('release_date')
|
||||
|
||||
|
||||
@@ -287,7 +287,7 @@ class MoviePlugin(Plugin):
|
||||
|
||||
db = get_session()
|
||||
m = db.query(Movie).filter_by(library_id = library.get('id')).first()
|
||||
do_search = False
|
||||
added = True
|
||||
if not m:
|
||||
m = Movie(
|
||||
library_id = library.get('id'),
|
||||
@@ -295,8 +295,13 @@ class MoviePlugin(Plugin):
|
||||
status_id = status_active.get('id'),
|
||||
)
|
||||
db.add(m)
|
||||
fireEvent('library.update', params.get('identifier'), default_title = params.get('title', ''))
|
||||
do_search = True
|
||||
db.commit()
|
||||
|
||||
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:
|
||||
# Clean snatched history
|
||||
for release in m.releases:
|
||||
@@ -306,9 +311,11 @@ class MoviePlugin(Plugin):
|
||||
m.profile_id = params.get('profile_id', default_profile.get('id'))
|
||||
else:
|
||||
log.debug('Movie already exists, not updating: %s' % params)
|
||||
added = False
|
||||
|
||||
if force_readd:
|
||||
m.status_id = status_active.get('id')
|
||||
do_search = True
|
||||
|
||||
db.commit()
|
||||
|
||||
@@ -321,8 +328,12 @@ class MoviePlugin(Plugin):
|
||||
|
||||
movie_dict = m.to_dict(self.default_dict)
|
||||
|
||||
if (force_readd or do_search) and search_after:
|
||||
fireEventAsync('searcher.single', movie_dict)
|
||||
if do_search and search_after:
|
||||
onComplete = self.createOnComplete(m.id)
|
||||
onComplete()
|
||||
|
||||
if added:
|
||||
fireEvent('notify.frontend', type = 'movie.added', data = movie_dict)
|
||||
|
||||
#db.close()
|
||||
return movie_dict
|
||||
|
||||
@@ -5,10 +5,12 @@ var MovieList = new Class({
|
||||
options: {
|
||||
navigation: true,
|
||||
limit: 50,
|
||||
menu: []
|
||||
menu: [],
|
||||
add_new: false
|
||||
},
|
||||
|
||||
movies: [],
|
||||
movies_added: [],
|
||||
letters: {},
|
||||
filter: {
|
||||
'startswith': null,
|
||||
@@ -30,6 +32,17 @@ var MovieList = new Class({
|
||||
})
|
||||
);
|
||||
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(){
|
||||
@@ -71,26 +84,31 @@ var MovieList = new Class({
|
||||
}
|
||||
|
||||
Object.each(movies, function(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)
|
||||
|
||||
self.createMovie(movie);
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
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(){
|
||||
var self = this;
|
||||
var chars = '#ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
|
||||
@@ -28,8 +28,10 @@ var Movie = new Class({
|
||||
if(self.spinner){
|
||||
self.mask.fade('out');
|
||||
setTimeout(function(){
|
||||
self.mask.destroy();
|
||||
self.spinner.el.destroy();
|
||||
if(self.mask)
|
||||
self.mask.destroy();
|
||||
if(self.spinner)
|
||||
self.spinner.el.destroy();
|
||||
self.spinner = null;
|
||||
self.mask = null;
|
||||
}, 400);
|
||||
|
||||
@@ -14,7 +14,8 @@ Page.Wanted = new Class({
|
||||
self.wanted = new MovieList({
|
||||
'identifier': 'wanted',
|
||||
'status': 'active',
|
||||
'actions': MovieActions
|
||||
'actions': MovieActions,
|
||||
'add_new': true
|
||||
});
|
||||
$(self.wanted).inject(self.el);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user