From b85f5c0227406ece8ebe1be5988399674cbdfd98 Mon Sep 17 00:00:00 2001 From: Brinken Date: Fri, 16 Mar 2012 11:02:32 +0100 Subject: [PATCH] Added styled Checkbox, Radio & Select list --- data/css/style.css | 51 ++++- data/images/checkbox.png | Bin 0 -> 4544 bytes data/images/radio.png | Bin 0 -> 4579 bytes data/images/select.png | Bin 0 -> 3319 bytes data/interfaces/default/base.html | 6 +- data/interfaces/default/config.html | 296 ++++++++++++++++++++-------- data/interfaces/default/manage.html | 20 +- data/js/custom-form-elements.js | 144 ++++++++++++++ 8 files changed, 413 insertions(+), 104 deletions(-) create mode 100644 data/images/checkbox.png create mode 100644 data/images/radio.png create mode 100644 data/images/select.png create mode 100644 data/js/custom-form-elements.js diff --git a/data/css/style.css b/data/css/style.css index a3524c0e..b2d5be9b 100755 --- a/data/css/style.css +++ b/data/css/style.css @@ -179,6 +179,8 @@ h2 { font-size: 13px; color: #FFF; text-decoration: none;} h3 { font-size: 12px; color: #FFF; text-decoration: none;} h4 { font-size: 10px; color: #FFF; text-decoration: none;} +p { margin-top: 8px; margin-bottom: 8px; } + p.indented { margin-top: 20px; margin-bottom: 20px; font-size: 12px; } p.center { text-align: center; font-size: 18px; } .smalltext2 { font-size: 12px; margin-left: 45px; } @@ -529,7 +531,38 @@ text-shadow: 1px 1px 0px rgb(87,160,0); } .table_wrapper { border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; width: 100%; background-color: #313131; position: relative; min-height: 50px; clear: both; _height: 302px; zoom: 1; } -/*All inputs in the main content +/*All inputs in the main content */ + +.checkbox, +.radio { + width: 19px; + height: 25px; + padding: 0 5px 0 0; + background: url(../images/checkbox.png) no-repeat; + display: block; + clear: left; + float: left; +} + +.radio +{ + background: url(../images/radio.png) no-repeat; +} + +.select{ + position: absolute; + width: 158px; /* With the padding included, the width is 190 pixels: the actual width of the image. */ + height: 21px; + padding: 0 24px 0 8px; + color: #000; + font-weight: bold; + text-shadow: 1px 1px 0px rgb(170,170,170); + font-size: 12px/21px; + line-height: 19px; + background: url(../images/select.png) no-repeat; + overflow: hidden; + background-color: #272727; +} /*Tooltip*/ .tooltip @@ -586,8 +619,8 @@ text-shadow: 1px 1px 0px rgb(87,160,0); background-image: -ms-linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); } -form input[type="radio"], -form input[type='submit'] +.submit, +input[type="submit"] { border: 1px solid #000; border-radius: 3px; @@ -595,12 +628,14 @@ form input[type='submit'] font-weight: bold; padding: 3px 6px 3px 6px; background-image: linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); -background-image: -o-linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); -background-image: -moz-linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); -background-image: -webkit-linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); -background-image: -ms-linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); -text-shadow: 1px 1px 0px rgb(180,180,180); + background-image: -o-linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); + background-image: -moz-linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); + background-image: -webkit-linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); + background-image: -ms-linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); + text-shadow: 1px 1px 0px rgb(180,180,180); } +.text-pass, +.text-field, input[type="password"], input[type="text"] { diff --git a/data/images/checkbox.png b/data/images/checkbox.png new file mode 100644 index 0000000000000000000000000000000000000000..53e596bf773a4dd5aa12ca66df6e54377029f598 GIT binary patch literal 4544 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 N002ovPDHLkV1ni~i=qGk literal 0 HcmV?d00001 diff --git a/data/images/select.png b/data/images/select.png new file mode 100644 index 0000000000000000000000000000000000000000..b6adfef71c967d2f42cb8a5e1b839d4f6bae50cb GIT binary patch literal 3319 zcmVKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0006aNklAqqUT}+G5HIm1kBiUsh!M_KcaNY zBu={c2NW`Pb7=Pr84d~(iGybYclW;D+o2I!immIN&j+6A-s$1TbI);i@XK4^8(^fQ z5?Wt@cg7fuF{FS`r>CbM&d$y#l}ZSaMECdiuWxT}Z}RzkWxZa%w}4c#a$7C`g48xsg+U+*IUXP=rBYfZA znQaNahz-Ya$mMbjheLed|Lc0E)8YF18sGPMe0(Gbf}PuptU4k#q9~$VE^~2l!Dux4 zV_=`0oG=&+czSwbu~@KPum72AnfM}Blu}eG70%Dk8IQ+kt#KTOtE($~-{;}sfz@jD z-(fDn7qJX~wOYmVJY3ghFc_eeVm_avfvVCP5IeTrT$xy-a)& z`|xY6ab1@n2vAC4jM+c<^5#~=^F} zF)ys=+dvw~KUW5jokt{Y+W|u02jKk#009600|5QOeu6uE`(gk9002ovPDHLkV1j~i BKq&wK literal 0 HcmV?d00001 diff --git a/data/interfaces/default/base.html b/data/interfaces/default/base.html index a8dfda8f..7851fb39 100755 --- a/data/interfaces/default/base.html +++ b/data/interfaces/default/base.html @@ -31,7 +31,9 @@ - + + + @@ -85,7 +87,7 @@ - +
diff --git a/data/interfaces/default/config.html b/data/interfaces/default/config.html index 8f84b0d2..c9dd37e5 100644 --- a/data/interfaces/default/config.html +++ b/data/interfaces/default/config.html @@ -40,14 +40,19 @@ -

HTTP Password:

- +

+

HTTP Password:

+ +

-

Launch Browser on Startup:

+

+ Launch Browser on Startup: + +

@@ -102,7 +107,10 @@ -

Use Black Hole:

+

+ Use Black Hole: + +

@@ -115,7 +123,9 @@ -

Usenet Retention:

+

Usenet Retention: + +

@@ -146,8 +156,12 @@

Music Download Directory:

-
Full path to the directory where your torrent client downloads your music - i.e. /Users/name/Downloads/music
+
+ + Full path to the directory where your torrent client downloads your music + i.e. /Users/name/Downloads/music + +
@@ -164,7 +178,9 @@ -

NZBMatrix:

+

NZBMatrix: + +

@@ -180,7 +196,9 @@ -

Newznab:

+

Newznab: + +

@@ -197,7 +215,9 @@ -

NZBs.org:

+

NZBs.org: + +

@@ -217,7 +237,9 @@ -

Newzbin:

+

Newzbin: + +

@@ -241,17 +263,25 @@ -

Isohunt:


+

Isohunt: + +

+
-

Mininova:


+

Mininova: + +

+
-

Kick Ass Torrents:

+

Kick Ass Torrents: + +

@@ -261,24 +291,60 @@ - @@ -286,8 +352,11 @@
+

Album Quality:


-

Highest Quality excluding Lossless

-

Highest Quality including Lossless

-

Lossless Only

-

Preferred Bitrate: - kbps

- Auto-Detect Preferred Bitrate +

+ + Highest Quality excluding Lossless +

+

+ + Highest Quality including Lossless +

+

+ + Lossless Only +

+

+ + Preferred Bitrate: + kbps +

+

+ + Auto-Detect Preferred Bitrate +

Post-Processing:

-

Move downloads to Destination Folder

-

Rename files

-

Correct metadata

-

Delete leftover files (.m3u, .nfo, .sfv, .nzb, etc.)

-

Add album art as 'folder.jpg' to album folder

-

Embed album art in each file

-

Embed lyrics

+

+ + Move downloads to Destination Folder +

+

+ + Rename files +

+

+ + Correct metadata +

+

+ + Delete leftover files (.m3u, .nfo, .sfv, .nzb, etc.) +

+

+ + Add album art as 'folder.jpg' to album folder +

+

+ + Embed album art in each file +

+

+ + Embed lyrics +


-

Path to Destination folder:

-
+

+ Path to Destination folder: +

+ +
i.e. /Users/name/Music/iTunes or /Volumes/share/music @@ -304,20 +373,39 @@

Renaming Options:


-

Folder Format:

-
Use: artist, album, year, releasetype and first (first letter in artist name) - E.g.: first/artist/album [year] = G/Girl Talk/All Day [2010]
+

+ Folder Format: +

+ +
+ + Use: artist, album, year, releasetype and first (first letter in artist name) + E.g.: first/artist/album [year] = G/Girl Talk/All Day [2010] + +


-

File Format:

-
Use: tracknumber, title, artist, album and year
+

+ File Format: +

+ +
+ + Use: tracknumber, title, artist, album and year + +

Miscellaneous:


-

Automatically Include Extras When Adding an Artist

+

+ + Automatically Include Extras When Adding an Artist +

(EPs, Compilations, Live Albums, Remix Albums and Singles)


-

Interface: +

%for interface in config['interface_list']: <% if interface == headphones.INTERFACE: @@ -329,34 +417,46 @@ %endfor

-

Log Directory:

+

Log Directory:

+
-

Re-Encoding Options:

-
Note: this option requires the lame or ffmpeg encoder
-
-

Re-encode downloads during postprocessing

-
-
-

Only re-encode lossless files (.flac)

+
+ + Note: this option requires the lame or ffmpeg encoder + +
+

Re-Encoding Options:

+
- <% - if config['encoder'] == 'lame': - lameselect = 'selected="selected"' - ffmpegselect = '' - else: - lameselect = '' - ffmpegselect = 'selected="selected"' - %> -

Encoder: +

+ + Re-encode downloads during postprocessing +

+
+
+

+ + Only re-encode lossless files (.flac) +

+
+ <% + if config['encoder'] == 'lame': + lameselect = 'selected="selected"' + ffmpegselect = '' + else: + lameselect = '' + ffmpegselect = 'selected="selected"' + %> +

Encoder: - Format: + %for x in ['mp3', 'ogg', 'm4a']: <% if config['encoderoutputformat'] == x: outputselect = 'selected' @@ -364,25 +464,30 @@ outputselect = '' %> - %endfor -

-
+ %endfor + +

+
-

Audio Properties:

-
-

VBR/CBR: +

+ Audio Properties: +

+
+

+ VBR/CBR: + - Quality: %for x in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]: <% if config['encoderquality'] == x: @@ -395,7 +500,7 @@


