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

Reply via email to