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.

Application Launch UI Control CGI Parameters

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=.

 

 

Purpose-Driven UI Control CGI Parameters

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.