Add global music player, invoicing/payment system, account subpages, mail account admin, and the qualityiron.vegas Jet 2.0 port
Jet interpreter (Tag.cpp, __call.cpp, __imap*.cpp/h, __smtpsend.cpp/h, __imapemptyfolder.cpp/h - new): assorted parser/tag fixes found across this work - a stray literal-tag-in-comment and backslash-quote parser corruption class, a dangling-pointer fix, a __call.cpp fd leak, IMAP folder-management tags, multi-account/per-host IMAP support, and a smtpsend Message-ID fix. barant.com site (jetc/barant-site/): - A site-wide persistent music player (header band, playlist/queue, stereo FFT EQ, session-persisted state) fed by new library/ ianslibrary/music song-list subpages. - /account split into info/phones/invoices subpages; a full invoicing and Square payment system (create/edit/copy/pay/email invoice); admin invoice management and mail-account management subpages. - /services split into overview/hosting/siptrunking/documents subpages, retiring the old standalone pages. - SIPPHONE.tag: a Jet 2.0 WebRTC softphone tag. - main.css/spa.js/email.js: the SPA loading indicator, the music player band styling, and assorted fixes accumulated alongside this work. qualityiron-site/: the qualityiron.vegas job/contractor/customer/ document management app, ported from its original Jet 1.4 codebase to Jet 2.0 as barant.coms APIServers second multi-tenant site. wcwc/wcwc.jet: the WCWC site Jet source (wcwc.jtc build output not included). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
905fbafa5a
commit
b8f7793773
406 files changed
+15803
-587
No files matched your search
@@ -63,6 +63,15 @@ namespace jet {
|
||||
coreutils::MString setFlag(const std::string &folder, uint32_t uid, const std::string &flag, bool add);
|
||||
coreutils::MString deleteMessage(const std::string &folder, uint32_t uid);
|
||||
coreutils::MString moveMessage(const std::string &folder, uint32_t uid, const std::string &destFolder);
|
||||
// Permanently empties an entire folder - every message, not one at
|
||||
// a time. "1:*" is IMAP's standard UID-range syntax for "every UID
|
||||
// in the selected mailbox" (well-defined and a no-op, not an error,
|
||||
// on an already-empty folder - verified directly against
|
||||
// BARANTMail rather than assumed from the RFC), so this is a
|
||||
// single mark-all-deleted STORE plus one EXPUNGE, not a loop over
|
||||
// deleteMessage() - the whole point is one IMAP round trip instead
|
||||
// of one per message.
|
||||
coreutils::MString emptyFolder(const std::string &folder);
|
||||
coreutils::MString folderCounts();
|
||||
|
||||
coreutils::MString sessionId;
|
||||
|
||||
Reference in new issue
Block a user