From 62d89c641ad57eb89f67de7c7359ca953c5b2345 Mon Sep 17 00:00:00 2001 From: Ruud Date: Wed, 29 Feb 2012 23:02:57 +0100 Subject: [PATCH] Extra manage options --- couchpotato/core/plugins/movie/static/list.js | 30 +++++++- .../core/plugins/movie/static/movie.css | 70 ++++++++++++++++-- couchpotato/static/images/sprite.png | Bin 1350 -> 1864 bytes .../static/scripts/block/navigation.js | 2 +- couchpotato/static/scripts/page/manage.js | 29 ++++++-- couchpotato/static/style/main.css | 21 +++++- 6 files changed, 135 insertions(+), 17 deletions(-) diff --git a/couchpotato/core/plugins/movie/static/list.js b/couchpotato/core/plugins/movie/static/list.js index ca63f023..5a5d6808 100644 --- a/couchpotato/core/plugins/movie/static/list.js +++ b/couchpotato/core/plugins/movie/static/list.js @@ -4,7 +4,8 @@ var MovieList = new Class({ options: { navigation: true, - limit: 50 + limit: 50, + menu: [] }, movies: [], @@ -115,6 +116,25 @@ var MovieList = new Class({ 'change': self.search.bind(self) } }), + self.navigation_menu = new Element('div.menu').adopt( + self.navigation_menu_ul = new Element('ul'), + self.navigation_menu_toggle = new Element('a.button.onlay', { + 'events': { + 'click': function(){ + self.navigation_menu_ul.toggleClass('show') + + if(self.navigation_menu_ul.hasClass('show')) + this.addEvent('outerClick', function(){ + self.navigation_menu_ul.removeClass('show') + this.removeEvents('outerClick'); + }) + else + this.removeEvents('outerClick'); + + } + } + }) + ), 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', { @@ -198,6 +218,14 @@ var MovieList = new Class({ } }); + + // Add menu or hide + if (self.options.menu.length > 0) + self.options.menu.each(function(menu_item){ + self.navigation_menu_ul.adopt(new Element('li').adopt(menu_item)); + }) + else + self.navigation_menu.hide() self.nav_scrollspy = new ScrollSpy({ min: 10, diff --git a/couchpotato/core/plugins/movie/static/movie.css b/couchpotato/core/plugins/movie/static/movie.css index 4cf9a7b2..8d089f5e 100644 --- a/couchpotato/core/plugins/movie/static/movie.css +++ b/couchpotato/core/plugins/movie/static/movie.css @@ -310,7 +310,6 @@ } .movies .alph_nav { - overflow: hidden; transition: box-shadow .4s linear; position: fixed; z-index: 2; @@ -359,15 +358,14 @@ .movies .alph_nav input { padding: 6px 5px; - margin: 0; - float: right; + margin: 0 0 0 6px; + float: left; width: 155px; height: 25px; - float: right; } .movies .alph_nav .actions { - margin: 0 32px 0 0; + margin: 0 6px 0 0; -moz-user-select: none; } .movies .alph_nav .actions li { @@ -448,4 +446,64 @@ .movies .alph_nav .mass_edit_form .delete span { margin: 0 10px 0 0; } - \ No newline at end of file + + .movies .alph_nav .menu { + float: right; + } + + .movies .alph_nav .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); + } + + .movies .alph_nav .menu ul:before { + content: ' '; + height: 0; + position: absolute; + width: 0; + border: 6px solid transparent; + border-bottom-color: rgba(0,0,0,0.8); + margin: -16px 0 0 147px; + } + + .movies .alph_nav .menu ul { + display: none; + border: 1px solid #333; + background: rgba(0,0,0,0.8); + border-radius: 3px; + padding: 4px; + position: absolute; + z-index: 9; + margin: 32px 0 0 -145px; + width: 185px; + box-shadow: 0 10px 20px -10px rgba(0,0,0,0.4); + } + .movies .alph_nav .menu ul.show { + display: block; + } + .movies .alph_nav .menu ul li { + width: 100%; + height: auto; + } + + .movies .alph_nav .menu ul li a { + display: block; + border-bottom: 1px solid rgba(255,255,255,0.2); + padding: 0 10px; + box-shadow: none; + font-weight: normal; + font-size: 11px; + text-transform: uppercase; + letter-spacing: 1px; + } + + .movies .alph_nav .menu ul li:last-child a { + border: none; + color: #fff; + } + .movies .alph_nav .menu ul li a:hover { + background: rgba(255,255,255,0.1); + } \ No newline at end of file diff --git a/couchpotato/static/images/sprite.png b/couchpotato/static/images/sprite.png index 5d753c9793ad715e3a586fa50b1840ae16d48bbc..60cc5e8fd8836bdb9cc6566bad4445dcf1f9bcb2 100644 GIT binary patch delta 1827 zcmV+;2i*9^3djzS7Yd;W1^@s6B~pa4ks&942I@&fK~#9!>{<^@6IU3&YpZ}m?X*E% zreia6ZjvxXTuji3Iv88RrZZWxB|{gNxwtrWm~C;1VKbSVX4#*FWW;5YfMEd^J2MAH z!Gengsep(DMZ{7lrT<&{zt`LM^qo7(U9Sb4Oz%s-+`I4H`@Q$Q_r33X_gzVvrisaa zA_*~xG--uO&<>!X*5|j z*_2Q+KWaWRC(*ix-U44GirxSsfw6u*G@2qH+t!6u=3njt`8~4-V}!7|o|H zwO*dj$ZqNeJ{dHcY2AP^aP*gBZ(yK*>8Or9@3M#yNG(e3$AzO6t7&pCmE2xrvrnNgAC?M@K*tf~_y-+XRa+P5;PG!g2l5JgFc zhmGagS*t&WdOL7{4RlwtNHu{Ifm6Od^4;c^_D+lDvX(xtzNA^Y^x0I9Co!sjahey$ z0+4uO=kD5FxW4Xu)0L0*?#qJvWIiKjFe24t1IjP}0`>xr08@NmTyqvlQp^+|5F1P; zU|&%|{y$zrHpW&&Px}C@W|UnZ7(@PBHUFwPod|*BN9TxV0I}8X{0hlp3Uv`iD=`e2 zez4e_H2D47jLIN85;*{Ndy)-*!kV)Ly}@Ls!eQ{VVO%F6BoflHa6!sr*wc=gGd`~& zb9+2QC`66w2>o!IfZ%Gfsb8d6bz=SvY zL|wP&9OE~Sd#)xqWHhaIxxMGn$(j+iXjS2!sHZAw%yhXjY2AYg!I}NAnPT*!#zNs5*FW9>6 zX?!@22@I(|bJeOBmR#+BzR|23G}5}kVY<7guRZ^@*VC{kk#d1acszzDYt33;m=4Q) zK0o2}`3NdZC1$K#>Bp{!irH(Nsc)FGaN(jFil#HcFRu=-D?7{AJE}v^#FJRcs;H=_ zj~ot?p*r4x6eWFs^I~OXlq=_hz0Ea z*qQjkFM>UMZkso=M@MEdfoOrPL9#|6@)~FqOixU?{P$B)NA~vS zS4hsJFIy!#j-Ah!+l~uF=tZn(BBn8B&c?HvoTdRU5B{Woq@+WWvYG(qO-xKonv~T< zU=vwQ!8sfEcH&yicq~OQZpH&9#!V6Iz6X?;te!8ROsaDf)fCly=+qQrfCwgrx+%V$ zSR{41y`gB0G@2I0y0vR8v4AD?=>~`p#r-!8nN&(NHvY~0jfWO;K`0?Um-zR)W+b5# zxs|x{k%4A^&lwjON`@y85jlSrp&_HpJAc+)bdDmJ2sU97`ZpnZ@ds{28EN1dQ86OH zp!@{z7T^@%nR>mx3mvtbPUlE(Z*Mvj(f{~f1M{%l!!R2F8i#@CU@%C3vE^Q`H>gsnc1Bb4@xzA?tD}9Q zK;Y=$@(T>+8D-YOjFetTAAq z#y8Nb0XWDsC@LyKY5QE_&iBq-bdThW%JA$klxxO-_4M>~M5>gYp1zrF0_Yye(Ht^l zv)LSfW4>0`*47TSwzk?m9?#vdR9|1OV1qID2nNO@&3HLJoUVJ^FB*XPTmERY{#n>$j{F|3eUWolaq5cGcyy-*Hck9I?znuWyGED z=(6(ia*f??52)4Zq1@cubo|USzzYPu1_x~iJ^_3PpF@N*dtwZTnf?)A0BMKou(t*d ReA@s3002ovPDHLkV1gAvhlKzD delta 1309 zcmV+&1>*Y14#o{@GV6jc3`s#NDB=$lBr(y%LZShpK~rt?hY3M{hzT)96MqiXVUZ_2q{jsr-y%SqJP_WJO`8 zra}$XRa@VM{c$KWdZ3#aMmM22pp<=j;`6<|{a(Q{Fbq1n`aBgC4?O_&PR%uc()J<+ zfW`~E>c~6qJ=NOLJ@|HQT^0O(uh}No#v9$#19BJu0gF(kp(tixq%||%$6`^;fb?Ko zo{gFlWbv>DNAlff+W$i|2`9i(4*750{QdNw4wyK;OipL~NTTuNCrDRJs$+ta;V*<( z5Z$Np?q!G{g`QQSu-=%;L@24CCkdJ ziO?S&Gm|%(`ZnS7xmT`q?bjwoV2N1tClYPv3xNFL2X!A!@cgM{G9@74$FH9}^46h` zaaJNHSCchkaPnAzKT*rz6qkjf7P4k4=6xC81Ms!12eN9}0zLsYZ7&jka@4Q&9e0zS z428F*(qadytTkn?=VB?;wTFe+9@E24AV)3~i8jNk8bo3V?*&ia+MZrdsSrzaBVAaC zcOE=+xWsC)w`A9|yVw17-QOLG!~v|Xy-<44^))`wU$g(fgSa@h1cqE+zGchf>xV|K z_V9ra-~&@&bZor;`4?V)ti(*hlE4@f#>iA{+n!Z{%4M?>mCa@;MO7S|HgA?N6)Bck zqowU!X?gj&(+U8OL1G+K6-9#O{3e#6hkO$gJ9kuX3lfhZ!A*8>WbC(rp(~*C!lnKv zt9NXGWqc*9xOqy#8h77=DSQT3-m;Zyo5m4ka4-}@<*n&Jp{4u$olTo*?Hn*KG&M4Z=PsuY&@$0p=+eeX-uAX zLDfx7P3MuI>wKPnS)rhv__HP7)>yb@sLf|K*xg;a8&3c*fYTt~t7V-99HH|V20n_v zw_CN4HcSk(nUF>3y5Z;MoR+=1_c@waQjx%lUNh3V-A*)*-Okpy#m!=(NpurFJV;Kb z^Z1-ZQ<5an;cz&MjpnRW1uYYc2?R0Kk=Cr}twD-rAv-01Z{92f%+8xO*t{ncOS|4I zq0A{c+HTrz-gR!;Ilu<9Q{5ssPPnnDv?%8qw0xNpjZ>_Em5lR#N><4Kropi{Ubv&5 zJu+4(2)z(rMg9A`rm>-lT+oB%dbiEunOPGsWU{1p)9k6vJ^?n^odEksfB^tiP!;TA Tn{+M!00008NkvXXu0mjfKVgK& diff --git a/couchpotato/static/scripts/block/navigation.js b/couchpotato/static/scripts/block/navigation.js index b0674b25..b6886f8d 100644 --- a/couchpotato/static/scripts/block/navigation.js +++ b/couchpotato/static/scripts/block/navigation.js @@ -35,7 +35,7 @@ Block.Navigation = new Class({ addTab: function(tab){ var self = this - return new Element('li').adopt( + return new Element('li.tab_'+(tab.text.toLowerCase() || 'unknown')).adopt( new Element('a', tab) ).inject(self.nav) diff --git a/couchpotato/static/scripts/page/manage.js b/couchpotato/static/scripts/page/manage.js index 34529c55..8a88a367 100644 --- a/couchpotato/static/scripts/page/manage.js +++ b/couchpotato/static/scripts/page/manage.js @@ -9,27 +9,42 @@ Page.Manage = new Class({ var self = this; if(!self.list){ - self.refresh_button = new Element('a.icon.refresh', { - 'text': 'Refresh', + self.refresh_button = new Element('a', { + 'title': 'Rescan your library for new movies', + 'text': 'Full library refresh', 'events':{ - 'click': self.refresh.bind(self) + 'click': self.refresh.bind(self, true) } - }).inject(self.el); + }); + + self.refresh_quick = new Element('a', { + 'title': 'Just scan for recently changed', + 'text': 'Quick library scan', + 'events':{ + 'click': self.refresh.bind(self, false) + } + }); self.list = new MovieList({ 'identifier': 'manage', 'status': 'done', - 'actions': MovieActions + 'actions': MovieActions, + 'menu': [self.refresh_button, self.refresh_quick] }); $(self.list).inject(self.el); } }, - refresh: function(){ + refresh: function(full){ var self = this; + p(full) - Api.request('manage.update') + Api.request('manage.update', { + 'data': { + 'full': full ? 1 : null + } + }) } diff --git a/couchpotato/static/style/main.css b/couchpotato/static/style/main.css index fef35b24..a3e56166 100644 --- a/couchpotato/static/style/main.css +++ b/couchpotato/static/style/main.css @@ -307,13 +307,24 @@ body > .spinner, .mask{ overflow: hidden; font-weight: bold; } + + .select .list:before { + content: ' '; + height: 0; + position: absolute; + width: 0; + border: 6px solid transparent; + border-bottom-color: #282d34; + margin: -11px 0 0 70px; + } + .select .list { display: none; background: #282d34; border: 1px solid #1f242b; position: absolute; - margin: 25px 0 0 0; - box-shadow: 0 1px 2px rgba(0,0,0,0.4); + margin: 30px 0 0 0; + box-shadow: 0 20px 20px -10px rgba(0,0,0,0.4); border-radius:3px; z-index: 3; } @@ -374,6 +385,12 @@ body > .spinner, .mask{ rgb(73,83,98) 100% ); } +.onlay:active, .inlay.reversed > li:active { + 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); +} .question { display: block;