Revision: 29521
http://sourceforge.net/p/bibdesk/svn/29521
Author: hofman
Date: 2025-09-02 15:43:28 +0000 (Tue, 02 Sep 2025)
Log Message:
-----------
revert to using javascript and downloads web object for downloads page to avoid
polluting the urk request and history
Modified Paths:
--------------
trunk/bibdesk/BDSKBibDeskProtocol.m
trunk/bibdesk/BDSKDownloadManager.h
trunk/bibdesk/BDSKDownloadManager.m
trunk/bibdesk/BDSKWebGroupViewController.m
trunk/bibdesk/BDSKWebView.m
trunk/bibdesk/de.lproj/WebGroupDownloads.html
trunk/bibdesk/en.lproj/WebGroupDownloads.html
trunk/bibdesk/fr.lproj/WebGroupDownloads.html
Modified: trunk/bibdesk/BDSKBibDeskProtocol.m
===================================================================
--- trunk/bibdesk/BDSKBibDeskProtocol.m 2025-09-01 09:37:12 UTC (rev 29520)
+++ trunk/bibdesk/BDSKBibDeskProtocol.m 2025-09-02 15:43:28 UTC (rev 29521)
@@ -98,28 +98,8 @@
welcomeHTMLData = [[self
HTMLDataUsingTemplateFile:@"WebGroupStartPage" usingObject:[BDSKWebParser
class]] copy];
[self loadData:welcomeHTMLData MIMEType:@"text/html" cached:YES];
} else if ([DOWNLOADS_SPECIFIER isCaseInsensitiveEqual:resourceSpecifier])
{
- if ([[request HTTPMethod] isCaseInsensitiveEqual:@"POST"] && [[request
HTTPBody] length]) {
- NSString *action = [[NSString alloc] initWithData:[request
HTTPBody] encoding:NSUTF8StringEncoding];
- NSUInteger i = [action rangeOfString:@"&"].location;
- if (i != NSNotFound)
- action = [action substringToIndex:i];
- i = [action rangeOfString:@"="].location;
- if (i != NSNotFound) {
- NSInteger value = [[action substringFromIndex:i + 1]
integerValue];
- action = [action substringToIndex:i];
- [[BDSKDownloadManager sharedManager] performAction:action
withValue:value];
- }
- // redirect to a GET request, so a reload won't resubmit
- NSHTTPURLResponse *response = [[NSHTTPURLResponse alloc]
initWithURL:theURL statusCode:303 HTTPVersion:@"HTTP/1.1"
headerFields:@{@"Location": [theURL absoluteString]}];
- NSMutableURLRequest *redirectRequest = [request mutableCopy];
- [redirectRequest setHTTPMethod:@"GET"];
- [redirectRequest setHTTPBody:nil];
- [client URLProtocol:self wasRedirectedToRequest:redirectRequest
redirectResponse:response];
- [client URLProtocolDidFinishLoading:self];
- } else {
- NSData *data = [self
HTMLDataUsingTemplateFile:@"WebGroupDownloads" usingObject:[BDSKDownloadManager
sharedManager]];
- [self loadData:data MIMEType:@"text/html" cached:NO];
- }
+ NSData *data = [self HTMLDataUsingTemplateFile:@"WebGroupDownloads"
usingObject:[BDSKDownloadManager sharedManager]];
+ [self loadData:data MIMEType:@"text/html" cached:NO];
} else if ([resourceSpecifier
hasCaseInsensitivePrefix:FILEICON_SPECIFIER]) {
NSString *extension = [[resourceSpecifier
substringFromIndex:[FILEICON_SPECIFIER length]]
stringByRemovingPercentEncoding];
NSImage *icon = [[NSWorkspace sharedWorkspace]
iconForFileType:extension];
Modified: trunk/bibdesk/BDSKDownloadManager.h
===================================================================
--- trunk/bibdesk/BDSKDownloadManager.h 2025-09-01 09:37:12 UTC (rev 29520)
+++ trunk/bibdesk/BDSKDownloadManager.h 2025-09-02 15:43:28 UTC (rev 29521)
@@ -55,10 +55,14 @@
@property (class, nonatomic, readonly) BDSKDownloadManager *sharedManager;
-@property (nonatomic, readonly) NSArray *downloads;
+@property (nonatomic) NSArray *downloads;
-@property (nonatomic, readonly) BOOL removeFinishedDownloads,
removeFailedDownloads;
+@property (nonatomic) BOOL removeFinishedDownloads, removeFailedDownloads;
+- (void)clear;
+- (void)cancel:(NSUInteger)uniqueID;
+- (void)remove:(NSUInteger)uniqueID;
+
- (void)performAction:(NSString *)action withValue:(NSInteger)value;
- (void)addDownload:(id)download;
Modified: trunk/bibdesk/BDSKDownloadManager.m
===================================================================
--- trunk/bibdesk/BDSKDownloadManager.m 2025-09-01 09:37:12 UTC (rev 29520)
+++ trunk/bibdesk/BDSKDownloadManager.m 2025-09-02 15:43:28 UTC (rev 29521)
@@ -85,10 +85,18 @@
return [[NSUserDefaults standardUserDefaults]
boolForKey:BDSKRemoveFinishedDownloadsKey];
}
+- (void)setRemoveFinishedDownloads:(BOOL)flag {
+ [[NSUserDefaults standardUserDefaults] setBool:flag
forKey:BDSKRemoveFinishedDownloadsKey];
+}
+
- (BOOL)removeFailedDownloads {
return [[NSUserDefaults standardUserDefaults]
boolForKey:BDSKRemoveFailedDownloadsKey];
}
+- (void)setRemoveFailedDownloads:(BOOL)flag {
+ [[NSUserDefaults standardUserDefaults] setBool:flag
forKey:BDSKRemoveFailedDownloadsKey];
+}
+
- (void)notifyUpdate {
[[NSNotificationCenter defaultCenter]
postNotificationName:BDSKDownloadsDidChangeNotification object:self];
}
@@ -115,6 +123,54 @@
return nil;
}
+- (void)clear {
+ BOOL didRemove = NO;
+ NSUInteger i = [downloads count];
+ while (i--) {
+ if ([[downloads objectAtIndex:i] status] !=
BDSKDownloadStatusDownloading) {
+ [downloads removeObjectAtIndex:i];
+ didRemove = YES;
+ }
+ }
+ if (didRemove)
+ [self notifyUpdate];
+}
+
+- (void)cancel:(NSUInteger)uniqueID {
+ [[self downloadWithUniqueID:uniqueID] cancel];
+}
+
+- (void)remove:(NSUInteger)uniqueID {
+ BDSKWebDownload *webDownload = [self downloadWithUniqueID:uniqueID];
+ if (webDownload) {
+ [downloads removeObject:webDownload];
+ [self notifyUpdate];
+ }
+}
+
++ (NSString *)webScriptNameForSelector:(SEL)aSelector {
+ NSString *name = nil;
+ if (aSelector == @selector(cancel:))
+ name = @"cancel";
+ else if (aSelector == @selector(remove:))
+ name = @"remove";
+ return name;
+}
+
++ (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector {
+ return (aSelector != @selector(clear) && aSelector != @selector(cancel:)
&& aSelector != @selector(remove:));
+}
+
++ (BOOL)isKeyExcludedFromWebScript:(const char *)aKey {
+ return 0 != strcmp(aKey, "removeFinishedDownloads") && 0 != strcmp(aKey,
"removeFailedDownloads");
+}
+
+// This is necessary for web scripting to check the key for exposure,
otherwise it will only check the ivar names instead
+- (NSArray *)attributeKeys {
+ return @[@"removeFinishedDownloads", @"removeFailedDownloads"];
+}
+
+
- (void)performAction:(NSString *)action withValue:(NSInteger)value {
if ([action isEqualToString:@"cancel"]) {
[[self downloadWithUniqueID:value] cancel];
Modified: trunk/bibdesk/BDSKWebGroupViewController.m
===================================================================
--- trunk/bibdesk/BDSKWebGroupViewController.m 2025-09-01 09:37:12 UTC (rev
29520)
+++ trunk/bibdesk/BDSKWebGroupViewController.m 2025-09-02 15:43:28 UTC (rev
29521)
@@ -196,18 +196,14 @@
else
return;
[menu removeAllItems];
- NSString *urlString = [[[self webView] URL] absoluteString];
for (WebHistoryItem *item in items) {
- if ([[item URLString] isEqualToString:urlString])
- continue;
- urlString = [item URLString];
NSString *title = [item title];
if ([NSString isEmptyString:title]) {
- NSURL *url = [NSURL URLWithString:urlString];
+ NSURL *url = [NSURL URLWithString:[item URLString]];
title = [url isFileURL] ? [url lastPathComponent] : [[url
absoluteString] stringByRemovingPercentEncoding];
}
NSMenuItem *menuItem = [menu addItemWithTitle:title
action:@selector(goBackForwardInHistory:) keyEquivalent:@""];
- [menuItem setImageAndSize:[[BDSKWebIconDatabase sharedDatabase]
iconForURLString:urlString] ?: [NSImage imageNamed:@"Bookmark"]];
+ [menuItem setImageAndSize:[[BDSKWebIconDatabase sharedDatabase]
iconForURLString:[item URLString]] ?: [NSImage imageNamed:@"Bookmark"]];
[menuItem setTarget:self];
[menuItem setRepresentedObject:item];
}
Modified: trunk/bibdesk/BDSKWebView.m
===================================================================
--- trunk/bibdesk/BDSKWebView.m 2025-09-01 09:37:12 UTC (rev 29520)
+++ trunk/bibdesk/BDSKWebView.m 2025-09-02 15:43:28 UTC (rev 29521)
@@ -517,6 +517,10 @@
[self webView:sender setTitle:title];
}
+- (void)webView:(WebView *)sender didClearWindowObject:(WebScriptObject
*)windowObject forFrame:(WebFrame *)frame {
+ [windowObject setValue:[BDSKDownloadManager sharedManager]
forKey:@"downloads"];
+}
+
#pragma mark WebPolicyDelegate protocol
- (void)webView:(WebView *)sender decidePolicyForMIMEType:(NSString *)type
request:(NSURLRequest *)request frame:(WebFrame *)frame
decisionListener:(id<WebPolicyDecisionListener>)listener {
Modified: trunk/bibdesk/de.lproj/WebGroupDownloads.html
===================================================================
--- trunk/bibdesk/de.lproj/WebGroupDownloads.html 2025-09-01 09:37:12 UTC
(rev 29520)
+++ trunk/bibdesk/de.lproj/WebGroupDownloads.html 2025-09-02 15:43:28 UTC
(rev 29521)
@@ -1,6 +1,9 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Cache-Control" content="no-cache, no-store,
must-revalidate" />
+ <meta http-equiv="Pragma" content="no-cache" />
+ <meta http-equiv="Expires" content="0" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link rel="icon" href="bibdesk:image:bibdesk16.png" sizes="16x16" />
<link rel="icon" href="bibdesk:image:bibdesk32.png" sizes="32x32" />
@@ -10,7 +13,6 @@
* { margin: 0px; padding: 0px; }
body { font-family: "<$fontFamilyName/>", sans-serif; font-size: 13px;
padding: 0px; }
h1 { font-size: 16px; margin: 10px; color: #999; }
- form { display:inline; }
.downloads { width: 100%; border-width: 0px 0px 1px 0px;
border-spacing: 0px; border-style: solid; border-color: #999; }
.icon { margin: 2px; width: 32px; height: 32px; }
.source { font-size: 12px; margin-left: 1em; }
@@ -29,66 +31,55 @@
<body>
<$downloads?>
- <table class="downloads" id="downloads">
- <$downloads>
- <tr>
- <td width="36">
- <img class="icon"
src="bibdesk:fileicon:<$fileURL?><$fileURL.pathExtension/><?$fileURL?><$URL.pathExtension/></$fileURL?>"
/>
- </td>
- <td>
- <$fileURL?>
- <a href="<$fileURL/>"><$fileName/></a>
- <?$fileURL?>
- <$fileName/>
- </$fileURL?>
+ <form>
+ <table class="downloads" id="downloads">
+ <$downloads>
+ <tr>
+ <td width="36">
+ <img class="icon"
src="bibdesk:fileicon:<$fileURL?><$fileURL.pathExtension/><?$fileURL?><$URL.pathExtension/></$fileURL?>"
/>
+ </td>
+ <td>
+ <$fileURL?>
+ <a href="<$fileURL/>"><$fileName/></a>
+ <?$fileURL?>
+ <$fileName/>
+ </$fileURL?>
<!-- Localize text -->
- <a class="source" href="<$URL/>">(Quelle)</a>
- <br />
- <span class="status">
+ <a class="source" href="<$URL/>">(Quelle)</a>
+ <br />
+ <span class="status">
<!-- Localize text -->
- <$status=0?>Herunterladen
<?$status=1?>abgeschlossen<?$status=2?>fehlgeschlagen</$status?>
- </span>
- </td>
- <td>
- <form action="" method="post">
+ <$status=0?>Herunterladen
<?$status=1?>abgeschlossen<?$status=2?>fehlgeschlagen</$status?>
+ </span>
+ </td>
+ <td>
<$status=0?>
<!-- Localize value and title -->
- <input class="button"
type="submit" value="Abbrechen" title="Herunterladen abbrechen" />
- <input type="hidden" name="cancel"
value="<$uniqueID/>" />
+ <input class="button"
type="button" value="Abbrechen" title="Herunterladen abbrechen"
onclick="downloads.cancel(<$uniqueID/>)" />
<?$status?>
<!-- Localize value and title -->
- <input class="button"
type="submit" value="Entfernen" title="Download entfernen" />
- <input type="hidden" name="remove"
value="<$uniqueID/>" />
- </$status?>
- </form>
- </td>
- </tr>
- </$downloads>
- </table>
- <form action="" method="post">
+ <input class="button"
type="button" value="Entfernen" title="Download entfernen"
onclick="downloads.remove(<$uniqueID/>)" />
+ </$status?>
+ </td>
+ </tr>
+ </$downloads>
+ </table>
<!-- Localize value and title -->
- <input class="clear" type="submit" value="Löschen"
title="Entfernen Sie alle abgeschlossenen und fehlgeschlagenen Downloads" />
- <input type="hidden" name="clear" />
+ <input class="clear" type="button" value="Löschen"
title="Entfernen Sie alle abgeschlossenen und fehlgeschlagenen Downloads"
onclick="downloads.clear()" />
</form>
<?$downloads?>
<!-- Localize text -->
<h1>Keine Downloads</h1>
</$downloads?>
- <div class="prefs">
- <form action="" method="post">
- <input class="option" id="finished" type="checkbox"
name="removeFinished" value="1" onchange="this.form.submit()"
<$removeFinishedDownloads?>checked</$removeFinishedDownloads?> />
+ <form class="prefs">
+ <input class="option" id="finished" type="checkbox"
onclick="downloads.removeFinishedDownloads = this.checked"
<$removeFinishedDownloads?>checked</$removeFinishedDownloads?> />
<!-- Localize text -->
<label for="finished">Fertige Downloads automatisch
entfernen</label>
- <input type="hidden" name="removeFinished" value="0" />
- </form>
- <br />
- <form action="" method="post">
- <input class="option" id="failed" type="checkbox"
name="removeFailed" value="1" onchange="this.form.submit()"
<$removeFailedDownloads?>checked</$removeFailedDownloads?> />
+ <br />
+ <input class="option" id="failed" type="checkbox"
onclick="downloads.removeFailedDownloads = this.checked"
<$removeFailedDownloads?>checked</$removeFailedDownloads?> />
<!-- Localize text -->
<label for="failed">Fehlgeschlagene Downloads automatisch
entfernen</label>
- <input type="hidden" name="removeFailed" value="0" />
</form>
- </div>
</body>
</html>
Modified: trunk/bibdesk/en.lproj/WebGroupDownloads.html
===================================================================
--- trunk/bibdesk/en.lproj/WebGroupDownloads.html 2025-09-01 09:37:12 UTC
(rev 29520)
+++ trunk/bibdesk/en.lproj/WebGroupDownloads.html 2025-09-02 15:43:28 UTC
(rev 29521)
@@ -1,6 +1,9 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Cache-Control" content="no-cache, no-store,
must-revalidate" />
+ <meta http-equiv="Pragma" content="no-cache" />
+ <meta http-equiv="Expires" content="0" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<link rel="icon" href="bibdesk:image:bibdesk16.png" sizes="16x16" />
<link rel="icon" href="bibdesk:image:bibdesk32.png" sizes="32x32" />
@@ -11,7 +14,6 @@
body { font-family: "<$fontFamilyName/>", sans-serif;
font-size: 13px; padding: 0px; }
h1 { font-size: 16px; margin: 10px; color: #999; }
.downloads { width: 100%; border-width: 0px 0px 1px 0px;
border-spacing: 0px; border-style: solid; border-color: #999; }
- form { display:inline; }
.icon { margin: 2px; width: 32px; height: 32px; }
.source { font-size: 12px; margin-left: 1em; }
.status { font-size: 11px; }
@@ -29,66 +31,55 @@
<body>
<$downloads?>
- <table class="downloads" id="downloads">
- <$downloads>
- <tr>
- <td width="36">
- <img class="icon"
src="bibdesk:fileicon:<$fileURL?><$fileURL.pathExtension/><?$fileURL?><$URL.pathExtension/></$fileURL?>"
/>
- </td>
- <td>
- <$fileURL?>
- <a href="<$fileURL/>"><$fileName/></a>
- <?$fileURL?>
- <$fileName/>
- </$fileURL?>
+ <form>
+ <table class="downloads" id="downloads">
+ <$downloads>
+ <tr>
+ <td width="36">
+ <img class="icon"
src="bibdesk:fileicon:<$fileURL?><$fileURL.pathExtension/><?$fileURL?><$URL.pathExtension/></$fileURL?>"
/>
+ </td>
+ <td>
+ <$fileURL?>
+ <a href="<$fileURL/>"><$fileName/></a>
+ <?$fileURL?>
+ <$fileName/>
+ </$fileURL?>
<!-- Localize text -->
- <a class="source" href="<$URL/>">(Source)</a>
- <br />
- <span class="status">
+ <a class="source" href="<$URL/>">(Source)</a>
+ <br />
+ <span class="status">
<!-- Localize text -->
-
<$status=0?>Downloading<?$status=1?>Finished<?$status=2?>Failed</$status?>
- </span>
- </td>
- <td>
- <form action="" method="post">
+
<$status=0?>Downloading<?$status=1?>Finished<?$status=2?>Failed</$status?>
+ </span>
+ </td>
+ <td>
<$status=0?>
<!-- Localize value and title -->
- <input class="button" type="submit" value="Cancel"
title="Cancel download" />
- <input type="hidden" name="cancel"
value="<$uniqueID/>" />
+ <input class="button" type="button" value="Cancel"
title="Cancel download" onclick="downloads.cancel(<$uniqueID/>)" />
<?$status?>
<!-- Localize value and title -->
- <input class="button" type="submit" value="Remove"
title="Remove download" />
- <input type="hidden" name="remove"
value="<$uniqueID/>" />
+ <input class="button" type="button" value="Remove"
title="Remove download" onclick="downloads.remove(<$uniqueID/>)" />
</$status?>
- </form>
- </td>
- </tr>
- </$downloads>
- </table>
- <form action="" method="post">
+ </td>
+ </tr>
+ </$downloads>
+ </table>
<!-- Localize value and title -->
- <input class="clear" type="submit" value="Clear"
title="Remove all finished and failed downloads" />
- <input type="hidden" name="clear" />
+ <input class="clear" type="button" value="Clear" title="Remove all
finished and failed downloads" onclick="downloads.clear()" />
</form>
<?$downloads?>
<!-- Localize text -->
<h1>No Downloads</h1>
</$downloads?>
- <div class="prefs">
- <form action="" method="post">
- <input class="option" id="finished" type="checkbox"
name="removeFinished" value="1" onchange="this.form.submit()"
<$removeFinishedDownloads?>checked</$removeFinishedDownloads?> />
+ <form class="prefs">
+ <input class="option" id="finished" type="checkbox"
onclick="downloads.removeFinishedDownloads = this.checked"
<$removeFinishedDownloads?>checked</$removeFinishedDownloads?> />
<!-- Localize text -->
<label for="finished">Automatically remove finished
downloads</label>
- <input type="hidden" name="removeFinished" value="0" />
- </form>
- <br />
- <form action="" method="post">
- <input class="option" id="failed" type="checkbox"
name="removeFailed" value="1" onchange="this.form.submit()"
<$removeFailedDownloads?>checked</$removeFailedDownloads?> />
+ <br />
+ <input class="option" id="failed" type="checkbox"
onclick="downloads.removeFailedDownloads = this.checked"
<$removeFailedDownloads?>checked</$removeFailedDownloads?> />
<!-- Localize text -->
<label for="failed">Automatically remove failed downloads</label>
- <input type="hidden" name="removeFailed" value="0" />
- </form>
- </div>
+ </form>
</body>
</html>
Modified: trunk/bibdesk/fr.lproj/WebGroupDownloads.html
===================================================================
--- trunk/bibdesk/fr.lproj/WebGroupDownloads.html 2025-09-01 09:37:12 UTC
(rev 29520)
+++ trunk/bibdesk/fr.lproj/WebGroupDownloads.html 2025-09-02 15:43:28 UTC
(rev 29521)
@@ -1,6 +1,9 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <meta http-equiv="Cache-Control" content="no-cache, no-store,
must-revalidate" />
+ <meta http-equiv="Pragma" content="no-cache" />
+ <meta http-equiv="Expires" content="0" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link rel="icon" href="bibdesk:image:bibdesk16.png" sizes="16x16" />
<link rel="icon" href="bibdesk:image:bibdesk32.png" sizes="32x32" />
@@ -10,7 +13,6 @@
* { margin: 0px; padding: 0px; }
body { font-family: "<$fontFamilyName/>", sans-serif; font-size: 13px;
padding: 0px; }
h1 { font-size: 16px; margin: 10px; color: #999; }
- form { display:inline; }
.downloads { width: 100%; border-width: 0px 0px 1px 0px;
border-spacing: 0px; border-style: solid; border-color: #999; }
.icon { margin: 2px; width: 32px; height: 32px; }
.source { font-size: 12px; margin-left: 1em; }
@@ -29,66 +31,55 @@
<body>
<$downloads?>
- <table class="downloads" id="downloads">
- <$downloads>
- <tr>
- <td width="36">
- <img class="icon"
src="bibdesk:fileicon:<$fileURL?><$fileURL.pathExtension/><?$fileURL?><$URL.pathExtension/></$fileURL?>"
/>
- </td>
- <td>
- <$fileURL?>
- <a href="<$fileURL/>"><$fileName/></a>
- <?$fileURL?>
- <$fileName/>
- </$fileURL?>
+ <form>
+ <table class="downloads" id="downloads">
+ <$downloads>
+ <tr>
+ <td width="36">
+ <img class="icon"
src="bibdesk:fileicon:<$fileURL?><$fileURL.pathExtension/><?$fileURL?><$URL.pathExtension/></$fileURL?>"
/>
+ </td>
+ <td>
+ <$fileURL?>
+ <a href="<$fileURL/>"><$fileName/></a>
+ <?$fileURL?>
+ <$fileName/>
+ </$fileURL?>
<!-- Localize text -->
- <a class="source" href="<$URL/>">(Source)</a>
- <br />
- <span class="status">
+ <a class="source" href="<$URL/>">(Source)</a>
+ <br />
+ <span class="status">
<!-- Localize text -->
- <$status=0?>Téléchargement en
cours<?$status=1?>Terminé<?$status=2?>Échec</$status?>
- </span>
- </td>
- <td>
- <form action="" method="post">
+ <$status=0?>Téléchargement en
cours<?$status=1?>Terminé<?$status=2?>Échec</$status?>
+ </span>
+ </td>
+ <td>
<$status=0?>
<!-- Localize values and titles -->
- <input class="button"
type="submit" value="Annuler" title="Annuler le téléchargement" />
- <input type="hidden" name="cancel"
value="<$uniqueID/>" />
+ <input class="button"
type="button" value="Annuler" title="Annuler le téléchargement"
onclick="downloads.cancel(<$uniqueID/>)" />
<?$status?>
<!-- Localize values and titles -->
- <input class="button"
type="submit" value="Supprimer" title="Supprimer le téléchargement" />
- <input type="hidden" name="remove"
value="<$uniqueID/>" />
+ <input class="button"
type="button" value="Supprimer" title="Supprimer le téléchargement"
onclick="downloads.remove(<$uniqueID/>)" />
</$status?>
- </form>
- </td>
- </tr>
- </$downloads>
- </table>
- <form action="" method="post">
+ </td>
+ </tr>
+ </$downloads>
+ </table>
<!-- Localize value and title -->
- <input class="clear" type="submit" value="Effacer"
title="Supprimer tous les téléchargements terminés et annulés" />
- <input type="hidden" name="clear" />
+ <input class="clear" type="button" value="Effacer"
title="Supprimer tous les téléchargements terminés et annulés"
onclick="downloads.clear()" />
</form>
<?$downloads?>
<!-- Localize text -->
<h1>Pas de téléchargement</h1>
</$downloads?>
- <div class="prefs">
- <form action="" method="post">
- <input class="option" id="finished" type="checkbox" type="hidden"
name="removeFinished" value="1" onchange="this.form.submit()"
<$removeFinishedDownloads?>checked</$removeFinishedDownloads?> />
+ <form class="prefs">
+ <input class="option" id="finished" type="checkbox" type="hidden"
onclick="downloads.removeFinishedDownloads = this.checked"
<$removeFinishedDownloads?>checked</$removeFinishedDownloads?> />
<!-- Localize text -->
<label for="finished">Effacer automatiquement les téléchargements
terminés</label>
- <input type="hidden" name="removeFinished" value="0" />
- </form>
- <br />
- <form action="" method="post">
- <input class="option" id="failed" type="checkbox"
name="removeFailed" value="1" onchange="this.form.submit()"
<$removeFailedDownloads?>checked</$removeFailedDownloads?> />
+ <br />
+ <input class="option" id="failed" type="checkbox"
onclick="downloads.removeFailedDownloads = this.checked"
<$removeFailedDownloads?>checked</$removeFailedDownloads?> />
<!-- Localize text -->
<label for="failed">Effacer automatiquement les téléchargements
qui ont échoué</label>
- <input type="hidden" name="removeFailed" value="0" />
</form>
- </div>
</body>
</html>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit