# config

name: header
value:
  <html>
  <head>
  <title>$<project_name>: $<title></title>
  <link rel="alternate" type="application/rss+xml" title="RSS Feed"
        href="$baseurl/timeline.rss">
  <link rel="stylesheet" href="$baseurl/style.css" type="text/css"
        media="screen">
  </head>
  <body>
  <div class="header">
    <div class="logo">
      <img src="$baseurl/logo" alt="logo">
      <br><nobr>$<project_name></nobr>
    </div>
    <div class="title">$<title></div>
    <div class="status"><nobr><th1>
       if {[info exists login]} {
         puts "Logged in as $login"
       } else {
         puts "Not logged in"
       }
    </th1></nobr></div>
  </div>
  <div class="mainmenu"><th1>
  html "<a href='$baseurl/wiki?name=mailroom'>Home</a> "
  if {[hascap o]} {
    html "<a href='$baseurl/leaves'>Leaves</a> "
    html "<a href='$baseurl/timeline'>Timeline</a> "
    html "<a href='$baseurl/brlist'>Branches</a> "
    html "<a href='$baseurl/taglist'>Tags</a> "
  }
  if {[hascap r]} {
    html "<a href='$baseurl/reportlist'>Tickets</a> "
  }
  if {[hascap j]} {
    html "<a href='$baseurl/wiki'>Wiki</a> "
  }
  if {[hascap s]} {
    html "<a href='$baseurl/setup'>Admin</a> "
  } elseif {[hascap a]} {
    html "<a href='$baseurl/setup_ulist'>Users</a> "
  }
  if {[info exists login]} {
    html "<a href='$baseurl/login'>Logout</a> "
  } else {
    html "<a href='$baseurl/login'>Login</a> "
  }
  </th1></div>


name: project-description
value:
  A mail user agent that favors simplicity over complexity, speed over eye candy and leverages the power and strength of the Tcl/Tk programming language.


name: ticket-table
value:
  CREATE TABLE ticket(
    -- Do not change any column that begins with tkt_
    tkt_id INTEGER PRIMARY KEY,
    tkt_uuid TEXT UNIQUE,
    tkt_mtime DATE,
    -- Add as many field as required below this line
    type TEXT,
    status TEXT,
    priority TEXT,
    severity TEXT,
    foundin TEXT,
    private_contact TEXT,
    resolution TEXT,
    title TEXT,
    comment TEXT
  );


name: ticket-common
value:
  set type_choices {
     Code_Defect
     Build_Problem
     Documentation
     Feature_Request
     Incident
  }
  set priority_choices {
    High
    Medium
    Low
  }
  set severity_choices {
    Severe
    Normal
    Minor
  }
  set resolution_choices {
    Open
    Fixed
    Rejected
    Workaround
    Unable_To_Reproduce
    Works_As_Designed
    External_Bug
    Not_A_Bug
    Duplicate
    Overcome_By_Events
    Drive_By_Patch
    Misconfiguration
  }
  set status_choices {
    Open
    Verified
    Review
    Deferred
    Fixed
    Tested
    Closed
  }


name: ticket-viewpage
value:
  <table cellpadding="5">
  <tr><td align="right">Ticket&nbsp;UUID:</td><td bgcolor="#d0d0d0" colspan="3">
  $<tkt_uuid>
  </td></tr>
  <tr><td align="right">Title:</td>
  <td bgcolor="#d0d0d0" colspan="3" valign="top">
  <th1>wiki $title</th1>
  </td></tr>
  <tr><td align="right">Status:</td><td bgcolor="#d0d0d0">
  $<status>
  </td>
  <td align="right">Type:</td><td bgcolor="#d0d0d0">
  $<type>
  </td></tr>
  <tr><td align="right">Severity:</td><td bgcolor="#d0d0d0">
  $<severity>
  </td>
  <td align="right">Priority:</td><td bgcolor="#d0d0d0">
  $<priority>
  </td></tr>
  <tr><td align="right">Last&nbsp;Modified:</td><td bgcolor="#d0d0d0">
  $<tkt_datetime>
  </td>
  <th1>enable_output [hascap e]</th1>
    <td align="right">Contact:</td><td bgcolor="#d0d0d0">
    $<private_contact>
    </td>
  <th1>enable_output 1</th1>
  </tr>
  <tr><td align="right">Version&nbsp;Found&nbsp;In:</td>
  <td colspan="3" valign="top" bgcolor="#d0d0d0">
  $<foundin>
  </td></tr>
  <tr><td>Description &amp; Comments:</td></tr>
  <tr><td colspan="4" bgcolor="#d0d0d0">
  <span  bgcolor="#d0d0d0"><th1>wiki $comment</th1></span>
  </td></tr>
  </table>


