What Is Web Man?
Web Man gives you control over the large-scale aspects of your web site. You can install site-wide navigation bars, apply a template to all its pages, check the whole site for broken links, and other site-wide operations. Web Man is an open source partial work-alike for Microsoft Front Page (TM) .
How Web Man Works
This is the technical stuff.
What happens when Web Man launches
Web Man is a website. The home page is the main editor page. When a browser opens it, the JavaScript onload handler calls a server-side CGI script that returns the Web Man environment by AJAX: where the web server keeps all its web sites, which of them Web Man can manage, which ones it has most recently managed, etc. Using the list of most recently managed webs, the JavaScript onload handler calls another CGI script to get the configuration file of the most recently opened one. That will be the currently managed web.
As these configuration pieces come from the server, JavaScript creates form inputs to hold them. Next, the onload handler calls two other CGI scripts, one to return a directory tree of the current web, and one to return the site map. JavaScript then renders that directory and site map information in the browser. Now the last-managed web is the current web, open again for editing.
On a fresh installation, Web Man loads a sample Web Man managed site named "wmsite".
What happens when one of its other pages loads
When a user clicks on a link to one of Web Man's other configuration or editing pages, much the same thing happens. An onload handler will AJAX call one or more CGI scripts to get Web Man's environment and the configuration of the currently managed web. There might be JavaScript rendering code to present a view of what the CGI scripts reported from the server. Think of the web's configuration file as a user editable cookie kept on the server.
The views
The main editor page presents two views of the entire web being managed: its files and folders on the server file system, and the web's site man. These are respectively called the "folder view" and the "navigation view".
The folder view shows all the files in the web: html pages, images, scripts, stylesheets, whatever.
The navigation view shows the site map. The site map shows the hierarchical organization of the web site: which is the home page, which are immediately under it in the organization, which are children or siblings of which others. From the site map, Web Man can generate navigation bars and install them on pages of the web being managed. Available navigation bars are:
- A direct link to the Home page.
- Links to all the pages at the same level of the Home page, not in its tree. Such pages might include a search or help pages. These are called "global" pages in the source code and documentation.
- Links to all the pages immediately under the Home page, or "children" of the Home page. Such pages typically introduce one of the major content divisions of the web site being managed.
- A link to the parent page of the page getting navigation bars.
- Links to siblings of that parent page. These are "Uncles".
- Links to other children of that parent page, or siblings of the current page. These are pages most like the current page.
- Children of the current page: pages that give more detail about the content of the current page.
- Bread crumb links: links to all the ancestors of the current page, ending with the Home page.
- A banner containing the title of a page. Other navigation bars can be clustered around a banner.
There is a page which shows all the webs in Web Man's work space. This is the "webs view". With icons, it shows which webs are managed by Web Man, which were managed by MicroSoft Front Page (TM), and the ones for which Web Man does not know the generator.
There is a page for repairing broken links, that shows the folder view and a view of the broken links. That is the "bad links view". It will also show which pages contain those bad links.
How user keyboard and mouse gestures are handled
The user interacts with a Web Man page with keyboard strokes and mouse gestures on certain elements of that page. These are form inputs, buttons or selectors. A user might click or double click one, or drag one and drop it somewhere else. These elements have JavaScript event handlers installed, which call JavaScript functions related to the editing or configuration action associated with the input, button or selector. Most of the time, these JavaScript functions will call CGI scripts which do something, then send reports or results back to the page on which the event occurred.
For example, suppose a user is repairing a broken link. He or she will begin to drag the broken link from the bad links view to the folder view on the link repair page. The mouse down handler will notice that nothing was being dragged, so it makes a representation of the bad link being dragged. It makes a note of where the dragging began, that is, the bad link in the bad links view. The original links stays there; it is only a copy of the link that is being dragged. As the mouse moves, the mouse move handler will draw the dragged link in a new position, floating over the views. It will note if it's over a different view. That will probably happen; the user wants to drag the bad link over one of the files in the folder view and drop it there. When that happens, the mouseup handler will find out which file the link was dropped on, call a CGI script to do the link repair on the server, remove the dragged link representation, then make a note that nothing is being dragged any more.
Keyboard gestures work as in many other user interfaces: