Files
Brad ArantandClaude Sonnet 5 b8f7793773 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>
2026-10-06 17:42:01 +00:00

62 lines
1.7 KiB
Plaintext

<page>
<title>Quality Iron - Customer</title>
<contents>
<sql>
select customers.*,
date_format(convert_tz(created,'UTC','America/Los_Angeles'), "%W, %M %D, %Y %l:%i%p") as created_date,
users.name as owner_name
from customers
join users on customers.owner=users.id
where customers.id=$[@_selected_customer_id]
</sql>$[sqlerror]
<h1>CUSTOMER ($[.name])</h1>
<linkbutton page="editcustomer">Edit</linkbutton>
<set name="name" value="$[.name]">
<set name="created_date" value="$[.created_date]">
<set name="owner_name" value="$[.owner_name]">
<include file="qualityiron-site/customer.card">
<retain name="selected_job_id">
<retain name="selected_contractor_id">
<div>
<h1>JOBS</h1>
<div style="padding: 5px;">
<sql>
select *,
customers.name as customer,
contractors.name as contractor
from jobs
join customers on jobs.customer_id=customers.id
join contractors on jobs.contractor_id=contractors.id
join status on jobs.status_id=status.id
where customer_id=$[@_selected_customer_id]
order by contractor</sql>$[sqlerror]
<ifrow>
<div style="display: inline-block;">Jobs</div>
<div>
<table id="list">
<tr>
<th></th>
<th>Job Number</th>
<th>Contractor</th>
<th>Insurance</th>
<th>Status</th>
</tr>
<whilerow>
<tr style="visibility: table-row">
<td><linkbutton page="job" process="selectjob" name="selected_job_id" value="$[.id]">Open</linkbutton></td>
<td>$[.job_number]</td>
<td>$[.contractor] <linkbutton page="contractor" process="selectcontractor" name="selected_contractor_id" value="$[.contractor_id]"><img src="/assets/open.png" align="right"></linkbutton></td>
<td>$[.insurance]</td>
<td>$[.description]</td>
</tr>
</whilerow>
</table>
</div>
</ifrow>
</div>
</div>
</contents>
</page>