name: ticket-editpage
value:
  <th1>
    if {![info exists username]} {set username $login}
    if {[info exists submit]} {
      if {[info exists cmappnd]} {
        if {[string length $cmappnd]>0} {
          set ctxt "\n\n<hr><i>[htmlize $login]"
          if {$username ne $login} {
            set ctxt "$ctxt claiming to be [htmlize $username]"
          }
          set ctxt "$ctxt added on [date]:</i><br>\n$cmappnd"
          append_field comment $ctxt
        }
      }
      submit_ticket
    }
  </th1>
  <table cellpadding="5">
  <tr><td align="right">Title:</td><td>
  <input type="text" name="title" value="$<title>" size="60">
  </td></tr>
  <tr><td align="right">Status:</td><td>
  <th1>combobox status $status_choices 1</th1>
  </td></tr>
  <tr><td align="right">Type:</td><td>
  <th1>combobox type $type_choices 1</th1>
  </td></tr>
  <tr><td align="right">Severity:</td><td>
  <th1>combobox severity $severity_choices 1</th1>
  </td></tr>
  <tr><td align="right">Priority:</td><td>
  <th1>combobox priority $priority_choices 1</th1>
  </td></tr>
  <tr><td align="right">Resolution:</td><td>
  <th1>combobox resolution $resolution_choices 1</th1>
  </td></tr>
  <th1>enable_output [hascap e]</th1>
    <tr><td align="right">Contact:</td><td>
    <input type="text" name="private_contact" size="40"
     value="$<private_contact>">
    </td></tr>
  <th1>enable_output 1</th1>
  <tr><td align="right">Version&nbsp;Found&nbsp;In:</td><td>
  <input type="text" name="foundin" size="50" value="$<foundin>">
  </td></tr>
  <tr><td colspan="2">
  <th1>
    if {![info exists eall]} {set eall 0}
    if {[info exists aonlybtn]} {set eall 0}
    if {[info exists eallbtn]} {set eall 1}
    if {![hascap w]} {set eall 0}
    if {![info exists cmappnd]} {set cmappnd {}}
    set nline [linecount $comment 15 10]
    enable_output $eall
  </th1>
    Description And Comments:<br>
    <textarea name="comment" cols="80" rows="$nline"
     wrap="virtual" class="wikiedit">$<comment></textarea><br>
    <input type="hidden" name="eall" value="1">
    <input type="submit" name="aonlybtn" value="Append Remark">
    <input type="submit" name="preview1btn" value="Preview">
  <th1>enable_output [expr {!$eall}]</th1>
    Append Remark from
    <input type="text" name="username" value="$<username>" size="30">:<br>
    <textarea name="cmappnd" cols="80" rows="15"
     wrap="virtual" class="wikiedit">$<cmappnd></textarea><br>
  <th1>enable_output [expr {[hascap w] && !$eall}]</th1>
    <input type="submit" name="eallbtn" value="Edit All">
  <th1>enable_output [expr {!$eall}]</th1>
    <input type="submit" name="preview2btn" value="Preview">
  <th1>enable_output 1</th1>
  </td></tr>

  <th1>enable_output [info exists preview1btn]</th1>
  <tr><td colspan="2">
  Description Preview:<br><hr>
  <th1>wiki $comment</th1>
  <hr>
  </td></tr>
  <th1>enable_output [info exists preview2btn]</th1>
  <tr><td colspan="2">
  Description Preview:<br><hr>
  <th1>wiki $cmappnd</th1>
  <hr>
  </td></tr>
  <th1>enable_output 1</th1>

  <tr><td align="right"></td><td>
  <input type="submit" name="submit" value="Submit Changes">
  <input type="submit" name="cancel" value="Cancel">
  </td></tr>
  </table>


