[Zope-PTK] PTK interface thoughts

Amos Latteier Amos@digicool.com
Tue, 18 Jan 2000 16:30:00 -0500


Hi Guys,

Jens, Paul and I have done a little more thinking about the PTK UI. Here
is a summary of our ideas.

You can see a visual representation of these ideas at:

  http://www.zope.org/Products/PTK/mockups/toolbox.html

Let us know what you think!

-Amos

--

Portal User Interface

  Vision

    The PTK UI should be simple and clear. It should not overwhelm
    the user. It should be available to the user at all times.

    In general a user will navigate the portal with the portal's
    standard navigation controls. When they get to a page that they
    want to change, they will use the PTK UI to perform their
    management operations. Site browsing and managing will not be
    distinct actions.

  Components

    The PTK UI consists of several visual components which occupy
    the HTML page.

    Toolbox

      The toolbox is the users entry into PTK functions. It is
      always available. It gives the user a context-sensitive list
      of available actions. For example when viewing a page for
      which a user has edit permissions, the toolbox would display a
      'Manage page' link.

      The toolbox should reassure the user by being as consistent
      and clear as possible.

      The toolbox consists of a number of 'Actions' which are HTML
      links to perform management tasks. 'Actions' are grouped into
      'Categories'. 'Categories' are usually identified by icons or
      names and group actions into functional groups. For the first
      revision of the PTK there will only be three categories which
      represent 1. user related actions (e.g. login/logout, prefs),
      2. current-object related actions (e.g. manage page), 3.
      global or misc actions (e.g. undo, recent documents)

      The toolbox communicates with Zope via a simple API. It is
      expected that multiple toolbox implementations will be
      available and some will make heavy use of Javascript and other
      fancy stuff.

      The proposed API is this:

        toolbox_actions() -> a tuple of dicts

        Each dict represents an action and includes these keys:

          name -- <string> the action's  name or label
          url -- <string> the action's URL, either absolute or
          relative
          permission -- <string> the action's permission
          category -- <string> the action's category

        Note for the first revision, the category will be restricted
        to one of the strings 'user', 'object' or 'global'.

        The toolbox will call the 'toolbox_actions' method on the
        current object, the siteobject, and the user object. It will
        filter the actions based on the user's roles in the context
        of the current object and will present the available
        actions.

    Desktop

      The desktop is the main area of the page. The body of the page
      located on the desktop. When performing management functions
      forms are presented on the desktop.

    Status Bar

      The status bar is a small area of the page above the desktop
      which presents messages to the user in response to management
      functions.

      For example, after managing a page, the status bar should say
      something like, "Page successfully edited."

   Everything else

     Everything that is not toolbox, desktop or status bar includes
     portal-specific headers, footers, and side bars. These areas of
     the page brand the portal and provide navigation links.