mirror of
https://github.com/rembo10/headphones.git
synced 2026-06-16 07:33:50 +01:00
Updated notifications
This commit is contained in:
@@ -1,12 +1,38 @@
|
||||
<%inherit file="base.html"/>
|
||||
<%!
|
||||
from headphones import db
|
||||
import headphones
|
||||
import string
|
||||
%>
|
||||
|
||||
<%def name="body()">
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
$('#menu_link_getextra').click(function() {
|
||||
$('#dialog').dialog();
|
||||
return false;
|
||||
});
|
||||
$('#menu_link_modifyextra').click(function() {
|
||||
$('#dialog').dialog();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div id="dialog" title="Choose Which Extras to Fetch" style="display:none" class="configtable">
|
||||
<form action="getExtras" method="get" class="ajax">
|
||||
<input type="hidden" name="ArtistID" value="${artist['ArtistID']}">
|
||||
<input type="hidden" name="newstyle" value="true">
|
||||
%for extra in extras:
|
||||
<input type="checkbox" id="${extra}" name="${extra}" value="1" ${extras[extra]} />${string.capwords(extra)}<br>
|
||||
%endfor
|
||||
<br>
|
||||
<input id="submit" type="submit" value="Fetch Extras">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="nav-sub-container">
|
||||
<ul id="nav-sub">
|
||||
<li><a href="refreshArtist?ArtistID=${artist['ArtistID']}"><span class="wsr Synchronize"></span> Refresh</a></li>
|
||||
<li><a class="refreshArtist" href="refreshArtist?ArtistID=${artist['ArtistID']}"><span class="wsr Synchronize"></span> Refresh</a></li>
|
||||
<li><a href="deleteArtist?ArtistID=${artist['ArtistID']}"><span class="wsr Close"></span> Delete Artist</a></li>
|
||||
%if artist['Status'] == 'Paused':
|
||||
<li><a href="resumeArtist?ArtistID=${artist['ArtistID']}" ><span class="wsr Clock"></span> Resume</a></li>
|
||||
@@ -14,15 +40,18 @@
|
||||
<li><a href="pauseArtist?ArtistID=${artist['ArtistID']}"><span class="wsr Clock"></span> Pause</a></li>
|
||||
%endif
|
||||
%if artist['IncludeExtras']:
|
||||
<li><a href="removeExtras?ArtistID=${artist['ArtistID']}"><span class="wsr Tag"></span> Remove Extras</a></li>
|
||||
<li><a href="removeExtras?ArtistID=${artist['ArtistID']}">Remove Extras</a></li>
|
||||
<li><a class="menu_link_edit" href="#">Modify Extras</a></li>
|
||||
%else:
|
||||
<li><a href="getExtras?ArtistID=${artist['ArtistID']}"><span class="wsr Tag"></span> Get Extras</a></li>
|
||||
<li><a id="menu_link_getextra" href="#">Get Extras</a></li>
|
||||
%endif
|
||||
</ul>
|
||||
<ul id="nav-view">
|
||||
<li><span class="wsr Icon"></span> Viewport</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<form class="ajax" action="markAlbums" method="get">
|
||||
<div class="artist-bio-container">
|
||||
<div class="artist-art">
|
||||
@@ -192,6 +221,21 @@
|
||||
"bPaginate": false,
|
||||
"aaSorting": [[4, 'asc'],[3,'desc']]
|
||||
});
|
||||
$( "#nav-sub li a" ).click(function(){
|
||||
});
|
||||
%if artist['Status'] == 'Loading':
|
||||
var noty_id = noty({
|
||||
text:'<span class="wsr Loading loader"></span> Artist is refreshing!',
|
||||
layout: 'bottomRight',
|
||||
type:'information'
|
||||
});
|
||||
%elif artist['Status'] == 'Paused':
|
||||
var noty_id = noty({
|
||||
text:'<span class="wsr Alert"></span> Artist is paused!',
|
||||
layout: 'bottomRight',
|
||||
type:'information'
|
||||
});
|
||||
%endif
|
||||
});
|
||||
function getArtistArt() {
|
||||
$(".artist-bio-container").each(function(){
|
||||
|
||||
@@ -27,19 +27,18 @@
|
||||
<link rel="stylesheet" href="interfaces/brink/css/theme/default.css">
|
||||
|
||||
<!--Jquery APIs-->
|
||||
<script src="js/libs/jquery-1.7.2.min.js"></script>
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
|
||||
|
||||
<script src="interfaces/brink/js/jquery-ui-1.8.21.custom.min.js"></script>
|
||||
<link rel="stylesheet" href="interfaces/brink/css/jquery-ui-1.8.21.custom.css">
|
||||
<script src="interfaces/brink/js/libs/jquery-1.8.0.min.js"></script>
|
||||
<script src="interfaces/brink/js/libs/jquery-ui-1.8.23.custom.min.js"></script>
|
||||
<link rel="stylesheet" href="interfaces/brink/css/libs/jquery-ui-1.8.23.custom.css">
|
||||
|
||||
<!--Ajax Form-->
|
||||
<script src="interfaces/brink/js/libs/jquery.form.js"></script>
|
||||
|
||||
<!--Noty-->
|
||||
<script type="text/javascript" src="interfaces/brink/js/libs/jquery.noty.js" ></script>
|
||||
<link rel="stylesheet" href="interfaces/brink/css/libs/jquery.noty.css">
|
||||
<link rel="stylesheet" href="interfaces/brink/css/libs/noty_theme_default.css">
|
||||
<script type="text/javascript" src="interfaces/brink/js/noty/jquery.noty.js"></script>
|
||||
<script type="text/javascript" src="interfaces/brink/js/noty/layouts/bottomRight.js"></script>
|
||||
<!-- You can add more layouts if you want -->
|
||||
<script type="text/javascript" src="interfaces/brink/js/noty/themes/brink.js"></script>
|
||||
|
||||
<!--Global Script-->
|
||||
<script src="interfaces/brink/js/script.js"></script>
|
||||
@@ -62,7 +61,7 @@
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
% if not headphones.CURRENT_VERSION:
|
||||
$("#commits-behind").fadeIn('slow').text("New version available");
|
||||
$("#commits-behind").fadeIn('slow').text("${headphones.COMMITS_BEHIND}");
|
||||
% elif headphones.CURRENT_VERSION != headphones.LATEST_VERSION and headphones.INSTALL_TYPE != 'win':
|
||||
$("#commits-behind").fadeIn('slow').text("(${headphones.COMMITS_BEHIND})");
|
||||
% else:
|
||||
@@ -70,8 +69,6 @@
|
||||
% endif
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="custom_container"></div>
|
||||
<table id="table_body">
|
||||
<tr>
|
||||
<td id="header" colspan="2">
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
</%def>
|
||||
|
||||
<%def name="body()">
|
||||
<form id="config" action="configUpdate" method="post">
|
||||
<form id="config" class="ajax" action="configUpdate" method="post">
|
||||
<div id="nav-sub-container" class="nav-sub-fixed">
|
||||
<ul id="nav-sub">
|
||||
<li><a href="#"><span class="wsr">C</span> Settings Jump Menu</a>
|
||||
<li><a href="#"><span class="wsr Code"></span> Settings Jump Menu</a>
|
||||
<ul>
|
||||
<li><a href="#WebInterface"><span class="wsr"></span> Web Interface</a></li>
|
||||
<li><a href="#DownloadSettings"><span class="wsr"></span> Download Settings</a></li>
|
||||
@@ -23,26 +23,26 @@
|
||||
<li><a href="#Notifications"><span class="wsr"></span> Notifications</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#SaveSettings"><span class="wsr">C</span> Save Changes</a></li>
|
||||
<li><a href="#" class="submitForm" ><span class="wsr Approved"></span> Save Changes</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="config_wrapper"><!--config_wrapper-->
|
||||
<div id="WebInterface"><!--Web Interface-->
|
||||
<h1><span>C</span>Web Interface</h1>
|
||||
<h3><span>W</span>Web Interface changes require a restart to take effect</h3>
|
||||
<h1><span class="wsr">C</span>Web Interface</h1>
|
||||
<small><span class="wsr">W</span>Web Interface changes require a restart to take effect</small>
|
||||
<div>
|
||||
<table><!--HTTP-->
|
||||
<tr>
|
||||
<td>
|
||||
<h2>HTTP</h2>
|
||||
<h3>Basic settings for Headphones.</h3>
|
||||
<br /><small>Basic settings for Headphones.</small>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="http_host">Host:</label>
|
||||
<h3>Localhost or 0.0.0.0</h3>
|
||||
<br /><small>Localhost or 0.0.0.0</small>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="http_host" value="${config['http_host']}" size="25" maxlength="40" />
|
||||
@@ -51,7 +51,7 @@
|
||||
<tr>
|
||||
<td>
|
||||
<label for="http_port">Port:</label>
|
||||
<h3>Default is: 8181</h3>
|
||||
<br /><small>Default is: 8181</small>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="http_port" value="${config['http_port']}" size="10" maxlength="40" />
|
||||
@@ -60,7 +60,7 @@
|
||||
<tr>
|
||||
<td>
|
||||
<label for="http_username">Username:</label>
|
||||
<h3>Enter a desired username at login, or leave blank for none.</p>
|
||||
<br /><small>Enter a desired username at login, or leave blank for none.</p>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="http_username" value="${config['http_user']}" size="30" maxlength="40" />
|
||||
@@ -69,7 +69,7 @@
|
||||
<tr>
|
||||
<td>
|
||||
<label for="http_password">Password:</label>
|
||||
<h3>Enter a desired password at login, or leave blank for none.</h3>
|
||||
<br /><small>Enter a desired password at login, or leave blank for none.</small>
|
||||
</td>
|
||||
<td>
|
||||
<input type="password" name="http_password" value="${config['http_pass']}" size="30" maxlength="40" />
|
||||
@@ -78,7 +78,7 @@
|
||||
<tr>
|
||||
<td>
|
||||
<label for="launch_browser">Launch browser:</label><br />
|
||||
<h3>Enabling this feature will open Headphones at startup.</h3>
|
||||
<br /><small>Enabling this feature will open Headphones at startup.</small>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" name="launch_browser" value="1" ${config['launch_browser']} />
|
||||
@@ -89,7 +89,7 @@
|
||||
<!--Layout/Theme-->
|
||||
<tr>
|
||||
<td><label for="interface">Interface:</label>
|
||||
<h3>Choose from a verity of different themes</h3>
|
||||
<br /><small>Choose from a verity of different themes</small>
|
||||
</td>
|
||||
<td>
|
||||
<select name="interface">
|
||||
@@ -111,12 +111,12 @@
|
||||
<!--API-->
|
||||
<tr>
|
||||
<td><h2>API:</h2>
|
||||
<h3><label for="api_switch">Enabled/Disabled</label></h3></td>
|
||||
<small><label for="api_switch">Enabled/Disabled</label></small></td>
|
||||
<td><input class="switch" type="checkbox" name="api_switch" id="api_enabled" value="1" ${config['api_enabled']} /></td>
|
||||
</tr>
|
||||
<tr id="api_switch">
|
||||
<td>
|
||||
<h3>Visit <a href="https://github.com/rembo10/headphones/tree/" target="_blank"><span>D</span>repo</a> for more information.</h3>
|
||||
<small>Visit <a href="https://github.com/rembo10/headphones/tree/" target="_blank"><span>D</span>repo</a> for more information.</small>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="api_key" value="${config['api_key']}" size="30"><input class="submit" type="button" value="Generate" id="generate_api">
|
||||
@@ -126,14 +126,14 @@
|
||||
|
||||
<!--Interval-->
|
||||
<tr>
|
||||
<td><h2><span>P</span>Scan Intervals</h2></td>
|
||||
<td><h2><span class="wsr">P</span>Scan Intervals</h2></td>
|
||||
</tr>
|
||||
|
||||
<!--NZB Scan-->
|
||||
<tr>
|
||||
<td>
|
||||
<label for="nzb_search_interval">NZB Search:</label>
|
||||
<h3><label id="nzb_search_interval"></label></h3>
|
||||
<label for="nzb_search_interval">NZB Search:</label><br />
|
||||
<small><label id="nzb_search_interval"></label></small>
|
||||
</td>
|
||||
<td>
|
||||
<div class="sliderInterval" for="nzb_search_interval"></div>
|
||||
@@ -149,8 +149,8 @@
|
||||
<!--Download Scan-->
|
||||
<tr>
|
||||
<td>
|
||||
<label for="download_scan_interval">Download folder scan every: </label>
|
||||
<h3><label id="download_scan_interval"></label></h3>
|
||||
<label for="download_scan_interval">Download folder scan every: </label><br />
|
||||
<small><label id="download_scan_interval"></label></small>
|
||||
</td>
|
||||
<td>
|
||||
<div class="sliderInterval" for="download_scan_interval"></div>
|
||||
@@ -163,8 +163,8 @@
|
||||
|
||||
<!--Library Scan-->
|
||||
<tr>
|
||||
<td><label for="library_scan_interval">Library scan:</label>
|
||||
<h3><label id="libraryscan_interval"></label></h3>
|
||||
<td><label for="library_scan_interval">Library scan:</label><br />
|
||||
<small><label id="libraryscan_interval"></label></small>
|
||||
</td>
|
||||
<td>
|
||||
<div class="sliderInterval" for="libraryscan_interval"></div>
|
||||
@@ -181,8 +181,8 @@
|
||||
|
||||
<!--Download Settings-->
|
||||
<div id="DownloadSettings">
|
||||
<h1><span>u</span>Download Settings</h1>
|
||||
<h3>Setup SABnzbd or BitTorrent</h3>
|
||||
<h1><span class="wsr">u</span>Download Settings</h1>
|
||||
<small>Setup SABnzbd or BitTorrent</small>
|
||||
|
||||
<!--Sabnzdb-->
|
||||
<div>
|
||||
@@ -190,25 +190,25 @@
|
||||
<tr>
|
||||
<td>
|
||||
<h2>SABnzbd</h2>
|
||||
<h3></h3>
|
||||
<small></small>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="sab_host">Host:</label>
|
||||
<h3>Usually http://localhost:8080</h3>
|
||||
<br /><small>Usually http://localhost:8080</small>
|
||||
</td>
|
||||
<td><input type="text" name="sab_host" value="${config['sab_host']}" size="30" maxlength="40" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="sab_username">Username:</label>
|
||||
<h3>Type the user name for SABnzbd</h3>
|
||||
<br /><small>Type the user name for SABnzbd</small>
|
||||
</td>
|
||||
<td><input type="text" name="sab_username" value="${config['sab_user']}" size="20" maxlength="40" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="sab_password">Password:</label>
|
||||
<h3>Enter the password for SABnzbd</h3>
|
||||
<br /><small>Enter the password for SABnzbd</small>
|
||||
</td>
|
||||
<td><input type="password" name="sab_password" value="${config['sab_pass']}" size="20" maxlength="40" /></td>
|
||||
</tr>
|
||||
@@ -218,14 +218,14 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="sab_category">Category:</label>
|
||||
<h3>Write the category label name from SABnzbd</h3>
|
||||
<small>Write the category label name from SABnzbd</small>
|
||||
</td>
|
||||
<td><input type="text" name="sab_category" value="${config['sab_cat']}" size="20" maxlength="40" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="download_dir">Download Directory:</label>
|
||||
<h3>Full path to the directory where SAB downloads your music.</h3>
|
||||
<br /><small>Full path to the directory where SAB downloads your music.</small>
|
||||
</td>
|
||||
<td><input type="text" name="download_dir" value="${config['download_dir']}" size="40" /></td>
|
||||
</tr>
|
||||
@@ -237,13 +237,13 @@
|
||||
<div>
|
||||
<table>
|
||||
<tr>
|
||||
<td><h2><span>~</span>Torrents</h2></td>
|
||||
<td><h2><span class="wsr">~</span>Torrents</h2></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="blackhole_dir">Black Hole Directory:</label>
|
||||
<h3>Folder your Download program watches for NZBs</h3>
|
||||
<br /><small>Folder your Download program watches for NZBs</small>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="blackhole_dir" value="${config['blackhole_dir']}" size="40" />
|
||||
@@ -251,14 +251,14 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="usenet_retention">Usenet Retention:</label>
|
||||
<h3>Binary retention time</h3>
|
||||
<br /><small>Binary retention time</small>
|
||||
</td>
|
||||
<td><input type="text" name="usenet_retention" value="${config['usenet_retention']}" size="5" maxlength="10" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="torrentblackhole_dir">Black Hole Directory:</label>
|
||||
<h3>Folder your Download program watches for Torrents</h3>
|
||||
<br /><small>Folder your Download program watches for Torrents</small>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="torrentblackhole_dir" value="${config['torrentblackhole_dir']}" size="40">
|
||||
@@ -266,14 +266,14 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="numberofseeders">Minimum seeders:</label>
|
||||
<h3>Number of minimum seeders a torrent must have to be accepted</h3>
|
||||
<br /><small>Number of minimum seeders a torrent must have to be accepted</small>
|
||||
</td>
|
||||
<td><input type="text" name="numberofseeders" value="${config['numberofseeders']}" size="5" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="download_torent_dir">Music Download Directory:</label>
|
||||
<h3>Full path to the directory where your torrent client downloads your music <br />i.e. /Users/name/Downloads/music</h3>
|
||||
<br /><small>Full path to the directory where your torrent client downloads your music <br />i.e. /Users/name/Downloads/music</small>
|
||||
</td>
|
||||
<td><input type="text" name="download_torrent_dir" value="${config['download_torrent_dir']}" size="40" /></td>
|
||||
</tr>
|
||||
@@ -285,15 +285,15 @@
|
||||
<!--end Download Settings-->
|
||||
|
||||
<div><!--Search Providers-->
|
||||
<h2><span>L</span> Search Providers</h2>
|
||||
<h3>"We provide you with a automated search service to locate binary files/secgments that can be found on the public access network called Usenet."</h3>
|
||||
<h2><span class="wsr">L</span> Search Providers</h2>
|
||||
<small>"We provide you with a automated search service to locate binary files/secgments that can be found on the public access network called Usenet."</small>
|
||||
|
||||
<!--NZB Matrix-->
|
||||
<table id="nzbmatrix">
|
||||
<tr>
|
||||
<td>
|
||||
<h2><a href="http://www.nzbmatrix.com" target="_blank"><span>D</span>NZBMatrix</a></h2>
|
||||
<h3><label for="nzbmatrix_switch">Enabled/Disabled</label></h3>
|
||||
<h2><a href="http://www.nzbmatrix.com" target="_blank"><span class="wsr">D</span>NZBMatrix</a></h2>
|
||||
<br /><small><label for="nzbmatrix_switch">Enabled/Disabled</label></small>
|
||||
</td>
|
||||
<td><input class="switch" type="checkbox" name="nzbmatrix_switch" value="1" ${config['use_nzbmatrix']} /></td>
|
||||
</tr>
|
||||
@@ -314,8 +314,8 @@
|
||||
<table id="newznab" class="configtable">
|
||||
<tr>
|
||||
<td>
|
||||
<h2><a href="http://www.newznab.com/" target="_blank"><span>D</span>Newznab</a></h2>
|
||||
<h3><label for="newznab">Enabled/Disabled</label></h3>
|
||||
<h2><a href="http://www.newznab.com/" target="_blank"><span class="wsr">D</span>Newznab</a></h2>
|
||||
<br /><small><label for="newznab">Enabled/Disabled</label></small>
|
||||
</td>
|
||||
<td><input class="switch" type="checkbox" name="newznab" value="1" ${config['use_newznab']} /></td>
|
||||
</tr>
|
||||
@@ -325,14 +325,15 @@
|
||||
<div class="row">
|
||||
<label>Newznab Host</label>
|
||||
<input type="text" name="newznab_host" value="${config['newznab_host']}" size="30">
|
||||
<small>e.g. http://nzb.su</small>
|
||||
<br /><small>e.g. http://nzb.su</small>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label>Newznab API</label>
|
||||
<input type="text" name="newznab_apikey" value="${config['newznab_api']}" size="36">
|
||||
</div>
|
||||
<div class="row checkbox">
|
||||
<input id="newznab_enabled" type="checkbox" name="newznab_enabled" onclick="initConfigCheckbox($(this));" value="1" ${config['newznab_enabled']} /><label>Enabled</label>
|
||||
<input id="newznab_enabled" type="checkbox" name="newznab_enabled" onclick="initConfigCheckbox($(this));" value="1" ${config['newznab_enabled']} />
|
||||
<label>Enabled</label>
|
||||
</div>
|
||||
</div>
|
||||
<%
|
||||
@@ -369,10 +370,10 @@
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<h2><a href="http://nzbs.org/" target="_blank"><span>D</span>Nzbs</a></h2>
|
||||
<h3></h3>
|
||||
<h2><a href="http://nzbs.org/" target="_blank"><span class="wsr">D</span>Nzbs</a></h2>
|
||||
<small></small>
|
||||
</td>
|
||||
<td><input class="switch" type="checkbox" name="nzbsorg" value="1" ${config['use_nzbsorg']} /><h3><label for="nzbsorg"></label></h3></td>
|
||||
<td><input class="switch" type="checkbox" name="nzbsorg" value="1" ${config['use_nzbsorg']} /><small><label for="nzbsorg"></label></small></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table id="nzbsorg">
|
||||
@@ -387,8 +388,8 @@
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<h2><a href="http://www.newsbin.com/" target="_blank"><span>D</span>Newzbin</a></h2>
|
||||
<h3><label for="newzbin">Enabled/Disabled</label></h3>
|
||||
<h2><a href="http://www.newsbin.com/" target="_blank"><span class="wsr">D</span>Newzbin</a></h2>
|
||||
<small><label for="newzbin">Enabled/Disabled</label></small>
|
||||
</td>
|
||||
<td>
|
||||
<input class="switch" type="checkbox" name="newzbin" value="1" ${config['use_newzbin']} />
|
||||
@@ -412,7 +413,7 @@
|
||||
<tr>
|
||||
<td>
|
||||
<h2>BitTorrent:</h2>
|
||||
<h3>A peer-to-peer file sharing (P2P) communications protocol</h3>
|
||||
<small>A peer-to-peer file sharing (P2P) communications protocol</small>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" name="use_isohunt" value="1" ${config['use_isohunt']} />
|
||||
@@ -433,12 +434,12 @@
|
||||
|
||||
<!--Quality-->
|
||||
<div id="Quality">
|
||||
<h1><span>I</span> Quality & Post Processing</h1>
|
||||
<h3></h3>
|
||||
<h1><span class="wsr">I</span> Quality & Post Processing</h1>
|
||||
<small></small>
|
||||
<table id="AlbumQuality">
|
||||
<tr>
|
||||
<td><h2>Album Quality:</h2>
|
||||
<h3></h3>
|
||||
<small></small>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
@@ -469,7 +470,7 @@
|
||||
<table class="configtable">
|
||||
<tr>
|
||||
<td><h2>Post Processing:</h2>
|
||||
<h3></h3>
|
||||
<small></small>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" name="move_files" value="1" ${config['move_files']} />
|
||||
@@ -496,7 +497,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="destination_dir">Music Folder:</label>
|
||||
<h3>i.e. /Users/name/Music/iTunes or /Volumes/share/music</h3>
|
||||
<small>i.e. /Users/name/Music/iTunes or /Volumes/share/music</small>
|
||||
</td>
|
||||
<td><input type="text" name="destination_dir" value="${config['dest_dir']}" size="40" /></td>
|
||||
</tr>
|
||||
@@ -504,22 +505,22 @@
|
||||
</div><!--end Quality-->
|
||||
|
||||
<div id="AdvancedSettings"><!--AdvancedSettings-->
|
||||
<h1><span>S</span>Advanced Settings</h1>
|
||||
<h1><span class="wsr">S</span>Advanced Settings</h1>
|
||||
<div><!--Renaming-->
|
||||
<table class="configtable">
|
||||
<tr>
|
||||
<td><h2><span>T</span>Renaming</h2></td>
|
||||
<td><h2><span class="wsr">T</span>Renaming</h2></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="folder_format">Folder Format:</label>
|
||||
<h3>Use: $Artist/$artist, $Album/$album, $Year/$year, $Type/$type (release type) and $First/$first (first letter in artist name) <br />
|
||||
E.g.: $Type/$First/$artist/$album [$year] = Album/G/girl talk/all day [2010]</h3>
|
||||
<small>Use: $Artist/$artist, $Album/$album, $Year/$year, $Type/$type (release type) and $First/$first (first letter in artist name) <br />
|
||||
E.g.: $Type/$First/$artist/$album [$year] = Album/G/girl talk/all day [2010]</small>
|
||||
</td>
|
||||
<td><input type="text" name="folder_format" value="${config['folder_format']}" size="43" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="file_format">File Format:</label>
|
||||
<h3>Use: $Track/$track (track #), $Title/$title, $Artist/$artist, $Album/$album and $Year/$year</h3>
|
||||
<small>Use: $Track/$track (track #), $Title/$title, $Artist/$artist, $Album/$album and $Year/$year</small>
|
||||
</td>
|
||||
<td><input type="text" name="file_format" value="${config['file_format']}" size="43" /></td>
|
||||
</tr>
|
||||
@@ -528,15 +529,15 @@
|
||||
<div><!--Miscellaneous-->
|
||||
<table id="Miscellaneous" class="configtable">
|
||||
<tr>
|
||||
<td><h2><span>F</span>Miscellaneous</h2>
|
||||
<h3>Customize what HP</h3>
|
||||
<td><h2><span class="wsr">F</span>Miscellaneous</h2>
|
||||
<small>Customize what HP</small>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h2>Automatically:</h2>
|
||||
<h3>EPs, Compilations, Live Albums, Remix Albums and Singles</h3>
|
||||
<small>EPs, Compilations, Live Albums, Remix Albums and Singles</small>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" name="include_extras" value="1" ${config['include_extras']} />
|
||||
@@ -564,7 +565,7 @@
|
||||
<!--Re-Encoding Options-->
|
||||
<div id="Re-EncodingOptions">
|
||||
<h2>Re-Encoding Options</h2>
|
||||
<h3>Re-encode downloads during postprocessing.<br />This option requires the lame or ffmpeg encoder.</h3>
|
||||
<small>Re-encode downloads during postprocessing.<br />This option requires the lame or ffmpeg encoder.</small>
|
||||
<div><!--Encoder Options-->
|
||||
<table id="encoderoptions">
|
||||
<tr>
|
||||
@@ -684,7 +685,7 @@
|
||||
<tr>
|
||||
<td>
|
||||
<label>Advanced Encoding Options:</label>
|
||||
<h3>Ignores audio properties</h3>
|
||||
<small>Ignores audio properties</small>
|
||||
</td>
|
||||
<td><input type="text" name="advancedencoder" value="${config['advancedencoder']}" size="43" /></td>
|
||||
</tr>
|
||||
@@ -698,13 +699,13 @@
|
||||
|
||||
<!--Notifications-->
|
||||
<div id="Notifications">
|
||||
<h1><span>W</span>Notifications</h1>
|
||||
<h3></h3>
|
||||
<h1><span class="wsr">W</span> Notifications</h1>
|
||||
<small></small>
|
||||
<!--Prowl-->
|
||||
<table>
|
||||
<tr>
|
||||
<td><h2>Prowl Options</h2>
|
||||
<h3><label for="prowl_enabled">Enabled/Disabled</label></h3>
|
||||
<small><label for="prowl_enabled">Enabled/Disabled</label></small>
|
||||
</td>
|
||||
<td><input class="switch" type="checkbox" name="prowl_enabled" id="prowl" value="1" ${config['prowl_enabled']} /></td>
|
||||
</tr>
|
||||
@@ -727,7 +728,7 @@
|
||||
<table>
|
||||
<tr>
|
||||
<td><h2>XBMC</h2>
|
||||
<h3><label for="xbmc_enabled">Enabled/Disabled</label></h3>
|
||||
<small><label for="xbmc_enabled">Enabled/Disabled</label></small>
|
||||
</td>
|
||||
<td><input class="switch" type="checkbox" name="xbmc_enabled" id="xbmc" value="1" ${config['xbmc_enabled']} /></td>
|
||||
</tr>
|
||||
@@ -735,7 +736,7 @@
|
||||
<table id="xbmcoptions">
|
||||
<tr>
|
||||
<td><label for="xbmc_host">XBMC Host:</label>
|
||||
<h3>e.g. http://localhost:8080. Separate hosts with commas</h3>
|
||||
<small>e.g. http://localhost:8080. Separate hosts with commas</small>
|
||||
</td>
|
||||
<td><input type="text" name="xbmc_host" value="${config['xbmc_host']}" size="30">
|
||||
</td>
|
||||
@@ -763,7 +764,7 @@
|
||||
<tr>
|
||||
<td>
|
||||
<h2>Notify My Android</h2>
|
||||
<h3><label for="nma_enabled">Enabled/Disabled</label></h3>
|
||||
<small><label for="nma_enabled">Enabled/Disabled</label></small>
|
||||
</td>
|
||||
<td><input class="switch" type="checkbox" name="nma_enabled" id="nma" value="1" ${config['nma_enabled']} /></td>
|
||||
</tr>
|
||||
@@ -771,7 +772,7 @@
|
||||
<table id="nmaoptions">
|
||||
<tr>
|
||||
<td><label for="nma_apikey">NotifyMyAndroid API Key:</label>
|
||||
<h3>Separate multiple api keys with ",".</h3>
|
||||
<small>Separate multiple api keys with ",".</small>
|
||||
</td>
|
||||
<td><input type="text" name="nma_apikey" value="${config['nma_apikey']}" size="30"></td>
|
||||
</tr>
|
||||
@@ -815,7 +816,7 @@
|
||||
</div>
|
||||
<!--Mirror-->
|
||||
<div id="Mirror">
|
||||
<h2><span>K</span>Mirror</h2>
|
||||
<h2><span class="wsr">K</span>Mirror</h2>
|
||||
<!--Musicbrainz-->
|
||||
<table>
|
||||
<tr>
|
||||
@@ -858,7 +859,7 @@
|
||||
<table id="hpserver">
|
||||
<tr>
|
||||
<td><h2>Headphones Server</h2>
|
||||
<h3><a href="http://headphones.codeshy.com/vip" target="_blank"><span>D</span>Get an Account</a></h3>
|
||||
<small><a href="http://headphones.codeshy.com/vip" target="_blank"><span class="wsr">D</span>Get an Account</a></small>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
@@ -877,7 +878,6 @@
|
||||
</div><!--End mirror-->
|
||||
|
||||
</div><!--end AdvancedSettings-->
|
||||
<input type="submit" value="Save Changes" />
|
||||
</div><!--end config wrapper-->
|
||||
</form>
|
||||
</%def>
|
||||
@@ -885,6 +885,9 @@
|
||||
<%def name="javascriptIncludes()">
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
$(".submitForm").click(function(){
|
||||
$("#config").submit();
|
||||
});
|
||||
//Newznab
|
||||
function newznab(){
|
||||
if( $('input[name="newznab"]').is(":checked") ){
|
||||
|
||||
+38
-40
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.8.21
|
||||
* jQuery UI CSS Framework 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.8.21
|
||||
* jQuery UI CSS Framework 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -47,27 +47,27 @@
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Century%20Gothic,Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1em&cornerRadius=0px&bgColorHeader=252c34&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=20&borderColorHeader=000000&fcHeader=0091ff&iconColorHeader=0091ff&bgColorContent=000000&bgTextureContent=01_flat.png&bgImgOpacityContent=100&borderColorContent=363636&fcContent=ffffff&iconColorContent=ffffff&bgColorDefault=283943&bgTextureDefault=01_flat.png&bgImgOpacityDefault=1000&borderColorDefault=242424&fcDefault=a1a1a1&iconColorDefault=888888&bgColorHover=3c444b&bgTextureHover=01_flat.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=0091ff&bgTextureActive=01_flat.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=05_inset_soft.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
||||
*/
|
||||
|
||||
|
||||
/* Component containers
|
||||
----------------------------------*/
|
||||
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
|
||||
.ui-widget { font-family: Century Gothic,Verdana,Arial,sans-serif; font-size: 1em; }
|
||||
.ui-widget .ui-widget { font-size: 1em; }
|
||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
|
||||
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_75_ffffff_1x400.png) 50% 50% repeat-x; color: #222222; }
|
||||
.ui-widget-content a { color: #222222; }
|
||||
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
|
||||
.ui-widget-header a { color: #222222; }
|
||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Century Gothic,Verdana,Arial,sans-serif; font-size: 1em; }
|
||||
.ui-widget-content { border: 1px solid #363636; background: #000000 url(images/ui-bg_flat_100_000000_40x100.png) 50% 50% repeat-x; color: #ffffff; }
|
||||
.ui-widget-content a { color: #ffffff; }
|
||||
.ui-widget-header { border: 1px solid #000000; background: #252c34 url(images/ui-bg_highlight-soft_20_252c34_1x100.png) 50% 50% repeat-x; color: #0091ff; font-weight: bold; }
|
||||
.ui-widget-header a { color: #0091ff; }
|
||||
|
||||
/* Interaction states
|
||||
----------------------------------*/
|
||||
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
|
||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
|
||||
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
||||
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
|
||||
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
||||
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #242424; background: #283943 url(images/ui-bg_flat_1000_283943_40x100.png) 50% 50% repeat-x; font-weight: normal; color: #a1a1a1; }
|
||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #a1a1a1; text-decoration: none; }
|
||||
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #3c444b url(images/ui-bg_flat_75_3c444b_40x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; }
|
||||
.ui-state-hover a, .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
|
||||
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #0091ff url(images/ui-bg_flat_65_0091ff_40x100.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
||||
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
|
||||
.ui-widget :active { outline: none; }
|
||||
|
||||
@@ -86,11 +86,11 @@
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_0091ff_256x240.png); }
|
||||
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
|
||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
|
||||
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
|
||||
@@ -277,15 +277,15 @@
|
||||
----------------------------------*/
|
||||
|
||||
/* Corner radius */
|
||||
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 0px; -webkit-border-top-left-radius: 0px; -khtml-border-top-left-radius: 0px; border-top-left-radius: 0px; }
|
||||
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 0px; -webkit-border-top-right-radius: 0px; -khtml-border-top-right-radius: 0px; border-top-right-radius: 0px; }
|
||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px; -khtml-border-bottom-left-radius: 0px; border-bottom-left-radius: 0px; }
|
||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px; -khtml-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px; }
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
||||
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*!
|
||||
* jQuery UI Resizable 1.8.21
|
||||
* jQuery UI Resizable 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -304,7 +304,7 @@
|
||||
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
||||
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
||||
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*!
|
||||
* jQuery UI Selectable 1.8.21
|
||||
* jQuery UI Selectable 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -314,7 +314,7 @@
|
||||
*/
|
||||
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
|
||||
/*!
|
||||
* jQuery UI Accordion 1.8.21
|
||||
* jQuery UI Accordion 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -333,7 +333,7 @@
|
||||
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
|
||||
.ui-accordion .ui-accordion-content-active { display: block; }
|
||||
/*!
|
||||
* jQuery UI Autocomplete 1.8.21
|
||||
* jQuery UI Autocomplete 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -347,7 +347,7 @@
|
||||
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
|
||||
|
||||
/*
|
||||
* jQuery UI Menu 1.8.21
|
||||
* jQuery UI Menu 1.8.23
|
||||
*
|
||||
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -386,7 +386,7 @@
|
||||
margin: -1px;
|
||||
}
|
||||
/*!
|
||||
* jQuery UI Button 1.8.21
|
||||
* jQuery UI Button 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -424,7 +424,7 @@ input.ui-button { padding: .4em 1em; }
|
||||
/* workarounds */
|
||||
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
|
||||
/*!
|
||||
* jQuery UI Dialog 1.8.21
|
||||
* jQuery UI Dialog 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -445,7 +445,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
|
||||
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
||||
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
||||
/*!
|
||||
* jQuery UI Slider 1.8.21
|
||||
* jQuery UI Slider 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -453,12 +453,12 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
|
||||
*
|
||||
* http://docs.jquery.com/UI/Slider#theming
|
||||
*/
|
||||
.ui-slider { position: relative; text-align: left; background: rgb(0,65,145); border: 1px solid #000; }
|
||||
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: .8em; height: .8em; cursor: default; border-radius: 3em; }
|
||||
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; background: rgb(0,145,255); }
|
||||
.ui-slider { position: relative; text-align: left; }
|
||||
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
||||
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
|
||||
|
||||
.ui-slider-horizontal { height: .2em; }
|
||||
.ui-slider-horizontal .ui-slider-handle { top: -.4em; margin-left: -.6em; }
|
||||
.ui-slider-horizontal { height: .8em; }
|
||||
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
||||
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
||||
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
||||
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
||||
@@ -468,7 +468,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
|
||||
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
||||
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
||||
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*!
|
||||
* jQuery UI Tabs 1.8.21
|
||||
* jQuery UI Tabs 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -486,7 +486,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
|
||||
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
|
||||
.ui-tabs .ui-tabs-hide { display: none !important; }
|
||||
/*!
|
||||
* jQuery UI Datepicker 1.8.21
|
||||
* jQuery UI Datepicker 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -543,8 +543,6 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
|
||||
|
||||
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
||||
.ui-datepicker-cover {
|
||||
display: none; /*sorry for IE5*/
|
||||
display/**/: block; /*sorry for IE5*/
|
||||
position: absolute; /*must have*/
|
||||
z-index: -1; /*must have*/
|
||||
filter: mask(); /*must have*/
|
||||
@@ -553,7 +551,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
|
||||
width: 200px; /*must have*/
|
||||
height: 200px; /*must have*/
|
||||
}/*!
|
||||
* jQuery UI Progressbar 1.8.21
|
||||
* jQuery UI Progressbar 1.8.23
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
@@ -0,0 +1,804 @@
|
||||
body {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
font-family: "Century Gothic", Verdana, Tahoma, Arial, sans-serif;
|
||||
overflow: hidden;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
/*
|
||||
* Univarsal
|
||||
* */
|
||||
|
||||
.clear{
|
||||
clear:both;
|
||||
}
|
||||
|
||||
/*Removes outline in Chrome*/
|
||||
*:focus{
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/*
|
||||
* Links Styles
|
||||
* */
|
||||
|
||||
a:link {
|
||||
color: rgb(200,200,200);
|
||||
text-decoration: none;
|
||||
}
|
||||
a:visited {
|
||||
color: rgb(200,200,200);
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover { /*this effect is not shown in NN4.xx*/
|
||||
color: rgb(255,255,255);
|
||||
text-decoration: none;
|
||||
}
|
||||
a:active {/*colour in NN4.xx is red*/
|
||||
color: rgb(200,200,200);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#container { width: 100%; margin: auto; }
|
||||
|
||||
/*Text format*/
|
||||
h1,h2,h3,h4,h5,h6{padding-left: 10px,}
|
||||
|
||||
h1
|
||||
{
|
||||
font-size: 1.2em;
|
||||
text-decoration: none;
|
||||
margin: 0;
|
||||
line-height: 2em;
|
||||
color: rgb(0,145,255);
|
||||
}
|
||||
h2 { font-size: 1em; color: rgb(255,255,255); text-shadow: -1px -1px 0px rgb(10,10,10); margin-bottom: 0px; text-decoration: none; padding: 0px;}
|
||||
h3 { font-size: .8em; font-weight: normal; color: rgb(140,140,140); }
|
||||
h4 { padding: .6px; font-size: 0.8em; color: rgba(0,0,0,0.6); text-shadow: 1px 1px 0px rgba(255,255,255,0.1); text-decoration: none;}
|
||||
|
||||
p { color: rgb(160,160,160); text-shadow: 1px 1px 1px #000; margin-top: 8px; margin-bottom: 8px; }
|
||||
small { color: rgb(160,160,160); }
|
||||
/*#table_body*/
|
||||
#table_body{
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
overflow: hidden;
|
||||
}
|
||||
/*header*/
|
||||
#header
|
||||
{
|
||||
box-sizing: border-box;
|
||||
height: 45px;
|
||||
border-bottom: 1px solid #000;
|
||||
box-shadow: 1px 1px 2px #000;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
div#logo{ float: left; margin-left: .5em; width: 12em;}
|
||||
div#logo img{ width: 2.5em; }
|
||||
|
||||
/* *
|
||||
* Search holder
|
||||
*/
|
||||
div#searchbar
|
||||
{
|
||||
margin-top: .5em;
|
||||
margin-right: .5em;
|
||||
float: right;
|
||||
}
|
||||
div#searchbar input[type="text"]{
|
||||
margin: 0px;
|
||||
padding: 0;
|
||||
padding-left: 5px;
|
||||
float: left;
|
||||
width: 150px;
|
||||
}
|
||||
div#searchbar select{
|
||||
float: left;
|
||||
}
|
||||
/*
|
||||
* end searchbar
|
||||
* */
|
||||
|
||||
/*Noty*/
|
||||
div.custom_container /*Makes use of noty*/
|
||||
{
|
||||
width: 320px;
|
||||
position: fixed;
|
||||
top: 25px;
|
||||
right: 25px;
|
||||
z-index: 999999;
|
||||
}
|
||||
|
||||
/*Commits*/
|
||||
span#commits-behind {
|
||||
position: relative;
|
||||
}
|
||||
span#commits-behind {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
margin-top: -12px;
|
||||
padding: 2px;
|
||||
border: 1px solid white;
|
||||
text-align: center;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
/*Menu*/
|
||||
ul#nav
|
||||
{
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
float: left;
|
||||
height: 100%;
|
||||
width: 60%;
|
||||
}
|
||||
|
||||
|
||||
ul#nav li
|
||||
{
|
||||
float: left;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
line-height: 3em;
|
||||
font-size: 1em;
|
||||
text-align: center;
|
||||
height: 100%;
|
||||
}
|
||||
ul#nav li a:hover{
|
||||
background-color: rgba(8,160,255,0.1);
|
||||
color: rgba(0,145,255,0.8);
|
||||
text-shadow: 1px 1px rgba(0,0,0,0.9);
|
||||
}
|
||||
ul#nav li a{
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
display: block;
|
||||
color: rgba(0,0,0,0.9);
|
||||
text-shadow: 1px 1px rgba(0,145,255,0.2);
|
||||
}
|
||||
/* *
|
||||
* Sub navigation
|
||||
*/
|
||||
|
||||
#nav-sub-container {
|
||||
width: 100%;
|
||||
border-bottom: 1px solid rgb(0,145,255);
|
||||
background: #000;
|
||||
height: 2.3em;
|
||||
}
|
||||
#nav-sub-container li {
|
||||
font-size: .8em;
|
||||
text-align: center;
|
||||
line-height: 2.8em;
|
||||
}
|
||||
#nav-sub-container.nav-sub-fixed {
|
||||
position: fixed;
|
||||
top: 53px;
|
||||
width: 22em;
|
||||
border-right: 1px solid rgb(0,145,255);
|
||||
border-radius: 0 0 10em 0;
|
||||
}
|
||||
|
||||
ul#nav-sub { float: left; }
|
||||
ul#nav-view { float:right; }
|
||||
|
||||
/*DropDown*/
|
||||
ul#nav-sub li ul { display: none; list-style: none; padding: 0; margin: 0; box-shadow: 0px 5px 5px #000;}
|
||||
ul#nav-sub li:hover ul { display: block; }
|
||||
ul#nav-sub li ul li { background-color: rgba(0,0,0,.5); float: none; text-align: left;}
|
||||
ul#nav-sub li ul li a{ display: block;
|
||||
border-top:1px solid rgba(255,255,255,.1);
|
||||
border-bottom:1px solid rgba(0,0,0,.1);
|
||||
}
|
||||
ul#nav-sub li ul li a:hover{ color: rgb(0,145,255); }
|
||||
|
||||
|
||||
ul#nav-sub,
|
||||
ul#nav-view {
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
ul#nav-view li,
|
||||
ul#nav-sub > li {
|
||||
float: left;
|
||||
border-right: 1px solid rgba(255,255,255,0.2);
|
||||
}
|
||||
|
||||
ul#nav-view li,
|
||||
ul#nav-sub li a {
|
||||
display: block;
|
||||
padding: 0 10px 0 10px;
|
||||
text-decoration: none;
|
||||
color: rgba(255,255,255,.3);
|
||||
}
|
||||
ul#nav-view > li:hover,
|
||||
ul#nav-sub > li:hover > a {
|
||||
color: rgb(0,145,255);
|
||||
border-bottom: 2px solid rgb(0,145,255);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
ul#content-container{
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
div#main {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.table_wrapper {
|
||||
border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
width: 100%;
|
||||
min-height: 50px;
|
||||
clear: both;
|
||||
_height: 302px;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
/*Inputs & Select*/
|
||||
input, textarea, select, option {
|
||||
appearance:none;
|
||||
-moz-appearance:none; /* Firefox */
|
||||
-webkit-appearance:none; /* Safari and Chrome */
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
font-size: .8em;
|
||||
color: rgba(255,255,255,0.6);
|
||||
line-height: 25px;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
}
|
||||
input[type="text"]{
|
||||
height: 27px;
|
||||
}
|
||||
|
||||
input, textarea{
|
||||
border: 1px solid rgba(0,0,0,0.6);
|
||||
background: rgba(0,0,0,.1);
|
||||
border: 1px solid rgba(0,0,0,.3);
|
||||
}
|
||||
input[type=checkbox]:hover,
|
||||
input[type=radio]:hover,
|
||||
input[type='text']:focus,
|
||||
input[type='password']:focus,
|
||||
textarea:focus {
|
||||
background-color: rgba(0,145,255,.1);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
select,
|
||||
input[type="button"],
|
||||
input[type="submit"]{
|
||||
background-color: rgba(0,0,0,.1);
|
||||
border: 1px solid rgba(0,0,0,.3);
|
||||
}
|
||||
select:hover,
|
||||
input[type="button"]:hover,
|
||||
input[type="submit"]:hover{
|
||||
background-color: rgba(0,145,255,.1);
|
||||
color: #fff;
|
||||
}
|
||||
select option{
|
||||
background: rgb(31,31,31);
|
||||
}
|
||||
select option:hover{
|
||||
background: rgb(255,255,255);
|
||||
color: #000;
|
||||
}
|
||||
|
||||
input[type=checkbox],
|
||||
input[type=radio] {
|
||||
display: inline-block;
|
||||
font-size: 15px;
|
||||
line-height: 1em;
|
||||
margin: 0 0.25em 0 0;
|
||||
padding: 0;
|
||||
width: 1.25em;
|
||||
height: 1.25em;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
|
||||
input[type=radio] {
|
||||
-webkit-border-radius: 2em; /* Make radios round */
|
||||
}
|
||||
|
||||
input[type="radio"]:checked {
|
||||
background: rgba(0,145,255,.8);
|
||||
}
|
||||
|
||||
input[type="checkbox"]:checked{
|
||||
background: rgb(0,145,255) no-repeat center center;
|
||||
}
|
||||
input[type="checkbox"]:checked:after{
|
||||
content: '.';
|
||||
color: rgb(255,255,255);
|
||||
font-family: 'WebSymbolsRegular';
|
||||
font-weight: bold;
|
||||
font-size: 1em;
|
||||
text-shadow: 1px 1px 0px rgba(0,0,0,0.3);
|
||||
margin-left: 1px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
/*End Inputs & Select*/
|
||||
|
||||
.manage_wrapper { width: 88%; margin: 20px auto 0 auto; padding: 25px; min-height: 150px; clear: both; _height: 302px; zoom: 1; }
|
||||
|
||||
/*config*/
|
||||
div#config_wrapper { margin: auto; width: 640px;}
|
||||
div#config_wrapper div table { width: 100%; border-collapse:separate; border-spacing: 10px; }
|
||||
div#config_wrapper div table tr td:first-child{ width: 240px; }
|
||||
div#config_wrapper div table tr td{ vertical-align: middle; }
|
||||
/*end config*/
|
||||
|
||||
/* Artist Table Style*/
|
||||
table#artist_table { width: 100%;}
|
||||
table#artist_table th#select { text-align: left; }
|
||||
table#artist_table th#albumart { text-align: center; width: 100px; }
|
||||
table#artist_table th#name { text-align: left; min-width: 150px; }
|
||||
table#artist_table th#album { text-align: left; min-width: 100px; }
|
||||
table#artist_table th#have { text-align: center; min-width: 50px; }
|
||||
|
||||
table#artist_table td#select { vertical-align: middle; text-align: center; }
|
||||
table#artist_table td#albumart { vertical-align: middle; text-align: left; }
|
||||
table#artist_table td#name { vertical-align: middle; text-align: left; }
|
||||
table#artist_table td#album { vertical-align: middle; text-align: left; }
|
||||
table#artist_table td#have { vertical-align: middle; }
|
||||
|
||||
table#album_table { width: 100%; }
|
||||
/* Album Tableheader*/
|
||||
table#album_table th#select { vertical-align: middle; text-align: left; width: 25px; }
|
||||
table#album_table th#albumart {vertical-align: middle; text-align: left; width: 70px; }
|
||||
table#album_table th#albumname {vertical-align: middle; text-align: left; min-width: 150px; }
|
||||
table#album_table th#reldate {vertical-align: middle; width: 175px; text-align: left; min-width: 70px; }
|
||||
table#album_table th#status {vertical-align: middle; width: 175px; text-align: left; min-width: 80px; }
|
||||
table#album_table th#type {vertical-align: middle; width: 175px; text-align: left; min-width: 60px; max-width: 100px; }
|
||||
table#album_table th#bitrate {vertical-align: middle; text-align: left; min-width: 60px; }
|
||||
/* Album tabledata */
|
||||
table#album_table td#select { vertical-align: middle; text-align: left; }
|
||||
table#album_table td#albumart { vertical-align: middle; text-align: left; }
|
||||
/*Artist Bio*/
|
||||
.artist-bio-container{
|
||||
width: 100%;
|
||||
height: 240px;
|
||||
background-color: rgba(0,0,0,0.5);
|
||||
position: relative;
|
||||
}
|
||||
.artist-bio-container .artist-art{
|
||||
width: 240px;
|
||||
max-height: 240px;
|
||||
float: left;
|
||||
margin: 10px;
|
||||
box-shadow: 0 0 6px #000;
|
||||
-moz-box-shadow: 0 0 6px #000;
|
||||
-webkit-box-shadow: 0 0 6px #000;
|
||||
-o-box-shadow: 0 0 6px #000;
|
||||
overflow: hidden;
|
||||
}
|
||||
.artist-bio-container .artist-art img{
|
||||
width: 100%;
|
||||
}
|
||||
.artist-bio-container .artist-bio{
|
||||
float: left;
|
||||
font-size: .8em;
|
||||
display: block;
|
||||
width: 35%;
|
||||
}
|
||||
|
||||
/*Grid View Artist*/
|
||||
.image-container {
|
||||
position: relative;
|
||||
display: none;
|
||||
float: left;
|
||||
width: 126px;
|
||||
margin: 10px 10px 10px 10px;
|
||||
}
|
||||
.image-tag {
|
||||
z-index: 2;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 10px;
|
||||
width: .6em;
|
||||
height: 1.2em;
|
||||
border-radius: 0 0 2px 2px;
|
||||
box-shadow: 1px 2px 2px #000;
|
||||
display: none;
|
||||
}
|
||||
.image-tag.Wanted {
|
||||
background-color: rgb(0,175,255);
|
||||
display: block;
|
||||
}
|
||||
.image-tag.Downloaded {
|
||||
background-color: #5DD345;
|
||||
display: block;
|
||||
}
|
||||
.image-container .image-box{
|
||||
height: 126px;
|
||||
width: 126px;
|
||||
position: relative;
|
||||
box-shadow: 0 0 6px #000;
|
||||
-moz-box-shadow: 0 0 6px #000;
|
||||
-webkit-box-shadow: 0 0 6px #000;
|
||||
overflow: hidden;
|
||||
}
|
||||
.image-container .image-box img {
|
||||
width: 100%;
|
||||
min-height: 100%;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
z-index: 1;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.image-container input {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
z-index: 2;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: right;
|
||||
}
|
||||
.image-container input:checked {
|
||||
content: "";
|
||||
background: rgba(0,0,0,0.1);
|
||||
box-shadow: 0 0 10px rgb(0,145,255);
|
||||
-moz-box-shadow: 0 0 10px rgb(0,145,255);
|
||||
-webkit-box-shadow: 0 0 10px rgb(0,145,255);
|
||||
}
|
||||
.image-container .image-actions {
|
||||
display: none;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 4;
|
||||
width: 100%;
|
||||
height: 20%;
|
||||
font-size: 1em;
|
||||
line-height: 1.5em;
|
||||
text-align: center;
|
||||
background-color: rgba(0,0,0,0.5);
|
||||
}
|
||||
.image-container:hover .image-actions{
|
||||
display: block;
|
||||
}
|
||||
.image-container .image-info{
|
||||
text-align: left;
|
||||
font-size: 0.7em;
|
||||
position: relative;
|
||||
top: 5px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
text-shadow: 1px 1px 2px #000;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid rgba(0,0,0,0.1);
|
||||
}
|
||||
/* Album art image sizes */
|
||||
.album-art-small
|
||||
{
|
||||
position: relative;
|
||||
width: 61px;
|
||||
height: 61px;
|
||||
float: left;
|
||||
overflow: visible;
|
||||
background-color: rgb(255,255,255);
|
||||
position: relative;
|
||||
text-align: center;
|
||||
box-shadow: 0 0 3px #000;
|
||||
-moz-box-shadow: 0 0 3px #000;
|
||||
-webkit-box-shadow: 0 0 3px #000;
|
||||
-o-box-shadow: 0 0 3px #000;
|
||||
}
|
||||
.album-art-small img { width: 100%; height: 100%; }
|
||||
.album-art-small .album-actions {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
background-color: rgba(0,0,0,0.5);
|
||||
}
|
||||
.artist-status div{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0,0,0,0.5);
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 2;
|
||||
line-height: 3.8em;
|
||||
text-align: center;
|
||||
}
|
||||
.album-art-small img { width: 100%; height: 100%; z-index: 200; border: 0; }
|
||||
div.status:hover { }
|
||||
.album-art-big
|
||||
{
|
||||
background: url(../images/box-big.png) no-repeat top left;
|
||||
float: left;
|
||||
height: 200px;
|
||||
margin-left: 20px;
|
||||
margin-top. 20px;
|
||||
padding-top:5px;
|
||||
padding-left: 27px;
|
||||
padding-bottom: 5px;
|
||||
padding-right: 110px;
|
||||
position: relative;
|
||||
width: 200px;
|
||||
z-index: 200;
|
||||
}
|
||||
.album-art-cd
|
||||
{
|
||||
background: url(../images/cd-big.png);
|
||||
width: 191px;
|
||||
height: 191px;
|
||||
position: absolute;
|
||||
top: 9px;
|
||||
right: 20px;
|
||||
z-index: 1;
|
||||
}
|
||||
.album-art-big img { width: 200px; height: 200px; position: absolute; z-index: 2; }
|
||||
|
||||
#album-describtion { float: left; width: 400px; min-height: 200px; margin-left: 20px; }
|
||||
table#album_table td#albumname { vertical-align: middle; text-align: left; }
|
||||
table#album_table td#reldate { vertical-align: middle; text-align: left; }
|
||||
table#album_table td#status { vertical-align: middle; text-align: left; }
|
||||
table#album_table td#type { vertical-align: middle; text-align: left; }
|
||||
table#album_table td#have { vertical-align: middle; }
|
||||
table#album_table td#bitrate { vertical-align: middle; text-align: left; }
|
||||
|
||||
div#albumheader { margin: 20px 0px 40px 0px; min-height: 200px; }
|
||||
|
||||
/*
|
||||
Track
|
||||
*/
|
||||
div#track_wrapper { font-size: 12px; width: 100%; clear:both; }
|
||||
table#track_table { margin-top: 20px; width: 100%; }
|
||||
table#track_table td { padding: 3px 10px 3px 10px; }
|
||||
table#track_table th#number { text-align: left; width: 30px; padding-left: 4px; }
|
||||
table#track_table th#name { text-align:left ; min-width: 160px; }
|
||||
table#track_table th#duration { text-align: left; width: 90px; }
|
||||
table#track_table th#location { text-align: left; min-width: 180px; }
|
||||
table#track_table th#bitrate { text-align: left; min-width: 75px; }
|
||||
|
||||
table#track_table td#number { vertical-align: middle; text-align: left; font-size: 12px; overflow: hidden; }
|
||||
table#track_table td#name { vertical-align: middle; text-align: left; font-size: 12px; overflow: hidden; }
|
||||
table#track_table td#duration { vertical-align: middle; text-align: left; font-size: 12px; overflow: hidden; }
|
||||
table#track_table td#location { vertical-align: middle; text-align: left; font-size: 12px; overflow: hidden; }
|
||||
table#track_table td#bitrate { vertical-align: middle; text-align: left; font-size: 12px; overflow: hidden; }
|
||||
|
||||
|
||||
|
||||
/* History table*/
|
||||
table#history_table { width: 100%; font-size: 12px; }
|
||||
table#history_table td#dateadded { vertical-align: middle; text-align: left; min-width: 150px; font-size: 14px; }
|
||||
table#history_table td#filename { vertical-align: middle; text-align: left; min-width: 100px; font-size: 15px; }
|
||||
table#history_table td#size { vertical-align: middle; text-align: left; min-width: 75px; font-size: 14px; }
|
||||
table#history_table td#status { vertical-align: middle; text-align: left; font-size: 14px; }
|
||||
table#history_table td#action { vertical-align: middle; text-align: left; font-size: 14px; }
|
||||
|
||||
/*
|
||||
Log
|
||||
*/
|
||||
table#log_table { width: 100%; }
|
||||
table#log_table th#timestamp { text-align: left; min-width: 150px; }
|
||||
table#log_table th#level { text-align: left; min-width: 60px; }
|
||||
table#log_table th#message { text-align: left; min-width: 500px; }
|
||||
/*
|
||||
Upcoming
|
||||
*/
|
||||
/*Upcoming Tablehead*/
|
||||
table#upcoming_table {width: 100%;}
|
||||
table#upcoming_table th#albumart { text-align: left; min-width: 20%; }
|
||||
table#upcoming_table th#albumname { text-align: left; min-width: 200px; }
|
||||
table#upcoming_table th#artistname { text-align: left; min-width: 150px; }
|
||||
table#upcoming_table th#reldate { text-align: left; min-width: 100px; }
|
||||
table#upcoming_table th#type { text-align: left; min-width: 75px; }
|
||||
|
||||
/*Upcoming Tabledata*/
|
||||
table#upcoming_table td#select { vertical-align: middle; text-align: left; }
|
||||
table#upcoming_table td#albumart { vertical-align: middle; text-align: left; min-width: 50px; }
|
||||
table#upcoming_table td#albumname { vertical-align: middle; text-align: left; min-width: 200px; }
|
||||
table#upcoming_table td#artistname { vertical-align: middle; text-align: left; min-width: 150px; }
|
||||
table#upcoming_table td#reldate { vertical-align: middle; text-align: left; min-width: 100px; }
|
||||
table#upcoming_table td#type { vertical-align: middle; text-align: left; min-width: 75px; }
|
||||
table#upcoming_table td#status { vertical-align: middle; text-align: left; }
|
||||
|
||||
/*Wanted Tablehead*/
|
||||
table#wanted_table { width: 100%; }
|
||||
table#wanted_table th#albumart { text-align: left; min-width: 50px; }
|
||||
table#wanted_table th#albumname { text-align: left; min-width: 200px; }
|
||||
table#wanted_table th#artistname { text-align: left; min-width: 150px; }
|
||||
table#wanted_table th#reldate { text-align: left; min-width: 100px; }
|
||||
table#wanted_table th#type { text-align: left; min-width: 75px; }
|
||||
|
||||
/*Wanted Tabledata*/
|
||||
table#wanted_table td#select { vertical-align: middle; text-align: left; }
|
||||
table#wanted_table td#albumart { vertical-align: middle; text-align: left; min-width: 50px; }
|
||||
table#wanted_table td#albumname { vertical-align: middle; text-align: left; min-width: 200px; }
|
||||
table#wanted_table td#artistname { vertical-align: middle; text-align: left; min-width: 150px; }
|
||||
table#wanted_table td#reldate { vertical-align: middle; text-align: left; min-width: 100px; }
|
||||
table#wanted_table td#type { vertical-align: middle; text-align: left; min-width: 75px; }
|
||||
table#wanted_table td#status { vertical-align: middle; text-align: left; }
|
||||
|
||||
/*Search Results Tablehead*/
|
||||
table#searchresults_table { width: 100%; }
|
||||
table#searchresults_table th#albumname { text-align: left; min-width: 225px; }
|
||||
table#searchresults_table th#artistname { text-align: left; min-width: 325px; }
|
||||
table#searchresults_table th#score { text-align: left; min-width: 75px; }
|
||||
|
||||
table#searchresults_table td#albumname { vertical-align: middle; text-align: left; min-width: 200px; }
|
||||
table#searchresults_table td#artistname { vertical-align: middle; text-align: left; min-width: 300px; }
|
||||
table#searchresults_table td#score { vertical-align: middle; text-align: left; min-width: 75px; }
|
||||
|
||||
/*progress container*/
|
||||
|
||||
div.progress-container span
|
||||
{
|
||||
float: left;
|
||||
margin: auto;
|
||||
color: #fffff;
|
||||
}
|
||||
div.progress-container span:hover
|
||||
{
|
||||
|
||||
}
|
||||
div.progress-container
|
||||
{
|
||||
width: 100%;
|
||||
height: 15px;
|
||||
margin: 2px 5px 2px 0px;
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
border: 1px solid rgb(10,10,10);
|
||||
box-shadow: 1px 1px 0px rgba(255,255,255,0.2);
|
||||
border-radius: 2px;
|
||||
background: rgba(0,0,0,0.1);
|
||||
}
|
||||
/*Progress bar*/
|
||||
div.progress-container div
|
||||
{
|
||||
height: 100%;
|
||||
background: rgb(57,69,81); /* Old browsers */
|
||||
background: -moz-linear-gradient(top, rgba(57,69,81,1) 0%, rgba(54,64,76,1) 49%, rgba(36,43,51,1) 50%, rgba(36,43,51,1) 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(57,69,81,1)), color-stop(49%,rgba(54,64,76,1)), color-stop(50%,rgba(36,43,51,1)), color-stop(100%,rgba(36,43,51,1))); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, rgba(57,69,81,1) 0%,rgba(54,64,76,1) 49%,rgba(36,43,51,1) 50%,rgba(36,43,51,1) 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, rgba(57,69,81,1) 0%,rgba(54,64,76,1) 49%,rgba(36,43,51,1) 50%,rgba(36,43,51,1) 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, rgba(57,69,81,1) 0%,rgba(54,64,76,1) 49%,rgba(36,43,51,1) 50%,rgba(36,43,51,1) 100%); /* IE10+ */
|
||||
background: linear-gradient(top, rgba(57,69,81,1) 0%,rgba(54,64,76,1) 49%,rgba(36,43,51,1) 50%,rgba(36,43,51,1) 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#394551', endColorstr='#242b33',GradientType=0 ); /* IE6-9 */
|
||||
}
|
||||
|
||||
/*text format for match/procent*/
|
||||
.searchmatch,
|
||||
.havetracks
|
||||
{
|
||||
display: block;
|
||||
float: left;
|
||||
width: 100%;
|
||||
font-size: 12px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
#footer /*#footer*/
|
||||
{
|
||||
/*ColorStyles.css*/
|
||||
height: 50px;
|
||||
border-collapse: collapse;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
#footer .btn a {
|
||||
font-size: .8em;
|
||||
background: rgba(0,0,0,.1);
|
||||
border: 1px solid rgba(0,0,0,.3);
|
||||
padding: 5px 10px 5px 10px;
|
||||
margin: 0px 5px 0px 5px;
|
||||
}
|
||||
#footer .btn a:hover {
|
||||
background: rgba(255,255,255,.1);
|
||||
}
|
||||
#footer .btn.left{
|
||||
float: left;
|
||||
}
|
||||
#footer .btn.right{
|
||||
float: right;
|
||||
}
|
||||
|
||||
/*Footer manage/settings*/
|
||||
#options
|
||||
{
|
||||
float: left;
|
||||
padding: 5px;
|
||||
list-style-type: none;
|
||||
position: relative;
|
||||
background-color: #192126;
|
||||
|
||||
}
|
||||
#options li { }
|
||||
#options li a{
|
||||
padding-left: 20px;
|
||||
padding-right: 5px;
|
||||
line-height: 25px;
|
||||
display: block;
|
||||
color: rgb(120,120,120);
|
||||
}
|
||||
#options li a:hover { background: rgb(255,255,255); }
|
||||
#options li span{ width: 30px; text-align: center; display:inline-block; }
|
||||
#options ul
|
||||
{
|
||||
list-style-type: none;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
position: absolute;
|
||||
display: none;
|
||||
background-color: rgba(0,0,0,0.5);
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
#options li:hover ul
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
|
||||
span#version { text-align: center; font-weight: bold; }
|
||||
span#donate { text-align: center; margin: 20px auto 20px auto; }
|
||||
|
||||
/* Shutdown
|
||||
* */
|
||||
|
||||
div#shutdown
|
||||
{
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0,0,0,0.9);
|
||||
z-index: 999;
|
||||
}
|
||||
div#shutdown div
|
||||
{
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
}
|
||||
div#shutdown div div
|
||||
{
|
||||
text-align: center;
|
||||
position: relative;
|
||||
float: left;
|
||||
left: -150px;
|
||||
top: -100px;
|
||||
width: 300px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
|
||||
.cloudtag { padding-top: 30px; font-size:16px; }
|
||||
#cloud a.tag1 { font-size: 0.7em; font-weight: 100; }
|
||||
#cloud a.tag2 { font-size: 0.8em; font-weight: 200; }
|
||||
#cloud a.tag3 { font-size: 0.9em; font-weight: 300; }
|
||||
#cloud a.tag4 { font-size: 1.0em; font-weight: 400; }
|
||||
#cloud a.tag5 { font-size: 1.2em; font-weight: 500; }
|
||||
#cloud a.tag6 { font-size: 1.4em; font-weight: 600; }
|
||||
#cloud a.tag7 { font-size: 1.6em; font-weight: 700; }
|
||||
#cloud a.tag8 { font-size: 1.8em; font-weight: 800; }
|
||||
#cloud a.tag9 { font-size: 2.2em; font-weight: 900; }
|
||||
#cloud a.tag10 { font-size: 2.5em; font-weight: 900; }
|
||||
|
||||
#cloud { padding: 2px; line-height: 1.5em; text-align: center; }
|
||||
#cloud a { padding: 0px; }
|
||||
#cloud { margin: 0; }
|
||||
#cloud li { display: inline; }
|
||||
@@ -1,30 +0,0 @@
|
||||
$(document).ready(function() {
|
||||
$("img.getImgLink").each(function(){
|
||||
var artistId = $(this).attr('for');
|
||||
var image = $(this).attr('src');
|
||||
alert(artistId);
|
||||
|
||||
$.ajax({
|
||||
url: "getImageLinks?ArtistID=" + artistId,
|
||||
success: function(data){
|
||||
var artistImg = data;
|
||||
$(image).attr("src",artistImg);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
$("img.getThumb").each(function(){
|
||||
var artistId = $(this).attr('for');
|
||||
var image = $(this).attr('src');
|
||||
alert(artistId);
|
||||
|
||||
$.ajax({
|
||||
url: "getImageLinks?ArtistID=" + artistId,
|
||||
success: function(data){
|
||||
var artistImg = data;
|
||||
$(image).attr("src",artistImg);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
})
|
||||
@@ -0,0 +1,174 @@
|
||||
|
||||
$(document).ready(function() {
|
||||
// Ajax Config Form
|
||||
$('.ajax').ajaxForm({
|
||||
success: function() {
|
||||
var noty_id = noty({
|
||||
text:'<span class="wsr Approved"></span> Settings Saved!',
|
||||
layout: 'bottomRight',
|
||||
type:'success'
|
||||
});
|
||||
/*
|
||||
var noty_id = noty({
|
||||
text:'<span class="wsr Alert"></span>Carefull!',
|
||||
layout: 'bottomRight',
|
||||
type:'warning'
|
||||
});
|
||||
var noty_id = noty({
|
||||
text:'<span class="wsr Alert"></span> Something went wrong!',
|
||||
layout: 'bottomRight',
|
||||
type:'error'
|
||||
});
|
||||
var noty_id = noty({
|
||||
text:'<span class="wsr"></span> Settings has been saved successfully!',
|
||||
layout: 'bottomRight',
|
||||
type:'information'
|
||||
});
|
||||
var noty_id = noty({
|
||||
text:'<span class="wsr Approved"></span> Settings has been saved successfully!',
|
||||
layout: 'bottomRight',
|
||||
type:'success'
|
||||
});
|
||||
var noty_id = noty({
|
||||
text:'<span class="wsr Chat"></span> Settings has been saved successfully!',
|
||||
layout: 'bottomRight',
|
||||
});
|
||||
*/
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Enabled/disabled label
|
||||
$(document).ready(function(){
|
||||
$( '.switch' ).each(function(){
|
||||
//set Label name to current active state
|
||||
var labelName = 'label[for="' + $( this ).attr( "name" ) + '"]';
|
||||
var switchId = $( this ).attr( "name" );
|
||||
if ( $( this ).is(':checked') ){
|
||||
$( labelName ).text( 'Enabled' );
|
||||
$("#" + switchId ).show();
|
||||
enit();
|
||||
}
|
||||
else {
|
||||
$( labelName ).text( 'Disabled' );
|
||||
$("#" + switchId ).hide();
|
||||
enit();
|
||||
}
|
||||
//Change label
|
||||
$( this ).change(function(){
|
||||
if ( $( this ).is( ':checked' ) ){
|
||||
|
||||
$( labelName ).text( 'Enabled' );
|
||||
$("#" + switchId ).show();
|
||||
enit();
|
||||
}
|
||||
else{
|
||||
$( labelName ).text( 'Disabled' );
|
||||
$("#" + switchId ).hide();
|
||||
enit();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
//Slider for interval
|
||||
$(function(){
|
||||
$( '.sliderInterval' ).each(function(){
|
||||
var sliderName = $(this).attr("for");
|
||||
var a = $('input[name="' + sliderName + '"]').val();
|
||||
var b = 60;
|
||||
var c = a % b;
|
||||
if (a == 60){
|
||||
$('#' + sliderName ).text( (a-c)/b + " hour" );
|
||||
}
|
||||
else if (c <= 0){
|
||||
$('#' + sliderName ).text( (a-c)/b + " hours" );
|
||||
} else if ( a >= b ){
|
||||
$('#' + sliderName ).text( (a-c)/b + " hours " + c + " minutes" );
|
||||
} else {
|
||||
$('#' + sliderName ).text( a + " minutes" );
|
||||
}
|
||||
// Slider Function
|
||||
$( this ).slider({
|
||||
range: "max",
|
||||
min: 30,
|
||||
max: 1440,
|
||||
step: 10,
|
||||
value: a,
|
||||
slide: function( event, ui ) {
|
||||
a = ui.value;
|
||||
c = a % b;
|
||||
if (a == 60){
|
||||
$('input[name="' + sliderName + '"]').val( ui.value );
|
||||
$('#' + sliderName ).text( (a-c)/b + " hour" );
|
||||
}
|
||||
else if (c <= 0){
|
||||
$('input[name="' + sliderName + '"]').val( ui.value );
|
||||
$('#' + sliderName ).text( (a-c)/b + " hours" );
|
||||
} else if ( a >= b ){
|
||||
$('input[name="' + sliderName + '"]').val( ui.value );
|
||||
$('#' + sliderName ).text( (a-c)/b + " hours " + c + " minutes" );
|
||||
} else {
|
||||
$('input[name="' + sliderName + '"]').val( ui.value );
|
||||
$('#' + sliderName ).text( a + " minutes" );
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Sliders
|
||||
$(document).ready(function() {
|
||||
var amountDwnld = $( "#amount-download-scan" ).val();
|
||||
$( "#slider-download-scan" ).slider({
|
||||
value: amountDwnld,
|
||||
min: 1,
|
||||
max: 120,
|
||||
slide: function( event, ui ) {
|
||||
$( "#amount-download-scan" ).val(ui.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
var amountSearch = $( "#amount-nbz-search" ).val();
|
||||
$( "#slider-nbz-search" ).slider({
|
||||
value: amountSearch,
|
||||
min: 1,
|
||||
max: 120,
|
||||
slide: function( event, ui ) {
|
||||
$( "#amount-nbz-search" ).val(ui.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
var amountLib = $( "#amount-lib-scan" ).val();
|
||||
$( "#slider-lib-scan" ).slider({
|
||||
value: amountLib,
|
||||
min: 1,
|
||||
max: 120,
|
||||
slide: function( event, ui ) {
|
||||
$( "#amount-lib-scan" ).val( ui.value );
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
hideServerDivs = function () {
|
||||
$("#customoptions").hide("fast");
|
||||
$("#hpserveroptions").hide("fast");
|
||||
};
|
||||
// end sliders
|
||||
|
||||
handleNewSelection = function () {
|
||||
|
||||
hideServerDivs();
|
||||
|
||||
switch ($(this).val()) {
|
||||
case 'custom':
|
||||
$("#customoptions").show("fast");
|
||||
break;
|
||||
case 'headphones':
|
||||
$("#hpserveroptions").show("fast");
|
||||
break;
|
||||
}
|
||||
};
|
||||
Vendored
File diff suppressed because one or more lines are too long
+31
-31
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
/*!
|
||||
* jQuery Form Plugin
|
||||
* version: 3.09 (16-APR-2012)
|
||||
* version: 3.14 (30-JUL-2012)
|
||||
* @requires jQuery v1.3.2 or later
|
||||
*
|
||||
* Examples and documentation at: http://malsup.com/jquery/form/
|
||||
@@ -165,7 +165,7 @@ $.fn.ajaxSubmit = function(options) {
|
||||
}
|
||||
|
||||
options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
|
||||
var context = options.context || options; // jQuery 1.4+ supports scope context
|
||||
var context = options.context || this ; // jQuery 1.4+ supports scope context
|
||||
for (var i=0, max=callbacks.length; i < max; i++) {
|
||||
callbacks[i].apply(context, [data, status, xhr || $form, $form]);
|
||||
}
|
||||
@@ -253,11 +253,11 @@ $.fn.ajaxSubmit = function(options) {
|
||||
}
|
||||
|
||||
s.data = null;
|
||||
var beforeSend = s.beforeSend;
|
||||
s.beforeSend = function(xhr, o) {
|
||||
o.data = formdata;
|
||||
if(beforeSend)
|
||||
beforeSend.call(o, xhr, options);
|
||||
var beforeSend = s.beforeSend;
|
||||
s.beforeSend = function(xhr, o) {
|
||||
o.data = formdata;
|
||||
if(beforeSend)
|
||||
beforeSend.call(this, xhr, o);
|
||||
};
|
||||
$.ajax(s);
|
||||
}
|
||||
@@ -316,6 +316,12 @@ $.fn.ajaxSubmit = function(options) {
|
||||
var e = (status === 'timeout' ? 'timeout' : 'aborted');
|
||||
log('aborting upload... ' + e);
|
||||
this.aborted = 1;
|
||||
// #214
|
||||
if (io.contentWindow.document.execCommand) {
|
||||
try { // #214
|
||||
io.contentWindow.document.execCommand('Stop');
|
||||
} catch(ignore) {}
|
||||
}
|
||||
$io.attr('src', s.iframeSrc); // abort op in progress
|
||||
xhr.error = e;
|
||||
if (s.error)
|
||||
@@ -426,9 +432,16 @@ $.fn.ajaxSubmit = function(options) {
|
||||
if (s.extraData) {
|
||||
for (var n in s.extraData) {
|
||||
if (s.extraData.hasOwnProperty(n)) {
|
||||
extraInputs.push(
|
||||
$('<input type="hidden" name="'+n+'">').attr('value',s.extraData[n])
|
||||
.appendTo(form)[0]);
|
||||
// if using the $.param format that allows for multiple values with the same name
|
||||
if($.isPlainObject(s.extraData[n]) && s.extraData[n].hasOwnProperty('name') && s.extraData[n].hasOwnProperty('value')) {
|
||||
extraInputs.push(
|
||||
$('<input type="hidden" name="'+s.extraData[n].name+'">').attr('value',s.extraData[n].value)
|
||||
.appendTo(form)[0]);
|
||||
} else {
|
||||
extraInputs.push(
|
||||
$('<input type="hidden" name="'+n+'">').attr('value',s.extraData[n])
|
||||
.appendTo(form)[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -997,7 +1010,7 @@ $.fn.clearFields = $.fn.clearInputs = function(includeHidden) {
|
||||
this.selectedIndex = -1;
|
||||
}
|
||||
else if (includeHidden) {
|
||||
// includeHidden can be the valud true, or it can be a selector string
|
||||
// includeHidden can be the value true, or it can be a selector string
|
||||
// indicating a special test; for example:
|
||||
// $('#myForm').clearForm('.special:hidden')
|
||||
// the above would clean hidden inputs that have the class of 'special'
|
||||
|
||||
@@ -1,265 +0,0 @@
|
||||
/**
|
||||
* noty - jQuery Notification Plugin v1.2.1
|
||||
* Contributors: https://github.com/needim/noty/graphs/contributors
|
||||
*
|
||||
* Examples and Documentation - http://needim.github.com/noty/
|
||||
*
|
||||
* Licensed under the MIT licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
**/
|
||||
(function($) {
|
||||
$.noty = function(options, customContainer) {
|
||||
|
||||
var base = {};
|
||||
var $noty = null;
|
||||
var isCustom = false;
|
||||
|
||||
base.init = function(options) {
|
||||
base.options = $.extend({}, $.noty.defaultOptions, options);
|
||||
base.options.type = base.options.cssPrefix+base.options.type;
|
||||
base.options.id = base.options.type+'_'+new Date().getTime();
|
||||
base.options.layout = base.options.cssPrefix+'layout_'+base.options.layout;
|
||||
|
||||
if (base.options.custom.container) customContainer = base.options.custom.container;
|
||||
isCustom = ($.type(customContainer) === 'object') ? true : false;
|
||||
|
||||
return base.addQueue();
|
||||
};
|
||||
|
||||
// Push notification to queue
|
||||
base.addQueue = function() {
|
||||
var isGrowl = ($.inArray(base.options.layout, $.noty.growls) == -1) ? false : true;
|
||||
if (!isGrowl) (base.options.force) ? $.noty.queue.unshift({options: base.options}) : $.noty.queue.push({options: base.options});
|
||||
return base.render(isGrowl);
|
||||
};
|
||||
|
||||
// Render the noty
|
||||
base.render = function(isGrowl) {
|
||||
|
||||
// Layout spesific container settings
|
||||
var container = (isCustom) ? customContainer.addClass(base.options.theme+' '+base.options.layout+' noty_custom_container') : $('body');
|
||||
if (isGrowl) {
|
||||
if ($('ul.noty_cont.' + base.options.layout).length == 0)
|
||||
container.prepend($('<ul/>').addClass('noty_cont ' + base.options.layout));
|
||||
container = $('ul.noty_cont.' + base.options.layout);
|
||||
} else {
|
||||
if ($.noty.available) {
|
||||
var fromQueue = $.noty.queue.shift(); // Get noty from queue
|
||||
if ($.type(fromQueue) === 'object') {
|
||||
$.noty.available = false;
|
||||
base.options = fromQueue.options;
|
||||
} else {
|
||||
$.noty.available = true; // Queue is over
|
||||
return base.options.id;
|
||||
}
|
||||
} else {
|
||||
return base.options.id;
|
||||
}
|
||||
}
|
||||
base.container = container;
|
||||
|
||||
// Generating noty bar
|
||||
base.bar = $('<div class="noty_bar"/>').attr('id', base.options.id).addClass(base.options.theme+' '+base.options.layout+' '+base.options.type);
|
||||
$noty = base.bar;
|
||||
$noty.append(base.options.template).find('.noty_text').html(base.options.text);
|
||||
$noty.data('noty_options', base.options);
|
||||
|
||||
// Close button display
|
||||
(base.options.closeButton) ? $noty.addClass('noty_closable').find('.noty_close').show() : $noty.find('.noty_close').remove();
|
||||
|
||||
// Bind close event to button
|
||||
$noty.find('.noty_close').bind('click', function() { $noty.trigger('noty.close'); });
|
||||
|
||||
// If we have a button we must disable closeOnSelfClick and closeOnSelfOver option
|
||||
if (base.options.buttons) base.options.closeOnSelfClick = base.options.closeOnSelfOver = false;
|
||||
// Close on self click
|
||||
if (base.options.closeOnSelfClick) $noty.bind('click', function() { $noty.trigger('noty.close'); }).css('cursor', 'pointer');
|
||||
// Close on self mouseover
|
||||
if (base.options.closeOnSelfOver) $noty.bind('mouseover', function() { $noty.trigger('noty.close'); }).css('cursor', 'pointer');
|
||||
|
||||
// Set buttons if available
|
||||
if (base.options.buttons) {
|
||||
$buttons = $('<div/>').addClass('noty_buttons');
|
||||
$noty.find('.noty_message').append($buttons);
|
||||
$.each(base.options.buttons, function(i, button) {
|
||||
bclass = (button.type) ? button.type : 'gray';
|
||||
$button = $('<button/>').addClass(bclass).html(button.text).appendTo($noty.find('.noty_buttons'))
|
||||
.bind('click', function() {
|
||||
if ($.isFunction(button.click)) {
|
||||
button.click.call($button, $noty);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return base.show(isGrowl);
|
||||
};
|
||||
|
||||
base.show = function(isGrowl) {
|
||||
|
||||
// is Modal?
|
||||
if (base.options.modal) $('<div/>').addClass('noty_modal').addClass(base.options.theme).prependTo($('body')).fadeIn('fast');
|
||||
|
||||
$noty.close = function() { return this.trigger('noty.close'); };
|
||||
|
||||
// Prepend noty to container
|
||||
(isGrowl) ? base.container.prepend($('<li/>').append($noty)) : base.container.prepend($noty);
|
||||
|
||||
// topCenter and center specific options
|
||||
if (base.options.layout == 'noty_layout_topCenter' || base.options.layout == 'noty_layout_center') {
|
||||
$.noty.reCenter($noty);
|
||||
}
|
||||
|
||||
$noty.bind('noty.setText', function(event, text) {
|
||||
$noty.find('.noty_text').html(text);
|
||||
|
||||
if (base.options.layout == 'noty_layout_topCenter' || base.options.layout == 'noty_layout_center') {
|
||||
$.noty.reCenter($noty);
|
||||
}
|
||||
});
|
||||
|
||||
$noty.bind('noty.setType', function(event, type) {
|
||||
$noty.removeClass($noty.data('noty_options').type);
|
||||
|
||||
type = $noty.data('noty_options').cssPrefix+type;
|
||||
|
||||
$noty.data('noty_options').type = type;
|
||||
|
||||
$noty.addClass(type);
|
||||
|
||||
if (base.options.layout == 'noty_layout_topCenter' || base.options.layout == 'noty_layout_center') {
|
||||
$.noty.reCenter($noty);
|
||||
}
|
||||
});
|
||||
|
||||
$noty.bind('noty.getId', function(event) {
|
||||
return $noty.data('noty_options').id;
|
||||
});
|
||||
|
||||
// Bind close event
|
||||
$noty.one('noty.close', function(event) {
|
||||
var options = $noty.data('noty_options');
|
||||
if(options.onClose){options.onClose();}
|
||||
|
||||
// Modal Cleaning
|
||||
if (options.modal) $('.noty_modal').fadeOut('fast', function() { $(this).remove(); });
|
||||
|
||||
$noty.clearQueue().stop().animate(
|
||||
$noty.data('noty_options').animateClose,
|
||||
$noty.data('noty_options').speed,
|
||||
$noty.data('noty_options').easing,
|
||||
$noty.data('noty_options').onClosed)
|
||||
.promise().done(function() {
|
||||
|
||||
// Layout spesific cleaning
|
||||
if ($.inArray($noty.data('noty_options').layout, $.noty.growls) > -1) {
|
||||
$noty.parent().remove();
|
||||
} else {
|
||||
$noty.remove();
|
||||
|
||||
// queue render
|
||||
$.noty.available = true;
|
||||
base.render(false);
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
// Start the show
|
||||
if(base.options.onShow){base.options.onShow();}
|
||||
$noty.animate(base.options.animateOpen, base.options.speed, base.options.easing, base.options.onShown);
|
||||
|
||||
// If noty is have a timeout option
|
||||
if (base.options.timeout) $noty.delay(base.options.timeout).promise().done(function() { $noty.trigger('noty.close'); });
|
||||
return base.options.id;
|
||||
};
|
||||
|
||||
// Run initializer
|
||||
return base.init(options);
|
||||
};
|
||||
|
||||
// API
|
||||
$.noty.get = function(id) { return $('#'+id); };
|
||||
$.noty.close = function(id) {
|
||||
//remove from queue if not already visible
|
||||
for(var i=0;i<$.noty.queue.length;) {
|
||||
if($.noty.queue[i].options.id==id)
|
||||
$.noty.queue.splice(id,1);
|
||||
else
|
||||
i++;
|
||||
}
|
||||
//close if already visible
|
||||
$.noty.get(id).trigger('noty.close');
|
||||
};
|
||||
$.noty.setText = function(id, text) {
|
||||
$.noty.get(id).trigger('noty.setText', text);
|
||||
};
|
||||
$.noty.setType = function(id, type) {
|
||||
$.noty.get(id).trigger('noty.setType', type);
|
||||
};
|
||||
$.noty.closeAll = function() {
|
||||
$.noty.clearQueue();
|
||||
$('.noty_bar').trigger('noty.close');
|
||||
};
|
||||
$.noty.reCenter = function(noty) {
|
||||
noty.css({'left': ($(window).width() - noty.outerWidth()) / 2 + 'px'});
|
||||
};
|
||||
$.noty.clearQueue = function() {
|
||||
$.noty.queue = [];
|
||||
};
|
||||
|
||||
var windowAlert = window.alert;
|
||||
$.noty.consumeAlert = function(options){
|
||||
window.alert = function(text){
|
||||
if(options){options.text = text;}
|
||||
else{options = {text:text};}
|
||||
$.noty(options);
|
||||
};
|
||||
}
|
||||
$.noty.stopConsumeAlert = function(){
|
||||
window.alert = windowAlert;
|
||||
}
|
||||
|
||||
$.noty.queue = [];
|
||||
$.noty.growls = ['noty_layout_topLeft', 'noty_layout_topRight', 'noty_layout_bottomLeft', 'noty_layout_bottomRight'];
|
||||
$.noty.available = true;
|
||||
$.noty.defaultOptions = {
|
||||
layout: 'bottomRight',
|
||||
theme: 'noty_theme_default',
|
||||
animateOpen: {height: 'toggle'},
|
||||
animateClose: {height: 'toggle'},
|
||||
easing: 'swing',
|
||||
text: '',
|
||||
type: 'alert',
|
||||
speed: 500,
|
||||
timeout: 5000,
|
||||
closeButton: false,
|
||||
closeOnSelfClick: true,
|
||||
closeOnSelfOver: false,
|
||||
force: false,
|
||||
onShow: false,
|
||||
onShown: false,
|
||||
onClose: false,
|
||||
onClosed: false,
|
||||
buttons: false,
|
||||
modal: false,
|
||||
template: '<div class="noty_message"><span class="noty_text"></span><div class="noty_close"></div></div>',
|
||||
cssPrefix: 'noty_',
|
||||
custom: {
|
||||
container: null
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.noty = function(options) {
|
||||
return this.each(function() {
|
||||
(new $.noty(options, $(this)));
|
||||
});
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
//Helper
|
||||
function noty(options) {
|
||||
return jQuery.noty(options); // returns an id
|
||||
}
|
||||
@@ -0,0 +1,471 @@
|
||||
/**
|
||||
* noty - jQuery Notification Plugin v2.0.3
|
||||
* Contributors: https://github.com/needim/noty/graphs/contributors
|
||||
*
|
||||
* Examples and Documentation - http://needim.github.com/noty/
|
||||
*
|
||||
* Licensed under the MIT licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
**/
|
||||
|
||||
if (typeof Object.create !== 'function') {
|
||||
Object.create = function (o) {
|
||||
function F() {};
|
||||
F.prototype = o;
|
||||
return new F();
|
||||
};
|
||||
};
|
||||
|
||||
;(function($) {
|
||||
|
||||
var NotyObject = {
|
||||
|
||||
init: function(options) {
|
||||
|
||||
// Mix in the passed in options with the default options
|
||||
this.options = $.extend({}, $.noty.defaults, options);
|
||||
|
||||
this.options.layout = (this.options.custom) ? $.noty.layouts['inline'] : $.noty.layouts[this.options.layout];
|
||||
this.options.theme = $.noty.themes[this.options.theme];
|
||||
|
||||
delete options.layout, delete options.theme;
|
||||
|
||||
this.options = $.extend({}, this.options, this.options.layout.options);
|
||||
this.options.id = 'noty_' + (new Date().getTime() * Math.floor(Math.random()* 1000000));
|
||||
|
||||
this.options = $.extend({}, this.options, options);
|
||||
|
||||
// Build the noty dom initial structure
|
||||
this._build();
|
||||
|
||||
// return this so we can chain/use the bridge with less code.
|
||||
return this;
|
||||
}, // end init
|
||||
|
||||
_build: function() {
|
||||
|
||||
// Generating noty bar
|
||||
var $bar = $('<div class="noty_bar"/>').attr('id', this.options.id);
|
||||
$bar.append(this.options.template).find('.noty_text').html(this.options.text);
|
||||
|
||||
this.$bar = (this.options.layout.parent.object !== null) ? $(this.options.layout.parent.object).css(this.options.layout.parent.css).append($bar) : $bar;
|
||||
|
||||
// Set buttons if available
|
||||
if (this.options.buttons) {
|
||||
|
||||
// If we have button disable closeWith & timeout options
|
||||
this.options.closeWith = [], this.options.timeout = false;
|
||||
|
||||
var $buttons = $('<div/>').addClass('noty_buttons');
|
||||
|
||||
(this.options.layout.parent.object !== null) ? this.$bar.find('.noty_bar').append($buttons) : this.$bar.append($buttons);
|
||||
|
||||
var self = this;
|
||||
|
||||
$.each(this.options.buttons, function(i, button) {
|
||||
var $button = $('<button/>').addClass((button.addClass) ? button.addClass : 'gray').html(button.text)
|
||||
.appendTo(self.$bar.find('.noty_buttons'))
|
||||
.bind('click', function(e) { if ($.isFunction(button.onClick)) { button.onClick.call($button, self); } });
|
||||
});
|
||||
}
|
||||
|
||||
// For easy access
|
||||
this.$message = this.$bar.find('.noty_message');
|
||||
this.$closeButton = this.$bar.find('.noty_close');
|
||||
this.$buttons = this.$bar.find('.noty_buttons');
|
||||
|
||||
$.noty.store[this.options.id] = this; // store noty for api
|
||||
|
||||
}, // end _build
|
||||
|
||||
show: function() {
|
||||
|
||||
var self = this;
|
||||
|
||||
$(self.options.layout.container.selector).append(self.$bar);
|
||||
|
||||
self.options.theme.style.apply(self);
|
||||
|
||||
($.type(self.options.layout.css) === 'function') ? this.options.layout.css.apply(self.$bar) : self.$bar.css(this.options.layout.css || {});
|
||||
|
||||
self.$bar.addClass(self.options.layout.addClass);
|
||||
|
||||
self.options.layout.container.style.apply($(self.options.layout.container.selector));
|
||||
|
||||
self.options.theme.callback.onShow.apply(this);
|
||||
|
||||
if ($.inArray('click', self.options.closeWith) > -1)
|
||||
self.$bar.css('cursor', 'pointer').one('click', function() { self.close(); });
|
||||
|
||||
if ($.inArray('hover', self.options.closeWith) > -1)
|
||||
self.$bar.one('mouseenter', function() { self.close(); });
|
||||
|
||||
if ($.inArray('button', self.options.closeWith) > -1)
|
||||
self.$closeButton.one('click', function() { self.close(); });
|
||||
|
||||
if ($.inArray('button', self.options.closeWith) == -1)
|
||||
self.$closeButton.remove();
|
||||
|
||||
if (self.options.callback.onShow)
|
||||
self.options.callback.onShow.apply(self);
|
||||
|
||||
self.$bar.animate(
|
||||
self.options.animation.open,
|
||||
self.options.animation.speed,
|
||||
self.options.animation.easing,
|
||||
function() {
|
||||
if (self.options.callback.afterShow) self.options.callback.afterShow.apply(self);
|
||||
self.shown = true;
|
||||
});
|
||||
|
||||
// If noty is have a timeout option
|
||||
if (self.options.timeout)
|
||||
self.$bar.delay(self.options.timeout).promise().done(function() { self.close(); });
|
||||
|
||||
return this;
|
||||
|
||||
}, // end show
|
||||
|
||||
close: function() {
|
||||
|
||||
if (this.closed) return;
|
||||
|
||||
var self = this;
|
||||
|
||||
if (!this.shown) { // If we are still waiting in the queue just delete from queue
|
||||
$.each($.noty.queue, function(i, n) {
|
||||
if (n.options.id == self.options.id) {
|
||||
$.noty.queue.splice(i, 1);
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
self.$bar.addClass('i-am-closing-now');
|
||||
|
||||
if (self.options.callback.onClose) { self.options.callback.onClose.apply(self); }
|
||||
|
||||
self.$bar.clearQueue().stop().animate(
|
||||
self.options.animation.close,
|
||||
self.options.animation.speed,
|
||||
self.options.animation.easing,
|
||||
function() { if (self.options.callback.afterClose) self.options.callback.afterClose.apply(self); })
|
||||
.promise().done(function() {
|
||||
|
||||
// Modal Cleaning
|
||||
if (self.options.modal) {
|
||||
$.notyRenderer.setModalCount(-1);
|
||||
if ($.notyRenderer.getModalCount() == 0) $('.noty_modal').fadeOut('fast', function() { $(this).remove(); });
|
||||
}
|
||||
|
||||
// Layout Cleaning
|
||||
$.notyRenderer.setLayoutCountFor(self, -1);
|
||||
if ($.notyRenderer.getLayoutCountFor(self) == 0) $(self.options.layout.container.selector).remove();
|
||||
|
||||
self.$bar.remove();
|
||||
self.$bar = null;
|
||||
self.closed = true;
|
||||
|
||||
delete $.noty.store[self.options.id]; // deleting noty from store
|
||||
|
||||
if (!self.options.dismissQueue) {
|
||||
// Queue render
|
||||
$.noty.ontap = true;
|
||||
|
||||
$.notyRenderer.render();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}, // end close
|
||||
|
||||
setText: function(text) {
|
||||
if (!this.closed) {
|
||||
this.options.text = text;
|
||||
this.$bar.find('.noty_text').html(text);
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
setType: function(type) {
|
||||
if (!this.closed) {
|
||||
this.options.type = type;
|
||||
this.options.theme.style.apply(this);
|
||||
this.options.theme.callback.onShow.apply(this);
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
closed: false,
|
||||
shown: false
|
||||
|
||||
}; // end NotyObject
|
||||
|
||||
$.notyRenderer = {};
|
||||
|
||||
$.notyRenderer.init = function(options) {
|
||||
|
||||
// Renderer creates a new noty
|
||||
var notification = Object.create(NotyObject).init(options);
|
||||
|
||||
(notification.options.force) ? $.noty.queue.unshift(notification) : $.noty.queue.push(notification);
|
||||
|
||||
$.notyRenderer.render();
|
||||
|
||||
return ($.noty.returns == 'object') ? notification : notification.options.id;
|
||||
};
|
||||
|
||||
$.notyRenderer.render = function() {
|
||||
|
||||
var instance = $.noty.queue[0];
|
||||
|
||||
if ($.type(instance) === 'object') {
|
||||
if (instance.options.dismissQueue) {
|
||||
$.notyRenderer.show($.noty.queue.shift());
|
||||
} else {
|
||||
if ($.noty.ontap) {
|
||||
$.notyRenderer.show($.noty.queue.shift());
|
||||
$.noty.ontap = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$.noty.ontap = true; // Queue is over
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$.notyRenderer.show = function(notification) {
|
||||
|
||||
if (notification.options.modal) {
|
||||
$.notyRenderer.createModalFor(notification);
|
||||
$.notyRenderer.setModalCount(+1);
|
||||
}
|
||||
|
||||
// Where is the container?
|
||||
if ($(notification.options.layout.container.selector).length == 0) {
|
||||
if (notification.options.custom) {
|
||||
notification.options.custom.append($(notification.options.layout.container.object).addClass('i-am-new'));
|
||||
} else {
|
||||
$('body').append($(notification.options.layout.container.object).addClass('i-am-new'));
|
||||
}
|
||||
} else {
|
||||
$(notification.options.layout.container.selector).removeClass('i-am-new');
|
||||
}
|
||||
|
||||
$.notyRenderer.setLayoutCountFor(notification, +1);
|
||||
|
||||
notification.show();
|
||||
};
|
||||
|
||||
$.notyRenderer.createModalFor = function(notification) {
|
||||
if ($('.noty_modal').length == 0)
|
||||
$('<div/>').addClass('noty_modal').data('noty_modal_count', 0).css(notification.options.theme.modal.css).prependTo($('body')).fadeIn('fast');
|
||||
};
|
||||
|
||||
$.notyRenderer.getLayoutCountFor = function(notification) {
|
||||
return $(notification.options.layout.container.selector).data('noty_layout_count') || 0;
|
||||
};
|
||||
|
||||
$.notyRenderer.setLayoutCountFor = function(notification, arg) {
|
||||
return $(notification.options.layout.container.selector).data('noty_layout_count', $.notyRenderer.getLayoutCountFor(notification) + arg);
|
||||
};
|
||||
|
||||
$.notyRenderer.getModalCount = function() {
|
||||
return $('.noty_modal').data('noty_modal_count') || 0;
|
||||
};
|
||||
|
||||
$.notyRenderer.setModalCount = function(arg) {
|
||||
return $('.noty_modal').data('noty_modal_count', $.notyRenderer.getModalCount() + arg);
|
||||
};
|
||||
|
||||
// This is for custom container
|
||||
$.fn.noty = function(options) {
|
||||
options.custom = $(this);
|
||||
return $.notyRenderer.init(options);
|
||||
};
|
||||
|
||||
$.noty = {};
|
||||
$.noty.queue = [];
|
||||
$.noty.ontap = true;
|
||||
$.noty.layouts = {};
|
||||
$.noty.themes = {};
|
||||
$.noty.returns = 'object';
|
||||
$.noty.store = {};
|
||||
|
||||
$.noty.get = function(id) {
|
||||
return $.noty.store.hasOwnProperty(id) ? $.noty.store[id] : false;
|
||||
};
|
||||
|
||||
$.noty.close = function(id) {
|
||||
return $.noty.get(id) ? $.noty.get(id).close() : false;
|
||||
};
|
||||
|
||||
$.noty.setText = function(id, text) {
|
||||
return $.noty.get(id) ? $.noty.get(id).setText(text) : false;
|
||||
};
|
||||
|
||||
$.noty.setType = function(id, type) {
|
||||
return $.noty.get(id) ? $.noty.get(id).setType(type) : false;
|
||||
};
|
||||
|
||||
$.noty.clearQueue = function() {
|
||||
$.noty.queue = [];
|
||||
};
|
||||
|
||||
$.noty.closeAll = function() {
|
||||
$.noty.clearQueue();
|
||||
$.each($.noty.store, function(id, noty) {
|
||||
noty.close();
|
||||
});
|
||||
};
|
||||
|
||||
var windowAlert = window.alert;
|
||||
|
||||
$.noty.consumeAlert = function(options) {
|
||||
window.alert = function(text) {
|
||||
if (options)
|
||||
options.text = text;
|
||||
else
|
||||
options = {text:text};
|
||||
|
||||
$.notyRenderer.init(options);
|
||||
};
|
||||
};
|
||||
|
||||
$.noty.stopConsumeAlert = function(){
|
||||
window.alert = windowAlert;
|
||||
};
|
||||
|
||||
$.noty.defaults = {
|
||||
layout: 'top',
|
||||
theme: 'default',
|
||||
type: 'alert',
|
||||
text: '',
|
||||
dismissQueue: true,
|
||||
template: '<div class="noty_message"><span class="noty_text"></span><div class="noty_close"></div></div>',
|
||||
animation: {
|
||||
open: {height: 'toggle'},
|
||||
close: {height: 'toggle'},
|
||||
easing: 'swing',
|
||||
speed: 500
|
||||
},
|
||||
timeout: false,
|
||||
force: false,
|
||||
modal: false,
|
||||
closeWith: ['click'],
|
||||
callback: {
|
||||
onShow: function() {},
|
||||
afterShow: function() {},
|
||||
onClose: function() {},
|
||||
afterClose: function() {}
|
||||
},
|
||||
buttons: false
|
||||
};
|
||||
|
||||
$(window).resize(function() {
|
||||
$.each($.noty.layouts, function(index, layout) {
|
||||
layout.container.style.apply($(layout.container.selector));
|
||||
});
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
|
||||
// Helpers
|
||||
function noty(options) {
|
||||
|
||||
// This is for BC - Will be deleted on v2.2.0
|
||||
var using_old = 0
|
||||
, old_to_new = {
|
||||
'animateOpen': 'animation.open',
|
||||
'animateClose': 'animation.close',
|
||||
'easing': 'animation.easing',
|
||||
'speed': 'animation.speed',
|
||||
'onShow': 'callback.onShow',
|
||||
'onShown': 'callback.afterShow',
|
||||
'onClose': 'callback.onClose',
|
||||
'onClosed': 'callback.afterClose'
|
||||
}
|
||||
|
||||
jQuery.each(options, function(key, value) {
|
||||
if (old_to_new[key]) {
|
||||
using_old++;
|
||||
var _new = old_to_new[key].split('.');
|
||||
|
||||
if (!options[_new[0]]) options[_new[0]] = {};
|
||||
|
||||
options[_new[0]][_new[1]] = (value) ? value : function() {};
|
||||
delete options[key];
|
||||
}
|
||||
});
|
||||
|
||||
if (!options.closeWith) {
|
||||
options.closeWith = jQuery.noty.defaults.closeWith;
|
||||
}
|
||||
|
||||
if (options.hasOwnProperty('closeButton')) {
|
||||
using_old++;
|
||||
if (options.closeButton) options.closeWith.push('button');
|
||||
delete options.closeButton;
|
||||
}
|
||||
|
||||
if (options.hasOwnProperty('closeOnSelfClick')) {
|
||||
using_old++;
|
||||
if (options.closeOnSelfClick) options.closeWith.push('click');
|
||||
delete options.closeOnSelfClick;
|
||||
}
|
||||
|
||||
if (options.hasOwnProperty('closeOnSelfOver')) {
|
||||
using_old++;
|
||||
if (options.closeOnSelfOver) options.closeWith.push('hover');
|
||||
delete options.closeOnSelfOver;
|
||||
}
|
||||
|
||||
if (options.hasOwnProperty('custom')) {
|
||||
using_old++;
|
||||
if (options.custom.container != 'null') options.custom = options.custom.container;
|
||||
}
|
||||
|
||||
if (options.hasOwnProperty('cssPrefix')) {
|
||||
using_old++;
|
||||
delete options.cssPrefix;
|
||||
}
|
||||
|
||||
if (options.theme == 'noty_theme_default') {
|
||||
using_old++;
|
||||
options.theme = 'default';
|
||||
}
|
||||
|
||||
if (!options.hasOwnProperty('dismissQueue')) {
|
||||
if (options.layout == 'topLeft'
|
||||
|| options.layout == 'topRight'
|
||||
|| options.layout == 'bottomLeft'
|
||||
|| options.layout == 'bottomRight') {
|
||||
options.dismissQueue = true;
|
||||
} else {
|
||||
options.dismissQueue = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (options.buttons) {
|
||||
jQuery.each(options.buttons, function(i, button) {
|
||||
if (button.click) {
|
||||
using_old++;
|
||||
button.onClick = button.click;
|
||||
delete button.click;
|
||||
}
|
||||
if (button.type) {
|
||||
using_old++;
|
||||
button.addClass = button.type;
|
||||
delete button.type;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (using_old) console.warn('You are using noty v2 with v1.x.x options. @deprecated until v2.2.0 - Please update your options.');
|
||||
|
||||
// console.log(options);
|
||||
// End of the BC
|
||||
|
||||
return jQuery.notyRenderer.init(options);
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.bottom = {
|
||||
name: 'bottom',
|
||||
options: {},
|
||||
container: {
|
||||
object: '<ul id="noty_bottom_layout_container" />',
|
||||
selector: 'ul#noty_bottom_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
bottom: 0,
|
||||
left: '5%',
|
||||
position: 'fixed',
|
||||
width: '90%',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 9999999
|
||||
});
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,41 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.bottomCenter = {
|
||||
name: 'bottomCenter',
|
||||
options: { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object: '<ul id="noty_bottomCenter_layout_container" />',
|
||||
selector: 'ul#noty_bottomCenter_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
bottom: 20,
|
||||
left: 0,
|
||||
position: 'fixed',
|
||||
width: '310px',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 10000000
|
||||
});
|
||||
|
||||
$(this).css({
|
||||
left: ($(window).width() - $(this).outerWidth()) / 2 + 'px',
|
||||
});
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none',
|
||||
width: '310px'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,43 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.bottomLeft = {
|
||||
name: 'bottomLeft',
|
||||
options: { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object: '<ul id="noty_bottomLeft_layout_container" />',
|
||||
selector: 'ul#noty_bottomLeft_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
bottom: 20,
|
||||
left: 20,
|
||||
position: 'fixed',
|
||||
width: '310px',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 10000000
|
||||
});
|
||||
|
||||
if (window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
left: 5
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none',
|
||||
width: '310px'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,43 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.bottomRight = {
|
||||
name: 'bottomRight',
|
||||
options: { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object: '<ul id="noty_bottomRight_layout_container" />',
|
||||
selector: 'ul#noty_bottomRight_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
bottom: 50,
|
||||
right: 20,
|
||||
position: 'fixed',
|
||||
width: '310px',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 10000000
|
||||
});
|
||||
|
||||
if (window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
right: 5
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none',
|
||||
width: '310px'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,56 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.center = {
|
||||
name: 'center',
|
||||
options: { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object: '<ul id="noty_center_layout_container" />',
|
||||
selector: 'ul#noty_center_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
position: 'fixed',
|
||||
width: '310px',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 10000000
|
||||
});
|
||||
|
||||
// getting hidden height
|
||||
var dupe = $(this).clone().css({visibility:"hidden", display:"block", position:"absolute", top: 0, left: 0}).attr('id', 'dupe');
|
||||
$("body").append(dupe);
|
||||
dupe.find('.i-am-closing-now').remove();
|
||||
dupe.find('li').css('display', 'block');
|
||||
var actual_height = dupe.height();
|
||||
dupe.remove();
|
||||
|
||||
if ($(this).hasClass('i-am-new')) {
|
||||
$(this).css({
|
||||
left: ($(window).width() - $(this).outerWidth()) / 2 + 'px',
|
||||
top: ($(window).height() - actual_height) / 2 + 'px'
|
||||
});
|
||||
} else {
|
||||
$(this).animate({
|
||||
left: ($(window).width() - $(this).outerWidth()) / 2 + 'px',
|
||||
top: ($(window).height() - actual_height) / 2 + 'px'
|
||||
}, 500);
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none',
|
||||
width: '310px'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,61 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.centerLeft = {
|
||||
name: 'centerLeft',
|
||||
options: { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object: '<ul id="noty_centerLeft_layout_container" />',
|
||||
selector: 'ul#noty_centerLeft_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
left: 20,
|
||||
position: 'fixed',
|
||||
width: '310px',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 10000000
|
||||
});
|
||||
|
||||
// getting hidden height
|
||||
var dupe = $(this).clone().css({visibility:"hidden", display:"block", position:"absolute", top: 0, left: 0}).attr('id', 'dupe');
|
||||
$("body").append(dupe);
|
||||
dupe.find('.i-am-closing-now').remove();
|
||||
dupe.find('li').css('display', 'block');
|
||||
var actual_height = dupe.height();
|
||||
dupe.remove();
|
||||
|
||||
if ($(this).hasClass('i-am-new')) {
|
||||
$(this).css({
|
||||
top: ($(window).height() - actual_height) / 2 + 'px',
|
||||
});
|
||||
} else {
|
||||
$(this).animate({
|
||||
top: ($(window).height() - actual_height) / 2 + 'px'
|
||||
}, 500);
|
||||
}
|
||||
|
||||
if (window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
left: 5
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none',
|
||||
width: '310px'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,61 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.centerRight = {
|
||||
name: 'centerRight',
|
||||
options: { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object: '<ul id="noty_centerRight_layout_container" />',
|
||||
selector: 'ul#noty_centerRight_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
right: 20,
|
||||
position: 'fixed',
|
||||
width: '310px',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 10000000
|
||||
});
|
||||
|
||||
// getting hidden height
|
||||
var dupe = $(this).clone().css({visibility:"hidden", display:"block", position:"absolute", top: 0, left: 0}).attr('id', 'dupe');
|
||||
$("body").append(dupe);
|
||||
dupe.find('.i-am-closing-now').remove();
|
||||
dupe.find('li').css('display', 'block');
|
||||
var actual_height = dupe.height();
|
||||
dupe.remove();
|
||||
|
||||
if ($(this).hasClass('i-am-new')) {
|
||||
$(this).css({
|
||||
top: ($(window).height() - actual_height) / 2 + 'px',
|
||||
});
|
||||
} else {
|
||||
$(this).animate({
|
||||
top: ($(window).height() - actual_height) / 2 + 'px'
|
||||
}, 500);
|
||||
}
|
||||
|
||||
if (window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
right: 5
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none',
|
||||
width: '310px'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,31 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.inline = {
|
||||
name: 'inline',
|
||||
options: {},
|
||||
container: {
|
||||
object: '<ul id="noty_inline_layout_container" />',
|
||||
selector: 'ul#noty_inline_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
width: '100%',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 9999999
|
||||
});
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,34 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.top = {
|
||||
name: 'top',
|
||||
options: {},
|
||||
container: {
|
||||
object: '<ul id="noty_top_layout_container" />',
|
||||
selector: 'ul#noty_top_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
top: 0,
|
||||
left: '5%',
|
||||
position: 'fixed',
|
||||
width: '90%',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 9999999
|
||||
});
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,41 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.topCenter = {
|
||||
name: 'topCenter',
|
||||
options: { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object: '<ul id="noty_topCenter_layout_container" />',
|
||||
selector: 'ul#noty_topCenter_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
top: 20,
|
||||
left: 0,
|
||||
position: 'fixed',
|
||||
width: '310px',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 10000000
|
||||
});
|
||||
|
||||
$(this).css({
|
||||
left: ($(window).width() - $(this).outerWidth()) / 2 + 'px',
|
||||
});
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none',
|
||||
width: '310px'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,43 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.topLeft = {
|
||||
name: 'topLeft',
|
||||
options: { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object: '<ul id="noty_topLeft_layout_container" />',
|
||||
selector: 'ul#noty_topLeft_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
top: 20,
|
||||
left: 20,
|
||||
position: 'fixed',
|
||||
width: '310px',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 10000000
|
||||
});
|
||||
|
||||
if (window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
left: 5
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none',
|
||||
width: '310px'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,43 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.layouts.topRight = {
|
||||
name: 'topRight',
|
||||
options: { // overrides options
|
||||
|
||||
},
|
||||
container: {
|
||||
object: '<ul id="noty_topRight_layout_container" />',
|
||||
selector: 'ul#noty_topRight_layout_container',
|
||||
style: function() {
|
||||
$(this).css({
|
||||
top: 20,
|
||||
right: 20,
|
||||
position: 'fixed',
|
||||
width: '310px',
|
||||
height: 'auto',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
listStyleType: 'none',
|
||||
zIndex: 10000000
|
||||
});
|
||||
|
||||
if (window.innerWidth < 600) {
|
||||
$(this).css({
|
||||
right: 5
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
parent: {
|
||||
object: '<li />',
|
||||
selector: 'li',
|
||||
css: {}
|
||||
},
|
||||
css: {
|
||||
display: 'none',
|
||||
width: '310px'
|
||||
},
|
||||
addClass: ''
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,155 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.themes.default = {
|
||||
name: 'brink',
|
||||
helpers: {
|
||||
borderFix: function() {
|
||||
if (this.options.dismissQueue) {
|
||||
var selector = this.options.layout.container.selector + ' ' + this.options.layout.parent.selector;
|
||||
switch (this.options.layout.name) {
|
||||
case 'top':
|
||||
$(selector).css({borderRadius: '0px 0px 0px 0px'});
|
||||
$(selector).last().css({borderRadius: '0px 0px 0px 0px'}); break;
|
||||
case 'topCenter': case 'topLeft': case 'topRight':
|
||||
case 'bottomCenter': case 'bottomLeft': case 'bottomRight':
|
||||
case 'center': case 'centerLeft': case 'centerRight': case 'inline':
|
||||
$(selector).css({borderRadius: '0px 0px 0px 0px'});
|
||||
$(selector).first().css({'border-top-left-radius': '0px', 'border-top-right-radius': '0px'});
|
||||
$(selector).last().css({'border-bottom-left-radius': '0px', 'border-bottom-right-radius': '0px'}); break;
|
||||
case 'bottom':
|
||||
$(selector).css({borderRadius: '0px 0px 0px 0px'});
|
||||
$(selector).first().css({borderRadius: '0px 0px 0px 0px'}); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
modal: {
|
||||
css: {
|
||||
position: 'fixed',
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
backgroundColor: '#000',
|
||||
zIndex: 10000,
|
||||
opacity: 0.6,
|
||||
display: 'none',
|
||||
left: 0,
|
||||
top: 0,
|
||||
}
|
||||
},
|
||||
style: function() {
|
||||
|
||||
this.$bar.css({
|
||||
overflow: 'hidden',
|
||||
background: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAoCAYAAAAPOoFWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPZJREFUeNq81tsOgjAMANB2ov7/7ypaN7IlIwi9rGuT8QSc9EIDAsAznxvY4pXPKr05RUE5MEVB+TyWfCEl9LZApYopCmo9C4FKSMtYoI8Bwv79aQJU4l6hXXCZrQbokJEksxHo9KMOgc6w1atHXM8K9DVC7FQnJ0i8iK3QooGgbnyKgMDygBWyYFZoqx4qS27KqLZJjA1D0jK6QJcYEQEiWv9PGkTsbqxQ8oT+ZtZB6AkdsJnQDnMoHXHLGKOgDYuCWmYhEERCI5gaamW0bnHdA3k2ltlIN+2qKRyCND0bhqSYCyTB3CAOc4WusBEIpkeBuPgJMAAX8Hs1NfqHRgAAAABJRU5ErkJggg==') repeat-x scroll left top #fff"
|
||||
});
|
||||
|
||||
this.$message.css({
|
||||
fontSize: '.8em',
|
||||
lineHeight: '1em',
|
||||
textAlign: 'left',
|
||||
padding: '8px 10px 9px',
|
||||
width: 'auto',
|
||||
position: 'relative'
|
||||
});
|
||||
|
||||
this.$closeButton.css({
|
||||
position: 'absolute',
|
||||
top: 4, right: 4,
|
||||
width: 10, height: 10,
|
||||
background: "url(data:image/png;base64,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)",
|
||||
display: 'none',
|
||||
cursor: 'pointer',
|
||||
});
|
||||
|
||||
this.$buttons.css({
|
||||
padding: 5,
|
||||
textAlign: 'right',
|
||||
borderTop: '1px solid #ccc',
|
||||
backgroundColor: '#fff',
|
||||
});
|
||||
|
||||
this.$buttons.find('button').css({
|
||||
marginLeft: 5
|
||||
});
|
||||
|
||||
this.$buttons.find('button:first').css({
|
||||
marginLeft: 0
|
||||
});
|
||||
|
||||
this.$bar.bind({
|
||||
mouseenter: function() { $(this).find('.noty_close').fadeIn(); },
|
||||
mouseleave: function() { $(this).find('.noty_close').fadeOut(); }
|
||||
});
|
||||
|
||||
switch (this.options.layout.name) {
|
||||
case 'top':
|
||||
this.$bar.css({
|
||||
borderRadius: '0px 0px 0px 0px',
|
||||
borderBottom: '1px solid #eee',
|
||||
borderLeft: '1px solid #eee',
|
||||
borderRight: '1px solid #eee',
|
||||
boxShadow: "0 5px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
case 'topCenter': case 'center': case 'bottomCenter': case 'inline':
|
||||
this.$bar.css({
|
||||
borderRadius: '0px',
|
||||
border: '1px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
this.$message.css({fontSize: '13px', textAlign: 'center'});
|
||||
break;
|
||||
case 'topLeft': case 'topRight':
|
||||
case 'bottomLeft': case 'bottomRight':
|
||||
case 'centerLeft': case 'centerRight':
|
||||
this.$bar.css({
|
||||
borderRadius: '0px',
|
||||
border: '1px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
this.$message.css({fontSize: '13px', textAlign: 'left'});
|
||||
break;
|
||||
case 'bottom':
|
||||
this.$bar.css({
|
||||
borderRadius: '0x 0px 0px 0px',
|
||||
borderTop: '1px solid #eee',
|
||||
borderLeft: '1px solid #eee',
|
||||
borderRight: '1px solid #eee',
|
||||
boxShadow: "0 -2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
default:
|
||||
this.$bar.css({
|
||||
border: '2px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
switch (this.options.type) {
|
||||
case 'alert': case 'notification':
|
||||
this.$bar.css({backgroundColor: '#FFF', borderColor: '#353535', color: '#444'}); break;
|
||||
case 'warning':
|
||||
this.$bar.css({backgroundColor: '#FFEAA8', borderColor: '#353535', color: '#826200'});
|
||||
this.$buttons.css({borderTop: '1px solid #FFC237'}); break;
|
||||
case 'error':
|
||||
this.$bar.css({backgroundColor: 'red', borderColor: '#353535', color: '#FFF'});
|
||||
this.$buttons.css({borderTop: '1px solid darkred'}); break;
|
||||
case 'information':
|
||||
this.$bar.css({backgroundColor: '#57B7E2', borderColor: '#353535', color: '#FFF'});
|
||||
this.$buttons.css({borderTop: '1px solid #0B90C4'}); break;
|
||||
case 'success':
|
||||
this.$bar.css({backgroundColor: 'lightgreen', borderColor: '#353535', color: '#000'});
|
||||
this.$buttons.css({borderTop: '1px solid #50C24E'});break;
|
||||
default:
|
||||
this.$bar.css({backgroundColor: '#FFF', borderColor: '#353535', color: '#444'}); break;
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
onShow: function() { $.noty.themes.default.helpers.borderFix.apply(this); },
|
||||
onClose: function() { $.noty.themes.default.helpers.borderFix.apply(this); }
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,156 @@
|
||||
;(function($) {
|
||||
|
||||
$.noty.themes.default = {
|
||||
name: 'default',
|
||||
helpers: {
|
||||
borderFix: function() {
|
||||
if (this.options.dismissQueue) {
|
||||
var selector = this.options.layout.container.selector + ' ' + this.options.layout.parent.selector;
|
||||
switch (this.options.layout.name) {
|
||||
case 'top':
|
||||
$(selector).css({borderRadius: '0px 0px 0px 0px'});
|
||||
$(selector).last().css({borderRadius: '0px 0px 5px 5px'}); break;
|
||||
case 'topCenter': case 'topLeft': case 'topRight':
|
||||
case 'bottomCenter': case 'bottomLeft': case 'bottomRight':
|
||||
case 'center': case 'centerLeft': case 'centerRight': case 'inline':
|
||||
$(selector).css({borderRadius: '0px 0px 0px 0px'});
|
||||
$(selector).first().css({'border-top-left-radius': '5px', 'border-top-right-radius': '5px'});
|
||||
$(selector).last().css({'border-bottom-left-radius': '5px', 'border-bottom-right-radius': '5px'}); break;
|
||||
case 'bottom':
|
||||
$(selector).css({borderRadius: '0px 0px 0px 0px'});
|
||||
$(selector).first().css({borderRadius: '5px 5px 0px 0px'}); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
modal: {
|
||||
css: {
|
||||
position: 'fixed',
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
backgroundColor: '#000',
|
||||
zIndex: 10000,
|
||||
opacity: 0.6,
|
||||
display: 'none',
|
||||
left: 0,
|
||||
top: 0,
|
||||
}
|
||||
},
|
||||
style: function() {
|
||||
|
||||
this.$bar.css({
|
||||
overflow: 'hidden',
|
||||
background: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAoCAYAAAAPOoFWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPZJREFUeNq81tsOgjAMANB2ov7/7ypaN7IlIwi9rGuT8QSc9EIDAsAznxvY4pXPKr05RUE5MEVB+TyWfCEl9LZApYopCmo9C4FKSMtYoI8Bwv79aQJU4l6hXXCZrQbokJEksxHo9KMOgc6w1atHXM8K9DVC7FQnJ0i8iK3QooGgbnyKgMDygBWyYFZoqx4qS27KqLZJjA1D0jK6QJcYEQEiWv9PGkTsbqxQ8oT+ZtZB6AkdsJnQDnMoHXHLGKOgDYuCWmYhEERCI5gaamW0bnHdA3k2ltlIN+2qKRyCND0bhqSYCyTB3CAOc4WusBEIpkeBuPgJMAAX8Hs1NfqHRgAAAABJRU5ErkJggg==') repeat-x scroll left top #fff"
|
||||
});
|
||||
|
||||
this.$message.css({
|
||||
fontSize: '13px',
|
||||
lineHeight: '16px',
|
||||
textAlign: 'center',
|
||||
padding: '8px 10px 9px',
|
||||
width: 'auto',
|
||||
position: 'relative'
|
||||
});
|
||||
|
||||
this.$closeButton.css({
|
||||
position: 'absolute',
|
||||
top: 4, right: 4,
|
||||
width: 10, height: 10,
|
||||
background: "url(data:image/png;base64,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)",
|
||||
display: 'none',
|
||||
cursor: 'pointer',
|
||||
});
|
||||
|
||||
this.$buttons.css({
|
||||
padding: 5,
|
||||
textAlign: 'right',
|
||||
borderTop: '1px solid #ccc',
|
||||
backgroundColor: '#fff',
|
||||
});
|
||||
|
||||
this.$buttons.find('button').css({
|
||||
marginLeft: 5
|
||||
});
|
||||
|
||||
this.$buttons.find('button:first').css({
|
||||
marginLeft: 0
|
||||
});
|
||||
|
||||
this.$bar.bind({
|
||||
mouseenter: function() { $(this).find('.noty_close').fadeIn(); },
|
||||
mouseleave: function() { $(this).find('.noty_close').fadeOut(); }
|
||||
});
|
||||
|
||||
switch (this.options.layout.name) {
|
||||
case 'top':
|
||||
this.$bar.css({
|
||||
borderRadius: '0px 0px 5px 5px',
|
||||
borderBottom: '2px solid #eee',
|
||||
borderLeft: '2px solid #eee',
|
||||
borderRight: '2px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
case 'topCenter': case 'center': case 'bottomCenter': case 'inline':
|
||||
this.$bar.css({
|
||||
borderRadius: '5px',
|
||||
border: '1px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
this.$message.css({fontSize: '13px', textAlign: 'center'});
|
||||
break;
|
||||
case 'topLeft': case 'topRight':
|
||||
case 'bottomLeft': case 'bottomRight':
|
||||
case 'centerLeft': case 'centerRight':
|
||||
this.$bar.css({
|
||||
borderRadius: '5px',
|
||||
border: '1px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
this.$message.css({fontSize: '13px', textAlign: 'left'});
|
||||
break;
|
||||
case 'bottom':
|
||||
this.$bar.css({
|
||||
borderRadius: '5px 5px 0px 0px',
|
||||
borderTop: '2px solid #eee',
|
||||
borderLeft: '2px solid #eee',
|
||||
borderRight: '2px solid #eee',
|
||||
boxShadow: "0 -2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
default:
|
||||
this.$bar.css({
|
||||
border: '2px solid #eee',
|
||||
boxShadow: "0 2px 4px rgba(0, 0, 0, 0.1)"
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
switch (this.options.type) {
|
||||
case 'alert': case 'notification':
|
||||
this.$bar.css({backgroundColor: '#FFF', borderColor: '#CCC', color: '#444'}); break;
|
||||
case 'warning':
|
||||
this.$bar.css({backgroundColor: '#FFEAA8', borderColor: '#FFC237', color: '#826200'});
|
||||
this.$buttons.css({borderTop: '1px solid #FFC237'}); break;
|
||||
case 'error':
|
||||
this.$bar.css({backgroundColor: 'red', borderColor: 'darkred', color: '#FFF'});
|
||||
this.$message.css({fontWeight: 'bold'});
|
||||
this.$buttons.css({borderTop: '1px solid darkred'}); break;
|
||||
case 'information':
|
||||
this.$bar.css({backgroundColor: '#57B7E2', borderColor: '#0B90C4', color: '#FFF'});
|
||||
this.$buttons.css({borderTop: '1px solid #0B90C4'}); break;
|
||||
case 'success':
|
||||
this.$bar.css({backgroundColor: 'lightgreen', borderColor: '#50C24E', color: 'darkgreen'});
|
||||
this.$buttons.css({borderTop: '1px solid #50C24E'});break;
|
||||
default:
|
||||
this.$bar.css({backgroundColor: '#FFF', borderColor: '#CCC', color: '#444'}); break;
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
onShow: function() { $.noty.themes.default.helpers.borderFix.apply(this); },
|
||||
onClose: function() { $.noty.themes.default.helpers.borderFix.apply(this); }
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -38,4 +38,4 @@ function toggle(source) {
|
||||
checkboxes = document.getElementsByClassName('checkbox');
|
||||
for(var i in checkboxes)
|
||||
checkboxes[i].checked = source.checked;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,195 @@
|
||||
function getArtistInfo(name,imgElem,size,artistID) {
|
||||
var apikey = "690e1ed3bc00bc91804cd8f7fe5ed6d4";
|
||||
|
||||
// Get Data by Artist ID
|
||||
$.ajax({
|
||||
url: "http://ws.audioscrobbler.com/2.0/?method=artist.getInfo&mbid="+ artistID +"&api_key="+ apikey+"&format=json",
|
||||
dataType: "jsonp",
|
||||
cache: true,
|
||||
success: function(data){
|
||||
if ( data.artist !== undefined ) {
|
||||
var imageUrl = data.artist.image[size]['#text'];
|
||||
}
|
||||
if (data.error) {
|
||||
getArtistName();
|
||||
} else {
|
||||
if ( data.artist === undefined || imageUrl == "" || imageUrl == undefined ) {
|
||||
var imageLarge = "#";
|
||||
var imageUrl = "interfaces/brink/images/no-cover-artist.png";
|
||||
} else {
|
||||
var artist = data.artist.mbid;
|
||||
var artistBio = data.artist.bio.summary;
|
||||
var imageLarge = data.artist.image[4]['#text'];
|
||||
var imageUrl = data.artist.image[size]['#text'];
|
||||
}
|
||||
var artistBio = artistBio;
|
||||
var image = imgElem;
|
||||
var bio = $('.artist-bio-container .artist-bio');
|
||||
$(image).attr("src",imageUrl).removeAttr("width").removeAttr("height").hide().fadeIn();
|
||||
if ( bio.length > 0 ) $(bio).append(artistBio);
|
||||
$(image).wrap('<a href="artistPage?ArtistID='+ artistID +'"></a>');
|
||||
}
|
||||
}
|
||||
});
|
||||
// If not found get by Name
|
||||
function getArtistName() {
|
||||
$.ajax({
|
||||
url: "http://ws.audioscrobbler.com/2.0/?method=artist.getInfo&artist="+ name +"&api_key="+ apikey+"&format=json",
|
||||
dataType: "jsonp",
|
||||
success: function(data){
|
||||
if ( data.artist !== undefined ) {
|
||||
var imageUrl = data.artist.image[size]['#text'];
|
||||
}
|
||||
if ( data.artist === undefined || imageUrl == "" ) {
|
||||
var imageLarge = "#";
|
||||
var imageUrl = "interfaces/brink/images/no-cover-artist.png";
|
||||
} else {
|
||||
var artist = data.artist.name;
|
||||
var artistBio = data.artist.bio.summary;
|
||||
var imageLarge = data.artist.image[4]['#text'];
|
||||
var imageUrl = data.artist.image[size]['#text'];
|
||||
}
|
||||
var artistBio = artistBio;
|
||||
var image = imgElem;
|
||||
var bio = $('.artist-bio-container .artist-bio');
|
||||
$(image).attr("src",imageUrl).removeAttr("width").removeAttr("height").hide().fadeIn();
|
||||
if ( bio.length > 0 ) $(bio).append(artistBio);
|
||||
$(image).wrap('<a href="artistPage?ArtistID=' + artistID + '" rel="dialog" title="' + artist + '"></a>');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function getAlbumInfo(name, album, elem,size) {
|
||||
var apikey = "690e1ed3bc00bc91804cd8f7fe5ed6d4";
|
||||
var dimensions = getOriginalWidthOfImg(this);
|
||||
var cover = $(elem);
|
||||
|
||||
if ( dimensions <= 1) {
|
||||
// Get Data
|
||||
$.ajax({
|
||||
url: "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=" + apikey + "&artist="+ name +"&album="+ album +"&format=json&callback=?",
|
||||
dataType: "jsonp",
|
||||
success: function(data){
|
||||
if ( data.artist !== undefined ) {
|
||||
var imageUrl = data.artist.image[size]['#text'];
|
||||
}
|
||||
if (data.album === undefined || imageUrl == "") {
|
||||
if ( elem.width() == 50 ) {
|
||||
var imageUrl = "interfaces/brink/images/no-cover-artist.png";
|
||||
} else {
|
||||
var imageUrl = "interfaces/brink/images/no-cover-art.png";
|
||||
}
|
||||
} else {
|
||||
var imageUrl = data.album.image[size]['#text'];
|
||||
var imageLarge = data.album.image[3]['#text'];
|
||||
}
|
||||
$(cover).error(function(){
|
||||
if ( elem.width() == 50 ) {
|
||||
var imageUrl = "interfaces/brink/images/no-cover-artist.png";
|
||||
} else {
|
||||
var imageUrl = "interfaces/brink/images/no-cover-art.png";
|
||||
}
|
||||
$(elem).css("background", "url("+ imageUrl+") center top no-repeat");
|
||||
});
|
||||
if ( imageUrl == "") {
|
||||
if ( elem.width() == 50 ) {
|
||||
var imageUrl = "interfaces/brink/images/no-cover-artist.png";
|
||||
} else {
|
||||
var imageUrl = "interfaces/brink/images/no-cover-art.png";
|
||||
}
|
||||
$(elem).css("background", "url("+ imageUrl+")");
|
||||
}
|
||||
$(elem).css("background", "url("+ imageUrl+") center top no-repeat");
|
||||
$(elem).wrap('<a href="'+ imageLarge +'" rel="dialog" title="' + name + '"></a>');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function getOriginalWidthOfImg(img_element) {
|
||||
var t = new Image();
|
||||
t.src = (img_element.getAttribute ? img_element.getAttribute("src") : false) || img_element.src;
|
||||
return t.width;
|
||||
}
|
||||
|
||||
function replaceEmptyAlbum(elem,name,album) {
|
||||
var album = $(elem);
|
||||
var artist = name;
|
||||
var albumname = album;
|
||||
var apikey = "690e1ed3bc00bc91804cd8f7fe5ed6d4";
|
||||
var dimensions = getOriginalWidthOfImg(this);
|
||||
var cover = $(this);
|
||||
var url;
|
||||
if ( dimensions <= 1) {
|
||||
url = "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=" + apikey + "&artist="+ artist +"&album="+ albumname +"&format=json&callback=?";
|
||||
var imageUrl;
|
||||
$.getJSON(url, function(data, response) {
|
||||
if (data.album === undefined) {
|
||||
imageUrl = "interfaces/brink/images/no-cover-art.png";
|
||||
} else {
|
||||
imageUrl = data.album.image[3]['#text'];
|
||||
imageLarge = data.album.image[4]['#text'];
|
||||
// If Last.fm don't provide a cover then use standard
|
||||
}
|
||||
$(cover).error(function(){
|
||||
imageUrl = "interfaces/brink/images/no-cover-art.png";
|
||||
$(this).hide().attr("src", imageUrl).show();
|
||||
})
|
||||
if ( imageUrl == "") {
|
||||
imageUrl = "interfaces/brink/images/no-cover-art.png";
|
||||
$(this).hide().attr("src", imageUrl).show();
|
||||
}
|
||||
$(cover).hide().attr("src", imageUrl).show();
|
||||
$(cover).wrap('<a href="'+ imageLarge +'" rel="dialog" title="' + artist + " - " + albumname + '"></a>');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//Mark current active link
|
||||
$(document).ready(function() {
|
||||
enit();
|
||||
$("#nav li a").each(function () {
|
||||
var hreflink = $(this).attr("href");
|
||||
var locationHref = location.href.split("/").pop();
|
||||
if (hreflink == locationHref) {
|
||||
$(this).parent().addClass("selected");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Loader
|
||||
var loaderSymbols = ['0', '1', '2', '3', '4', '5', '6', '7'],
|
||||
loaderRate = 100,
|
||||
loaderIndex = 0,
|
||||
loader = function() {
|
||||
$('.loader').text( loaderSymbols[loaderIndex] );
|
||||
loaderIndex = loaderIndex < loaderSymbols.length - 1 ? loaderIndex + 1 : 0;
|
||||
setTimeout(loader, loaderRate);
|
||||
};
|
||||
loader();
|
||||
|
||||
function enit()
|
||||
{
|
||||
var mainWindow = $("#main");
|
||||
var totalHeight = $(window).height() - ($("#header").outerHeight() + $("#footer").outerHeight()) - 3;
|
||||
$(mainWindow).height(totalHeight);
|
||||
$(mainWindow).jScrollPane({ showArrows: true, animateScroll: true, hijackInternalLinks: true });
|
||||
}
|
||||
$(document).ready(function(){
|
||||
$("ul#nav-view li").toggle(function() {
|
||||
$(this).children("span").removeClass("Icon");
|
||||
$(this).children("span").addClass("List");
|
||||
$("#gridView").hide();
|
||||
$("#listView").show();
|
||||
enit();
|
||||
}, function() {
|
||||
$(this).children("span").removeClass("List");
|
||||
$(this).children("span").addClass("Icon");
|
||||
$("#gridView").show();
|
||||
$("#listView").hide();
|
||||
enit();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -3,92 +3,98 @@
|
||||
import headphones
|
||||
from headphones.helpers import checked
|
||||
%>
|
||||
<%def name="headerIncludes()">
|
||||
<div id="subhead_container">
|
||||
|
||||
</div>
|
||||
</%def>
|
||||
|
||||
<%def name="body()">
|
||||
<div class="table_wrapper">
|
||||
<div id="nav-sub-container">
|
||||
<ul id="nav-sub">
|
||||
<li>Manage: </li>
|
||||
<li><a href="manageAlbums">Albums</a></li>
|
||||
<li><a href="manageArtists">Artists</a></li>
|
||||
%if not headphones.ADD_ARTISTS:
|
||||
<li><a href="manageNew">New Artists</a></li>
|
||||
%endif
|
||||
</ul>
|
||||
</div>
|
||||
<h1>Scan Music Library</h1>
|
||||
<table class="configtable">
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Local Music Directory:
|
||||
</p>
|
||||
<div id="nav-sub-container">
|
||||
<ul id="nav-sub">
|
||||
<li>Manage: </li>
|
||||
<li><a href="manageAlbums">Albums</a></li>
|
||||
<li><a href="manageArtists">Artists</a></li>
|
||||
%if not headphones.ADD_ARTISTS:
|
||||
<li><a href="manageNew">New Artists</a></li>
|
||||
%endif
|
||||
</ul>
|
||||
</div>
|
||||
<div id="config_wrapper">
|
||||
<div>
|
||||
<h1>Scan Music Library</h1>
|
||||
<table class="configtable">
|
||||
<tr>
|
||||
<form action="musicScan" method="GET">
|
||||
%if headphones.MUSIC_DIR:
|
||||
<input type="text" value="${headphones.MUSIC_DIR}" name="path" size="60" />
|
||||
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'
|
||||
%else:
|
||||
<p>
|
||||
<input type="text" placeholder="Music Directory" onfocus="if (this.value==this.defaultValue) this.value='';" name="path" size="60" />
|
||||
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'
|
||||
</p>
|
||||
%endif
|
||||
<br />
|
||||
<p>
|
||||
<input class="styled" type="checkbox" name="autoadd" value="1" ${checked(headphones.ADD_ARTISTS)} /> Automatically add new artists
|
||||
</p>
|
||||
<input type="submit" />
|
||||
This process runs in the background.
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="table_wrapper">
|
||||
<h1>Import Last.FM Artists</h1>
|
||||
<table class="configtable">
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Enter the username whose artists you want to import:
|
||||
</p>
|
||||
<form action="importLastFM" method="GET" align="left">
|
||||
<%
|
||||
if headphones.LASTFM_USERNAME:
|
||||
lastfmvalue = headphones.LASTFM_USERNAME
|
||||
else:
|
||||
lastfmvalue = 'Last.fm Username'
|
||||
%>
|
||||
<input type="text" value="${lastfmvalue}" onfocus="if (this.value==this.defaultValue) this.value='';" name="username" size="18" />
|
||||
<br />
|
||||
<br />
|
||||
<input type="submit" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="table_wrapper">
|
||||
<h1>Force Search</h1><br />
|
||||
<table class="configtable">
|
||||
<tr>
|
||||
<td>
|
||||
<h3><a href="forceSearch">Force Check for Wanted Albums</a></h3>
|
||||
<h3><a href="forceUpdate">Force Update Active Artists</a></h3>
|
||||
<h3><a href="forcePostProcess">Force Post-Process Albums in Download Folder</a></h3><br /><br />
|
||||
<h3><a href="checkGithub">Check for Headphones Updates</a></h3>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
%if headphones.MUSIC_DIR:
|
||||
<td>
|
||||
<h2>Local Music Directory:</h2>
|
||||
<small>
|
||||
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'
|
||||
</small>
|
||||
</td>
|
||||
<td><input type="text" value="${headphones.MUSIC_DIR}" name="path" size="60" /></td>
|
||||
%else:
|
||||
<td>
|
||||
<h2>Local Music Directory:</h2>
|
||||
<small>
|
||||
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'
|
||||
</small>
|
||||
</td>
|
||||
<td><input type="text" placeholder="Music Directory" onfocus="if (this.value==this.defaultValue) this.value='';" name="path" size="60" /></td>
|
||||
%endif
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<input class="styled" type="checkbox" name="autoadd" value="1" ${checked(headphones.ADD_ARTISTS)} /> <label for="autoadd">Automatically add new artists</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="submit" /> <small><span class="wsr Alert"></span> This process runs in the background.</small>
|
||||
</form>
|
||||
</div>
|
||||
<div id="Import">
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="2"><h2>Import Last.FM Artists</h2></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="username">Username:</label>
|
||||
</td>
|
||||
<td>
|
||||
<form action="importLastFM" method="GET" align="left">
|
||||
<%
|
||||
if headphones.LASTFM_USERNAME:
|
||||
lastfmvalue = headphones.LASTFM_USERNAME
|
||||
else:
|
||||
lastfmvalue = 'Last.fm Username'
|
||||
%>
|
||||
<input type="text" value="${lastfmvalue}" name="username" size="18" />
|
||||
<input type="submit" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<!--Hidden
|
||||
<div id="Search">
|
||||
<h2>Force Search</h2>
|
||||
<table class="configtable">
|
||||
<tr>
|
||||
<td>
|
||||
<h3><a href="forceSearch">Force Check for Wanted Albums</a></h3>
|
||||
<h3><a href="forceUpdate">Force Update Active Artists</a></h3>
|
||||
<h3><a href="forcePostProcess">Force Post-Process Albums in Download Folder</a></h3>
|
||||
<h3><a href="checkGithub">Check for Headphones Updates</a></h3>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
</%def>
|
||||
Reference in New Issue
Block a user