name: ticket-reportlist
value:
  <p>Search existing reports:</p>
  <form style="padding-left: 20px;" method="GET" action="rptview">
  <input type="hidden" name="rn" value="4" />
  Text: <input type="text" name="text" />
  <input type="radio" name="status" value="Closed" checked/> Open Only
  <input type="radio" name="status" value="" /> Open and Closed
  &nbsp;&nbsp;&nbsp;<input type="submit"/>
  </form>

  <th1>
  if {[hascap n]} {
    html "<p>Enter a new ticket:</p>"
    html "<ul><li><a href='tktnew'>New ticket</a></li></ul>"
  }
  </th1>

  <p>Choose a report format from the following list:</p>
  <ol>
  <th1>html $report_items</th1>
  </ol>

  <th1>
  if {[hascap t]} {
    html "<p>Create a new ticket display format:</p>"
    html "<ul><li><a href='rptnew'>New report format</a></li></ul>"
  }
  </th1>


# reportfmt

title: All Tickets
cols:
  #ffffff Key:
  #f2dcdc Active
  #e8e8e8 Review
  #cfe8bd Fixed
  #bde5d6 Tested
  #cacae5 Deferred
  #c8c8c8 Closed

sqlcode:
  SELECT
    CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
         WHEN status='Review' THEN '#e8e8e8'
         WHEN status='Fixed' THEN '#cfe8bd'
         WHEN status='Tested' THEN '#bde5d6'
         WHEN status='Deferred' THEN '#cacae5'
         ELSE '#c8c8c8' END AS 'bgcolor',
    substr(tkt_uuid,1,10) AS '#',
    datetime(tkt_mtime) AS 'mtime',
    type,
    status,
    title
  FROM ticket


title: Open Tickets
cols:
  #ffffff Key:
  #f2dcdc Active
  #e8e8e8 Review
  #cfe8bd Fixed
  #bde5d6 Tested
  #cacae5 Deferred
  #c8c8c8 Closed

sqlcode:
  SELECT
    CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
         WHEN status='Review' THEN '#e8e8e8'
         WHEN status='Fixed' THEN '#cfe8bd'
         WHEN status='Tested' THEN '#bde5d6'
         WHEN status='Deferred' THEN '#cacae5'
         ELSE '#c8c8c8' END AS 'bgcolor',
    substr(tkt_uuid,1,10) AS '#',
    datetime(tkt_mtime) AS 'mtime',
    type,
    status,
    title
  FROM ticket
  WHERE status NOT IN ('Closed')


title: Closed Tickets
sqlcode:
  SELECT
    '#c8c8c8' AS 'bgcolor',
    substr(tkt_uuid,1,10) AS '#',
    datetime(tkt_mtime) AS 'mtime',
    type,
    status,
    title
  FROM ticket
  WHERE status = 'Closed'


owner: jnc
title: _Search Tickets
cols:
  #ffffff Key:
  #f2dcdc Active
  #e8e8e8 Review
  #cfe8bd Fixed
  #bde5d6 Tested
  #cacae5 Deferred
  #c8c8c8 Closed

sqlcode:
  SELECT
    CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
         WHEN status='Review' THEN '#e8e8e8'
         WHEN status='Fixed' THEN '#cfe8bd'
         WHEN status='Tested' THEN '#bde5d6'
         WHEN status='Deferred' THEN '#cacae5'
         ELSE '#c8c8c8' END AS 'bgcolor',
    substr(tkt_uuid,1,10) AS '#',
    datetime(tkt_mtime) AS 'mtime',
    type,
    status,
    title,
    comment AS '_comments'
  FROM ticket
  WHERE (
    title LIKE '%'||cgi('text')||'%'
    OR
    comment LIKE '%'||cgi('text')||'%'
  ) AND status NOT LIKE cgi('status')


# event

type: ci
user: jnc
comment:
  Removed static source file from repo. 
  Created a developers version of the static file that sources in all other files.
  Changed the make file to use /usr/bin/env wish instead of which wish. This enables
  one to build the static source from any platform and distribute the static script
  as it does not have to be customized per install.
  Changed the name of the program to mailroom (based on the fossil repo name).


type: ci
user: jnc
comment:
  When composing a new message, focus is now given automatically to the correct
  entries. On the "Header" tab, that is "Search", the "Body" tab, that is "Subject"
  and focus is not placed anywhere on the "Attachments" tab.


type: ci
user: jnc
comment:
  Removed the noop File>New Message... menu entry. Most other message operations are
  accessable via a menu entry, so it was removed instead of making operable.


type: ci
user: jnc
comment:
  Added base command line option parsing which includes an option for specifying an alternative mail database, -mailstore abc.xyz


