Added styled Checkbox, Radio & Select list

This commit is contained in:
Brinken
2012-03-16 11:02:32 +01:00
parent 8637ff2557
commit b85f5c0227
8 changed files with 413 additions and 104 deletions
+43 -8
View File
@@ -179,6 +179,8 @@ h2 { font-size: 13px; color: #FFF; text-decoration: none;}
h3 { font-size: 12px; color: #FFF; text-decoration: none;} h3 { font-size: 12px; color: #FFF; text-decoration: none;}
h4 { font-size: 10px; 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.indented { margin-top: 20px; margin-bottom: 20px; font-size: 12px; }
p.center { text-align: center; font-size: 18px; } p.center { text-align: center; font-size: 18px; }
.smalltext2 { font-size: 12px; margin-left: 45px; } .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; } .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*/
.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%); background-image: -ms-linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%);
} }
form input[type="radio"], .submit,
form input[type='submit'] input[type="submit"]
{ {
border: 1px solid #000; border: 1px solid #000;
border-radius: 3px; border-radius: 3px;
@@ -595,12 +628,14 @@ form input[type='submit']
font-weight: bold; font-weight: bold;
padding: 3px 6px 3px 6px; padding: 3px 6px 3px 6px;
background-image: linear-gradient(bottom, rgb(117,117,117) 0%, rgb(156,156,156) 100%); 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: -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: -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: -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%); 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-shadow: 1px 1px 0px rgb(180,180,180);
} }
.text-pass,
.text-field,
input[type="password"], input[type="password"],
input[type="text"] input[type="text"]
{ {
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

+4 -2
View File
@@ -31,7 +31,9 @@
<!-- Script by Brinken --> <!-- Script by Brinken -->
<script type="text/javascript" src="js/FancyScript.js"></script> <script type="text/javascript" src="js/FancyScript.js"></script>
<!-- Custom Form elements-->
<script type="text/javascript" src="js/custom-form-elements.js" ></script>
<link type="text/css" href="css/custom-form-elements.css" rel="stylesheet" />
<!-- jScrollPane --> <!-- jScrollPane -->
<!-- styles needed by jScrollPane --> <!-- styles needed by jScrollPane -->
<link type="text/css" href="css/jquery.jscrollpane.css" rel="stylesheet" media="all" /> <link type="text/css" href="css/jquery.jscrollpane.css" rel="stylesheet" media="all" />
@@ -85,7 +87,7 @@
<option value="artist">Artist</option> <option value="artist">Artist</option>
<option value="album">Album</option> <option value="album">Album</option>
</select> </select>
<input type="submit" value="GO"/> <input class="submit" type="submit" value="GO"/>
</form> </form>
</div> </div>
<div class="clear" /> <div class="clear" />
+210 -88
View File
@@ -40,14 +40,19 @@
</td> </td>
<td> <td>
<h3>HTTP Password:</h3> <p>
<input type="password" name="http_password" value="${config['http_pass']}" size="30" maxlength="40" /> <h3>HTTP Password:</h3>
<input type="password" name="http_password" value="${config['http_pass']}" size="30" maxlength="40" />
</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<h3>Launch Browser on Startup: <input type="checkbox" name="launch_browser" value="1" ${config['launch_browser']} /></h3> <p>
Launch Browser on Startup:
<input class="styled" type="checkbox" name="launch_browser" value="1" ${config['launch_browser']} />
</p>
</td> </td>
</tr> </tr>
</table> </table>
@@ -102,7 +107,10 @@
<tr> <tr>
<td> <td>
<h3>Use Black Hole: <input type="checkbox" name="blackhole" value=1 ${config['use_blackhole']} /></h3> <p>
Use Black Hole:
<input class="styled" type="checkbox" name="blackhole" value="1" ${config['use_blackhole']} />
</p>
</td> </td>
<td> <td>
@@ -115,7 +123,9 @@
<tr> <tr>
<td> <td>
<h3>Usenet Retention:<input type="text" name="usenet_retention" value="${config['usenet_retention']}" size="20" maxlength="40"></h3> <h3>Usenet Retention:
<input type="text" name="usenet_retention" value="${config['usenet_retention']}" size="20" maxlength="40">
</h3>
</td> </td>
</tr> </tr>
@@ -146,8 +156,12 @@
<td> <td>
<h3>Music Download Directory:</h3><input type="text" name="download_torrent_dir" value="${config['download_torrent_dir']}" size="40" /> <h3>Music Download Directory:</h3><input type="text" name="download_torrent_dir" value="${config['download_torrent_dir']}" size="40" />
<div class="tooltip"><span>Full path to the directory where your torrent client downloads your music <div class="tooltip">
i.e. /Users/name/Downloads/music</span></div> <span>
Full path to the directory where your torrent client downloads your music
i.e. /Users/name/Downloads/music
</span>
</div>
</td> </td>
<td></td> <td></td>
@@ -164,7 +178,9 @@
</tr> </tr>
<tr> <tr>
<td id="middle"> <td id="middle">
<h3>NZBMatrix: <input type="checkbox" name="nzbmatrix" value="1" ${config['use_nzbmatrix']} /></h3> <h3>NZBMatrix:
<input class="styled" type="checkbox" name="nzbmatrix" value="1" ${config['use_nzbmatrix']} />
</h3>
</td> </td>
<td> <td>
@@ -180,7 +196,9 @@
<tr> <tr>
<td id="middle"> <td id="middle">
<h3>Newznab: <input type="checkbox" name="newznab" value="1" ${config['use_newznab']} /></h3> <h3>Newznab:
<input class="styled" type="checkbox" name="newznab" value="1" ${config['use_newznab']} />
</h3>
</td> </td>
<td> <td>
@@ -197,7 +215,9 @@
<tr> <tr>
<td id="middle"> <td id="middle">
<h3>NZBs.org: <input type="checkbox" name="nzbsorg" value="1" ${config['use_nzbsorg']} /></h3> <h3>NZBs.org:
<input class="styled" type="checkbox" name="nzbsorg" value="1" ${config['use_nzbsorg']} />
</h3>
</td> </td>
<td> <td>
@@ -217,7 +237,9 @@
<tr> <tr>
<td id="middle"> <td id="middle">
<h3>Newzbin: <input type="checkbox" name="newzbin" value="1" ${config['use_newzbin']} /></h3> <h3>Newzbin:
<input class="styled" type="checkbox" name="newzbin" value="1" ${config['use_newzbin']} />
</h3>
</td> </td>
<td> <td>
@@ -241,17 +263,25 @@
<tr> <tr>
<td id="middle"> <td id="middle">
<h3>Isohunt: <input type="checkbox" name="use_isohunt" value="1" ${config['use_isohunt']} /></h3><br /> <h3>Isohunt:
<input class="styled" type="checkbox" name="use_isohunt" value="1" ${config['use_isohunt']} />
</h3>
<br />
</td> </td>
<td id="middle"> <td id="middle">
<h3>Mininova: <input type="checkbox" name="use_mininova" value="1" ${config['use_mininova']} /></h3><br /> <h3>Mininova:
<input class="styled" type="checkbox" name="use_mininova" value="1" ${config['use_mininova']} />
</h3>
<br />
</td> </td>
</tr> </tr>
<tr> <tr>
<td id="middle"> <td id="middle">
<h3>Kick Ass Torrents: <input type="checkbox" name="use_kat" value="1" ${config['use_kat']} /></h3> <h3>Kick Ass Torrents:
<input class="styled" type="checkbox" name="use_kat" value="1" ${config['use_kat']} />
</h3>
</td> </td>
</tr> </tr>
</table> </table>
@@ -261,24 +291,60 @@
<table class="configtable" summary="Quality & Post Processing"> <table class="configtable" summary="Quality & Post Processing">
<tr> <tr>
<td> <td width="200">
<h2>Album Quality:</h2><br /> <h2>Album Quality:</h2><br />
<h4><input type="radio" name="preferred_quality" value="0" ${config['pref_qual_0']} /> Highest Quality excluding Lossless</h4> <p>
<h4><input type="radio" name="preferred_quality" value="1" ${config['pref_qual_1']} /> Highest Quality including Lossless</h4> <input class="styled" type="radio" name="preferred_quality" value="0" ${config['pref_qual_0']} />
<h4><input type="radio" name="preferred_quality" value="3" ${config['pref_qual_3']} /> Lossless Only</h4> Highest Quality excluding Lossless
<h4><input type="radio" name="preferred_quality" value="2" ${config['pref_qual_2']} /> Preferred Bitrate: </p>
<input type="text" name="preferred_bitrate" value="${config['pref_bitrate']}" size="3" maxlength="5" />kbps</h4> <p>
<i class="smalltext2"><input type="checkbox" name="detect_bitrate" value="1" ${config['detect_bitrate']} />Auto-Detect Preferred Bitrate </i> <input class="styled" type="radio" name="preferred_quality" value="1" ${config['pref_qual_1']} />
Highest Quality including Lossless
</p>
<p>
<input class="styled" type="radio" name="preferred_quality" value="3" ${config['pref_qual_3']} />
Lossless Only
</p>
<p>
<input class="styled" type="radio" name="preferred_quality" value="2" ${config['pref_qual_2']} />
Preferred Bitrate:
<input type="text" name="preferred_bitrate" value="${config['pref_bitrate']}" size="3" maxlength="5" />kbps
</p>
<p>
<input class="styled" type="checkbox" name="detect_bitrate" value="1" ${config['detect_bitrate']} />
Auto-Detect Preferred Bitrate
</p>
</td> </td>
<td> <td>
<h2>Post-Processing:</h2> <h2>Post-Processing:</h2>
<h4><input type="checkbox" name="move_files" value="1" ${config['move_files']} /> Move downloads to Destination Folder</h4> <p>
<h4><input type="checkbox" name="rename_files" value="1" ${config['rename_files']} /> Rename files</h4> <input class="styled" type="checkbox" name="move_files" value="1" ${config['move_files']} />
<h4><input type="checkbox" name="correct_metadata" value="1" ${config['correct_metadata']} /> Correct metadata</h4> Move downloads to Destination Folder
<h4><input type="checkbox" name="cleanup_files" value="1" ${config['cleanup_files']} /> Delete leftover files (.m3u, .nfo, .sfv, .nzb, etc.)</h4> </p>
<h4><input type="checkbox" name="add_album_art" value="1" ${config['add_album_art']}> Add album art as 'folder.jpg' to album folder</h4> <p>
<h4><input type="checkbox" name="embed_album_art" value="1" ${config['embed_album_art']}> Embed album art in each file</h4> <input class="styled" type="checkbox" name="rename_files" value="1" ${config['rename_files']} />
<h4><input type="checkbox" name="embed_lyrics" value="1" ${config['embed_lyrics']}> Embed lyrics</h4> Rename files
</p>
<p>
<input class="styled" type="checkbox" name="correct_metadata" value="1" ${config['correct_metadata']} />
Correct metadata
</p>
<p>
<input class="styled" type="checkbox" name="cleanup_files" value="1" ${config['cleanup_files']} />
Delete leftover files (.m3u, .nfo, .sfv, .nzb, etc.)
</p>
<p>
<input class="styled" type="checkbox" name="add_album_art" value="1" ${config['add_album_art']} />
Add album art as 'folder.jpg' to album folder
</p>
<p>
<input class="styled" type="checkbox" name="embed_album_art" value="1" ${config['embed_album_art']} />
Embed album art in each file
</p>
<p>
<input class="styled" type="checkbox" name="embed_lyrics" value="1" ${config['embed_lyrics']} />
Embed lyrics
</p>
</td> </td>
</tr> </tr>
@@ -286,8 +352,11 @@
<td> <td>
<br /> <br />
<h3>Path to Destination folder:</h3><input type="text" name="destination_dir" value="${config['dest_dir']}" size="40" /> <h3>
<div class="tooltip"> Path to Destination folder:
</h3>
<input type="text" name="destination_dir" value="${config['dest_dir']}" size="40" />
<div class="tooltip">
<span> <span>
i.e. /Users/name/Music/iTunes or /Volumes/share/music i.e. /Users/name/Music/iTunes or /Volumes/share/music
</span> </span>
@@ -304,20 +373,39 @@
<td> <td>
<h2>Renaming Options:</h2> <h2>Renaming Options:</h2>
<br /> <br />
<h3>Folder Format:</h3><input type="text" name="folder_format" value="${config['folder_format']}" size="43" /> <h3>
<div class="tooltip"><span>Use: artist, album, year, releasetype and first (first letter in artist name) Folder Format:
E.g.: first/artist/album [year] = G/Girl Talk/All Day [2010]</span></div> </h3>
<input type="text" name="folder_format" value="${config['folder_format']}" size="43" />
<div class="tooltip">
<span>
Use: artist, album, year, releasetype and first (first letter in artist name)
E.g.: first/artist/album [year] = G/Girl Talk/All Day [2010]
</span>
</div>
<br /><br /> <br /><br />
<h3>File Format:</h3><input type="text" name="file_format" value="${config['file_format']}" size="43" /> <h3>
<div class="tooltip"><span>Use: tracknumber, title, artist, album and year</span></div> File Format:
</h3>
<input type="text" name="file_format" value="${config['file_format']}" size="43" />
<div class="tooltip">
<span>
Use: tracknumber, title, artist, album and year
<span>
</div>
</td> </td>
<td> <td>
<h2>Miscellaneous:</h2> <h2>Miscellaneous:</h2>
<br /> <br />
<h3><input type="checkbox" name="include_extras" value="1" ${config['include_extras']} />Automatically Include Extras When Adding an Artist</h3> <p>
<input class="styled" type="checkbox" name="include_extras" value="1" ${config['include_extras']} />
Automatically Include Extras When Adding an Artist
</p>
<div class="tooltip"><span>(EPs, Compilations, Live Albums, Remix Albums and Singles)</span></div> <div class="tooltip"><span>(EPs, Compilations, Live Albums, Remix Albums and Singles)</span></div>
<br /><br /> <br /><br />
<h3>Interface: <select name="interface"><h3> <h3>
Interface: <select class="styled" name="interface">
<h3>
%for interface in config['interface_list']: %for interface in config['interface_list']:
<% <%
if interface == headphones.INTERFACE: if interface == headphones.INTERFACE:
@@ -329,34 +417,46 @@
%endfor %endfor
</select> </select>
<br /><br /> <br /><br />
<h3>Log Directory:</h3><input type="text" name="log_dir" value="${config['log_dir']}" size="40"> <h3>Log Directory:</h3>
<input type="text" name="log_dir" value="${config['log_dir']}" size="40" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<h2>Re-Encoding Options:</h2> <div class="tooltip">
<div class="tooltip"><span>Note: this option requires the lame or ffmpeg encoder</span></div> <span>
<br /> Note: this option requires the lame or ffmpeg encoder
<h3><input type="checkbox" name="encode" id="encode" value="1" ${config['encode']}/> Re-encode downloads during postprocessing</h3> </span>
<br /> </div>
<div id="encoderoptions"> <h2>Re-Encoding Options:</h2>
<h4><input type="checkbox" name="encoderlossless" value="1" ${config['encoderlossless']}/> Only re-encode lossless files (.flac)</h4>
<br />
<%
if config['encoder'] == 'lame':
lameselect = 'selected="selected"'
ffmpegselect = ''
else:
lameselect = ''
ffmpegselect = 'selected="selected"'
%>
<h4>Encoder: <select name="encoder">
<option value="lame" ${lameselect}>lame</option>
<option value="ffmpeg" ${ffmpegselect}>ffmpeg</option>
</select>
Format: <select name="encoderoutputformat"> <br />
%for x in ['mp3', 'ogg', 'm4a']: <p>
<input class="styled" type="checkbox" name="encode" id="encode" value="1" ${config['encode']} />
Re-encode downloads during postprocessing
</p>
<br />
<div id="encoderoptions">
<h4>
<input class="styled" type="checkbox" name="encoderlossless" value="1" ${config['encoderlossless']} />
Only re-encode lossless files (.flac)
</h4>
<br />
<%
if config['encoder'] == 'lame':
lameselect = 'selected="selected"'
ffmpegselect = ''
else:
lameselect = ''
ffmpegselect = 'selected="selected"'
%>
<h4>Encoder: <select class="styled" name="encoder">
<option value="lame" ${lameselect}>lame</option>
<option value="ffmpeg" ${ffmpegselect}>ffmpeg</option>
</select>
Format: <select name="encoderoutputformat">
%for x in ['mp3', 'ogg', 'm4a']:
<% <%
if config['encoderoutputformat'] == x: if config['encoderoutputformat'] == x:
outputselect = 'selected' outputselect = 'selected'
@@ -364,25 +464,30 @@
outputselect = '' outputselect = ''
%> %>
<option value=${x} ${outputselect}>${x}</option> <option value=${x} ${outputselect}>${x}</option>
%endfor %endfor
</select></h4> </select>
<br /> </h4>
<br />
<h3>Audio Properties:</h3> <h3>
<br /> Audio Properties:
<h4>VBR/CBR: <select name="encodervbrcbr"> </h3>
%for x in ['cbr', 'vbr']: <br />
<% <h4>
if config['encodervbrcbr'] == x: VBR/CBR:
outputselect = 'selected' <select name="encodervbrcbr">
else: %for x in ['cbr', 'vbr']:
outputselect = '' <%
%> if config['encodervbrcbr'] == x:
<option value=${x} ${outputselect}>${x}</option> outputselect = 'selected'
%endfor else:
</select> outputselect = ''
%>
<option value=${x} ${outputselect}>${x}</option>
%endfor
</select>
Quality: <select name="encoderquality"> Quality: <select class="styled" name="encoderquality">
%for x in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]: %for x in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
<% <%
if config['encoderquality'] == x: if config['encoderquality'] == x:
@@ -395,7 +500,7 @@
</select></h4> </select></h4>
<br /> <br />
<h4>Bitrate: <select name="bitrate"> <h4>Bitrate: <select class="styled" name="bitrate">
%for x in [64, 128, 192, 256, 320]: %for x in [64, 128, 192, 256, 320]:
<% <%
if config["bitrate"] == x: if config["bitrate"] == x:
@@ -415,7 +520,7 @@
freq44100 = '' freq44100 = ''
freq48000 = 'selected="selected"' freq48000 = 'selected="selected"'
%> %>
Sampling: <select name="samplingfrequency"> Sampling: <select class="styled" name="samplingfrequency">
<option value=44100 ${freq44100}>44.1 kHz</option> <option value=44100 ${freq44100}>44.1 kHz</option>
<option value=48000 ${freq48000}>48.0 kHz</option> <option value=48000 ${freq48000}>48.0 kHz</option>
</select></h4> </select></h4>
@@ -431,18 +536,33 @@
</div> </div>
</td> </td>
<td> <td>
<h2>Prowl Notification:</h2><br /> <h2>
<h3><input type="checkbox" name="prowl_enabled" id="prowl" value="1" ${config['prowl_enabled']} />Enable Prowl Notifications</h3><br /> Prowl Notification:
</h2>
<p>
<input class="styled" type="checkbox" name="prowl_enabled" id="prowl" value="1" ${config['prowl_enabled']} />
Enable Prowl Notifications
</p>
<div id="prowloptions"> <div id="prowloptions">
<h3>API key:</h3><input type="text" name="prowl_keys" value="${config['prowl_keys']}" size="40"><br /><br /> <h3>
<h3><input type="checkbox" name="prowl_onsnatch" value="1" ${config['prowl_onsnatch']} />Notify on snatch?</h3><br /> API key:
<h3>Priority (-2,-1,0,1 or 2):</h3><input type="text" name="prowl_priority" value="${config['prowl_priority']}" size="2"> </h3>
<input type="text" name="prowl_keys" value="${config['prowl_keys']}" size="40"><br /><br />
<p>
<input class="styled" type="checkbox" name="prowl_onsnatch" value="1" ${config['prowl_onsnatch']} />
Notify on snatch?
</p>
<br />
<h3>
Priority (-2,-1,0,1 or 2):
</h3>
<input type="text" name="prowl_priority" value="${config['prowl_priority']}" size="2">
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<h3>Muscbrainz Mirror: <select name="mirror"><h3> <h3>Muscbrainz Mirror: <select class="styled" name="mirror"><h3>
%for mirror in config['mirror_list']: %for mirror in config['mirror_list']:
<% <%
if mirror == headphones.MIRROR: if mirror == headphones.MIRROR:
@@ -454,14 +574,16 @@
else: else:
mirrortext = '' mirrortext = ''
%> %>
<option value="${mirror}" ${selected}>${mirror} ${mirrortext}</option> <option class="styled" value="${mirror}" ${selected}>${mirror} ${mirrortext}</option>
%endfor %endfor
</select> </select>
</table> </table>
</div> </div>
<p class="center"><input type="submit" value="Save Changes"><br /> <p class="center">
(Web Interface changes require a restart to take effect)</h3> <input class="submit" type="submit" value="Save Changes" />
<br />
(Web Interface changes require a restart to take effect)</p>
</form> </form>
</%def> </%def>
+13 -7
View File
@@ -19,6 +19,10 @@
<h1>Scan Music Library</h1><br /> <h1>Scan Music Library</h1><br />
<p> <p>
Where do you keep your music?<br /><br /> Where do you keep your music?<br /><br />
</p>
<form action="musicScan" method="GET">
%if headphones.MUSIC_DIR:
<input type="text" value="${headphones.MUSIC_DIR}" name="path" size="60" />
<div class="tooltip"> <div class="tooltip">
<span> <span>
You can put in any directory, and it will scan for audio files in that folder 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' For example: '/Users/name/Music'
</span> </span>
</div> </div>
</p>
<br /><br />
<form action="musicScan" method="GET">
%if headphones.MUSIC_DIR:
<input type="text" value="${headphones.MUSIC_DIR}" name="path" size="70" />
%else: %else:
<input type="text" value="Enter a Music Directory to scan" onfocus="if (this.value==this.defaultValue) this.value='';" name="path" size="70" /> <input type="text" value="Enter a Music Directory to scan" onfocus="if (this.value==this.defaultValue) this.value='';" name="path" size="60" />
<div class="tooltip">
<span>
You can put in any directory, and it will scan for audio files in that folder
(including all subdirectories)<br />
For example: '/Users/name/Music'
</span>
</div>
%endif %endif
<br /> <br />
<br /> <br />
<input type="checkbox" name="autoadd" value="1" ${checked(headphones.ADD_ARTISTS)}> Automatically add new artists <input class="styled" type="checkbox" name="autoadd" value="1" ${checked(headphones.ADD_ARTISTS)}> Automatically add new artists
<br /> <br />
<br /> <br />
<input type="submit" /> <input type="submit" />
+144
View File
@@ -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('<style type="text/css">input.styled { display: none; } select.styled { position: relative; width: ' + selectWidth + 'px; opacity: 0; filter: alpha(opacity=0); z-index: 5; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');
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;