ModesConcept

Summary: A place to remember thoughts/ideas related to using different modes
Version:
Prerequisites:
Status:
Maintainer:
Categories: Administration, Layout
Discussion: ModesConcept-Talk?

ViewModes basic tools to help implement concept.

And an alternative view proposal

Concept

Bronwyn managed to phrase my thoughts on mode very succinctly:

The mode expresses the user's current emphasis. The interface should change accordingly, so that it is easier to find and use controls relevant to the current emphasis, while irrelevant controls are de-emphasized or even hidden.

Note that modes are not the same as authentication levels:

Authentication is for checking whether you are PERMITTED to perform certain actions. Modes are for declaring that you're currently FOCUSED on performing certain actions.

Bronwyn about Modes

Think of it this way: modes are sets of tools.

  • To write a letter, you need pen and paper. Most of us would also want whiteout and a dictionary.
  • To balance your checkbook, you still need a pen and paper, but now you'd probably like to have a calculator, receipts, and bank statement, too. You no longer need the dictionary.
  • To dispose of the big mess in your inbox, you still need pen and paper, but now also a filing cabinet with file folders, post-it notes, stapler, your calendar, and the paper recycling bin.

Which would you rather work on: a desk cluttered with all the tools you could possibly need for any given task, or a desk that was clean and empty except for the tools relevant to the task at hand? The missing tools have not been stolen -- they've just been put away in the desk drawer. They are available whenever you want them.

Now imagine that there are fairies whose job is to reorganize your desk for you at your command. Who could, in an instant, tidy away your financial apparatus and bring out your letter-writing things. Wouldn't that be wonderful? I would certainly want desk fairies of my very own.

Right now, only skin designers can rearrange the PmWiki desk. People tolerate this because there is (so far) no alternative. Modes are desk fairies for PmWiki: they clear the wiki's desk except for the tools you need, and switch toolsets at your command.

Other names

Radu pointed out that "modes" has a lot of existing meanings and baggage, none of which are appropriate. Here are some alternative terms:

  • Views (+1 from Bronwyn, Hans)
  • Layouts
  • Roles
  • Contexts (+1 from Pm and Bronwyn)
  • Perspectives - this is how Eclipse calls them. -- zi

Built-in modes

These are the modes that should be built into PmWiki. They are based on the most common roles people play when using a wiki, but their final names haven't been decided yet.

Visitor / Reader / Standard

Mostly reads pages, searches for information but occasionally also edits a page.

Commonly used functions:

  • Navigation
  • Search
  • Big attractive "Edit Page" control.
    • Edit page should make clear how to attach files if uploads are turned on.
  • Comments (if the site has enabled them)
  • RecentChanges, AllRecentChanges, and XML feeds should be available but not jumping up and down for attention

Stealth / Simple

Like visitor mode, but with no editing:

  • Focussed on reading
  • No edit controls or mode controls
  • Navigation
  • Search (if visitors should not be searching the entire site, just limit the search)
  • Discreet "login" link
  • Once logged in, switch to the most appropriate view
  • Admin may wish to allow access to commenting features
  • RecentChanges, AllRecentChanges, and XML feeds should be available but not jumping up and down for attention

Perfect for sites that use PmWiki as a CMS, and wish to look like an ordinary website. Such sites usually are not publicly editable anyway.

Author / Editor / Contributor

Spends a lot of time adding content. Still reads pages and searches for pages as part of this process.

  • Navigation
  • Search
  • One or more easy to find "Edit" controls
    • Edit for this page but perhaps also for the sidebar or other pages. The other page could for instance be special page lists or trail indexes.
    • Possibly always an edit form at the bottom of a page
  • Links to appropriate documentation
  • History control
  • Uploading files
  • Comments (if the site has enabled them)
  • RecentChanges, AllRecentChanges, and XML feeds should be more prominent than in Visitor and Stealth modes

Administrator / Admin

Primary activities are editing and administrative tasks such as updating navigation or user interface pages, copying or moving pages.

  • RecentChanges, AllRecentChanges, and XML feeds should be more prominent than in Visitor and Stealth modes.
  • Easy access to:
    • All documentation
    • Site maintenance pages like Site.Sidebar.
  • Needs plenty of navigation pages that collect documentation and action links most useful for certain tasks or topics. Some possible topics:
    • Site maintenance
    • Wiki customization
    • Skin development
    • Recipe development

Pages specific to or most useful in admin mode should perhaps live in their own group (maybe called PmWikiAdmin or AdminTheWiki?) if they do not belong elsewhere. Content for admins, such as a trail of admin-related pages, could be added to the sidebar through an (:include:), an (:if mode:), or some combination of those.

  • The sidebar indicates attributes of the current page
    • What passwords are set

It might be better to have a second sidebar which acts as an admin console for the page, instead of cluttering up the main sidebar. How about something like this:

 
!Recent Changes
%right%[[{$Name}?action=diff | Page History]]
* Last modified on {$LastModified} by {$LastModifiedBy} with IP {$LastModifiedHost}
* change summary and/or diff (if no change summary)
!Metadata
%right%[[{$Name}?action=edit | Edit]]
* title
* keywords
* categories
* what links here (backlinks)
* whatever other metadata the admin wants
!Page attributes
%right%[[{$Name}?action=attr | Edit]]
* page attributes such as password types and sources (heading has an ?action=attr link)
!Attached files   
%right%[[{$Name}?action=upload | Upload]]
%right%[[{$Name}?action=edit | Change links]]
* list of files attached to this page, with option to re-upload if wiki allows it

Nifty idea for the backlinks and attachlist items: be a list if less than X items (X=10 or so by default), but be a link with a count if more than X, e.g. "Backlinks (52)". As a list, should be possible to have either a bulleted vertical list, or a comma separated horizontal list.

See Also

ViewModes for an experimental first implementation of needed variables

Contributors

Comments

See discussion at ModesConcept-Talk?