Merge branch 'refs/heads/develop'

This commit is contained in:
Ruud
2013-05-11 00:08:51 +02:00
24 changed files with 582 additions and 453 deletions
+7 -2
View File
@@ -139,8 +139,13 @@ def fireEvent(name, *args, **kwargs):
log.error('%s: %s', (name, traceback.format_exc()))
def fireEventAsync(*args, **kwargs):
kwargs['async'] = True
fireEvent(*args, **kwargs)
try:
t = threading.Thread(target = fireEvent, args = args, kwargs = kwargs)
t.setDaemon(True)
t.start()
return True
except Exception, e:
log.error('%s: %s', (args[0], e))
def errorHandler(error):
etype, value, tb = error
@@ -31,8 +31,8 @@ var NotificationBase = new Class({
});
window.addEvent('load', function(){
self.startInterval.delay($(window).getSize().x <= 480 ? 2000 : 300, self)
});
self.startInterval.delay($(window).getSize().x <= 480 ? 2000 : 100, self);
})
},
@@ -13,6 +13,7 @@ class XBMC(Notification):
listen_to = ['renamer.after']
use_json_notifications = {}
http_time_between_calls = 0
def notify(self, message = '', data = {}, listener = None):
+7 -4
View File
@@ -1,11 +1,11 @@
var File = new Class({
initialize: function(file){
initialize: function(type, file){
var self = this;
if(!file){
self.empty = true;
self.el = new Element('div');
self.el = new Element('div.empty_file.'+type);
return
}
@@ -22,7 +22,10 @@ var File = new Class({
var file_name = self.data.path.replace(/^.*[\\\/]/, '');
self.el = new Element('div', {
'class': 'type_image ' + self.type.identifier
'class': 'type_image ' + self.type.identifier,
'styles': {
'background-image': 'url('+Api.createUrl('file.cache') + file_name+')'
}
}).adopt(
new Element('img', {
'src': Api.createUrl('file.cache') + file_name
@@ -45,7 +48,7 @@ var FileSelect = new Class({
});
if(single)
return new File(results.pop());
return new File(type, results.pop());
return results;
@@ -6,19 +6,6 @@ Page.Log = new Class({
title: 'Show recent logs.',
has_tab: false,
initialize: function(options){
var self = this;
self.parent(options)
App.getBlock('more').addLink(new Element('a', {
'href': App.createUrl(self.name),
'text': self.name.capitalize(),
'title': self.title
}))
},
indexAction: function(){
var self = this;
+89 -74
View File
@@ -48,7 +48,7 @@ var MovieList = new Class({
self.changeView('list');
else
self.changeView(self.getSavedView() || self.options.view || 'details');
self.getMovies();
App.addEvent('movie.added', self.movieAdded.bind(self))
@@ -151,66 +151,65 @@ var MovieList = new Class({
self.el.addClass('with_navigation')
self.navigation = new Element('div.alph_nav').grab(
new Element('div').adopt(
self.navigation_alpha = new Element('ul.numbers', {
self.navigation = new Element('div.alph_nav').adopt(
self.mass_edit_form = new Element('div.mass_edit_form').adopt(
new Element('span.select').adopt(
self.mass_edit_select = new Element('input[type=checkbox].inlay', {
'events': {
'change': self.massEditToggleAll.bind(self)
}
}),
self.mass_edit_selected = new Element('span.count', {'text': 0}),
self.mass_edit_selected_label = new Element('span', {'text': 'selected'})
),
new Element('div.quality').adopt(
self.mass_edit_quality = new Element('select'),
new Element('a.button.orange', {
'text': 'Change quality',
'events': {
'click': self.changeQualitySelected.bind(self)
}
})
),
new Element('div.delete').adopt(
new Element('span[text=or]'),
new Element('a.button.red', {
'text': 'Delete',
'events': {
'click': self.deleteSelected.bind(self)
}
})
),
new Element('div.refresh').adopt(
new Element('span[text=or]'),
new Element('a.button.green', {
'text': 'Refresh',
'events': {
'click': self.refreshSelected.bind(self)
}
})
)
),
new Element('div.menus').adopt(
self.navigation_counter = new Element('span.counter[title=Total]'),
self.navigation_actions = new Element('ul.actions', {
'events': {
'click:relay(li)': function(e, el){
self.movie_list.empty()
self.activateLetter(el.get('data-letter'))
self.getMovies()
var a = 'active';
self.navigation_actions.getElements('.'+a).removeClass(a);
self.changeView(el.get('data-view'));
this.addClass(a);
el.inject(el.getParent(), 'top')
}
}
}),
self.navigation_counter = new Element('span.counter[title=Total]'),
self.navigation_actions = new Element('ul.inlay.actions.reversed'),
self.navigation_search_input = new Element('input.search.inlay', {
'title': 'Search through ' + self.options.identifier,
'placeholder': 'Search through ' + self.options.identifier,
'events': {
'keyup': self.search.bind(self),
'change': self.search.bind(self)
}
self.filter_menu = new Block.Menu(self, {
'class': 'filter'
}),
self.navigation_menu = new Block.Menu(self),
self.mass_edit_form = new Element('div.mass_edit_form').adopt(
new Element('span.select').adopt(
self.mass_edit_select = new Element('input[type=checkbox].inlay', {
'events': {
'change': self.massEditToggleAll.bind(self)
}
}),
self.mass_edit_selected = new Element('span.count', {'text': 0}),
self.mass_edit_selected_label = new Element('span', {'text': 'selected'})
),
new Element('div.quality').adopt(
self.mass_edit_quality = new Element('select'),
new Element('a.button.orange', {
'text': 'Change quality',
'events': {
'click': self.changeQualitySelected.bind(self)
}
})
),
new Element('div.delete').adopt(
new Element('span[text=or]'),
new Element('a.button.red', {
'text': 'Delete',
'events': {
'click': self.deleteSelected.bind(self)
}
})
),
new Element('div.refresh').adopt(
new Element('span[text=or]'),
new Element('a.button.green', {
'text': 'Refresh',
'events': {
'click': self.refreshSelected.bind(self)
}
})
)
)
self.navigation_menu = new Block.Menu(self, {
'class': 'extra'
})
)
).inject(self.el, 'top');
@@ -223,20 +222,35 @@ var MovieList = new Class({
}).inject(self.mass_edit_quality)
});
self.filter_menu.addLink(
self.navigation_search_input = new Element('input', {
'title': 'Search through ' + self.options.identifier,
'placeholder': 'Search through ' + self.options.identifier,
'events': {
'keyup': self.search.bind(self),
'change': self.search.bind(self)
}
})
).addClass('search');
self.filter_menu.addLink(
self.navigation_alpha = new Element('ul.numbers', {
'events': {
'click:relay(li.available)': function(e, el){
self.activateLetter(el.get('data-letter'))
self.getMovies(true)
}
}
})
);
// Actions
['mass_edit', 'details', 'list'].each(function(view){
self.navigation_actions.adopt(
new Element('li.'+view+(self.current_view == view ? '.active' : '')+'[data-view='+view+']', {
'events': {
'click': function(e){
var a = 'active';
self.navigation_actions.getElements('.'+a).removeClass(a);
self.changeView(this.get('data-view'));
this.addClass(a);
}
}
}).adopt(new Element('span'))
)
var current = self.current_view == view;
new Element('li', {
'class': 'icon2 ' + view + (current ? ' active ' : ''),
'data-view': view
}).inject(self.navigation_actions, current ? 'top' : 'bottom');
});
// All
@@ -260,11 +274,11 @@ var MovieList = new Class({
'status': self.options.status
}, self.filter),
'onSuccess': function(json){
json.chars.split('').each(function(c){
self.letters[c.capitalize()].addClass('available')
})
}
});
@@ -448,8 +462,7 @@ var MovieList = new Class({
self.activateLetter();
self.filter.search = search_value;
self.movie_list.empty();
self.getMovies();
self.getMovies(true);
self.last_search_value = search_value;
@@ -461,11 +474,10 @@ var MovieList = new Class({
var self = this;
self.reset();
self.movie_list.empty();
self.getMovies();
self.getMovies(true);
},
getMovies: function(){
getMovies: function(reset){
var self = this;
if(self.scrollspy){
@@ -495,6 +507,9 @@ var MovieList = new Class({
'limit_offset': self.options.limit + ',' + self.offset
}, self.filter),
'onSuccess': function(json){
if(reset)
self.movie_list.empty();
if(self.loader_first){
var lf = self.loader_first;
@@ -1,6 +1,6 @@
var MovieAction = new Class({
class_name: 'action icon',
class_name: 'action icon2',
initialize: function(movie){
var self = this;
@@ -82,7 +82,7 @@ MA.Release = new Class({
create: function(){
var self = this;
self.el = new Element('a.releases.icon.download', {
self.el = new Element('a.releases.download', {
'title': 'Show the releases that are available for ' + self.movie.getTitle(),
'events': {
'click': self.show.bind(self)
@@ -100,10 +100,8 @@ MA.Release = new Class({
var self = this;
if(!self.options_container){
self.options_container = new Element('div.options').adopt(
self.release_container = new Element('div.releases.table').adopt(
self.trynext_container = new Element('div.buttons.try_container')
)
self.options_container = new Element('div.options').grab(
self.release_container = new Element('div.releases.table')
);
// Header
@@ -149,11 +147,11 @@ MA.Release = new Class({
new Element('span.age', {'text': self.get(release, 'age')}),
new Element('span.score', {'text': self.get(release, 'score')}),
new Element('span.provider', { 'text': provider, 'title': provider }),
release.info['detail_url'] ? new Element('a.info.icon', {
release.info['detail_url'] ? new Element('a.info.icon2', {
'href': release.info['detail_url'],
'target': '_blank'
}) : null,
new Element('a.download.icon', {
}) : new Element('a'),
new Element('a.download.icon2', {
'events': {
'click': function(e){
(e).preventDefault();
@@ -162,7 +160,7 @@ MA.Release = new Class({
}
}
}),
new Element('a.delete.icon', {
new Element('a.delete.icon2', {
'events': {
'click': function(e){
(e).preventDefault();
@@ -190,7 +188,9 @@ MA.Release = new Class({
self.release_container.getElement('#release_'+self.next_release.id).addClass('next_release');
}
if(self.next_release || self.last_release){
if(self.next_release || (self.last_release && ['ignored', 'failed'].indexOf(self.last_release.status.identifier) === false)){
self.trynext_container = new Element('div.buttons.try_container').inject(self.release_container, 'top');
self.trynext_container.adopt(
new Element('span.or', {
@@ -237,18 +237,19 @@ MA.Release = new Class({
(e).preventDefault();
self.createReleases();
self.trynext_container = new Element('div.buttons.trynext').inject(self.movie.info_container);
if(self.next_release || self.last_release){
if(self.next_release || (self.last_release && ['ignored', 'failed'].indexOf(self.last_release.status.identifier) === false)){
self.trynext_container = new Element('div.buttons.trynext').inject(self.movie.info_container);
self.trynext_container.adopt(
self.next_release ? [new Element('a.icon.readd', {
self.next_release ? [new Element('a.icon2.readd', {
'text': self.last_release ? 'Download another release' : 'Download the best release',
'events': {
'click': self.tryNextRelease.bind(self)
}
}),
new Element('a.icon.download', {
new Element('a.icon2.download', {
'text': 'pick one yourself',
'events': {
'click': function(){
@@ -256,7 +257,7 @@ MA.Release = new Class({
}
}
})] : null,
new Element('a.icon.completed', {
new Element('a.icon2.completed', {
'text': 'mark this movie done',
'events': {
'click': function(){
@@ -292,7 +293,7 @@ MA.Release = new Class({
var self = this;
var release_el = self.release_container.getElement('#release_'+release.id),
icon = release_el.getElement('.download.icon');
icon = release_el.getElement('.download.icon2');
self.movie.busy(true);
+223 -157
View File
@@ -11,7 +11,6 @@
.movies.thumbs_list > div:not(.description) {
margin-right: -4px;
text-align: center;
}
.movies .loading {
@@ -79,24 +78,36 @@
.movies .movie {
position: relative;
border-radius: 4px;
margin: 10px 0;
padding-left: 20px;
overflow: hidden;
width: 100%;
height: 180px;
transition: all 0.6s cubic-bezier(0.9,0,0.1,1);
transition-property: width, height;
background: rgba(0,0,0,.2);
}
.movies.mass_edit_list .movie {
padding-left: 22px;
background: none;
}
.movies.details_list .movie {
padding-left: 120px;
}
.movies.list_list .movie:not(.details_view),
.movies.mass_edit_list .movie {
height: 32px;
height: 30px;
border-bottom: 1px solid rgba(255,255,255,.15);
}
.movies.list_list .movie:last-child,
.movies.mass_edit_list .movie:last-child {
border: none;
}
.movies.thumbs_list .movie {
width: 16.66667%;
height: auto;
@@ -104,9 +115,6 @@
margin: 0;
padding: 0;
vertical-align: top;
border-radius: 0;
box-shadow: none;
border: 0;
}
@media all and (max-width: 800px) {
@@ -125,16 +133,7 @@
.movies.list_list .movie:not(.details_view),
.movies.mass_edit_list .movie {
margin: 1px 0;
border-radius: 0;
background: no-repeat;
box-shadow: none;
border-bottom: 1px solid rgba(255,255,255,0.05);
}
.movies.list_list .movie:hover:not(.details_view),
.movies.mass_edit_list .movie {
background: rgba(255,255,255,0.03);
margin: 0;
}
.movies .data {
@@ -142,18 +141,18 @@
height: 100%;
width: 100%;
position: relative;
right: 0;
border-radius: 0;
transition: all .6s cubic-bezier(0.9,0,0.1,1);
right: 0;
}
.movies.list_list .movie:not(.details_view) .data,
.movies.mass_edit_list .movie .data {
height: 30px;
padding: 3px 0 3px 10px;
box-shadow: none;
padding: 0 0 0 10px;
border: 0;
background: #4e5969;
}
.movies.mass_edit_list .movie .data {
padding-left: 8px;
}
.movies.thumbs_list .data {
position: absolute;
@@ -165,14 +164,6 @@
background: none;
transition: none;
}
.movies.thumbs_list .movie.no_thumbnail .data { background-image: linear-gradient(-30deg, rgba(255, 0, 85, .2) 0,rgba(125, 185, 235, .2) 100%);
}
.movies.thumbs_list .movie.no_thumbnail:nth-child(2n+6) .data { background-image: linear-gradient(-20deg, rgba(125, 0, 215, .2) 0, rgba(4, 55, 5, .7) 100%); }
.movies.thumbs_list .movie.no_thumbnail:nth-child(3n+6) .data { background-image: linear-gradient(-30deg, rgba(155, 0, 85, .2) 0,rgba(25, 185, 235, .7) 100%); }
.movies.thumbs_list .movie.no_thumbnail:nth-child(4n+6) .data { background-image: linear-gradient(-30deg, rgba(115, 5, 235, .2) 0, rgba(55, 180, 5, .7) 100%); }
.movies.thumbs_list .movie.no_thumbnail:nth-child(5n+6) .data { background-image: linear-gradient(-30deg, rgba(35, 15, 215, .2) 0, rgba(135, 215, 115, .7) 100%); }
.movies.thumbs_list .movie.no_thumbnail:nth-child(6n+6) .data { background-image: linear-gradient(-30deg, rgba(35, 15, 215, .2) 0, rgba(135, 15, 115, .7) 100%); }
.movies.thumbs_list .movie:hover .data {
background: rgba(0,0,0,0.9);
@@ -201,18 +192,16 @@
line-height: 0;
overflow: hidden;
height: 100%;
border-radius: 4px 0 0 4px;
transition: all .6s cubic-bezier(0.9,0,0.1,1);
background: rgba(0,0,0,.1);
}
.movies.thumbs_list .poster {
position: relative;
border-radius: 0;
}
.movies.list_list .movie:not(.details_view) .poster,
.movies.mass_edit_list .poster {
width: 20px;
height: 30px;
border-radius: 1px 0 0 1px;
}
.movies.mass_edit_list .poster {
display: none;
@@ -222,7 +211,13 @@
width: 100%;
height: 100%;
transition: none;
background: no-repeat center;
background-size: cover;
}
.movies.thumbs_list .no_thumbnail .empty_file {
width: 100%;
height: 100%;
}
.movies .poster img,
.options .poster img {
@@ -234,7 +229,7 @@
width: 100%;
top: 0;
bottom: 0;
border-radius: 0;
opacity: 0;
}
.movies .info {
@@ -248,22 +243,27 @@
font-weight: bold;
margin-bottom: 10px;
margin-top: 2px;
left: 0;
top: 0;
width: 100%;
padding-right: 80px;
transition: all 0.2s linear;
height: 35px;
top: -5px;
position: relative;
}
.movies.list_list .info .title,
.movies.mass_edit_list .info .title {
height: 100%;
top: 0;
margin: 0;
}
.movies .info .title span {
display: block;
display: inline-block;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
width: 100%;
height: 30px;
height: 100%;
line-height: 30px;
top: -5px;
position: relative;
}
.movies.thumbs_list .info .title span {
@@ -300,13 +300,14 @@
font-size: 21px;
word-wrap: break-word;
padding: 0;
height: 100%;
}
.movies .info .year {
position: absolute;
color: #bbb;
right: 0;
top: 1px;
top: 6px;
text-align: right;
transition: all 0.2s linear;
font-weight: normal;
@@ -350,6 +351,10 @@
min-height: 20px;
}
.movies.list_list .movie:hover .data .quality {
display: none;
}
@media all and (max-width: 480px) {
.movies .data .quality {
display: none;
@@ -382,12 +387,12 @@
right: 0;
margin-right: 60px;
z-index: 1;
top: 5px;
}
.movies .data .quality .available,
.movies .data .quality .snatched {
opacity: 1;
box-shadow: 1px 1px 0 rgba(0,0,0,0.2);
cursor: pointer;
}
@@ -407,13 +412,14 @@
.movies .data .actions {
position: absolute;
bottom: 20px;
bottom: 17px;
right: 20px;
line-height: 0;
top: 0;
display: block;
width: auto;
opacity: 0;
display: none;
width: 0;
}
@media all and (max-width: 480px) {
.movies .data .actions {
@@ -424,7 +430,6 @@
.movies .movie:hover .data .actions {
opacity: 1;
display: inline-block;
width: auto;
}
.movies.details_list .data .actions {
@@ -437,7 +442,7 @@
display: inline-block;
}
.movies.thumbs_list .data .actions {
bottom: 2px;
bottom: 12px;
right: 10px;
top: auto;
}
@@ -446,14 +451,24 @@
.movies .movie:hover .action:hover { opacity: 1; }
.movies .data .action {
background-repeat: no-repeat;
background-position: center;
display: inline-block;
width: 26px;
height: 26px;
padding: 3px;
height: 22px;
min-width: 33px;
padding: 0 5px;
line-height: 26px;
text-align: center;
font-size: 13px;
color: #FFF;
margin-left: 1px;
}
.movies .data .action.trailer { color: #FFF; }
.movies .data .action.download { color: #b9dec0; }
.movies .data .action.edit { color: #c6b589; }
.movies .data .action.refresh { color: #cbeecc; }
.movies .data .action.delete { color: #e9b0b0; }
.movies .data .action.directory { color: #ffed92; }
.movies .data .action.readd { color: #c2fac5; }
.movies.mass_edit_list .movie .data .actions {
display: none;
}
@@ -473,7 +488,7 @@
text-align: center;
font-size: 20px;
position: absolute;
padding: 70px 0 0;
padding: 80px 0 0;
left: 120px;
right: 0;
}
@@ -498,9 +513,9 @@
}
.movies .options .form {
margin: 70px 20px 0;
float: left;
margin: 80px 0 0;
font-size: 20px;
text-align: center;
}
.movies .options .form select {
@@ -510,6 +525,7 @@
.movies .options .table {
height: 180px;
overflow: auto;
line-height: 2em;
}
.movies .options .table .item {
border-bottom: 1px solid rgba(255,255,255,0.1);
@@ -518,8 +534,10 @@
text-decoration: line-through;
color: rgba(255,255,255,0.4);
}
.movies .options .table .item.ignored .delete {
background-image: url('../images/icon.undo.png');
.movies .options .table .item.ignored .delete:before {
display: inline-block;
content: "\e04b";
transform: scale(-1, 1);
}
.movies .options .table .item:last-child { border: 0; }
@@ -565,10 +583,12 @@
width: 30px !important;
height: 20px;
opacity: 0.8;
line-height: 25px;
}
.movies .options .table a:hover {
opacity: 1;
}
.movies .options .table a:hover { opacity: 1; }
.movies .options .table a.download { color: #a7fbaf; }
.movies .options .table a.delete { color: #fda3a3; }
.movies .options .table .ignored a.delete { color: #b5fda3; }
.movies .options .table .head > * {
font-weight: bold;
@@ -601,7 +621,6 @@
text-align: center;
padding: 3px 10px;
background: #4e5969;
border-radius: 0 0 2px 2px;
transition: all .2s cubic-bezier(0.9,0,0.1,1) .2s;
z-index: 11;
}
@@ -637,14 +656,12 @@
.movies .movie .trynext {
display: inline;
position: absolute;
right: 135px;
right: 180px;
z-index: 2;
opacity: 0;
background: #4e5969;
min-width: 300px;
text-align: right;
height: 100%;
padding: 3px 0;
top: 0;
}
@@ -655,7 +672,7 @@
}
.movies.mass_edit_list .trynext { display: none; }
.wanted .movies .movie .trynext {
padding-right: 50px;
padding-right: 30px;
}
.movies .movie:hover .trynext {
opacity: 1;
@@ -665,8 +682,7 @@
background: #47515f;
padding: 0;
right: 0;
bottom: 35px;
height: auto;
height: 25px;
}
.movies .movie .trynext a {
@@ -674,10 +690,20 @@
padding: 0 5px 0 25px;
margin-right: 10px;
color: #FFF;
border-radius: 2px;
height: 100%;
line-height: 27px;
font-family: OpenSans, "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
}
.movies .movie .trynext a:before {
margin: 2px 0 0 -20px;
position: absolute;
font-family: 'Elusive-Icons';
}
.movies.details_list .movie .trynext a {
line-height: 23px;
}
.movies .movie .trynext a:last-child {
margin: 0;
margin: 0;
}
.movies .movie .trynext a:hover {
background-color: #369545;
@@ -694,14 +720,7 @@
}
.movies .alph_nav {
transition: box-shadow .4s linear;
position: relative;
z-index: 4;
top: 0px;
right: 0;
margin: 0 auto;
width: 100%;
padding: 10px 0;
height: 44px;
}
@media all and (max-width: 480px) {
@@ -709,13 +728,10 @@
display: none;
}
}
.movies .alph_nav > div {
position: relative;
max-width: 980px;
margin: 0 auto;
padding: 0;
min-height: 24px;
.movies .alph_nav .menus {
display: inline-block;
float: right;
}
.movies .alph_nav .numbers,
@@ -724,118 +740,150 @@
list-style: none;
padding: 0 0 1px;
margin: 0;
float: left;
user-select: none;
}
.movies .alph_nav .counter {
display: inline-block;
text-align: right;
position: absolute;
right: 270px;
background: #4e5969;
padding: 4px 10px;
padding: 0 10px;
height: 100%;
line-height: 43px;
border-right: 1px solid rgba(255,255,255,.07);
}
.movies .alph_nav .numbers li,
.movies .alph_nav .actions li {
display: inline-block;
vertical-align: top;
height: 24px;
line-height: 23px;
height: 100%;
line-height: 30px;
text-align: center;
cursor: pointer;
color: rgba(255,255,255,0.2);
border: 1px solid transparent;
transition: all 0.1s ease-in-out;
}
@media all and (max-width: 900px) {
.movies .alph_nav .numbers {
display: none;
}
}
.movies .alph_nav .numbers li {
width: auto;
padding: 0 4px;
width: 30px;
height: 30px;
opacity: 0.3;
}
.movies .alph_nav .numbers li.letter_all {
width: 60px;
}
.movies .alph_nav li.available {
color: #FFF;
font-weight: bolder;
font-weight: bold;
cursor: pointer;
opacity: 1;
}
.movies .alph_nav li.active.available,
.movies .alph_nav li.available:hover {
background: rgba(255,255,255,.1);
background: rgba(0,0,0,.1);
}
.movies .alph_nav .search {
.movies .alph_nav .search input {
padding: 6px 5px;
margin: 0 0 0 20px;
position: absolute;
right: 30px;
width: 154px;
height: 25px;
transition: all 0.6s cubic-bezier(0.9,0,0.1,1);
width: 100%;
height: 44px;
display: inline-block;
border: 0;
background: none;
color: #444;
font-size: 14px;
padding: 10px;
padding: 0 10px 0 30px;
border-bottom: 1px solid rgba(0,0,0,.08);
}
.movies .alph_nav .search input:focus {
background: rgba(0,0,0,.08);
}
.movies .alph_nav .search input::-webkit-input-placeholder {
color: #444;
opacity: .6;
}
.movies .alph_nav .search:before {
font-family: 'Elusive-Icons';
content: "\e03e";
position: absolute;
height: 100%;
line-height: 45px;
font-size: 12px;
margin: 0 0 0 10px;
opacity: .6;
color: #444;
}
.movies .alph_nav .actions {
margin: 0 6px 0 0;
-moz-user-select: none;
position: absolute;
right: 183px;
width: 44px;
height: 44px;
display: inline-block;
vertical-align: top;
z-index: 200;
position: relative;
}
.movies .alph_nav .actions:hover {
box-shadow: 0 100px 20px -10px rgba(0,0,0,0.55);
}
.movies .alph_nav .actions li {
border-radius: 1px;
width: auto;
width: 100%;
height: 45px;
line-height: 40px;
position: relative;
z-index: 20;
display: none;
cursor: pointer;
}
.movies .alph_nav .actions li.active {
background: none;
border: 1px solid transparent;
box-shadow: none;
}
.movies .alph_nav .actions li span {
display: block;
background: url('../images/sprite.png') no-repeat;
width: 25px;
height: 100%;
}
.movies .alph_nav .actions li.mass_edit span {
background-position: 3px 3px;
.movies .alph_nav .actions:hover li:not(.active) {
display: block;
background: #FFF;
color: #444;
}
.movies .alph_nav .actions li:hover:not(.active) {
background: #ccc;
}
.movies .alph_nav .actions li.active {
display: block;
}
.movies .alph_nav .actions li.list span {
background-position: 3px -95px;
.movies .alph_nav .actions li.mass_edit:before {
content: "\e070";
}
.movies .alph_nav .actions li.details span {
background-position: 3px -74px;
.movies .alph_nav .actions li.list:before {
content: "\e0d8";
}
.movies .alph_nav .actions li:first-child {
border-radius: 3px 0 0 3px;
}
.movies .alph_nav .actions li:last-child {
border-radius: 0 3px 3px 0;
}
.movies .alph_nav .actions li.details:before {
content: "\e022";
}
.movies .alph_nav .mass_edit_form {
clear: both;
text-align: center;
display: none;
overflow: hidden;
float: left;
height: 44px;
line-height: 44px;
}
.movies.mass_edit_list .mass_edit_form {
display: block;
display: inline-block;
}
.movies.mass_edit_list .mass_edit_form .select {
float: left;
margin: 5px 0 0 5px;
font-size: 14px;
display: inline-block;
}
.movies.mass_edit_list .mass_edit_form .select span {
.movies.mass_edit_list .mass_edit_form .select .check {
display: inline-block;
vertical-align: middle;
margin: -4px 0 0 5px;
}
.movies.mass_edit_list .mass_edit_form .select span {
opacity: 0.7;
}
.movies.mass_edit_list .mass_edit_form .select .count {
@@ -844,8 +892,7 @@
}
.movies .alph_nav .mass_edit_form .quality {
float: left;
padding: 8px 0 0;
display: inline-block;
margin: 0 0 0 16px;
}
.movies .alph_nav .mass_edit_form .quality select {
@@ -858,8 +905,8 @@
.movies .alph_nav .mass_edit_form .refresh,
.movies .alph_nav .mass_edit_form .delete {
float: left;
padding: 8px 0 0 8px;
display: inline-block;
margin-left: 8px;
}
.movies .alph_nav .mass_edit_form .refresh span,
@@ -867,16 +914,36 @@
margin: 0 10px 0 0;
}
.movies .alph_nav .more_menu {
right: 0;
position: absolute;
}
.movies .alph_nav .more_menu > a {
background-color: #4e5969;
background-position: center -158px;
background: none;
}
.movies .alph_nav .more_menu.extra > a:before {
content: '...';
font-size: 1.7em;
line-height: 23px;
text-align: center;
display: block;
}
.movies .alph_nav .more_menu.filter {
border: 1px solid rgba(255,255,255,.07);
border-width: 0 1px;
}
.movies .alph_nav .more_menu.filter > a:before {
content: "\e0e8";
font-family: 'Elusive-Icons';
line-height: 33px;
display: block;
text-align: center;
}
.movies .alph_nav .more_menu.filter .wrapper {
right: 45px;
width: 300px;
}
.movies .empty_wanted {
background-image: url('../images/emptylist.png');
height: 750px;
@@ -889,6 +956,7 @@
text-align: center;
font-size: 25px;
line-height: 150%;
padding: 40px 0;
}
.movies .empty_manage .after_manage {
@@ -897,7 +965,6 @@
}
.movies .progress {
border-radius: 2px;
padding: 10px;
margin: 5px 0;
text-align: left;
@@ -912,7 +979,6 @@
width: 49%;
background: rgba(255, 255, 255, 0.05);
margin: 2px 0.5%;
border-radius: 3px;
}
.movies .progress > div .folder {
@@ -11,7 +11,7 @@ var Movie = new Class({
self.view = options.view || 'details';
self.list = list;
self.el = new Element('div.movie.inlay');
self.el = new Element('div.movie');
self.profile = Quality.getProfile(data.profile_id) || {};
self.parent(self, options);
@@ -139,9 +139,6 @@ var Movie = new Class({
'text': self.data.library.year || 'n/a'
})
),
self.rating = new Element('div.rating.icon', {
'text': self.data.library.rating
}),
self.description = new Element('div.description', {
'text': self.data.library.plot
}),
@@ -149,8 +146,8 @@ var Movie = new Class({
'events': {
'click': function(e){
var releases = self.el.getElement('.actions .releases');
if(releases)
releases.fireEvent('click', [e])
if(releases.isVisible())
releases.fireEvent('click', [e])
}
}
})
@@ -199,9 +196,6 @@ var Movie = new Class({
self.actions.adopt(action)
});
if(!self.data.library.rating)
self.rating.hide();
},
addQuality: function(quality_id){
@@ -44,9 +44,8 @@
.search_form .input input {
border-radius: 0;
display: block;
width: 100%;
border: 0;
background: rgba(255,255,255,.08);
background: none;
color: #FFF;
font-size: 25px;
height: 100%;
@@ -106,7 +105,7 @@
background: #5c697b;
margin: 4px 0 0;
width: 470px;
min-height: 140px;
min-height: 50px;
box-shadow: 0 20px 20px -10px rgba(0,0,0,0.55);
display: none;
}
@@ -98,6 +98,9 @@ Block.Search = new Class({
self.el[self.q() ? 'addClass' : 'removeClass']('filled')
if(self.q() != self.last_q){
if(self.api_request && self.api_request.isRunning())
self.api_request.cancel();
if(self.autocomplete_timer) clearTimeout(self.autocomplete_timer)
self.autocomplete_timer = self.autocomplete.delay(300, self)
}
@@ -116,12 +119,9 @@ Block.Search = new Class({
},
list: function(){
var self = this;
if(self.api_request && self.api_request.running) return
var q = self.q();
var cache = self.cache[q];
var self = this,
q = self.q(),
cache = self.cache[q];
self.hideResults(false);
@@ -164,9 +164,6 @@ Block.Search = new Class({
});
if(q != self.q())
self.list()
// Calculate result heights
var w = window.getSize(),
rc = self.result_container.getCoordinates();
@@ -13,11 +13,11 @@
.profile > .delete {
position: absolute;
padding: 25px 20px;
background-position: center;
padding: 16px;
right: 0;
cursor: pointer;
opacity: 0.6;
color: #fd5353;
}
.profile > .delete:hover {
opacity: 1;
@@ -29,6 +29,7 @@
.profile .qualities {
min-height: 80px;
padding-top: 0;
}
.profile .formHint {
@@ -97,11 +98,13 @@
}
.profile .types .type .delete {
background-position: left center;
height: 20px;
width: 20px;
line-height: 20px;
visibility: hidden;
cursor: pointer;
font-size: 13px;
color: #fd5353;
}
.profile .types .type:hover:not(.is_empty) .delete {
@@ -24,7 +24,7 @@ var Profile = new Class({
var data = self.data;
self.el = new Element('div.profile').adopt(
self.delete_button = new Element('span.delete.icon', {
self.delete_button = new Element('span.delete.icon2', {
'events': {
'click': self.del.bind(self)
}
@@ -256,7 +256,7 @@ Profile.Type = new Class({
}
})
),
new Element('span.delete.icon', {
new Element('span.delete.icon2', {
'events': {
'click': self.del.bind(self)
}
@@ -2,7 +2,6 @@ from couchpotato import get_session
from couchpotato.core.event import addEvent, fireEvent
from couchpotato.core.helpers.encoding import tryUrlencode
from couchpotato.core.helpers.request import jsonified, getParams
from couchpotato.core.helpers.variable import tryInt
from couchpotato.core.logger import CPLog
from couchpotato.core.providers.movie.base import MovieProvider
from couchpotato.core.settings.model import Movie
@@ -35,8 +35,11 @@ class ThePirateBay(TorrentMagnetProvider):
'https://piratereverse.info',
'https://tpb.pirateparty.org.uk',
'https://argumentomteemigreren.nl',
'https://livepirate.com/',
'https://www.getpirate.com/',
'https://livepirate.com',
'https://www.getpirate.com',
'https://tpb.partipirate.org',
'https://tpb.piraten.lu',
'https://kuiken.co',
]
def __init__(self):
@@ -4,7 +4,9 @@ import re
class Filmweb(UserscriptBase):
includes = ['http://www.filmweb.pl/*']
version = 2
includes = ['http://www.filmweb.pl/film/*']
def getMovie(self, url):
+17 -6
View File
@@ -15,19 +15,21 @@ Block.Menu = new Class({
self.wrapper = new Element('div.wrapper').adopt(
self.more_option_ul = new Element('ul')
),
new Element('a.button.onlay' + (self.options.button_class ? '.' + self.options.button_class : ''), {
self.button = new Element('a.button' + (self.options.button_class ? '.' + self.options.button_class : ''), {
'events': {
'click': function(){
self.el.toggleClass('show')
self.fireEvent(self.el.hasClass('show') ? 'open' : 'close')
if(self.el.hasClass('show'))
this.addEvent('outerClick', function(){
self.el.removeClass('show')
this.removeEvents('outerClick');
if(self.el.hasClass('show')){
self.el.addEvent('outerClick', self.removeOuterClick.bind(self))
this.addEvent('outerClick', function(e){
if(e.target.get('tag') != 'input')
self.removeOuterClick()
})
}
else
this.removeEvents('outerClick');
self.removeOuterClick()
}
}
@@ -36,6 +38,15 @@ Block.Menu = new Class({
},
removeOuterClick: function(){
var self = this;
self.el.removeClass('show')
self.el.removeEvents('outerClick');
self.button.removeEvents('outerClick');
},
addLink: function(tab, position){
var self = this;
var el = new Element('li').adopt(tab).inject(self.more_option_ul, position || 'bottom');
@@ -67,12 +67,12 @@ Block.Navigation = new Class({
if(!self.added){
new Element('li.separator').inject(self.nav);
body.getElements('.header .more_menu.menu li a').each(function(el, nr){
if([0, 1, 2, 5].indexOf(nr) > -1){
self.nav.grab(
new Element('li').grab(el.clone().cloneEvents(el))
);
}
body.getElements('.header .more_menu.menu li a, .header .more_menu.menu li span.separator').each(function(el, nr){
if(nr <= 2) return;
if(el.get('tag') == 'a')
self.nav.grab(new Element('li').grab(el.clone().cloneEvents(el)));
else
self.nav.grab(new Element('li.separator'));
});
self.added = true;
+36 -22
View File
@@ -68,28 +68,42 @@ var CouchPotato = new Class({
self.block.footer = new Block.Footer(self, {})
);
[new Element('a.orange', {
'text': 'Restart',
'events': {
'click': self.restartQA.bind(self)
}
}),
new Element('a.red', {
'text': 'Shutdown',
'events': {
'click': self.shutdownQA.bind(self)
}
}),
new Element('a', {
'text': 'Update to latest',
'events': {
'click': self.checkForUpdate.bind(self, null)
}
}),
new Element('a', {
'text': 'Run install wizard',
'href': App.createUrl('wizard')
})].each(function(a){
var setting_links = [
new Element('a', {
'text': 'About CouchPotato',
'href': App.createUrl('settings/about')
}),
new Element('a', {
'text': 'Check for Updates',
'events': {
'click': self.checkForUpdate.bind(self, null)
}
}),
new Element('span.separator'),
new Element('a', {
'text': 'Settings',
'href': App.createUrl('settings/general')
}),
new Element('a', {
'text': 'Logs',
'href': App.createUrl('log')
}),
new Element('span.separator'),
new Element('a', {
'text': 'Restart',
'events': {
'click': self.restartQA.bind(self)
}
}),
new Element('a', {
'text': 'Shutdown',
'events': {
'click': self.shutdownQA.bind(self)
}
})
]
setting_links.each(function(a){
self.block.more.addLink(a)
})
+22 -16
View File
@@ -65,31 +65,37 @@ Page.Home = new Class({
// Make all thumbnails the same size
self.soon_list.addEvent('loaded', function(){
var images = $(self.soon_list).getElements('img'),
var images = $(self.soon_list).getElements('.poster'),
timer,
lowest = null;
highest = 100;
images.addEvent('load', function(){
var height = this.getSize().y;
if(!lowest || lowest > height){
lowest = height;
if(timer) clearTimeout(timer);
timer = (function(){
images.getParent().setStyle('height', lowest);
}).delay(300)
}
images.each(function(img_container){
img_container.getElements('img').addEvent('load', function(){
var img = this,
height = img.getSize().y;
if(!highest || highest < height){
highest = height;
if(timer) clearTimeout(timer);
timer = (function(){
images.setStyle('height', highest);
}).delay(50);
}
});
});
$(window).addEvent('resize', function(){
if(timer) clearTimeout(timer);
timer = (function(){
var lowest;
images.each(function(img){
var highest = 100;
images.each(function(img_container){
var img = img_container.getElement('img');
if(!img) return
var height = img.getSize().y;
if(!lowest || lowest > height)
lowest = height;
if(!highest || highest < height)
highest = height;
});
images.getParent().setStyle('height', lowest);
images.setStyle('height', highest);
}).delay(300);
});
});
+2 -16
View File
@@ -11,20 +11,6 @@ Page.Settings = new Class({
current: 'about',
has_tab: false,
initialize: function(options){
var self = this;
self.parent(options);
// Add to more menu
if(self.name == 'settings')
App.getBlock('more').addLink(new Element('a', {
'href': App.createUrl(self.name),
'text': self.name.capitalize(),
'title': self.title
}), 'top')
},
open: function(action, params){
var self = this;
self.action = action == 'index' ? self.default_action : action;
@@ -876,7 +862,7 @@ Option.Directories = new Class({
$(dir).addClass('is_empty');
// Add remove button
new Element('a.icon.delete', {
new Element('a.icon2.delete', {
'events': {
'click': self.delItem.bind(self, dir)
}
@@ -1385,7 +1371,7 @@ Option.Combined = new Class({
item[value_empty == value_count ? 'addClass' : 'removeClass']('is_empty');
new Element('a.icon.delete', {
new Element('a.icon2.delete', {
'events': {
'click': self.deleteCombinedItem.bind(self)
}
+81 -64
View File
@@ -7,6 +7,7 @@ body, html {
margin: 0;
padding: 0;
background: #4e5969;
-webkit-font-smoothing: subpixel-antialiased;
}
body { overflow-y: scroll; }
body.noscroll { overflow: hidden; }
@@ -108,7 +109,7 @@ body > .spinner, .mask{
}
.button {
background: #5082bc url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAyCAYAAACd+7GKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAClJREFUeNpi/v//vwMTAwPDfzjBgMpFI/7hFSOT9Y8qRuF3JLoHAQIMAHYtMmRA+CugAAAAAElFTkSuQmCC") repeat-x;
background: #5082bc;
padding: 5px 10px 6px;
color: #fff;
text-decoration: none;
@@ -154,6 +155,7 @@ body > .spinner, .mask{
line-height: 1;
-webkit-font-smoothing: antialiased;
font-size: 15px;
color: #FFF;
}
.icon2.cog:before { content: "\e109"; }
@@ -161,6 +163,30 @@ body > .spinner, .mask{
.icon2.search:before { content: "\e03e"; }
.icon2.return-key:before { content: "\e111"; }
.icon2.close:before { content: "\e04e"; }
.icon2.trailer:before { content: "\e0e9"; }
.icon2.download:before { content: "\e0c3"; }
.icon2.edit:before { content: "\e068"; }
.icon2.refresh:before { content: "\e04f"; font-weight: bold; }
.icon2.delete:before { content: "\e04e"; }
.icon2.directory:before { content: "\e097"; }
.icon2.completed:before { content: "\e070"; }
.icon2.info:before { content: "\e089"; }
.icon2.attention:before { content: "\e009"; }
.icon2.readd:before {
display: inline-block;
content: "\e04b";
transform: scale(-1, 1);
}
.icon2.imdb:before {
content: "IMDb";
color: #444;
padding: 2px;
border-radius: 3px;
background-color: #fbec98;
font: bold 8px Arial;
position: relative;
top: -3px;
}
.icon2.menu:before {
content: "\e076 \e076 \e076";
line-height: 6px;
@@ -178,13 +204,10 @@ body > .spinner, .mask{
margin: 0;
width: 100%;
z-index: 5;
background: #4e5969;
background: #5c697b;
box-shadow: 0 0 10px rgba(0,0,0,.1);
transition: all .4s ease-in-out;
}
.header.with_shadow {
background-color: #46505e;
}
@media all and (max-width: 480px) {
.header {
@@ -315,7 +338,7 @@ body > .spinner, .mask{
}
.menu_shown body {
left: 160px;
left: 240px;
}
.header .navigation {
@@ -327,13 +350,13 @@ body > .spinner, .mask{
right: 0;
top: 0;
bottom: 0;
left: 160px;
left: 240px;
}
.header .navigation ul {
width: 160px;
width: 240px;
position: fixed;
left: -160px;
left: -240px;
background: rgba(0,0,0,.5);
transition: all .5s cubic-bezier(0.9,0,0.1,1);
}
@@ -374,26 +397,15 @@ body > .spinner, .mask{
.header .more_menu .button {
height: 100%;
width: 44px;
border: 0;
box-shadow: none;
border-radius: 0;
background: none;
line-height: 66px;
text-align: center;
padding: 0;
border: 1px solid transparent;
border-width: 0 0 4px;
}
.header .more_menu .button:hover {
background: none;
border-color: #047792;
}
.header .more_menu .wrapper {
width: 150px;
width: 200px;
margin-left: -106px;
margin-top: 66px;
margin-top: 22px;
}
@media all and (max-width: 480px) {
@@ -402,7 +414,7 @@ body > .spinner, .mask{
}
.header .more_menu .wrapper {
margin-top: 44px;
margin-top: 0;
}
}
@@ -439,13 +451,20 @@ body > .spinner, .mask{
}
.header .notification_menu ul {
min-height: 60px;
max-height: 300px;
overflow: auto;
}
.header .notification_menu > a {
background-position: center -209px;
}
.header .notification_menu ul:empty:after {
content: 'No notifications (yet)';
text-align: center;
width: 100%;
position: absolute;
padding: 18px 0;
font-size: 15px;
font-style: italic;
opacity: .4;
}
.header .notification_menu li > span {
padding: 5px;
@@ -491,6 +510,7 @@ body > .spinner, .mask{
width: 16px;
cursor: pointer;
background: url('../images/sprite.png') no-repeat -200px;
border-radius: 3px;
}
.check.highlighted { background-color: #424c59; }
.check.checked { background-position: -2px 0; }
@@ -508,14 +528,7 @@ body > .spinner, .mask{
.select .selection {
display: inline-block;
padding: 0 30px 0 20px;
border-radius:30px;
box-shadow: 0 1px 1px rgba(0,0,0,0.35), inset 0 1px 0px rgba(255,255,255,0.20);
background: url('../images/sprite.png') no-repeat 94% -53px, linear-gradient(
180deg,
#5b9bd1 0%,
#406db8 100%
);
background: #5b9bd1 url('../images/sprite.png') no-repeat 94% -53px;
}
.select .selection .selectionDisplay {
@@ -535,11 +548,9 @@ body > .spinner, .mask{
.select .list {
display: none;
background: #282d34;
border: 1px solid #1f242b;
position: absolute;
margin: 28px 0 0 0;
margin: 25px 0 0 0;
box-shadow: 0 20px 20px -10px rgba(0,0,0,0.4);
border-radius:3px;
z-index: 3;
}
.select.active .list {
@@ -566,15 +577,14 @@ body > .spinner, .mask{
.inlay {
color: #fff;
border: 0;
border-radius:3px;
background-color: #282d34;
box-shadow: inset 0 1px 8px rgba(0,0,0,0.25), 0 1px 0px rgba(255,255,255,0.25);
box-shadow: inset 0 1px 8px rgba(0,0,0,0.25);
}
.inlay.light {
background-color: #47515f;
outline: none;
box-shadow: inset 0 1px 8px rgba(0,0,0,0.05), 0 1px 0px rgba(255,255,255,0.15);
box-shadow: none;
}
.inlay:focus {
@@ -585,7 +595,7 @@ body > .spinner, .mask{
.onlay, .inlay .selected, .inlay:not(.reversed) > li:hover, .inlay > li.active, .inlay.reversed > li {
border-radius:3px;
border: 1px solid #252930;
box-shadow: inset 0 1px 0px rgba(255,255,255,0.20), 0 0 3px rgba(0,0,0, 0.2);
box-shadow: inset 0 1px 0px rgba(255,255,255,0.20);
background: rgb(55,62,74);
background-image: linear-gradient(
0,
@@ -597,7 +607,7 @@ body > .spinner, .mask{
color: #fff;
border: 1px solid transparent;
background-color: #282d34;
box-shadow: inset 0 1px 8px rgba(0,0,0,0.25), 0 1px 0px rgba(255,255,255,0.25);
box-shadow: inset 0 1px 8px rgba(0,0,0,0.25);
}
.question {
@@ -648,38 +658,37 @@ body > .spinner, .mask{
.more_menu > a {
display: block;
background: url('../images/sprite.png') no-repeat center -137px;
height: 25px;
width: 25px;
border: 1px solid rgba(0,0,0,0.3);
height: 44px;
width: 44px;
transition: all 0.3s ease-in-out;
border-bottom: 4px solid transparent;
border-radius: 0;
}
.more_menu.show > a:not(:active), .more_menu > a:hover:not(:active) {
background-color: #406db8;
.more_menu .button:hover {
border-color: #047792;
}
.more_menu.show .button {
border-color: #04bce6;
}
.more_menu .wrapper {
display: none;
background: rgba(255,255,255,0.98);
top: 0;
right: 0;
padding: 4px;
margin: 26px 0 0 0;
margin: 11px 0 0 0;
position: absolute;
z-index: 90;
width: 185px;
box-shadow: 0 20px 20px -5px rgba(0,0,0,0.1);
text-align: center;
color: #000;
background-image: linear-gradient(
-45deg,
rgb(200,200,200) 0%,
rgb(255,255,255) 100%
);
box-shadow: 0 20px 20px -10px rgba(0,0,0,0.55);
color: #444;
background: #fff;
}
.more_menu.show .wrapper {
display: block;
top: 44px;
}
.more_menu ul {
@@ -698,11 +707,19 @@ body > .spinner, .mask{
border-bottom: 1px solid rgba(255,255,255,0.2);
box-shadow: none;
font-weight: normal;
font-size: 11px;
text-transform: uppercase;
font-size: 1.2em;
letter-spacing: 1px;
padding: 3px 0;
color: #000;
padding: 2px 10px;
color: #444;
}
.more_menu .wrapper li:first-child a { padding-top: 5px; }
.more_menu .wrapper li:last-child a { padding-bottom: 5px; }
.more_menu .wrapper li .separator {
border-bottom: 1px solid rgba(0,0,0,.1);
display: block;
height: 1;
margin: 5px 0;
}
.more_menu .wrapper li:last-child a {
+41 -19
View File
@@ -252,7 +252,7 @@
display: block;
text-align: right;
height: 20px;
margin: 0 0 -37px;
margin: 0 0 -38px;
}
.page .advanced_toggle .check {
margin: 0;
@@ -262,18 +262,24 @@
color: #edc07f;
}
.page .directory {
.page form .directory {
display: inline-block;
padding: 0 4% 0 4px;
font-size: 13px;
width: 30%;
background-image: url('../images/icon.folder.gif');
background-repeat: no-repeat;
background-position: 97% center;
overflow: hidden;
vertical-align: top;
position: relative;
}
.page .directory > span {
.page form .directory:after {
content: "\e097";
position: absolute;
right: 7px;
top: 2px;
font-family: 'Elusive-Icons';
color: #f5e39c;
}
.page form .directory > span {
height: 25px;
display: inline-block;
float: right;
@@ -281,15 +287,19 @@
white-space: nowrap;
cursor: pointer;
}
.page form .directory span:empty:before {
content: 'No folder selected';
font-style: italic;
opacity: .3;
}
.page .directory_list {
z-index: 2;
position: absolute;
width: 450px;
margin: 28px 0 20px 18%;
margin: 28px 0 20px 18.4%;
background: #5c697b;
border-radius: 3px;
box-shadow: 0 0 50px rgba(0,0,0,0.55);
box-shadow: 0 20px 40px -20px rgba(0,0,0,0.55);
}
.page .directory_list .pointer {
@@ -299,7 +309,7 @@
display: block;
position: absolute;
width: 0px;
margin: -6px 0 0 22%;
margin: -6px 0 0 45%;
}
.page .directory_list ul {
@@ -311,11 +321,14 @@
}
.page .directory_list li {
padding: 4px 10px;
padding: 4px 30px 4px 10px;
cursor: pointer;
margin: 0 !important;
border-top: 1px solid rgba(255,255,255,0.1);
background: url('../images/right.arrow.png') no-repeat 98% center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.page .directory_list li:last-child {
border-bottom: 1px solid rgba(255,255,255,0.1);
@@ -341,7 +354,10 @@
.page .directory_list .actions {
clear: both;
padding: 4% 4% 2%;
min-height: 25px;
min-height: 45px;
position: relative;
width: 100%;
text-align: right;
}
.page .directory_list .actions label {
@@ -350,7 +366,7 @@
padding: 0;
}
.page .directory_list .actions .inlay {
margin: -2px 0 0 7px;
margin: 0 0 0 7px;
}
.page .directory_list .actions .back {
@@ -360,6 +376,9 @@
padding: 0;
line-height: 120%;
vertical-align: top;
position: absolute;
text-align: left;
left: 4%;
}
.page .directory_list .actions:last-child {
@@ -373,10 +392,10 @@
}
.page .directory_list .actions:last-child > .clear {
left: -90%;
position: relative;
background-color: #af3128;
}
left: 4%;
position: absolute;
background-color: #af3128;
}
.page .directory_list .actions:last-child > .cancel {
font-weight: bold;
@@ -563,8 +582,10 @@
display: none;
width: 22px;
height: 22px;
line-height: 22px;
text-align: center;
vertical-align: middle;
background-position: left center;
color: #fe3d3d;
}
.page .combined_table .ctrlHolder:hover .delete {
display: inline-block;
@@ -576,7 +597,8 @@
.page .tab_about .usenet {
padding: 20px 30px 0;
font-size: 17px;
font-size: 1.5em;
line-height: 1.3em;
}
.page .tab_about .usenet a {
+3 -5
View File
@@ -13,10 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from rules import prefixRegex, rules as tr_rules
import cssutils
import re
from rules import rules as tr_rules
from rules import prefixRegex
keyframesRegex = re.compile(r'@keyframes\s?\w+\s?{(.*)}')
@@ -83,12 +82,11 @@ def magic(ruleset, debug, minify, filt, parser):
if not cssText: # blank rules return None so return an empty string
return
if minify or not hasattr(ruleset, 'style'):
return unicode(cssText)
return unicode(cssText) + '\n'
return cssText
return cssText + '\n'
def process(string, debug = False, minify = False, filt = ['webkit', 'moz', 'o', 'ms'], **prefs):
loglevel = 'DEBUG' if debug else 'ERROR'
parser = cssutils.CSSParser(loglevel = 'CRITICAL')
if minify:
cssutils.ser.prefs.useMinified()