----------------------------------------------------------------------

ELOQUENCE B.08.10 - patch PE81-1105090

----------------------------------------------------------------------

This patch adds enhancements or fixes defects of the Eloquence WEBDLG
components as released with Eloquence B.08.10. This patch will be
integrated in the Eloquence B.08.10 release.

Eloquence B.08.10 must be installed before applying this patch.

Severity:
 PE81-1105090: BUG FIX

Superseded patches:
 PE81-1104010: ENHANCEMENT, BUG FIX


Patch PE81-1105090
------------------

Platforms: All

* Fixed Ajax incompatibility with Microsoft Internet Explorer (MSIE)
  version 6 or older (#4040).

  Ajax in WEBDLG now works with MSIE version 5.5 or newer. For MSIE
  versions older than 5.5 Ajax is implicitly disabled.

* DLG GET "System.version" returns "B.08.10.02".


Patch PE81-1104010
------------------

Platforms: All

* WEBDLG Dialogs are now dynamically updated, whenever possible,
  using Ajax ("Web 2.0") browser functionality.

  As long as a DLG DO invocation refers to the same Dialog that is
  currently displayed, and this Dialog is not structurally modified,
  the HTML page is not reloaded but dynamically updated.

  This may significantly improve performance if a Dialog frequently
  returns to the program.

  The attributes below are considered to not modify the Dialog
  structure.

  Common attributes:
  - rule, focus, udata

  CheckBox and RadioButton attribute:
  - active

  EditText attributes:
  - content, cx, cy, topitem, clear, add, line, home, end, bol, eol,
    up, down, left, right, npage, ppage, ins, delch, delln, deleol,
    deleot, file, insertfile, writefile

  ListBox and PopText attributes:
  - content, cx, cy, topitem, activeline, clear, add, line, home,
    end, bol, eol, up, down, left, right, npage, ppage, ins, delln,
    deleot, file, writefile

  Image attribute:
  - url

  If a program invokes DLG SET to modify any other attributes than
  listed above, or if a program invokes DLG NEW or DLG DEL, WEBDLG
  assumes that the current Dialog is structurally modified and
  therefore causes the HTML page to be reloaded.

  Whether or not this feature is used is automatically determined,
  depending on the browser capabilities.

  The new [HTML] EnableAjax eloqwebd configuration parameter may be
  used to globally disable this feature if desired:

  [HTML] EnableAjax

    Nonzero (default): The Ajax functionality is enabled if
    supported by the browser.

    Zero: The Ajax functionality is disabled, i.e., the HTML
    page is reloaded whenever a Dialog returns to the program,
    as in previous WEBDLG versions.


* Changed the default value of the [HTML] RuleOnChange eloqwebd
  configuration parameter to zero.

  The reason for this change is the improved Dialog performance
  caused by the new Ajax functionality, which makes the previous
  nonzero RuleOnChange default value no longer necessary.


* WEBDLG now enforces the Dialog tab order. In addition, the RETURN
  and ENTER keys are now by default enabled for tab navigation.

  The new [HTML] FocusTabMode eloqwebd configuration parameter
  allows to configure this new functionality:

  [HTML] FocusTabMode

    2 (default): The Dialog tab order is enforced, the TAB and
    RETURN and ENTER keys are enabled for tab navigation.

    1: The Dialog tab order is enforced, only the TAB key is
    enabled for tab navigation.

    0: The browser handles the tab navigation, as in previous
    WEBDLG versions. The tabindex HTML attribute is used to
    propose the desired tab order to the browser.

  The new common tabstop attribute may be used to exclude an object
  from the Dialog tab order:

  tabstop : integer, get/set

    Nonzero (default): The object is part of the Dialog tab order.
    Zero: The object is not part of the Dialog tab order.

  The new common tabonenter attribute may be used to specify for
  an object whether or not the RETURN and ENTER keys are enabled
  for tab navigation:

  tabonenter : integer, get/set

    Nonzero: The TAB and RETURN and ENTER keys are enabled for
    tab navigation.

    Zero: Only the TAB key is enabled for tab navigation.

    The default value is nonzero for EditText and ListBox objects
    and zero for all other objects.

    Notes:

    - If set to nonzero for a Button object, the RETURN and
      ENTER keys can no longer be used to trigger the button.

    - For multi-line EditText object, the RETURN and ENTER keys
      always add a newline character, i.e., they are never enabled
      for tab navigation, regardless of the tabonenter attribute.


* Enhanced the support for CSS style definitions.

  - The GroupBox style may now be specified using the eq_groupbox
    CSS class, for example:

    .eq_groupbox {
      background-color: #00c0c0;
      ...
    }

  - For EditText objects, the eq_edittext, eq_edittext_ml and
    eq_edittext_ro CSS classes are now combined, depending on
    the EditText attributes:

    eq_edittext    - defines the CSS style for every EditText object

    eq_edittext_ml - is applied in addition to the eq_edittext class
                     if the multiline attribute is set to nonzero

    eq_edittext_ro - is applied in addition to the eq_edittext class
                     if the editable attribute is set to zero

    For example:

    .eq_edittext {
      font-family: Courier;
      ...
    }
    .eq_edittext_ml {
      color: #000077;
      ...
    }
    .eq_edittext_ro {
      background-color: #ffffe0;
      ...
    }

    In the example above, a multi-line non-editable EditText object
    would be displayed using a Courier font, a #ffffe0 background
    color and a #000077 foreground color.

  - The new common cssid and cssclass attributes allow to override
    the default CSS class for an object.

    cssid : string, get/set

      Specifies a CSS identifier for an object. In contrast to a
      CSS class, a CSS identifier should be unique, i.e., should
      be used by only one object in a Dialog.

      For example, if cssid = "Title" would be set for an object,
      the CSS definition below would be applied:

      #Title {
        background-color: #c000c0;
        ...
      }

    cssclass : string, get/set

      Specifies a CSS class for an object. A CSS class may be used
      for multiple objects in a Dialog.

      For example, if cssclass = "My_GroupBox" would be set for the
      GroupBox objects in a Dialog, the CSS definition below would
      be applied:

      .My_GroupBox {
        border-style: ridge;
        border-width: 1px;
        border-color: #880000;
        ...
      }

    Note: If the cssid and/or cssclass attributes are set, the
    default CSS class for the specific object is no longer applied.
    In addition, if the specific object is a Dialog, GroupBox or
    Image and the object does not explicitly set any of the border
    attributes, the border properties are honored as specified
    in the CSS definition.


