WORKS: Moved datastore.toJSON field and select1.value to own <form> scoreDataForm and implemented POST. - These fields will be hidden in the future.

This commit is contained in:
Wappler 2025-01-12 22:27:15 -06:00
parent 9fcd9bf2dd
commit 80c555dca3
9 changed files with 46 additions and 120 deletions

View File

@ -0,0 +1,4 @@
{
"debug": true,
"secret": "vbCzCaQRPaHdgxr"
}

View File

@ -2,11 +2,11 @@
"meta": {
"$_POST": [
{
"type": "text",
"name": "obj_dataStore"
"type": "object",
"name": "obj_datastore"
},
{
"type": "number",
"type": "text",
"name": "id"
}
]
@ -25,7 +25,7 @@
"table": "da",
"column": "obj_dataStore",
"type": "text",
"value": "{{$_POST.obj_dataStore}}"
"value": "{{$_POST.obj_datastore}}"
}
],
"table": "da",
@ -34,6 +34,7 @@
"rules": [
{
"id": "id",
"field": "id",
"type": "double",
"operator": "equal",
"value": "{{$_POST.id}}",
@ -42,7 +43,9 @@
},
"operation": "="
}
]
],
"conditional": null,
"valid": true
},
"returning": "id",
"query": "update `da` set `obj_dataStore` = ? where `id` = ?",
@ -50,7 +53,7 @@
{
"name": ":P1",
"type": "expression",
"value": "{{$_POST.obj_dataStore}}",
"value": "{{$_POST.obj_datastore}}",
"test": ""
},
{
@ -68,7 +71,8 @@
"name": "affected",
"type": "number"
}
]
],
"output": true
}
}
}

4
app/config/config.json Normal file
View File

@ -0,0 +1,4 @@
{
"debug": true,
"secret": "vbCzCaQRPaHdgxr"
}

View File

@ -60,6 +60,10 @@
"path": "/success",
"page": "success",
"layout": "main"
},
{
"path": "/docuSeal",
"page": "docuSeal"
}
]
}

View File

@ -1,107 +0,0 @@
dmx.config({
"observationPage": {
"GradingDatastore": [
{
"type": "text",
"name": "$id"
},
{
"type": "text",
"name": "numSection"
},
{
"type": "text",
"name": "pointValue"
},
{
"type": "text",
"name": "description"
}
],
"datastore1": [
{
"type": "text",
"name": "numSection"
},
{
"type": "text",
"name": "pointValue"
},
{
"type": "text",
"name": "description"
}
],
"processPDF": {
"meta": [
{
"name": "PDFprocess",
"type": "text"
}
],
"local": {}
},
"data_view2": {
"meta": [
{
"name": "$id",
"type": "number"
},
{
"type": "text",
"name": "numSection"
},
{
"type": "text",
"name": "pointValue"
},
{
"type": "text",
"name": "description"
}
],
"outputType": "array"
},
"data_view1": {
"meta": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "dspShortCode"
},
{
"type": "text",
"name": "ertDriveDate"
},
{
"type": "text",
"name": "db_fullName"
},
{
"type": "text",
"name": "db_trainerSelected"
},
{
"type": "text",
"name": "db_licenseNumber"
},
{
"type": "text",
"name": "db_state"
},
{
"type": "text",
"name": "db_signatureData"
}
],
"outputType": "array"
},
"arr1": {
"meta": null,
"outputType": "text"
}
}
});

View File

@ -38,5 +38,9 @@
"success.ejs": {
"layoutPage": "main",
"description": ""
},
"docuSeal.ejs": {
"layoutPage": "",
"description": "Signing thingie"
}
}

6
views/docuSeal.ejs Normal file
View File

@ -0,0 +1,6 @@
<!-- Wappler include fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="docuSeal" appConnect="local" -->
<meta name="ac:route" content="/docuSeal">
<script src="https://cdn.docuseal.com/js/form.js"></script>
<docuseal-form data-src="https://docuseal.com/d/XiQC7wUf15A8cn"></docuseal-form>

View File

