unclean SPARC

This commit is contained in:
STEINNI
2025-08-27 07:03:09 +00:00
commit f308460931
430 changed files with 54426 additions and 0 deletions
@@ -0,0 +1,377 @@
<style>
.mailing-sheet > header { background: url('/app/assets/images/cards/mass-mailer.jpg'); }
.mailing-sheet .history { min-width: 320px; }
.mailing-sheet .sheet-content { display: none; }
.mailing-sheet .sheet-content[data-content="template"] section { display: grid; }
.mailing-sheet .sheet-content[data-content="template"] section .email-subject {
padding: var(--eicui-base-spacing-s);
border: 1px solid var(--eicui-base-color-grey-10);
margin: var(--eicui-base-spacing-xs) 0 var(--eicui-base-spacing-m) 0;
}
.mailing-sheet .sheet-content[data-content="template"] section .email-content {
border: 1px solid var(--eicui-base-color-grey-10);
border-top: 2px solid var(--eicui-base-color-grey-75);
padding: var(--eicui-base-spacing-m);
display: grid;
width: 1fr;
overflow: auto;
max-height: 70vh;
}
.mailing-sheet .sheet-content[data-content="approval"] .pane,
.mailing-sheet .sheet-content[data-content="schedule"] .form {
border: 1px solid var(--eicui-base-color-grey-10);
border-left: 3px solid var(--eicui-base-color-grey-50);
margin: var(--eicui-base-spacing-s) 0;
padding: 0 var(--eicui-base-spacing-m);
}
.mailing-sheet .sheet-content[data-content="schedule"] .form {
min-height: 20vh;
/*
align-content: center;
justify-content: center;
*/
}
.mailing-sheet .metrics { min-width: 160px; text-align: center; }
.mailing-sheet .recipients-grid .row { grid-template-columns: 150px 4fr 1fr 60px 100px; }
.mailing-sheet .recipients-grid .dataset .row .cell:nth-child(2),
.mailing-sheet .recipients-grid .dataset .row .cell:nth-child(4),
.mailing-sheet .recipients-grid .dataset .row .cell:nth-child(5) { text-align: center; }
.mailing-sheet .recipients-grid .cell.actions {
display: grid !important;
justify-content: right;
grid-auto-flow: column;
grid-gap: var(--eicui-base-spacing-xs);
}
.mailing-sheet .workflow { height: 20vh; }
.mailing-sheet .create-path-choice{
grid-template-columns: auto min-content;
align-items:center;
}
.mailing-sheet footer button{
justify-self: center;
}
.mailing-sheet span[info].icon-info{ margin-left:3rem; }
.mailing-sheet .history section{ max-height: 20rem; }
.mailing-sheet button[data-trigger="onDupsInfo"]{ width: min-content; }
.mailing-sheet div[data-output="rejectionReason1"],
.mailing-sheet div[data-output="rejectionReason2"],
.mailing-sheet div[data-output="reviewComments2"]{
background-color: var(--eicui-base-color-grey-20);
padding: 0.5rem;
}
.mailing-sheet [hidden] { display: none; }
</style>
<article eiccard media class="massmailer mailing-sheet">
<header>
<h1 class="mailing-name" data-output="name"></h1>
<h2>Communication Services</h2>
</header>
<section>
<div class="cols-2 left">
<div>
<article eiccard data-async="info">
<header>
<h1>General Information</h1>
</header>
<section>
<alert eicalert small muted info>current status is <span eicchip small info data-output="status"></span></alert>
<div class="cols-2">
<div>
<label xsmall>Created</label>
<span primary data-output="created"></span>
</div>
<div>
<label xsmall>Creator</label>
<span primary data-output="author"></span>
</div>
</div>
<label xsmall>Path</label>
<span primary data-output="infosPath"></span>
<article eiccard>
<section>
<div data-output="eicpiechart"></div>
<div class="cols-4">
<div class="center"><span xlarge><b data-output="recipients">0</b></span><label primary xsmall>recipients</label></div>
<div class="center"><span xlarge secondary><b data-output="pending">0</b></span><label secondary xsmall>pending</label></div>
<div class="center"><span xlarge danger><b data-output="bounced">0</b></span><label danger xsmall>bounced</label></div>
<div class="center"><span xlarge success><b data-output="reached">0</b></span><label success xsmall>opened</label></div>
</div>
</section>
</article>
</section>
<footer>
<div class="cols-1 right">
<button eicbutton danger small data-trigger="onMailingDelete" data-ref="deleteMailing">Delete this mailing</button>
</div>
</footer>
</article>
<article eiccard collapsable class="history" data-async="activity">
<header>
<h1>Latest activity</h1>
</header>
<section>
<ul nonbulleted data-output="history"></ul>
</section>
</article>
</div>
<div>
<div eicstatechart class="workflow" data-async="mainPane"></div>
<article eiccard class="sheet-content async" data-content="start" data-async="start">
<header>
<div class="cols-2 search-bar">
<h1>Initiate your Mailing
<span info class="icon-info" title="Enter the name of your mailing, then choose a place to store it, then hit Save to go to the next step."></span>
</h1>
</div>
</header>
<section>
<label>Name</label>
<input eicinput type="text" data-ref="mailingName" data-change="onNamePathChange"/>
<label>Path</label>
<dic class="cols-2 create-path-choice">
<div data-output="createPath" data-value=""></div>
<button eicbutton small primary data-trigger="onPathBrowse">Browse</button>
</dic>
</section>
<footer>
<button eicbutton medium primary data-trigger="onSaveCreated" data-ref="saveCreated" disabled>Save</button>
</footer>
</article>
<article eiccard class="sheet-content" data-content="template" data-async="template">
<header>
<div class="cols-2 right">
<div>
<h1>Content
<span info class="icon-info" title="Select the content of your mailing amongst the available templates, then proceed to Recipients."></span>
</h1>
<h2>Template name <b data-output="templateName"></b></h2>
</div>
<button eicbutton data-ref="changeTemplate" data-trigger="onTemplateChange">Select</button>
</div>
</header>
<section>
<div xlarge title="Email subject" class="email-subject"><b data-output="templateSubject"></b></div>
<menu eictab class="content-menu">
<li>HTML content</li>
<li>Text (alt.) content</li>
</menu>
<div class="email-content" data-output="templateHtmlBody"></div>
<div class="email-content text" data-output="templateAlternateText"></div>
<div class="cols-2" style="display: none;" >
<article eiccard>
<header>
<h1></h1>
<span class="template-path" eicchip="" secondary="" xsmall="">Current path:</span>
</header>
<section>
<div class="templates-grid"></div>
</section>
</article>
<article eiccard>
<header>
<h1>Template: </h1>
</header>
<section>
</section>
<footer>
<button eicbutton primary disabled data-trigger="onTestSend"><span>Send a test mail</span></button>
</footer>
</article>
</div>
</section>
</article>
<article eiccard class="sheet-content async" data-content="recipients" data-async="recipients">
<header>
<div class="cols-2 ">
<h1>Recipients
<span info class="icon-info" title="Select or import your recipients source(s). Once you have some recipients, you can proceed to the Mapping step."></span>
</h1>
</div>
</header>
<section>
<div class="cols-2 left">
<article eiccard class="metrics">
<header>
<h1>summary</h1>
</header>
<section>
<div>
<div>
<label xsmall><b>Total in sources</b></label>
<span xxxlarge><b data-output="totalRecipients">0</b></span>
</div>
<div>
<label xsmall><b data-output="labelDupes">Duplicates</b></label>
<span xxlarge><b data-output="totalRecipientsDupes">0</b></span>
<button eicbutton secondary rounded xsmall data-ref="dupsInfo" data-trigger="onDupsInfo" title="More info about those duplicates"><i class="icon-search"></i></button>
</div>
<div>
<label xsmall><b data-output="labelExcluded">Total excluded</b></label>
<span xxlarge><b data-output="totalRecipientsExcluded">0</b></span>
</div>
<div>
<label xsmall><b>Total sendable</b></label>
<span xxlarge><b data-output="totalFinalRecipients">0</b></span>
</div>
</div>
</section>
</article>
<article eiccard>
<header>
<div class="cols-2 right" style="grid-template-columns: auto max-content;">
<div>
<h1>Recipients sources</h1>
</div>
<div class="cols-3">
<button eicbutton primary small data-ref="btnFetch" data-trigger="onFetch" hidden><span>Add from MyEIC</span></button>
<button eicbutton primary small data-ref="btnImport" data-trigger="onImport" hidden><span>Add from Excel</span></button>
<button eicbutton primary small warning data-ref="btnExclusion" data-trigger="onExclusion" hidden><span>Add exclusion xls</span></button>
</div>
</div>
</header>
<section>
<div eicdatagrid footer="hidden" class="recipients-grid"></div>
</section>
</article>
</div>
</section>
</article>
<article eiccard class="sheet-content async" data-content="mappings" data-async="mappings">
<header>
<h1>Data mapping
<span info class="icon-info" title="When all variables are mapped for all your recipients sources, you'll be able test and review (or let review) your mailing."></span>
</h1>
</header>
<section data-output="mappingsPanel"></section>
</article>
<article eiccard class="sheet-content async" data-content="approval" data-async="review">
<header>
<h1>Approval</h1>
<h2>Last checks before scheduling your mailing for expedition</h2>
</header>
<section class="approval-panel">
<div class="pane" data-output="testPane">
<label xlarge >Test your content</label>
<div class="cols-2 right middle">
<p>Send a copy of the email content to your mailbox</p>
<button eicbutton primary data-trigger="onTestSend"><span>Send test email...</span></button>
</div>
</div>
<div class="pane" data-output="revieweePane">
<label xlarge >Review</label>
<div data-output="revieweeOngoing">
<p>This mailing is currently being reviewed.</p>
</div>
<div data-output="revieweeApproved">
<div eicalert success>Your mailing has been approved by <b data-output="approUser1"></b> on <b data-output="approDate1"></b></div>
</div>
<div data-output="revieweeRejected">
<div eicalert danger>
<p>Your mailing has been rejected by <b data-output="rejectionUser1"></b> on <b data-output="rejectionDate1"></b></p>
<label medium>Reason</label>
<div small data-output="rejectionReason1"></div>
<p xsmall>Read the above comments, adapt your mailing accordingly and request another review.</p>
<div class="cols-1 center">
<button eicbutton primary data-trigger="onReviewRequest"><span>Request new review</span></button>
</div>
</div>
</div>
<div class="cols-2 right" data-output="revieweeRequest">
<p>In order to schedule the expedition of your mailing, it must be reviewed and approved first.</p>
<button eicbutton primary data-trigger="onReviewRequest"><span>Request review</span></button>
</div>
</div>
<div class="pane" data-output="reviewerPane">
<label xlarge >Review request</label>
<div data-output="reviewerChoice">
<div eicalert info>
<div>Final review requested by <b data-output="requestUser2"></b> on <b data-output="requestDate2"></b></div>
<label medium>Remarks / Comments</label>
<div small data-output="reviewComments2"></div>
</div>
<p xsmall>Please, have a thorough check on email content and recipients before giving the final GO</p>
<div class="cols-2 buttons">
<button eicbutton warning data-trigger="onReviewReject"><span>Request changes (Reject sending)</span></button>
<button eicbutton primary data-trigger="onReviewApprove"><span>Approve sending</span></button>
</div>
</div>
<div data-output="reviewerApproved">
<div eicalert success >Mailing approved by <b data-output="approUser2"></b> on <b data-output="approDate2"></b> </div>
</div>
<div data-output="reviewerRejected">
<div eicalert warning >
<div>Mailing rejected by <b data-output="rejectionUser2"></b> on <b data-output="rejectionDate2"></b></div>
<label medium>Reason:</label>
<div small data-output="rejectionReason2"></div>
</div>
</div>
</div>
</section>
</article>
<article eiccard class="sheet-content async" data-content="schedule" data-async="schedule">
<header>
<h1>Expedition</h1>
<h2></h2>
</header>
<section class="schedule-panel">
<div data-output="toSchedule">
<div eicalert info>
<span>
You are ready to send your mails. Please, choose when you would like to process.<br/>
You may choose to sent it now (mails will be processed within 5 minutes), or to schedule it for a specific date and time.
</span>
</div>
<div class="cols-2 center middle">
<div class="immediate form">
<label large>Send the mailing now</label>
<p>(mails will be processed within 5 minutes)</p>
<input eicinput type="hidden" data-ref="scheduleDateNow" value="${new Date().toISOString().split('T')[0]}" />
<input eicinput type="hidden" data-ref="scheduleTimeNow" value="5min" />
<button eicbutton primary data-ref="sendButton" data-trigger="onSendingNow"><span>Send now</span></button>
</div>
<div class="scheduled form">
<label large>Schedule sending for later</label>
<div class="cols-2">
<div>
<label small>Date:</label>
<input eicinput type="date" data-ref="scheduleDateLater" min="${new Date().toISOString().split('T')[0]}" value="${new Date().toISOString().split('T')[0]}" data-change="onScheduleDateChange" >
</div>
<div>
<label small>Time:</label>
<select eicselect name="scheduleTime" data-ref="scheduleTimeLater" data-change="onScheduleTimeChange">
<option></option>
</select>
</div>
</div>
<button class="schedule" eicbutton disabled primary data-ref="scheduleButton" data-trigger="onSendingLater"><span>Schedule</span></button>
</div>
</div>
<div class="cols-1 center">
<button class="schedule" eicbutton secondary data-trigger="onAbortSending"><span>Abort sending</span></button>
</div>
</div>
<div data-output="scheduled">
<div eicalert info>
<span>
This mailings has been scheduled for <b data-output="scheduledDate"></b>.<br/>
As soon as it is sent, you'll be able to access it's statistics from the mailing dashboard.
</span>
</div>
<div class="cols-1 right" data-output="unschedule">
<button class="right" eicbutton="" warning="" data-trigger="onUnschedule">Unschedule</button>
</div>
</div>
</section>
</article>
</div>
</section>
</article>