Magick will be able to be completely interacted with, monitored and configured without having to
log onto IRC or edit a configuration file, even remotely. This will be done with two client
interfaces to Magick. The first will be a DCC and telnet interface (which will work the same
way for both). This interface will mostly allow viewing of data, and some special actions to
be performed. The more powerful interface will be the Magick client, which will allow full
access to modifying the database, viewing the log file, and configuring Magick.
User interfaces are one of the most important parts of any product. Right now, Magick's existing
configuration GUI is very limited (it will only generate and load a configuration file graphically),
and does not really communicate with Magick at all. Several services out there already have UI's
that interact with services doing things like viewing log files, viewing/editing data, running
reports, and triggering events (such as starting/stopping). Magick loses ground against these
kinds of services because of this.
The Inter-Magick Protocol must be created.
The Magick client will actually be two clients. First the telnet and DCC interface that will
allow certin control functions and extra viewing of data, etc than online MSG interfaces allow,
however will still be restricted. Second the Magick client which will implement the
Inter-Magick Protocol, and be full featured allowing all kinds of log monitoring, file transfers,
database updates, etc.
The telnet and DCC interface should first require authentication, being a registered nickname and
password. Depending on which committees the user is on (the telnet and DCC interface will only
be available to those who are on privileged committees) will alter the commands that they will
be able to execute. These include anything from viewing data records, to performing various
services functions they would be able to perform online anyway, to some specialized features
such as log file or services activity monitoring. Various periodic statistics will also be
available in the telnet and DCC interface. This concept is modelled of the eggdrop telner and
DCC interface, and will have many similar concepts.
The Magick client will be a full GUI that will operate on both Windows and X-Windows, and will
implement the Inter-Magick protocol. This means that protocol-based authentication will be
required, and encryption/compression will be supported. The protocol-based authentication is
much more secure than just a nickserv registered nickname and password. The Magick client will
have several screens, including:
The server screen. This will have multiple tabs, that either allow the user to perform
operations on the server (eg. force a database save, config reload, etc), or show various
statistics about the server (including those available with the STATS ServMsg command,
and other stats not available otherwise). This will also show information about the
server we are currently connected to, such as its name, the protocol being spoken, the
software version string, and statistics like amount of messages sent/received, etc.
The configuration screen. This will display the current configuration of Magick (and
feature an 'update' button to refresh the current config), and allow the user to modify
the configuration, and send it back and get the Magick server to reload that configuration.
This screen, like the current configuration GUI, will have various tabs. It will also be
able to generate a configuration file without being connected for use with initial creation.
The log tail screen. This will display the current log file, and allow the user to scroll
through and view it. This display will keep growing, and the user will be able to always
scroll to the bottom and see the most recent log output.
The language data screen. This will have at its top, a dropdown box with all current
languages that are installed on the server (with the option to add a new one). It will
then have 3 tabs underneeth, "User Responses", "Help Text" and "Log File Output". Each
should open up into a dual pane, with a tree on the left (with which the user can browse
the sections and token names in that file, or create a new one), and a text window on the
right, which will allow the user to edit the text of that language token. The text edit
window should have vertical and horizontal scroll bars, and only on a '\n' in the language
file should a line be put onto the second line. For help, the text window will be broken
up into 3 columns, the first is the 'must be on' column, which lists (for each line) all
the committees a user may be on to see that line of text. The second is 'must not be on'
column, which lists all the committees that, if the user is in, will stop the user from
seeing that line of thext, and the last is the actual line of text. Each line of text
should be broken up in this manner (which means that the tree for help files will only
contain section names, not tokens). Obviously, in both cases, new lines of text should
be able to be inserted at will, and lines erased, etc. In each case, there should also
be a little tool bar above the text entry pane, which will do things such as make text
bold, underlined, etc. This will have to be interpereted both ways when sending to and
from the Inter-Magick protocol. As a side-note, it might be nice to be able to have an
option to both duplicate a language (so you can then go and just replace the existing
text for every item), and to be able to see an example of the token in use (which means
an example would have to exist for the token being modified, however an example language
file exists for just such a purpose).
The data edit screen. This, like the configuration screen will have many tabs of its own,
representing each record type. This will allow direct viewing and/or modification of the
Magick database. It will (obviously) have to perform all consistency checks (such as
ensuring that if they change the founder of a channel, the nickname they choose is valid,
etc). There will be a preferences item to disable editing of values.
The reports screen. This will allow a user to run queries on the database, showing, for
example a display of all users who have the PRIVMSG setting on, or whatever. This screen
should allow the user to first select the type of records to do queries on, second the
data values that should be in the query, and third the fields to shown in the results.
The resulting report should allow all columns to be resized at will, and should allow
hovering over a specific field to obtain the full text of the data within.
The magick interface screen. This is equivalent to a telnet or DCC session, and will have
an input box for the user to type commands, and will scroll the output that would be seen
on a DCC or telnet session by.
Connections will be established and disconnected by an option in a drop down menu. The Magick
client should maintain a server list (including passwords, encrypted) that a user will be able
to select from, add to, and delete (and obviously connect to). A preferences dialog should also
be created for all configuration items of the Magick client itself, things like whether or not
to enable editing of database values, etc.
This will be a VERY powerful tool, so all kinds of warnings should be added, to let the user
know that if they dont restrict, for example, in the server where it will allow clients to
connect from, or let their passwords get out, a network could be torn asunder with it.
N/A
N/A
|