@ -1,4 +1,7 @@
<!-- Wappler include head-page="layouts/main" fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="index" appConnect="local" components="{dmxBootstrap5Navigation:{},dmxAnimateCSS:{},dmxStateManagement:{},dmxDatastore:{},dmxBootstrap5Modal:{},dmxFormatter:{},dmxBootstrap5TableGenerator:{},dmxBootstrap5Toasts:{},dmxBootbox5:{},dmxBrowser:{},dmxBootstrap5Tooltips:{},dmxValidator:{},dmxS3Upload:{},dmxDatePicker:{},dmxMasonry:{},dmxBootstrap5Popovers:{},dmxPouchDB:{},dmxLazyLoad:{}}" jquery_slim_35="cdn" moment_2="cdn" -->
<dmx-json-datasource id="dspListJson" is="dmx-serverconnect" url="/DSPlist.json"></dmx-json-datasource>
<script is="dmx-flow" id="pouchSignatureDataByID" type="text/dmx-flow">{
pouchdb.single: {
@ -412,7 +415,7 @@
</div>
</div>
<div class="row">
<p>*All fields are required</p>
<p>*All fields are required&nbsp;</p>
<!--
<form is="dmx-serverconnect-form" id="serverconnectform1" method="post" action="/api/insert" dmx-generator="bootstrap5" dmx-form-type="horizontal" dmx-on:done="DBSC1.load({})" dmx-on:success="insertID.setValue(serverconnectform1.data.insert.identity);toasts1.showSimple({message: 'Save successful', delay: 2500, type: 'success'});cookies1.set('userIdentifier',serverconnectform1.data.insert.identity,{})" dmx-on:submit="SignatureModal1.hide()">
</form>

View File

@ -1,5 +1,6 @@
<!-- 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:{}}" jquery_slim_35="cdn" moment_2="cdn" -->
<dmx-serverconnect id="serverconnect2" url="/api/myInsertMeta" noload="true" dmx-param:obj_datastore="datastore1.data" dmx-param:da_id="select1.value"></dmx-serverconnect>
<dmx-value id="var2" dmx-bind:value="JSON.stringify(datastore1.data)"></dmx-value>
<dmx-serverconnect id="serverconnect2" url="/api/myRecordUpdateByID" noload="true" dmx-param:obj_datastore="datastore1.data.toJSON()" dmx-param:da_id="select1.value" dmx-on:error="notifies1.danger('ERROR: '+lastError.message+' Status'+lastError.status)" dmx-param:id="select1.value" dmx-on:success="notifies1.success('Updated '+serverconnect2.data.MyRecordUpdate.affected+' row')"></dmx-serverconnect>
<dmx-array id="db_observationsArray"></dmx-array>
<dmx-serverconnect id="MyserverconnectQuery" url="/api/myQuery"></dmx-serverconnect>
<dmx-data-view id="data_view2" dmx-bind:data="datastore1.data" filter="!numSection.isEmpty()&amp;&amp;!pointValue.isEmpty()"></dmx-data-view>
@ -261,18 +262,21 @@
</div>
</div>
<div class="row">
<div class="col">
<div class="col-3">
<form id="scoreDataForm" method="post" action="/api/myRecordUpdateByID" dmx-on:submit="toasts1.showSimple({message: 'Grades Submitted'})" is="dmx-serverconnect-form">
<textarea id="scoreData" data-vis="true" class="form-control" dmx-bind:value="datastore1.data.toJSON()" name="obj_datastore"></textarea><input id="scoreID" name="id" type="text" class="form-control" dmx-bind:value="select1.value">
</form>
<p>status messages: {{select1.value}}</p>
<div class="row">
<button id="btn2" class="btn bg-warning" data-bs-toggle="modal" data-bs-target="#saveObservationResults">Finalize &amp; Print PDF Results</button>
<button id="btn2" class="btn bg-warning" data-bs-target="#saveObservationResults" dmx-on:click="scoreDataForm.submit()">Finalize&nbsp;</button>
</div>
</div>
<div class="col">
<div class="col offset-2">
<a><img width="450" height="125" dmx-bind:src="data_view1.data[0].db_signatureData"></a>
</div>
</div>
<div class="row">
<textarea id="text2" data-vis="true" class="form-control" dmx-bind:value="datastore1.data.toJSON()" dmx-show="offcanvas1.showDebugViews.checked"></textarea>
</div>
</div>