Show "how to" when wanted list is empty

This commit is contained in:
Ruud
2012-10-12 23:34:39 +02:00
parent 84f5dcc134
commit 1011e2e9b8
5 changed files with 59 additions and 3 deletions
+6
View File
@@ -431,9 +431,11 @@ class MoviePlugin(Plugin):
movie = db.query(Movie).filter_by(id = movie_id).first() movie = db.query(Movie).filter_by(id = movie_id).first()
if movie: if movie:
deleted = False
if delete_from == 'all': if delete_from == 'all':
db.delete(movie) db.delete(movie)
db.commit() db.commit()
deleted = True
else: else:
done_status = fireEvent('status.get', 'done', single = True) done_status = fireEvent('status.get', 'done', single = True)
@@ -456,6 +458,7 @@ class MoviePlugin(Plugin):
if total_releases == total_deleted: if total_releases == total_deleted:
db.delete(movie) db.delete(movie)
db.commit() db.commit()
deleted = True
elif new_movie_status: elif new_movie_status:
new_status = fireEvent('status.get', new_movie_status, single = True) new_status = fireEvent('status.get', new_movie_status, single = True)
movie.profile_id = None movie.profile_id = None
@@ -464,6 +467,9 @@ class MoviePlugin(Plugin):
else: else:
fireEvent('movie.restatus', movie.id, single = True) fireEvent('movie.restatus', movie.id, single = True)
if deleted:
fireEvent('notify.frontend', type = 'movie.deleted', data = movie.to_dict())
#db.close() #db.close()
return True return True
@@ -35,6 +35,17 @@ var MovieList = new Class({
if(options.add_new) if(options.add_new)
App.addEvent('movie.added', self.movieAdded.bind(self)) App.addEvent('movie.added', self.movieAdded.bind(self))
App.addEvent('movie.deleted', self.movieDeleted.bind(self))
},
movieDeleted: function(notification){
var self = this;
if(!self.movies_added[notification.data.id])
self.movies_added[notification.data.id].destroy();
self.checkIfEmpty();
}, },
movieAdded: function(notification){ movieAdded: function(notification){
@@ -43,6 +54,8 @@ var MovieList = new Class({
if(!self.movies_added[notification.data.id]) if(!self.movies_added[notification.data.id])
self.createMovie(notification.data, 'top'); self.createMovie(notification.data, 'top');
self.checkIfEmpty();
}, },
create: function(){ create: function(){
@@ -460,6 +473,8 @@ var MovieList = new Class({
self.addMovies(json.movies, json.total); self.addMovies(json.movies, json.total);
self.load_more.set('text', 'load more movies'); self.load_more.set('text', 'load more movies');
if(self.scrollspy) self.scrollspy.start(); if(self.scrollspy) self.scrollspy.start();
self.checkIfEmpty()
} }
}); });
}, },
@@ -477,6 +492,28 @@ var MovieList = new Class({
}, },
checkIfEmpty: function(){
var self = this;
var is_empty = self.movies.length == 0;
if(is_empty && self.options.on_empty_element){
self.el.grab(self.options.on_empty_element);
if(self.navigation)
self.navigation.hide();
self.empty_element = self.options.on_empty_element;
}
else if(self.empty_element){
self.empty_element.destroy();
if(self.navigation)
self.navigation.show();
}
},
toElement: function(){ toElement: function(){
return this.el; return this.el;
} }
@@ -42,6 +42,9 @@ var Movie = new Class({
self.el.destroy(); self.el.destroy();
delete self.list.movies_added[self.get('id')]; delete self.list.movies_added[self.get('id')];
self.list.movies.erase(self)
self.list.checkIfEmpty();
// Remove events // Remove events
App.removeEvents('movie.update.'+self.data.id); App.removeEvents('movie.update.'+self.data.id);
Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

+11 -1
View File
@@ -18,13 +18,23 @@ Page.Wanted = new Class({
} }
}); });
// See if userscript can be installed
// Wanted movies // Wanted movies
self.wanted = new MovieList({ self.wanted = new MovieList({
'identifier': 'wanted', 'identifier': 'wanted',
'status': 'active', 'status': 'active',
'actions': MovieActions, 'actions': MovieActions,
'add_new': true, 'add_new': true,
'menu': [self.manual_search] 'menu': [self.manual_search],
'on_empty_element': App.createUserscriptButtons().setStyles({
'background-image': "url('"+Api.createUrl('static/images/emptylist.png')+"')",
'height': 750,
'width': 800,
'padding-top': 260,
'margin-top': -50
})
}); });
$(self.wanted).inject(self.el); $(self.wanted).inject(self.el);