-

Bitrate: %for x in [64, 128, 192, 256, 320]: <% if config["bitrate"] == x: @@ -415,7 +520,7 @@ freq44100 = '' freq48000 = 'selected="selected"' %> - Sampling:

@@ -431,18 +536,33 @@
-

Prowl Notification:


-

Enable Prowl Notifications


+

+ Prowl Notification: +

+

+ + Enable Prowl Notifications +

-

API key:



-

Notify on snatch?


-

Priority (-2,-1,0,1 or 2):

+

+ API key: +

+

+

+ + Notify on snatch? +

+
+

+ Priority (-2,-1,0,1 or 2): +

+
-

Muscbrainz Mirror:

%for mirror in config['mirror_list']: <% if mirror == headphones.MIRROR: @@ -454,14 +574,16 @@ else: mirrortext = '' %> - + %endfor

-


- (Web Interface changes require a restart to take effect) +

+ +
+ (Web Interface changes require a restart to take effect)

diff --git a/data/interfaces/default/manage.html b/data/interfaces/default/manage.html index 9956d5ee..098c530a 100644 --- a/data/interfaces/default/manage.html +++ b/data/interfaces/default/manage.html @@ -19,6 +19,10 @@

Scan Music Library


Where do you keep your music?

+

+
+ %if headphones.MUSIC_DIR: +
You can put in any directory, and it will scan for audio files in that folder @@ -26,17 +30,19 @@ For example: '/Users/name/Music'
-

