blob: 01cc3c2606b56f3fb015e7b15c382f163097cf5b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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.
|