* Apache version 2.2 only: Added support for HTTP Basic Authentication
  against the eloqsd server.

  If configured, the browser opens a Login Dialog to query the user
  name and password, which are then authenticated against the eloqsd
  server, where the user must be configured in the eloqd.user file.

  In a second step, the same user name and password are then used
  to start the configured program.

  Configuration example (Apache httpd.conf configuration file):

  <IfModule mod_eloq.c>
    <Location /eloq/prog1>
      SetHandler eq-web-dlg
      EloqCommand "PROG1,WWW"
      ...
      AuthType Basic
      AuthBasicProvider eloqsd
      AuthName "PROG1"
      EloqSDHostname "192.168.33.44"
    </Location>

    <Location /eloq/prog2>
      SetHandler eq-web-dlg
      EloqCommand "PROG2,WWW"
      ...
      AuthType Basic
      AuthBasicProvider eloqsd
      AuthName "PROG2"
      EloqSDHostname "192.168.33.44"
    </Location>

    ...

  </IfModule>

  In the example above, the browser opens a Login Dialog when the
  PROG1 program is started, and again when the PROG2 program is
  started. This is because two different "realms" are configured
  using the AuthName parameters: "PROG1" and "PROG2". The browser
  stores separate user name and password information for each realm.

  Once a login was successful, the browser caches the user name
  and password information for the realm and no longer opens a
  Login Dialog (depending on the browser implementation, possibly
  subject to the browser configuration).

  Notes:

  - The mod_eloq EloqSDHostname configuration parameter must be
    specified if the eloqsd server is located on a remote system,
    as shown in the example above. It may however be omitted if
    the eloqsd server is located on the local system.

  - The mod_eloq EloqSDUser and EloqSDPassword and the eloqwebd
    [EloqSD] User and Password configuration parameters must not
    be configured, otherwise the user name and password specified
    in the Login Dialog are not used to start the program.

  - The user name and password specified in the Login Dialog may
    be resolved in the mod_eloq EloqCommand and EloqEnvironment
    configuration parameters using the $authlogin and $authpassword
    tokens (see below).

  - A program may query the user name and password specified in
    the Login Dialog using the System.authlogin and .authpassword
    attributes (see below).

  - The browser sends the user name and password information in
    clear text, therefore this should only be used in a trusted
    environment, unless the Apache web server is configured to
    use the secure HTTPS protocol.

  - This functionality depends on the Apache 2.2 authentication
    provider support and therefore does not work with Apache
    versions before 2.2.