-

- - %if headphones.MUSIC_DIR: - %else: - + +
+ + You can put in any directory, and it will scan for audio files in that folder + (including all subdirectories)
+ For example: '/Users/name/Music' +
+
%endif

- Automatically add new artists + Automatically add new artists

diff --git a/data/js/custom-form-elements.js b/data/js/custom-form-elements.js new file mode 100644 index 00000000..aa349e3f --- /dev/null +++ b/data/js/custom-form-elements.js @@ -0,0 +1,144 @@ +/* + +CUSTOM FORM ELEMENTS + +Created by Ryan Fait +www.ryanfait.com + +The only things you may need to change in this file are the following +variables: checkboxHeight, radioHeight and selectWidth (lines 24, 25, 26) + +The numbers you set for checkboxHeight and radioHeight should be one quarter +of the total height of the image want to use for checkboxes and radio +buttons. Both images should contain the four stages of both inputs stacked +on top of each other in this order: unchecked, unchecked-clicked, checked, +checked-clicked. + +You may need to adjust your images a bit if there is a slight vertical +movement during the different stages of the button activation. + +The value of selectWidth should be the width of your select list image. + +Visit http://ryanfait.com/ for more information. + +*/ + +var checkboxHeight = "25"; +var radioHeight = "25"; +var selectWidth = "190"; + + +/* No need to change anything after this */ + + +document.write(''); + +var Custom = { + init: function() { + var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active; + for(a = 0; a < inputs.length; a++) { + if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styled") { + span[a] = document.createElement("span"); + span[a].className = inputs[a].type; + + if(inputs[a].checked == true) { + if(inputs[a].type == "checkbox") { + position = "0 -" + (checkboxHeight*2) + "px"; + span[a].style.backgroundPosition = position; + } else { + position = "0 -" + (radioHeight*2) + "px"; + span[a].style.backgroundPosition = position; + } + } + inputs[a].parentNode.insertBefore(span[a], inputs[a]); + inputs[a].onchange = Custom.clear; + if(!inputs[a].getAttribute("disabled")) { + span[a].onmousedown = Custom.pushed; + span[a].onmouseup = Custom.check; + } else { + span[a].className = span[a].className += " disabled"; + } + } + } + inputs = document.getElementsByTagName("select"); + for(a = 0; a < inputs.length; a++) { + if(inputs[a].className == "styled") { + option = inputs[a].getElementsByTagName("option"); + active = option[0].childNodes[0].nodeValue; + textnode = document.createTextNode(active); + for(b = 0; b < option.length; b++) { + if(option[b].selected == true) { + textnode = document.createTextNode(option[b].childNodes[0].nodeValue); + } + } + span[a] = document.createElement("span"); + span[a].className = "select"; + span[a].id = "select" + inputs[a].name; + span[a].appendChild(textnode); + inputs[a].parentNode.insertBefore(span[a], inputs[a]); + if(!inputs[a].getAttribute("disabled")) { + inputs[a].onchange = Custom.choose; + } else { + inputs[a].previousSibling.className = inputs[a].previousSibling.className += " disabled"; + } + } + } + document.onmouseup = Custom.clear; + }, + pushed: function() { + element = this.nextSibling; + if(element.checked == true && element.type == "checkbox") { + this.style.backgroundPosition = "0 -" + checkboxHeight*3 + "px"; + } else if(element.checked == true && element.type == "radio") { + this.style.backgroundPosition = "0 -" + radioHeight*3 + "px"; + } else if(element.checked != true && element.type == "checkbox") { + this.style.backgroundPosition = "0 -" + checkboxHeight + "px"; + } else { + this.style.backgroundPosition = "0 -" + radioHeight + "px"; + } + }, + check: function() { + element = this.nextSibling; + if(element.checked == true && element.type == "checkbox") { + this.style.backgroundPosition = "0 0"; + element.checked = false; + } else { + if(element.type == "checkbox") { + this.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px"; + } else { + this.style.backgroundPosition = "0 -" + radioHeight*2 + "px"; + group = this.nextSibling.name; + inputs = document.getElementsByTagName("input"); + for(a = 0; a < inputs.length; a++) { + if(inputs[a].name == group && inputs[a] != this.nextSibling) { + inputs[a].previousSibling.style.backgroundPosition = "0 0"; + } + } + } + element.checked = true; + } + }, + clear: function() { + inputs = document.getElementsByTagName("input"); + for(var b = 0; b < inputs.length; b++) { + if(inputs[b].type == "checkbox" && inputs[b].checked == true && inputs[b].className == "styled") { + inputs[b].previousSibling.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px"; + } else if(inputs[b].type == "checkbox" && inputs[b].className == "styled") { + inputs[b].previousSibling.style.backgroundPosition = "0 0"; + } else if(inputs[b].type == "radio" && inputs[b].checked == true && inputs[b].className == "styled") { + inputs[b].previousSibling.style.backgroundPosition = "0 -" + radioHeight*2 + "px"; + } else if(inputs[b].type == "radio" && inputs[b].className == "styled") { + inputs[b].previousSibling.style.backgroundPosition = "0 0"; + } + } + }, + choose: function() { + option = this.getElementsByTagName("option"); + for(d = 0; d < option.length; d++) { + if(option[d].selected == true) { + document.getElementById("select" + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue; + } + } + } +} +window.onload = Custom.init; \ No newline at end of file