Chapter 10. The server-manager web interface

Table of Contents
The web directory
Web function scripts
Common files
Panel definitions

The user interfaces to the SME Server (the web based server-manager and the text mode console interface) perform their work by modifying the master system configuration database to describe the new system configuration, then regenerating the various application configuration files by signalling an event.

This decoupling of the user interfaces from the system configuration allows packages to be added and removed without modifying the user interface code. It also allows all actions performed by the manager to be scripted, if this is desired. For example, if a new package needs to expand a template when users are created, it can just create the appropriate links in the user-create event.

The web directory

The primary files which make up the SME Server manager are kept in the /etc/e-smith/web/ directory. These files define the layout of the web functions and require auxiliary files which provide translations and the implementation of the functions.

Table 10-1. Web interface directories

/etc/e-smith/web/common/Common files such as images and page headers.
/etc/e-smith/web/functions/Screen definitions, written in FormMagick XML. The scripts in this directory are linked into the cgi-bin directory of the panels in which they should appear.
/etc/e-smith/web/panels/ Top-level directory for panel definitions. Each panel is a collection of screens, presented as a single user interface.
./manager/{cgi-bin,common,html}/ Subdirectories for the HTML, CGI and common files for the "manager" panel, which is accessed by the /server-manager/ URL.
./password/{cgi-bin,common,html}/ Subdirectories for the "password" panel, which is accessed by the /user-password/ URL.
/etc/e-smith/locale/Top-level directory for all panel localizations.
./en-us/etc/e-smith/web/functions/Subdirectory containing localization into US English.
./fr/etc/e-smith/web/functions/Subdirectory containing localization into French.
/usr/lib/perl5/site_perl/Top-level directory for all Perl modules.
./esmith/FormMagick/Panel/Subdirectory containing Perl modules which provide the implementations to support the panel definitions.