type: ci
user: jnc
comment:
  Conversion to Ttk, stage 2. Notepad control is now removed and we are using ttk::notepad.
  This completes the control conversion. Style issues may remain but all controls are converted
  to Ttk.


type: ci
user: jnc
comment:
  Added an option to the resource database to disable all tearoff menus, thus it's not needed on all menu creations.


type: ci
user: jnc
comment:
  Now tracks version number, displays help/about and also sets the title to the
  current user/current app name/current version number for better clarity when
  multiple copies are running.


type: ci
user: jnc
comment:
  Replaced the message list text widget with ttk:treeview. It is not used as a tree but a simple
  table widget. With this, the memory table "map" was removed as it was no longer needed.


type: ci
user: jnc
comment:
  Fixed bug in new from code. Size is now pretty formatted in KB. On Windows 7 the background 
  for the tree control is forced to be white.


type: ci
euser: jnc
user: jeremy
ecomment:
  Miscellaneous changes to become a better citizen on OS X. A few GUI changes,
  local_mailroom changed to wish8.5, missed an old frame. Also attaching the
  menu bar correctly and providing the correct option for the Apple menu's
  Preference item.

comment:
  Miscellaneous changes to become a better citizen on OS X. A few GUI changes,
  local_mailroom changed to wish8.5, missed an old frame. Also attaching the
  menu bar correctly and providing the correct option for the Apple menu's
  Preference item.


type: ci
user: jnc
comment:
  Removed building a dynamic file in Makefile, it's not really needed with /usr/bin/env.
  Added building of an executable for Windows using TclApp. Other platforms will be added
  at later dates.


type: g
user: jnc
comment:
  Edit [1bed9c9f715cbb7c]: Edit check-in comment. Timestamp 2009-12-04 05:40:45. Change user to "jnc".


type: t
user: jnc
brief: Fixed ticket [b5ebe1e76c].
comment:
  Fixed ticket [b5ebe1e76c]: <i>Apple Preferences Menu should trigger the Config Dialog</i> plus 3 other changes


type: ci
user: jnc
comment:
  Now supports viewing HTML messages via the Mime page, View link. When saving mime content
  that is of type text/html, the Save As dialog is also setup properly for the 
  "HTML Files *.html" file filter.


type: ci
user: jnc
comment:
  Added a HTML button in between Msg and Raw that will display the text/html body
  in a Tkhtml widget, if one exists otherwise it will display the normal text/plain
  body.


type: ci
user: jnc
comment:
  When in the index view, you can Shift Click a priority button to change all
  listed messages to the new priority. A confirmation dialog appears for this 
  action.


type: ci
user: jnc
comment:
  Changed the visual use of the word "Priority" to "State". Made states easily
  changable by editing main.tcl. Soon this will be user configurable via the
  config dialog box. Changed the name of "Old" to "Archived"


type: ci
user: jnc
comment:
  Beep when the user presses the Prev or Next buttons are there are no more
  messages to go to in either direction. This commit also fixes the problem
  of when changing states the message did not advance.


type: t
user: jnc
brief: Closed ticket [fd56bb0d09].
comment:
  Closed ticket [fd56bb0d09]: <i>When on last message and priority is set, return to the main list.</i> plus 3 other changes


type: ci
user: jnc
comment:
  You can now Shift-Click a state checkbox to choose *only* that state. A normal
  click will enable/disable the displaying of that state.


type: ci
user: jnc
comment:
  Changed the name of "Keywords:" to "Search:". Also flipped the locations of the Clear and Go button.


type: ci
user: jnc
comment:
  Removed code that was setting the background and select colors of tree view items. 
  There is a bug in 8.5.7 and 8.5.8 that was recently fix in CVS head. The patch was
  applied to my local Tcl/Tk tree. This problem will affect other Window users who
  do not yet have the patch.


type: ci
user: jnc
comment:
  Added word count targets to the makefile to keep track of source files.
  Reworked the definition of the source files in the Makefile to separate core source files from auxiliary modules.


type: ci
user: jnc
comment:
  Sorting is now down with pressing the headers on the message list. Sorting can
  be in either direction on any column.


type: ci
user: jnc
comment:
    *  Debug mode is off by default, use the command line option: -debug 1 to enable.
    *  New button moved next to the Fetch button.
    *  Button bar creation was simplified.