* Added support for token and environment variable resolving in
  the mod_eloq EloqCommand and EloqEnvironment configuration
  parameters.

  The EloqCommand and EloqEnvironment values may use the tokens
  listed below which are resolved when the program is started:

  $remoteaddr     - This token is replaced with the IP address
                    of the system where the browser runs.

  $remotename     - This token is replaced with the host name of
                    the system where the browser runs (equivalent
                    to $remoteaddr if the host name is unknown, e.g.
                    if the Apache web server is not configured to
                    perform DNS reverse lookups).

  $remoteport     - This token is replaced with the port number
                    the browser uses for this request.

  $authlogin      - This token is replaced with the user name if
                    HTTP Basic Authentication is used.

  $authpassword   - This token is replaced with the password if
                    HTTP Basic Authentication is used.

  $(VARIABLENAME) - This token is replaced with the value of the
                    VARIABLENAME environment variable.


* Added the PopText object class. The PopText class implements a
  selectable list which displays one single line. It provides the
  same attributes as the ListBox class.


* Added the borderstyle attribute for Dialog, GroupBox and Image
  objects:

  borderstyle : string, get/set

    Specifies the border style. Possible values are:

    "none"   - no border
    "solid"  - solid border
    "dotted" - dotted border
    "dashed" - dashed border
    "double" - double borders
    "groove" - 3D grooved border
    "ridge"  - 3D ridged border
    "inset"  - 3D inset border
    "outset" - 3D outset border

    By default, a solid border is displayed if the border thickness
    (defined by the border attribute) is 1, or a 3D grooved border
    is displayed if the border thickness is greater than 1.

    Note: If an object-specific CSS id or class is defined and the
    object does not explicitly set any of the border attributes, the
    border properties are honored as specified in the CSS definition.
    For details, please refer to the cssid and cssclass documentation
    above.


* Added the ListBox ruleoverride and singleclick attributes:

  ruleoverride : integer, get/set

    If nonzero, the rule of a previously focused EditText object
    is overridden (the ListBox rule value combined with the
    EditText path is returned).

    The default ruleoverride value is zero.

  singleclick : integer, get/set

    Specifies which action should activate a rule submission:

    3 (default) - rule submission on mouse button single click,
                  SPACE key (if supported by the browser)
                  or UP/DOWN cursor keys

    2           - rule submission on mouse button double click,
                  SPACE key (if supported by the browser)
                  or UP/DOWN cursor keys

    1           - rule submission on mouse button single click
                  or SPACE key (if supported by the browser)

    0           - rule submission on mouse button double click
                  or SPACE key (if supported by the browser)


* Added the System authlogin and authpassword attributes.

  authlogin : string, get

    Returns the user name if HTTP Basic Authentication is used.

  authpassword : string, get

    Returns the password if HTTP Basic Authentication is used.


* By default, the generated JavaScript functions are now provided
  in a separate session-specific document, i.e., the JavaScript
  functions are no longer part of the HTML document containing
  the Dialog.

  This may improve performance if the browser keeps the compiled
  functions in memory, depending on the browser capabilities.

  The new [HTML] JsInline eloqwebd configuration parameter may be
  used to globally disable this feature if desired:

  [HTML] JsInline

    Zero (default): The JavaScript functions are provided in a
    separate session-specific document.

    Nonzero: The JavaScript functions are part of the HTML document
    containing the Dialog, as in previous WEBDLG versions.


