SuperContainer

From 360Works Product Documentation Wiki
(Difference between revisions)
Jump to: navigation, search
m (Usage tips)
(Completely reorganized page, integrated with the regular documentation, and pulled out two sections: advanced tips / tricks, and known issues and troubleshooting)
Line 1: Line 1:
==Licensing==
+
{| style="float: right; border: 1px solid #BBB; margin: .46em 0 0 .2em;" cellpadding="7"
===Limitations of demo mode===
+
|- align="center"
While running in demo mode, SuperContainer Server will run for two hours each time you start it. If the demo period expires, you may simply quit and restart the SuperContainer Server to renew the two hour demo period. When you are ready to purchase a license, just replace the demo license key with your permanent license key to get rid of the two hour timeout.
+
| '''SuperContainer Documentation'''
 +
|- align="center"
 +
| [http://www.360works.com/plugins/SuperContainer/plugin-documentation.html SuperContainer Companion Plug-in]
 +
|- align="center"
 +
| [[SuperContainer Troubleshooting and Known Issues | Troubleshooting and Known Issues]]
 +
|- align="center"
 +
| [[SuperContainer Tips Tricks and FAQ | Advanced Configs, Tips, Tricks, and FAQ]]
 +
|- align="center"
 +
| [http://www.360works.com/plugins/SuperContainer/php-documentation.html PHP Documentation]
 +
|}
 +
SuperContainer eliminates the hassle of dealing with container fields in FileMaker. It runs as a web-based java application which allows you to upload, view, and download scaled images and files from an embedded web viewer in FileMaker (introduced in FileMaker 8.5).
 +
 
 +
It is an effective replacement for container fields in solutions which require users to read and store files associated with records in FileMaker container fields, and offers numerous advantages over container fields.
 +
 
 +
SuperContainer is designed to be used from within a Web Viewer layout element in FileMaker, by pointing the Web Viewer to a URL that uniquely identifies a file resource you wish to store. This URL can contain any number of arbitrary path components.
 +
 
 +
In addition, SuperContainer ships with a Companion Plugin that allows you to automate access to SuperContainer resources. Consult the [http://www.360works.com/plugins/SuperContainer/plugin-documentation.html documentation in the SuperContainer Companion Plugin] directory for more details and examples.
 +
 
 +
==System Requirements==
 +
* FileMaker Clients:
 +
** Must be running FileMaker 8.5 or later to view the items stored in SuperContainer.
 +
** To use the optional SuperContainer companion plugin or the browser-based drag-and-drop functionality, Windows clients must have Java 1.5 or later installed. Get Java here.
 +
* Web Clients (Instant Web Publishing)
 +
** To use the browser-based drag-and-drop functionality, Windows clients must have Java 1.5 or later installed.
 +
* Server:
 +
** Macintosh OS X: Mac OS X 10.2 or later
 +
** Windows: Microsoft Windows Vista, Microsoft Windows XP Service Pack 2 and Service Pack 3, Windows XP Professional, Windows 2000 Server, Windows 2000 Professional, or Windows Server 2003; Java 1.5 or later
 +
** Linux/Solaris: Java 1.5 or later
 +
 
 +
If your computer does not have Java installed, you may download it at http://java.sun.com/javase/downloads/index.jsp
 +
 
 +
==Installation: Deployment Options==
 +
 
 +
You can run SuperContainer as a standalone application, or by bundling into FileMaker Server Advanced, or in your own copy of Tomcat. If you are upgrading from a version older than 1.3, be aware that the URL formats have changed in SuperContainer.
 +
 
 +
Note: There is an incompatibility with older versions of some 360Works plugins. If you are using other 360Works plugins, be sure to download new versions at http://360works.com/products/
 +
 
 +
===Option 1: Using SuperContainer as a standalone server application===
 +
 
 +
This approach is excellent for simple deployment, as well as for testing and development. There's no installation required, you just start the server and immediately begin using it. You will need to start the SuperContainerServer every time the machine it is running on is rebooted.
 +
 
 +
'''Macintosh or Windows''': Double-click the SuperContainerServer.jar file to start the standalone application. Once the application is running, you should be able to view the opening page at http://localhost:8020/SuperContainer . The server application allows you to specify where uploaded files are stored, and customize several other settings. To restrict unwanted access to your SuperContainer files, enter a username and password in the options dialog.
 +
 
 +
Deploying SuperContainer in standalone mode on Mac OS X enabled CoreImage rendering support. See the Supported Image Formats and CoreImage rendering section for more information.
 +
 
 +
Note: the standalone application must be in the same directory as the SuperContainer application folder.
 +
 
 +
===Option 2: Installing SuperContainer with FileMaker Server Advanced===
 +
his approach is recommended for advanced users if you are running SuperContainer on a dedicated server which is also running FileMaker Server (or Advanced) 8, 9, 10, 11, or FileMaker Server 12.
  
===Cost / registration for plugin===
+
Copy the entire SuperContainer download folder to your server, and double-click the MacInstaller.jar (Mac) or WindowsInstaller.exe (Windows) file in the SuperContainer folder. The SuperContainer Installer takes care of the following for you:
There is no cost for the plugin; it is included with the purchase price of SuperContainer. There are no registration functions necessary.
+
  
===Upgrading from Workgroup to Enterprise===
+
* Adds SuperContainer web application to the hosting folder of Tomcat built into WPE.
If you would like to upgrade from a Workgroup license, first purchase an Enterprise license, and then contact us and we will credit the original charge for the Workgroup license. We are planning on upgrading our online store at some point to make this a more automated process.
+
* Backs up and modifies webserver configuration to make SuperContainer available on port 80.
 +
* Backs up and reapplies SuperContainer settings from previous versions if such exist.
 +
* Once installation is complete, restart the machine and then point your browser to http://serverAddress/SuperContainer.
  
==Deployment and installation==
+
If you have trouble running the installation file, you can perform a manual installation as an alternative.
===How to install plugins for various configurations===
+
See [[Plugin installation]]
+
  
===What is the best way to get up and running with SuperContainer===
+
====Manual Installation with FileMaker Server Advanced====
Use SuperContainerServer.jar if you just want to put together a proof of concept, or if you're demoing SuperContainer.  The standalone mode is also great to use while developing.
+
  
===Manually Installing SuperContainer 2.0 and higher===
 
SuperContainer 2.0 comes with a bundled installer.  If you'd prefer to install manually, you can do the following:
 
 
# Determine your '''INSTALLATION_PATH'''
 
# Determine your '''INSTALLATION_PATH'''
 
#* FMS12 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/
 
#* FMS12 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/
Line 63: Line 107:
 
</pre>
 
</pre>
  
After saving your changes, restart your web service and all associated services  (tomcat, IIS, FMS).  Restarting your computer will work as well.  SuperContainer should now be up and running!
+
After saving your changes, restart your web service and all associated services  (Tomcat, IIS, FMS).  Restarting your computer will work as well.  SuperContainer should now be up and running!
  
===Manual Tomcat deployment/update(Windows)===
+
===Option 3: Installing SuperContainer with Tomcat===
 +
 
 +
This approach is recommended for advanced users if you are running Linux, Solaris, or any other computer not running FileMaker Server Advanced.
 +
 
 +
You must have a copy of Tomcat (downloadable from http://tomcat.apache.org) installed and running.
 
# Download latest SuperContainer form www.360works.com/supercontainer/
 
# Download latest SuperContainer form www.360works.com/supercontainer/
 
# Extract the downloaded zip
 
# Extract the downloaded zip
 
# Stop Tomcat, either using the 'badge' icon in the bottom right corner on Windows, or by stoping service.
 
# Stop Tomcat, either using the 'badge' icon in the bottom right corner on Windows, or by stoping service.
# Copy the SuperContainer folder
+
# If desired, customize the settings found in the SuperContainer/WEB-INF/web.xml configuration file. You can customize the path where files are stored, as well as set a username and password to protect your SuperContainer files.
# Paste the folder into tomcat's webapps directory, usually it's located in c:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps. If the SuperContainer folder already exists there, then first backup the existing folder, then paste the folder from clipboard, then replace the SuperContainer\WEB-INF\web.xml file with one form the backed up folder, web.xml file contains customized settings.
+
# Copy the SuperContainer folder into the Tomcat webapps folder. Usually it's located: C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps
# Start Tomcat, test the deployment.
+
# Go to http://serverAddress:8080/SuperContainer to make sure that SuperContainer is running correctly. Note that the default port with Tomcat is 8080, instead of 8020 for standalone mode.
  
===Using port 80 with standalone SuperContainer deployment===
+
==Using SuperContainer in your FileMaker solution==
In order to use the standalone SuperContainer applet, which by default runs on port 8020, on port 80 you will need to configure some settings within your Apache Tomcat server.
+
  
First, you will want to navigate on your machine to the Apache httpd.conf file:
+
Let's walk through setting up SuperContainer for a sample FileMaker solution. We will assume for these examples that your server is called 'yourServer.com', and that you have a table occurrence called 'Asset' with a field called 'ID'. This ID field is how you want to reference your files on the server. Substitute the actual values for your situation.
  
'''Mac OS X:'''
+
===Registration===
<pre>
+
/private/etc/apache2
+
</pre>
+
  
<b>NOTE</b>: This may be hidden on Mac OS X and can be reached by using "Go" -> "Go To Folder..." in the Finder.
+
By default, SuperContainer will run in demo mode, which must be restarted every 2 hours. It will also display a small "DEMO" flag on all pages. You can activate the software at http://yourServer.com:8020/SuperContainer/Registration after purchasing SuperContainer and receiving your license key. This will remove the "DEMO" flag and will no longer time out after 2 hours.
  
'''Windows:'''
+
=== SuperContainer URLs ===
<pre>
+
C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf
+
</pre>
+
  
Now, add the following two lines to the httpd.conf file after the appropriate "DocumentRoot" as shown below:
+
You will need to start by creating a web viewer in your FileMaker layout, and assign a SuperContainer URL to the web viewer. The first part of the URL is always:
+
<pre>
+
DocumentRoot "/Library/WebServer/Documents"
+
  
ProxyPass "/SuperContainer" "http://localhost:8020/SuperContainer"
+
<pre>http://yourServer.com:portNumber/SuperContainer/Files</pre>
ProxyPassReverse "/SuperContainer" "http://localhost:8020/SuperContainer"
+
</pre>
+
  
The ProxyPass and ProxyPassReverse are two Tomcat directives that allows remote servers (SuperContainer in this case) to be mapped into the space of the local server (Tomcat). You can find more information on these directives by visiting: http://httpd.apache.org/docs/1.3/mod/mod_proxy.html#proxypass
+
or
  
Then, you will need to restart your Apache server:
+
<pre>http://yourServer.com:portNumber/SuperContainer/SingleFile</pre>
  
'''Mac OS X:'''
+
Where "Files/" points to a directory and "SingleFile/" points to a particular file within a directory (Example usage below).
  
Open Terminal and type:  
+
After that, you specify where on the server you want the uploaded file to be stored. You can include slashes in the URL to store the files subfolders, like this:
<pre>
+
sudo apachectl restart
+
</pre>
+
  
'''Windows:'''
+
<pre>/path/to/file</pre>
  
Easiest way to control Tomcat on Windows is to use the Tomcat Monitor tool. This is available by selecting Start -> All Programs -> Apache HTTP/Tomcat Server -> Monitor Apache
+
You can also specify optional parameters in the URL which affect the behavior of SuperContainer. See the [[#Customizing SuperContainer Appearance]] section for more about how to customize the SuperContainer display.
  
Finally, launch the standalone SuperContainerServer.jar file as normal and navigate to:
+
Typically, you would include the name of the table and the unique ID of the record into the URL, so if SuperContainer is running on the default port of 8020 for our example 'Asset' table, your URL for record number 4321 would look like this:
  
http://localhost/SuperContainer  
+
<pre>http://yourServer.com:8020/SuperContainer/Files/Asset/4321</pre>
  
to ensure SuperContainer is running on port 80.
+
Additionally, if you know the filename that was present within record 4321 -- say, "myAsset.jpg" -- then you could use SingleFile/ to point directly to that file. For example:
  
===SuperContainer for hosting providers===
+
<pre>http://yourServer.com:8020/SuperContainer/SingleFile/Asset/4321/myAsset.jpg</pre>
You can run SuperContainer version 1.72 or later for your clients in Tomcat by following these steps:
+
* Each client will need to purchase a separate license of SuperContainer, or you may purchase a license for them.
+
* Modify SuperContainer/WEB-INF/web.xml file and put in valid values for the 'activationCode' and 'registeredTo' settings for your client.
+
* Change the name of the SuperContainer folder to that client's name and put it into the webapps folder. The URL will become whatever you name the folder, so if you change the folder name from 'SuperContainer' to 'ClientX', the URL to access SuperContainer will be http://yourServer:8080/ClientX/Files.
+
  
===List of hosting providers===
+
The FileMaker calculation to do this would look like this:
The following companies have told us that they are set up or willing to configure their servers to host SuperContainer. They are listed in order of when they first contacted us:
+
* Dan Weiss, Adatasol ( http://www.adatasol.com/ )
+
* John May, Point in Space ( http://www.pointinspace.com/ )
+
* Scott Karch, Nimbus ( http://www.nimbushosting.net/ )
+
* Foxtail Technology ( https://www.foxtailtech.com/Index.php?page=sc )
+
* Joseph Climaldi, ODI Technologies ( http://www.oditech.com/ )
+
* Joshua Paul, Neo Code Software ( http://store.neocodesoftware.com/ )
+
* Lee Lukehart, SavvyData ( http://savvydata.com/ )
+
  
===Enabling OS X Core Image resizing===
+
<pre>"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID</pre>
In it's normal configuration, SuperContainer can generate thumbnail images of JPEGs, PNGs, GIF files, and most TIFF files. It will not generate thumbnails for PDF files, CMYK JPEG or TIFF files, RAW files, or Photoshop files.
+
  
There's a mac-specific feature that lets SuperContainer use native OS X image processing libraries for its image handling.  This means it can generate thumbnails of PDFs, as well as just about any other image type you throw at it.  This only works if you're running SuperContainer server in standalone mode on an OS X box. It will not work on a Windows server, or when running in Tomcat. It doesn't matter what the client machines are using, however.
+
or
  
Just create a new file at the following location:
+
<pre>"http://yourServer.com:8020/SuperContainer/SingleFile/Asset/" & myTable::ID & myTable::filename</pre>
  
<pre>
+
Note that the SuperContainer URL can contain as many elements as you like. If a given asset can have 3 images uploaded to it, you could either create a new table for holding the images, or use the following URL schema:
/Library/Preferences/com.prosc.supercontainer.properties
+
</pre>
+
  
The contents of the file should be the following line:
+
<pre>"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/1"
  
<pre>
+
"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/2"
coreImageEnabled true
+
</pre>
+
  
And then restart SuperContainer.  Thumbnails will now be generated using OS X image libs, and PDF will appear as thumbnails instead of icons.
+
"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/3"</pre>
  
===Plugin auto-update info===
+
=== Uploading Files ===
See the section on [[Plugin autoupdate]]
+
===Compatability matrix===
+
'''Accessing SuperContainer from FileMaker Pro'''
+
{| class="wikitable"
+
|-
+
| &nbsp; || Version 7 || Version 8 || Version 8.0v4 || Version 9 || Version 10 || Version 11
+
|-
+
| FileMaker Pro: Access with a Web Viewer || X || X || Y || Y || Y || Y
+
|-
+
| FileMaker Pro: Using optional plugin || Y || Y || Y || Y || Y || Y
+
|}
+
  
{| class="wikitable"
+
There are several ways to upload files to SuperContainer. The simplest is to drag a file or directory onto the SuperContainer window, which immediately uploads the file, displaying a progress bar during the upload process.
|-
+
| &nbsp; || Version 7 || Version 8 || Version 8.0v4 || Version 9 || Version 10 || Version 11
+
|-
+
| FileMaker Pro Server, Custom Web Publishing || X || X || X || Y || Y || Y
+
|-
+
| FileMaker Pro Server Advanced, Instant Web Publishing || X || X || Y* || Y || Y || Y
+
|-
+
| FileMaker Pro Server Advanced, Custom Web Publishing || Y || Y || Y* || Y || Y || Y
+
|}
+
  
Note: * = FileMaker Server / Server Advanced 8.0v4 on OS X will not work with the optional SuperContainer Companion Plugin. It will work on Windows, or on 8.0v1 - 8.0v3
+
If you are looking at a SuperContainer URL which has no file uploaded to it, by default an "Upload file" button is displayed. You can use this button or right-click/ctrl-click to display a file chooser dialog. Select a file or directory to upload and click "OK", which then uploads the file, displaying a progress bar during the upload process.
  
SuperContainer is fully compatible and tested to work with FileMaker 10
+
=== Accessing Files ===
  
===Configuring where SuperContainer saves files===
+
Once a file has been uploaded to SuperContainer, it is displayed at the current width of the browser window (for images) or displayed as a file icon (for non-images).
By default, SuperContainer saves files in /Users/Shared/SuperContainer on Mac OS X and C:\Documents and Settings\SuperContainer on Windows. You can set this to any path you want, such as an external drive or network volume. If you are running in standalone mode (ie. double-clicking on SuperContainerServer.jar), that can be configured by clicking 'options'. If you are running in Tomcat or with FileMaker Server, you can configure that by editing the SuperContainer/WEB-INF/web.xml file. Change the 'macintoshFilesPath' or 'windowsFilesPath' setting to where you want the files to be stored. Be sure to configure file permissions appropriately for the folder you're storing to, especially for network volumes.
+
  
===Locking the SuperContainer Registration===
+
Double-click on a file to download the file to the local computer and open it in the default application for that file type. Alternately, you can right-click and choose "Open in default application".
Entering information in the .../SuperContainer/Registration page will set your registration, but it can be changed from that page as well.  If you want to lock in the SuperContainer registration so that it cannot be changed from a browser you should enter your license key in the activationCode and registeredTo values in the web.xml file (the same place you can set a username and password).  Enter your values, save the file, and restart the SuperContainer Server and SuperContainer will read the value from the web.xml file, rather than from what is entered into the registration page.
+
  
=== Uninstalling SuperContainer ===
+
To save a file to a custom location, right-click and choose '''Save file'''.... This opens a file chooser dialog where you can specify where to save the file.
'''When deployed in FileMaker Server's Web Publishing Engine''': If you have installed SuperContainer to run in FMS WPE, you can re-run the MacInstaller.app or WindowsInstaller.exe file and click "Remove" to uninstall from the Web Publishing Engine. <br />
+
'''When deployed on Tomcat''': If you have installed SuperContainer to run in a standalone version of Tomcat, you can simply remove the SuperContainer folder from the webapps folder of in your Tomcat directory. <br />
+
'''When deployed in standalone mode''': If you have deployed SuperContainer to run in standalone-mode (i.e. SuperContainerServer.jar file), you can simply delete the .jar file. <br />
+
  
<br />
+
To view a resource in your browser, right-click and choose '''View in browser'''. This opens a RawData URL in your browser which points to the raw file contents.
<br />
+
''NOTE'':
+
SuperContainer saves its preferences in a file on your computer (when running in standalone mode by double-clicking the .jar file).  On a mac, this is located at <code>/Library/Preferences/com.prosc.supercontainer.plist</code>.  Remove this file to remove any stored preferences.
+
  
=== Removing Registry Entries ===
+
=== Deleting Resources ===
Windows: Search the registry for all keys which include "supercontainer" and remove them.
+
Mac: Look for a file /Library/Preferences/com.prosc.supercontainer and remove it.
+
  
==Known Issues==
+
To delete a resource, use the "delete" button or context menu. Dragging a new file into SuperContainer will also delete any existing file.
  
===Memory Leaks in SuperContainer?===
+
===Using SuperContainer with FileMaker Go===
There is a documented and filed bug with Mac OS X's Core Images X Library, which does leak memory. SuperContainer makes use of Mac OS X's Core Image library by default, but also can use Mac's QuickLook library for image rendering.
+
  
This is not SuperContainer specific and is related to the Core Image library.
+
You do not need to change anything in SuperContainer to use it with FileMaker Go. SuperContainer will detect that it is being viewed in FileMaker Go and automatically switch to 'noapplet' mode, which means that it will use HTML instead of a Java applet (Java is not supported on iOS). There are a few behavior differences to be aware of when using SuperContainer with FileMaker Go:
  
The best approach is to enable QuickLook for SuperContainer, the instructions for this can be found on our SuperContainer Product Support wiki page. See Enabling QuickLook.
+
* There is no ability to upload files, because there is no file system on FileMaker Go, and thus Mobile Safari does not support file uploads.
 +
* Since there is no ability to upload files, we also remove the 'delete' button, so the user cannot delete the item stored in SuperContainer.
 +
* If you click on an item stored in SuperContainer, it will render at full size within the web viewer. In the case of Word or PDF documents, you will see the contents of the file inside the web viewer, and for QuickTime movies, you will see the movie play within the web viewer (if it is encoded in a format supported by iOS). This is different than the regular SuperContainer behavior, which opens a separate browser window to display the full resource.
  
===Container fields in Windows that use OLE===
+
If you would like to view the SuperContainer resource in a full-screen browser window in FileMaker Go, you will need to add a button or script that calls the 'Open URL' script step. The URL should be the regular SuperContainer URL with the word 'RawData' in place of 'Files' (see 'RawData URLs' below for more information). Thus, the script step would look like this:
SC Companion plugin behaves incorrectly, b/c FileMaker stores only the preview of the file internally and only the preview ends up uploaded to SC Server when using the Companion plugin SCSetContainer function.
+
  
Workaround: use ExportFieldContents script step and export the file then use the filepath to the file when calling SCSetContainer function.
+
<pre>Open URL[ Substitute( SuperContainer URL; "/SuperContainer/Files/"; "/SuperContainer/RawData/" ) ]</pre>
  
===FileMaker crashes when closing a window with SC webviewer===
+
There is a 9-minute movie available on Youtube demonstrating SuperContainer features on FileMaker Go: http://www.youtube.com/watch?v=ZPw3uibJC_c
This is confirmed bug in FileMaker: http://forums.filemaker.com/posts/af993cfbc4
+
  
Behavior:  when closing a FileMaker window containing a layout that has multiple webviewers displaying a Java applet, FileMaker crashes.  A crash log is produced on the Desktop.
+
===Specifying image dimensions===
  
This issue is not specific to SuperContainer, this is a problem with all Java applets.
+
SuperContainer automatically detects the size of the web viewer or web page that it is displayed on, and generates a thumbnail to exactly match the display size. You do not need to do anything for this to work. However, you may optionally want to display the image at a different size than the web viewer. In that case, you can include a width and/or height parameter in your URL, like this:
  
Platforms exhibiting problem:
+
<pre>http://yourServer.com:8020/SuperContainer/Files/Asset/4321?height=500
* XP
+
* Vista
+
  
Java versions exhibiting problem:
+
http://yourServer.com:8020/SuperContainer/Files/Asset/4321?width=400
* Java 1.6 (we've tested several different updates, and there is no fix for this in Java 1.6 yet)
+
  
There are five possible solutions
+
http://yourServer.com:8020/SuperContainer/Files/Asset/4321?height=64&width=64</pre>
# Downgrade to Java 1.5 - http://java.sun.com/products/archive/j2se/5.0_19/index.html
+
# Use Custom Menus in FileMaker Pro Advanced to close/navigate to different layouts. See [[Creating Custom Menus in FileMaker Pro Advanced]].
+
# Use FM script to either switch to a different layout then close, or minimize the window and then close
+
# Use the style=noapplet parameter in the SC URL
+
# Un-check "Enable the next generation Java Plug-in" option in the Java Control Panel -> advanced -> Java Plug-in
+
  
===Expired certificate in SuperContainer Java applet===
+
===Embedding authentication username and password in the URL===
New certificate was included in version 2.56
+
  
===SuperContainer applet not responding to mouse events(on Mac)===
+
If you have password-protected your SuperContainer installation and don't want users to be prompted for a username and password, you can embed this information directly into your URL. For a username of "bob" and password "secret", you can do the following:
This was a bug introduced by Apple Java update for Mac.
+
  
Workaround was included in release 2.52
+
<pre>http://bob:secret@yourServer.com:8020/SuperContainer/Files/etc...</pre>
  
===Weird flickering of SuperContainer applet===
+
'''Note''': this is not a foolproof means of preventing users from finding out the username and password! The password will be shown briefly when loading the page, and again when clicking on a link to download the image.
was introduced in version 2.52, in leu of working around bug in Apple's update (see above)
+
  
Fix added to version 2.58
+
Alternately, you can include the username and password as regular URL parameters (version 2.54 and later). To do this, include a username and password parameter in your SuperContainer URL, for example:
  
===Black or Grey webviewer, when using SC with other 360Works plugins===
+
<pre>http://yourServer.com:8020/SuperContainer/Files/testing?username=bob&password=secret</pre>
This may be caused by an old 360Works plugin, all plugins that were release by 360Works prior to December, 2008 can cause this issue.
+
  
Fixed in current version(s) of 360Works plugin(s)
+
This is useful for Internet Explorer users whose security settings prevent the browser from allowing authenticationi from being embedded in the URL.
  
===Black or Grey webviewer, without 360Works plugins installed===
+
===Specifying a custom resolution===
This can be caused by an outdate Java Runtime 1.1.4 released by Microsoft.
+
  
I believe that this JRE is shipped with some Microsoft product and is installed silently.
+
If you need to print images from SuperContainer, you can specify an optional resolution parameter, telling SuperContainer to display images as hi-res. The default resolution is 72. If you specify a different resolution, SuperContainer will return a large image, and will alter the HTML img tag to have the correct width and height.
  
Please contact 360Works for troubleshooting help/directions and fixes.
+
'''Note''': you should also specify style=noapplet when printing, and specify a maximum width/height.
  
===SuperContainer and proxies===
+
Here is an example URL with a resolution parameter set:
Proxies can cause issues for the SuperContainer applet.
+
  
Please contact 360Works with specific problems related to proxies.
+
<pre>http://yourServer.com:8020/SuperContainer/Files/xyz?width=64&height=64&resolution=300&style=noapplet</pre>
  
===Plugin Conflicts===
+
If the original image is large enough, this results in an on-screen image no larger than 64x64 pixels, with a resolution of 300 DPI. If the image is not large enough, the DPI will be scaled down to no less than 72 DPI.
We have found a few plugins which cause issues with Java in FileMaker.  As SuperContainer is Java-based, a damaged java being launched within FileMaker will prevent SuperContainer's java applet from loading properly. SuperContainer can still be used in noapplet mode, but the older, damaged java instances launched by these plugins will prevent the applet from working properly.
+
  
Plugins with known issues:
+
'''Note''': for performance reasons, you should only specify a resolution parameter for print-specific layouts. The server needs to do additional work analyzing the image if there is a resolution parameter, and the resulting image is also larger than necessary for on-screen viewing.
• All AcmeTech products, including MondoMail, NetTools, CCauthorize, JavaCompanion, and JavaScript Interpreter
+
  
• PDMSQL by Professional Data Management
+
=== Printing Images from SuperContainer ===
  
===Issue with deleting files stored in SuperContainer===
+
SuperContainer is access from a web viewer, and because of this printing before your image has completely downloaded or the applet has been loaded is a possibility. To make sure that you do not print before you have completely downloaded your image from SuperContainer it is recommended that you do one of the following:
When SuperContainer server is set to store files on a network drive, in presumably a Windows network
+
  
And a webviewer on a layout where delete script is executed is pointing to the file using a file URL instead of using SuperContainer RawData URL, the delete will fail without much of a message, similarly the file could not be deleted via Windows explorer from another machine.
+
A. Download the image to an unstored calc using the SCGetContainer function of the SuperContainer Companion plugin - This solution will automatically download the image at the full resolution for printing, however you will need to have the Companion Plugin installed.
  
==Troubleshooting==
+
B. Use "noapplet" mode with a specified hight, width, and resolution parameter as well - This option still risks printing before your download has finished, but reduces some of the risk of your print not working properly due to the java applet. You may want to add a one or two second pause to make sure that your images completely download.
  
===I keep getting an "ERROR" when I use the plugin functions===
+
=== Supported Image Formats and CoreImage rendering ===
When an "ERROR" occurs, definitely make use of the provided plug-in function, [http://360works.com/plugins/SuperContainer/plugin-documentation.html#SCLastError SCLastError], which returns detailed information on what the error is referring to -- and often provides great clues on how to resolve the issue.
+
  
This function is ''invaluable'' and can save you from hours (or even days) of headache when trying to develop a FileMaker solution that makes use of plugin functions. By reading through our section on [http://360works.com/plugins/SuperContainer/plugin-documentation.html#error_reporting Error Reporting] with SuperContainer Companion plug-in, you will find out how to check for errors on each plug-in function that is used.
+
SuperContainer by default currently supports thumbnail generation for the following image formats: bmp, jpg, gif, png, jpeg2000, raw, pnm, and tiff (on some platforms). Some images may use a compression format that SuperContainer cannot resize. These will always be displayed as full-size images.
  
With that said, more often than not, the "ERROR" usually will refer to the base URL not being set yet. See: [http://360works.com/plugins/SuperContainer/plugin-documentation.html#SCSetBaseURL SCSetBaseURL()].
+
SuperContainer 2.0 and higher running in standalone mode on OS X uses OS X's CoreImage rendering to generate thumbnails. In addition to being significantly faster, CoreImage can render almost any image format you throw at it, including PDF, EPS, SVG, TIFF, Photoshop, and many more.
  
===I downloaded the Demo... now what?!===
+
Note that CoreImage only needs to be running on the server, any client connecting to SuperContainer will see the rendered thumbnails. This means Windows FileMaker clients can see PDF content previews in their web viewers.
We have several resources available that go into some detail on how to to get started with SuperContainer -- most notably our documentation and the SuperContainerExample.fp7 file that comes with the downloaded content. The documentation outlines several steps on how to get started with SuperContainer, deploying an instance of SuperContainer on your machine, uploading files, and general use of the plugin .  
+
  
In addition to our standard documentation for the plug-in, we also have a Product Support wiki page for SuperContainer that delves a bit deeper into the product, offering solutions and answers to common questions, usage tips, and troubleshooting help. I recommend that as a Go-To source for information and as a first line of defense when questions arise.
+
==Using SuperContainer outside FileMaker==
  
The SuperContainer forum on FMForums is also an ideal source of information and contains several threads of valuable information pertaining to the product.
+
SuperContainer is a web-based application, so you can access it from anywhere you have a network connection. If you are using custom web publishing or writing tools in other languages, you can still have access to your SuperContainer data.
  
If by chance, you would prefer to kick back and relax and let the makers of SuperContainer help to integrate its storage functionality into your solution, that's a perfectly viable option as well! We offer custom development work and can help integrate SC for you at our hourly rate of $165/hr. If this is something you think you would be interested in, please do not hesitate to contact us.
+
===Custom Web Publishing===
  
We are also available for any general support questions you may have about SuperContainer, or any of our plugins, so feel free to send an e-mail or give us a call if things start to get sticky.
+
Version 2 of SuperContainer includes a PHP API for interacting with SuperContainer from your custom web publishing applications. Simply include() the PHP/supercontainer.php file in your PHP script, then use the included functions to upload, download, delete, and query the server.
  
SuperContainer Documentation: http://360works.com/plugins/SuperContainer/documentation.html<br />
+
See the SuperContainer PHP Documentation.html in the Support files/PHP directory of your SuperContainer download for more info.
Companion Plugin Documentation: http://360works.com/plugins/SuperContainer/plugin-documentation.html<br />
+
SC Product Support Page: http://wo.360works.com/cgi-bin/support/productsupport.cgi/SuperContainer<br />
+
SC FMForums Page: http://fmforums.com/forum/forum/122-supercontainer-by-360-works/
+
  
===How do I know how SuperContainer is deployed?===
+
===Java Integration===
To check if you are running multiple instances of SuperContainer, you can simply open/launch your favorite browser -- whether Safari or Internet Explorer and type the following into the address bar:
+
  
<pre> http://myserver.com/SuperContainer/ (if connecting remotely)
+
There is a developer's Java API available separately. If you're writing a server-side java application or a desktop swing application, this provides an easy way to integrate with SuperContainer. Contact [http://360works.com/contact 360Works] for more info on this.
http://localhost/SuperContainer (if running from the server machine)
+
</pre>
+
  
If you type the above in and get a page that displays the version of SuperContainer, this means that you have deployed SuperContainer via the WPE of FMS. If you get a 404 error or File Not Found exception, this means you are not running SC via the WPE. Next, try putting the following into your web browser's address bar:
+
===RawData URLs===
  
<pre>http://myserver.com:8020/SuperContainer (if connecting remotely)
+
If you want to link directly to the contents of a SuperContainer file, you can use a RawData URL. Simple replace the word "Files" with RawData" in your SuperContainer URL, like this:
http://localhost:8020/SuperContainer (if running from the server machine)
+
</pre>
+
  
When specifying the "8020" port number, this indicates that you are running SuperContainer in "standalone-mode". If you receive a page that displays the version of SuperContainer, this means that you have deployed SC in standalone-mode (i.e. You have double-clicked the SuperContainerServer.jar file).
+
<pre>http://myServer.com:8020/SuperContainer/RawData/Asset/4321</pre>
  
=== Double Scroll Bars on Web Viewer===
+
If you know that a given resource is renderable by SuperContainer, you can inline the contents of the file in some other HTML page by using an img tag linked directly to the RawData URL, like this:
There have been some instances when double scroll bars have been displayed when viewing an image within a SuperContainer web viewer. If this is the case, it may be that the window size has been exploded/increased and is being viewed at a value greater than 100%. This has been known to force scroll bars to display even with the "style=noscroll" set as a URL parameter. Ensure that the window is being displayed at 100%(max) initially. If the size of the window needs to be edited after the preview is generated to a value greater than 100%, this is possible to do -- if done after the web viewer has loaded.
+
  
=== PC Users are getting a Security Warning when Uploading===
+
<pre>img src="http://myServer.com:8020/SuperContainer/RawData/Asset/4321"</pre>
If your users are getting an error similar to:
+
  
"Warning - Security"
+
Note that if Asset/4321 contains some non-image file, this will result in a broken image icon. A safer option is to use an iframe tag pointing to the Files URL for the given SuperContainer folderPath.
"Java has discovered application components that could indicate a security problem."
+
"Name: SuperContainer applet"
+
  
In the past, upgrading the Java JRE has fixed this issue. If you are running an older version of Java, try updating to the latest and see if this resolves the issue.
+
==Applet vs. NoApplet==
  
===Not able to upload large files, SC deployed with FMS===
+
SuperContainer uses either a Java applet or an HTML interface for uploading, downloading, and displaying documents. You can explicitly specify which interface you want by adding the ?style=applet or ?style=noapplet parameter on to the end of your SuperContainer URL. See the section on [[#Customizing SuperContainer Appearance]] for more details.
IIS 7 has a default upload size configured at 30MB. This can be solved by adding the following code to the sites web.config file
+
+
<pre>
+
<system.webServer>
+
        <security>
+
            <requestFiltering>
+
                <requestLimits maxAllowedContentLength="2000000000"/>
+
            </requestFiltering>
+
        </security>
+
</system.webServer>
+
</pre>
+
  
===Image files are not resizing===
+
If you do not specify whether to use the applet or html interface, SuperContainer will use the best default, based on your browser and OS version. Users running Google Chrome, Firefox, or OS X Lion (10.7) will see the HTML view. All other users will see the Applet view.
In it's normal configuration, SuperContainer can generate thumbnail images of JPEGs, PNGs, GIF files, and most TIFF files. It will not generate thumbnails for PDF files, CMYK JPEG or TIFF files, RAW files, or Photoshop files. If you are running the SuperContainer Server on OS X, you can enable OS X Core Image processing to resize more file types. See the 'Enabling OS X Core Image resizing' section above for instructions on doing this.
+
  
=== File looks like it uploaded but is not visible when I revisit the file/record ===
+
===Applet Advantages===
The files are actually not being uploaded to the SuperContainer server at all! With the advent of the Apple bug and the disabling of the Drag-and-Drop feature, which hinged on the use of Java applets, users have been dragging files/folders to the SuperContainer web viewer (this does not actually upload the file to SuperContainer but instead only stores a temporary reference to the location of that file).
+
  
In order for the file to be uploaded to the server, the user would need to click the button labeled "Upload File" after choosing/dragging the file to the Web Viewer.
+
* Drag or paste a file into SuperContainer
 +
* Supports uploading directories, which are automatically zipped by the applet. Some documents (such as .pages documents) which appear to be files are in fact directories.
 +
* Double-clicking a file downloads the file into the downloads directory instead of opening it in the default application
 +
* Delete key deletes a file if SuperContainer is focused, so there is no need to display a "delete" button.
  
By default, the web viewer has a "Choose File" button and an "Upload File" button... I would suggest that you ensure that they are first selecting the file with the Choose File button then, clicking the "Upload file" button to actually send the file to the server.
+
===HTML Advantages===
  
NOTE: It is important to note that we have (fairly recently) released a newer version of SuperContainer (version 2.852), which restores the Drag-and-Drop functionality without using Java applets. By upgrading to the latest version, you should be able to successfully drag and drop files to the Web viewer without need of using the "Choose File" and "Upload File" buttons at all.
+
* Works in all browsers
 +
* Does not require Java to be installed on the user's computer
 +
* May load faster than the applet version
  
===Seeing the same document for all records===
+
==Customizing SuperContainer Appearance==
If you're having a problem with all of your records pointing to the same SuperContainer file, and you see that replacing it in one record replaces it in all other records, it's because your URL is not unique for each record. Include the primary key, or some other unique value, into the Web Viewer URL for each record, and then each record will be associated with its own separate file
+
  
===How to handle "ERROR" response from plugin===
+
The appearance of a SuperContainer page can be customized by setting custom style and background-color parameters in your SuperContainer URL. Some styles affect which controls are visible or hidden, others affect the layout arrangement, and others modify the font of the resource title.
If you try to call a plugin function, and you get a result of "ERROR", then call the SCGetLastError function to get a text description of what happened. It is always a good idea to have your scripts check the result of all plugin calls to see if an error occurred.
+
  
===List all locations of log files===
+
There are two primary modes SuperContainer has for displaying images: Plain HTML and a Java Applet. The plain HTML is lighter-weight and loads more quickly, the applet allows much more interactivity such as drag-and-drop support. The applet is used by default, unless a style of listview or noapplet is used in the SuperContainer URL.
When troubleshooting a problem that you're having, we may ask you to send us a copy of your log files. There are several different log files for the different components of SuperContainer, and they are located in different places depending on whether you are running on Windows or Mac.
+
  
* 360PluginBridge
+
===="style" URL parameter====
** Macintosh: /Users/yourUserName/Library/Logs/360PluginBridge.log
+
** Windows: C:\Documents and Settings\All Users\Shared Documents\360PluginBridge.txt
+
  
* SuperContainer Server log:
+
Specify a "style" url parameter to change the way a resource is displayed by SuperContainer. You can group multiple style names together with the "+" symbol. For example:
** Macintosh: /Users/Shared/SuperContainer/SuperContainer.log
+
** Windows: C:\Documents and Settings\SuperContainer\SuperContainer.log
+
  
* SuperContainer companion plugin log:
+
http://yourServer.com:8020/SuperContainer/Files/Asset/4321?style=readonly+bold+large
** Macintosh: /Users/yourUserName/Library/Logs/360Works FM Pro/360Plugin.log
+
** Windows: C:\Documents and Settings\All Users\Shared Documents\360Works FM Pro\360Plugin.log
+
  
===Providing the correct value to SCSetBaseURL===
+
Here is a quick summary of the different styles that are available by default:
When calling SCSetBaseURL, you should include the portion of the URL up to and including the 'Files' portion, ie:
+
SCSetBaseURL("http://yourServer:portNumber/SuperContainer/Files")
+
  
When calling other plugin functions, just pass in the portion of the URL that comes after the 'Files' portion, ie:
+
=====Layout Styles=====
SCGetContainer("Images/41")
+
  
===Problems installing Tomcat===
+
;(empty)
Some customers have reported seeing this error message when trying to start Tomcat, after downloading and installing it as a Windows Service:
+
the default style looks like a container field, except there is an upload input if the resource is empty, and a delete button if it is non-empty.
<pre>
+
;listview
The Apache Tomcat service terminated with service-specific error 0 (0x0)
+
:intended for use in list layouts, displays a small thumbnail or icon, with the filename to the right of it. All editing controls and other info are hidden. List view uses a default width and height of 64, but you can specify other dimensions by specifying your own width/height in the URL.
</pre>
+
;image_only
This is not directly a SuperContainer problem, it is a problem with Tomcat. This can be caused by having Java 6 installed, instead of Java 5, if you are using Tomcat 5.5. Try downloading and installing Java 5 from www.java.com to see if that fixes the problem.
+
:hides everything except the image or file icon.
 +
;showdelete
 +
:shows the delete button, which is not displayed by default. Note that the 'delete' context menu and DELETE key action are enabled by default.
 +
;nodelete
 +
:hides/disables the delete button, delete context menu, and DELETE key action.
 +
;upload
 +
:always show the upload button (even if the resource is non-empty).
 +
;noupload
 +
:never show the upload button (you can still upload a file by dragging or right-clicking).
 +
;readonly
 +
:hides the delete and upload buttons.
 +
;nopreview
 +
:hides the image or icon.
 +
;info
 +
:displays a table containing the filename, filesize, and date uploaded. This causes the title to be hidden, since that is included in the table.
 +
;title
 +
:always display the title, for both images and icons (by default, the title is hidden for images)
 +
;notitle
 +
:always hide the title
 +
;nolink
 +
:disable the hyperlink for the document. Clicking on a thumbnail or document will not do anything.
 +
;noapplet
 +
:Disables the applet view in SuperContainer 2. This will make SuperContainer work more like version 1.
 +
;noscroll
 +
:Hides scroll bars. Sometimes this is necessary when using very small (50px) web viewers, which display scroll bars even though the image would fit within the dimensions of the web viewer.
  
===Uploading package files===
+
=====Alignment Styles (only applies with noapplet style)=====
SuperContainer 2:  supports upload of package files.
+
  
SuperContainer 1: Some OS X files, such as rtfd documents, are not really files, they are folders which are presented as a single file icon by OS X. These files cannot be uploaded through a web browser unless they are first compressed, such as a into a .zip or .sit file.
+
;left
 +
:aligns image, title, and controls to the left
 +
;right
 +
:aligns image, title, and controls to the right. There is no horizontal style to align to the center because that is the default.
 +
;center
 +
:aligns content in the center of the web viewer.
 +
;bottom
 +
:aligns content at the bottom of the web viewer. There is no 'top' style because that is the default.
  
===Thumbnails Are NOT Generating===
+
===== Title Font Styles (only applies with noapplet style) =====
If you've customized the path were SuperContainer saves files, and lets assume that you're saving to a folder at the top level of an external drive.
+
Ex. save path /Volumes/External Drive/SuperContainer/
+
And you've only given write privileges to the SuperContainer directory you may experience problems with preview generation. The reason is that SuperContainer save the previews in the "thumbnails" directory at the same level as the directory where SuperContainer is writing the actual files. And if SuperContainer does not have write permissions it will fail in creating the "thumbnails" folder, thus failing to generate a preview.  There are two solutions, first give write permissions to SuperContainer so that the following structure is possible:
+
/Volumes/External Drive/SuperContainer/
+
/Volumes/External Drive/thumbnails/
+
Second solution is to point SuperContainer to the sub folder of the custom directory, like so:  point SuperContainer to /Volumes/External Drive/SuperContainer/Files for example, so that the "thumbnails" folder is created like so: /Volumes/External Drive/SuperContainer/thumbnails.
+
  
=== Out of Memory ===
+
;small, x-small, xx-small, large, x-large, xx-large
When resizing large images, SuperContainer may run out of memory.  If you're running the SuperContainerServer.jar, you can launch it from the terminal with additional arguments which increase the maximum memory used by SuperContainer:
+
:sets the title size
<pre>
+
;bold
cd /path/toSuperContainer
+
:bolds the title
java -Xmx600m -jar SuperContainerServer.jar
+
;italic
</pre>
+
:italicizes the title
 +
;smallcaps
 +
:displays the title in smallcaps
  
If you're running SuperContainer in Tomcat, add this line to the top of <code>/Library/apache-tomcat-5.5.23/bin/catalina.sh</code>, right below the <code>#!/bin/sh</code>
+
See the SuperContainer Example file for a demonstration of how setting different style parameters can affect the appearance of SuperContainer.
<pre>
+
JAVA_OPTS="-Xmx512m"
+
</pre>
+
  
===Same preview image after deleting a file and uploading new file===
+
==== "background-color" URL parameter ====
change Java Temporary Internet Files setting to NOT keep temporary files on the machine.
+
  
===Standalone Mode on OS X Crashing ===
+
Specify a "background-color" url parameter to set the background color of the BODY. This can be handy if you're using SuperContainer on a colored background, and want unused space to blend in. Note: this is not a style parameter, but its own separate URL parameter. So you might have a URL that looks like this (with a background color of rgb(10,20,30)):
Newer versions of OS X use Java version 6 by default. Due to 64-bit issues, SuperContainer CoreImage support does not work correctly in Java 6. The workaround is to launch SuperContainerServer.jar using Java 5 instead.  Use the following command to launch SuperContainer in Java 5 (substituting the correct path in the first step):
+
 
<pre>
+
http://localhost:8020/SuperContainer/Files/asdf?style=bold&width=123&background-color=rgb(10,10,255)
cd /path/to/SuperContainer
+
/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Commands/java -jar SuperContainerServer.jar
+
</pre>
+
  
===Registration is gone after restart===
+
The background-color value can be a color name (green), rgb value (rgb(10,10,255)), or hex value (#336699). Note that for hex values, you'll need to escape the "#" symbol with a %23 in the URL.
There is a possibility of a permissions problem with the registration information that is written to Java Preferences
+
Mac: remove <code>/Library/Preferences/com.prosc.supercontainer.plist file and re-register</code>
+
Windows:  remove the registration keys from <code>HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Prefs/com/prosc/supercontainer/model</code>
+
  
An ampersand (&) or other special characters in the "Registered To" field can cause trouble with registration.  To fix this, you must hard-code the registration information into the web.xml file.  The ampersand must be coded as "&amp;" (without quotes) instead of just an ampersand.
+
http://localhost:8020/SuperContainer/Files/asdf?style=bold&width=123&background-color=%23336699
  
===NAS Storage permissions problems===
+
==== Customizing SuperContainer Behavior ====
Use UNC notation and refer to server by IP address.
+
  
===Error 500 in browser===
+
To disable opening a SuperContainer file in a new browser window, uncheck the Allow interaction with web viewer content checkbox in FileMaker for the Web Viewer component. You can then assign a button action to the web viewer to trigger a script when the web viewer is clicked.
Incorrect permissions is the likeliest cause of this error.
+
  
If using FMS deployment set the permissions to owner: fmserver rw group: fmsadmin rw
+
===Self Signed SSL support===
If using standalone deployment, set read/write permission for the currently logged in user.
+
If using Tomcat deployment, set read write for the user used to run tomcat.
+
  
Command line example for fixing permissions for FMS deployment:
+
selfsignedssl URL parameter will allow SuperContainer applet to interact with SuperContainer server which is accessed via a self signed SSL certificate.
cd /Users/Shared/
+
By default Java applets only support fully valid SSL certificates. Example:
chown -R fmserver:fmsadmin SuperContainer/
+
chmod -R 775 SuperContainer/
+
  
===FileMaker crashing, Java issues===
+
https://localhost/SuperContainer/Files/asdf?selfsignedssl
This from Kirk Bowman's email:
+
# I had a Java install that was not listed under Add/Remove Programs. I was able to remove it with this tool which I found on the Java site.
+
<http://support.microsoft.com/default.aspx?scid=kb;en-us;290301>
+
<http://java.com/en/download/help/uninstall_java.xml>
+
# I had a second Java Install which was from a trial copy of Crystal Reports. This is the install Jesse noticed in the logs I sent. I removed it manually.
+
  
Once they were removed, I installed JRE 6 Update 7 (for FMS9 compatibility) and the crashes have stopped on Windows with the SuperContainer applet.
+
==File Storage==
  
===SuperContainerServer.jar crashes===
+
===Default locations for SuperContainer===
This crash may happen when 64 bit Java is used, since the core image C libs are compiled for 32 bit they won't work with 64 bit Java, the solution is to use 32 bit Java.
+
  
===Dude, where are my files?!===
+
Mac OS X and Mac OS X Server
On a Mac, if you configure SuperContainer to store images in a mounted
+
volume, and one day it mysteriously stops seeing all the files it had
+
previously created, but otherwise seems to be working normal, there's a good
+
chance that someone tried to operate it while the volume was not mounted.
+
  
What SC does if you give it a path that doesn't exist, is it makes that path
+
/Users/Shared/SuperContainer
for you. This is a useful feature in most cases, but if the volume you are
+
targeting is not mounted (on a Mac) SC will make a directory with the same
+
name as the volume in /Volumes. Then next time the volume actually is
+
mounted, the sym link in /Volumes gets a 1 appended to it. Fortunately this
+
is exceedingly simple to fix.
+
  
Mount the volume, copy any files that were uploaded into the imposter folder
+
Windows XP and Windows Server 2003
to the proper location in the volume, unmount the volume, delete the folder
+
 
and remount the volume. Done.
+
C:\Documents and Settings\SuperContainer\Files
 +
 
 +
Windows Vista, when running in Standalone mode
 +
 
 +
C:\Users\username\SuperContainer\Files
 +
 
 +
Windows Vista, when running with Tomcat or FileMaker Server
 +
 
 +
C:\Users\SuperContainer\Files
 +
 
 +
===To configure a custom location===
 +
 
 +
'''Standalone''': use the Option panel to specify a custom path.
 +
 
 +
'''Tomcat or FMS deployment''': use the web.xml file to specify a custom path.
 +
 
 +
===web.xml Locations===
 +
 
 +
Mac FMS deployment
 +
 
 +
/Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/SuperContainer/WEB-INF/web.xml
 +
 
 +
Mac Tomcat deployment
 +
 
 +
TOMCAT_HOME/webapps/SuperContainer/WEB-INF/web.xml
 +
 
 +
Windows FMS deployment
 +
 
 +
C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\SuperContainer\WEB-INF\web.xml
 +
 
 +
Windows Tomcat deployment
 +
 
 +
TOMCAT_HOME\webapps\SuperContainer\WEB-INF\web.xml
 +
 
 +
'''Note''': When specifing a custom location make sure that SuperContaier will have read/write privileges to the parent folder, thumbnails directory will be created in the same folder as the custom location.
 +
 
 +
'''Note''': C: represents the drive letter of the system drive.
 +
 
 +
==Integrating with or migrating from other FileMaker databases==
 +
 
 +
=== Importing legacy container data into SuperContainer ===
 +
 
 +
If you are migrating an existing FileMaker solution to use SuperContainer, you need a way to move your existing container fields over to SuperContainer. You can accomplish this by using the SuperContainer Companion Plugin. Simple write a script that loops through your records and call <pre>SCSetContainer("Asset/" & Asset::ID ; Asset::OldContainerField) </pre>for each record you wish to move over. See the [http://www.360works.com/plugins/SuperContainer/plugin-documentation.html Companion Plugin documentation] for more details, or watch a video demonstrating how to do this at http://www.360works.com/supercontainer/demos/set_container/
 +
 
 +
===Importing SuperContainer resources from the file system===
 +
 
 +
If you have a directory full of files you wish to add to SuperContainer, you can either copy them to the directory where SuperContainer stores its files, or use the companion plugin function SCScanDirectory to return a list of files in a directory. You can optionally set a flag to scan for files recursively. See the Companion Plugin documentation for more details.
  
Jeremiah Small
 
  
 
==Web publishing==
 
==Web publishing==
Line 521: Line 495:
 
===Security issue with loading plugin in IWP===
 
===Security issue with loading plugin in IWP===
 
The demo file that comes with SuperContainer disables many of the plugin functions when they are being accessed through Instant Web Publishing. For an explanation, read the [[Security issues with Web Publishing]] article.
 
The demo file that comes with SuperContainer disables many of the plugin functions when they are being accessed through Instant Web Publishing. For an explanation, read the [[Security issues with Web Publishing]] article.
 
===Using Apache's or IIS' SSL or Authentication settings===
 
[[redirecting SuperContainer request from Apache or IIS]]
 
 
===Redirecting SuperContainer request from Apache or IIS===
 
[[redirecting SuperContainer request from Apache or IIS]]
 
 
==Usage tips==
 
 
===Is opening the file to view it different with the noapplet parameter?===
 
Yes, when not using the Java applet, SuperContainer will open files through the default web browser. For Mac OS X, this is Safari. For Windows, it is Internet Explorer. Each browser operates slightly different with various file types. Some browsers are able to render certain files (PDFs for example) like Safari, while others are unable to by default, like Internet Explorer and Firefox and instead download the file to the user's temporary or "Downloads" directory.
 
 
As a workaround you could use FileMaker's "Open URL[]" script step to open the file in the native application (ex., Adobe Acrobat for PDFs). An example of this is offered in our documentation for SCDownload() and attach this to a button on your layout.  (See: "Opening a file in it's native program without Java Applets" below)
 
 
===SuperContainer Security and Web Hosting===
 
This is an issue and question that surfaces consistently. While operating under a web interface, it can be extremely difficult for someone to be able to access the file(s) directly, especially if those files are placed outside of the website's root file directory. Unless there is FTP access enabled, then only if the setup is sloppily done with no real security.
 
 
One good piece of advice about security when using SuperContainer and the web -- since the S.C. interface uses a 'web address' to pull the file and display it on the web browser -- DO NOT use sequential numbers to identify your files. The reason for this is that if someone was paying even the slightest attention, they would notice that the web address will display the ID of the file, like this -
 
 
<pre>
 
http://www.yourServer.com/SuperContainer/Files/PDFs/1024/
 
</pre>
 
 
Nothing is stopping them from manually typing in the address bar
 
 
<pre>
 
http://www.yourServer.com/SuperContainer/Files/PDFs/1025/
 
http://www.yourServer.com/SuperContainer/Files/PDFs/1026/
 
</pre>
 
 
and so on to view documents/pictures you didn't intend for them to see. Use a highly unique identifier instead, like a UUID. It'll will increase the size of your web address/URL, but this also makes it near impossible for someone to "guess" an address.
 
 
===Opening a file in it's native program without Java Applets===
 
You would want to use the SCDownload() function in conjunction with the Open URL script step. The SCDownload will grab the file from the SuperContainer server and place it on the user's local machine. Then the OpenURL script step will open the local document in whatever program it would natively open in:
 
 
Open URL [SCDownload("Photos/12345")]
 
 
As seen above, the only thing needed in the SCDownload() function -- as with most SuperContainer plug-in functions -- is the folderPath (everything after the "/Files" piece) that points to the file on the server. Also as seen above, is that there is no explicit file name that is passed in (as it should be). So, by following the above, you should be able to get your solution to work as expected.
 
 
Link to SC Companion plug-in function (SCDownload()):
 
http://360works.com/plugins/SuperContainer/plugin-documentation.html#SCDownload
 
 
===Question about naming strategies. Address the FAQ of why everything is stored in folders===
 
FIX! Fill this in
 
 
===Editing documents and using the plugin to re-upload them===
 
FIX! Fill this in
 
 
===Single record linking to multiple web viewers (ie. multiple URL's for a single record)===
 
For the purposes of this example assume that we have a contact record that has to files attached to it, one file is the picture of the contact and the other file is contact biography Word file.
 
 
In order to have both files linked to the same record they both need to have some common piece of information, such as a record ID. As well, they both need a differentiating attribute, file type is a good candidate.
 
 
Example URLs:
 
http://serverAddress:portNumber/SuperContainer/Files/recordID/FileType
 
 
http://192.168.2.1:8020/SuperContainer/Files/12/image
 
http://192.168.2.1:8020/SuperContainer/Files/12/document
 
or
 
http://192.168.2.1:8020/SuperContainer/Files/12/contact_image
 
http://192.168.2.1:8020/SuperContainer/Files/12/contact_bio
 
 
===Using SuperContainer with portals===
 
Here is a link to a sample FileMaker database file that uses SuperContainer with portals, container fields, and integrates multiple files/documents in a related record:
 
 
demo.360works.com/SuperContainerDemo/PortalUseAdmin.fp7
 
 
===Using RawData URL to include images on public web site with an IMG tag.===
 
FIX! Fill this in
 
 
===Viewing multiple page PDFs within the web viewer===
 
There are two ways to accomplish that in SuperContainer.
 
 
1.
 
 
This requires that SuperContainer is running in 'standalone' mode on Mac.  In this mode SuperContainer will automatically render the first page of the PDF.  To get a preview of another page just use the <strong>page</strong> parameter in your URL.
 
EX:
 
http://localhost:8020/SuperContainer/Files/multi/page/PDF?page=1
 
http://localhost:8020/SuperContainer/Files/multi/page/PDF?page=4
 
 
2.
 
 
This method requires that the system browser on user's machine is able to render PDF files.  On Mac this is built in functionality, on Windows this can be accomplished by installing Adobe Acrobat plugin for IE or the equivalent.  To load the PDF file in the webviewer use the following URL:
 
http://localhost:8020/SuperContainer/RawData/multi/page/PDF
 
 
Using the context <strong>RawData</strong> tells SuperContainer to return the actual file stored instead of displaying a Java applet or HTML form to present the file.  And if the browser is able to render the PDF then it will be available to the user right in the webviewer.  Note that this method loads the complete PDF into the webviewer where the first method load just preview of a single page.
 
 
===Industry-specific tips===
 
* [[Using SuperContainer in the Legal field]]
 
 
===Customizing the appearance of SuperContainer===
 
FIX! Fill this in
 
 
=== Getting the file name of a SuperContainer file ===
 
Easy-peazy with the SuperContainer Companion plug-in. Take a look at the following example:
 
 
<pre>GetValue( SCGetInfo( folderPath ) ; 1 )
 
</pre>
 
 
Where folderPath is the path to the file that is located on the SuperContainer server. If your web viewer URL is:
 
<pre>"http://servername:8020/SuperContainer/Files/Employee/Document/" & Document::ID
 
</pre>
 
your folderPath would be: "Employee/Document" & Document::ID
 
 
This uses the GetValue() function and grabs the first line from the SCGetInfo() return-separated list. The first line (1), being the file name.
 
 
===Using image transparency with SuperContainer===
 
To use image transparency with SuperContainer, such as with a .png file, you must add "?style=noapplet" to the end of your supercontainer URL.  Using this mode, you will not have drag and drop capabilities, so if you need this, you can have one web viewer on one layout without this parameter for dragging and dropping, and then the other web viewer on the layout that needs transparency.  Consider that SuperContainer will not automatically detect width and height in this mode, and so you will also need to add "width=x&height=y".
 
 
Example:  http://yourServer/SuperContainer/Files/path/to/files?style=applet&width=250&height=275
 
 
===Storing the filename of an uploaded file in a FileMaker field===
 
If you want to store the name of an uploaded file into a FileMaker field, first ask yourself whether it's really necessary. The way that SuperContainer is designed, FileMaker does not need to know the filename in order for the user to upload, download, view, print, or delete the associated document. However, FileMaker does need the filename in order to do searches on it.
 
 
If you decide that you need to store the filename in a field, there are two approaches, which both involve the optional SuperContainer Companion Plugin.
 
 
* Option 1: Do not use the Web Viewer to upload files - instead use the SCChooseFile plugin function to get the path of the requested file. Then you can extract the name of the selected file into a FileMaker field, and use SCSetContainer to upload the document to SuperContainer. This option is very reliable, but will not work with the Web Publishing Engine (because the SCChooseFile function does not work on the web).
 
* Option 2: Use the Web Viewer to upload the file, and then have a 'save' or 'continue' button that the user clicks after completing the upload. This can then use the SCGetInfo plugin function to get the name of the file and store it into a FileMaker field. This option is the one to choose if you need this to work with the Web Publishing Engine.
 
 
===Preview TIFF images===
 
Run SuperContainer on a Mac in standalone mode, by executing SuperContainerServer.jar file
 
 
===Using SCScanDirectory()===
 
<pre>
 
Set Variable [ $setBaseURL ; SCSetBaseURL() ]
 
 
Set Variable [ $files ; SCScanDirectory( pathToDir ) ]
 
 
Set Variable [ $counter ; 1 ]
 
Loop
 
Set Variable [ $upload ; SCSetContainer( folderPath ; MiddleValues ( $files ; $counter ; 1 ) ) ]
 
if [ $upload = "ERROR" ]
 
Show Custom Dialog [ "EROR" ; SCLastError ]
 
End If
 
Set Variable [ $counter ; $counter + 1 ]
 
Exit Loop If [ $counter = ValueCount ( $files ) ]
 
End Loop
 
</pre>
 
 
===Why can't SuperContainer store multiple files in a single directory?===
 
One of the original design goals of SuperContainer was that it would work without requiring any plugins. This led to a series of decisions:
 
* FileMaker is not capable, without plugins, of knowing the name of a file on the hard drive.
 
* Therefore, it is logically impossible to embed the name of the file into a Web Viewer using only features built into FileMaker.
 
* To solve this problem, we made it so that instead of representing the file name, the URL would just represent the folder that the file is stored in. This can be picked by the developer without regard to the actual name of the file.
 
* Since this folder reference needs to unambiguously identify a particular file, it follows that a 1 folder must equal 1 file. If you reference a folder in SuperContainer that contains more than 1 file, it will just retrieve the first file it finds, ignoring any others in the same folder.
 
 
Some of our customers do know the names of the files that they are storing, and it seems natural to them to store many files in a single folder. In this case, we make the following recommendations:
 
* Don't worry about it - just go ahead and use the file name in the URL. This will result in the file being nested one level deeper than necessary, but it doesn't hurt anything. For example, let's say you have a file called 'MyFavoriteFlower.jpg'. If you set your URL to '/SuperContainer/Files/images/MyFavoriteFlower.jpg', then it will be stored with this path on the server: images/MyFavoriteFlower.jpg/MyFavoriteFlower.jpg. Other than being a little annoying to know about this is harmless.
 
* Drop the filename from the URL - SuperContainer will still store it just fine on the server. So for the above example, let's use the record ID (let's pretend it's record #17) instead of the filename: '/SuperContainer/Files/images/17'. This will be stored on the server as images/17/MyFavoriteFlower.jpg. This is a better approach than the first option, because if you have another different file called MyFavoriteFlower with record #18, it will be stored in images/18/MyFavoriteFlower.jpg with no name conflicts.
 
* Remember, in SuperContainer 2, you upload entire directory structures to SuperContainer, so if you have a folder on your desktop named 'CoolStuff' that contains 'MyFavoriteFlower.jpg', 'MyFavoriteTree.jpg', and 'MyFavoriteBug.jpg', you can upload that folder into a single folder in SuperContainer. If your URL is /SuperContainer/Files/19, it will be stored on the server as a single zipped file in 19/CoolStuff.zip.
 
 
===Enabling QuickLook===
 
<strong>OS X 10.6 Snow Leopard and 10.7 Lion Only</strong>
 
<code>/Library/Preferences/com.prosc.supercontainer.properties</code>
 
 
It should contain this single line:
 
<code>quickLookEnabled true</code>
 
 
===Apache upload limit===
 
Edit the "server.xml" file located in your Apache Tomcat Directory.
 
Add/Edit the "maxPostSize" attribute in the "Connector" element to increase the size.
 
 
<pre>    <Connector port="8080" maxHttpHeaderSize="8192"
 
              maxThreads="300" minSpareThreads="25" maxSpareThreads="75"
 
              enableLookups="false" redirectPort="8443" acceptCount="1024"
 
              connectionTimeout="20000" disableUploadTimeout="true"
 
              compression="on"
 
              maxPostSize="104857600" />
 
</pre>
 
 
Here is a link with more detailed instructions:
 
 
http://tomcat.10.n6.nabble.com/Setting-max-file-upload-size-td2010633.html
 
 
===IIS upload limit===
 
 
http://support.microsoft.com/kb/942074/
 
 
<code>iis config file: %windir%\system32\inetsrv\config\applicationhost.config</code>
 
<pre>
 
<system.webServer>
 
        <security>
 
            <requestFiltering>
 
                <requestLimits maxAllowedContentLength="524288000"/>
 
            </requestFiltering>
 
        </security>
 
</system.webServer>
 
</pre>
 
 
===Moving SuperContainer Contents to a New Location===
 
 
I've deployed SuperContainer to one location, and now I need to move SuperContainer, along with all of the associated assets, somewhere else. What's the best way to do this?
 
 
* Move the Files directory
 
 
If you have access to the SuperContainer "Files" directory, the easiest way to move assets is to simply move the SuperContainer/Files/ directory to your new SuperContainer location. Upon deploying and configuring SuperContainer at the new location, SuperContainer will create a Files directory at the base URL you specify. Replacing this Files directory with the existing directory will maintain all of the assets and relationships from the current deployment.
 
 
* Use the Companion Plugin
 
 
After setting the base URL at the new location, using SCGetContainer to retrieve the SuperContainer asset from the old location.  Then use SCSetContainer to upload the asset to the new deployment location. You'll likely want to embed this in a looping script that will iterate through all of the SuperContainer assets. You can view a [http://www.360works.com/supercontainer/demos/set_container/ video about this process here.]
 

Revision as of 20:14, 16 November 2012

SuperContainer Documentation
SuperContainer Companion Plug-in
Troubleshooting and Known Issues
Advanced Configs, Tips, Tricks, and FAQ
PHP Documentation

SuperContainer eliminates the hassle of dealing with container fields in FileMaker. It runs as a web-based java application which allows you to upload, view, and download scaled images and files from an embedded web viewer in FileMaker (introduced in FileMaker 8.5).

It is an effective replacement for container fields in solutions which require users to read and store files associated with records in FileMaker container fields, and offers numerous advantages over container fields.

SuperContainer is designed to be used from within a Web Viewer layout element in FileMaker, by pointing the Web Viewer to a URL that uniquely identifies a file resource you wish to store. This URL can contain any number of arbitrary path components.

In addition, SuperContainer ships with a Companion Plugin that allows you to automate access to SuperContainer resources. Consult the documentation in the SuperContainer Companion Plugin directory for more details and examples.

Contents

System Requirements

  • FileMaker Clients:
    • Must be running FileMaker 8.5 or later to view the items stored in SuperContainer.
    • To use the optional SuperContainer companion plugin or the browser-based drag-and-drop functionality, Windows clients must have Java 1.5 or later installed. Get Java here.
  • Web Clients (Instant Web Publishing)
    • To use the browser-based drag-and-drop functionality, Windows clients must have Java 1.5 or later installed.
  • Server:
    • Macintosh OS X: Mac OS X 10.2 or later
    • Windows: Microsoft Windows Vista, Microsoft Windows XP Service Pack 2 and Service Pack 3, Windows XP Professional, Windows 2000 Server, Windows 2000 Professional, or Windows Server 2003; Java 1.5 or later
    • Linux/Solaris: Java 1.5 or later

If your computer does not have Java installed, you may download it at http://java.sun.com/javase/downloads/index.jsp

Installation: Deployment Options

You can run SuperContainer as a standalone application, or by bundling into FileMaker Server Advanced, or in your own copy of Tomcat. If you are upgrading from a version older than 1.3, be aware that the URL formats have changed in SuperContainer.

Note: There is an incompatibility with older versions of some 360Works plugins. If you are using other 360Works plugins, be sure to download new versions at http://360works.com/products/

Option 1: Using SuperContainer as a standalone server application

This approach is excellent for simple deployment, as well as for testing and development. There's no installation required, you just start the server and immediately begin using it. You will need to start the SuperContainerServer every time the machine it is running on is rebooted.

Macintosh or Windows: Double-click the SuperContainerServer.jar file to start the standalone application. Once the application is running, you should be able to view the opening page at http://localhost:8020/SuperContainer . The server application allows you to specify where uploaded files are stored, and customize several other settings. To restrict unwanted access to your SuperContainer files, enter a username and password in the options dialog.

Deploying SuperContainer in standalone mode on Mac OS X enabled CoreImage rendering support. See the Supported Image Formats and CoreImage rendering section for more information.

Note: the standalone application must be in the same directory as the SuperContainer application folder.

Option 2: Installing SuperContainer with FileMaker Server Advanced

his approach is recommended for advanced users if you are running SuperContainer on a dedicated server which is also running FileMaker Server (or Advanced) 8, 9, 10, 11, or FileMaker Server 12.

Copy the entire SuperContainer download folder to your server, and double-click the MacInstaller.jar (Mac) or WindowsInstaller.exe (Windows) file in the SuperContainer folder. The SuperContainer Installer takes care of the following for you:

  • Adds SuperContainer web application to the hosting folder of Tomcat built into WPE.
  • Backs up and modifies webserver configuration to make SuperContainer available on port 80.
  • Backs up and reapplies SuperContainer settings from previous versions if such exist.
  • Once installation is complete, restart the machine and then point your browser to http://serverAddress/SuperContainer.

If you have trouble running the installation file, you can perform a manual installation as an alternative.

Manual Installation with FileMaker Server Advanced

  1. Determine your INSTALLATION_PATH
    • FMS12 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/
    • FMS11 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/
    • FMS10 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/
    • FMS9 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/
    • FMS8 on OS X: /Library/FileMaker Server/Web Publishing/jakarta-tomcat/webapps/
    • FMS7 on OS X: /Library/FileMaker Server 7/Web Publishing/jakarta-tomcat/webapps/
    • FMS12 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\
    • FMS11 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\
    • FMS10 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\
    • FMS9 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\
    • FMS8 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\jakarta-tomcat\webapps\
    • FMS7 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\jakarta-tomcat\webapps\
  2. Copy the SuperContainer folder to your INSTALLATION_PATH. Only copy the directory called 'SuperContainer', not the entire SuperContainer_2.0 directory.
  3. Modify the tomcat configuration files to serve SuperContainer content on port 80
    1. Determine your TOMCAT_CONFIG_FILE path
      • Mac OS X (for FMS12): locate mod_proxy.conf in /Library/FileMaker Server/Admin/admin-helper/WEB-INF/conf/
      • Mac OS X (for FMS11 and below): locate mod_jk.conf or mod_jk_paths.conf in /Library/FileMaker Server/Admin/admin-helper/WEB-INF/conf/
      • Windows: locate uriworkermap.properties file in C:\Program Files\FileMaker\FileMaker Server\Admin\admin-helper\WEB-INF\conf\
    2. Add the appropriate lines to mount the SuperContainer webapp

Mac OS X (for FMS12):

ProxyPass /SuperContainer ajp://127.0.0.1:16021/SuperContainer
ProxyPassReverse /SuperContainer ajp://127.0.0.1:16021/SuperContainer

Mac OS X (for FMS11 and below):

JkFmMount /SuperContainer/* cwpe
JkFmMount /SuperContainer cwpe

Windows (for FMS12):

/SuperContainer/*=jwpc
/SuperContainer=jwpc

Windows (for FMS11 and below):

/SuperContainer/*=cwpe
/SuperContainer=cwpe

After saving your changes, restart your web service and all associated services (Tomcat, IIS, FMS). Restarting your computer will work as well. SuperContainer should now be up and running!

Option 3: Installing SuperContainer with Tomcat

This approach is recommended for advanced users if you are running Linux, Solaris, or any other computer not running FileMaker Server Advanced.

You must have a copy of Tomcat (downloadable from http://tomcat.apache.org) installed and running.

  1. Download latest SuperContainer form www.360works.com/supercontainer/
  2. Extract the downloaded zip
  3. Stop Tomcat, either using the 'badge' icon in the bottom right corner on Windows, or by stoping service.
  4. If desired, customize the settings found in the SuperContainer/WEB-INF/web.xml configuration file. You can customize the path where files are stored, as well as set a username and password to protect your SuperContainer files.
  5. Copy the SuperContainer folder into the Tomcat webapps folder. Usually it's located: C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps
  6. Go to http://serverAddress:8080/SuperContainer to make sure that SuperContainer is running correctly. Note that the default port with Tomcat is 8080, instead of 8020 for standalone mode.

Using SuperContainer in your FileMaker solution

Let's walk through setting up SuperContainer for a sample FileMaker solution. We will assume for these examples that your server is called 'yourServer.com', and that you have a table occurrence called 'Asset' with a field called 'ID'. This ID field is how you want to reference your files on the server. Substitute the actual values for your situation.

Registration

By default, SuperContainer will run in demo mode, which must be restarted every 2 hours. It will also display a small "DEMO" flag on all pages. You can activate the software at http://yourServer.com:8020/SuperContainer/Registration after purchasing SuperContainer and receiving your license key. This will remove the "DEMO" flag and will no longer time out after 2 hours.

SuperContainer URLs

You will need to start by creating a web viewer in your FileMaker layout, and assign a SuperContainer URL to the web viewer. The first part of the URL is always:

http://yourServer.com:portNumber/SuperContainer/Files

or

http://yourServer.com:portNumber/SuperContainer/SingleFile

Where "Files/" points to a directory and "SingleFile/" points to a particular file within a directory (Example usage below).

After that, you specify where on the server you want the uploaded file to be stored. You can include slashes in the URL to store the files subfolders, like this:

/path/to/file

You can also specify optional parameters in the URL which affect the behavior of SuperContainer. See the #Customizing SuperContainer Appearance section for more about how to customize the SuperContainer display.

Typically, you would include the name of the table and the unique ID of the record into the URL, so if SuperContainer is running on the default port of 8020 for our example 'Asset' table, your URL for record number 4321 would look like this:

http://yourServer.com:8020/SuperContainer/Files/Asset/4321

Additionally, if you know the filename that was present within record 4321 -- say, "myAsset.jpg" -- then you could use SingleFile/ to point directly to that file. For example:

http://yourServer.com:8020/SuperContainer/SingleFile/Asset/4321/myAsset.jpg

The FileMaker calculation to do this would look like this:

"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID

or

"http://yourServer.com:8020/SuperContainer/SingleFile/Asset/" & myTable::ID & myTable::filename

Note that the SuperContainer URL can contain as many elements as you like. If a given asset can have 3 images uploaded to it, you could either create a new table for holding the images, or use the following URL schema:

"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/1"

"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/2"

"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/3"

Uploading Files

There are several ways to upload files to SuperContainer. The simplest is to drag a file or directory onto the SuperContainer window, which immediately uploads the file, displaying a progress bar during the upload process.

If you are looking at a SuperContainer URL which has no file uploaded to it, by default an "Upload file" button is displayed. You can use this button or right-click/ctrl-click to display a file chooser dialog. Select a file or directory to upload and click "OK", which then uploads the file, displaying a progress bar during the upload process.

Accessing Files

Once a file has been uploaded to SuperContainer, it is displayed at the current width of the browser window (for images) or displayed as a file icon (for non-images).

Double-click on a file to download the file to the local computer and open it in the default application for that file type. Alternately, you can right-click and choose "Open in default application".

To save a file to a custom location, right-click and choose Save file.... This opens a file chooser dialog where you can specify where to save the file.

To view a resource in your browser, right-click and choose View in browser. This opens a RawData URL in your browser which points to the raw file contents.

Deleting Resources

To delete a resource, use the "delete" button or context menu. Dragging a new file into SuperContainer will also delete any existing file.

Using SuperContainer with FileMaker Go

You do not need to change anything in SuperContainer to use it with FileMaker Go. SuperContainer will detect that it is being viewed in FileMaker Go and automatically switch to 'noapplet' mode, which means that it will use HTML instead of a Java applet (Java is not supported on iOS). There are a few behavior differences to be aware of when using SuperContainer with FileMaker Go:

  • There is no ability to upload files, because there is no file system on FileMaker Go, and thus Mobile Safari does not support file uploads.
  • Since there is no ability to upload files, we also remove the 'delete' button, so the user cannot delete the item stored in SuperContainer.
  • If you click on an item stored in SuperContainer, it will render at full size within the web viewer. In the case of Word or PDF documents, you will see the contents of the file inside the web viewer, and for QuickTime movies, you will see the movie play within the web viewer (if it is encoded in a format supported by iOS). This is different than the regular SuperContainer behavior, which opens a separate browser window to display the full resource.

If you would like to view the SuperContainer resource in a full-screen browser window in FileMaker Go, you will need to add a button or script that calls the 'Open URL' script step. The URL should be the regular SuperContainer URL with the word 'RawData' in place of 'Files' (see 'RawData URLs' below for more information). Thus, the script step would look like this:

Open URL[ Substitute( SuperContainer URL; "/SuperContainer/Files/"; "/SuperContainer/RawData/" ) ]

There is a 9-minute movie available on Youtube demonstrating SuperContainer features on FileMaker Go: http://www.youtube.com/watch?v=ZPw3uibJC_c

Specifying image dimensions

SuperContainer automatically detects the size of the web viewer or web page that it is displayed on, and generates a thumbnail to exactly match the display size. You do not need to do anything for this to work. However, you may optionally want to display the image at a different size than the web viewer. In that case, you can include a width and/or height parameter in your URL, like this:

http://yourServer.com:8020/SuperContainer/Files/Asset/4321?height=500

http://yourServer.com:8020/SuperContainer/Files/Asset/4321?width=400

http://yourServer.com:8020/SuperContainer/Files/Asset/4321?height=64&width=64

Embedding authentication username and password in the URL

If you have password-protected your SuperContainer installation and don't want users to be prompted for a username and password, you can embed this information directly into your URL. For a username of "bob" and password "secret", you can do the following:

http://bob:secret@yourServer.com:8020/SuperContainer/Files/etc...

Note: this is not a foolproof means of preventing users from finding out the username and password! The password will be shown briefly when loading the page, and again when clicking on a link to download the image.

Alternately, you can include the username and password as regular URL parameters (version 2.54 and later). To do this, include a username and password parameter in your SuperContainer URL, for example:

http://yourServer.com:8020/SuperContainer/Files/testing?username=bob&password=secret

This is useful for Internet Explorer users whose security settings prevent the browser from allowing authenticationi from being embedded in the URL.

Specifying a custom resolution

If you need to print images from SuperContainer, you can specify an optional resolution parameter, telling SuperContainer to display images as hi-res. The default resolution is 72. If you specify a different resolution, SuperContainer will return a large image, and will alter the HTML img tag to have the correct width and height.

Note: you should also specify style=noapplet when printing, and specify a maximum width/height.

Here is an example URL with a resolution parameter set:

http://yourServer.com:8020/SuperContainer/Files/xyz?width=64&height=64&resolution=300&style=noapplet

If the original image is large enough, this results in an on-screen image no larger than 64x64 pixels, with a resolution of 300 DPI. If the image is not large enough, the DPI will be scaled down to no less than 72 DPI.

Note: for performance reasons, you should only specify a resolution parameter for print-specific layouts. The server needs to do additional work analyzing the image if there is a resolution parameter, and the resulting image is also larger than necessary for on-screen viewing.

Printing Images from SuperContainer

SuperContainer is access from a web viewer, and because of this printing before your image has completely downloaded or the applet has been loaded is a possibility. To make sure that you do not print before you have completely downloaded your image from SuperContainer it is recommended that you do one of the following:

A. Download the image to an unstored calc using the SCGetContainer function of the SuperContainer Companion plugin - This solution will automatically download the image at the full resolution for printing, however you will need to have the Companion Plugin installed.

B. Use "noapplet" mode with a specified hight, width, and resolution parameter as well - This option still risks printing before your download has finished, but reduces some of the risk of your print not working properly due to the java applet. You may want to add a one or two second pause to make sure that your images completely download.

Supported Image Formats and CoreImage rendering

SuperContainer by default currently supports thumbnail generation for the following image formats: bmp, jpg, gif, png, jpeg2000, raw, pnm, and tiff (on some platforms). Some images may use a compression format that SuperContainer cannot resize. These will always be displayed as full-size images.

SuperContainer 2.0 and higher running in standalone mode on OS X uses OS X's CoreImage rendering to generate thumbnails. In addition to being significantly faster, CoreImage can render almost any image format you throw at it, including PDF, EPS, SVG, TIFF, Photoshop, and many more.

Note that CoreImage only needs to be running on the server, any client connecting to SuperContainer will see the rendered thumbnails. This means Windows FileMaker clients can see PDF content previews in their web viewers.

Using SuperContainer outside FileMaker

SuperContainer is a web-based application, so you can access it from anywhere you have a network connection. If you are using custom web publishing or writing tools in other languages, you can still have access to your SuperContainer data.

Custom Web Publishing

Version 2 of SuperContainer includes a PHP API for interacting with SuperContainer from your custom web publishing applications. Simply include() the PHP/supercontainer.php file in your PHP script, then use the included functions to upload, download, delete, and query the server.

See the SuperContainer PHP Documentation.html in the Support files/PHP directory of your SuperContainer download for more info.

Java Integration

There is a developer's Java API available separately. If you're writing a server-side java application or a desktop swing application, this provides an easy way to integrate with SuperContainer. Contact 360Works for more info on this.

RawData URLs

If you want to link directly to the contents of a SuperContainer file, you can use a RawData URL. Simple replace the word "Files" with RawData" in your SuperContainer URL, like this:

http://myServer.com:8020/SuperContainer/RawData/Asset/4321

If you know that a given resource is renderable by SuperContainer, you can inline the contents of the file in some other HTML page by using an img tag linked directly to the RawData URL, like this:

img src="http://myServer.com:8020/SuperContainer/RawData/Asset/4321"

Note that if Asset/4321 contains some non-image file, this will result in a broken image icon. A safer option is to use an iframe tag pointing to the Files URL for the given SuperContainer folderPath.

Applet vs. NoApplet

SuperContainer uses either a Java applet or an HTML interface for uploading, downloading, and displaying documents. You can explicitly specify which interface you want by adding the ?style=applet or ?style=noapplet parameter on to the end of your SuperContainer URL. See the section on #Customizing SuperContainer Appearance for more details.

If you do not specify whether to use the applet or html interface, SuperContainer will use the best default, based on your browser and OS version. Users running Google Chrome, Firefox, or OS X Lion (10.7) will see the HTML view. All other users will see the Applet view.

Applet Advantages

  • Drag or paste a file into SuperContainer
  • Supports uploading directories, which are automatically zipped by the applet. Some documents (such as .pages documents) which appear to be files are in fact directories.
  • Double-clicking a file downloads the file into the downloads directory instead of opening it in the default application
  • Delete key deletes a file if SuperContainer is focused, so there is no need to display a "delete" button.

HTML Advantages

  • Works in all browsers
  • Does not require Java to be installed on the user's computer
  • May load faster than the applet version

Customizing SuperContainer Appearance

The appearance of a SuperContainer page can be customized by setting custom style and background-color parameters in your SuperContainer URL. Some styles affect which controls are visible or hidden, others affect the layout arrangement, and others modify the font of the resource title.

There are two primary modes SuperContainer has for displaying images: Plain HTML and a Java Applet. The plain HTML is lighter-weight and loads more quickly, the applet allows much more interactivity such as drag-and-drop support. The applet is used by default, unless a style of listview or noapplet is used in the SuperContainer URL.

"style" URL parameter

Specify a "style" url parameter to change the way a resource is displayed by SuperContainer. You can group multiple style names together with the "+" symbol. For example:

http://yourServer.com:8020/SuperContainer/Files/Asset/4321?style=readonly+bold+large

Here is a quick summary of the different styles that are available by default:

Layout Styles
(empty)

the default style looks like a container field, except there is an upload input if the resource is empty, and a delete button if it is non-empty.

listview
intended for use in list layouts, displays a small thumbnail or icon, with the filename to the right of it. All editing controls and other info are hidden. List view uses a default width and height of 64, but you can specify other dimensions by specifying your own width/height in the URL.
image_only
hides everything except the image or file icon.
showdelete
shows the delete button, which is not displayed by default. Note that the 'delete' context menu and DELETE key action are enabled by default.
nodelete
hides/disables the delete button, delete context menu, and DELETE key action.
upload
always show the upload button (even if the resource is non-empty).
noupload
never show the upload button (you can still upload a file by dragging or right-clicking).
readonly
hides the delete and upload buttons.
nopreview
hides the image or icon.
info
displays a table containing the filename, filesize, and date uploaded. This causes the title to be hidden, since that is included in the table.
title
always display the title, for both images and icons (by default, the title is hidden for images)
notitle
always hide the title
nolink
disable the hyperlink for the document. Clicking on a thumbnail or document will not do anything.
noapplet
Disables the applet view in SuperContainer 2. This will make SuperContainer work more like version 1.
noscroll
Hides scroll bars. Sometimes this is necessary when using very small (50px) web viewers, which display scroll bars even though the image would fit within the dimensions of the web viewer.
Alignment Styles (only applies with noapplet style)
left
aligns image, title, and controls to the left
right
aligns image, title, and controls to the right. There is no horizontal style to align to the center because that is the default.
center
aligns content in the center of the web viewer.
bottom
aligns content at the bottom of the web viewer. There is no 'top' style because that is the default.
Title Font Styles (only applies with noapplet style)
small, x-small, xx-small, large, x-large, xx-large
sets the title size
bold
bolds the title
italic
italicizes the title
smallcaps
displays the title in smallcaps

See the SuperContainer Example file for a demonstration of how setting different style parameters can affect the appearance of SuperContainer.

"background-color" URL parameter

Specify a "background-color" url parameter to set the background color of the BODY. This can be handy if you're using SuperContainer on a colored background, and want unused space to blend in. Note: this is not a style parameter, but its own separate URL parameter. So you might have a URL that looks like this (with a background color of rgb(10,20,30)):

http://localhost:8020/SuperContainer/Files/asdf?style=bold&width=123&background-color=rgb(10,10,255)

The background-color value can be a color name (green), rgb value (rgb(10,10,255)), or hex value (#336699). Note that for hex values, you'll need to escape the "#" symbol with a %23 in the URL.

http://localhost:8020/SuperContainer/Files/asdf?style=bold&width=123&background-color=%23336699

Customizing SuperContainer Behavior

To disable opening a SuperContainer file in a new browser window, uncheck the Allow interaction with web viewer content checkbox in FileMaker for the Web Viewer component. You can then assign a button action to the web viewer to trigger a script when the web viewer is clicked.

Self Signed SSL support

selfsignedssl URL parameter will allow SuperContainer applet to interact with SuperContainer server which is accessed via a self signed SSL certificate. By default Java applets only support fully valid SSL certificates. Example:

https://localhost/SuperContainer/Files/asdf?selfsignedssl

File Storage

Default locations for SuperContainer

Mac OS X and Mac OS X Server

/Users/Shared/SuperContainer

Windows XP and Windows Server 2003

C:\Documents and Settings\SuperContainer\Files

Windows Vista, when running in Standalone mode

C:\Users\username\SuperContainer\Files

Windows Vista, when running with Tomcat or FileMaker Server

C:\Users\SuperContainer\Files

To configure a custom location

Standalone: use the Option panel to specify a custom path.

Tomcat or FMS deployment: use the web.xml file to specify a custom path.

web.xml Locations

Mac FMS deployment

/Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/SuperContainer/WEB-INF/web.xml

Mac Tomcat deployment

TOMCAT_HOME/webapps/SuperContainer/WEB-INF/web.xml

Windows FMS deployment

C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\SuperContainer\WEB-INF\web.xml

Windows Tomcat deployment

TOMCAT_HOME\webapps\SuperContainer\WEB-INF\web.xml

Note: When specifing a custom location make sure that SuperContaier will have read/write privileges to the parent folder, thumbnails directory will be created in the same folder as the custom location.

Note: C: represents the drive letter of the system drive.

Integrating with or migrating from other FileMaker databases

Importing legacy container data into SuperContainer

If you are migrating an existing FileMaker solution to use SuperContainer, you need a way to move your existing container fields over to SuperContainer. You can accomplish this by using the SuperContainer Companion Plugin. Simple write a script that loops through your records and call
SCSetContainer("Asset/" & Asset::ID ; Asset::OldContainerField) 
for each record you wish to move over. See the Companion Plugin documentation for more details, or watch a video demonstrating how to do this at http://www.360works.com/supercontainer/demos/set_container/

Importing SuperContainer resources from the file system

If you have a directory full of files you wish to add to SuperContainer, you can either copy them to the directory where SuperContainer stores its files, or use the companion plugin function SCScanDirectory to return a list of files in a directory. You can optionally set a flag to scan for files recursively. See the Companion Plugin documentation for more details.


Web publishing

Using IFRAME with PHP / XSLT

To include SuperContainer in your Custom Web Publishing site, just use a FRAME or an IFRAME with the same URL that you would use for your FileMaker Web Viewer.

Security

Security concepts in SuperContainer

There are several options available to protect the contents of SuperContainer. Here are some possibilities:

  • Use the built-in username and password feature in SuperContainer: This will require users to enter a username and password before they can access the contents of SuperContainer. The advantage of this approach is that it is very easy to configure. The disadvantage is that if a user can access one item, they can also access any other item that they know the URL for. Another disadvantage is that all users share the same username and password.
  • Use the username and password feature in Tomcat: Configuring this is beyond the scope of this document (see http://tomcat.apache.org for more information), but it basically works the same as the first option, with the addition of being able to configure separate usernames and passwords for each user.
  • Random URLs: This is probably the best approach to security, although it requires a little bit more programming work. Remember that nobody can access any document in SuperContainer unless they know the URL. By having each record include some random, hard-to-guess value, you can include that into the URL. Now each record can only be accessed if you, the FileMaker developer, choose to reveal the correct URL to them. As an example, change these URLs:
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/39
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/40

To these:

http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/rjx11mp/39
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/82crlqq/40

Now, malicious users cannot access unauthorized resources by simply incrementing the record ID.

Remember that you can combine these approaches as well - for example, using the built-in SuperContainer password with the random URL technique. Also see below for tips on SSL encryption.

Embedding username and password in SuperContainer URL

If you've specified a username and password that are required to access SuperContainer, you can include them in your Web Viewer URL like this:

http://username:password@yourServer:8080/SuperContainer/Files

Note that this behavior may not work in new versions of Microsoft Internet Explorer. See [LN;834489 this article] for more information. If you are having trouble with IE, you can:

  • Enter the username and password (users should only need to do this once per session)
  • Tweak the registry as per the article mentioned above
  • Switch to a different browser

Security issue with loading plugin in IWP

The demo file that comes with SuperContainer disables many of the plugin functions when they are being accessed through Instant Web Publishing. For an explanation, read the Security issues with Web Publishing article.

Personal tools
Namespaces

Variants
Actions
Plug-in Products
Other Products
Navigation
Toolbox