type: ci
user: jnc
comment:
  Created a few user defined callbacks, user_after_start, user_before_exit, user_before_fetch, user_after_fetch.


type: ci
user: jnc
comment:
  Output a new line after the last pop3 fetch message.
  This allows user callbacks to use fetch_message without worry about appending onto the end of a previous line.


type: ci
user: jnc
comment:
  Fixed a bug where all messages were terminated with a . as it was not stripped from the POP3 protocol.


type: ci
user: jnc
comment:
  Properly handle the case of a period at the first position in an email message downloaded from a POP3 server.


type: ci
user: jnc
comment:
  Modified message_insert to accept parameterized arguments including -fromfetch which will trigger the use of logging.


type: ci
user: jnc
comment:
  Added a debug config option that currently only enables protocol debugging (what use to be normal output).


type: ci
user: jnc
comment:
  Added X-Mailer header. Added two new callbacks
    *  <tt>user_on_compose</tt>
    *  <tt>user_on_reply</tt>


type: ci
user: jnc
ecomment:
  Fixed ticket [88f238db6c]. Made assignment of any state move to the next message. You can Control-Click-1 to simply assign without moving.

comment:
  Fixed ticket 88f238db6c. Made assignment of any state move to the next message. You can Control-Click-1 to simply assign without moving.


type: ci
user: jnc
comment:
  On sending a reply email, we now return to the email being replied to not the main message list.
  Made the SMTP command output be a ::debug==1 only message.


type: t
user: jnc
brief: Closed ticket [88f238db6c].
comment:
  Closed ticket [88f238db6c]: <i>Lockup when trying to view last message in list</i> plus 3 other changes


type: ci
user: jnc
comment:
    *  Added makefile for OS X which builds snapshots and release binaries.
    *  The Configuration menu item no longer appears under the File menu on OS X.
    *  Added an icon to the Help/About dialog.


type: ci
bgcolor: #ffc0d0
user: jnc
ecomment:
    *  When clicking a state button, mailroom now always moves to the next message regardless if the state has changed or not.
    *  When updating a message from one that has been received, the subject is updated as well. UNTESTED.

comment:
    *  When clicking a state button, mailroom now always moves to the next message regardless if the state has changed or not.
    *  When updating a message from one that has been received, the subject is updated as well. UNTESTED.


type: g
user: jnc
comment:
  Edit [f027a4bf8af0f8a1]: Change background color to "#ffc0d0". Edit check-in comment. Timestamp 2009-12-10 04:40:35.


type: ci
user: jnc
comment:
  Viewing a mime attachment that is not HTML or Plain Text, it will now save to ::mailroom_dir and open it with the correct program.


type: ci
user: jnc
comment:
  State buttons now act according to the view. When on the message list view, they operate in mass. When on a message detail view they operate per the current message.


type: ci
user: jnc
comment:
  Now highlights URLs in an email message and allows the user to click them to launch an external browser.


type: ci
user: jnc
comment:
  Config no longer trims text entires. It does, however, strip the last character (always an added newline)


type: ci
user: jnc
comment:
  We now track Recieve Date and Sent date. We display both to the user in the detail view as well as the To: and Cc: header fields.