* Fixed the POPUP BOX default button behavior. The default button
  is now correctly focused when the POPUP BOX is initially displayed.


* DLG GET "System.version" returns "B.08.10.01".



Installation:
-------------

Please download the patch archive that corresponds with the installed
release. The patch files follow the conventions below:

   PE81-1105090-hpux-ia64.tar.gz
        ^       ^    ^
        |       |    Architecture / OS specific build
        |       Operating system
        Patch ID


HP-UX:

In order to install this patch, you need to unpack it with gzip and tar.
Gzip is included with HP-UX. Installation requires root privileges.

Before installation, please consider stopping the Apache web server.

cd /opt/eloquence/8.1
gzip -dc /path/to/PE81-1105090-hpux.tar.gz | tar xf -

Files:

   bin/eloqwebd
   lib/hpux32/mod_eloq22.so      (Apache 2.2 32-bit, Itanium)
   lib/hpux32/mod_eloq2.so       (Apache 2.0 32-bit, Itanium)
   lib/hpux64/mod_eloq22.so      (Apache 2.2 64-bit, Itanium)
   lib/hpux64/mod_eloq2.so       (Apache 2.0 64-bit, Itanium)
   lib/pa11_32/mod_eloq22.so     (Apache 2.2 32-bit, PA-RISC 1.1)
   lib/pa11_32/mod_eloq2.so      (Apache 2.0 32-bit, PA-RISC 1.1)
   lib/pa20_32/mod_eloq22.so     (Apache 2.2 32-bit, PA-RISC 2.0)
   lib/pa20_32/mod_eloq2.so      (Apache 2.0 32-bit, PA-RISC 2.0)
   lib/pa20_64/mod_eloq22.so     (Apache 2.2 64-bit, PA-RISC 2.0)
   lib/pa20_64/mod_eloq2.so      (Apache 2.0 64-bit, PA-RISC 2.0)
   newconfig/config/eloqwebd.cfg
   share/doc/PE81-1105090-README


Linux:

In order to install this patch, you need to unpack it with tar.
Installation requires root privileges.

Before installation, please consider stopping the Apache web server.

cd /opt/eloquence/8.1
tar xzf /path/to/PE81-1105090-linux.tar.gz

Files:

   bin/eloqwebd
   lib/mod_eloq22.so             (Apache 2.2 32-bit, Itanium: 64-bit)
   lib/mod_eloq2.so              (Apache 2.0 32-bit, Itanium: 64-bit)
   lib64/mod_eloq22.so           (Apache 2.2 64-bit)
   lib64/mod_eloq2.so            (Apache 2.0 64-bit)
   newconfig/config/eloqwebd.cfg
   share/doc/PE81-1105090-README


Windows:

Two options are available for patch installation. The patch is
available as self extracting archive for automatic installation
and as a zip archive for manual installation. Both patches are
equivalent. Installation requires administrative capabilities.

For automatic installation of this patch, please download the patch
file PE81-1105090-win32.exe. Before installation, please consider
stopping the Apache web server, then execute the patch installation
program. Installation does not require a reboot unless the patched
files were active.

For a manual installation of the patch, please download the patch
file PE81-1105090-win32.zip and unpack its contents. Then perform
the following steps:

* Please make sure the Apache web server is stopped before installing
  the patch.

* Please copy the eloqwebd.exe file into the Eloquence bin directory.
  (Default location: C:\Program Files\Eloquence\8.1\bin)

* Please copy the mod_eloq22.so and mod_eloq2.so files into the
  Eloquence lib directory.
  (Default location: C:\Program Files\Eloquence\8.1\lib)

* Please copy the eloqwebd.cfg.sam file into the Eloquence etc
  directory.
  (Default location: C:\Program Files\Eloquence\8.1\etc)

* Please copy the PE81-1105090-README.txt file into the Eloquence
  share\doc directory.
  (Default location: C:\Program Files\Eloquence\8.1\share\doc)

Files:

   eloqwebd.exe
   mod_eloq22.so                 (Apache 2.2)
   mod_eloq2.so                  (Apache 2.0)
   eloqwebd.cfg.sam
   PE81-1105090-README.txt