Our objective is to automatically display downloadable files to users browsing http://downloads.jboss.org/<project> while providing a way for Project Teams to place custom content on the download pages. We also want to prevent Project Teams from having to manually create download tables referencing files on http://downloads.jboss.org/<project>. We can achieve these objectives by replacing the directory browsing feature of Apache with a similar approach using Magnolia as follows:
1) A user goes to any directory underneath http://downloads.jboss.org/<project name>
2) The request is redirected to Magnolia with the subdirectory encoded in the query string where we respond with a download page that's editable by the project team (to keep things simple this should be the same page for all directories)
3) Based on the directory specified in the query string ModeShape is used to query the downloads.jboss.org filesystem to retrieve the files and display a sortable table (using an existing control for the sorting functionality)
4) Clicking on a link to download a file causes the warning dialog to pop-up
5) We trace whether the user clicks on the Continue or Cancel button, or whether they click on the 'Show more details' about products link.
The only part of this we haven't done already is to have a common page that's returned for different requests (representing the different sub-directories under http://downloads.jboss.org/<project name>. So far all of our pages have had to be created manually but what I'm imagining is that we'd simply reuse one download page as follows:
This would be editable by the user as normal and would by default include the Download paragraph querying http://downloads.jboss.org/<project name>.
If the user requested a subdirectory this would be indicated in the query string for the redirect:
The same page in Magnolia used for (http://www.jboss.org/<project name>/download) would be returned with the downloads paragraph querying http://downloads.jboss.org/<project name>/<subdirectory> instead.
Querying the filesystem
https://issues.jboss.org/browse/ORG-852 - Switch Magnolia to use ModeShape
https://issues.jboss.org/browse/ORG-1119 - Download table paragraph: Add sorting.
https://issues.jboss.org/browse/ORG-1120 - Download table paragraph: Ability to have "sub-tables" so that you can have >1 download per version
https://issues.jboss.org/browse/ORG-208 - Automated downloads paragraph
https://issues.jboss.org/browse/ORG-233 - Provide better usability for the "Downloads" paragraph
https://issues.jboss.org/browse/ORG-437 - the class="evenRow" is not being implemented in the downloads paragraph
https://issues.jboss.org/browse/ORG-450 - Download Table paragraph not working when GA unavailable
https://issues.jboss.org/browse/ORG-1136 - Cannot remove title from Download table
https://issues.jboss.org/browse/ORG-1021 - Javassist download counter shows identical value for all versions
https://issues.jboss.org/browse/ORG-1188 - Remove the dependency between Downloads paragraph's pop-up window and the SiteCatalyst JS code
https://issues.jboss.org/browse/ORG-455 - Downloads pop-up is not catching right click
https://issues.jboss.org/browse/ORG-958 - Set position of download's modal window to center of visible area not to the top of the page
https://issues.jboss.org/browse/ORG-999 - Downloads model window sometimes doesn't pop up and instead allows the download
https://issues.jboss.org/browse/ORG-811 - Style downloads.jboss.org and docs.jboss.org to reflect the JBoss Community theme