type: ci
user: jnc
comment:
  Instead of tracking msgid,ref_uuid, I now do the lookup on message_insert and track msgid,refid which provides much faster queries.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL
    *  Began moving things into namespaces. 
    *  Moving core functions to non-GUI dependent files for greater reusability.
    *  Rewrote the message insert code.
    *  Reworked the naming and fields of the msg table.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL
    *  Added sending code.
    *  Added importing code.
    *  Automatically detects if the message is inbound or outbound.
    *  User addresses can be user edited, preventing auto-updates.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL
    *  Configuration moved into a namespace.
    *  All user callbacks moved to new callback method.
    *  GUI is still defunct, but now loads.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see trunk tag, not cleanup1
    *  Migrated to using tcllib's pop3 library instead of our own.
    *  Began to use doctool comments embedded in source files, extracted by docextract.tcl
       which will become an external program at some point in time.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Fixed Help/About
    *  Fixed brackets around fetch begin menu command


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Fixed saving of configuration options that are edited via a text widget.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Logging now functions in both GUI and text modes.
    *  Fetching from the GUI now functions.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Removed unnecessary user_log procedure, use ::log::log instead.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Merged msg.tcl and message.tcl
    *  Began documentation of message.tcl
    *  docextract.tcl can now also generate html output


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Removed msg.tcl (forgot from last commit)


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Cleanup in message.tcl and therefore associated files.
    *  ::mailroom::julianday will now default time to `clock seconds` if not supplied.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Removed the idea of the msg_new table and just added a flag is_read
    *  Changed the default mailstore file to be .mailroom.db as to not conflict
       with the .mailroom directory that is created for temporary storage.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Bucket changes now function again. This includes mass, single and emptying a given bucket.
    *  Code search (keyword) now functions again.
    *  To: and Cc: headers display again in message detail.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Fixed the deleting of messages after retrieving them via POP3.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Fixed configuration. ttk widgets do not initialize their variables right away so if you did not fill
       in a variable, such as SMTP User Id, then the system would err out trying to access it from the database
       because it never really was saved. This is fixed by setting the value to a default ({} in most cases)
       before querying the database on config load.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Quick Reply now functions.
    *  Moved GUI message code from message.tcl to g_message.tcl.
    *  Moved GUI main code from main.tcl to g_main.tcl.
    *  Removed extra newline from the console logger.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  NOT FUNCTIONAL, see branch 'trunk' instead of 'cleanup1'
    *  Fixed the blanking of the users full address when replying to a message.
    *  Removed the left over -debug 1 option sent to smtp::sendmessage.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  All items FUNCTIONAL but still testing, see branch 'trunk' instead of 'cleanup1'
    *  Added the number of messages to and from the given user in the address search.
    *  Compose, Reply, and Reply-All now function again.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  All items FUNCTIONAL but still testing, see branch 'trunk' instead of 'cleanup1'
    *  Updated nto, nfrom to fit naming standards of _count
    *  Added spam_count to the user table which automatically gets incremented when a message moves into the
       spam bucket.
    *  Added an importance level to the user (1=low, 3=normal, 5=high) table.
    *  Changed occurances of addr to address.
    *  When mailroom loads for the first time, it realizes it has not been configured and causes the config
       dialog to appear.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  All items FUNCTIONAL but still testing, see branch 'trunk' instead of 'cleanup1'
    *  Added status command functionality to ::message::send.
    *  Made use of the status functionality in the GUI.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  All items FUNCTIONAL but still testing, see branch 'trunk' instead of 'cleanup1'
    *  Moved the GUI code from config.tcl into g_config.tcl, leaving config.tcl as utility methods.
    *  Added all g_*.tcl sources (some were forgotten from previous commits)


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  All items FUNCTIONAL but still testing, see branch 'trunk' instead of 'cleanup1'
    *  Moved compose.tcl to g_compose.tcl as it's GUI code only.
    *  Move compose/uuid to a reusable ::mailroom::message new_uuid.
    *  Use new_uuid procedure to generate all UUID's.


type: ci
bgcolor: #ffc0d0
user: jnc
comment:
    *  All items FUNCTIONAL but still testing, see branch 'trunk' instead of 'cleanup1'
    *  Fixed bug that would cause invalid bucket names to not be detected properly.


type: ci
user: jnc
comment:
  Removed local code to fix the subject and just called our existing subject fix function when doing a forward


type: ci
user: jnc
comment:
    *  Sped up the mass bucket moves by wrapping it in a transaction.
    *  Added a X of X type status message when navigating through messages in the detail view.
    *  Fixed the invalid field name when sorting the message list by sender.
    *  Import from File now functions again and has been changed to properly handle MBOX files.


type: ci
user: jnc
comment:
    *  Fixed Makefile error when trying to build mailroom.exe (compose.tcl was still listed)
    *  When moving a message from the Spam box to anything else, the Spam counter for that user
       is now deincremented.


type: g
user: jnc
comment:
  Edit [1a514b82c35cd4e2]: Change branch background color to "#ffc0ff". Timestamp 2009-12-13 02:29:30.


type: g
user: jnc
comment:
  Edit [1a514b82c35cd4e2]: Change branch background color to "#ffc0d0". Timestamp 2009-12-13 02:29:30.


type: ci
user: jnc
comment:
    *  Editing an outbound user now functions properly.
    *  Domain is now tracked in the user table in hopes of making it a tad easier for fighting spam.


type: ci
user: jnc
comment:
    *  Added filters for inclusion of read messages (defaults to on) and inclusion of "my" messages, i.e. sent messages.
    *  Moved some shutdown code into the core.tcl, vs. g_main.tcl
    *  Allow for additional options to be given to the command line parser via ::mailroom::initialize. This allows utilities
       to use the core mailroom system fully.


