committed after the move to new computer
This commit is contained in:
parent
d108fe0b85
commit
9cffd50a5f
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"exec": {}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
"DSPCompanies": [
|
||||||
|
{
|
||||||
|
"dspShortCode": "ABHM",
|
||||||
|
"dspName": "Abraham"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "CNSL",
|
||||||
|
"dspName": "CNS Logistics"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "RBBT",
|
||||||
|
"dspName": "Ready Rabbit"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "MICA",
|
||||||
|
"dspName": "Micaramy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "LULO",
|
||||||
|
"dspName": "Lumnious Logistics"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "DADL",
|
||||||
|
"dspName": "Dennis and Dustin Trucking"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "LQLG",
|
||||||
|
"dspName": "LQ Logistics"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "KWIK",
|
||||||
|
"dspName": "KWIK Logistics"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "TALE",
|
||||||
|
"dspName": "Talento"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "RLLS",
|
||||||
|
"dspName": "Reliant"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "ELKO",
|
||||||
|
"dspName": "ELKO Logistics"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dspShortCode": "SMGS",
|
||||||
|
"dspName": "Smart Motion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -79,6 +79,42 @@ dmx.config({
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"outputType": "array"
|
"outputType": "array"
|
||||||
|
},
|
||||||
|
"processPDF": {
|
||||||
|
"meta": [
|
||||||
|
{
|
||||||
|
"name": "PDFprocess",
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"local": {}
|
||||||
|
},
|
||||||
|
"datastore1": [
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"name": "db_fullName"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"name": "db_licenseNumber"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"name": "db_stateName"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"name": "db_employeeID"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minCalc": {
|
||||||
|
"meta": [
|
||||||
|
{
|
||||||
|
"name": "CalculateMinutes",
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"local": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
/*!
|
||||||
|
App Connect Bootstrap 5 Collapse
|
||||||
|
Version: 2.0.1
|
||||||
|
(c) 2024 Wappler.io
|
||||||
|
@build 2024-11-01 11:48:13
|
||||||
|
*/
|
||||||
|
dmx.Component("bs5-collapse",{initialData:{collapsed:!0},attributes:{show:{type:Boolean,default:!1}},methods:{toggle(){this._instance.toggle()},show(){this._instance.show()},hide(){this._instance.hide()}},events:{show:Event,shown:Event,hide:Event,hidden:Event},init(s){s.classList.add("collapse"),s.addEventListener("show.bs.collapse",this.dispatchEvent.bind(this,"show")),s.addEventListener("shown.bs.collapse",this.dispatchEvent.bind(this,"shown")),s.addEventListener("hide.bs.collapse",this.dispatchEvent.bind(this,"hide")),s.addEventListener("hidden.bs.collapse",this.dispatchEvent.bind(this,"hidden")),s.addEventListener("shown.bs.collapse",this._shownHandler.bind(this)),s.addEventListener("hidden.bs.collapse",this._hiddenHandler.bind(this));const t={toggle:!1};s.hasAttribute("data-bs-parent")&&(t.parent=s.getAttribute("data-bs-parent")),this._instance=new bootstrap.Collapse(s,t),this._instance[this.props.show?"show":"hide"]()},destroy(){this._instance.dispose()},performUpdate(s){s.has("show")&&(this._instance[this.props.show?"show":"hide"](),this.set("collapsed",!this.props.show))},_shownHandler(){this.set("collapsed",!1)},_hiddenHandler(){this.set("collapsed",!0)}});
|
||||||
|
//# sourceMappingURL=dmxBootstrap5Collapse.js.map
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"sources":["components/collapse.js"],"names":["dmx","Component","initialData","collapsed","attributes","show","type","Boolean","default","methods","toggle","this","_instance","hide","events","Event","shown","hidden","init","node","classList","add","addEventListener","dispatchEvent","bind","_shownHandler","_hiddenHandler","options","hasAttribute","parent","getAttribute","bootstrap","Collapse","props","destroy","dispose","performUpdate","updatedProps","has","set"],"mappings":";;;;;;AAAAA,IAAAC,UAAA,eAAA,CAEAC,YAAA,CACAC,WAAA,GAGAC,WAAA,CACAC,KAAA,CACAC,KAAAC,QACAC,SAAA,IAIAC,QAAA,CACAC,SACAC,KAAAC,UAAAF,QACA,EAEAL,OACAM,KAAAC,UAAAP,MACA,EAEAQ,OACAF,KAAAC,UAAAC,MACA,GAGAC,OAAA,CACAT,KAAAU,MACAC,MAAAD,MACAF,KAAAE,MACAE,OAAAF,OAGAG,KAAAC,GACAA,EAAAC,UAAAC,IAAA,YAEAF,EAAAG,iBAAA,mBAAAX,KAAAY,cAAAC,KAAAb,KAAA,SACAQ,EAAAG,iBAAA,oBAAAX,KAAAY,cAAAC,KAAAb,KAAA,UACAQ,EAAAG,iBAAA,mBAAAX,KAAAY,cAAAC,KAAAb,KAAA,SACAQ,EAAAG,iBAAA,qBAAAX,KAAAY,cAAAC,KAAAb,KAAA,WAEAQ,EAAAG,iBAAA,oBAAAX,KAAAc,cAAAD,KAAAb,OACAQ,EAAAG,iBAAA,qBAAAX,KAAAe,eAAAF,KAAAb,OAEA,MAAAgB,EAAA,CAAAjB,QAAA,GAEAS,EAAAS,aAAA,oBACAD,EAAAE,OAAAV,EAAAW,aAAA,mBAGAnB,KAAAC,UAAA,IAAAmB,UAAAC,SAAAb,EAAAQ,GACAhB,KAAAC,UAAAD,KAAAsB,MAAA5B,KAAA,OAAA,SACA,EAEA6B,UACAvB,KAAAC,UAAAuB,SACA,EAEAC,cAAAC,GACAA,EAAAC,IAAA,UACA3B,KAAAC,UAAAD,KAAAsB,MAAA5B,KAAA,OAAA,UACAM,KAAA4B,IAAA,aAAA5B,KAAAsB,MAAA5B,MAEA,EAEAoB,gBACAd,KAAA4B,IAAA,aAAA,EACA,EAEAb,iBACAf,KAAA4B,IAAA,aAAA,EACA","file":"dmxBootstrap5Collapse.js","sourcesContent":["dmx.Component('bs5-collapse', {\r\n\r\n initialData: {\r\n collapsed: true\r\n },\r\n\r\n attributes: {\r\n show: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n\r\n methods: {\r\n toggle () {\r\n this._instance.toggle();\r\n },\r\n\r\n show () {\r\n this._instance.show();\r\n },\r\n\r\n hide () {\r\n this._instance.hide();\r\n }\r\n },\r\n\r\n events: {\r\n show: Event,\r\n shown: Event,\r\n hide: Event,\r\n hidden: Event\r\n },\r\n\r\n init (node) {\r\n node.classList.add('collapse');\r\n\r\n node.addEventListener('show.bs.collapse', this.dispatchEvent.bind(this, 'show'));\r\n node.addEventListener('shown.bs.collapse', this.dispatchEvent.bind(this, 'shown'));\r\n node.addEventListener('hide.bs.collapse', this.dispatchEvent.bind(this, 'hide'));\r\n node.addEventListener('hidden.bs.collapse', this.dispatchEvent.bind(this, 'hidden'));\r\n\r\n node.addEventListener('shown.bs.collapse', this._shownHandler.bind(this));\r\n node.addEventListener('hidden.bs.collapse', this._hiddenHandler.bind(this));\r\n\r\n const options = { toggle: false };\r\n\r\n if (node.hasAttribute('data-bs-parent')) {\r\n options.parent = node.getAttribute('data-bs-parent');\r\n }\r\n\r\n this._instance = new bootstrap.Collapse(node, options);\r\n this._instance[this.props.show ? 'show' : 'hide']();\r\n },\r\n\r\n destroy () {\r\n this._instance.dispose();\r\n },\r\n\r\n performUpdate (updatedProps) {\r\n if (updatedProps.has('show')) {\r\n this._instance[this.props.show ? 'show' : 'hide']();\r\n this.set('collapsed', !this.props.show);\r\n }\r\n },\r\n\r\n _shownHandler () {\r\n this.set('collapsed', false);\r\n },\r\n\r\n _hiddenHandler () {\r\n this.set('collapsed', true);\r\n },\r\n\r\n});\r\n"]}
|
||||||
|
|
@ -10,10 +10,12 @@
|
||||||
|
|
||||||
console.log("LIBRARY: libProcessScript.js")
|
console.log("LIBRARY: libProcessScript.js")
|
||||||
|
|
||||||
//const path = FileSystemHandle.require('node:path')
|
|
||||||
|
|
||||||
let showLog = true;
|
|
||||||
const dd = createDebugLogger(showLog, "dd"); // code function at bottom of the page
|
|
||||||
|
|
||||||
|
|
||||||
|
const dd = createDebugLogger(true, "dd"); // code function at bottom of the page
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -61,12 +63,15 @@ async function updatePdfFields(
|
||||||
dataSources.forEach((dataSource) => {
|
dataSources.forEach((dataSource) => {
|
||||||
dataSource.forEach((record) => {
|
dataSource.forEach((record) => {
|
||||||
Object.entries(record).forEach(([fieldName, fieldValue]) => {
|
Object.entries(record).forEach(([fieldName, fieldValue]) => {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const formField = form.getTextField(fieldName);
|
const formField = form.getTextField(fieldName);
|
||||||
if (formField) {
|
if (formField) {
|
||||||
|
console.info(`Field "${fieldName}" OK`);
|
||||||
dd(fieldName, "-->", fieldValue);
|
dd(fieldName, "-->", fieldValue);
|
||||||
formField.setText(String(fieldValue));
|
formField.setText(String(fieldValue));
|
||||||
} else if (!skipMissingFields) {
|
} else if (!skipMissingFields) {
|
||||||
|
//dd(`Skipping Field: ${fieldName} NOT FOUND`)
|
||||||
console.warn(`Field "${fieldName}" not found.`);
|
console.warn(`Field "${fieldName}" not found.`);
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
@ -127,6 +132,8 @@ async function savePdfToFile(pdfBytes) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function createDebugLogger(debug, prefix = "DD") {
|
function createDebugLogger(debug, prefix = "DD") {
|
||||||
|
|
||||||
|
|
||||||
return function (message, ...optionalParams) {
|
return function (message, ...optionalParams) {
|
||||||
|
|
||||||
switch (debug) {
|
switch (debug) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
.timepicker {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
background: white;
|
||||||
|
max-height: 150px;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown div {
|
||||||
|
padding: 8px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown div:hover {
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
// JavaScript Document
|
||||||
|
|
||||||
|
const timeInput = document.getElementById('timeInput');
|
||||||
|
const dropdown = document.getElementById('timeDropdown');
|
||||||
|
const minuteInterval = 5 // Will interval of 5 min
|
||||||
|
|
||||||
|
timeInput.addEventListener('click', () => {
|
||||||
|
dropdown.innerHTML = ''; // Clear previous options
|
||||||
|
dropdown.style.display = 'block';
|
||||||
|
generateTimeOptions();
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('click', (e) => {
|
||||||
|
if (!e.target.closest('.timepicker')) {
|
||||||
|
dropdown.style.display = 'none';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function generateTimeOptions() {
|
||||||
|
for (let h = 0; h < 24; h++) {
|
||||||
|
for (let m = 0; m < 60; m += minuteInterval) {
|
||||||
|
const hour = h.toString().padStart(2, '0');
|
||||||
|
const minute = m.toString().padStart(2, '0');
|
||||||
|
const option = document.createElement('div');
|
||||||
|
option.textContent = `${hour}:${minute}`;
|
||||||
|
option.addEventListener('click', () => {
|
||||||
|
timeInput.value = `${hour}:${minute}`;
|
||||||
|
dropdown.style.display = 'none';
|
||||||
|
});
|
||||||
|
dropdown.appendChild(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
<!-- Wappler include fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="startPage" appconnect="local" components="{dmxBootstrap5Navigation:{}}" class="text-center" head-page="layouts/main" -->
|
<!-- Wappler include fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="startPage" appconnect="local" components="{dmxBootstrap5Navigation:{},dmxBootstrap5Collapse:{}}" class="text-center" head-page="layouts/main" -->
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row text-center">
|
<div class="row text-center">
|
||||||
<div class="offset-3 col-7 offset-xxl-1 col-xxl-10">
|
<div class="offset-3 col-7 offset-xxl-1 col-xxl-10">
|
||||||
<h1>Starting Point ...</h1>
|
<h1>Starting Point ...</h1>
|
||||||
<h2>Click on the icon below to begin.</h2>
|
<h2>Click on the icon below to begin.</h2>
|
||||||
|
|
||||||
<a href="/index0" internal="true"><img alt="image" class="img-fluid mt-5" src="/assets/images/Small-Start-Icon.jpg"></a>
|
<a href="/index0" internal="true"><img alt="image" class="img-fluid mt-5" src="/assets/images/start-here-image.jpg" width="250"></a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<meta name="ac:route" content="/">
|
<meta name="ac:route" content="/">
|
||||||
|
|
@ -42,8 +42,8 @@
|
||||||
}</script>
|
}</script>
|
||||||
<dmx-value id="signatureEncoded" dmx-bind:value="signatureDataEncoded"></dmx-value>
|
<dmx-value id="signatureEncoded" dmx-bind:value="signatureDataEncoded"></dmx-value>
|
||||||
<dmx-session-manager id="sessionStorage"></dmx-session-manager>
|
<dmx-session-manager id="sessionStorage"></dmx-session-manager>
|
||||||
<div is="dmx-pouchdb-detail" id="pouchdbdetail1" dmx-bind:docid="" db="dbCouch" collection="da"></div>
|
<div is="dmx-pouchdb-detail" id="pouchdbdetail1" dmx-bind:docid="" db="dbCouch" collection="db_training"></div>
|
||||||
<div is="dmx-pouchdb-view" id="pouchdbview1" db="dbCouch" collection="da"></div>
|
<div is="dmx-pouchdb-view" id="pouchdbview1" db="dbCouch" collection="db_training"></div>
|
||||||
<script is="dmx-flow" id="pouchInsert" type="text/dmx-flow" dmx-on:error="toasts1.showSimple({message: 'ERROR ON INSERT', type: 'danger'})">[
|
<script is="dmx-flow" id="pouchInsert" type="text/dmx-flow" dmx-on:error="toasts1.showSimple({message: 'ERROR ON INSERT', type: 'danger'})">[
|
||||||
{
|
{
|
||||||
pouchdb.insert: {
|
pouchdb.insert: {
|
||||||
|
|
@ -91,7 +91,7 @@
|
||||||
},
|
},
|
||||||
{table: "da", column: "dummy1", type: "text", value: "Dymmy Field"}
|
{table: "da", column: "dummy1", type: "text", value: "Dymmy Field"}
|
||||||
],
|
],
|
||||||
table: "da",
|
table: "db_training",
|
||||||
returning: "_id",
|
returning: "_id",
|
||||||
query: "",
|
query: "",
|
||||||
params: [
|
params: [
|
||||||
|
|
@ -401,7 +401,7 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row" id="daForm">
|
<div class="row" id="daForm">
|
||||||
|
|
||||||
<div class="col" id="userEntryForm">
|
<div class="col-6" id="userEntryForm">
|
||||||
<dmx-value id="insertID"></dmx-value>
|
<dmx-value id="insertID"></dmx-value>
|
||||||
<div class="container text-center">
|
<div class="container text-center">
|
||||||
|
|
||||||
|
|
@ -419,27 +419,27 @@
|
||||||
</div>
|
</div>
|
||||||
<form id="pouchconnectform1">
|
<form id="pouchconnectform1">
|
||||||
<div class="form-group mb-3 row">
|
<div class="form-group mb-3 row">
|
||||||
<label for="inp_db_fullName" class="col-sm-2 col-form-label">full name</label>
|
<label for="inp_db_fullName" class="col-sm-2 col-form-label">Full Name</label>
|
||||||
<div class="col-sm-9">
|
<div class="col-sm-9">
|
||||||
<input type="text" class="form-control" id="inp_db_fullName" name="db_fullName" aria-describedby="inp_db_fullName_help" placeholder="Enter full name" required="">
|
<input type="text" class="form-control" id="inp_db_fullName" name="db_fullName" aria-describedby="inp_db_fullName_help" placeholder="Enter full name" required="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mb-3 row">
|
<div class="form-group mb-3 row">
|
||||||
<label for="inp_db_licenseNumber" class="col-sm-2 col-form-label">license number</label>
|
<label for="inp_db_licenseNumber" class="col-sm-2 col-form-label">License #</label>
|
||||||
<div class="col-sm-9">
|
<div class="col-sm-7">
|
||||||
<input type="text" class="form-control" id="inp_db_licenseNumber" name="db_licenseNumber" aria-describedby="inp_db_licenseNumber_help" placeholder="Enter license number" required="">
|
<input type="text" class="form-control" id="inp_db_licenseNumber" name="db_licenseNumber" aria-describedby="inp_db_licenseNumber_help" placeholder="Enter license number" required="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mb-3 row">
|
<div class="form-group mb-3 row">
|
||||||
<label for="db_stateIssue" class="col-sm-2 col-form-label">state issue</label>
|
<label for="db_stateIssue" class="col-sm-2 col-form-label">State</label>
|
||||||
<div class="col-sm-9">
|
<div class="col-sm-6">
|
||||||
<select id="db_stateIssue" class="form-select" dmx-bind:options="stateJSON.data.states" optiontext="name" optionvalue="abbreviation" name="db_stateIssue" dmx-bind:value="selectedValue">
|
<select id="db_stateIssue" class="form-select" dmx-bind:options="stateJSON.data.states" optiontext="name" name="db_stateIssue" dmx-bind:value="selectedText" optionvalue="abbreviation">
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mb-3 row">
|
<div class="form-group mb-3 row">
|
||||||
<label for="select1" class="col-sm-2 col-form-label">Trainer</label>
|
<label for="select1" class="col-sm-2 col-form-label">Trainer</label>
|
||||||
<div class="col-9">
|
<div class="col-6">
|
||||||
<select id="select1" class="form-select" dmx-bind:options="trainerJSON.data.Trainer" name="db_employeeID" optiontext="Name" optionvalue="ID" dmx-bind:value="selectedValue">
|
<select id="select1" class="form-select" dmx-bind:options="trainerJSON.data.Trainer" name="db_employeeID" optiontext="Name" optionvalue="ID" dmx-bind:value="selectedValue">
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -451,7 +451,7 @@
|
||||||
<input type="text" class="form-control" id="inp_owner" name="owner" aria-describedby="inp_owner_help" placeholder="Date" dmx-bind:value="DateTimeNow.datetime.formatDate('MM-dd-yyyy')" readonly="true">
|
<input type="text" class="form-control" id="inp_owner" name="owner" aria-describedby="inp_owner_help" placeholder="Date" dmx-bind:value="DateTimeNow.datetime.formatDate('MM-dd-yyyy')" readonly="true">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mb-3 row">
|
<div class="form-group mb-3 row" dmx-show="toggleSignatureDataEncoded.checked">
|
||||||
<div class="col align-self-center">
|
<div class="col align-self-center">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6 offset-1">
|
<div class="col-6 offset-1">
|
||||||
|
|
@ -462,24 +462,31 @@
|
||||||
<div class="col-sm-9">
|
<div class="col-sm-9">
|
||||||
<textarea id="db_signatureData" class="form-control" name="db_signatureData" dmx-bind:value="signatureEncoded.value"></textarea>
|
<textarea id="db_signatureData" class="form-control" name="db_signatureData" dmx-bind:value="signatureEncoded.value"></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div><button id="btn1" class="btn btn-lg text-bg-primary text-warning fw-bold text-capitalize" data-bs-toggle="modal" data-bs-target="#SignatureModal1">Click to Sign</button><button id="btn5" class="btn btn-lg text-warning fw-bold text-capitalize text-bg-success ms-4" data-bs-target="#SignatureModal1" dmx-on:click="pouchInsert.run();modalsuccess.show()" dmx-bind:disabled="inp_db_fullName.value.isEmpty()||inp_db_licenseNumber.value.isEmpty()">Save Everything</button>
|
</div>
|
||||||
|
<div class="row justify-content-center border border-2">
|
||||||
|
<h4 dmx-hide="!pouchconnectform1.db_signatureData.value.isEmpty()" class="text-center">Waiting for signature</h4>
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
|
||||||
|
<img width="125" height="100" class="align-self-start bg-opacity-25 bg-light-subtle w-75" dmx-bind:data-srcset="" dmx-bind:data-src="pouchconnectform1.db_signatureData.value" dmx-bind:src="signatureEncoded.value" dmx-show="!pouchconnectform1.db_signatureData.value.isEmpty()" alt="SignatureCapture">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p></p>
|
||||||
|
<button id="btn1" class="btn btn-lg text-bg-primary text-warning fw-bold text-capitalize" data-bs-toggle="modal" data-bs-target="#SignatureModal1"><span style="font-weight: normal;">Sign</span></button><button id="btn5" class="btn btn-lg text-warning fw-bold text-capitalize text-bg-success ms-4" data-bs-target="#SignatureModal1" dmx-on:click="pouchInsert.run();modalsuccess.show()" dmx-bind:disabled="inp_db_fullName.value.isEmpty()||inp_db_licenseNumber.value.isEmpty()">Save </button>
|
||||||
<button id="btn6" class="btn" type="reset">reset</button>
|
<button id="btn6" class="btn" type="reset">reset</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="align-self-center col-5">
|
<div class="col-5 offset-1">
|
||||||
<h4 dmx-hide="!pouchconnectform1.db_signatureData.value.isEmpty()">Pending Signature Preview</h4>
|
|
||||||
<div class="row">
|
|
||||||
<img width="150" height="100" class="bg-warning-subtle" dmx-bind:data-srcset="" dmx-bind:data-src="pouchconnectform1.db_signatureData.value" dmx-bind:src="signatureEncoded.value" dmx-show="!pouchconnectform1.db_signatureData.value.isEmpty()">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="container" dmx-show="toggleRecordsTable.checked">
|
<div class="container" dmx-show="toggleSignatureDataEncoded.checked">
|
||||||
<table class="table table-striped table-sm">
|
<table class="table table-striped table-sm">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,12 @@
|
||||||
<link rel="stylesheet" href="/bootstrap/5/css/bootstrap.min.css" />
|
<link rel="stylesheet" href="/bootstrap/5/css/bootstrap.min.css" />
|
||||||
<link rel="stylesheet" href="/css/style.css" />
|
<link rel="stylesheet" href="/css/style.css" />
|
||||||
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
|
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js" integrity="sha256-CutOzxCRucUsn6C6TcEYsauvvYilEniTXldPa6/wu0k=" crossorigin="anonymous"></script>
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="/dmxAppConnect/dmxRouting/dmxRouting.js" defer></script>
|
<script src="/dmxAppConnect/dmxRouting/dmxRouting.js" defer></script>
|
||||||
<script src="/dmxAppConnect/dmxBootstrap5Navigation/dmxBootstrap5Navigation.js" defer></script>
|
<script src="/dmxAppConnect/dmxBootstrap5Navigation/dmxBootstrap5Navigation.js" defer></script>
|
||||||
<link rel="stylesheet" href="/dmxAppConnect/dmxAnimateCSS/animate.min.css" />
|
<link rel="stylesheet" href="/dmxAppConnect/dmxAnimateCSS/animate.min.css" />
|
||||||
|
|
@ -46,7 +51,7 @@
|
||||||
<script src="/dmxAppConnect/dmxS3Upload/dmxS3Upload.js" defer></script>
|
<script src="/dmxAppConnect/dmxS3Upload/dmxS3Upload.js" defer></script>
|
||||||
<link rel="stylesheet" href="/dmxAppConnect/dmxNotifications/dmxNotifications.css" />
|
<link rel="stylesheet" href="/dmxAppConnect/dmxNotifications/dmxNotifications.css" />
|
||||||
<script src="/dmxAppConnect/dmxNotifications/dmxNotifications.js" defer></script>
|
<script src="/dmxAppConnect/dmxNotifications/dmxNotifications.js" defer></script>
|
||||||
<link rel="stylesheet" href="/dmxAppConnect/dmxDatePicker/daterangepicker.min.css" />
|
|
||||||
<script src="/dmxAppConnect/dmxDatePicker/daterangepicker.min.js" defer></script>
|
<script src="/dmxAppConnect/dmxDatePicker/daterangepicker.min.js" defer></script>
|
||||||
<link rel="stylesheet" href="/dmxAppConnect/dmxDatePicker/dmxDatePicker.css" />
|
<link rel="stylesheet" href="/dmxAppConnect/dmxDatePicker/dmxDatePicker.css" />
|
||||||
<script src="/dmxAppConnect/dmxDatePicker/dmxDatePicker.js" defer></script>
|
<script src="/dmxAppConnect/dmxDatePicker/dmxDatePicker.js" defer></script>
|
||||||
|
|
@ -61,6 +66,8 @@
|
||||||
<script src="/dmxAppConnect/dmxLazyLoad/dmxLazyLoad.js" defer></script>
|
<script src="/dmxAppConnect/dmxLazyLoad/dmxLazyLoad.js" defer></script>
|
||||||
<script src="/dmxAppConnect/dmxLazyLoad/lazysizes.min.js" defer></script>
|
<script src="/dmxAppConnect/dmxLazyLoad/lazysizes.min.js" defer></script>
|
||||||
<script src="/dmxAppConnect/dmxBootstrap5Alert/dmxBootstrap5Alert.js" defer></script>
|
<script src="/dmxAppConnect/dmxBootstrap5Alert/dmxBootstrap5Alert.js" defer></script>
|
||||||
|
<script src="/dmxAppConnect/dmxBootstrap5Collapse/dmxBootstrap5Collapse.js" defer></script>
|
||||||
|
<link rel="stylesheet" href="/dmxAppConnect/dmxDatePicker/daterangepicker.min.css" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body is="dmx-app" id="main">
|
<body is="dmx-app" id="main">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,22 @@
|
||||||
<!-- Wappler include head-page="layouts/main" fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="observationPage" appConnect="local" components="{dmxBootstrap5TableGenerator:{},dmxMasonry:{},dmxFormatter:{},dmxBootstrap5Popovers:{},dmxBootstrap5Toasts:{},dmxDataTraversal:{},dmxStateManagement:{},dmxDatastore:{},dmxValidator:{},dmxBootstrap5Offcanvas:{},dmxBootstrap5Modal:{},dmxBootstrap5Navigation:{},dmxBootstrap5Tooltips:{},dmxBootbox5:{},dmxNotifications:{},dmxPouchDB:{},dmxBootstrap5Alert:{}}" -->
|
<!-- Wappler include head-page="layouts/main" fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="observationPage" appConnect="local" components="{dmxBootstrap5TableGenerator:{},dmxMasonry:{},dmxFormatter:{},dmxBootstrap5Popovers:{},dmxBootstrap5Toasts:{},dmxDataTraversal:{},dmxStateManagement:{},dmxDatastore:{},dmxValidator:{},dmxBootstrap5Offcanvas:{},dmxBootstrap5Modal:{},dmxBootstrap5Navigation:{},dmxBootstrap5Tooltips:{},dmxBootbox5:{},dmxNotifications:{},dmxPouchDB:{},dmxBootstrap5Alert:{},dmxBootstrap5Collapse:{},dmxDatePicker:{}}" jquery_slim_35="cdn" moment_2="cdn" -->
|
||||||
|
<script is="dmx-flow" id="minCalc" type="text/dmx-flow">{
|
||||||
|
runJS: {
|
||||||
|
name: "CalculateMinutes",
|
||||||
|
output: true,
|
||||||
|
outputType: "text",
|
||||||
|
function: "minutesBetween",
|
||||||
|
args: [
|
||||||
|
"{{saveObservationResults.form2.getStartTime.value}}",
|
||||||
|
"{{saveObservationResults.form2.getEndTime.value}}"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}</script>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-timepicker/1.9.1/jquery.timepicker.min.css" integrity="sha512-UimcIlYKETYXXjgBbgq45ZXCLXI+d1O43cZXVTdhtCYYGomJVM2Ahz+L19UEWBIH4f/A/qmlvCaOWiaNMcaw3w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-timepicker/1.9.1/jquery.timepicker.min.js" integrity="sha512-+UV/u4sqwTpgK0d4vvTjan+ofWGwgTX9VkhLPKbRIQSolA4L8JmtJRk2zkh7Pv9ZtBQELMQury9Qf5RSA40N5g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||||
|
|
||||||
|
<dmx-json-datasource id="dspListJson" is="dmx-serverconnect" url="/DSPlist.json"></dmx-json-datasource>
|
||||||
|
<dmx-value id="ertTemplatePath" dmx-bind:value="'/PDF/ertff_template_1.pdf'"></dmx-value>
|
||||||
<div class="modal" id="saveObservationResults" is="dmx-bs5-modal" tabindex="-1">
|
<div class="modal" id="saveObservationResults" is="dmx-bs5-modal" tabindex="-1">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
|
|
@ -16,12 +34,40 @@
|
||||||
<p>Modal body text goes here.</p>
|
<p>Modal body text goes here.</p>
|
||||||
<form id="form2">
|
<form id="form2">
|
||||||
<div class="form-group mb-3 row">
|
<div class="form-group mb-3 row">
|
||||||
<label for="input1" class="col-sm-2 col-form-label">FN</label>
|
<label for="input1" class="col-sm-2 col-form-label">Verify Name</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input type="text" class="form-control" id="input1" name="input1" aria-describedby="input1_help" placeholder="Full Name" dmx-bind:value="pouchdbdetail1.data.db_fullName">
|
<input type="text" class="form-control" id="input1" name="input1" aria-describedby="input1_help" placeholder="Full Name" dmx-bind:value="pouchdbdetail1.data.db_fullName">
|
||||||
<small id="input1_help" class="form-text text-muted">Your input is very valuable.</small>
|
<small id="input1_help" class="form-text text-muted">Verify this is the associate</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group mb-3 row">
|
||||||
|
<label for="input2" class="col-sm-2 col-form-label">Verify company</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" class="form-control" id="input2" name="input2" aria-describedby="input1_help1" dmx-bind:value="select2.selectedText">
|
||||||
|
<small id="input1_help1" class="form-text text-muted">Verify this is the company name</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group mb-3 row">
|
||||||
|
<label for="input2" class="col-sm-2 col-form-label">!</label>
|
||||||
|
<div class="text-center col-sm-3">
|
||||||
|
<label for="getStartTime">Start Time:</label>
|
||||||
|
|
||||||
|
<input type="time" id="getStartTime" name="getStartTime">
|
||||||
|
<br>
|
||||||
|
<small id="input1_help_starttime" class="form-text text-muted">Time you started the test.</small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="text-center col-sm-3">
|
||||||
|
<label for="getEndTime">End Time:</label>
|
||||||
|
|
||||||
|
<input type="time" id="getEndTime" name="getEndTime">
|
||||||
|
<br>
|
||||||
|
<small id="input1_help_endtime" class="form-text text-muted">Time you ended the test.</small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|
@ -31,8 +77,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div is="dmx-pouchdb-detail" id="pouchdbdetail1" dmx-bind:docid="select1.value" db="dbCouch" collection="da"></div>
|
<div is="dmx-pouchdb-detail" id="pouchdbdetail1" dmx-bind:docid="select1.value" db="dbCouch" collection="db_training"></div>
|
||||||
<div is="dmx-pouchdb-view" id="pouchdbview1" db="dbCouch" collection="da"></div>
|
<div is="dmx-pouchdb-view" id="pouchdbview1" db="dbCouch" collection="db_training"></div>
|
||||||
<dmx-pouchdb id="pouchdb1" db="dbCouch"></dmx-pouchdb>
|
<dmx-pouchdb id="pouchdb1" db="dbCouch"></dmx-pouchdb>
|
||||||
<dmx-notifications id="notifies1" closable="true" timeout="3000"></dmx-notifications>
|
<dmx-notifications id="notifies1" closable="true" timeout="3000"></dmx-notifications>
|
||||||
<dmx-serverconnect id="serverconnect_signature" url="/api/uploadSignature" noload="true"></dmx-serverconnect>
|
<dmx-serverconnect id="serverconnect_signature" url="/api/uploadSignature" noload="true"></dmx-serverconnect>
|
||||||
|
|
@ -91,7 +137,11 @@
|
||||||
output: true,
|
output: true,
|
||||||
outputType: "text",
|
outputType: "text",
|
||||||
function: "processAndDownloadPdf",
|
function: "processAndDownloadPdf",
|
||||||
args: ["/PDF/testpdf.pdf", "{{datastore1.data}}", "{{data_view1.data}}"]
|
args: [
|
||||||
|
"{{ertTemplatePath.value}}",
|
||||||
|
"{{datastore1.data}}",
|
||||||
|
"{{data_view1.data}}"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}</script>
|
}</script>
|
||||||
<div class="container" id="navContainer">
|
<div class="container" id="navContainer">
|
||||||
|
|
@ -103,10 +153,10 @@
|
||||||
<a class="nav-item nav-link placeholder-glow" data-bs-toggle="offcanvas" data-bs-target="#offcanvas1" internal="true">Settings</a>
|
<a class="nav-item nav-link placeholder-glow" data-bs-toggle="offcanvas" data-bs-target="#offcanvas1" internal="true">Settings</a>
|
||||||
<a class="nav-item nav-link" href="#" data-bs-toggle="modal" data-bs-target="#modal1">Print</a>
|
<a class="nav-item nav-link" href="#" data-bs-toggle="modal" data-bs-target="#modal1">Print</a>
|
||||||
<a class="nav-item nav-link" href="#" dmx-on:click="flowClearPoints.run()">Save</a>
|
<a class="nav-item nav-link" href="#" dmx-on:click="flowClearPoints.run()">Save</a>
|
||||||
<a class="nav-item nav-link" href="#" dmx-on:click="processPDF.run()" dmx-hide="datastore1.data.isEmpty()">ProcessPDF</a>
|
<a class="nav-item nav-link bg-success text-warning fw-bolder" href="#" dmx-hide="datastore1.data.isEmpty()" data-bs-toggle="modal" data-bs-target="#saveObservationResults">Print PDF</a>
|
||||||
<div class="nav-item dropdown"><a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" id="dropdown1" role="button" aria-haspopup="true" aria-expanded="false">Options</a>
|
<div class="nav-item dropdown"><a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" id="dropdown1" role="button" aria-haspopup="true" aria-expanded="false">Options</a>
|
||||||
<div class="dropdown-menu" aria-labelledby="dropdown1">
|
<div class="dropdown-menu" aria-labelledby="dropdown1">
|
||||||
<a class="dropdown-item" href="#">Modal Test </a>
|
<a class="dropdown-item" href="/index0" internal="true">Home</a>
|
||||||
<a class="dropdown-item" href="#">Another action</a>
|
<a class="dropdown-item" href="#">Another action</a>
|
||||||
<a class="dropdown-item" href="#">Something else here</a>
|
<a class="dropdown-item" href="#">Something else here</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -200,6 +250,8 @@
|
||||||
|
|
||||||
<select id="select1" class="form-select" optiontext="db_fullName.concat(' ').concat(_id)" optionvalue="_id" dmx-bind:disabled="datastore1.data.hasItems()" dmx-bind:options="pouchdbview1.data">
|
<select id="select1" class="form-select" optiontext="db_fullName.concat(' ').concat(_id)" optionvalue="_id" dmx-bind:disabled="datastore1.data.hasItems()" dmx-bind:options="pouchdbview1.data">
|
||||||
</select>
|
</select>
|
||||||
|
<select id="select2" class="form-select" dmx-bind:options="dspListJson.data.DSPCompanies" optiontext="dspName.titlecase()" optionvalue="dspShortCode" dmx-bind:value="selectedValue" name="getDSPShortCode">
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -234,7 +286,7 @@
|
||||||
</div>
|
</div>
|
||||||
<p>status messages: {{select1.value}}</p>
|
<p>status messages: {{select1.value}}</p>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<button id="btn2" class="btn bg-warning" data-bs-toggle="modal" data-bs-target="#saveObservationResults">Save ERT test results</button>
|
<button id="btn2" class="btn bg-warning" data-bs-toggle="modal" data-bs-target="#saveObservationResults">Finalize & Print PDF Results</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
|
|
@ -242,6 +294,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
<input id="text3" name="text3" type="text" class="form-control" is="dmx-date-picker" showdropdowns="true" timepicker="" minutes-increment="5">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -369,6 +422,35 @@
|
||||||
<script src="/PDF/dummyFunctions.js"></script>
|
<script src="/PDF/dummyFunctions.js"></script>
|
||||||
<script src="https://unpkg.com/pdf-lib/dist/pdf-lib.min.js"></script>
|
<script src="https://unpkg.com/pdf-lib/dist/pdf-lib.min.js"></script>
|
||||||
<script src="/js/libProcessScript.js"></script>
|
<script src="/js/libProcessScript.js"></script>
|
||||||
|
|
||||||
|
<!-- Popperjs -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha256-BRqBN7dYgABqtY9Hd4ynE+1slnEw+roEPFzQ7TRRfcg=" crossorigin="anonymous"></script>
|
||||||
|
<!-- Tempus Dominus JavaScript -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/@eonasdan/tempus-dominus@6.9.4/dist/js/tempus-dominus.min.js" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
|
<!-- Tempus Dominus Styles -->
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@eonasdan/tempus-dominus@6.9.4/dist/css/tempus-dominus.min.css" crossorigin="anonymous">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<script>
|
||||||
|
var firstOpen = true;
|
||||||
|
var time;
|
||||||
|
$('#timePicker').datetimepicker({
|
||||||
|
datepicker:false,
|
||||||
|
useCurrent: false,
|
||||||
|
format: "hh:mm A"
|
||||||
|
}).on('dp.show', function() {
|
||||||
|
if(firstOpen) {
|
||||||
|
time = moment().startOf('day');
|
||||||
|
firstOpen = false;
|
||||||
|
} else {
|
||||||
|
time = "01:00 PM"
|
||||||
|
}
|
||||||
|
$(this).data('DateTimePicker').date(time);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
<!--
|
<!--
|
||||||
<script src="/PDF/pdfLibSignature.js"></script>
|
<script src="/PDF/pdfLibSignature.js"></script>
|
||||||
-->
|
-->
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
<a class="btn btn-primary" href="/">Return home</a>
|
<a class="btn btn-primary" href="/">Return home</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button id="btn1" class="btn" onclick="infoCouchDB()">Button</button>
|
|
||||||
</div>
|
</div>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/pouchdb@9.0.0/dist/pouchdb.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/pouchdb@9.0.0/dist/pouchdb.min.js"></script>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue