After an initially estimated 3 week project, some 15 weeks later the ticket interface is here and loaded with new features to simplify giving and receiving support.

First, the WYSIWYG editor features limited support for HTML, in addition to BBCode ([code], [b], [i], [url]).  Priority, subject, and contacts can be modified at any time.  Contacts autocomplete using e-mail contacts from prior tickets.  An unlimited number of attachments can be attached to a ticket, so long as it’s within 10 MB.  Tickets can be printed easily for your personal record.

On the other side, ticket e-mails can be replied to directly, posting a copy within the control panel.  Attachments included in a response are likewise posted to the CP as if submitted via the CP UI.

Less prominent features include SSL webmail, improved tooltip performance, and domain renames in Addon Domains.

New ticket interface

Changelog
Changes truncated since 2011, last changelog posting 2010-05-18
NEW: ticket rewrite!  Ticket interface includes multiple attachment support, WYSIWYG editor, BBCode, inline edits for priority/subject/contacts, e-mail autocomplete, print view, response and attachment support via e-mail, and a unified ticket database between all domains (Trouble Tickets)
NEW: access webmail via SSL (Webmail)
NEW: reconfigure addon domains without removing/adding (Addon Domains)
NEW: call postback via AJAX (AJAX)
NEW: ucwords help function (apnscp.js)
NEW: external SMTP mailer class (SMTP)
FIX: MySQL Manager – slow scrolling in scrollable div (apnscp.js)
FIX: jQuery 1.5 compatibility (File Tree)
FIX: examining an apnscpFunctionInterceptor instance creates infinite recursion (Module Skeleton)
FIX: Cache::reset() on an uninitialized cache handler can cause crash (apnscpd)
FIX: reporting PHP error with large stack can cause crash (Error Reporter)
FIX: stat() invariant helper attributes can_write, can_read, can_execute across multiple users of an account (File)
FIX: record_exists() always returns true by erroneously matching empty response (DNS)
FIX: cannot delete WebDAV locations (WebDAV)
FIX: prevent firing of AJAX news indicator on non-news events (Dashboard)
CHG: editing a mailbox via Manage Mailbox posts using AJAX to eliminate page reloads (Manage Mailboxes)
CHG: make catch-alls an explicit option (Manage Mailboxes)
CHG: Multiple file editor enhancements: remove superfluous file information in file editor; replace CKEditor with TinyMCE; due to encoding detection problems, prefer WYSIWYG editor over raw for HTML documents (File Manager)
CHG: persistent postback buffer across redirects (Page Container)
CHG: support for apisnetworks Twitter stream (Dashboard)
CHG: cache tooltips (Tooltips)
CHG: retheme tooltips and API AJAX success indicator
CHG: support tokenizing source text on arbitrary character (Autocomplete)
CHG: upgrade jQuery 1.3.2 to 1.5.1
CHG: highlight – prevent bubbling click even (apnscp.js)
CHG: load data via AJAX (Modal)
CHG: factor border width of calling element into autocomplete box width (Autocomplete)
CHG: return optionally triggers blur event (Autocomplete)
CHG: rename esprit.wsdl to apnscp.wsdl (SOAP)
CHG: optionally encode parameters in page_url_params() (HTML_Kit)
CHG: prevent copy if source and dest are same file (File)
CHG: mailbox format for local destinations changed from path to local user (Manage Mailboxes)
CHG: ignore directories when determining backups to delete (Backup DBs)
CHG: add_shared_domain() – skip removal of directory if directory does not exist after failure of add_alias() (Aliases)
CHG: add CXX config setting to rbconfig.rb (Ruby)
CHG: autofix sites missing bandwidth rollover (Site)
CHG: verify username validity to short-circuit expensive user checks (Auth)
CHG: Update “Forgot Info” e-mail to use external SMTP server thereby bypassing local MXs known only by server (Login)
  • NEW: ticket rewrite!  Ticket interface includes multiple attachment support, WYSIWYG editor, BBCode, inline edits for priority/subject/contacts, e-mail autocomplete, print view, response and attachment support via e-mail, and a unified ticket database between all domains (Trouble Tickets)
  • NEW: access webmail via SSL (Webmail)
  • NEW: reconfigure addon domains without removing/adding (Addon Domains)
  • NEW: call postback via AJAX (AJAX)
  • NEW: ucwords help function (apnscp.js)
  • NEW: external SMTP mailer class (SMTP)
  • FIX: MySQL Manager – slow scrolling in scrollable div (apnscp.js)
  • FIX: jQuery 1.5 compatibility (File Tree)
  • FIX: examining an apnscpFunctionInterceptor instance creates infinite recursion (Module Skeleton)
  • FIX: Cache::reset() on an uninitialized cache handler can cause crash (apnscpd)
  • FIX: reporting PHP error with large stack can cause crash (Error Reporter)
  • FIX: stat() invariant helper attributes can_write, can_read, can_execute across multiple users of an account (File)
  • FIX: record_exists() always returns true by erroneously matching empty response (DNS)
  • FIX: cannot delete WebDAV locations (WebDAV)
  • FIX: prevent firing of AJAX news indicator on non-news events (Dashboard)
  • CHG: editing a mailbox via Manage Mailbox posts using AJAX to eliminate page reloads (Manage Mailboxes)
  • CHG: make catch-alls an explicit option (Manage Mailboxes)
  • CHG: Multiple file editor enhancements: remove superfluous file information in file editor; replace CKEditor with TinyMCE; due to encoding detection problems, prefer WYSIWYG editor over raw for HTML documents (File Manager)
  • CHG: persistent postback buffer across redirects (Page Container)
  • CHG: support for apisnetworks Twitter stream (Dashboard)
  • CHG: cache tooltips (Tooltips)
  • CHG: retheme tooltips and API AJAX success indicator
  • CHG: support tokenizing source text on arbitrary character (Autocomplete)
  • CHG: upgrade jQuery 1.3.2 to 1.5.1
  • CHG: highlight – prevent bubbling click even (apnscp.js)
  • CHG: load data via AJAX (Modal)
  • CHG: factor border width of calling element into autocomplete box width (Autocomplete)
  • CHG: return optionally triggers blur event (Autocomplete)
  • CHG: rename esprit.wsdl to apnscp.wsdl (SOAP)
  • CHG: optionally encode parameters in page_url_params() (HTML_Kit)
  • CHG: prevent copy if source and dest are same file (File)
  • CHG: mailbox format for local destinations changed from path to local user (Manage Mailboxes)
  • CHG: ignore directories when determining backups to delete (Backup DBs)
  • CHG: add_shared_domain() – skip removal of directory if directory does not exist after failure of add_alias() (Aliases)
  • CHG: add CXX config setting to rbconfig.rb (Ruby)
  • CHG: autofix sites missing bandwidth rollover (Site)
  • CHG: verify username validity to short-circuit expensive user checks (Auth)
  • CHG: Update “Forgot Info” e-mail to use external SMTP server thereby bypassing local MXs known only by server (Login)
Huge apnscp Update! Major ticket improvements and more