type: ci
user: jnc
comment:
  Reworked how the proper name is stored for email addresses. The general idea is to only update it if the proper name does not exist in the database or the user has supplied a new proper name.


type: t
user: jnc
brief: New ticket [023756487d].
comment:
  New ticket [023756487d] <i>Incoming emails can still change the full name of the email address on file</i>.


type: t
user: jnc
brief: Ticket [023756487d]: 3 changes
comment:
  Ticket [023756487d] <i>Incoming emails can still change the full name of the email address on file</i> status still Open with 3 other changes


type: ci
user: jnc
comment:
  Fixed an incorrect time format string on the Fetch message. It was display 18:45pm when it should have been 6:45pm. i.e. H instead of I.


type: ci
user: jnc
comment:
  Fixed [bd3efd0fb1]. On reply, email addresses are looked up in the user table and used if they contain a proper name.


type: t
user: jnc
brief: Closed ticket [023756487d].
comment:
  Closed ticket [023756487d]: <i>Incoming emails can still change the full name of the email address on file</i> plus 1 other change


type: ci
user: jnc
comment:
  Fixes [d3a8c7caff]. XXX wrote: citations are now using the proper address from the user table, not who the user says they are in the From: or Reply-To: headers.


type: t
user: jnc
brief: Closed ticket [bd3efd0fb1].
comment:
  Closed ticket [bd3efd0fb1]: <i>On Reply and Reply-All use Full Address from Database</i> plus 2 other changes


type: t
user: jnc
brief: New ticket [d3a8c7caff].
comment:
  New ticket [d3a8c7caff] <i>Reply To uses From: to provide the citation when it should use the user database</i>.


type: t
user: jnc
brief: Closed ticket [d3a8c7caff].
comment:
  Closed ticket [d3a8c7caff]: <i>Reply To uses From: to provide the citation when it should use the user database</i> plus 2 other changes


type: t
user: anonymous
brief: Ticket [4fa68f6e61]: 3 changes
comment:
  Ticket [4fa68f6e61] <i>fossil clone mailroom url not found ...</i> status still Open with 3 other changes


type: t
user: anonymous
brief: Ticket [4fa68f6e61]: 1 change
comment:
  Ticket [4fa68f6e61] <i>fossil clone mailroom url not found ...</i> status still Open with 1 other change


# ticket

tkt_uuid: 023756487d591d31fa8c7da7f1a2845459a0fcb9
type: Code_Defect
status: Closed
priority: Medium
severity: Normal
resolution: Fixed
title: Incoming emails can still change the full name of the email address on file
comment:
  Mailroom autocatalogs incoming email addresses and names. When you send an email to one of those items and you change the persons name, it should keep that name regardless of what comes in later. In some cases this is not happening and the name is being overwritten with the name found in the latest incoming emails.


tkt_uuid: 148e4ea0b23c89f5bde4cdfb61e123d90ee4c937
type: Code_Defect
status: Closed
priority: Medium
severity: Minor
foundin: 0.2
resolution: Overcome_By_Events
title: Email loads when clicking on white space
comment:
  When you are on the List view and only have a few messages you can click on white space below the email listing. It will display the last email viewed.


tkt_uuid: 3373707fcc879eea633cbf24788900ac0863fcb8
type: Feature_Request
status: Closed
priority: Medium
severity: Normal
foundin: 0.2
resolution: Fixed
title: Return to message after reply
comment:
  Currently it returns to the message list. If you hit reply, reply all or forward, it should return to the message not the message list.

  <hr><i>jnc added on 2009-12-09 03:43:25:</i><br>
  Fixed in [5ebd1c69b6]


tkt_uuid: 4fa68f6e61755189110aedac7cee275af370788d
type: Documentation
status: Closed
priority: High
severity: Severe
private_contact: 00da8a71a8a9baa4e81b4c3e7ae206f3d56df6ab
resolution: Fixed
title: fossil clone mailroom url not found ...
comment:
  Hi,

  i dont seem to find the clone url anywhere on this fossil repo ? 

  thanks

  <hr><i>anonymous added on 2010-09-10 11:25:09:</i><br>
  and also no email address to You ... ;-)

  <hr><i>jnc added on 2010-10-14 22:19:06:</i><br>
  Both of these conditions have been fixed. 

  1. I added a rewrite rule to handle proper fossil use of the repo. You can now clone the project: fossil clone http://jeremy.cowgar.com/mailroom mailroom.fossil

  2. My email address is now in "human" language on the home page. 

  Thanks for the reports!


