|
|
|
|
5.0 UI Control |
|
|
Authors: Tom Snyder & Zvi Schreiber (G.ho.st). Created: 1/5/08. Updated: 2/25/08 |
|
OpenSAM facilitates crafting a unified User Interface experience throughout an application mashup. Beyond just improved cosmetics, these mechanisms handle must-have settings such as language and disabling UI controls a user does not need or have access to.
UI Control is used both to transmit user preferences for their UI and to transmit per-launch UI modifications to make an application easier to use in the exact circumstances of a particular launch. For this reason, the OpenSAM UI Control mechanisms are transmitted via CGI parameters.
|
Table 5.0.1 UI Appearance CGI Parameters |
|
|
CGI PARAMETER |
EXPLANATION |
|
StorageUILanguage |
The user's language specified as an http://www.rfc-editor.org/rfc/rfc4646.txt tag. StorageUILanguage=en |
|
StorageUIFontFamily |
The preferred font family to use within the UI, in a CSS font-family specification string. StorageUIFontFamily=Helvetica,%20Sans |
|
StorageUIFontSize |
The preferred size of text to use in the UI, in a CSS font-size specification string. This single size specifies the preferred size for 'normal' text within the UI. The default is 10pt. Therefore, if an application is given a StorageUIFontSize=12pt specification, it may attempt to scale all the font sizes in it's UI by about 20%. StorageUIFontSize=11pt |
|
StorageUIColor |
The preferred foreground color to use in the UI. The forground color most often applies to text, as it does in CSS style="color:red". StorageUIColor=%23000020 (%23 is # urlencoded) |
|
StorageUIBackgroundColor |
The preferred background color to use in the UI. StorageUIBackgroundColor=%23E0E0FF (%23 is # urlencoded) |
|
StorageUIBackgroundImage |
The preferred background image to use in the UI. This image is tiled to create large areas in the UI such as tabular data backgrounds. Such images are usually gentle gradients or abstracts. Such images can be used to communicate information about the operation being performed, such as using red with "TOP SECRET" stamped on it when accessing sensitive data. StorageUIBackgroundImage=http%3A%2F%2Fsome.com%2Fgreylines.jpg |
|
StorageUITimeZone |
The user's time zone relative to GMT: Z or +hhmm or -hhmm StorageUITimeZone=+0700 |
|
StorageUIDateFormat |
How dates should be formatted. Specified as a POSIX:strftime() format string. StorageUIDateFormat=%25d%2F%25m%2F%25Y (%25 is a % and %2F is a /) |
|
StorageUICurrencySymbol |
The string to prepend to currency values. String is in HTML UTF-8 format and can include character entities such as € StorageUICurrencySymbol=%26pound%3B (%26 is a # and %3B is a ;) |
|
StorageUIThousandthsSpearator |
The string to separate thousandths values in a numerical quantity. Usually , or . StorageUIThousandthsSeparator=, |
|
StorageUIDecimalSpearator |
The string to separate decimal values in a numerical quantity. Usually , or . StorageUIDecimalSeparator=. |
Desktop applications are powerful, general purpose tools. This makes it difficult for users to perform efficiently in narrower, purpose-driven scenarios. Imagine an insurance broker who often needs to open a 20 page document and enter 3 customer-specific lines of text. This takes a lot of clicking and navigating in the editor. With OpenSAM mashups, we create a link that will automate much of that application interaction. See also the file management facilities in 5.1 File Contexts.
One part of creating a purpose-driven workflow mashup is hiding or disabling the unneeded elements of the launched application's UI and showing optional, purpose-specific elements of the UI. This simplifies the UI and focuses it towards the exact goal a user wishes to accomplish. For example, if the launching application wishes to direct the user to edit only a certain file in the launched application, then the File New, File Open, and other UI elements would be hidden and a larger Save-and-Close button could be presented.
Be aware that these UI element control mechanisms are not intended to impose or enforce any access control rules upon a user. They serve only to make the UI more focused and easier to use.
All access control limits must be implemented in the Home Application's WebDAV server code. This is due to the fact that a hostile user could capture their SessionID and code a script to make requests to the WebDAV server for any resource, even those they do not have access to. This server enforcement requirement is true of virtually any client/server architecture.
|
Table 5.0.2 UI Elements CGI Parameters |
|
|
CGI PARAMETER |
EXPLANATION |
|
StorageUIHideElements |
A comma seperated list of UI elements to hide. StorageUIHideElements=mbnew,mbemail,mbhelp |
|
StorageUIDisableElements |
A comma seperated list of UI elements to disable. StorageUIDisableElements=mbsavedialog,dcsaveselectfolder, mbshare,mbprint |
|
StorageUIShowElements |
A comma seperated list of UI elements to show. Some elements might not be shown by default. StorageUIShowElements=mbsaveandclose |
Although which elements an application contains is very application dependent, we define this common set of elements as a starting point. An application may not have the exact menu or button described by a keyword but probably has an analogous link or other control element within its UI. Keywords should apply to all UI controls that have the specified or similar functionality. This means a single keyword may apply to several UI controls within an application.
|
Table 5.0.3 UI Element Keywords These keywords are listed in the values of the Table 5.0.2 CGI Parameters. The keyword prefixes are: mb -- menu or button dc -- dialog control. |
|||
|
Keyword |
|
Keyword |
|
|
mbsettings |
The Account Settings... button or menu command. Lauching applications often want to prevent a user from modifying their account settings within a launched application. Those settings may have been standardized or carefully set up by an integrator. |
||
|
mbnew |
The File New button and/or menu command. This UI element opens a new document for editing. |
mbnewdialog |
The File New... button and/or menu command. This UI element brings up the File New dialog box. |
|
mbopen |
The File Open... button and/or menu command. |
||
|
mbsave |
The File Save button and/or menu command |
mbsavedialog |
The Save As... button and/or menu command. |
|
mbsaveandclose |
A File Save-and-Close button and/or menu command. |
|
|
|
dcsaveselectfolder |
The folder browse portion of the Save As dialog box. If disabled, the application uses the newSaveAsFolder as the destination folder for all new document saves. |
dcsavesetname |
The file name edit field in the Save As dialog box. If disabled, the application uses the newSaveAsFilename CGI parameter. |
|
dcsavesettype |
The document type selector in the Save dialog box. If disabled, the application uses their default document type or the newSaveAsType CGI parameter's value. |
||
|
mbsaveandclose |
A special "Save & Close" button used to quickly dismiss a application and continue working in the launching application. |
||
|
mbpublish |
The Publish button and/or menu command. A launching application can disable this element to maintain more control over document distribution. |
mbpublishdialog |
The Publish... button and/or menu command that offers the user a dialog box and publish options. |
|
mbemail |
The Email button and/or menu command. A launching application can disable this element to maintain more control over document distribution. |
||
|
mbshare |
The Share button and/or menu command. Disabling this element will prevent users from sharing documents with others using a launched application's sharing features. |
||
|
mbrevisions |
The Revisions button and/or menu command. Disabling this element will prevent the user from reviewing or reverting to prior versions of a document. |
||
|
mblayout |
The Page Layout button and/or menu command or similar. |
||
|
mbprint |
The Print button and/or menu command. This disables only application-controlled printing. Users can still print using their browser's print features. |
||
|
mbinsertcomment |
The Insert Comment button and/or menu command. |
||
|
mbinsertlink |
The Link button and/or menu command. Disabling this element will prevent users from creating hyperlinks in their documents. |
||
|
mbinsertpicture |
The Insert Picture button and/or menu command. Disabling this prevents the user from browsing or inserting photos into their document. |
||
|
mbinsertsound |
The Insert Sound button and/or menu command. |
||
|
mbinsertvideo |
The Insert Video button and/or menu command. Disabling this prevents the user from browsing or inserting videos into their document. Videos may mean YOUTUBE videos, flash animations,etc. |
||
|
mbhelp |
The Help button or menu command. In finely crafted mashups, launching applications may not want users to be confused by the general purpose help materials available at a launched application's site. |
||