diff options
Diffstat (limited to 'etc/rt-dot-el-design')
-rw-r--r-- | etc/rt-dot-el-design | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/etc/rt-dot-el-design b/etc/rt-dot-el-design new file mode 100644 index 0000000..01cc3c2 --- /dev/null +++ b/etc/rt-dot-el-design @@ -0,0 +1,60 @@ +-*- outline -*- + +This document outlines *a* design concept for an RT mode for +GNU/Emacs. + +** Functional modules + +* Module "TicketSQL compiler": Symbolic expression domain specific + language to TicketSQL query compiler. Accept as input a sexp + representing a query and output a query in TicketSQL format. For + example: [(:and (:owner "Ben Bitdiddle") (:status "open"))] => + ["Owner='Ben Bitdiddle' and Status='open'"]. + +* Module "TicketSQL runner": Run a TicketSQL query against the server + and return the result. Accept as input a TicketSQL query and return + a list of ticket-id ticket-subject pairs or nil if no matches were + found. + +* Module "ticket retriever": Retrieve all of the data related to a + particular ticket. Accept as input a ticket-id and return a string + containing all of the information and history corresponding to the + ticket with ticket-id. + +* Module "CLI command interface": Send ticket-modifying commands to + the server, receive and process the results. + +* Module "local storage": Store and retrieve arbitrary information + about tickets. The storage is keyed to the RT ticket number. + +** User interface modules + +* Module "ticket browser": (requires "TicketSQL runner") Interactive + interface to choose a ticket out of a list of tickets. The query + which generated the list is displayed at the top, followed by the + number of tickets listed, followed by a list of tickets. Tickets are + displayed according to a modular display function. The tickets are + sorted according to a default sorting function (reverse + chronological order). + +* Module "ticket viewer": (requires "TicketSQL retriever") Interactive + interface to display all of the information and history + corresponding to the ticket with ticket-id. Ticket display provides + a number of convinience functions. The buffer is read-only and + provides font-locking to easily identify section borders. The + keyboard space-bar invokes `scroll-up'. The "n" and "p" keys jump to + the next and previous section borders respectively. + +** Software interfaces + +* Module "rt-liber-Gnus": (requires "ticket viewer") Allows the user + to open the current ticket in a Gnus mail buffer. Fills in the + "Subject:" and "To:" fields appropriately. Has the ability to import + the text of a certain section (automatically quoted). Optionally can + add a "sorry we are late" text if the ticket is old or other + greetings, salutations and signatures. + +* Module "command": (requires "CLI command interface") The user can + send commands to the RT system to change the status of tickets via + this interface. The user interface is updated as needed to reflect + the change. |