tkt_uuid: 88f238db6c183f2681db62da18dc7991e42e4c94
type: Code_Defect
status: Closed
priority: High
severity: Severe
foundin: 0.2
resolution: Fixed
title: Lockup when trying to view last message in list
comment:
  From the list view, clicking on the last message causes a lockup. You can here the beep in the speaker many times over. I guess an endless loop is occuring.

  <hr><i>jnc added on 2009-12-09 03:25:56:</i><br>
  Fixed in [4ed4d65d2a]


tkt_uuid: 976432e06b5e8e9e751dcd6f51bd244170e314c7
type: Code_Defect
status: Closed
priority: High
severity: Severe
private_contact: 00da8a71a8a9baa4e81b4c3e7ae206f3d56df6ab
resolution: Fixed
title: File g_import.tcl missing ...
comment:
  couldn't read file "./g_import.tcl": no such file or directory
      while executing
  "source [file join $appDir g_import.tcl]"
      (file "mailroom.tcl" line 19)

  <hr><i>jnc added on 2010-10-14 22:54:56:</i><br>
  This has been fixed. Thank you for the bug report.


tkt_uuid: acb368dec6191f9bcf5ff5e2a94e36482b68d561
type: Code_Defect
status: Open
severity: Normal
foundin: 0.5.1
title: URL regexp is not always correct
comment:
  @ characters in the query string cause the URL parsing to cease, for example:

  http://john.com/q.cgi?s=john%20john@doe.com

  Maybe this is not a valid URL? However, it has been used and IE accesses the URL properly, so, even if invalid it works.


tkt_uuid: b5ebe1e76c0dd5ec102d98690165a322c7234d34
type: Code_Defect
status: Closed
priority: Medium
severity: Minor
foundin: 0.2
resolution: Fixed
title: Apple Preferences Menu should trigger the Config Dialog
comment:
  You can do this simply by creating

  <pre>
  proc ::tk::mac::ShowPreferences {}
  {
  }
  </pre>

  <hr><i>jnc added on 2009-12-04 05:42:29:</i><br>
  Fixed on first testing with OS X.


tkt_uuid: bd199c26304e5ae606cfd109d08f9da0af1fe6c2
type: Code_Defect
status: Open
severity: Normal
foundin: 0.2
title: You can save an email message into unsent but no way to send it
comment:
  There needs to be a way to send it. The question may be, is the email saved a draft or is it a message that is meant to be queued up for sending later. Maybe we need a "Send Later" button and change the existing button to "Save Draft". We then need a way to edit the draft message.


tkt_uuid: bd3efd0fb101eafe2c209e9fc57128005b6b20ee
type: Code_Defect
status: Closed
priority: High
severity: Normal
resolution: Fixed
title: On Reply and Reply-All use Full Address from Database
comment:
  The reply/reply-to functions take the email address/full name from the email that is being replied to. It should take the address/full name from the associated user account. This way the same name is being used for replying all the time.


tkt_uuid: e482eed24532258fe16507d227c1532112755b40
type: Code_Defect
status: Closed
priority: Medium
severity: Minor
foundin: 0.2
resolution: Fixed
title: Store outbound email
comment:
  Inbound email addresses are stored for later retrieval but when you send an email to someone, those email addresses are not archived for later use.

  <hr><i>jnc added on 2009-12-08 05:11:48:</i><br>
  This has been fixed in 5ac24b0e5


tkt_uuid: fe9ce489dee06a7ff26f189454faeef2b4c54f20
type: Code_Defect
status: Open
severity: Normal
foundin: 0.2
title: Better handling of state list changes
comment:
  There are a few items that need to be changed about the way state changes are handled:

  1. A query is done to determine if any invalid states are found. This triggers an update to set the state of all invalid messages to 'inbox.'. This should present the user with a list or simply not allow the change until all messages are moved from the invalid state.

  2. The user interface does not update. Either update it after a configuration is saved or tell the user that the program must be restarted.

  3. The message view is rebuilt regardless if it's actually needed or not. We need to test to see if a state was removed that was currently selected as "show". Then, rebuild the message view, otherwise, leave it alone as nothing would have changed.


