Proper release deletion and styling
This commit is contained in:
@@ -272,6 +272,13 @@ class MoviePlugin(Plugin):
|
||||
|
||||
db.commit()
|
||||
|
||||
# Remove releases
|
||||
available_status = fireEvent('status.get', 'available', single = True)
|
||||
for rel in m.releases:
|
||||
if rel.status_id is available_status.get('id'):
|
||||
db.delete(rel)
|
||||
db.commit()
|
||||
|
||||
movie_dict = m.to_dict(self.default_dict)
|
||||
|
||||
if force_readd or do_search:
|
||||
@@ -297,12 +304,20 @@ class MoviePlugin(Plugin):
|
||||
params = getParams()
|
||||
db = get_session()
|
||||
|
||||
available_status = fireEvent('status.get', 'available', single = True)
|
||||
|
||||
ids = params.get('id').split(',')
|
||||
for movie_id in ids:
|
||||
|
||||
m = db.query(Movie).filter_by(id = movie_id).first()
|
||||
m.profile_id = params.get('profile_id')
|
||||
|
||||
# Remove releases
|
||||
for rel in m.releases:
|
||||
if rel.status_id is available_status.get('id'):
|
||||
db.delete(rel)
|
||||
db.commit()
|
||||
|
||||
# Default title
|
||||
if params.get('default_title'):
|
||||
for title in m.library.titles:
|
||||
|
||||
@@ -133,18 +133,38 @@
|
||||
}
|
||||
|
||||
.movies .data .quality span {
|
||||
padding: 0 5px;
|
||||
padding: 2px 3px;
|
||||
font-weight: bold;
|
||||
opacity: 0.5;
|
||||
font-size: 10px;
|
||||
text-transform: uppercase;
|
||||
text-shadow: none;
|
||||
font-weight: normal;
|
||||
margin: 0 2px;
|
||||
border-radius: 2px;
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
}
|
||||
.movies .data .quality span:first-child {padding-left: 0;}
|
||||
.movies .list_view .data .quality, .movies .mass_edit_view .data .quality {
|
||||
text-align: right;
|
||||
float: right;
|
||||
width: 35%;
|
||||
}
|
||||
|
||||
.movies .data .quality .available, .movies .data .quality .snatched {
|
||||
opacity: 1;
|
||||
box-shadow: 1px 1px 0 rgba(0,0,0,0.2);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.movies .data .quality .available { color: orange; }
|
||||
.movies .data .quality .snatched { color: lightgreen; }
|
||||
.movies .data .quality .available { background-color: #578bc3; }
|
||||
.movies .data .quality .snatched { background-color: #369545; }
|
||||
.movies .data .quality .finish {
|
||||
background-image: url('../images/sprite.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0 2px;
|
||||
padding-left: 14px;
|
||||
background-size: 14px
|
||||
}
|
||||
|
||||
.movies .data .actions {
|
||||
line-height: 0;
|
||||
@@ -218,6 +238,15 @@
|
||||
.movies .options .table .item {
|
||||
border-bottom: 1px solid rgba(255,255,255,0.1);
|
||||
}
|
||||
.movies .options .table .item.ignored span {
|
||||
text-decoration: line-through;
|
||||
color: rgba(255,255,255,0.4);
|
||||
text-shadow: none;
|
||||
}
|
||||
.movies .options .table .item.ignored .delete {
|
||||
background-image: url('../images/icon.undo.png');
|
||||
}
|
||||
|
||||
.movies .options .table .item:last-child { border: 0; }
|
||||
.movies .options .table .item:nth-child(even) {
|
||||
background: rgba(255,255,255,0.05);
|
||||
|
||||
@@ -46,7 +46,13 @@ var Movie = new Class({
|
||||
self.description = new Element('div.description', {
|
||||
'text': self.data.library.plot
|
||||
}),
|
||||
self.quality = new Element('div.quality')
|
||||
self.quality = new Element('div.quality', {
|
||||
'events': {
|
||||
'click': function(e){
|
||||
self.el.getElement('.actions .releases').fireEvent('click', [e])
|
||||
}
|
||||
}
|
||||
})
|
||||
),
|
||||
self.actions = new Element('div.actions')
|
||||
)
|
||||
@@ -69,10 +75,11 @@ var Movie = new Class({
|
||||
Array.each(self.data.releases, function(release){
|
||||
|
||||
var q = self.quality.getElement('.q_'+ release.quality.identifier);
|
||||
if(!q)
|
||||
if(!q && release.status.identifier == 'snatched')
|
||||
var q = self.addQuality(release.quality_id)
|
||||
|
||||
q.addClass(release.status.identifier);
|
||||
if (q)
|
||||
q.addClass(release.status.identifier);
|
||||
|
||||
});
|
||||
|
||||
@@ -283,8 +290,8 @@ var ReleaseAction = new Class({
|
||||
'events': {
|
||||
'click': function(e){
|
||||
(e).stop();
|
||||
self.del(release);
|
||||
this.getParent('.item').destroy();
|
||||
self.ignore(release);
|
||||
this.getParent('.item').toggleClass('ignored')
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -314,10 +321,10 @@ var ReleaseAction = new Class({
|
||||
});
|
||||
},
|
||||
|
||||
del: function(release){
|
||||
ignore: function(release){
|
||||
var self = this;
|
||||
|
||||
Api.request('release.delete', {
|
||||
Api.request('release.ignore', {
|
||||
'data': {
|
||||
'id': release.id
|
||||
}
|
||||
|
||||
@@ -23,7 +23,13 @@ class Release(Plugin):
|
||||
}
|
||||
})
|
||||
addApiView('release.delete', self.delete, docs = {
|
||||
'desc': 'Check for available update',
|
||||
'desc': 'Delete releases',
|
||||
'params': {
|
||||
'id': {'type': 'id', 'desc': 'ID of the release object in release-table'}
|
||||
}
|
||||
})
|
||||
addApiView('release.ignore', self.ignore, docs = {
|
||||
'desc': 'Toggle ignore, for bad or wrong releases',
|
||||
'params': {
|
||||
'id': {'type': 'id', 'desc': 'ID of the release object in release-table'}
|
||||
}
|
||||
@@ -105,6 +111,22 @@ class Release(Plugin):
|
||||
'success': True
|
||||
})
|
||||
|
||||
def ignore(self):
|
||||
|
||||
db = get_session()
|
||||
id = getParam('id')
|
||||
|
||||
rel = db.query(Relea).filter_by(id = id).first()
|
||||
if rel:
|
||||
ignored_status = fireEvent('status.get', 'ignored', single = True)
|
||||
available_status = fireEvent('status.get', 'available', single = True)
|
||||
rel.status_id = available_status.get('id') if rel.status_id is ignored_status.get('id') else ignored_status.get('id')
|
||||
db.commit()
|
||||
|
||||
return jsonified({
|
||||
'success': True
|
||||
})
|
||||
|
||||
def download(self):
|
||||
|
||||
db = get_session()
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 587 B |
Reference in New Issue
Block a user