mirror of
https://github.com/transmission/transmission.git
synced 2025-12-24 04:18:39 +00:00
(trunk web) refactor the preferences dialog into its own class. Make the prefs dialog invokable on iPhones/Androids (#1131) and add stop ratio functionality (#2006).
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
datadir = ${datarootdir}/${PACKAGE_NAME}/${subdir}
|
||||
|
||||
dist_data_DATA = \
|
||||
blue-turtle.png \
|
||||
chrome.png \
|
||||
filter_bar.png \
|
||||
filter_icon.png \
|
||||
|
||||
BIN
web/images/graphics/blue-turtle.png
Normal file
BIN
web/images/graphics/blue-turtle.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 7.1 KiB |
351
web/index.html
351
web/index.html
@@ -11,6 +11,7 @@
|
||||
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
|
||||
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css" type="text/css" media="all" />
|
||||
|
||||
<!--
|
||||
<link media="screen" href="./stylesheets/mobile.css" type= "text/css" rel="stylesheet" />
|
||||
-->
|
||||
@@ -23,11 +24,11 @@
|
||||
<!--[if IE 7]><link media="screen" href="./stylesheets/ie7.css" type="text/css" rel="stylesheet" /><![endif]-->
|
||||
<script type="text/javascript" src="./javascript/jquery/jquery.transmenu.min.js"></script>
|
||||
<script type="text/javascript" src="./javascript/jquery/jquery.contextmenu.min.js"></script>
|
||||
<script type="text/javascript" src="./javascript/menu.js"></script>
|
||||
<script type="text/javascript" src="./javascript/jquery/jquery.form.min.js"></script>
|
||||
<script type="text/javascript" src="./javascript/jquery/json2.min.js"></script>
|
||||
<script type="text/javascript" src="./javascript/common.js"></script>
|
||||
<script type="text/javascript" src="./javascript/inspector.js"></script>
|
||||
<script type="text/javascript" src="./javascript/prefs-dialog.js"></script>
|
||||
<script type="text/javascript" src="./javascript/remote.js"></script>
|
||||
<script type="text/javascript" src="./javascript/transmission.js"></script>
|
||||
<script type="text/javascript" src="./javascript/torrent.js"></script>
|
||||
@@ -69,6 +70,113 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="prefs-dialog" style="display:none;">
|
||||
<ul>
|
||||
<li id="prefs-tab-general"><a href="#prefs-page-torrents">Torrents</a></li>
|
||||
<li id="prefs-tab-speed"><a href="#prefs-page-speed">Speed</a></li>
|
||||
<li id="prefs-tab-privacy"><a href="#prefs-page-privacy">Privacy</a></li>
|
||||
<li id="prefs-tab-network"><a href="#prefs-page-network">Network</a></li>
|
||||
<li class="ui-tab-dialog-close"></li>
|
||||
</ul>
|
||||
<div>
|
||||
<div id="prefs-page-torrents">
|
||||
<div class="prefs-section">
|
||||
<div class="title">Downloading</div>
|
||||
<div class="row"><div class="key">Download to:</div><div class="value"><input type="text" id="download-dir"/></div></div>
|
||||
<div class="checkbox-row"><input type="checkbox" id="start-added-torrents"/><label for="start-added-torrents">Start when added</label></div>
|
||||
<div class="checkbox-row"><input type="checkbox" id="rename-partial-files"/><label for="rename-partial-files">Append ".part" to incomplete files' names</label></div>
|
||||
</div>
|
||||
<div class="prefs-section">
|
||||
<div class="title">Seeding</div>
|
||||
<div class="row"><div class="key"><input type="checkbox" id="seedRatioLimited"/><label for="seedRatioLimited">Stop seeding at ratio:</label></div>
|
||||
<div class="value"><input type="text" class="numberinput" id="seedRatioLimit"/></div></div>
|
||||
<div class="row"><div class="key"><input type="checkbox" id="idle-seeding-limit-enabled"/><label for="idle-seeding-limit-enabled">Stop seeding if idle for N minutes:</label></div>
|
||||
<div class="value"><input type="text" class="numberinput" id="idle-seeding-limit"/></div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="prefs-page-speed">
|
||||
<div class="prefs-section">
|
||||
<div class="title">Speed Limits</div>
|
||||
<div class="row"><div class="key"><input type="checkbox" id="speed-limit-up-enabled"/><label for="speed-limit-up-enabled">Upload (kB/s):</label></div>
|
||||
<div class="value"><input type="text" class="numberinput" id="speed-limit-up"/></div></div>
|
||||
<div class="row"><div class="key"><input type="checkbox" id="speed-limit-down-enabled"/><label for="speed-limit-down-enabled">Download (kB/s):</label></div>
|
||||
<div class="value"><input type="text" class="numberinput" id="speed-limit-down"/></div></div>
|
||||
</div>
|
||||
<div class="prefs-section">
|
||||
<div class="title"><img src="images/graphics/blue-turtle.png" width="16" height="9" style="padding-right: 10px;"/>Alternative Speed Limits</div>
|
||||
<div class="row" style="font-size: smaller; padding-bottom: 4px;">Override normal speed limits manually or at scheduled times</div>
|
||||
<div class="row"><div class="key">Upload (kB/s):</div>
|
||||
<div class="value"><input type="text" class="numberinput" id="alt-speed-up"/></div></div>
|
||||
<div class="row"><div class="key">Download (kB/s):</div>
|
||||
<div class="value"><input type="text" class="numberinput" id="alt-speed-down"/></div></div>
|
||||
<div class="checkbox-row"><input type="checkbox" id="alt-speed-time-enabled"/><label for="alt-speed-time-enabled">Scheduled Times</label></div>
|
||||
<div class="row"><div class="key">From:</div>
|
||||
<div class="value"><select id="alt-speed-time-begin"></select></div></div>
|
||||
<div class="row"><div class="key">To:</div>
|
||||
<div class="value"><select id="alt-speed-time-end"></select></div></div>
|
||||
<div class="row"><div class="key"><label for="alt-speed-time-day">On days:</label></div>
|
||||
<div class="value"><select id="alt-speed-time-day">
|
||||
<option value="127">Everyday</option>
|
||||
<option value="62">Weekdays</option>
|
||||
<option value="65">Weekends</option>
|
||||
<option value="1">Sunday</option>
|
||||
<option value="2">Monday</option>
|
||||
<option value="4">Tuesday</option>
|
||||
<option value="8">Wednesday</option>
|
||||
<option value="16">Thursday</option>
|
||||
<option value="32">Friday</option>
|
||||
<option value="64">Saturday</option></select></div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="prefs-page-privacy">
|
||||
<div class="prefs-section">
|
||||
<div class="title">Blocklist</div>
|
||||
<div class="row"><div class="key"><input type="checkbox" id="blocklist-enabled"/><label for="blocklist-enabled">Enable blocklist:</label></div>
|
||||
<div class="value"><input type="text" id="blocklist-url"/></div></div>
|
||||
<div class="row"><div class="key" style="margin-top: 3px; font-size: smaller;">Blocklist has <span id="blocklist-size">?</span> rules</div>
|
||||
<div class="value"><input type="button" id="blocklist-update-button" value="Update"/></div></div>
|
||||
</div>
|
||||
<div class="prefs-section">
|
||||
<div class="title">Privacy</div>
|
||||
<div class="row"><div class="key">Encryption mode:</div>
|
||||
<div class="value"><select id="encryption">
|
||||
<option value="tolerated">Allow encryption</option>
|
||||
<option value="preferred">Prefer encryption</option>
|
||||
<option value="required">Require encryption</option></select></div></div>
|
||||
<div class="checkbox-row"><input type="checkbox" id="pex-enabled" title="PEX is a tool for exchanging peer lists with the peers you're connected to."/>
|
||||
<label for="pex-enabled" title="PEX is a tool for exchanging peer lists with the peers you're connected to.">Use PEX to find more peers</label></div>
|
||||
<div class="checkbox-row"><input type="checkbox" id="dht-enabled" title="DHT is a tool for finding peers without a tracker."/>
|
||||
<label for="dht-enabled" title="DHT is a tool for finding peers without a tracker.">Use DHT to find more peers</label></div>
|
||||
<div class="checkbox-row"><input type="checkbox" id="lpd-enabled" title="LPD is a tool for finding peers on your local network."/>
|
||||
<label for="lpd-enabled" title="LPD is a tool for finding peers on your local network.">Use LPD to find more peers</label></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="prefs-page-network">
|
||||
<div class="prefs-section">
|
||||
<div class="title">Listening Port</div>
|
||||
<div class="row"><div class="key"><label for="peer-port">Peer listening port:</div>
|
||||
<div class="value"><input type="text" class="numberinput" id="peer-port"/></div></div>
|
||||
<div class="row"><div class="key"> </div>
|
||||
<div class="value"><span id="port-label">Status: Unknown</span></div></div>
|
||||
<div class="checkbox-row"><input type="checkbox" id="peer-port-random-on-start"/><label for="peer-port-random-on-start">Randomize port on launch</label></div>
|
||||
<div class="checkbox-row"><input type="checkbox" id="port-forwarding-enabled"/><label for="port-forwarding-enabled">Use port forwarding from my router</label></div>
|
||||
</div>
|
||||
<div class="prefs-section">
|
||||
<div class="title">Connections</div>
|
||||
<div class="row"><div class="key"><label for="peer-limit-per-torrent">Max peers per torrent:</label></div>
|
||||
<div class="value"><input type="text" class="numberinput" id="peer-limit-per-torrent"/></div></div>
|
||||
<div class="row"><div class="key"><label for="peer-limit-global">Max peers overall:</label></div>
|
||||
<div class="value"><input type="text" class="numberinput" id="peer-limit-global"/></div></div>
|
||||
</div>
|
||||
<div class="prefs-section">
|
||||
<div class="title">Options</div>
|
||||
<div class="checkbox-row"><input type="checkbox" id="utp-enabled" title="uTP is a tool for reducing network congestion."/>
|
||||
<label for="utp-enabled" title="uTP is a tool for reducing network congestion.">Enable uTP for peer communication</label></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="torrent_inspector" style="display:none;">
|
||||
|
||||
<div style="display:none;" class="inspector_close" id="inspector_close"><img id="inspector_close_image" src="./images/buttons/cancel.png"/></div>
|
||||
@@ -223,180 +331,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dialog_container" id="prefs_container" style="display:none;">
|
||||
<div class="dialog_top_bar"></div>
|
||||
<div class="dialog_window">
|
||||
<h2 class="dialog_heading">Preferences</h2>
|
||||
<div id="pref_error"></div>
|
||||
<form action="" id="prefs_form">
|
||||
<div id="prefs_tabs">
|
||||
<ul>
|
||||
<li id="prefs-tab-general" class="prefs-tab selected">General</li>
|
||||
<li id="prefs-tab-speed" class="prefs-tab">Speed</li>
|
||||
<li id="prefs-tab-peers" class="prefs-tab">Peers</li>
|
||||
<li id="prefs-tab-network" class="prefs-tab">Network</li>
|
||||
</ul>
|
||||
<div id="prefs-page-general" class="prefs-page">
|
||||
<div class="preference download_location">
|
||||
<label class="category">Add transfers:</label>
|
||||
<div class="formdiv">
|
||||
<label for="download_location" class="item">Download to:</label>
|
||||
<input type="text" name="download_location" id="download_location"/>
|
||||
</div>
|
||||
<div class="formdiv checkbox auto_start">
|
||||
<input type="checkbox" name="auto_start" id="auto_start"/>
|
||||
<label for="auto_start" class="item">Start transfers when added</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="preference encryption">
|
||||
<label class="category">Encryption:</label>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="encryption" id="encryption"/>
|
||||
<label for="encryption" class="item">Ignore unencrypted peers</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="preference web_gui">
|
||||
<label class="category">Web Client:</label>
|
||||
<div class="formdiv">
|
||||
<label for="refresh_rate" class="item">Refresh Rate:</label>
|
||||
<input type="text" name="refresh_rate" id="refresh_rate" class="numberinput"/>
|
||||
<label class="suffix">seconds</label>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear: both; visibility: hidden;"></div>
|
||||
</div>
|
||||
<div id="prefs-page-speed" class="prefs-page" style="display: none;">
|
||||
<div class="preference limit_total">
|
||||
<label class="category">Speed Limits:</label>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="limit_download" id="limit_download"/>
|
||||
<label for="limit_download" class="item">Download Rate:</label>
|
||||
<input type="text" name="download_rate" id="download_rate" class="numberinput"/>
|
||||
<label class="suffix">kB/s</label>
|
||||
</div>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="limit_upload" id="limit_upload"/>
|
||||
<label for="limit_upload" class="item">Upload Rate:</label>
|
||||
<input type="text" name="upload_rate" id="upload_rate" class="numberinput"/>
|
||||
<label class="suffix">kB/s</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="preference limit_turtle">
|
||||
<label class="category">Temporary Speed Limits: (Turtle)</label>
|
||||
<label>Override normal speed limits manually or at scheduled times</label>
|
||||
<div class="formdiv">
|
||||
<label for="turtle_download_rate" class="item">Download Rate:</label>
|
||||
<input type="text" name="turtle_download_rate" id="turtle_download_rate" class="numberinput"/>
|
||||
<label class="suffix">kB/s</label>
|
||||
</div>
|
||||
<div class="formdiv">
|
||||
<label for="turtle_upload_rate" class="item">Upload Rate:</label>
|
||||
<input type="text" name="turtle_upload_rate" id="turtle_upload_rate" class="numberinput"/>
|
||||
<label class="suffix">kB/s</label>
|
||||
</div>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="turtle_schedule" id="turtle_schedule"/>
|
||||
<label for="turtle_schedule" class="item">Scheduled times:</label>
|
||||
<select name="turtle_start_time" id="turtle_start_time" size="1">
|
||||
</select>
|
||||
<select name="turtle_end_time" id="turtle_end_time" size="1">
|
||||
</select>
|
||||
</div>
|
||||
<div class="formdiv">
|
||||
<label for="turtle_days" class="item">On days:</label>
|
||||
<select name="turtle_days" id="turtle_days" size="1">
|
||||
<option value="127">Everyday</option>
|
||||
<option value="62">Weekdays</option>
|
||||
<option value="65">Weekends</option>
|
||||
<option value="1">Sunday</option>
|
||||
<option value="2">Monday</option>
|
||||
<option value="4">Tuesday</option>
|
||||
<option value="8">Wednesday</option>
|
||||
<option value="16">Thursday</option>
|
||||
<option value="32">Friday</option>
|
||||
<option value="64">Saturday</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear: both; visibility: hidden;"></div>
|
||||
</div>
|
||||
<div id="prefs-page-peers" class="prefs-page" style="display: none;">
|
||||
<div class="preference peers_conn">
|
||||
<label class="category">Connections:</label>
|
||||
<div class="formdiv">
|
||||
<label for="conn_global" class="item">Global maximum connections:</label>
|
||||
<input type="text" name="conn_global" id="conn_global" class="numberinput"/>
|
||||
<label class="suffix">peers</label>
|
||||
</div>
|
||||
<div class="formdiv">
|
||||
<label for="conn_torrent" class="item">Maximum connections for new transfers:</label>
|
||||
<input type="text" name="conn_torrent" id="conn_torrent" class="numberinput"/>
|
||||
<label class="suffix">peers</label>
|
||||
</div>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="conn_pex" id="conn_pex"/>
|
||||
<label for="conn_pex" class="item">Use peer exchange (PEX) for public torrents</label>
|
||||
</div>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="conn_dht" id="conn_dht"/>
|
||||
<label for="conn_dht" class="item">Use distributed hash table (DHT) for public torrents</label>
|
||||
</div>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="conn_lpd" id="conn_lpd"/>
|
||||
<label for="conn_lpd" class="item">Use local peer discovery for public torrents</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="preference block_conn">
|
||||
<label class="category">Blocklist:</label>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="block_enable" id="block_enable"/>
|
||||
<label for="block_enable" class="item">Prevent peers in blocklist from connecting</label>
|
||||
</div>
|
||||
<div class="formdiv block_url">
|
||||
<label for="block_url" class="item">URL:</label>
|
||||
<input type="text" name="block_url" id="block_url"/>
|
||||
</div>
|
||||
<div class="formdiv">
|
||||
<input type="button" name="block_update_button" id="block_update_button" value="Update"/>
|
||||
<label class="suffix" id="block_size">IP rules in the list</label>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear: both; visibility: hidden;"></div>
|
||||
</div>
|
||||
<div id="prefs-page-network" class="prefs-page" style="display: none;">
|
||||
<div class="preference utp">
|
||||
<label class="category">Peer communication:</label>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="network_utp" id="network_utp"/>
|
||||
<label for="network_utp" class="item">Enable Micro Transport Protocol (µTP)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="preference port">
|
||||
<label class="category">Peer listening port:</label>
|
||||
<div class="formdiv">
|
||||
<label for="port" class="item">Incoming TCP Port:</label>
|
||||
<input type="text" id="port" name="port" class="numberinput"/>
|
||||
<label class="suffix" id="port_test"></label>
|
||||
</div>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="port_rand" id="port_rand"/>
|
||||
<label for="port_rand" class="item">Randomize port on launch</label>
|
||||
</div>
|
||||
<div class="formdiv checkbox">
|
||||
<input type="checkbox" name="port_forward" id="port_forward"/>
|
||||
<label for="port_forward" class="item">Automatically map port</label>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear: both; visibility: hidden;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<span id="transmission_version"></span>
|
||||
<a href="#save" id="prefs_save_button">Save</a>
|
||||
<a href="#cancel" id="prefs_cancel_button">Cancel</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dialog_container" id="stats_container" style="display:none;">
|
||||
<div class="dialog_top_bar"></div>
|
||||
<div class="dialog_window">
|
||||
@@ -486,19 +420,19 @@
|
||||
<li id="unlimited_download_rate">Unlimited</li>
|
||||
<li id="limited_download_rate">Limit (10 kB/s)</li>
|
||||
<li class="separator"></li>
|
||||
<li>5 kB/s</li>
|
||||
<li>10 kB/s</li>
|
||||
<li>20 kB/s</li>
|
||||
<li>30 kB/s</li>
|
||||
<li>40 kB/s</li>
|
||||
<li>50 kB/s</li>
|
||||
<li>75 kB/s</li>
|
||||
<li>100 kB/s</li>
|
||||
<li>150 kB/s</li>
|
||||
<li>200 kB/s</li>
|
||||
<li>250 kB/s</li>
|
||||
<li>500 kB/s</li>
|
||||
<li>750 kB/s</li>
|
||||
<li class='download-speed'>5 kB/s</li>
|
||||
<li class='download-speed'>10 kB/s</li>
|
||||
<li class='download-speed'>20 kB/s</li>
|
||||
<li class='download-speed'>30 kB/s</li>
|
||||
<li class='download-speed'>40 kB/s</li>
|
||||
<li class='download-speed'>50 kB/s</li>
|
||||
<li class='download-speed'>75 kB/s</li>
|
||||
<li class='download-speed'>100 kB/s</li>
|
||||
<li class='download-speed'>150 kB/s</li>
|
||||
<li class='download-speed'>200 kB/s</li>
|
||||
<li class='download-speed'>250 kB/s</li>
|
||||
<li class='download-speed'>500 kB/s</li>
|
||||
<li class='download-speed'>750 kB/s</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Total Upload Rate
|
||||
@@ -506,31 +440,31 @@
|
||||
<li id="unlimited_upload_rate">Unlimited</li>
|
||||
<li id="limited_upload_rate">Limit (10 kB/s)</li>
|
||||
<li class="separator"></li>
|
||||
<li>5 kB/s</li>
|
||||
<li>10 kB/s</li>
|
||||
<li>20 kB/s</li>
|
||||
<li>30 kB/s</li>
|
||||
<li>40 kB/s</li>
|
||||
<li>50 kB/s</li>
|
||||
<li>75 kB/s</li>
|
||||
<li>100 kB/s</li>
|
||||
<li>150 kB/s</li>
|
||||
<li>200 kB/s</li>
|
||||
<li>250 kB/s</li>
|
||||
<li>500 kB/s</li>
|
||||
<li>750 kB/s</li>
|
||||
<li class='upload-speed'>5 kB/s</li>
|
||||
<li class='upload-speed'>10 kB/s</li>
|
||||
<li class='upload-speed'>20 kB/s</li>
|
||||
<li class='upload-speed'>30 kB/s</li>
|
||||
<li class='upload-speed'>40 kB/s</li>
|
||||
<li class='upload-speed'>50 kB/s</li>
|
||||
<li class='upload-speed'>75 kB/s</li>
|
||||
<li class='upload-speed'>100 kB/s</li>
|
||||
<li class='upload-speed'>150 kB/s</li>
|
||||
<li class='upload-speed'>200 kB/s</li>
|
||||
<li class='upload-speed'>250 kB/s</li>
|
||||
<li class='upload-speed'>500 kB/s</li>
|
||||
<li class='upload-speed'>750 kB/s</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="separator"></li>
|
||||
<li>Sort Transfers By
|
||||
<ul id="footer_sort_menu">
|
||||
<li id="sort_by_activity">Activity</li>
|
||||
<li id="sort_by_age">Age</li>
|
||||
<li id="sort_by_name">Name</li>
|
||||
<li id="sort_by_percent_completed">Progress</li>
|
||||
<li id="sort_by_ratio">Ratio</li>
|
||||
<li id="sort_by_queue_order">Queue Order</li>
|
||||
<li id="sort_by_state">State</li>
|
||||
<li class='sort-mode' id="sort_by_activity">Activity</li>
|
||||
<li class='sort-mode' id="sort_by_age">Age</li>
|
||||
<li class='sort-mode' id="sort_by_name">Name</li>
|
||||
<li class='sort-mode' id="sort_by_percent_completed">Progress</li>
|
||||
<li class='sort-mode' id="sort_by_ratio">Ratio</li>
|
||||
<li class='sort-mode' id="sort_by_queue_order">Queue Order</li>
|
||||
<li class='sort-mode' id="sort_by_state">State</li>
|
||||
<li class="separator"></li>
|
||||
<li id="reverse_sort_order">Reverse Sort Order</li>
|
||||
</ul>
|
||||
@@ -538,6 +472,7 @@
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<div id="prefs-button"> </div>
|
||||
<div id="turtle-button"> </div>
|
||||
<div id="compact-button"> </div>
|
||||
</div>
|
||||
|
||||
@@ -6,7 +6,7 @@ dist_data_DATA = \
|
||||
file-row.js \
|
||||
formatter.js \
|
||||
inspector.js \
|
||||
menu.js \
|
||||
prefs-dialog.js \
|
||||
remote.js \
|
||||
torrent.js \
|
||||
torrent-row.js \
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
/*
|
||||
* Copyright © Dave Perrett and Malcolm Jarvis
|
||||
* This code is licensed under the GPL version 2.
|
||||
* For more details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
/**
|
||||
* Copyright © Dave Perrett and Malcolm Jarvis
|
||||
*
|
||||
* Common javascript
|
||||
* This file is licensed under the GPLv2.
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
var transmission,
|
||||
@@ -21,6 +20,19 @@ if (!Array.indexOf){
|
||||
}
|
||||
}
|
||||
|
||||
// http://forum.jquery.com/topic/combining-ui-dialog-and-tabs
|
||||
$.fn.tabbedDialog = function (dialog_opts) {
|
||||
this.tabs({selected: 0});
|
||||
this.dialog(dialog_opts);
|
||||
this.find('.ui-tab-dialog-close').append(this.parent().find('.ui-dialog-titlebar-close'));
|
||||
this.find('.ui-tab-dialog-close').css({'position':'absolute','right':'0', 'top':'16px'});
|
||||
this.find('.ui-tab-dialog-close > a').css({'float':'none','padding':'0'});
|
||||
var tabul = this.find('ul:first');
|
||||
this.parent().addClass('ui-tabs').prepend(tabul).draggable('option','handle',tabul);
|
||||
this.siblings('.ui-dialog-titlebar').remove();
|
||||
tabul.addClass('ui-dialog-titlebar');
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
// Initialise the dialog controller
|
||||
dialog = new Dialog();
|
||||
@@ -58,15 +70,6 @@ $(document).ready(function() {
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* Return a copy of the array
|
||||
*
|
||||
* @returns array
|
||||
*/
|
||||
Array.prototype.clone = function () {
|
||||
return this.concat();
|
||||
};
|
||||
|
||||
/**
|
||||
* "innerHTML = html" is pretty slow in FF. Happily a lot of our innerHTML
|
||||
* changes are triggered by periodic refreshes on torrents whose state hasn't
|
||||
@@ -100,27 +103,19 @@ Math.ratio = function(numerator, denominator) {
|
||||
return result;
|
||||
};
|
||||
|
||||
/*
|
||||
* Truncate a float to a specified number of decimal
|
||||
* places, stripping trailing zeroes
|
||||
*
|
||||
* @param float floatnum
|
||||
* @param integer precision
|
||||
* @returns float
|
||||
*/
|
||||
Math.truncateWithPrecision = function(floatnum, precision) {
|
||||
return Math.floor(floatnum * Math.pow (10, precision)) / Math.pow(10, precision);
|
||||
};
|
||||
|
||||
/*
|
||||
* Round a string of a number to a specified number of decimal
|
||||
* places
|
||||
/**
|
||||
* Round a string of a number to a specified number of decimal places
|
||||
*/
|
||||
Number.prototype.toTruncFixed = function(place) {
|
||||
var ret = Math.truncateWithPrecision(this, place);
|
||||
var ret = Math.floor(this * Math.pow (10, place)) / Math.pow(10, place);
|
||||
return ret.toFixed(place);
|
||||
}
|
||||
|
||||
Number.prototype.toStringWithCommas = function() {
|
||||
return this.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Trim whitespace from a string
|
||||
*/
|
||||
@@ -136,7 +131,6 @@ function Prefs() { }
|
||||
Prefs.prototype = { };
|
||||
|
||||
Prefs._RefreshRate = 'refresh_rate';
|
||||
Prefs._SessionRefreshRate = 'session_refresh_rate';
|
||||
|
||||
Prefs._FilterMode = 'filter';
|
||||
Prefs._FilterAll = 'all';
|
||||
@@ -159,7 +153,6 @@ Prefs._SortByProgress = 'percent_completed';
|
||||
Prefs._SortByRatio = 'ratio';
|
||||
Prefs._SortByState = 'state';
|
||||
|
||||
Prefs._TurtleState = 'turtle-state';
|
||||
Prefs._CompactDisplayState= 'compact_display_state';
|
||||
|
||||
Prefs._Defaults =
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
/*
|
||||
* Copyright © Dave Perrett and Malcolm Jarvis
|
||||
* This code is licensed under the GPL version 2.
|
||||
* For more details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
/**
|
||||
* Copyright © Dave Perrett and Malcolm Jarvis
|
||||
*
|
||||
* Class Dialog
|
||||
* This file is licensed under the GPLv2.
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
function Dialog(){
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/*
|
||||
* Copyright © Jordan Lee
|
||||
* This code is licensed under the GPL version 2.
|
||||
* <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
|
||||
/**
|
||||
* Copyright © Mnemosyne LLC
|
||||
*
|
||||
* This file is licensed under the GPLv2.
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
function FileRow(torrent, i)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/**
|
||||
*** This file Copyright (C) Mnemosyne LLC
|
||||
***
|
||||
*** This code is licensed under the GPL version 2.
|
||||
*** For more details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
**/
|
||||
* Copyright © Mnemosyne LLC
|
||||
*
|
||||
* This file is licensed under the GPLv2.
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
Transmission.fmt = (function()
|
||||
{
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/*
|
||||
/**
|
||||
* Copyright © Jordan Lee, Dave Perrett, Malcolm Jarvis and Bruno Bierbaumer
|
||||
* This code is licensed under the GPL version 2.
|
||||
* For details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*
|
||||
* This file is licensed under the GPLv2.
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
function Inspector(controller) {
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
/*
|
||||
* Copyright © Dave Perrett and Malcolm Jarvis
|
||||
* This code is licensed under the GPL version 2.
|
||||
* For more details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*
|
||||
* Menu Configuration Properties
|
||||
*/
|
||||
|
||||
Menu = {
|
||||
|
||||
context: {
|
||||
|
||||
menu_style: {
|
||||
width: '310px',
|
||||
backgroundColor: '#fff',
|
||||
border: 'none',
|
||||
padding: '5px 0',
|
||||
textAlign: 'left'},
|
||||
|
||||
item_style: {
|
||||
backgroundColor: 'transparent',
|
||||
margin: '0',
|
||||
padding: '0 10px 2px 20px',
|
||||
color: '#000',
|
||||
fontSize: '14px',
|
||||
cursor: 'default',
|
||||
border: 'none'},
|
||||
|
||||
item_hover_style: {
|
||||
backgroundColor: '#24e',
|
||||
color: '#fff',
|
||||
border: 'none'},
|
||||
|
||||
item_disabled_style: {
|
||||
backgroundColor: 'transparent',
|
||||
margin: '0',
|
||||
padding: '0 10px 2px 20px',
|
||||
color: '#aaa',
|
||||
fontSize: '1.5em',
|
||||
cursor: 'default',
|
||||
border: 'none'}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
309
web/javascript/prefs-dialog.js
Normal file
309
web/javascript/prefs-dialog.js
Normal file
@@ -0,0 +1,309 @@
|
||||
/**
|
||||
* Copyright © Jordan Lee, Dave Perrett, Malcolm Jarvis and Bruno Bierbaumer
|
||||
*
|
||||
* This file is licensed under the GPLv2.
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
function PrefsDialog(remote) {
|
||||
|
||||
var data = {
|
||||
dialog: null,
|
||||
remote: null,
|
||||
elements: { },
|
||||
|
||||
// all the RPC session keys that we have gui controls for
|
||||
keys: [
|
||||
'alt-speed-down',
|
||||
'alt-speed-time-begin',
|
||||
'alt-speed-time-day',
|
||||
'alt-speed-time-enabled',
|
||||
'alt-speed-time-end',
|
||||
'alt-speed-up',
|
||||
'blocklist-enabled',
|
||||
'blocklist-size',
|
||||
'blocklist-url',
|
||||
'dht-enabled',
|
||||
'download-dir',
|
||||
'encryption',
|
||||
'idle-seeding-limit',
|
||||
'idle-seeding-limit-enabled',
|
||||
'lpd-enabled',
|
||||
'peer-limit-global',
|
||||
'peer-limit-per-torrent',
|
||||
'peer-port',
|
||||
'peer-port-random-on-start',
|
||||
'pex-enabled',
|
||||
'port-forwarding-enabled',
|
||||
'rename-partial-files',
|
||||
'seedRatioLimit',
|
||||
'seedRatioLimited',
|
||||
'speed-limit-down',
|
||||
'speed-limit-down-enabled',
|
||||
'speed-limit-up',
|
||||
'speed-limit-up-enabled',
|
||||
'start-added-torrents',
|
||||
'utp-enabled'
|
||||
],
|
||||
|
||||
// map of keys that are enabled only if a 'parent' key is enabled
|
||||
groups: {
|
||||
'alt-speed-time-enabled': ['alt-speed-time-begin',
|
||||
'alt-speed-time-day',
|
||||
'alt-speed-time-end' ],
|
||||
'blocklist-enabled': ['blocklist-url',
|
||||
'blocklist-update-button' ],
|
||||
'idle-seeding-limit-enabled': [ 'idle-seeding-limit' ],
|
||||
'seedRatioLimited': [ 'seedRatioLimit' ],
|
||||
'speed-limit-down-enabled': [ 'speed-limit-down' ],
|
||||
'speed-limit-up-enabled': [ 'speed-limit-up' ]
|
||||
}
|
||||
},
|
||||
|
||||
initTimeDropDown = function(e)
|
||||
{
|
||||
var i, hour, mins, value, content;
|
||||
|
||||
for (i=0; i<24*4; ++i) {
|
||||
hour = parseInt(i/4, 10);
|
||||
mins = ((i%4) * 15);
|
||||
value = i * 15;
|
||||
content = hour + ':' + (mins || '00');
|
||||
e.options[i] = new Option(content, value);
|
||||
}
|
||||
},
|
||||
|
||||
onPortChecked = function(response)
|
||||
{
|
||||
var is_open = response['arguments']['port-is-open'],
|
||||
text = 'Port is <b>' + (is_open ? 'Open' : 'Closed') + '</b>',
|
||||
e = data.elements.root.find('#port-label');
|
||||
setInnerHTML(e[0],text);
|
||||
},
|
||||
|
||||
setGroupEnabled = function(parent_key, enabled)
|
||||
{
|
||||
var i, key, keys, root;
|
||||
|
||||
if (parent_key in data.groups)
|
||||
{
|
||||
root = data.elements.root,
|
||||
keys = data.groups[parent_key];
|
||||
|
||||
for (i=0; key=keys[i]; ++i)
|
||||
root.find('#'+key).attr('disabled',!enabled);
|
||||
}
|
||||
},
|
||||
|
||||
onBlocklistUpdateClicked = function ()
|
||||
{
|
||||
data.remote.updateBlocklist();
|
||||
setBlocklistButtonEnabled(false);
|
||||
},
|
||||
setBlocklistButtonEnabled = function(b)
|
||||
{
|
||||
var e = data.elements.blocklist_button;
|
||||
e.attr('disabled',!b);
|
||||
e.val(b ? 'Update' : 'Updating...');
|
||||
},
|
||||
|
||||
getValue = function(e)
|
||||
{
|
||||
var str;
|
||||
|
||||
switch (e[0].type)
|
||||
{
|
||||
case 'checkbox':
|
||||
case 'radio':
|
||||
return e.prop('checked');
|
||||
|
||||
case 'text':
|
||||
case 'select-one':
|
||||
str = e.val();
|
||||
if( parseInt(str,10).toString() === str)
|
||||
return parseInt(str,10);
|
||||
if( parseFloat(str).toString() === str)
|
||||
return parseFloat(str);
|
||||
return str;
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
/* this callback is for controls whose changes can be applied
|
||||
immediately, like checkboxs, radioboxes, and selects */
|
||||
onControlChanged = function(ev)
|
||||
{
|
||||
var o = {};
|
||||
o[ev.target.id] = getValue($(ev.target));
|
||||
data.remote.savePrefs(o);
|
||||
},
|
||||
|
||||
/* these two callbacks are for controls whose changes can't be applied
|
||||
immediately -- like a text entry field -- because it takes many
|
||||
change events for the user to get to the desired result */
|
||||
onControlFocused = function(ev)
|
||||
{
|
||||
data.oldValue = getValue($(ev.target));
|
||||
},
|
||||
onControlBlurred = function(ev)
|
||||
{
|
||||
var newValue = getValue($(ev.target));
|
||||
if (newValue !== data.oldValue)
|
||||
{
|
||||
var o = {};
|
||||
o[ev.target.id] = newValue;
|
||||
data.remote.savePrefs(o);
|
||||
delete data.oldValue;
|
||||
}
|
||||
},
|
||||
|
||||
getDefaultMobileOptions = function()
|
||||
{
|
||||
return {
|
||||
width: $(window).width(),
|
||||
height: $(window).height(),
|
||||
position: [ 'left', 'top' ],
|
||||
resizable: false,
|
||||
draggable: false
|
||||
};
|
||||
},
|
||||
|
||||
initialize = function (remote)
|
||||
{
|
||||
var i, key, e, o;
|
||||
|
||||
data.remote = remote;
|
||||
|
||||
e = $('#prefs-dialog');
|
||||
data.elements.root = e;
|
||||
|
||||
initTimeDropDown(e.find('#alt-speed-time-begin')[0]);
|
||||
initTimeDropDown(e.find('#alt-speed-time-end')[0]);
|
||||
|
||||
o = isMobileDevice
|
||||
? getDefaultMobileOptions()
|
||||
: { width: 350, height: 400 };
|
||||
o.autoOpen = false;
|
||||
o.show = 'fade';
|
||||
o.hide = 'fade';
|
||||
o.close = onDialogClosed;
|
||||
e.tabbedDialog(o);
|
||||
|
||||
e = e.find('#blocklist-update-button');
|
||||
data.elements.blocklist_button = e;
|
||||
e.click(onBlocklistUpdateClicked);
|
||||
|
||||
// listen for user input
|
||||
for (i=0; key=data.keys[i]; ++i)
|
||||
{
|
||||
e = data.elements.root.find('#'+key);
|
||||
switch (e[0].type)
|
||||
{
|
||||
case 'checkbox':
|
||||
case 'radio':
|
||||
case 'select-one':
|
||||
e.change(onControlChanged);
|
||||
break;
|
||||
|
||||
case 'text':
|
||||
e.focus(onControlFocused);
|
||||
e.blur(onControlBlurred);
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// handle orientation changes...
|
||||
var supportsOrientationChange = 'onorientationchange' in window,
|
||||
orientationEvent = supportsOrientationChange ? 'orientationchange' : 'resize';
|
||||
$('body').bind(orientationEvent, function() {
|
||||
data.elements.root.dialog('option',getDefaultMobileOptions());
|
||||
});
|
||||
},
|
||||
|
||||
getValues = function()
|
||||
{
|
||||
var i, key, val, o={},
|
||||
keys = data.keys,
|
||||
root = data.elements.root;
|
||||
|
||||
for (i=0; key=keys[i]; ++i) {
|
||||
val = getValue(root.find('#'+key));
|
||||
if (val !== null)
|
||||
o[key] = val;
|
||||
}
|
||||
|
||||
return o;
|
||||
},
|
||||
|
||||
onDialogClosed = function()
|
||||
{
|
||||
window.scrollTo(0,1);
|
||||
$(data.dialog).trigger('closed', getValues());
|
||||
};
|
||||
|
||||
/****
|
||||
***** PUBLIC FUNCTIONS
|
||||
****/
|
||||
|
||||
// update the dialog's controls
|
||||
this.set = function (o)
|
||||
{
|
||||
var e, i, key, val, option,
|
||||
keys = data.keys,
|
||||
root = data.elements.root;
|
||||
|
||||
setBlocklistButtonEnabled(true);
|
||||
|
||||
for (i=0; key=keys[i]; ++i)
|
||||
{
|
||||
val = o[key];
|
||||
e = root.find('#'+key);
|
||||
|
||||
if (key === 'blocklist-size')
|
||||
{
|
||||
// special case -- regular text area
|
||||
e.text('' + val.toStringWithCommas());
|
||||
}
|
||||
else switch (e[0].type)
|
||||
{
|
||||
case 'checkbox':
|
||||
case 'radio':
|
||||
e.prop('checked', val);
|
||||
setGroupEnabled(key, val);
|
||||
break;
|
||||
case 'text':
|
||||
// don't change the text if the user's editing it.
|
||||
// it's very annoying when that happens!
|
||||
if (e[0] !== document.activeElement)
|
||||
e.val(val);
|
||||
break;
|
||||
case 'select-one':
|
||||
e.val(val);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.show = function ()
|
||||
{
|
||||
window.scrollTo(0,1);
|
||||
|
||||
setBlocklistButtonEnabled(true);
|
||||
data.remote.checkPort(onPortChecked,this);
|
||||
data.elements.root.dialog('open');
|
||||
};
|
||||
|
||||
this.shouldAddedTorrentsStart = function()
|
||||
{
|
||||
return data.elements.root.find('#start-added-torrents')[0].checked;
|
||||
};
|
||||
|
||||
data.dialog = this;
|
||||
initialize (remote);
|
||||
};
|
||||
@@ -1,46 +1,24 @@
|
||||
/*
|
||||
* Copyright © Dave Perrett, Malcolm Jarvis and Bruno Bierbaumer
|
||||
* This code is licensed under the GPL version 2.
|
||||
* For details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
/**
|
||||
* Copyright © Jordan Lee, Dave Perrett, Malcolm Jarvis and Bruno Bierbaumer
|
||||
*
|
||||
* Class TransmissionRemote
|
||||
* This file is licensed under the GPLv2.
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
var RPC = {
|
||||
_Root : '../rpc',
|
||||
_DaemonVersion : 'version',
|
||||
_Encryption : 'encryption',
|
||||
_EncryptionPreferred : 'preferred',
|
||||
_EncryptionRequired : 'required',
|
||||
_UpSpeedLimit : 'speed-limit-up',
|
||||
_DownSpeedLimit : 'speed-limit-down',
|
||||
_DownloadDir : 'download-dir',
|
||||
_PeerPort : 'peer-port',
|
||||
_UpSpeedLimited : 'speed-limit-up-enabled',
|
||||
_DownSpeedLimited : 'speed-limit-down-enabled',
|
||||
_TurtleState : 'alt-speed-enabled',
|
||||
_TurtleUpSpeedLimit : 'alt-speed-up',
|
||||
_TurtleDownSpeedLimit : 'alt-speed-down',
|
||||
_TurtleTimeEnabled : 'alt-speed-time-enabled',
|
||||
_TurtleTimeBegin : 'alt-speed-time-begin',
|
||||
_TurtleTimeEnd : 'alt-speed-time-end',
|
||||
_TurtleTimeDay : 'alt-speed-time-day',
|
||||
_PeerLimitGlobal : 'peer-limit-global',
|
||||
_PeerLimitPerTorrent : 'peer-limit-per-torrent',
|
||||
_PexEnabled : 'pex-enabled',
|
||||
_DhtEnabled : 'dht-enabled',
|
||||
_LpdEnabled : 'lpd-enabled',
|
||||
_BlocklistEnabled : 'blocklist-enabled',
|
||||
_BlocklistURL : 'blocklist-url',
|
||||
_BlocklistSize : 'blocklist-size',
|
||||
_UtpEnabled : 'utp-enabled',
|
||||
_PeerPortRandom : 'peer-port-random-on-start',
|
||||
_PortForwardingEnabled : 'port-forwarding-enabled',
|
||||
_StartAddedTorrent : 'start-added-torrents',
|
||||
_QueueMoveTop : 'queue-move-top',
|
||||
_QueueMoveBottom : 'queue-move-bottom',
|
||||
_QueueMoveUp : 'queue-move-up',
|
||||
_QueueMoveDown : 'queue-move-down'
|
||||
_QueueMoveDown : 'queue-move-down',
|
||||
_Root : '../rpc',
|
||||
_TurtleDownSpeedLimit : 'alt-speed-down',
|
||||
_TurtleState : 'alt-speed-enabled',
|
||||
_TurtleUpSpeedLimit : 'alt-speed-up',
|
||||
_UpSpeedLimit : 'speed-limit-up',
|
||||
_UpSpeedLimited : 'speed-limit-up-enabled'
|
||||
};
|
||||
|
||||
function TransmissionRemote(controller)
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
/*
|
||||
* Copyright © Jordan Lee
|
||||
* This code is licensed under the GPL version 2.
|
||||
* <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
|
||||
/**
|
||||
* Copyright © Mnemosyne LLC
|
||||
*
|
||||
* This file is licensed under the GPLv2.
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
/****
|
||||
*****
|
||||
*****
|
||||
****/
|
||||
|
||||
function TorrentRendererHelper()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
/*
|
||||
* Copyright © Jordan Lee, Dave Perrett and Malcolm Jarvis
|
||||
* This code is licensed under the GPL version 2.
|
||||
* For details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
/**
|
||||
* Copyright © Mnemosyne LLC
|
||||
*
|
||||
* Class Torrent
|
||||
* This file is licensed under the GPLv2.
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
|
||||
function Torrent(data)
|
||||
{
|
||||
this.initialize(data);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -50,20 +50,12 @@ a {
|
||||
width: 100%;
|
||||
height: 75px;
|
||||
margin: 0;
|
||||
border: 1px outset #AEBBCB;
|
||||
border: 1px outset #AEBBCB;
|
||||
overflow: hidden;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
#toolbar h1 {
|
||||
height: inherit;
|
||||
width: 205px;
|
||||
text-indent: -9000px !important;
|
||||
padding: 0;
|
||||
margin: 0 0 0 5px;
|
||||
}
|
||||
|
||||
#toolbar ul {
|
||||
height: 50px;
|
||||
margin: 0;
|
||||
@@ -214,7 +206,6 @@ div#filter-popup #filter-by-state .row .filter-name {
|
||||
left: 0px;
|
||||
}
|
||||
#filter-popup .row {
|
||||
font-size: 1.2em;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
margin: 8px 2px;
|
||||
@@ -484,6 +475,49 @@ li.torrent a:active div.torrent_resume {
|
||||
background-position: center bottom;
|
||||
}
|
||||
|
||||
/***
|
||||
****
|
||||
**** PREFERENCES
|
||||
****
|
||||
***/
|
||||
|
||||
#prefs-dialog.ui-tabs .ui-tabs-panel {
|
||||
padding: 0px;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.prefs-section {
|
||||
margin: 10px;
|
||||
text-align: left;
|
||||
}
|
||||
.prefs-section > * {
|
||||
padding-top: 8px;
|
||||
padding-left: 8px;
|
||||
}
|
||||
.prefs-section .title {
|
||||
font-weight: bold;
|
||||
padding-left: 0px;
|
||||
}
|
||||
.prefs-section .row .key {
|
||||
float: left;
|
||||
padding-top: 3px;
|
||||
}
|
||||
.prefs-section .row .key > * {
|
||||
margin-left: 0px;
|
||||
}
|
||||
.prefs-section .row .value {
|
||||
margin-left: 150px;
|
||||
}
|
||||
.prefs-section .row .value > * {
|
||||
width: 100%;
|
||||
}
|
||||
.prefs-section .checkbox-row > input {
|
||||
margin: 0px;
|
||||
}
|
||||
.prefs-section .checkbox-row > label {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
/*--------------------------------------
|
||||
*
|
||||
* T O R R E N T I N S P E C T O R
|
||||
@@ -866,11 +900,12 @@ li.inspector_torrent_file_list_entry.complete div.file_priority_control {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/*--------------------------------------
|
||||
*
|
||||
* T O R R E N T F O O T E R
|
||||
*
|
||||
*--------------------------------------*/
|
||||
|
||||
/****
|
||||
*****
|
||||
***** MAIN WINDOW FOOTER
|
||||
*****
|
||||
****/
|
||||
|
||||
div.torrent_footer {
|
||||
height: 22px;
|
||||
@@ -900,48 +935,51 @@ div.torrent_footer ul#settings_menu li#button {
|
||||
padding: 0;
|
||||
position: relative;
|
||||
}
|
||||
div.torrent_footer ul#settings_menu li#button:active,
|
||||
div.torrent_footer ul#settings_menu li#button:hover {
|
||||
div.torrent_footer ul#settings_menu li#button:hover,
|
||||
div.torrent_footer ul#settings_menu li#button:active {
|
||||
background-position: -32px top;
|
||||
}
|
||||
|
||||
#turtle-button {
|
||||
background: transparent url('../images/graphics/chrome.png') left -18px no-repeat;
|
||||
}
|
||||
#turtle-button:active,
|
||||
#turtle-button:hover {
|
||||
#turtle-button:hover,
|
||||
#turtle-button:active {
|
||||
background-position: -32px -18px;
|
||||
}
|
||||
#turtle-button.enabled {
|
||||
background-position: left -36px;
|
||||
}
|
||||
#turtle-button.enabled:active,
|
||||
#turtle-button.enabled:hover {
|
||||
#turtle-button.enabled:hover,
|
||||
#turtle-button.enabled:active {
|
||||
background-position: -32px -36px;
|
||||
}
|
||||
|
||||
#compact-button {
|
||||
background: transparent url('../images/graphics/chrome.png') left -54px no-repeat;
|
||||
background: transparent url('../images/graphics/chrome.png') left -54px no-repeat;
|
||||
}
|
||||
#compact-button:active,
|
||||
#compact-button:hover {
|
||||
#compact-button:hover,
|
||||
#compact-button:active {
|
||||
background-position: -32px -54px;
|
||||
}
|
||||
#compact-button.enabled {
|
||||
background-position: left -72px;
|
||||
}
|
||||
#compact-button.enabled:active,
|
||||
#compact-button.enabled:hover {
|
||||
#compact-button.enabled:hover,
|
||||
#compact-button.enabled:active {
|
||||
background-position: -32px -72px;
|
||||
}
|
||||
|
||||
#prefs-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/*--------------------------------------
|
||||
*
|
||||
* D I A L O G S
|
||||
*
|
||||
*--------------------------------------*/
|
||||
/****
|
||||
*****
|
||||
***** DIALOGS
|
||||
*****
|
||||
****/
|
||||
|
||||
div.dialog_container {
|
||||
position: absolute;
|
||||
@@ -1073,114 +1111,6 @@ iframe#torrent_upload_frame {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div#prefs_container label {
|
||||
display: block;
|
||||
margin: 0 0 0 2px;
|
||||
}
|
||||
|
||||
div#prefs_container label.category {
|
||||
clear: both;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
div#prefs_container label.item {
|
||||
font-size: 11px !important;
|
||||
margin: 0 5px 0 20px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
div#prefs_container label.suffix {
|
||||
margin: 0 5px 0 10px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
div#prefs_container div.formdiv.checkbox label.item {
|
||||
margin: 0 5px 0 2px;
|
||||
}
|
||||
|
||||
div#prefs_container div.limit_total label.item {
|
||||
width: 102px;
|
||||
}
|
||||
|
||||
div#prefs_container div.limit_turtle label.item {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
div#prefs_container div.preference input[type=checkbox] {
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
margin-top: 9px;
|
||||
}
|
||||
@-moz-document url-prefix() {
|
||||
div#prefs_container div.preference input[type=checkbox] {
|
||||
margin-top: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
div#prefs_container div.preference input[type=text] {
|
||||
width: 50px;
|
||||
padding: 0px !important;
|
||||
height: 18px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
div#prefs_container div.preference input {
|
||||
float: left;
|
||||
}
|
||||
|
||||
div#prefs_container div.block_url input {
|
||||
width: 256px !important;
|
||||
}
|
||||
|
||||
div#prefs_container div.download_location input {
|
||||
width: 256px !important;
|
||||
}
|
||||
div#prefs_container div.download_location .checkbox input {
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
div#prefs_container div.formdiv {
|
||||
clear: both;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
div#prefs_container a {
|
||||
clear: left;
|
||||
margin: 10px 5px 10px 7px;
|
||||
}
|
||||
|
||||
div#prefs_container h2.dialog_heading {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#prefs_container div#prefs_tabs {
|
||||
clear: both;
|
||||
}
|
||||
div#prefs_container div#prefs_tabs ul {
|
||||
margin: 0;
|
||||
padding: 0 0 0 10px;
|
||||
}
|
||||
.prefs-tab {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
float: left;
|
||||
font-size: 1.2em;
|
||||
color: #323232;
|
||||
text-align: center;
|
||||
padding: 2px 20px;
|
||||
border: 1px solid #787878;
|
||||
margin-bottom: -1px;
|
||||
background: #C0C8D6 url('../images/graphics/filter_bar.png') bottom repeat-x;
|
||||
}
|
||||
.prefs-tab.selected {
|
||||
background: none;
|
||||
border-bottom: 1px solid #efefef;
|
||||
}
|
||||
.prefs-page {
|
||||
border-top: 1px solid #787878;
|
||||
clear: both;
|
||||
padding: 7px;
|
||||
}
|
||||
div#stats_container h2.dialog_heading {
|
||||
display: none;
|
||||
}
|
||||
@@ -1235,33 +1165,11 @@ div#stats_container a {
|
||||
margin: 10px 5px 10px 7px;
|
||||
}
|
||||
|
||||
div#prefs_container div#pref_error {
|
||||
display: none;
|
||||
width: 395px;
|
||||
margin: 6px auto 6px auto;
|
||||
padding: 3px 0 3px 0;
|
||||
border: 2px solid #cc3333;
|
||||
color: #cc3333;
|
||||
font-size: 1.2em;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
background-color: #FFEFEF;
|
||||
}
|
||||
|
||||
#transmission_version{
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
left: 10px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
/*--------------------------------------
|
||||
*
|
||||
* T R A N S M E N U
|
||||
*
|
||||
*--------------------------------------*/
|
||||
/****
|
||||
*****
|
||||
***** POPUP MENU
|
||||
*****
|
||||
****/
|
||||
|
||||
.trans_menu {
|
||||
margin: 0;
|
||||
@@ -1297,9 +1205,8 @@ div#prefs_container div#pref_error {
|
||||
|
||||
.trans_menu > * li {
|
||||
margin: 0;
|
||||
padding: 0 10px 2px 20px !important;
|
||||
padding: 3px 10px 3px 20px !important;
|
||||
color: #000;
|
||||
font-size: 14px;
|
||||
cursor: default;
|
||||
text-indent: auto !important;
|
||||
width: inherit;
|
||||
@@ -1322,10 +1229,6 @@ div#prefs_container div#pref_error {
|
||||
|
||||
.trans_menu li span.arrow {
|
||||
float: right;
|
||||
margin: 3px 0 0;
|
||||
font-size: 11px;
|
||||
color: #333;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.trans_menu li.hover li.hover span.arrow, .trans_menu li.hover li.hover li.hover span.selected {
|
||||
@@ -1334,7 +1237,6 @@ div#prefs_container div#pref_error {
|
||||
|
||||
.trans_menu span.selected {
|
||||
margin: 0 3px 0 -15px;
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
float: left;
|
||||
}
|
||||
|
||||
@@ -12,8 +12,7 @@ html {
|
||||
|
||||
body {
|
||||
font: 11px Helvetica, Arial, sans-serif;
|
||||
color: #323232 !important;
|
||||
background: #fff;
|
||||
background: #FFF;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@@ -65,25 +64,24 @@ body.open_showing #torrent_filter_bar, body.open_showing #torrent_container {
|
||||
margin: 0;
|
||||
background: #6685a1 url('../images/graphics/iphone_chrome.png') top left repeat-x;
|
||||
border: 1px outset #AEBBCB;
|
||||
position: relative;
|
||||
text-shadow: 0 -1px 0 #446;
|
||||
}
|
||||
|
||||
#toolbar ul {
|
||||
margin: 0;
|
||||
padding: 0 3px;
|
||||
text-align: left;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#toolbar ul li {
|
||||
list-style-type: none;
|
||||
list-style-image: none;
|
||||
padding: 0;
|
||||
margin: 4px 0 0 0;
|
||||
padding: 0 2px;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#toolbar li#remove, li#open {
|
||||
#toolbar li#remove, li#open, li#resume_selected, li#pause_selected {
|
||||
float: left;
|
||||
}
|
||||
#toolbar li#resume_all, li#pause_all {
|
||||
@@ -103,11 +101,7 @@ body.open_showing #torrent_filter_bar, body.open_showing #torrent_container {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#toolbar ul li.disabled {
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
#toolbar ul li div div.toolbar_image {
|
||||
#toolbar ul li div.toolbar_image {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
margin: 0 auto 2px;
|
||||
@@ -132,6 +126,12 @@ li#filter div:active div.toolbar_image { background-position: right -19
|
||||
li#inspector div div.toolbar_image { background-position: left -224px; }
|
||||
li#inspector div:active div.toolbar_image { background-position: right -224px; }
|
||||
|
||||
#toolbar ul li.disabled > div {
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
opacity: 0.25;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
#toolbar ul li#filter,
|
||||
#toolbar ul li#inspector,
|
||||
#toolbar ul li.divider {
|
||||
@@ -207,12 +207,13 @@ div#filter-popup #filter-by-state .row .filter-name {
|
||||
left: 0px;
|
||||
}
|
||||
#filter-popup .row {
|
||||
font-size: 1.2em;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
margin: 15px 2px;
|
||||
position: relative;
|
||||
height: 18px;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
div#filter-popup .row .filter-img {
|
||||
border: none;
|
||||
@@ -256,7 +257,6 @@ div#filter-popup .row .filter-img {
|
||||
***/
|
||||
|
||||
ul.torrent_list {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
@@ -297,12 +297,12 @@ ul.torrent_list li.torrent.even {
|
||||
}
|
||||
|
||||
ul.torrent_list li.torrent.selected {
|
||||
background-color: #3875D7;
|
||||
background-color: #3879D7;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
ul.torrent_list li.torrent div.torrent_name {
|
||||
font-size: 13px;
|
||||
font-size: 1.3em;
|
||||
font-weight: bold;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
@@ -325,10 +325,29 @@ ul.torrent_list li.torrent.selected div.torrent_name {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
div.torrent_peer_details {
|
||||
font-size: 10px;
|
||||
ul.torrent_list div.torrent_progress_details,
|
||||
ul.torrent_list div.torrent_peer_details {
|
||||
clear: left;
|
||||
font-size: 1em;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
ul.torrent_list li.torrent div.torrent_progress_details.error {
|
||||
color: #FF0000;
|
||||
}
|
||||
ul.torrent_list li.torrent.selected div.torrent_progress_details.error {
|
||||
color: #FFF;
|
||||
}
|
||||
ul.torrent_list li.torrent div.torrent_peer_details.error {
|
||||
color: #FF0000;
|
||||
}
|
||||
ul.torrent_list li.torrent.selected div.torrent_peer_details.error {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Progressbar
|
||||
*
|
||||
@@ -402,24 +421,24 @@ ul.torrent_list div.torrent_progress_bar.complete.leeching {
|
||||
border-color: #3D9DEA;
|
||||
}
|
||||
ul.torrent_list div.torrent_progress_bar.complete.leeching.queued {
|
||||
background-position: left -70px;
|
||||
border-color: #889CA5;
|
||||
background-position: left -70px;
|
||||
border-color: #889CA5;
|
||||
}
|
||||
ul.torrent_list div.torrent_progress_bar.incomplete.leeching {
|
||||
background-position: left -20px;
|
||||
border-color: #CFCFCF;
|
||||
}
|
||||
ul.torrent_list div.torrent_progress_bar.incomplete.leeching.queued {
|
||||
background-position: left -80px;
|
||||
border-color: #C4C4C4;
|
||||
background-position: left -80px;
|
||||
border-color: #C4C4C4;
|
||||
}
|
||||
ul.torrent_list div.torrent_progress_bar.complete.seeding {
|
||||
background-position: left -40px;
|
||||
border-color: #269E30;
|
||||
}
|
||||
ul.torrent_list div.torrent_progress_bar.complete.seeding.queued {
|
||||
background-position: left -60px;
|
||||
border-color: #8A998D;
|
||||
background-position: left -60px;
|
||||
border-color: #8A998D;
|
||||
}
|
||||
ul.torrent_list div.torrent_progress_bar.incomplete.seeding {
|
||||
background-position: left -10px;
|
||||
@@ -474,17 +493,6 @@ div.dialog_container a {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.dialog_container a#dialog_cancel_button, div.dialog_container a#prefs_cancel_button {
|
||||
left: 55px;
|
||||
}
|
||||
|
||||
div.dialog_container a#dialog_confirm_button, div.dialog_container a#prefs_save_button {
|
||||
right: 55px;
|
||||
color: black;
|
||||
text-shadow: none;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
#dialog_container div.dialog_window img {
|
||||
margin: 5px auto 12px;
|
||||
}
|
||||
@@ -514,93 +522,47 @@ div.dialog_container a#dialog_confirm_button, div.dialog_container a#prefs_save_
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/*--------------------------------------
|
||||
*
|
||||
* P R E F S C O N T A I N E R
|
||||
*
|
||||
*--------------------------------------*/
|
||||
/***
|
||||
****
|
||||
**** PREFERENCES
|
||||
****
|
||||
***/
|
||||
|
||||
div#prefs_container {
|
||||
#prefs-dialog.ui-tabs .ui-tabs-panel {
|
||||
padding: 0px;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.prefs-section {
|
||||
margin: 10px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div#prefs_container label.item {
|
||||
margin: 0 5px 0 15px;
|
||||
float: left;
|
||||
.prefs-section > * {
|
||||
padding-top: 8px;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
form#prefs_form {
|
||||
height: 365px;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
div#prefs_container label.suffix {
|
||||
margin: 0 5px 0 10px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
div#prefs_container input {
|
||||
float: left;
|
||||
}
|
||||
|
||||
div#prefs_container div.preference input[type=checkbox] {
|
||||
margin: 3px 7px 0 16px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
clear: left;
|
||||
}
|
||||
|
||||
div#prefs_container label {
|
||||
line-height: 25px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
div#prefs_container div.download_location label.item,
|
||||
div#prefs_container div.port label.item,
|
||||
div#prefs_container div.web_gui label.item {
|
||||
width: 127px;
|
||||
clear: left;
|
||||
}
|
||||
|
||||
div#prefs_container div.auto_start label.item,
|
||||
div#prefs_container div.encryption label.item,
|
||||
div#prefs_container div.limit_total label.item {
|
||||
margin: 0 5px 0 0;
|
||||
}
|
||||
|
||||
div#prefs_container div.limit_total label.item {
|
||||
width: 101px;
|
||||
}
|
||||
|
||||
div#prefs_container div.preference input[type=text] {
|
||||
padding: 2px 2px 1px;
|
||||
text-shadow: none !important;
|
||||
font-size: 13px;
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
div#prefs_container div.download_location input {
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
left: 160px;
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
div#prefs_container label.category {
|
||||
clear: both;
|
||||
.prefs-section .title {
|
||||
font-weight: bold;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
div#prefs_container a {
|
||||
margin-top: 42px !important;
|
||||
.prefs-section .row .key {
|
||||
float: left;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
.landscape div.dialog_container a#prefs_cancel_button {
|
||||
left: 135px;
|
||||
.prefs-section .row .key > * {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.landscape div.dialog_container a#prefs_save_button {
|
||||
right: 135px;
|
||||
.prefs-section .row .value {
|
||||
margin-left: 150px;
|
||||
}
|
||||
.prefs-section .row .value > * {
|
||||
width: 100%;
|
||||
}
|
||||
.prefs-section .checkbox-row > input {
|
||||
margin: 0px;
|
||||
}
|
||||
.prefs-section .checkbox-row > label {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
/*--------------------------------------
|
||||
@@ -630,11 +592,10 @@ div#torrent_inspector {
|
||||
div#torrent_inspector #torrent_inspector_name {
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
div#torrent_inspector #torrent_inspector_size {
|
||||
font-size: 1.2em;
|
||||
margin: 3;
|
||||
margin: 3px;
|
||||
display: block;
|
||||
padding-top: 2px;
|
||||
}
|
||||
@@ -790,9 +751,6 @@ div.inspector_torrent_file_list_entry_name {
|
||||
li.inspector_torrent_file_list_entry.skip>.inspector_torrent_file_list_entry_name {
|
||||
color: #666;
|
||||
}
|
||||
li.inspector_torrent_file_list_entry.even {
|
||||
background-color: #EEEEEE;
|
||||
}
|
||||
div.inspector_torrent_file_list_entry_progress {
|
||||
font-size: 1em;
|
||||
color: #666;
|
||||
@@ -836,12 +794,21 @@ div.file_priority_control {
|
||||
cursor: pointer;
|
||||
}
|
||||
div.file_priority_control.normal {
|
||||
background-position: left top;
|
||||
}
|
||||
div.file_priority_control.normal:hover {
|
||||
background-position: right top;
|
||||
}
|
||||
div.file_priority_control.high {
|
||||
background-position: left -19px;
|
||||
}
|
||||
div.file_priority_control.high:hover {
|
||||
background-position: right -19px;
|
||||
}
|
||||
div.file_priority_control.low {
|
||||
background-position: left -38px;
|
||||
}
|
||||
div.file_priority_control.low:hover {
|
||||
background-position: right -38px;
|
||||
}
|
||||
ul.single_file li.inspector_torrent_file_list_entry>.file_priority_control, li.inspector_torrent_file_list_entry.complete div.file_priority_control {
|
||||
@@ -850,52 +817,92 @@ ul.single_file li.inspector_torrent_file_list_entry>.file_priority_control, li.i
|
||||
}
|
||||
|
||||
|
||||
/****
|
||||
*****
|
||||
***** MAIN WINDOW FOOTER
|
||||
*****
|
||||
****/
|
||||
|
||||
div.torrent_footer {
|
||||
height: 20px;
|
||||
padding: 1px;
|
||||
border-top: 1px solid #555;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
z-index: 3;
|
||||
background-color: #6b83a1;
|
||||
}
|
||||
|
||||
div.torrent_footer > * {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-right: 30px;
|
||||
}
|
||||
div.torrent_footer > * {
|
||||
height: 18px;
|
||||
width: 32px;
|
||||
cursor: pointer;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
div.torrent_footer ul#settings_menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#turtle-button {
|
||||
background: transparent url('../images/graphics/chrome.png') left -18px no-repeat;
|
||||
}
|
||||
#turtle-button:active {
|
||||
background-position: -32px -18px;
|
||||
}
|
||||
#turtle-button.enabled {
|
||||
background-position: left -36px;
|
||||
}
|
||||
#turtle-button.enabled:active {
|
||||
background-position: -32px -36px;
|
||||
}
|
||||
|
||||
#compact-button {
|
||||
background: transparent url('../images/graphics/chrome.png') left -54px no-repeat;
|
||||
}
|
||||
#compact-button:active {
|
||||
background-position: -32px -54px;
|
||||
}
|
||||
#compact-button.enabled {
|
||||
background-position: left -72px;
|
||||
}
|
||||
#compact-button.enabled:active {
|
||||
background-position: -32px -72px;
|
||||
}
|
||||
|
||||
#prefs-button {
|
||||
background: transparent url('../images/graphics/chrome.png') left -90px no-repeat;
|
||||
}
|
||||
#prefs-button:active {
|
||||
background-position: -32px -90px;
|
||||
}
|
||||
|
||||
/****
|
||||
*****
|
||||
***** POPUP MENU
|
||||
*****
|
||||
****/
|
||||
|
||||
.trans_menu,
|
||||
.trans_menu * {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/*--------------------------------------
|
||||
*
|
||||
* T O R R E N T F O O T E R
|
||||
* Hide remnants of stuff we don't need, like
|
||||
* transmenu and contextmenu.
|
||||
*
|
||||
*--------------------------------------*/
|
||||
|
||||
div.torrent_footer {
|
||||
margin: 0px;
|
||||
height: 20px;
|
||||
border-top: 1px solid #777;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
z-index: 2;
|
||||
text-align: center;
|
||||
color: #222;
|
||||
text-shadow: 0 1px 1px #fff;
|
||||
overflow: hidden;
|
||||
|
||||
background-color: #B9B9B9; /* fallback color if gradients are not supported */
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#C9C9C9), to(#A7A7A7));
|
||||
background-image: -webkit-linear-gradient(top, #C9C9C9, #A7A7A7);
|
||||
background-image: -moz-linear-gradient(top, #C9C9C9, #A7A7A7);
|
||||
background-image: -ms-linear-gradient(top, #C9C9C9, #A7A7A7);
|
||||
background-image: -o-linear-gradient(top, #C9C9C9, #A7A7A7);
|
||||
background-image: linear-gradient(top, #C9C9C9, #A7A7A7); /* standard, but currently unimplemented */
|
||||
}
|
||||
|
||||
div.torrent_footer div#disk_space_container, div.torrent_footer a#preferences_link {
|
||||
float: right;
|
||||
font-size: 12px;
|
||||
vertical-align: middle;
|
||||
margin: 1px 6px 0 0;
|
||||
padding: 2px 0 2px;
|
||||
max-width: 55%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
div.torrent_footer a#preferences_link {
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
margin: 1px 0 0 6px;
|
||||
}
|
||||
|
||||
body.prefs_showing div.torrent_footer a#preferences_link, body.dialog_showing div.torrent_footer a#preferences_link {
|
||||
div#torrent_context_menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -910,51 +917,3 @@ iframe#torrent_upload_frame {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.torrent_footer #compact-button,
|
||||
div.torrent_footer #turtle-button {
|
||||
position: absolute;
|
||||
height: 18px;
|
||||
width: 32px !important;
|
||||
top: 0px;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
#compact-button {
|
||||
right: 0px;
|
||||
background: transparent url('../images/graphics/chrome.png') left -54px no-repeat;
|
||||
}
|
||||
#compact-button:active {
|
||||
background-position: -32px -54px;
|
||||
}
|
||||
#compact-button.enabled {
|
||||
background-position: left -72px;
|
||||
}
|
||||
#compact-button.enabled:active {
|
||||
background-position: -32px -72px;
|
||||
}
|
||||
|
||||
#turtle-button {
|
||||
left: 0px;
|
||||
background: transparent url('../images/graphics/chrome.png') left -18px no-repeat;
|
||||
}
|
||||
#turtle-button:active {
|
||||
background-position: -32px -18px;
|
||||
}
|
||||
#turtle-button.enabled {
|
||||
background-position: left -36px;
|
||||
}
|
||||
#turtle-button.enabled:active {
|
||||
background-position: -32px -36px;
|
||||
}
|
||||
|
||||
/*--------------------------------------
|
||||
*
|
||||
* Hide remnants of stuff we don't need, like
|
||||
* transmenu and contextmenu.
|
||||
*
|
||||
*--------------------------------------*/
|
||||
|
||||
.torrent_footer div.main_container, .torrent_footer ul#settings_menu, div.torrent_footer ul#settings_menu li#button, div#torrent_context_menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user