Commit d1803be6 authored by SVN-Git Migration's avatar SVN-Git Migration

Imported Upstream version 0.5.2

parent 920f90dd
-------------------------------------------------------------------------------
0.5.2 Final by The SABnzbd-Team
-------------------------------------------------------------------------------
- API: &nzbname= was ignored for some sites
- API: Server rename did not work properly
- Remember end-of-queue action for next end-of-queue
- Some updates to Danish
-------------------------------------------------------------------------------
0.5.2 RC1 by The SABnzbd-Team
-------------------------------------------------------------------------------
- Fixed: Large queue caused very slow UI and high memory usage
- Fixed: Some very large rar sets failed to unpack
- Fixed: garbled emails were sent
- Python user scripts now run properly on OSX
- Fixed: SeasonSort could produce trailing spaces, which fail on Windows
- Fixed: unpacking errors not properly reported to user script
- Keep trying when receiving garbage from nzbmatrix.com
- Add total-size fields to API-call History.
- Auto-search for free port when specified port is occupied
- Improve reporting of newzbin errors
-------------------------------------------------------------------------------
0.5.1 Final by The SABnzbd-Team
-------------------------------------------------------------------------------
- Fix accented character problems in emails
- Warn when user doesn't have permission to use a web port (Linux/OSX)
-------------------------------------------------------------------------------
0.5.1 RC2 by The SABnzbd-Team
-------------------------------------------------------------------------------
- Accept comma-separated email address in "email_to" option.
- Allow manual retry of URL-based NZB fetches when a bad NZB is received
- Add INI-file option "size_limit" that sets any oversized job
to paused and low priority.
- Added French translation of email template
- Add Danish translation
-------------------------------------------------------------------------------
0.5.1 RC1 by The SABnzbd-Team
-------------------------------------------------------------------------------
- Add 'size_limit' option. Any job bigger than this limit will be set to
low priority and be paused.
- TV Season sort now has "affected categories" too. Check your settings!!
- Fixed problems that could lead to an infinite unpacking loop
(when using a "sick" NZB and using +U instead of +D postprocessing)
- Duplicate title checking in RSS is now done across all feeds
- Fixed issues with accented characters in NZB names when using RSS
- Fixed issues with accented characters in category folder names when using RSS
- Plush: fix nzo range selection when clicking checkboxes
- When detecting an unsupported unrar on Posix systems, drop unsupported features
(This may lead to files being lost when duplicate names exist.)
- Sorting examples were sometimes wrong
- Sorting couldn't handle some pattern combinations
- Fixed priority handling for RSS feeds and newzbin bookmarks
- Fixed crash occuring when user profile contains characters outside ISO-8859-1
- Allow nzb-backup folder field to be cleared
- When using only manual newzbin bookmark reading, allow automatic un-bookmarking
- Fixed several translation errors and omissions
- Keep Windows awake during post-processing of last job (while queue is already empty)
- Make it possible to run Python user scripts on OSX
-------------------------------------------------------------------------------
0.5.0Final by The SABnzbd-Team
-------------------------------------------------------------------------------
......
SABnzbd+ v0.5.0
SABnzbd+ v0.5.2
-------------------------------------------------------------------------------
0) LICENSE
......@@ -66,6 +66,7 @@ Essential modules for python 2.4 ONLY
Optional modules
unrar >= 3.90+ http://www.rarlab.com/rar_add.htm
unrar < 3.80 Reduced funtionality
unzip >= 5.52 http://www.info-zip.org/
Optional modules Windows
......
......@@ -2,6 +2,10 @@
*** Known issues ***
*******************************************
- To prevent unexpectedly large NZBs from eating your quotum you can set
the option 'size_limit' in the INI file.
Any NZB larger than this size will be set to paused and get a low priority.
- When par2 or unrar hang up, never just stop SABnzbd.
Instead use your operating system's task manager to stop the par2 or unrar program.
Forcing SABnzbd to quit may damage your queues.
......@@ -10,6 +14,12 @@
in Config->Switches.
This will force the use of the old and tried, but slower par2-classic program.
- A bug in Windows 7 may cause severe memory leaks when you use SABnzbd in
combination with some virus scanners and firewals.
Install this hotfix:
Description: http://support.microsoft.com/kb/979223/en-us
Download location: http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=979223&kbln=en-us
- Windows cannot handle pathnames longer than 254 characters.
Currently, SABnzbd doesn't handle this problem gracefully.
We have added the INI-only option "folder_length_max" in which you can set
......@@ -25,13 +35,6 @@
no_penalties = 1
See: http://wiki.sabnzbd.org/configure-special
- On OSX you will have problems running Python user scripts.
This is caused by wrong behaviour of the Python-to-app converter we use.
Currently we cannot fix this. As a work-around you need to add
the -E parameter to the first line of your Python script.
Example:
#!/bin/python -E
- On OSX you may encounter downloaded files with foreign characters.
The par2 repair may fail when the files were created on a Windows system.
The problem is caused by the PAR2 utility and we cannot fix this now.
......
Metadata-Version: 1.0
Name: SABnzbd
Version: 0.5.0
Summary: SABnzbd-0.5.0
Version: 0.5.2
Summary: SABnzbd-0.5.2
Home-page: http://sourceforge.net/projects/sabnzbdplus
Author: The SABnzbd Team
Author-email: team@sabnzbd.org
......
*******************************************
*** This is SABnzbd 0.5.0 Final ***
*** This is SABnzbd 0.5.2 ***
*******************************************
SABnzbd is an open-source cross-platform binary newsreader.
It simplifies the process of downloading from Usenet dramatically,
......@@ -14,6 +14,14 @@ http://wiki.sabnzbd.org/
>>> PLEASE ALSO READ THE FILE "ISSUES.txt" <<<
*******************************************
*** Upgrading from 0.5.x ***
*******************************************
Stop SABnzbd.
Install new version over the old one
Start SABnzbd.
*******************************************
*** Upgrading from 0.4.x ***
*******************************************
......
......@@ -356,17 +356,21 @@ def GetProfileInfo(vista_plus):
pass
elif sabnzbd.DARWIN:
sabnzbd.DIR_APPDATA = '%s/Library/Application Support/SABnzbd' % (os.environ['HOME'])
sabnzbd.DIR_LCLDATA = sabnzbd.DIR_APPDATA
sabnzbd.DIR_HOME = os.environ['HOME']
ok = True
home = os.environ.get('HOME')
if home:
sabnzbd.DIR_APPDATA = '%s/Library/Application Support/SABnzbd' % home
sabnzbd.DIR_LCLDATA = sabnzbd.DIR_APPDATA
sabnzbd.DIR_HOME = home
ok = True
else:
# Unix/Linux
sabnzbd.DIR_APPDATA = '%s/.%s' % (os.environ['HOME'], DEF_WORKDIR)
sabnzbd.DIR_LCLDATA = sabnzbd.DIR_APPDATA
sabnzbd.DIR_HOME = os.environ['HOME']
ok = True
home = os.environ.get('HOME')
if home:
sabnzbd.DIR_APPDATA = '%s/.%s' % (home, DEF_WORKDIR)
sabnzbd.DIR_LCLDATA = sabnzbd.DIR_APPDATA
sabnzbd.DIR_HOME = home
ok = True
if not ok:
panic("Cannot access the user profile.",
......@@ -441,7 +445,7 @@ def get_webhost(cherryhost, cherryport, https_port):
cherryhost = '0.0.0.0'
info = socket.getaddrinfo(localhost, None)
for item in info:
ip = item[4][0]
ip = str(item[4][0])
if ip.startswith('169.254.'):
pass # Is an APIPA
elif ':' in ip:
......@@ -528,7 +532,9 @@ def get_webhost(cherryhost, cherryport, https_port):
if cherryport == https_port:
sabnzbd.cfg.ENABLE_HTTPS.set(False)
logging.error(Ta('error-sameHTTP-HTTPS'))
# Should have a translated message, but that's not available yet
#logging.error(Ta('error-sameHTTP-HTTPS'))
logging.error('HTTP and HTTPS ports cannot be the same')
return cherryhost, cherryport, browserhost, https_port
......@@ -545,15 +551,16 @@ def is_sabnzbd_running(url):
except:
return False
def find_free_port(host, currentport, i=0):
while i >=10 and currentport <= 49151:
def find_free_port(host, currentport):
n = 0
while n < 10 and currentport <= 49151:
try:
cherrypy.process.servers.check_port(host, currentport)
return currentport
except:
currentport+=5
i+=1
return -1
currentport += 5
n += 1
return 0
def check_for_sabnzbd(url, upload_nzbs):
# Check for a running instance of sabnzbd(same version) on this port
......@@ -852,7 +859,7 @@ def main():
port = find_free_port(browserhost, https_port)
if port > 0:
sabnzbd.cfg.HTTPS_PORT.set(port)
cherryport = port
https_port = port
## NonSSL
try:
cherrypy.process.servers.check_port(browserhost, cherryport)
......@@ -1121,7 +1128,8 @@ def main():
exit_sab(2)
else:
logging.debug("Failed to start web-interface: ", exc_info = True)
Bail_Out(browserhost, cherryport)
# When error 13 occurs, we have no access rights
Bail_Out(browserhost, cherryport, '13' in str(error))
except socket.error, error:
logging.debug("Failed to start web-interface: ", exc_info = True)
Bail_Out(browserhost, cherryport, access=True)
......
......@@ -11,9 +11,9 @@
<fieldset class="EntryFieldSet">
<legend>$T('emailOptions')</legend>
<strong>$T('opt-email_endjob')</strong><br/>
<input type="radio" name="email_endjob" value="0" <!--#if $email_endjob == 0 then "checked=1" else ""#--> /> $T('email-never')
<input type="radio" name="email_endjob" value="1" <!--#if $email_endjob == 1 then "checked=1" else ""#--> /> $T('email-always')
<input type="radio" name="email_endjob" value="2" <!--#if $email_endjob == 2 then "checked=1" else ""#--> /> $T('email-errorOnly')
<input type="radio" name="email_endjob" value="0" <!--#if $email_endjob == "0" then "checked=1" else ""#--> /> $T('email-never')
<input type="radio" name="email_endjob" value="1" <!--#if $email_endjob == "1" then "checked=1" else ""#--> /> $T('email-always')
<input type="radio" name="email_endjob" value="2" <!--#if $email_endjob == "2" then "checked=1" else ""#--> /> $T('email-errorOnly')
<br/><br/>
<label><input type="checkbox" name="email_full" value="1" <!--#if $email_full > 0 then "checked=1" else ""#--> /> <strong>$T('opt-email_full'):</strong></label><br>
$T('explain-email_full')<br/>
......
......@@ -28,8 +28,8 @@
input.toLowerCase()
input = input.replace(/%ext/g,'avi');
input = input.replace(/%sn/g,'$T("show-sp-name")');
input = input.replace(/%s.n/g,'$T("show-dot-name")');
input = input.replace(/%s_n/g,'$T("show-us-name")');
input = input.replace(/%s\.n/g,'$T("show-dot-name")');
input = input.replace(/%s\_n/g,'$T("show-us-name")');
input = input.replace(/%0s/g,'01');
input = input.replace(/%s/g,'1');
input = input.replace(/%en/g,'$T("ep-sp-name")');
......@@ -105,11 +105,11 @@
extra = input2.replace(/%1/g,'1');
var slash = "\\";
ext = extra + '.avi'
input = input.replace(/.%ext/g,ext);
input = input.replace(/\.%ext/g,ext);
input = input.replace(/%ext/g,'avi');
input = input.replace(/%title/g,'$T("movie-sp-name")');
input = input.replace(/%.title/g,'$T("movie-dot-name")');
input = input.replace(/%_title/g,'$T("movie-us-name")');
input = input.replace(/%\.title/g,'$T("movie-dot-name")');
input = input.replace(/%\_title/g,'$T("movie-us-name")');
input = input.replace(/%y/g,'2000');
input = input.replace(/%decade/g,'00');
input = input.replace(/%0decade/g,'2000');
......@@ -144,8 +144,8 @@
input.toLowerCase()
input = input.replace(/%ext/g,'avi');
input = input.replace(/%t/g,'$T("show-sp-name")');
input = input.replace(/%.t/g,'$T("show-dot-name")');
input = input.replace(/%_t/g,'$T("show-us-name")');
input = input.replace(/%\.t/g,'$T("show-dot-name")');
input = input.replace(/%\_t/g,'$T("show-us-name")');
input = input.replace(/%decade/g,'00');
input = input.replace(/%0decade/g,'2000');
input = input.replace(/%fn/g,'$T("sort-File")');
......@@ -176,6 +176,17 @@
<legend>$T('seriesSorting')</legend>
<input class="radio" type="checkbox" name="enable_tv_sorting" value="1" <!--#if $enable_tv_sorting > 0 then "checked=1" else ""#--> /> <strong>$T('opt-tvsort')</strong><br class="clear" />
<br class="clear" />
<strong>$T('affectedCat'):</strong>
<br class="clear" />
<select name="tv_cat" multiple="multiple" size=4 class="multiple_cats">
<!--#for $ct in $cat_list#-->
<!--#if $ct != 'Default'#-->
<option value="$ct" <!--#if $ct in $tv_categories then 'selected' else ''#--> >$Tspec($ct)</option>
<!--#end if#-->
<!--#end for#-->
</select>
<br class="clear" /><br class="clear" />
<a href="#toggle" onclick="javascript:showDiv('Keytable')">$T('sort-legenda')</a>
<div id="Keytable">
......
......@@ -73,7 +73,7 @@
<h3>$T('nzoDetails')</h3>
<form action="save" method="post">
<label class="label">$T('nzoName'):</label><br />
<input type="text" name="name" style="width:200px" size="80" value="$slot.filename">
<input type="text" name="name" style="width:400px" size="80" value="$slot.filename">
<br />
<label class="label">$T('pp'):</label><br />
<select name="pp">
......
# -*- coding: utf-8 -*-
# Dansk # Danmark
# Translation by "René (Jarhead) Larsen" <warzdk@gmail.com>
# Mobile
# misc
button-prev Foregående
button-next Næste
button-refresh Opdatere
button-close Luk
button-options Alternativ
page Side
confirm-delete Er du sikker på at du vil slette
warnings Advarsler
button-purgeQ Tom kø
confirm-purgeQ Vil du virkelig tømme køen?
button-purgeH Tøm historik
confirm-purgeH Vil du virkelig tømme historiken?
left Venster
# pause interval
button-pauseInterval Sæt pauseinterval
pauseInterval Pauseinterval
pause5m Pause 5 minutter
pause15m Pause 15 minutter
pause30m Pause 30 minutter
pause1h Pause 1 time
pause3h Pause 3 timer
pause6h Pause 6 timer
pause12h Pause 12 timer
pause24h Pause 24 timer
# queue sort
sort Sortere
sortAgeAsc Sortere efter alder <small>Ældst&rarr;Nyeste</small>
sortAgeDesc Sortere efter alder <small>Nyeste&rarr;Ældst</small>
sortNameAsc Sortere efter navn <small>A&rarr;Z</small>
sortNameDesc Sortere efter navn <small>Z&rarr;A</small>
sortSizeAsc Sortere efter størrelse <small>Mindst&rarr;Størst</small>
sortSizeDesc Sortere efter størrelse <small>Størst&rarr;Mindst</small>
# -*- coding: utf-8 -*-
# Dansk # Danmark
# Translation by "René (Jarhead) Larsen" <warzdk@gmail.com>
# Plush
# Menu
maxSpeed Max hastighed
options Plush Instillninger
refreshRate Opdateringsinterval
confirmDeleteQueue Bekræft Kø-fjernelse
confirmDeleteHistory Bekræft Historik-fjernelse
blockRefresh Block Refreshes on Hover
explain-blockRefresh Dette vil forhindre indhold i at blive opdateret når musens markør kører hen over køen
disabled Deaktiveret
addnzb Tilføj NZB
fetch Hente
uploadTip Upload: .nzb .rar .zip .gz
sort Sortere
sortAgeAsc Sortere efter Alder <small>(Ældst&rarr;Nyeste)</small>
sortAgeDesc Sortera efter Alder <small>(Nyeste&rarr;Ældst)</small>
sortNameAsc Sortere efter Navn <small>(A&rarr;Z)</small>
sortNameDesc Sortere efter Navn <small>(Z&rarr;A)</small>
sortSizeAsc Sortere efter Størrelse <small>(Mindst&rarr;Størst)</small>
sortSizeDesc Sortere efter Størrelse <small>(Størst&rarr;Mindst)</small>
pause5m Pause 5 minutter
pause15m Pause 15 minutter
pause30m Pause 30 minutter
pause1h Pause 1 time
pause3h Pause 3 timer
pause6h Pause 6 timer
pauseFor Pause i...
pauseForPrompt Pause i hvor mange minutter?
purge Slet
onQueueFinish Ved afslutning
warnings Advarsler
updateAvailable Opdatering tilgængelig
cmenu-scheduling Skabalon
# General
button-refresh Opdatere
left tilbage
page side
everything Alt
prev Foregående
next Næste
confirm Er du sikker?
confirmWithoutSavingPrompt Ændringerne er ikke gemt og vil blive mistet.
nzo-range Omfang
progress Fremgang
# Queue
idle Venter
remaining Resterende
notEnoughSpace Ikke nok diskplads til at fuldføre downloads.
freeSpace Ledig diskplas
freeSpaceTemp Ledig tempdiskplads
confirmPurgeQ Tøm køen?
# History
total Totalt
thisWeek Denne uge
thisMonth Denne måned
openSourceURL Åbn kildekode URL
openInfoURL Åbn informations URL
path Genvej
storage Opbevaring
viewScriptLog Vis scriptlogg
confirmPurgeH Tøm historiken?
......@@ -11,9 +11,9 @@
<legend><span class="config_sprite_container sprite_config_email_options">&nbsp;</span> $T('emailOptions')</legend>
<strong>$T('opt-email_endjob'):</strong><br/>
<input type="radio" name="email_endjob" value="0" <!--#if $email_endjob == 0 then "checked=1" else ""#--> /> $T('email-never')
<input type="radio" name="email_endjob" value="1" <!--#if $email_endjob == 1 then "checked=1" else ""#--> /> $T('email-always')
<input type="radio" name="email_endjob" value="2" <!--#if $email_endjob == 2 then "checked=1" else ""#--> /> $T('email-errorOnly')
<input type="radio" name="email_endjob" value="0" <!--#if $email_endjob == "0" then "checked=1" else ""#--> /> $T('email-never')
<input type="radio" name="email_endjob" value="1" <!--#if $email_endjob == "1" then "checked=1" else ""#--> /> $T('email-always')
<input type="radio" name="email_endjob" value="2" <!--#if $email_endjob == "2" then "checked=1" else ""#--> /> $T('email-errorOnly')
<br/><br/>
<input type="checkbox" name="email_full" value="1" <!--#if $email_full > 0 then "checked=1" else ""#--> />
......
......@@ -33,7 +33,7 @@
</tr>
<tr>
<td class="alignRight"><input type="checkbox" name="ssl" id="ssl" value="1" <!--#if int($have_ssl) == 0 then "disabled" else ""#-->/></td>
<td><label for="ssl"><strong>$T('srv-ssl')</strong> <!--#if int($have_ssl) == 0 then " $T('opt-notInstalled')" else ""#--></label></td>
<td><label for="ssl"><strong>$T('srv-ssl')</strong> <!--#if int($have_ssl) == 0 then $T('opt-notInstalled') else ""#--></label></td>
</tr>
<tr>
<td class="alignRight"><input type="checkbox" name="fillserver" id="fillserver" value="1"/></td>
......@@ -94,7 +94,7 @@
</tr>
<tr>
<td class="alignRight"><input type="checkbox" name="ssl" id="ssl$cur" value="1" <!--#if int($servers[$server]['ssl']) != 0 and int($have_ssl) == 1 then "checked=1" else ""#--> <!--#if int($have_ssl) == 0 then "disabled" else ""#--> /></td>
<td><label for="ssl$cur"><strong>$T('srv-ssl')</strong> <!--#if int($have_ssl) == 0 then " $T('opt-notInstalled')" else ""#--></label></td>
<td><label for="ssl$cur"><strong>$T('srv-ssl')</strong> <!--#if int($have_ssl) == 0 then $T('opt-notInstalled') else ""#--></label></td>
</tr>
<tr>
<td class="alignRight"><input type="checkbox" name="fillserver" id="fillserver$cur" value="1" <!--#if int($servers[$server]['fillserver']) != 0 then "checked=1" else ""#--> /></td>
......
......@@ -4,22 +4,22 @@
<script type="text/javascript">
// *********************************************************
// the following is for the Sorting Config -- author: switch
function tvAdd(val){
var tv = document.getElementById('tvfoldername');
var tv = document.getElementById('tvfoldername');
tv.value = tv.value + val;
previewtv();
}
function tvSet(val){
var tv = document.getElementById('tvfoldername');
var tv = document.getElementById('tvfoldername');
tv.value = val;
previewtv();
}
function tvClear(){
var tv = document.getElementById('tvfoldername');
var tv = document.getElementById('tvfoldername');
tv.value = '';
previewtv();
}
......@@ -29,8 +29,8 @@
input.toLowerCase()
input = input.replace(/%ext/g,'avi');
input = input.replace(/%sn/g,'$T("show-sp-name")');
input = input.replace(/%s.n/g,'$T("show-dot-name")');
input = input.replace(/%s_n/g,'$T("show-us-name")');
input = input.replace(/%s\.n/g,'$T("show-dot-name")');
input = input.replace(/%s\_n/g,'$T("show-us-name")');
input = input.replace(/%0s/g,'01');
input = input.replace(/%s/g,'1');
input = input.replace(/%en/g,'$T("ep-sp-name")');
......@@ -39,20 +39,20 @@
input = input.replace(/%0e/g,'05');
input = input.replace(/%e/g,'5');
input = input.replace(/%fn/g,'$T("sort-File")');
document.getElementById('previewtv').innerHTML = getOutput(input);
}
function getOutput(input){
var slash = "\\";
var com = document.getElementById('complete_dir').value;
// For some reason a simply replace() doesn't replace multiple / characters
// Work out whether we are using / or \
for (i=0; i<com.length; i++){
if (com[i] == "/") slash = "/";
}
// Replace / or \ with whatever complete_dir uses
for (i=0; i<input.length; i++){
if (input[i] == "/") {
......@@ -61,37 +61,37 @@
input = input.replace("\\",slash, "gi");
}
}
// If the complete_dir ends in / or \, then strip that character
len = com.length
if (com.substring(len-1, len) == slash)
{
com = com.substring(0, len-1)
}
output = com+slash+input;
return output
}
function movieAdd(val){
var tv = document.getElementById('moviefoldername');
var tv = document.getElementById('moviefoldername');
tv.value = tv.value + val;
previewmovie();
}
function movieSet(val, val2){
var tv = document.getElementById('moviefoldername');
var tv = document.getElementById('moviefoldername');
tv.value = val;
var tv2 = document.getElementById('movieextra');
var tv2 = document.getElementById('movieextra');
tv2.value = val2;
previewmovie();
}
function movieClear(){
var tv = document.getElementById('moviefoldername');
var tv = document.getElementById('moviefoldername');
tv.value = '';
previewmovie();
}
function movieClearExtra(){
var tv = document.getElementById('movieextra');
var tv = document.getElementById('movieextra');
tv.value = '';
previewmovie();
}
......@@ -106,16 +106,16 @@
extra = input2.replace(/%1/g,'1');
var slash = "\\";
ext = extra + '.avi'
input = input.replace(/.%ext/g,ext);
input = input.replace(/\.%ext/g,ext);
input = input.replace(/%ext/g,'avi');
input = input.replace(/%title/g,'$T("movie-sp-name")');
input = input.replace(/%.title/g,'$T("movie-dot-name")');
input = input.replace(/%_title/g,'$T("move-us-name")');
input = input.replace(/%\.title/g,'$T("movie-dot-name")');
input = input.replace(/%\_title/g,'$T("movie-us-name")');
input = input.replace(/%y/g,'2000');
input = input.replace(/%decade/g,'00');
input = input.replace(/%0decade/g,'2000');
input = input.replace(/%fn/g,'$T("sort-File")');
var regex = /\{([^\{]*)\}/g;
var str = input;
var result;
......@@ -126,16 +126,16 @@
}
input = input.replace(/{/g,'');
input = input.replace(/}/g,'');
document.getElementById('previewmovie').innerHTML = getOutput(input);
}
function dateSet(val){
var tv = document.getElementById('datefoldername');
var tv = document.getElementById('datefoldername');
tv.value = val;
previewdate();
}
function dateClear(){
var tv = document.getElementById('datefoldername');
var tv = document.getElementById('datefoldername');
tv.value = '';
previewdate();
}
......@@ -145,8 +145,8 @@
input.toLowerCase()
input = input.replace(/%ext/g,'avi');
input = input.replace(/%t/g,'$T("show-sp-name")');
input = input.replace(/%.t/g,'$T("show-dot-name")');
input = input.replace(/%_t/g,'$T("show-us-name")');
input = input.replace(/%\.t/g,'$T("show-dot-name")');
input = input.replace(/%\_t/g,'$T("show-us-name")');
input = input.replace(/%decade/g,'00');
input = input.replace(/%0decade/g,'2000');
input = input.replace(/%fn/g,'$T("sort-File")');
......@@ -158,7 +158,7 @@
input = input.replace(/%0m/g,'01');
input = input.replace(/%m/g,'1');
input = input.replace(/%y/g,'2009');
document.getElementById('previewdate').innerHTML = getOutput(input);
}
function showDiv(id)
......@@ -180,6 +180,15 @@
<input id="complete_dir" type="hidden" value="$complete_dir" />
<input class="radio" type="checkbox" name="enable_tv_sorting" value="1" <!--#if $enable_tv_sorting > 0 then "checked=1" else ""#--> /> <strong>$T('opt-tvsort')</strong>
<br class="clear" /><br/>
<strong>$T('affectedCat'):</strong>
<select name="tv_cat" multiple="multiple" class="multiple_cats">
<!--#for $ct in $cat_list#-->
<!--#if $ct != 'Default'#-->
<option value="$ct" <!--#if $ct in $tv_categories then 'selected' else ''#--> >$Tspec($ct)</option>
<!--#end if#-->
<!--#end for#-->
</select>
<br class="clear" /><br/>
<strong onclick="jQuery('#Keytable1').slideToggle()" class="key_toggle"><i>&nbsp;&plusmn; $T('sort-legenda')&nbsp;</i></strong>
<div id="Keytable1" style="display:none">
<small><table>
......@@ -243,7 +252,7 @@
</tr>
</table></small>
</div><br class="clear" /><br class="clear" />
<table>
<tr>
<td align="right"><strong>$T('sortString'):</strong></td>
......@@ -264,7 +273,7 @@
<td><span id="previewtv"></span></td>
</tr>
</table>
</fieldset>
<br class="clear"/>
......@@ -336,7 +345,7 @@
</tr>
</table></small>
</div><br class="clear" /><br class="clear" />
<table>
<tr>
<td align="right"><strong>$T('sortString'):</strong></td>
......@@ -457,7 +466,7 @@
<td><span id="previewdate"></span></td>
</tr>
</table>
</fieldset>
</div>
......
......@@ -119,7 +119,7 @@ jQuery(document).ready(function($){
// range event interaction -- see further above
if (last1) last2 = last1;
last1 = $(event.target).parent()[0].rowIndex; //$('.nzoTable').index( $(this).parent() );
last1 = $(event.target).parent()[0].rowIndex ? $(event.target).parent()[0].rowIndex : $(event.target).parent().parent()[0].rowIndex;
});
//
......
......@@ -45,3 +45,4 @@ dualView1 DualView 1
dualView2 DualView 2
eta ETA
refreshr Aktualisierungsrate
hourmin Stunde:Min
# -*- coding: utf-8 -*-
# Dansk # Danmark
# Translation by "René (Jarhead) Larsen" <warzdk@gmail.com>
thisWeek Denne uge
thisMonth Denne måned
size Størrelse
links Links
first Førsta
previous Foregående
next Næste
last Sidste
edit Rediger
editDetails Rediger detaljer
showEdit Vis Redigeringsalternativ
hideEdit Skjul Redigeringsalternativ
timeleft Resterende tid
purgeQueue Fjern alle
progress Arbejder
delete Slet
downloading Downloader
idle Venter
paused Pauset
emailsent Sendt E-mail!
saving Gemmer..
saved Gemt
failed Mislykkedes
speed Hastighed
toggleadd Vis/Skjul Tilføj NZB
refresr Opdateringsfrekvens
restartOK? Er du sikker på at du vil genstarte SABnzbd?
warnings Advarsler
getbookmarks Hent bogmærker
purgefailhistOK? Slet alle mislykkedes emner fra historiken?
purgehist Fjern alle
purgefailhist Fjern alle mislykket emner
path Genvej
age Alder
speed Hastighed
numresults@3 Viser %s til %s af %s resultat
oneresult Viser 1 resultat
noresult Ingen resultater
custom Tilpasse
dualView1 Flerskærme1
dualView2 Flerskærme2
eta ETA
refreshr Opdateringsfrekvens
......@@ -44,3 +44,4 @@ dualView1 VueDuoV
dualView2 VueDuoH
eta TRE
refreshr Rafrachissement
hourmin Heure:Min
......@@ -43,3 +43,4 @@ dualView1 Dubbel1
dualView2 Dubbel2
eta ETA
refreshr Verversen
hourmin Uur:Min