apnscp 2, the successor to our control panel, apnscp esprit, has been released.  apnscp 2 is an enormous milestone that represents a shift in focus from backend to UI development – Instead of devising a process to execute a task, how can the process be simplified to the user.  The announcement will be abbreviated to give a glimpse of earlier WIPs, including the first run of apnscp 2 that thankfully never was.  The next step is a backend move from the proprietary gobbledygook MVC to Zend Framework, then back to UI improvements.  Enjoy!

First draft for apnscp 2 in May
Initial dashboard design (July 29)
Revised dashboard (July 31)
Tag cloud still present - a future tie-in (August 6)
Menu expansion background (July 29)
Full app example (August 3)
Second rendition of menu expansions (August 4)
Graduated gauges - unknown/normal/warn/critical (August 6)
Notification presentation for postbacks (August 6)
apnscp - Dashboard_1253229312628
Latest dashboard (September 17)


  • Added: file upload queuing (File Manager)
  • Added: setCursorPosition() – position cursor in text boxes, optionally inversing selection and highlighting file name in file.  Used in file rename dialog in File Manager (apnscp JS)
  • Fixed: get_next_payment()- subscriptions without a payment are ignored (Billing)
  • Fixed: saved passwords become corrupt when login exceeds 32 characters (Login)
  • Fixed: list_mysql_databases()- old MySQL database grants escape “-_” in the database name (SQL)
  • Fixed: destination removed after retrieval by “Download & Extract” utility if current directory is /tmp (File Manager)
  • Fixed: site storage usage misreported (Site Summary)
  • Fixed: get_debug_bt()- uncaught exceptions result in off-by-one error while enumerating the callstack (Error Reporter)
  • Fixed: garbled display for browsers masking User-Agent header (Page Template)
  • Fixed: get_invoice()- Using $this when not in object context (Billing)
  • Fixed: literal percent (%) treated as format specifier (Process)
  • Fixed: query_params() does not instantiate PGSQL database connection
    apnscp 2 (2009/08/08)
  • Fixed: text indent doesn’t work under Webkit
  • Fixed: Granular Logging does not capture primary domain if www is omitted
  • Fixed: Feedback mailto is invalid, encode + as %2B
  • Fixed: domains unassociated with MDM are removed upon Activate Changes (Multiple Domain Manager)
  • Fixed: various IE6, IE7, WebKit rendering fixes
  • Fixed: bogus upload speed (File Manager)
  • Fixed: duplicate file upload queue entries under IE7 (File Manager)
  • Fixed: WSDL generation ignores commands not explicitly exported (SOAP)
  • Fixed: clean-up temp file on duplicate file uploads (File Manager)
  • Fixed: privilege escalation (SOAP)
  • Fixed: empty argument list passed incorrectly as null (afi)
  • Fixed: PHP 5.3 incompatible changes: AddPoint() casts empty string as array (pChart), split() deprecation (ftp, file)
  • Fixed: unset booleans raise parser notice (Majordomo)
  • Fixed: empty args treated as string (AJAX Engine)
  • Changed: order ticket notes in reverse chronological order, word wrap (Trouble Tickets)
  • Changed: expandable sections (MySQL Manager, Referrals)
  • Changed: rename Referral Tree to Referrals, clean-up
  • Changed: improve post-upload speed with large files (File Manager)
  • Changed: apply default module permissions thereby consolidating the exported function table
  • Changed: append_trouble_ticket()- clean-up ticket formatting (CRM)
  • Changed: increase verbosity of unsynchroniZed domains (Multiple Domain Manager)
  • Changed: hide TCP connections by default (MySQL Manager)
  • Changed: clean-up (phpMyAdmin, phpPgAdmin)
  • Changed: ticket reply-to address to support+tickets@apisnetworks.com (CRM)
  • Changed: apnscp 2 initial release
  • Changed: rewrite Granular Logging matching to use env variables from subdomain/domain rewrites instead of introducing a separate set of SetEnvIf directives
  • Changed: filter PHP functions from generating error reports (Error Reporter)
  • Changed: disable multiselect auto-expand on mouseover behavior (Multiselect)
  • Changed: auto-load news if visible when switching news sources (Dashboard)
  • Changed: file rename automatically selects file name (File Manager)
  • Changed: PHP 5.3 compatibility
  • Change: split() deprecation
  • Changed: rename application container from /pages to /apps
  • Removed: mysql packet compression with mysqlnd interface (http://bugs.php.net/bug.php?id=47017)
Introducing apnscp 2