@ -1,18 +0,0 @@ |
|||||
qBittorrent Web UI |
|
||||
--- |
|
||||
|
|
||||
### Browser compatibility |
|
||||
|
|
||||
| Browser | Lower bound | |
|
||||
| ----------------- | -------------------------------------------------- | |
|
||||
| Chrome | [The release from 1 year ago][Chrome-history-link] | |
|
||||
| Firefox | [Oldest active ESR release][Firefox-ESR-link] | |
|
||||
| Microsoft Edge | [The release from 1 year ago][MSEdge-history-link] | |
|
||||
| Safari | [The release from 1 year ago][Safari-history-link] | |
|
||||
|
|
||||
The upper bound will always be the latest stable release. |
|
||||
|
|
||||
[Chrome-history-link]: https://en.wikipedia.org/wiki/Google_Chrome_version_history |
|
||||
[Firefox-ESR-link]: https://en.wikipedia.org/wiki/Firefox_version_history#Current_and_future_releases |
|
||||
[MSEdge-history-link]: https://en.wikipedia.org/wiki/Microsoft_Edge#Release_history |
|
||||
[Safari-history-link]: https://en.wikipedia.org/wiki/Safari_version_history |
|
@ -1,69 +0,0 @@ |
|||||
<!DOCTYPE html> |
|
||||
<html lang="${LANG}"> |
|
||||
<head> |
|
||||
<meta charset="UTF-8" /> |
|
||||
<title>QBT_TR(Add Peers)QBT_TR[CONTEXT=PeersAdditionDialog]</title> |
|
||||
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" /> |
|
||||
<script src="scripts/lib/mootools-1.2-core-yc.js"></script> |
|
||||
<script src="scripts/lib/mootools-1.2-more.js"></script> |
|
||||
<script> |
|
||||
'use strict'; |
|
||||
|
|
||||
new Keyboard({ |
|
||||
defaultEventType: 'keydown', |
|
||||
events: { |
|
||||
'Escape': function(event) { |
|
||||
window.parent.closeWindows(); |
|
||||
event.preventDefault(); |
|
||||
}, |
|
||||
'Esc': function(event) { |
|
||||
window.parent.closeWindows(); |
|
||||
event.preventDefault(); |
|
||||
} |
|
||||
} |
|
||||
}).activate(); |
|
||||
|
|
||||
window.addEvent('domready', function() { |
|
||||
const hash = new URI().getData('hash'); |
|
||||
if (!hash) |
|
||||
return false; |
|
||||
|
|
||||
$('peers').focus(); |
|
||||
|
|
||||
$('addPeersOk').addEvent('click', function(e) { |
|
||||
new Event(e).stop(); |
|
||||
|
|
||||
const peers = $('peers').get('value').trim().split(/[\r\n]+/); |
|
||||
if (peers.length === 0) |
|
||||
return |
|
||||
|
|
||||
new Request({ |
|
||||
url: 'api/v2/torrents/addPeers', |
|
||||
method: 'post', |
|
||||
data: { |
|
||||
hashes: hash, |
|
||||
peers: peers.join('|') |
|
||||
}, |
|
||||
onFailure: function() { |
|
||||
alert("QBT_TR(Unable to add peers. Please ensure you are adhering to the IP:port format.)QBT_TR[CONTEXT=HttpServer]"); |
|
||||
}, |
|
||||
onSuccess: function() { |
|
||||
window.parent.closeWindows(); |
|
||||
} |
|
||||
}).send(); |
|
||||
}); |
|
||||
}); |
|
||||
</script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div style="padding: 10px 10px 0px 10px;"> |
|
||||
<p>QBT_TR(List of peers to add (one IP per line):)QBT_TR[CONTEXT=PeersAdditionDialog]</p> |
|
||||
<textarea id="peers" rows="10" style="width: 100%;" placeholder="QBT_TR(Format: IPv4:port / [IPv6]:port)QBT_TR[CONTEXT=PeersAdditionDialog]"></textarea> |
|
||||
<div style="margin-top: 10px; text-align: center;"> |
|
||||
<button onclick="parent.closeWindows();">QBT_TR(Cancel)QBT_TR[CONTEXT=PeersAdditionDialog]</button> |
|
||||
<button id="addPeersOk">QBT_TR(Ok)QBT_TR[CONTEXT=PeersAdditionDialog]</button> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,58 +0,0 @@ |
|||||
<!DOCTYPE html> |
|
||||
<html lang="${LANG}"> |
|
||||
|
|
||||
<head> |
|
||||
<meta charset="UTF-8" /> |
|
||||
<title>QBT_TR(Trackers addition dialog)QBT_TR[CONTEXT=TrackersAdditionDialog]</title> |
|
||||
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" /> |
|
||||
<script src="scripts/lib/mootools-1.2-core-yc.js"></script> |
|
||||
<script src="scripts/lib/mootools-1.2-more.js"></script> |
|
||||
<script> |
|
||||
'use strict'; |
|
||||
|
|
||||
window.addEvent('domready', function() { |
|
||||
new Keyboard({ |
|
||||
defaultEventType: 'keydown', |
|
||||
events: { |
|
||||
'Escape': function(event) { |
|
||||
window.parent.closeWindows(); |
|
||||
event.preventDefault(); |
|
||||
}, |
|
||||
'Esc': function(event) { |
|
||||
window.parent.closeWindows(); |
|
||||
event.preventDefault(); |
|
||||
} |
|
||||
} |
|
||||
}).activate(); |
|
||||
|
|
||||
$('trackersUrls').focus(); |
|
||||
$('addTrackersButton').addEvent('click', function(e) { |
|
||||
new Event(e).stop(); |
|
||||
const hash = new URI().getData('hash'); |
|
||||
new Request({ |
|
||||
url: 'api/v2/torrents/addTrackers', |
|
||||
method: 'post', |
|
||||
data: { |
|
||||
hash: hash, |
|
||||
urls: $('trackersUrls').value |
|
||||
}, |
|
||||
onComplete: function() { |
|
||||
window.parent.closeWindows(); |
|
||||
} |
|
||||
}).send(); |
|
||||
}); |
|
||||
}); |
|
||||
</script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div style="text-align: center;"> |
|
||||
<br/> |
|
||||
<h2 class="vcenter">QBT_TR(List of trackers to add (one per line):)QBT_TR[CONTEXT=TrackersAdditionDialog]</h2> |
|
||||
<textarea name="list" id="trackersUrls" rows="10" cols="1"></textarea> |
|
||||
<br/> |
|
||||
<input type="button" value="QBT_TR(Add)QBT_TR[CONTEXT=HttpServer]" id="addTrackersButton" /> |
|
||||
</div> |
|
||||
</body> |
|
||||
|
|
||||
</html> |
|
@ -1,54 +0,0 @@ |
|||||
<!DOCTYPE html> |
|
||||
<html lang="${LANG}"> |
|
||||
|
|
||||
<head> |
|
||||
<meta charset="UTF-8" /> |
|
||||
<title>QBT_TR(Deletion confirmation - qBittorrent)QBT_TR[CONTEXT=confirmDeletionDlg]</title> |
|
||||
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" /> |
|
||||
<script src="scripts/lib/mootools-1.2-core-yc.js"></script> |
|
||||
<script src="scripts/lib/mootools-1.2-more.js"></script> |
|
||||
<script> |
|
||||
'use strict'; |
|
||||
|
|
||||
window.addEvent('domready', function() { |
|
||||
const isDeletingFiles = (new URI().getData('deleteFiles') === "true"); |
|
||||
$('deleteFromDiskCB').checked = isDeletingFiles; |
|
||||
|
|
||||
const hashes = new URI().getData('hashes').split('|'); |
|
||||
$('cancelBtn').focus(); |
|
||||
$('cancelBtn').addEvent('click', function(e) { |
|
||||
new Event(e).stop(); |
|
||||
window.parent.closeWindows(); |
|
||||
}); |
|
||||
$('confirmBtn').addEvent('click', function(e) { |
|
||||
parent.torrentsTable.deselectAll(); |
|
||||
new Event(e).stop(); |
|
||||
const cmd = 'api/v2/torrents/delete'; |
|
||||
const deleteFiles = $('deleteFromDiskCB').get('checked'); |
|
||||
new Request({ |
|
||||
url: cmd, |
|
||||
method: 'post', |
|
||||
data: { |
|
||||
'hashes': hashes.join('|'), |
|
||||
'deleteFiles': deleteFiles |
|
||||
}, |
|
||||
onComplete: function() { |
|
||||
window.parent.closeWindows(); |
|
||||
} |
|
||||
}).send(); |
|
||||
}); |
|
||||
}); |
|
||||
</script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<br/> |
|
||||
|
|
||||
<p> QBT_TR(Are you sure you want to delete the selected torrents from the transfer list?)QBT_TR[CONTEXT=HttpServer]</p> |
|
||||
<input type="checkbox" id="deleteFromDiskCB" /> <label for="deleteFromDiskCB"><i>QBT_TR(Also delete the files on the hard disk)QBT_TR[CONTEXT=confirmDeletionDlg]</i></label><br/><br/> |
|
||||
<div style="text-align: right;"> |
|
||||
<input type="button" id="cancelBtn" value="QBT_TR(No)QBT_TR[CONTEXT=MainWindow]" /> <input type="button" id="confirmBtn" value="QBT_TR(Yes)QBT_TR[CONTEXT=MainWindow]" /> |
|
||||
</div> |
|
||||
</body> |
|
||||
|
|
||||
</html> |
|
@ -1,55 +0,0 @@ |
|||||
<!DOCTYPE html> |
|
||||
<html lang="${LANG}"> |
|
||||
|
|
||||
<head> |
|
||||
<meta charset="UTF-8" /> |
|
||||
<title>QBT_TR(Deletion confirmation)QBT_TR[CONTEXT=RSSWidget]</title> |
|
||||
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" /> |
|
||||
<script src="scripts/lib/mootools-1.2-core-yc.js"></script> |
|
||||
<script src="scripts/lib/mootools-1.2-more.js"></script> |
|
||||
<script> |
|
||||
'use strict'; |
|
||||
|
|
||||
window.addEvent('domready', () => { |
|
||||
const paths = decodeURIComponent(new URI().getData('paths')).split('|'); |
|
||||
$('cancelBtn').focus(); |
|
||||
$('cancelBtn').addEvent('click', (e) => { |
|
||||
new Event(e).stop(); |
|
||||
window.parent.closeWindows(); |
|
||||
}); |
|
||||
$('confirmBtn').addEvent('click', (e) => { |
|
||||
new Event(e).stop(); |
|
||||
let completionCount = 0; |
|
||||
paths.forEach((path) => { |
|
||||
new Request({ |
|
||||
url: 'api/v2/rss/removeItem', |
|
||||
noCache: true, |
|
||||
method: 'post', |
|
||||
data: { |
|
||||
path: path |
|
||||
}, |
|
||||
onComplete: (response) => { |
|
||||
++completionCount; |
|
||||
if (completionCount === paths.length) { |
|
||||
window.parent.qBittorrent.Rss.updateRssFeedList(); |
|
||||
window.parent.closeWindows(); |
|
||||
} |
|
||||
} |
|
||||
}).send(); |
|
||||
}); |
|
||||
}); |
|
||||
}); |
|
||||
</script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div style="padding: 10px 10px 0px 10px;"> |
|
||||
<p>QBT_TR(Are you sure you want to delete the selected RSS feeds?)QBT_TR[CONTEXT=RSSWidget]</p> |
|
||||
<div style="text-align: right;"> |
|
||||
<input type="button" id="cancelBtn" value="QBT_TR(No)QBT_TR[CONTEXT=MainWindow]" /> |
|
||||
<input type="button" id="confirmBtn" value="QBT_TR(Yes)QBT_TR[CONTEXT=MainWindow]" /> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
|
|
||||
</html> |
|
@ -1,48 +0,0 @@ |
|||||
<!DOCTYPE html> |
|
||||
<html lang="${LANG}"> |
|
||||
|
|
||||
<head> |
|
||||
<meta charset="UTF-8" /> |
|
||||
<title>QBT_TR(Clear downloaded episodes)QBT_TR[CONTEXT=AutomatedRssDownloader]</title> |
|
||||
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" /> |
|
||||
<script src="scripts/lib/mootools-1.2-core-yc.js"></script> |
|
||||
<script src="scripts/lib/mootools-1.2-more.js"></script> |
|
||||
<script> |
|
||||
'use strict'; |
|
||||
|
|
||||
window.addEvent('domready', () => { |
|
||||
const rules = decodeURIComponent(new URI().getData('rules')).split('|'); |
|
||||
|
|
||||
$('cancelBtn').focus(); |
|
||||
$('cancelBtn').addEvent('click', (e) => { |
|
||||
new Event(e).stop(); |
|
||||
window.parent.MochaUI.closeWindow(window.parent.$('clearRulesPage')); |
|
||||
}); |
|
||||
$('confirmBtn').addEvent('click', (e) => { |
|
||||
new Event(e).stop(); |
|
||||
let completionCount = 0; |
|
||||
rules.forEach((rule) => { |
|
||||
window.parent.qBittorrent.RssDownloader.modifyRuleState(rule, 'previouslyMatchedEpisodes', [], () => { |
|
||||
++completionCount; |
|
||||
if (completionCount === rules.length) { |
|
||||
window.parent.qBittorrent.RssDownloader.updateRulesList(); |
|
||||
window.parent.MochaUI.closeWindow(window.parent.$('clearRulesPage')); |
|
||||
} |
|
||||
}); |
|
||||
}); |
|
||||
}); |
|
||||
}); |
|
||||
</script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div style="padding: 10px 10px 0px 10px;"> |
|
||||
<p>QBT_TR(Are you sure you want to clear the list of downloaded episodes for the selected rule?)QBT_TR[CONTEXT=AutomatedRssDownloader]</p> |
|
||||
<div style="text-align: right;"> |
|
||||
<input type="button" id="cancelBtn" value="QBT_TR(No)QBT_TR[CONTEXT=MainWindow]" /> |
|
||||
<input type="button" id="confirmBtn" value="QBT_TR(Yes)QBT_TR[CONTEXT=MainWindow]" /> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
|
|
||||
</html> |
|
@ -1,56 +0,0 @@ |
|||||
<!DOCTYPE html> |
|
||||
<html lang="${LANG}"> |
|
||||
|
|
||||
<head> |
|
||||
<meta charset="UTF-8" /> |
|
||||
<title>QBT_TR(Rule deletion confirmation)QBT_TR[CONTEXT=AutomatedRssDownloader]</title> |
|
||||
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" /> |
|
||||
<script src="scripts/lib/mootools-1.2-core-yc.js"></script> |
|
||||
<script src="scripts/lib/mootools-1.2-more.js"></script> |
|
||||
<script> |
|
||||
'use strict'; |
|
||||
|
|
||||
window.addEvent('domready', () => { |
|
||||
const rules = decodeURIComponent(new URI().getData('rules')).split('|'); |
|
||||
|
|
||||
$('cancelBtn').focus(); |
|
||||
$('cancelBtn').addEvent('click', (e) => { |
|
||||
new Event(e).stop(); |
|
||||
window.parent.MochaUI.closeWindow(window.parent.$('removeRulePage')); |
|
||||
}); |
|
||||
$('confirmBtn').addEvent('click', (e) => { |
|
||||
new Event(e).stop(); |
|
||||
let completionCount = 0; |
|
||||
rules.forEach((rule) => { |
|
||||
new Request({ |
|
||||
url: 'api/v2/rss/removeRule', |
|
||||
noCache: true, |
|
||||
method: 'post', |
|
||||
data: { |
|
||||
ruleName: rule |
|
||||
}, |
|
||||
onComplete: (response) => { |
|
||||
++completionCount; |
|
||||
if (completionCount === rules.length) { |
|
||||
window.parent.qBittorrent.RssDownloader.updateRulesList(); |
|
||||
window.parent.MochaUI.closeWindow(window.parent.$('removeRulePage')); |
|
||||
} |
|
||||
} |
|
||||
}).send(); |
|
||||
}); |
|
||||
}); |
|
||||
}); |
|
||||
</script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div style="padding: 10px 10px 0px 10px;"> |
|
||||
<p>QBT_TR(Are you sure you want to remove the selected download rules?)QBT_TR[CONTEXT=AutomatedRssDownloader]</p> |
|
||||
<div style="text-align: right;"> |
|
||||
<input type="button" id="cancelBtn" value="QBT_TR(No)QBT_TR[CONTEXT=MainWindow]" /> |
|
||||
<input type="button" id="confirmBtn" value="QBT_TR(Yes)QBT_TR[CONTEXT=MainWindow]" /> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
|
|
||||
</html> |
|
@ -1,54 +0,0 @@ |
|||||
/* |
|
||||
|
|
||||
Core.css for Mocha UI |
|
||||
|
|
||||
Theme: Default |
|
||||
|
|
||||
Copyright: |
|
||||
Copyright (c) 2007-2009 Greg Houston, <http://greghoustondesign.com/>. |
|
||||
|
|
||||
License: |
|
||||
MIT-style license. |
|
||||
|
|
||||
Notes: |
|
||||
CSS rules in this file: |
|
||||
|
|
||||
1. Rules required by all MochaUI components or are shared by more than one. |
|
||||
2. Theme specific adjustments to plugin styles. |
|
||||
3. Miscellaneous rules that have no better place to go. |
|
||||
|
|
||||
*/ |
|
||||
|
|
||||
/* Required By All |
|
||||
---------------------------------------------------------------- */ |
|
||||
|
|
||||
/* Clears */ |
|
||||
|
|
||||
.clear { |
|
||||
clear: both; |
|
||||
height: 0; |
|
||||
} |
|
||||
|
|
||||
* html .clear { |
|
||||
font-size: 1px; |
|
||||
line-height: 1px; |
|
||||
overflow: hidden; |
|
||||
visibility: hidden; |
|
||||
} |
|
||||
|
|
||||
/* Miscellaneous |
|
||||
---------------------------------------------------------------- */ |
|
||||
|
|
||||
#themeControl { |
|
||||
margin-top: 2px; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/* Theme Specific Adjustments to Default Plugin Styles |
|
||||
---------------------------------------------------------------- */ |
|
||||
|
|
||||
/* Folder Tree */ |
|
||||
|
|
||||
.tree li a { |
|
||||
color: #3f3f3f !important; |
|
||||
} |
|
@ -1,443 +0,0 @@ |
|||||
/* |
|
||||
|
|
||||
Core.css for Mocha UI |
|
||||
|
|
||||
Theme: Default |
|
||||
|
|
||||
Copyright: |
|
||||
Copyright (c) 2007-2009 Greg Houston, <http://greghoustondesign.com/>. |
|
||||
|
|
||||
License: |
|
||||
MIT-style license. |
|
||||
|
|
||||
Required by: |
|
||||
Layout.js |
|
||||
|
|
||||
*/ |
|
||||
|
|
||||
/* Layout |
|
||||
---------------------------------------------------------------- */ |
|
||||
|
|
||||
html, body { |
|
||||
background: #fff; |
|
||||
} |
|
||||
|
|
||||
body { |
|
||||
margin: 0; /* Required */ |
|
||||
} |
|
||||
|
|
||||
#desktop { |
|
||||
position: relative; |
|
||||
min-width: 400px; /* Helps keep header content from wrapping */ |
|
||||
height: 100%; |
|
||||
min-height: 100%; |
|
||||
overflow: hidden; |
|
||||
cursor: default; /* Fix for issue in IE7. IE7 wants to use the I-bar text cursor */ |
|
||||
} |
|
||||
|
|
||||
#desktopHeader { |
|
||||
background: #f2f2f2; |
|
||||
} |
|
||||
|
|
||||
#desktopTitlebarWrapper { |
|
||||
position: relative; |
|
||||
height: 45px; |
|
||||
overflow: hidden; |
|
||||
background: #718BA6 url(../images/bg-header.gif) repeat-x; |
|
||||
} |
|
||||
|
|
||||
#desktopTitlebar { |
|
||||
padding: 7px 8px 6px 8px; |
|
||||
height: 32px; |
|
||||
background: url(../images/logo.gif) no-repeat; |
|
||||
background-position: left 0; |
|
||||
} |
|
||||
|
|
||||
#desktopTitlebar h1.applicationTitle { |
|
||||
display: none; |
|
||||
margin: 0; |
|
||||
padding: 0 5px 0 0; |
|
||||
font-size: 20px; |
|
||||
line-height: 25px; |
|
||||
font-weight: bold; |
|
||||
color: #fff; |
|
||||
} |
|
||||
|
|
||||
#desktopTitlebar h2.tagline { |
|
||||
padding: 7px 0 0 0; |
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|
||||
font-size: 10px; |
|
||||
color: #d4dce4; |
|
||||
font-weight: bold; |
|
||||
text-align: center; |
|
||||
text-transform: uppercase; |
|
||||
} |
|
||||
|
|
||||
#desktopTitlebar h2.tagline .taglineEm { |
|
||||
color: #fff; |
|
||||
font-weight: bold; |
|
||||
} |
|
||||
|
|
||||
#topNav { |
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|
||||
font-size: 10px; |
|
||||
position: absolute; |
|
||||
right: 0; |
|
||||
top: 0; |
|
||||
color: #d4dce4; |
|
||||
text-align: right; |
|
||||
padding: 13px 10px 0 0; |
|
||||
} |
|
||||
|
|
||||
#topNav a { |
|
||||
color: #fff; |
|
||||
font-weight: normal; |
|
||||
} |
|
||||
|
|
||||
#topNav a:hover { |
|
||||
text-decoration: none; |
|
||||
} |
|
||||
|
|
||||
/* Navbar */ |
|
||||
|
|
||||
#desktopNavbar { |
|
||||
background: #f2f2f2; |
|
||||
/*height: 30px;*/ |
|
||||
margin: 0 0px; |
|
||||
overflow: hidden; /* Remove this line if you want the menu to be backward compatible with Firefox 2 */ |
|
||||
/* Fixes by Chris */ |
|
||||
/*background-color: #ccc;*/ |
|
||||
height: 20px; |
|
||||
border-bottom: 1px solid #3f3f3f; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar ul { |
|
||||
padding: 0; |
|
||||
margin: 0; |
|
||||
list-style: none; |
|
||||
font-size: 12px; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar>ul>li { |
|
||||
float: left; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar a { |
|
||||
display: block; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar ul li a { |
|
||||
/*padding: 6px 10px 6px 10px;*/ |
|
||||
color: #333; |
|
||||
font-weight: normal; |
|
||||
/* Fix by Chris */ |
|
||||
padding: 2px 10px 6px 10px; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar ul li a:hover { |
|
||||
color: #333; |
|
||||
/* Fix By Chris */ |
|
||||
background-color: #fff; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar ul li a.arrow-right, #desktopNavbar ul li a:hover.arrow-right { |
|
||||
background-image: url(../images/arrow-right.gif); |
|
||||
background-repeat: no-repeat; |
|
||||
background-position: right 7px; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar li ul { |
|
||||
border: 1px solid #3f3f3f; |
|
||||
background: #fff url(../images/bg-dropdown.gif) repeat-y; |
|
||||
position: absolute; |
|
||||
left: -999em; |
|
||||
z-index: 8000; |
|
||||
/* Fix by Chris */ |
|
||||
margin-top: -6px; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar li:hover ul ul, |
|
||||
#desktopNavbar li.ieHover ul ul, |
|
||||
#desktopNavbar li:hover ul ul ul, |
|
||||
#desktopNavbar li.ieHover ul ul ul { |
|
||||
left: -999em; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar li ul ul { /* third-and-above-level lists */ |
|
||||
margin: -22px 0 0 163px; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar li ul li .check { |
|
||||
position: absolute; |
|
||||
top: 8px; |
|
||||
left: 6px; |
|
||||
width: 5px; |
|
||||
height: 5px; |
|
||||
background: #555; |
|
||||
overflow: hidden; |
|
||||
line-height: 1px; |
|
||||
font-size: 1px; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar li ul li a { |
|
||||
position: relative; |
|
||||
/*padding: 1px 9px 1px 25px;*/ |
|
||||
min-width: 120px; |
|
||||
color: #3f3f3f; |
|
||||
font-weight: normal; |
|
||||
/* Fix By Chris */ |
|
||||
padding: 1px 10px 1px 20px; |
|
||||
/* Reduce left padding */ |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar li ul li a:hover { |
|
||||
background: #6C98D9; |
|
||||
color: #fff; |
|
||||
-moz-border-radius: 2px; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar li ul li a:hover .check { |
|
||||
background: #fff; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar li:hover ul, |
|
||||
#desktopNavbar li.ieHover ul, |
|
||||
#desktopNavbar li li.ieHover ul, |
|
||||
#desktopNavbar li li li.ieHover ul, |
|
||||
#desktopNavbar li li:hover ul, |
|
||||
#desktopNavbar li li li:hover ul { /* lists nested under hovered list items */ |
|
||||
left: auto; |
|
||||
} |
|
||||
|
|
||||
#desktopNavbar li:hover { /* For IE7 */ |
|
||||
position: static; |
|
||||
} |
|
||||
|
|
||||
li.divider { |
|
||||
margin-top: 2px; |
|
||||
padding-top: 3px; |
|
||||
border-top: 1px solid #ebebeb; |
|
||||
} |
|
||||
|
|
||||
#pageWrapper { |
|
||||
position: relative; |
|
||||
overflow: hidden; /* This can be set to hidden or auto */ |
|
||||
border-top: 1px solid #909090; |
|
||||
border-bottom: 1px solid #909090; |
|
||||
/*height: 100%;*/ |
|
||||
} |
|
||||
|
|
||||
/* Footer */ |
|
||||
|
|
||||
#desktopFooterWrapper { |
|
||||
position: absolute; |
|
||||
left: 0; |
|
||||
bottom: 0; |
|
||||
width: 100%; |
|
||||
height: 30px; |
|
||||
overflow: hidden; |
|
||||
} |
|
||||
|
|
||||
#desktopFooter { |
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|
||||
font-size: 11px; |
|
||||
height: 24px; |
|
||||
padding: 6px 8px 0 8px; |
|
||||
background: #f2f2f2; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
/* Panel Layout |
|
||||
---------------------------------------------------------------- */ |
|
||||
|
|
||||
/* Columns */ |
|
||||
|
|
||||
.column { |
|
||||
position: relative; |
|
||||
float: left; |
|
||||
overflow: hidden; /* Required by IE6 */ |
|
||||
} |
|
||||
|
|
||||
/* Panels */ |
|
||||
|
|
||||
.panel { |
|
||||
position: relative; |
|
||||
overflow: auto; |
|
||||
background: #f8f8f8; |
|
||||
border-bottom: 1px solid #b9b9b9; |
|
||||
} |
|
||||
|
|
||||
.panelWrapper.collapsed .panel-header { |
|
||||
border-bottom: 0; |
|
||||
} |
|
||||
|
|
||||
.panelAlt { |
|
||||
background: #f2f2f2; |
|
||||
} |
|
||||
|
|
||||
.bottomPanel { |
|
||||
border-bottom: 0; |
|
||||
} |
|
||||
|
|
||||
.pad { |
|
||||
padding: 8px; |
|
||||
} |
|
||||
|
|
||||
#mainPanel { |
|
||||
background: #fff; |
|
||||
} |
|
||||
|
|
||||
.panel-header { |
|
||||
position: relative; |
|
||||
background: #f1f1f1 url(../images/bg-panel-header.gif) repeat-x; |
|
||||
height: 30px; |
|
||||
overflow: hidden; |
|
||||
border-bottom: 1px solid #d3d3d3; |
|
||||
} |
|
||||
|
|
||||
.panel-headerContent { |
|
||||
padding-top: 2px; |
|
||||
} |
|
||||
|
|
||||
.panel-headerContent.tabs { |
|
||||
background: url(../images/tabs.gif) repeat-x; |
|
||||
background-position: left -68px; |
|
||||
} |
|
||||
|
|
||||
.panel-header h2 { |
|
||||
display: inline-block; |
|
||||
font-size: 12px; |
|
||||
margin: 0; |
|
||||
padding: 3px 8px 0 8px; |
|
||||
height: 22px; |
|
||||
overflow: hidden; |
|
||||
color: #333; |
|
||||
} |
|
||||
|
|
||||
.panel-collapse { |
|
||||
background: url(../icons/collapse.svg) left top no-repeat; |
|
||||
} |
|
||||
|
|
||||
.panel-expand { |
|
||||
background: url(../icons/collapse.svg) left top no-repeat; |
|
||||
transform: rotate(180deg); |
|
||||
} |
|
||||
|
|
||||
.icon16 { |
|
||||
margin: 4px 0 0 2px; |
|
||||
cursor: pointer; |
|
||||
} |
|
||||
|
|
||||
/* Column and Panel Handles */ |
|
||||
|
|
||||
.horizontalHandle { |
|
||||
height: 4px; |
|
||||
line-height: 1px; |
|
||||
font-size: 1px; |
|
||||
overflow: hidden; |
|
||||
background: #eee url(../images/bg-handle-horizontal.gif) repeat-x; |
|
||||
} |
|
||||
|
|
||||
.horizontalHandle.detached .handleIcon { |
|
||||
background: transparent; |
|
||||
} |
|
||||
|
|
||||
.horizontalHandle .handleIcon { |
|
||||
margin: 0 auto; |
|
||||
height: 4px; |
|
||||
line-height: 1px; |
|
||||
font-size: 1px; |
|
||||
overflow: hidden; |
|
||||
background: url(../images/handle-icon-horizontal.gif) center center no-repeat; |
|
||||
} |
|
||||
|
|
||||
.columnHandle { |
|
||||
min-height: 10px; |
|
||||
float: left; |
|
||||
width: 4px; |
|
||||
overflow: hidden; |
|
||||
background: #c3c3c3 url(../images/handle-icon.gif) center center no-repeat; |
|
||||
border: 1px solid #909090; |
|
||||
border-top: 0; |
|
||||
border-bottom: 0; |
|
||||
} |
|
||||
|
|
||||
/* Toolboxes */ |
|
||||
|
|
||||
.toolbox { |
|
||||
float: right; |
|
||||
margin-top: 3px; |
|
||||
padding: 0 5px; |
|
||||
height: 24px; |
|
||||
overflow: hidden; |
|
||||
text-align: right; |
|
||||
} |
|
||||
|
|
||||
.panel-header-toolbox { |
|
||||
} |
|
||||
|
|
||||
div.toolbox.divider { /* Have to specify div here for IE6's sake */ |
|
||||
background: url(../images/toolbox-divider.gif) repeat-y; |
|
||||
padding-left: 8px; |
|
||||
} |
|
||||
|
|
||||
.toolbox img.disabled { |
|
||||
cursor: default; |
|
||||
} |
|
||||
|
|
||||
.iconWrapper { |
|
||||
display: inline-block; |
|
||||
height: 22px; |
|
||||
min-width: 22px; |
|
||||
overflow: hidden; |
|
||||
border: 1px solid transparent; |
|
||||
} |
|
||||
|
|
||||
* html .iconWrapper { |
|
||||
padding: 1px; |
|
||||
border: 0; |
|
||||
} |
|
||||
|
|
||||
.iconWrapper img { |
|
||||
cursor: pointer; |
|
||||
margin: 0; |
|
||||
padding: 3px; |
|
||||
} |
|
||||
|
|
||||
.iconWrapper:hover { |
|
||||
border: 1px solid #a0a0a0; |
|
||||
-moz-border-radius: 3px; |
|
||||
} |
|
||||
|
|
||||
#spinnerWrapper { |
|
||||
width: 16px; |
|
||||
height: 16px; |
|
||||
background: url(../images/spinner-placeholder.gif) no-repeat; |
|
||||
margin: 4px 5px 0 5px; |
|
||||
} |
|
||||
|
|
||||
#spinner { |
|
||||
display: none; |
|
||||
background: url(../images/spinner.gif) no-repeat; |
|
||||
width: 16px; |
|
||||
height: 16px; |
|
||||
} |
|
||||
|
|
||||
#desktopFooter td { |
|
||||
vertical-align: top; |
|
||||
text-align: left; |
|
||||
} |
|
||||
|
|
||||
td.speedLabel { |
|
||||
cursor: pointer; |
|
||||
min-width: 18em; |
|
||||
} |
|
||||
|
|
||||
#freeSpaceOnDisk { |
|
||||
white-space: nowrap; |
|
||||
} |
|
||||
|
|
||||
#DHTNodes { |
|
||||
white-space: nowrap; |
|
||||
} |
|
@ -1,65 +0,0 @@ |
|||||
/* |
|
||||
|
|
||||
Tabs.css for Mocha UI |
|
||||
|
|
||||
Theme: Default |
|
||||
|
|
||||
Copyright: |
|
||||
Copyright (c) 2007-2009 Greg Houston, <http://greghoustondesign.com/>. |
|
||||
|
|
||||
License: |
|
||||
MIT-style license. |
|
||||
|
|
||||
Required by: |
|
||||
Tabs.js |
|
||||
|
|
||||
*/ |
|
||||
|
|
||||
/* Toolbar Tabs */ |
|
||||
|
|
||||
.toolbarTabs { |
|
||||
padding: 0 5px 2px 2px; |
|
||||
background: url(../images/tabs.gif) repeat-x; |
|
||||
background-position: left -70px; |
|
||||
overflow: visible; |
|
||||
} |
|
||||
|
|
||||
.tab-menu { |
|
||||
padding-top: 1px; |
|
||||
list-style: none; |
|
||||
margin: 0; |
|
||||
padding: 0; |
|
||||
line-height: 16px; |
|
||||
font-size: 11px; |
|
||||
} |
|
||||
|
|
||||
.tab-menu li { |
|
||||
float: left; |
|
||||
margin: 0 0 5px 0; |
|
||||
cursor: pointer; |
|
||||
background: url(../images/tabs.gif) repeat-x; |
|
||||
background-position: left -35px; |
|
||||
} |
|
||||
|
|
||||
.tab-menu li.selected { |
|
||||
background: url(../images/tabs.gif) repeat-x; |
|
||||
background-position: left 0; |
|
||||
} |
|
||||
|
|
||||
.tab-menu li a { |
|
||||
display: block; |
|
||||
margin-left: 8px; |
|
||||
padding: 6px 15px 5px 9px; |
|
||||
text-align: center; |
|
||||
font-weight: normal; |
|
||||
color: #181818; |
|
||||
background: url(../images/tabs.gif) repeat-x; |
|
||||
background-position: right -35px; |
|
||||
} |
|
||||
|
|
||||
.tab-menu li.selected a { |
|
||||
color: #181818; |
|
||||
font-weight: bold; |
|
||||
background: url(../images/tabs.gif) repeat-x; |
|
||||
background-position: right 0; |
|
||||
} |
|
@ -1,396 +0,0 @@ |
|||||
/* |
|
||||
|
|
||||
Window.css for Mocha UI |
|
||||
|
|
||||
Theme: Default |
|
||||
|
|
||||
Copyright: |
|
||||
Copyright (c) 2007-2009 Greg Houston, <http://greghoustondesign.com/>. |
|
||||
|
|
||||
License: |
|
||||
MIT-style license. |
|
||||
|
|
||||
Required by: |
|
||||
Window.js and Modal.css |
|
||||
|
|
||||
*/ |
|
||||
|
|
||||
/* Windows |
|
||||
---------------------------------------------------------------- */ |
|
||||
|
|
||||
.mocha { |
|
||||
display: none; |
|
||||
overflow: hidden; |
|
||||
background-color: #e5e5e5; |
|
||||
} |
|
||||
|
|
||||
.mocha.isFocused {} |
|
||||
|
|
||||
.mochaOverlay { |
|
||||
position: absolute; /* This is also set in theme.js in order to make theme transitions smoother */ |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
} |
|
||||
|
|
||||
/* |
|
||||
|
|
||||
We get a little creative here in order to define a gradient in the CSS using a query |
|
||||
string appended to a background image. |
|
||||
|
|
||||
"from" is the top color of the gradient. "to" is the bottom color of the gradient. |
|
||||
|
|
||||
Both must be hex values without the leading # sign. |
|
||||
|
|
||||
*/ |
|
||||
|
|
||||
.mochaTitlebar { |
|
||||
width: 100%; |
|
||||
overflow: hidden; |
|
||||
background: url(../images/spacer.gif?from=fafafa&to=e5e5e5); |
|
||||
} |
|
||||
|
|
||||
.mochaTitlebar h3 { |
|
||||
font-size: 12px; |
|
||||
line-height: 15px; |
|
||||
font-weight: bold; |
|
||||
margin: 0; |
|
||||
padding: 5px 10px 4px 12px; |
|
||||
color: #888; |
|
||||
} |
|
||||
|
|
||||
.mocha.isFocused .mochaTitlebar h3 { |
|
||||
color: #181818; |
|
||||
} |
|
||||
|
|
||||
.mochaToolbarWrapper { |
|
||||
width: 100%; /* For IE */ |
|
||||
position: relative; |
|
||||
height: 29px; |
|
||||
background: #f1f1f1; |
|
||||
overflow: hidden; |
|
||||
border-top: 1px solid #d9d9d9; |
|
||||
} |
|
||||
|
|
||||
div.mochaToolbarWrapper.bottom { |
|
||||
border: 0; |
|
||||
border-bottom: 1px solid #d9d9d9; |
|
||||
} |
|
||||
|
|
||||
.mochaToolbar { |
|
||||
width: 100%; /* For IE */ |
|
||||
border-top: 1px solid #fff; |
|
||||
} |
|
||||
|
|
||||
.mochaContentBorder { |
|
||||
border-top: 1px solid #dadada; |
|
||||
border-bottom: 1px solid #dadada; |
|
||||
} |
|
||||
|
|
||||
.mochaContentWrapper { /* Has a fixed height and scrollbars if required. */ |
|
||||
font-size: 12px; |
|
||||
overflow: auto; |
|
||||
background: #fff; |
|
||||
} |
|
||||
|
|
||||
.mochaContent { |
|
||||
padding: 10px 12px; |
|
||||
} |
|
||||
|
|
||||
.mocha .handle { |
|
||||
position: absolute; |
|
||||
background: #0f0; |
|
||||
width: 3px; |
|
||||
height: 3px; |
|
||||
z-index: 2; |
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE8 */ |
|
||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); /* IE6 and 7*/ |
|
||||
opacity: .0; |
|
||||
-moz-opacity: .0; |
|
||||
overflow: hidden; |
|
||||
font-size: 1px; /* For IE6 */ |
|
||||
} |
|
||||
|
|
||||
.mocha .corner { /* Corner resize handles */ |
|
||||
width: 10px; |
|
||||
height: 10px; |
|
||||
background: #f00; |
|
||||
} |
|
||||
|
|
||||
.mocha .cornerSE { /* Bottom right resize handle */ |
|
||||
width: 20px; |
|
||||
height: 20px; |
|
||||
background: #fefefe; /* This is the color of the visible resize handle */ |
|
||||
} |
|
||||
|
|
||||
.mochaCanvasHeader { |
|
||||
position: absolute; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
background: transparent; |
|
||||
z-index: -1; |
|
||||
visibility: hidden; |
|
||||
overflow: hidden; |
|
||||
} |
|
||||
|
|
||||
.mochaControls { |
|
||||
position: absolute; |
|
||||
width: 52px; |
|
||||
top: 8px; |
|
||||
right: 8px; |
|
||||
height: 14px; |
|
||||
z-index: 4; |
|
||||
background: transparent; |
|
||||
} |
|
||||
|
|
||||
.mochaCanvasControls { |
|
||||
position: absolute; |
|
||||
top: 8px; |
|
||||
right: 8px; |
|
||||
z-index: 3; |
|
||||
background: transparent; |
|
||||
} |
|
||||
|
|
||||
/* |
|
||||
To use images for these buttons: |
|
||||
1. Set the useCanvasControls window option to false. |
|
||||
2. If you use a different button size you may need to reposition the controls. |
|
||||
Modify the controlsOffset window option. |
|
||||
2. Replcac the background-color with a background-image for each button. |
|
||||
|
|
||||
*/ |
|
||||
.mochaMinimizeButton, .mochaMaximizeButton, .mochaCloseButton { |
|
||||
float: right; |
|
||||
width: 14px; |
|
||||
height: 14px; |
|
||||
font-size: 1px; |
|
||||
cursor: pointer; |
|
||||
z-index: 4; |
|
||||
color: #666; |
|
||||
background-color: #fff; |
|
||||
margin-left: 5px; |
|
||||
} |
|
||||
|
|
||||
.mochaMinimizeButton { |
|
||||
margin-left: 0; |
|
||||
} |
|
||||
|
|
||||
.mochaMaximizeButton { |
|
||||
} |
|
||||
|
|
||||
.mochaCloseButton { |
|
||||
} |
|
||||
|
|
||||
.mochaSpinner { |
|
||||
display: none; |
|
||||
position: absolute; |
|
||||
bottom: 7px; |
|
||||
left: 6px; |
|
||||
width: 16px; |
|
||||
height: 16px; |
|
||||
background: url(../images/spinner.gif) no-repeat; |
|
||||
} |
|
||||
|
|
||||
.mochaIframe { |
|
||||
width: 100%; |
|
||||
} |
|
||||
|
|
||||
/* Fix for IE6 select z-index issue */ |
|
||||
.zIndexFix { |
|
||||
display: block; |
|
||||
position: absolute; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
z-index: -1; |
|
||||
filter: mask(); |
|
||||
width: 100px; |
|
||||
height: 100px; |
|
||||
border: 1px solid transparent; |
|
||||
} |
|
||||
|
|
||||
/* Viewport overlays |
|
||||
---------------------------------------------------------------- */ |
|
||||
|
|
||||
#modalOverlay { |
|
||||
display: none; |
|
||||
position: fixed; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
width: 100%; |
|
||||
background: #000; |
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE8 */ |
|
||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); /* IE6 and 7*/ |
|
||||
opacity: 0; |
|
||||
-moz-opacity: 0; |
|
||||
z-index: 10000; |
|
||||
} |
|
||||
|
|
||||
/* Fix for IE6 select z-index issue */ |
|
||||
#modalFix { |
|
||||
display: none; |
|
||||
position: absolute; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
width: 100%; |
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE8 */ |
|
||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); /* IE6 and 7*/ |
|
||||
opacity: 0; |
|
||||
-moz-opacity: 0; |
|
||||
z-index: 9999; |
|
||||
} |
|
||||
|
|
||||
/* Underlay */ |
|
||||
|
|
||||
#windowUnderlay { |
|
||||
position: fixed; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
width: 100%; |
|
||||
background: #fff; |
|
||||
} |
|
||||
|
|
||||
* html #windowUnderlay { |
|
||||
position: absolute; |
|
||||
} |
|
||||
|
|
||||
/* The replaced class is used internally when converting CSS values to Canvas. These classes should not be removed. */ |
|
||||
|
|
||||
.mocha.replaced, .mochaTitlebar.replaced, .mochaMinimizeButton.replaced, |
|
||||
.mochaMaximizeButton.replaced, .mochaCloseButton.replaced { |
|
||||
background-color: transparent !important; |
|
||||
} |
|
||||
|
|
||||
.windowClosed { |
|
||||
visibility: hidden; |
|
||||
display: none; |
|
||||
position: absolute; |
|
||||
top: -20000px; |
|
||||
left: -20000px; |
|
||||
z-index: -1; |
|
||||
overflow: hidden; |
|
||||
} |
|
||||
|
|
||||
.windowClosed .mochaContentBorder, .windowClosed .mochaToolbarWrapper, |
|
||||
.windowClosed .mochaTitlebar, .windowClosed .mochaControls, |
|
||||
.windowClosed .mochaCanvasControls { |
|
||||
position: absolute; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
visibility: hidden; |
|
||||
display: none; |
|
||||
z-index: -1; |
|
||||
} |
|
||||
|
|
||||
/* Modals */ |
|
||||
|
|
||||
.modal2 { |
|
||||
border: 8px solid #fff; |
|
||||
} |
|
||||
|
|
||||
.modal2 .mochaContentBorder { |
|
||||
border-width: 0px; |
|
||||
} |
|
||||
|
|
||||
/* Window Themes */ |
|
||||
|
|
||||
.mocha.no-canvas { |
|
||||
background: #e5e5e5; |
|
||||
border: 1px solid #555; |
|
||||
} |
|
||||
|
|
||||
.mocha.no-canvas .mochaTitlebar { |
|
||||
background: #e5e5e5; |
|
||||
} |
|
||||
|
|
||||
.mocha.transparent .mochaTitlebar h3 { |
|
||||
color: #fff; |
|
||||
display: none; |
|
||||
} |
|
||||
|
|
||||
.mocha.transparent .mochaContentWrapper { |
|
||||
background: transparent; |
|
||||
} |
|
||||
|
|
||||
.mocha.notification { |
|
||||
background: #cedff2; |
|
||||
} |
|
||||
|
|
||||
.mocha.notification .mochaTitlebar { |
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE8 */ |
|
||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); /* IE6 and 7*/ |
|
||||
opacity: .0; |
|
||||
-moz-opacity: 0; |
|
||||
} |
|
||||
|
|
||||
.mocha.notification .mochaContentBorder { |
|
||||
border-width: 0px; |
|
||||
} |
|
||||
|
|
||||
.mocha.notification .mochaContentWrapper { |
|
||||
text-align: center; |
|
||||
font-size: 12px; |
|
||||
font-weight: bold; |
|
||||
background: transparent; |
|
||||
} |
|
||||
|
|
||||
/* Example Window Themes */ |
|
||||
|
|
||||
#about_contentWrapper { |
|
||||
background: #e5e5e5 url(../images/logo2.gif) 3px 3px no-repeat; |
|
||||
} |
|
||||
|
|
||||
#builder_contentWrapper { |
|
||||
background: #f5f5f7; |
|
||||
} |
|
||||
|
|
||||
#json01 .mochaTitlebar { |
|
||||
background: #6dd2db; |
|
||||
} |
|
||||
|
|
||||
#json02 .mochaTitlebar { |
|
||||
background: #6db6db; |
|
||||
} |
|
||||
|
|
||||
#json03 .mochaTitlebar { |
|
||||
background: #6d92db; |
|
||||
} |
|
||||
|
|
||||
.jsonExample .mochaTitlebar h3 { |
|
||||
color: #ddd; |
|
||||
} |
|
||||
|
|
||||
/* This does not work in IE6. */ |
|
||||
.isFocused.jsonExample .mochaTitlebar h3 { |
|
||||
color: #fff; |
|
||||
} |
|
||||
|
|
||||
#fxmorpherExample .mochaContentWrapper { |
|
||||
background: #577a9e; |
|
||||
} |
|
||||
|
|
||||
#clock { |
|
||||
background: #fff; |
|
||||
} |
|
||||
|
|
||||
/* Workaround to make invisible buttons clickable */ |
|
||||
|
|
||||
.mochaMinimizeButton.replaced, |
|
||||
.mochaMaximizeButton.replaced, |
|
||||
.mochaCloseButton.replaced { |
|
||||
background-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) !important; |
|
||||
} |
|
||||
|
|
||||
/* iOS iframe scrolling */ |
|
||||
.windowFrame .mochaContentWrapper { |
|
||||
/* scroll the Window content. !important required. */ |
|
||||
overflow: auto !important; |
|
||||
-webkit-overflow-scrolling: touch; |
|
||||
} |
|
||||
|
|
||||
.windowFrame .mochaContent { |
|
||||
height: 100%; |
|
||||
} |
|
||||
|
|
||||
.windowFrame iframe { |
|
||||
/* fix double scroll bar by reducing frame height. !important required. */ |
|
||||
height: calc(100% - 5px) !important; |
|
||||
} |
|
@ -1,109 +0,0 @@ |
|||||
/************************************************************** |
|
||||
|
|
||||
Dynamic Table |
|
||||
v 0.4 |
|
||||
|
|
||||
**************************************************************/ |
|
||||
|
|
||||
.dynamicTable tbody tr { |
|
||||
background-color: #fff; |
|
||||
} |
|
||||
|
|
||||
.dynamicTable tbody tr:nth-child(even), |
|
||||
.dynamicTable tbody tr.alt { |
|
||||
background-color: #eee; |
|
||||
} |
|
||||
|
|
||||
#transferList .dynamicTable td { |
|
||||
padding: 0 2px; |
|
||||
} |
|
||||
|
|
||||
.dynamicTable tbody tr.selected { |
|
||||
background-color: #354158; |
|
||||
color: #fff; |
|
||||
} |
|
||||
|
|
||||
.dynamicTable tbody tr:hover { |
|
||||
background-color: #ee6600; |
|
||||
color: #fff; |
|
||||
} |
|
||||
|
|
||||
#transferList tr:hover { |
|
||||
cursor: pointer; |
|
||||
} |
|
||||
|
|
||||
#transferList img.stateIcon { |
|
||||
height: 1.3em; |
|
||||
vertical-align: middle; |
|
||||
margin-bottom: -1px; |
|
||||
} |
|
||||
|
|
||||
tr.dynamicTableHeader { |
|
||||
cursor: pointer; |
|
||||
} |
|
||||
|
|
||||
.dynamicTable { |
|
||||
table-layout: fixed; |
|
||||
width: 1%; |
|
||||
padding: 0; |
|
||||
border-spacing: 0; |
|
||||
} |
|
||||
|
|
||||
.dynamicTable th { |
|
||||
background-color: #eee; |
|
||||
padding: 4px; |
|
||||
white-space: nowrap; |
|
||||
border-right-color: #ccc; |
|
||||
border-right-style: solid; |
|
||||
border-right-width: 1px; |
|
||||
box-sizing: border-box; |
|
||||
-moz-box-sizing: border-box; |
|
||||
-webkit-box-sizing: border-box; |
|
||||
} |
|
||||
|
|
||||
.dynamicTable td { |
|
||||
padding: 0px 4px; |
|
||||
white-space: nowrap; |
|
||||
} |
|
||||
|
|
||||
.dynamicTable thead tr { |
|
||||
background-color: #eee; |
|
||||
} |
|
||||
|
|
||||
.dynamicTable th, |
|
||||
.dynamicTable td { |
|
||||
text-overflow: ellipsis; |
|
||||
overflow: hidden; |
|
||||
white-space: nowrap; |
|
||||
} |
|
||||
|
|
||||
.dynamicTable th.sorted { |
|
||||
background-image: url(../icons/go-up.svg); |
|
||||
background-position: right; |
|
||||
background-repeat: no-repeat; |
|
||||
background-size: 15px; |
|
||||
} |
|
||||
|
|
||||
.dynamicTable th.sorted.reverse { |
|
||||
background-image: url(../icons/go-down.svg); |
|
||||
} |
|
||||
|
|
||||
.dynamicTable td img.flags { |
|
||||
height: 1.25em; |
|
||||
vertical-align: middle; |
|
||||
} |
|
||||
|
|
||||
.dynamicTableFixedHeaderDiv { |
|
||||
overflow: hidden; |
|
||||
} |
|
||||
|
|
||||
.dynamicTableDiv { |
|
||||
overflow: auto; |
|
||||
} |
|
||||
|
|
||||
.dynamicTableDiv thead th { |
|
||||
line-height: 0px !important; |
|
||||
height: 0px !important; |
|
||||
padding-top: 0px !important; |
|
||||
padding-bottom: 0px !important; |
|
||||
} |
|
@ -1,8 +0,0 @@ |
|||||
#desktop { |
|
||||
display: none; |
|
||||
} |
|
||||
|
|
||||
#noscript { |
|
||||
color: #f00; |
|
||||
text-align: center; |
|
||||
} |
|
@ -1,639 +0,0 @@ |
|||||
/* Reset */ |
|
||||
|
|
||||
/*ul,ol,dl,li,dt,dd,h1,h2,h3,h4,h5,h6,pre,form,body,html,p,blockquote,fieldset,input,object,iframe { margin: 0; padding: 0; }*/ |
|
||||
|
|
||||
a img, :link img, :visited img { |
|
||||
border: none; |
|
||||
} |
|
||||
|
|
||||
/*table { border-collapse: collapse; border-spacing: 0; }*/ |
|
||||
|
|
||||
:focus { |
|
||||
outline: none; |
|
||||
} |
|
||||
|
|
||||
/* Structure */ |
|
||||
|
|
||||
body { |
|
||||
margin: 0; |
|
||||
text-align: left; |
|
||||
font-family: Arial, Helvetica, sans-serif; |
|
||||
font-size: 12px; |
|
||||
line-height: 18px; |
|
||||
color: #555; |
|
||||
} |
|
||||
|
|
||||
.aside { |
|
||||
width: 300px; |
|
||||
} |
|
||||
|
|
||||
.invisible { |
|
||||
display: none; |
|
||||
} |
|
||||
|
|
||||
/* Typography */ |
|
||||
|
|
||||
h2, h3, h4 { |
|
||||
margin: 0; |
|
||||
padding: 0 0 5px 0; |
|
||||
font-size: 12px; |
|
||||
font-weight: bold; |
|
||||
color: #333; |
|
||||
} |
|
||||
|
|
||||
h2 { |
|
||||
font-size: 14px; |
|
||||
color: #555; |
|
||||
font-weight: bold; |
|
||||
} |
|
||||
|
|
||||
#mochaPage h3 { |
|
||||
display: block; |
|
||||
font-size: 12px; |
|
||||
padding: 6px 0 6px 0; |
|
||||
margin: 0 0 8px 0; |
|
||||
border-bottom: 1px solid #bbb; |
|
||||
} |
|
||||
|
|
||||
#error_div { |
|
||||
color: #f00; |
|
||||
font-weight: bold; |
|
||||
} |
|
||||
|
|
||||
h4 { |
|
||||
font-size: 11px; |
|
||||
} |
|
||||
|
|
||||
a { |
|
||||
color: #e60; |
|
||||
text-decoration: none; |
|
||||
cursor: pointer; |
|
||||
} |
|
||||
|
|
||||
a:hover { |
|
||||
text-decoration: none; |
|
||||
} |
|
||||
|
|
||||
p { |
|
||||
margin: 0; |
|
||||
padding: 0 0 9px 0; |
|
||||
} |
|
||||
|
|
||||
/* List Elements */ |
|
||||
|
|
||||
ul { |
|
||||
list-style: outside; |
|
||||
margin: 0 0 9px 16px; |
|
||||
} |
|
||||
|
|
||||
dt { |
|
||||
font-weight: bold; |
|
||||
} |
|
||||
|
|
||||
dd { |
|
||||
padding: 0 0 9px 0; |
|
||||
} |
|
||||
|
|
||||
/* Code */ |
|
||||
|
|
||||
pre { |
|
||||
background-color: #f6f6f6; |
|
||||
color: #006600; |
|
||||
display: block; |
|
||||
font-family: 'Courier New', Courier, monospace; |
|
||||
font-size: 11px; |
|
||||
max-height: 250px; |
|
||||
overflow: auto; |
|
||||
margin: 0 0 10px 0; |
|
||||
padding: 10px; |
|
||||
border: 1px solid #d1d7dc; |
|
||||
} |
|
||||
|
|
||||
/* Dividers */ |
|
||||
|
|
||||
hr { |
|
||||
background-color: #ddd; |
|
||||
color: #ccc; |
|
||||
height: 1px; |
|
||||
border: 0px; |
|
||||
} |
|
||||
|
|
||||
.vcenter { |
|
||||
vertical-align: middle; |
|
||||
} |
|
||||
|
|
||||
#urls { |
|
||||
width: 90%; |
|
||||
height: 100%; |
|
||||
} |
|
||||
|
|
||||
#trackersUrls { |
|
||||
width: 90%; |
|
||||
height: 100%; |
|
||||
} |
|
||||
|
|
||||
#Filters ul { |
|
||||
list-style-type: none; |
|
||||
} |
|
||||
|
|
||||
#Filters ul li { |
|
||||
margin-left: -16px; |
|
||||
} |
|
||||
|
|
||||
#Filters ul img { |
|
||||
padding: 2px 4px; |
|
||||
vertical-align: middle; |
|
||||
width: 16px; |
|
||||
height: 16px; |
|
||||
} |
|
||||
|
|
||||
.selectedFilter { |
|
||||
background-color: #415A8D; |
|
||||
color: #FFFFFF; |
|
||||
} |
|
||||
|
|
||||
.selectedFilter a { |
|
||||
color: #FFFFFF; |
|
||||
} |
|
||||
|
|
||||
#properties { |
|
||||
background-color: #e5e5e5; |
|
||||
} |
|
||||
|
|
||||
a.propButton { |
|
||||
border: 1px solid rgb(85, 81, 91); |
|
||||
/*border-radius: 3px;*/ |
|
||||
padding: 2px; |
|
||||
margin-left: 3px; |
|
||||
margin-right: 3px; |
|
||||
} |
|
||||
|
|
||||
a.propButton img { |
|
||||
margin-bottom: -4px; |
|
||||
} |
|
||||
|
|
||||
.scrollableMenu { |
|
||||
overflow-y: auto; |
|
||||
overflow-x: hidden; |
|
||||
} |
|
||||
|
|
||||
/* context menu specific */ |
|
||||
|
|
||||
.contextMenu { |
|
||||
border: 1px solid #999; |
|
||||
padding: 0; |
|
||||
background: #eee; |
|
||||
list-style-type: none; |
|
||||
display: none; |
|
||||
} |
|
||||
|
|
||||
.contextMenu .separator { |
|
||||
border-top: 1px solid #999; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li { |
|
||||
margin: 0; |
|
||||
padding: 0; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li a { |
|
||||
display: block; |
|
||||
padding: 5px 20px 5px 5px; |
|
||||
font-size: 12px; |
|
||||
text-decoration: none; |
|
||||
font-family: tahoma, arial, sans-serif; |
|
||||
color: #000; |
|
||||
white-space: nowrap; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li a:hover { |
|
||||
background-color: #ddd; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li a.disabled { |
|
||||
color: #ccc; |
|
||||
font-style: italic; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li a.disabled:hover { |
|
||||
background-color: #eee; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li ul { |
|
||||
padding: 0; |
|
||||
border: 1px solid #999; |
|
||||
padding: 0; |
|
||||
background: #eee; |
|
||||
list-style-type: none; |
|
||||
position: absolute; |
|
||||
left: -999em; |
|
||||
z-index: 8000; |
|
||||
margin: -29px 0 0 100%; |
|
||||
width: 164px; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li ul li a { |
|
||||
position: relative; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li a.arrow-right, .contextMenu li a:hover.arrow-right { |
|
||||
background-image: url(../images/arrow-right.gif); |
|
||||
background-repeat: no-repeat; |
|
||||
background-position: right center; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li:hover ul, |
|
||||
.contextMenu li.ieHover ul, |
|
||||
.contextMenu li li.ieHover ul, |
|
||||
.contextMenu li li li.ieHover ul, |
|
||||
.contextMenu li li:hover ul, |
|
||||
.contextMenu li li li:hover ul { /* lists nested under hovered list items */ |
|
||||
left: auto; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li img { |
|
||||
width: 16px; |
|
||||
height: 16px; |
|
||||
margin-bottom: -4px; |
|
||||
-ms-interpolation-mode: bicubic; |
|
||||
} |
|
||||
|
|
||||
.contextMenu li input[type=checkbox] { |
|
||||
position: relative; |
|
||||
top: 3px; |
|
||||
} |
|
||||
|
|
||||
/* Sliders */ |
|
||||
|
|
||||
.slider { |
|
||||
clear: both; |
|
||||
position: relative; |
|
||||
font-size: 12px; |
|
||||
font-weight: bold; |
|
||||
width: 400px; |
|
||||
margin-bottom: 15px; |
|
||||
} |
|
||||
|
|
||||
.sliderWrapper { |
|
||||
position: relative; |
|
||||
font-size: 1px; |
|
||||
line-height: 1px; |
|
||||
height: 9px; |
|
||||
width: 422px; |
|
||||
} |
|
||||
|
|
||||
.sliderarea { |
|
||||
position: absolute; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
height: 7px; |
|
||||
width: 420px; |
|
||||
font-size: 1px; |
|
||||
line-height: 1px; |
|
||||
background: #f2f2f2 url(../images/slider-area.gif) repeat-x; |
|
||||
border: 1px solid #a3a3a3; |
|
||||
border-bottom: 1px solid #ccc; |
|
||||
border-left: 1px solid #ccc; |
|
||||
margin: 0; |
|
||||
padding: 0; |
|
||||
overflow: hidden; |
|
||||
} |
|
||||
|
|
||||
.sliderknob { |
|
||||
position: absolute; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
height: 9px; |
|
||||
width: 19px; |
|
||||
font-size: 1px; |
|
||||
line-height: 1px; |
|
||||
background: url(../images/knob.gif) no-repeat; |
|
||||
cursor: pointer; |
|
||||
overflow: hidden; |
|
||||
z-index: 2; |
|
||||
} |
|
||||
|
|
||||
.update { |
|
||||
padding-bottom: 5px; |
|
||||
} |
|
||||
|
|
||||
.mochaToolButton { |
|
||||
margin-right: 10px; |
|
||||
} |
|
||||
|
|
||||
/* Mocha Customization */ |
|
||||
|
|
||||
#mochaToolbar { |
|
||||
margin-top: 5px; |
|
||||
position: relative; |
|
||||
height: 29px; |
|
||||
overflow-y: hidden; |
|
||||
} |
|
||||
|
|
||||
#mochaToolbar .divider { |
|
||||
background-image: url(../images/toolbox-divider.gif); |
|
||||
background-repeat: no-repeat; |
|
||||
background-position: left center; |
|
||||
padding-left: 14px; |
|
||||
padding-top: 15px; |
|
||||
} |
|
||||
|
|
||||
.MyMenuIcon { |
|
||||
margin-left: -18px; |
|
||||
margin-bottom: -3px; |
|
||||
padding-right: 5px; |
|
||||
} |
|
||||
|
|
||||
#mainWindowTabs { |
|
||||
float: right; |
|
||||
margin: 4px 5px 0 0; |
|
||||
} |
|
||||
|
|
||||
#torrentsFilterToolbar { |
|
||||
float: right; |
|
||||
margin-right: 30px; |
|
||||
} |
|
||||
|
|
||||
#torrentsFilterInput { |
|
||||
width: 160px; |
|
||||
padding-left: 2em; |
|
||||
background-image: url("../icons/edit-find.svg"); |
|
||||
background-repeat: no-repeat; |
|
||||
background-size: 1.5em; |
|
||||
background-position: left; |
|
||||
} |
|
||||
|
|
||||
#torrentFilesFilterToolbar { |
|
||||
float: right; |
|
||||
margin-right: 30px; |
|
||||
} |
|
||||
|
|
||||
#torrentFilesFilterInput { |
|
||||
width: 160px; |
|
||||
padding-left: 2em; |
|
||||
background-image: url("../icons/edit-find.svg"); |
|
||||
background-repeat: no-repeat; |
|
||||
background-size: 1.5em; |
|
||||
background-position: left; |
|
||||
} |
|
||||
|
|
||||
/* Tri-state checkbox */ |
|
||||
|
|
||||
label.tristate { |
|
||||
background: url(../images/3-state-checkbox.gif) 0 0 no-repeat; |
|
||||
display: block; |
|
||||
float: left; |
|
||||
height: 13px; |
|
||||
margin: .15em 8px 5px 0px; |
|
||||
overflow: hidden; |
|
||||
text-indent: -999em; |
|
||||
width: 13px; |
|
||||
} |
|
||||
|
|
||||
label.checked { |
|
||||
background-position: 0 -13px; |
|
||||
} |
|
||||
|
|
||||
label.partial { |
|
||||
background-position: 0 -26px; |
|
||||
} |
|
||||
|
|
||||
fieldset.settings { |
|
||||
border: solid 1px black; |
|
||||
border-radius: 8px; |
|
||||
-webkit-border-radius: 8px; |
|
||||
-moz-border-radius: 8px; |
|
||||
padding: 4px 4px 4px 10px; |
|
||||
} |
|
||||
|
|
||||
fieldset.settings legend { |
|
||||
margin-left: 8px; |
|
||||
padding: 4px; |
|
||||
font-weight: bold; |
|
||||
} |
|
||||
|
|
||||
fieldset.settings label { |
|
||||
padding: 2px; |
|
||||
} |
|
||||
|
|
||||
fieldset.settings + div.formRow { |
|
||||
margin-top: 10px; |
|
||||
} |
|
||||
|
|
||||
div.formRow { |
|
||||
clear: left; |
|
||||
display: block; |
|
||||
} |
|
||||
|
|
||||
.filterTitle { |
|
||||
font-weight: bold; |
|
||||
text-transform: uppercase; |
|
||||
padding-left: 5px; |
|
||||
padding-top: 5px; |
|
||||
display: block; |
|
||||
overflow: hidden; |
|
||||
white-space: nowrap; |
|
||||
text-overflow: ellipsis; |
|
||||
} |
|
||||
|
|
||||
.filterTitle img { |
|
||||
width: 16px; |
|
||||
height: 16px; |
|
||||
margin-bottom: -3px; |
|
||||
padding: 0 5px; |
|
||||
} |
|
||||
|
|
||||
.filterTitle img.rotate { |
|
||||
transform: rotate(270deg); |
|
||||
} |
|
||||
|
|
||||
ul.filterList { |
|
||||
margin: 0 0 0 16px; |
|
||||
padding-left: 0; |
|
||||
} |
|
||||
|
|
||||
ul.filterList a { |
|
||||
display: block; |
|
||||
overflow: hidden; |
|
||||
white-space: nowrap; |
|
||||
text-overflow: ellipsis; |
|
||||
color: inherit; |
|
||||
} |
|
||||
|
|
||||
ul.filterList li:hover { |
|
||||
background-color: #e60; |
|
||||
} |
|
||||
|
|
||||
ul.filterList li:hover a { |
|
||||
color: white; |
|
||||
} |
|
||||
|
|
||||
td.generalLabel { |
|
||||
white-space: nowrap; |
|
||||
text-align: right; |
|
||||
width: 1px; |
|
||||
vertical-align: top; |
|
||||
} |
|
||||
|
|
||||
#torrentFilesTableDiv { |
|
||||
line-height: 20px; |
|
||||
} |
|
||||
|
|
||||
#torrentTrackersTableDiv, |
|
||||
#webseedsTable { |
|
||||
line-height: 25px; |
|
||||
} |
|
||||
|
|
||||
.filesTableCollapseIcon { |
|
||||
width: 15px; |
|
||||
height: 15px; |
|
||||
cursor: pointer; |
|
||||
margin-bottom: -3px; |
|
||||
padding-right: 5px; |
|
||||
} |
|
||||
|
|
||||
.filesTableCollapseIcon.rotate { |
|
||||
transform: rotate(270deg); |
|
||||
margin-bottom: -1px; |
|
||||
} |
|
||||
|
|
||||
.unselectable { |
|
||||
-webkit-touch-callout: none; |
|
||||
-webkit-user-select: none; |
|
||||
-khtml-user-select: none; |
|
||||
-moz-user-select: none; |
|
||||
-ms-user-select: none; |
|
||||
user-select: none; |
|
||||
} |
|
||||
|
|
||||
#prop_general { |
|
||||
padding: 2px; |
|
||||
} |
|
||||
|
|
||||
#watched_folders_tab { |
|
||||
border-collapse: collapse; |
|
||||
} |
|
||||
|
|
||||
#watched_folders_tab td, #watched_folders_tab th { |
|
||||
padding: 2px 4px; |
|
||||
border: 1px solid black; |
|
||||
} |
|
||||
|
|
||||
.select-watched-folder-editable { |
|
||||
position: relative; |
|
||||
background-color: white; |
|
||||
border: solid grey 1px; |
|
||||
width: 160px; |
|
||||
height: 20px; |
|
||||
} |
|
||||
|
|
||||
.select-watched-folder-editable select { |
|
||||
position: absolute; |
|
||||
top: 0px; |
|
||||
bottom: 0px; |
|
||||
left: 0px; |
|
||||
border: none; |
|
||||
width: 160px; |
|
||||
margin: 0; |
|
||||
} |
|
||||
|
|
||||
.select-watched-folder-editable input { |
|
||||
position: absolute; |
|
||||
top: 0px; |
|
||||
left: 0px; |
|
||||
width: 140px; |
|
||||
padding: 1px; |
|
||||
border: none; |
|
||||
} |
|
||||
|
|
||||
.select-watched-folder-editable select:focus, .select-editable input:focus { |
|
||||
outline: none; |
|
||||
} |
|
||||
|
|
||||
/* |
|
||||
* Workaround to prevent the transfer list from |
|
||||
* disappearing when zooming in the browser. |
|
||||
*/ |
|
||||
#filtersColumn_handle { |
|
||||
margin-left: -1px; |
|
||||
} |
|
||||
|
|
||||
#error_div { |
|
||||
float: left; |
|
||||
font-size: 14px; |
|
||||
} |
|
||||
|
|
||||
.combo_priority { |
|
||||
font-size: 1em; |
|
||||
} |
|
||||
|
|
||||
td.statusBarSeparator { |
|
||||
width: 22px; |
|
||||
background-image: url('../images/toolbox-divider.gif'); |
|
||||
background-repeat: no-repeat; |
|
||||
background-position: center 1px; |
|
||||
background-size: 2px 18px; |
|
||||
} |
|
||||
|
|
||||
/* Statistics window */ |
|
||||
.statisticsValue { |
|
||||
text-align: right; |
|
||||
} |
|
||||
|
|
||||
/* Search tab */ |
|
||||
|
|
||||
#SearchPanel, #SearchPanel_wrapper, #SearchPanel_pad { |
|
||||
height: inherit; |
|
||||
} |
|
||||
|
|
||||
#searchResults { |
|
||||
padding: 0 20px; |
|
||||
height: 100%; |
|
||||
} |
|
||||
|
|
||||
#searchResultsTableContainer { |
|
||||
height: calc(100% - 140px); |
|
||||
-moz-height: calc(100% - 140px); |
|
||||
-webkit-height: calc(100% - 140px); |
|
||||
overflow: auto; |
|
||||
} |
|
||||
|
|
||||
#searchResultsTableDiv { |
|
||||
height: calc(100% - 26px) !important; |
|
||||
-moz-height: calc(100% - 26px) !important; |
|
||||
-webkit-height: calc(100% - 26px) !important; |
|
||||
} |
|
||||
|
|
||||
#searchResults .dynamicTable { |
|
||||
width: 100%; |
|
||||
} |
|
||||
|
|
||||
#searchResults .numSearchResults { |
|
||||
font-style: italic; |
|
||||
} |
|
||||
|
|
||||
.red { |
|
||||
color: red; |
|
||||
} |
|
||||
|
|
||||
.green { |
|
||||
color: green; |
|
||||
} |
|
||||
|
|
||||
.searchPluginsTableRow { |
|
||||
cursor: pointer; |
|
||||
} |
|
||||
|
|
||||
#torrentFilesTableDiv .dynamicTable tr.nonAlt { |
|
||||
background-color: #fff; |
|
||||
} |
|
||||
|
|
||||
#torrentFilesTableDiv .dynamicTable tr.nonAlt.selected { |
|
||||
background-color: #354158; |
|
||||
color: #fff; |
|
||||
} |
|
||||
|
|
||||
#torrentFilesTableDiv .dynamicTable tr.nonAlt:hover { |
|
||||
background-color: #ee6600; |
|
||||
color: #fff; |
|
||||
} |
|
@ -1,176 +0,0 @@ |
|||||
<!DOCTYPE html> |
|
||||
<html lang="${LANG}"> |
|
||||
|
|
||||
<head> |
|
||||
<meta charset="UTF-8" /> |
|
||||
<title>QBT_TR(Add Torrent Links)QBT_TR[CONTEXT=downloadFromURL]</title> |
|
||||
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" /> |
|
||||
<link rel="stylesheet" href="css/Window.css?v=${CACHEID}" type="text/css" /> |
|
||||
<script src="scripts/lib/mootools-1.2-core-yc.js"></script> |
|
||||
<script src="scripts/lib/mootools-1.2-more.js"></script> |
|
||||
<script src="scripts/download.js?v=${CACHEID}"></script> |
|
||||
<script src="scripts/misc.js?locale=${LANG}&v=${CACHEID}"></script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<iframe id="download_frame" name="download_frame" class="invisible" src="about:blank"></iframe> |
|
||||
<form action="api/v2/torrents/add" enctype="multipart/form-data" method="post" id="downloadForm" style="text-align: center;" target="download_frame" autocorrect="off" autocapitalize="none"> |
|
||||
<div style="text-align: center;"> |
|
||||
<br/> |
|
||||
<h2 class="vcenter">QBT_TR(Download Torrents from their URLs or Magnet links)QBT_TR[CONTEXT=HttpServer]</h2> |
|
||||
<textarea id="urls" rows="10" name="urls"></textarea> |
|
||||
<p>QBT_TR(Only one link per line)QBT_TR[CONTEXT=HttpServer]</p> |
|
||||
<fieldset class="settings" style="border: 0; text-align: left; margin-top: 6px;"> |
|
||||
<table style="margin: auto;"> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="autoTMM">QBT_TR(Torrent Management Mode:)QBT_TR[CONTEXT=AddNewTorrentDialog]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<select id="autoTMM" name="autoTMM" onchange="qBittorrent.Download.changeTMM(this)"> |
|
||||
<option selected value="false">Manual</option> |
|
||||
<option value="true">Automatic</option> |
|
||||
</select> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="savepath">QBT_TR(Save files to location:)QBT_TR[CONTEXT=HttpServer]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<input type="text" id="savepath" name="savepath" style="width: 16em;" /> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="cookie">QBT_TR(Cookie:)QBT_TR[CONTEXT=HttpServer]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<input type="text" id="cookie" name="cookie" style="width: 16em;" /> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="rename">QBT_TR(Rename torrent)QBT_TR[CONTEXT=HttpServer]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<input type="text" id="rename" name="rename" style="width: 16em;" /> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="category">QBT_TR(Category:)QBT_TR[CONTEXT=AddNewTorrentDialog]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<div class="select-watched-folder-editable"> |
|
||||
<select id="categorySelect" onchange="qBittorrent.Download.changeCategorySelect(this)"> |
|
||||
<option selected value="\other"></option> |
|
||||
</select> |
|
||||
<input name="category" type="text" /> |
|
||||
</div> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="startTorrent">QBT_TR(Start torrent)QBT_TR[CONTEXT=AddNewTorrentDialog]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<input type="hidden" id="startTorrentHidden" name="paused" /> |
|
||||
<input type="checkbox" id="startTorrent" /> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="skip_checking">QBT_TR(Skip hash check)QBT_TR[CONTEXT=AddNewTorrentDialog]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<input type="checkbox" id="skip_checking" name="skip_checking" value="true" /> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="contentLayout">QBT_TR(Content layout:)QBT_TR[CONTEXT=AddNewTorrentDialog]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<select id="contentLayout" name="contentLayout"> |
|
||||
<option selected value="Original">QBT_TR(Original)QBT_TR[CONTEXT=AddNewTorrentDialog]</option> |
|
||||
<option value="Subfolder">QBT_TR(Create subfolder)QBT_TR[CONTEXT=AddNewTorrentDialog]</option> |
|
||||
<option value="NoSubfolder">QBT_TR(Don't create subfolder)QBT_TR[CONTEXT=AddNewTorrentDialog]</option> |
|
||||
</select> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="sequentialDownload">QBT_TR(Download in sequential order)QBT_TR[CONTEXT=TransferListWidget]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<input type="checkbox" id="sequentialDownload" name="sequentialDownload" value="true" /> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="firstLastPiecePrio">QBT_TR(Download first and last pieces first)QBT_TR[CONTEXT=TransferListWidget]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<input type="checkbox" id="firstLastPiecePrio" name="firstLastPiecePrio" value="true" /> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="dlLimitText">QBT_TR(Limit download rate)QBT_TR[CONTEXT=HttpServer]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<input type="hidden" id="dlLimitHidden" name="dlLimit" /> |
|
||||
<input type="text" id="dlLimitText" style="width: 16em;" placeholder="KiB/s" /> |
|
||||
</td> |
|
||||
</tr> |
|
||||
<tr> |
|
||||
<td> |
|
||||
<label for="upLimitText">QBT_TR(Limit upload rate)QBT_TR[CONTEXT=HttpServer]</label> |
|
||||
</td> |
|
||||
<td> |
|
||||
<input type="hidden" id="upLimitHidden" name="upLimit" /> |
|
||||
<input type="text" id="upLimitText" style="width: 16em;" placeholder="KiB/s" /> |
|
||||
</td> |
|
||||
</tr> |
|
||||
</table> |
|
||||
<div id="submitbutton" style="margin-top: 12px; text-align: center;"> |
|
||||
<button type="submit" id="submitButton">QBT_TR(Download)QBT_TR[CONTEXT=downloadFromURL]</button> |
|
||||
</div> |
|
||||
</fieldset> |
|
||||
</div> |
|
||||
</form> |
|
||||
<script> |
|
||||
'use strict'; |
|
||||
|
|
||||
const encodedUrls = new URI().getData('urls'); |
|
||||
if (encodedUrls) { |
|
||||
const urls = encodedUrls.split('|').map(function(url) { |
|
||||
return decodeURIComponent(url); |
|
||||
}); |
|
||||
|
|
||||
if (urls.length) |
|
||||
$('urls').set('value', urls.join("\n")); |
|
||||
} |
|
||||
|
|
||||
let submitted = false; |
|
||||
|
|
||||
$('downloadForm').addEventListener("submit", function() { |
|
||||
$('startTorrentHidden').value = $('startTorrent').checked ? 'false' : 'true'; |
|
||||
|
|
||||
$('dlLimitHidden').value = $('dlLimitText').value.toInt() * 1024; |
|
||||
$('upLimitHidden').value = $('upLimitText').value.toInt() * 1024; |
|
||||
|
|
||||
$('download_spinner').style.display = "block"; |
|
||||
submitted = true; |
|
||||
}); |
|
||||
|
|
||||
$('download_frame').addEventListener("load", function() { |
|
||||
if (submitted) |
|
||||
window.parent.closeWindows(); |
|
||||
}); |
|
||||
</script> |
|
||||
<div id="download_spinner" class="mochaSpinner"></div> |
|
||||
</body> |
|
||||
|
|
||||
</html> |
|
@ -1,87 +0,0 @@ |
|||||
<!DOCTYPE html> |
|
||||
<html lang="${LANG}"> |
|
||||
|
|
||||
<head> |
|
||||
<meta charset="UTF-8" /> |
|
||||
<title>QBT_TR(Torrent Download Speed Limiting)QBT_TR[CONTEXT=TransferListWidget]</title> |
|
||||
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" /> |
|
||||
<script src="scripts/lib/mootools-1.2-core-yc.js"></script> |
|
||||
<script src="scripts/lib/mootools-1.2-more.js"></script> |
|
||||
<script src="scripts/lib/mocha-0.9.6-yc.js"></script> |
|
||||
<script src="scripts/speedslider.js?v=${CACHEID}"></script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div style="width: 100%; text-align: center; margin: 0 auto; overflow: hidden"> |
|
||||
<div id="dllimitSlider" class="slider"> |
|
||||
<div id="dllimitUpdate" class="update">QBT_TR(Download limit:)QBT_TR[CONTEXT=PropertiesWidget] <input id="dllimitUpdatevalue" size="6" placeholder="∞" style="text-align: center;"> <span id="dlLimitUnit">QBT_TR(KiB/s)QBT_TR[CONTEXT=SpeedLimitDialog]</span></div> |
|
||||
<div class="sliderWrapper"> |
|
||||
<div id="dllimitSliderknob" class="sliderknob"></div> |
|
||||
<div id="dllimitSliderarea" class="sliderarea"></div> |
|
||||
</div> |
|
||||
<div class="clear"></div> |
|
||||
</div> |
|
||||
<script> |
|
||||
'use strict'; |
|
||||
|
|
||||
const hashes = new URI().getData('hashes').split('|'); |
|
||||
const setDlLimit = function() { |
|
||||
const limit = $("dllimitUpdatevalue").value.toInt() * 1024; |
|
||||
if (hashes[0] == "global") { |
|
||||
new Request({ |
|
||||
url: 'api/v2/transfer/setDownloadLimit', |
|
||||
method: 'post', |
|
||||
data: { |
|
||||
'limit': limit |
|
||||
}, |
|
||||
onComplete: function() { |
|
||||
window.parent.updateMainData(); |
|
||||
window.parent.closeWindows(); |
|
||||
} |
|
||||
}).send(); |
|
||||
} |
|
||||
else { |
|
||||
new Request({ |
|
||||
url: 'api/v2/torrents/setDownloadLimit', |
|
||||
method: 'post', |
|
||||
data: { |
|
||||
'hashes': hashes.join('|'), |
|
||||
'limit': limit |
|
||||
}, |
|
||||
onComplete: function() { |
|
||||
window.parent.closeWindows(); |
|
||||
} |
|
||||
}).send(); |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
<input type="button" id="applyButton" value="QBT_TR(Apply)QBT_TR[CONTEXT=HttpServer]" onclick="setDlLimit()" /> |
|
||||
</div> |
|
||||
|
|
||||
<script> |
|
||||
new Keyboard({ |
|
||||
defaultEventType: 'keydown', |
|
||||
events: { |
|
||||
'Enter': function(event) { |
|
||||
$('applyButton').click(); |
|
||||
event.preventDefault(); |
|
||||
}, |
|
||||
'Escape': function(event) { |
|
||||
window.parent.closeWindows(); |
|
||||
event.preventDefault(); |
|
||||
}, |
|
||||
'Esc': function(event) { |
|
||||
window.parent.closeWindows(); |
|
||||
event.preventDefault(); |
|
||||
} |
|
||||
} |
|
||||
}).activate(); |
|
||||
|
|
||||
$('dllimitUpdatevalue').focus(); |
|
||||
|
|
||||
MochaUI.addDlLimitSlider(hashes); |
|
||||
</script> |
|
||||
|
|
||||
</body> |
|
||||
|
|
||||
</html> |
|
@ -1,72 +0,0 @@ |
|||||
<!DOCTYPE html> |
|
||||
<html lang="${LANG}"> |
|
||||
|
|
||||
<head> |
|
||||
<meta charset="UTF-8" /> |
|
||||
<title>QBT_TR(Tracker editing)QBT_TR[CONTEXT=TrackerListWidget]</title> |
|
||||
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" /> |
|
||||
<script src="scripts/lib/mootools-1.2-core-yc.js"></script> |
|
||||
<script src="scripts/lib/mootools-1.2-more.js"></script> |
|
||||
<script> |
|
||||
'use strict'; |
|
||||
|
|
||||
window.addEvent('domready', function() { |
|
||||
new Keyboard({ |
|
||||
defaultEventType: 'keydown', |
|
||||
events: { |
|
||||
'Enter': function(event) { |
|
||||
$('editTrackerButton').click(); |
|
||||
event.preventDefault(); |
|
||||
}, |
|
||||
'Escape': function(event) { |
|
||||
window.parent.closeWindows(); |
|
||||
event.preventDefault(); |
|
||||
}, |
|
||||
'Esc': function(event) { |
|
||||
window.parent.closeWindows(); |
|
||||
event.preventDefault(); |
|
||||
} |
|
||||
} |
|
||||
}).activate(); |
|
||||
|
|
||||
const currentUrl = new URI().getData('url'); |
|
||||
if (!currentUrl) |
|
||||
return false; |
|
||||
|
|
||||
const decodedUrl = decodeURIComponent(currentUrl); |
|
||||
$('trackerUrl').value = decodedUrl; |
|
||||
$('trackerUrl').focus(); |
|
||||
|
|
||||
$('editTrackerButton').addEvent('click', function(e) { |
|
||||
new Event(e).stop(); |
|
||||
const hash = new URI().getData('hash'); |
|
||||
new Request({ |
|
||||
url: 'api/v2/torrents/editTracker', |
|
||||
method: 'post', |
|
||||
data: { |
|
||||
hash: hash, |
|
||||
origUrl: decodedUrl, |
|
||||
newUrl: $('trackerUrl').value |
|
||||
}, |
|
||||
onComplete: function() { |
|
||||
window.parent.closeWindows(); |
|
||||
} |
|
||||
}).send(); |
|
||||
}); |
|
||||
}); |
|
||||
</script> |
|
||||
</head> |
|
||||
|
|
||||
<body> |
|
||||
<div style="text-align: center;"> |
|
||||
<br/> |
|
||||
<h2 class="vcenter">QBT_TR(Tracker URL:)QBT_TR[CONTEXT=TrackerListWidget]</h2> |
|
||||
<div style="text-align: center; padding-top: 10px;"> |
|
||||
<input id="trackerUrl" style="width: 90%;" /> |
|
||||
</div> |
|
||||
<br/> |
|
||||
<input type="button" value="QBT_TR(Edit)QBT_TR[CONTEXT=HttpServer]" id="editTrackerButton" /> |
|
||||
</div> |
|
||||
</body> |
|
||||
|
|
||||
</html> |
|
@ -1,12 +0,0 @@ |
|||||
# qBittorrent Icons |
|
||||
|
|
||||
Initial `qbt-theme` icons created by Bert Verhelst (<verhelstbert@gmail.com>). |
|
||||
|
|
||||
Icons are based on the `Font-Awesome` icon-set: [link](http://fontawesome.io/icons/). |
|
||||
|
|
||||
If you need to add an icon that qBittorrent does not already use, you can take an icon from the SVG fork of `Font-Awesome`: [link](https://github.com/encharm/Font-Awesome-SVG-PNG). |
|
||||
|
|
||||
|
|
||||
## Optimizing SVG |
|
||||
|
|
||||
Use [svgcleaner](https://github.com/RazrFalcon/svgcleaner) |
|
Before Width: | Height: | Size: 478 B |
Before Width: | Height: | Size: 878 B |
Before Width: | Height: | Size: 4.2 KiB |
@ -1,22 +0,0 @@ |
|||||
module.exports = function(grunt) { |
|
||||
|
|
||||
grunt.initConfig({ |
|
||||
svg2png: { |
|
||||
all: { |
|
||||
options:{ |
|
||||
size: 256 |
|
||||
}, |
|
||||
files: [ |
|
||||
{ |
|
||||
src: ['icons/*.svg'] |
|
||||
} |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
}); |
|
||||
|
|
||||
grunt.loadNpmTasks('grunt-svg2png'); |
|
||||
|
|
||||
grunt.registerTask('default', ['svg2png']); |
|
||||
|
|
||||
} |
|
@ -1,13 +0,0 @@ |
|||||
{ |
|
||||
"name": "build-icons", |
|
||||
"version": "1.0.0", |
|
||||
"description": "Convert svg icons to png", |
|
||||
"main": "index.js", |
|
||||
"dependencies": {}, |
|
||||
"devDependencies": { |
|
||||
"grunt": "^0.4.5", |
|
||||
"grunt-svg2png": "git+https://git@github.com/bertyhell/grunt-svg2png.git" |
|
||||
}, |
|
||||
"author": "Bert Verhelst", |
|
||||
"license": "ISC" |
|
||||
} |
|
@ -1,14 +0,0 @@ |
|||||
Convert SVG icons to PNG |
|
||||
------------------------ |
|
||||
|
|
||||
install npm |
|
||||
|
|
||||
Execute: |
|
||||
``` |
|
||||
npm install |
|
||||
``` |
|
||||
|
|
||||
Convert icons by running: |
|
||||
``` |
|
||||
grunt |
|
||||
``` |
|
Before Width: | Height: | Size: 338 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 187 B |
Before Width: | Height: | Size: 316 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 367 B |
Before Width: | Height: | Size: 663 B |
Before Width: | Height: | Size: 796 B |
Before Width: | Height: | Size: 585 B |
Before Width: | Height: | Size: 367 B |
Before Width: | Height: | Size: 1013 B |
Before Width: | Height: | Size: 801 B |
Before Width: | Height: | Size: 453 B |
Before Width: | Height: | Size: 817 B |
Before Width: | Height: | Size: 824 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 732 B |
Before Width: | Height: | Size: 711 B |
Before Width: | Height: | Size: 293 B |
Before Width: | Height: | Size: 311 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 805 B |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 478 B |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 780 B |
Before Width: | Height: | Size: 782 B |
Before Width: | Height: | Size: 928 B |
Before Width: | Height: | Size: 425 B |
Before Width: | Height: | Size: 189 B |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 310 B |
Before Width: | Height: | Size: 310 B |
Before Width: | Height: | Size: 310 B |
Before Width: | Height: | Size: 310 B |
Before Width: | Height: | Size: 682 B |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 231 B |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 703 B |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 201 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 215 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 475 B |
Before Width: | Height: | Size: 469 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 580 B |
Before Width: | Height: | Size: 163 B |
Before Width: | Height: | Size: 254 B |
Before Width: | Height: | Size: 332 B |
Before Width: | Height: | Size: 250 B |
Before Width: | Height: | Size: 279 B |
Before Width: | Height: | Size: 1002 B |
Before Width: | Height: | Size: 435 B |
Before Width: | Height: | Size: 258 B |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 200 B |
Before Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 502 B |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 527 B |
Before Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 671 B |
Before Width: | Height: | Size: 3.0 KiB |