Switching to MYSQL 8

Removing Couch and PouchDB
This commit is contained in:
Wappler 2025-01-05 22:04:42 -06:00
parent f209ad162c
commit 197d77cd65
62 changed files with 602 additions and 20654 deletions

View File

@ -0,0 +1,23 @@
exports.up = function(knex) {
return knex.schema
.createTable('da', async function (table) {
table.increments('id');
table.string('DSPShortCode');
table.string('ertDriveDate');
table.string('db_fullName');
table.string('db_employeeID');
table.string('getStartTime');
table.string('getEndTime');
table.string('db_TrainerSelected');
table.string('getStationCode');
table.string('db_licenseNumber');
table.string('db_state');
})
};
exports.down = function(knex) {
return knex.schema
.dropTable('da')
};

View File

@ -35,14 +35,17 @@
"webServer": "node",
"NodeVersion": "lts",
"NodeOS": "alpine",
"NodeImageType": "slim",
"webLoggingMaxFiles": "5",
"webLoggingMaxFileSize": "10m",
"dockerTimezone": "Etc/UTC",
"databaseConnectionType": "sqlite",
"sqliteDbFile": "/public/ERTSQlite.db",
"databaseLoggingMaxFiles": "5",
"databaseLoggingMaxFileSize": "10m"
"databaseConnectionType": "custom",
"databaseType": "mysql",
"db_host": "localhost",
"db_port": "9910",
"db_user": "root",
"db_password": "m4U9O3LOTVWK8SZR",
"db_database": "db_training",
"NodeImageType": "slim"
},
{
"name": "DO-ertfastfiller-sfo3",
@ -92,21 +95,6 @@
"provider-api-key": "dop_v1_30020b3307543b83214257a1774d41737f98a20e4d8e8ec49ba7c99ac2e32968",
"ssh-key-id": 44250508,
"ssh-key-file": "/.wappler/.ssh/ertfastfiller_ed25519.pub",
"ssh_key": {
"ertfastfiller_ed25519": {
"id": 44250508,
"ssh-key-file": "/.wappler/.ssh/ertfastfiller_ed25519.pub",
"fingerprint": "64:50:e4:41:ed:26:78:df:fb:27:4a:cf:a7:58:02:2a",
"type": "ed25519",
"name": "ertfastfiller_ed25519"
},
"ertfastfiller_rsa": {
"id": 44250710,
"fingerprint": "9f:0e:25:d8:10:fc:e5:d4:94:38:92:74:8a:81:cd:16",
"ssh-key-file": "/.wappler/.ssh/ertfastfiller_rsa.pub",
"type": "rsa"
}
},
"server": {
"ertfastfiller-sfo3": {
"id": 461271335,

View File

@ -1,5 +1,11 @@
FROM node:lts-alpine
RUN apk --no-cache add fontconfig
COPY ./fonts /usr/shared/fonts
COPY ./fonts /usr/share/fonts/truetype
# refresh system font cache
RUN fc-cache -f -v
ARG NODE_ENV=production
ENV NODE_ENV $NODE_ENV

View File

@ -3,13 +3,13 @@
"module": "dbconnector",
"action": "connect",
"options": {
"client": "sqlite3",
"client": "mysql2",
"connection": {
"filename": "/public/ERTSQlite.db"
},
"meta": {}
},
"actionFilePath": "file:///Z:/temp/ERTFastFiller/app/modules/connections/DB.json",
"serverType": "node",
"fileName": "db.json"
"host": "localhost",
"port": 9910,
"user": "root",
"password": "m4U9O3LOTVWK8SZR",
"database": "db_training"
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "MyDB",
"module": "dbconnector",
"action": "connect",
"options": {
"client": "mysql2",
"connection": {
"host": "host.docker.internal",
"port": 9910,
"user": "training",
"password": "3qx02yqcNDOuQZUC",
"database": "db_training"
},
"tz": "utc"
},
"fileName": "MyDB.json"
}

View File

@ -1,8 +1,12 @@
{
"direct": true,
"type": "sqlite3",
"type": "mysql2",
"connection": {
"filename": "/public/ERTSQlite.db"
"host": "localhost",
"port": 9910,
"user": "root",
"password": "m4U9O3LOTVWK8SZR",
"database": "db_training"
},
"schema": {
"tables": {

View File

@ -0,0 +1,466 @@
{
"type": "mysql2",
"connection": {
"host": "host.docker.internal",
"port": 9910,
"user": "training",
"password": "3qx02yqcNDOuQZUC",
"database": "db_training"
},
"direct": true,
"schema": {
"tables": {
"da": {
"columns": {
"id": {
"db": {
"type": "increments",
"primary": true,
"nullable": false
}
},
"DSPShortCode": {
"db": {
"type": "string",
"maxLength": 255,
"primary": false,
"nullable": true
}
},
"ertDriveDate": {
"db": {
"type": "string",
"maxLength": 255,
"primary": false,
"nullable": true
}
},
"db_fullName": {
"db": {
"type": "string",
"maxLength": 255,
"primary": false,
"nullable": true
}
},
"db_employeeID": {
"db": {
"type": "string",
"maxLength": 255,
"primary": false,
"nullable": true
}
},
"getStartTime": {
"db": {
"type": "string",
"maxLength": 255,
"primary": false,
"nullable": true
}
},
"getEndTime": {
"db": {
"type": "string",
"maxLength": 255,
"primary": false,
"nullable": true
}
},
"db_TrainerSelected": {
"db": {
"type": "string",
"maxLength": 255,
"primary": false,
"nullable": true
}
},
"getStationCode": {
"db": {
"type": "string",
"maxLength": 255,
"primary": false,
"nullable": true
}
},
"db_licenseNumber": {
"db": {
"type": "string",
"maxLength": 255,
"primary": false,
"nullable": true
}
},
"db_state": {
"db": {
"type": "string",
"maxLength": 255,
"primary": false,
"nullable": true
}
}
},
"db": {}
}
},
"views": {},
"collations": [
{
"collation": "utf8mb4_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_0900_as_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_0900_bin",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_bg_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_bg_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_bin",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_bs_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_bs_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_croatian_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_cs_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_cs_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_czech_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_danish_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_da_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_da_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_de_pb_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_de_pb_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_eo_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_eo_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_esperanto_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_estonian_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_es_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_es_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_es_trad_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_es_trad_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_et_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_et_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_general_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_german2_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_gl_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_gl_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_hr_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_hr_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_hungarian_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_hu_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_hu_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_icelandic_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_is_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_is_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_ja_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_ja_0900_as_cs_ks",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_latvian_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_la_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_la_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_lithuanian_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_lt_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_lt_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_lv_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_lv_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_mn_cyrl_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_mn_cyrl_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_nb_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_nb_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_nn_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_nn_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_persian_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_pl_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_pl_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_polish_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_romanian_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_roman_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_ro_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_ro_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_ru_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_ru_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_sinhala_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_sk_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_sk_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_slovak_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_slovenian_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_sl_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_sl_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_spanish2_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_spanish_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_sr_latn_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_sr_latn_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_sv_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_sv_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_swedish_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_tr_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_tr_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_turkish_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_unicode_520_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_unicode_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_vietnamese_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_vi_0900_ai_ci",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_vi_0900_as_cs",
"charset": "utf8mb4"
},
{
"collation": "utf8mb4_zh_0900_as_cs",
"charset": "utf8mb4"
}
]
}
}

View File

@ -32,7 +32,7 @@
"type": "text"
},
{
"name": "db_stateName",
"name": "db_state",
"type": "text"
},
{
@ -42,6 +42,14 @@
{
"name": "dummy1",
"type": "text"
},
{
"name": "ertDriveDate",
"type": "text"
},
{
"name": "db_fullName",
"type": "text"
}
]
}

View File

@ -3,13 +3,13 @@
"module": "dbconnector",
"action": "connect",
"options": {
"client": "sqlite3",
"client": "mysql2",
"connection": {
"filename": "/public/ERTSQlite.db"
},
"meta": {}
},
"actionFilePath": "file:///Z:/temp/ERTFastFiller/app/modules/connections/DB.json",
"serverType": "node",
"fileName": "db.json"
"host": "localhost",
"port": 9910,
"user": "root",
"password": "m4U9O3LOTVWK8SZR",
"database": "db_training"
}
}
}

View File

@ -0,0 +1,17 @@
{
"name": "MyDB",
"module": "dbconnector",
"action": "connect",
"options": {
"client": "mysql2",
"connection": {
"host": "host.docker.internal",
"port": 9910,
"user": "training",
"password": "3qx02yqcNDOuQZUC",
"database": "db_training"
},
"tz": "utc"
},
"fileName": "MyDB.json"
}

View File

@ -45,7 +45,8 @@
"unzipper": "^0.12.1",
"uuid": "^10.0.0",
"sharp": "^0.32.6",
"nano": "^10.1.0"
"nano": "^10.1.0",
"mysql2": "^3.6.5"
},
"nodemonConfig": {
"watch": [

View File

@ -4,10 +4,6 @@
"dspShortCode": "ABHM",
"dspName": "Abraham"
},
{
"dspShortCode": "CNSL",
"dspName": "CNS Logistics"
},
{
"dspShortCode": "RBBT",
"dspName": "Ready Rabbit"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

View File

@ -99,7 +99,7 @@ async function updatePdfFields(
const rKey = numSection
const rValue = pointValue
//const pointValue = record.pointValue || record.Points; // Fallback to Points if pointValue is missing
console.log(`[numSection 2 key ==>] ${rKey},${rValue}`)
console.log(`[numSection 2 key ==>] ${rKey} --> ${rValue}`)
if (numSection && pointValue) {
console.log(`Updating PDF field: ${numSection} with value: ${pointValue}`);

View File

@ -1,4 +1,5 @@
<!-- 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: {
name: "pouchSignatureData",
@ -401,7 +402,7 @@
<div class="container">
<div class="row" id="daForm">
<div class="col-6" id="userEntryForm">
<div class="col-12" id="userEntryForm">
<dmx-value id="insertID"></dmx-value>
<div class="container text-center">
@ -419,38 +420,47 @@
</div>
<form id="pouchconnectform1">
<div class="form-group mb-3 row">
<label for="inp_db_fullName" class="col-sm-2 col-form-label">Full Name</label>
<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="">
<label for="inp_ertDriveDate" class="col-sm-2 col-form-label">Date</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="inp_ertDriveDate" name="ertDriveDate" placeholder="Date" dmx-bind:value="DateTimeNow.datetime.formatDate('MM-dd-yyyy')" readonly="true">
</div>
</div>
<div class="form-group mb-3 row">
<label for="inp_owner1" class="col-sm-2 col-form-label">Company Name</label>
<div class="col-sm-3">
<select id="inp_db_dspShortCode" class="form-select" dmx-bind:options="dspListJson.data.DSPCompanies" optionvalue="dspShortCode" optiontext="dspName.titlecase()" name="dspShortCode" dmx-bind:value="selectedValue">
</select>
</div>
</div>
<div class="form-group mb-3 row">
<label for="inp_db_fullName" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="inp_db_fullName" name="db_fullName" aria-describedby="inp_db_fullName_help" placeholder="First and Last name" required="">
</div>
</div>
<div class="form-group mb-3 row">
<label for="inp_db_licenseNumber" class="col-sm-2 col-form-label">License #</label>
<div class="col-sm-7">
<div class="col-sm-4">
<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 class="form-group mb-3 row">
<label for="db_stateIssue" class="col-sm-2 col-form-label">State</label>
<div class="col-sm-6">
<select id="db_stateIssue" class="form-select" dmx-bind:options="stateJSON.data.states" optiontext="name" name="db_stateIssue" dmx-bind:value="selectedText" optionvalue="abbreviation">
<label for="inp_db_stateIssue" class="col-sm-2 col-form-label">State</label>
<div class="col-sm-3">
<select id="inp_db_stateIssue" class="form-select" dmx-bind:options="stateJSON.data.states" optiontext="name" name="db_stateIssue" dmx-bind:value="selectedValue" optionvalue="abbreviation">
</select>
</div>
</div>
<div class="form-group mb-3 row">
<label for="select1" class="col-sm-2 col-form-label">Trainer</label>
<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">
<label for="inp_db_trainerSelected" class="col-sm-2 col-form-label">Trainer</label>
<div class="col-3">
<select id="inp_db_trainerSelected" class="form-select" dmx-bind:options="trainerJSON.data.Trainer" name="db_trainerSelected" optiontext="Name" optionvalue="ID" dmx-bind:value="selectedValue">
</select>
</div>
</div>
<div class="form-group mb-3 row">
<label for="inp_owner" class="col-sm-2 col-form-label">Date</label>
<div class="col-sm-5">
<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 class="form-group mb-3 row" dmx-show="toggleSignatureDataEncoded.checked">
<div class="col align-self-center">
<div class="row">
@ -478,10 +488,6 @@
</div>
</div>
<div class="col-5 offset-1">
</div>
</div>

View File

@ -1,4 +1,5 @@
<!-- 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" -->
<div is="dmx-pouchdb-detail" id="pouchdbdetail2" dmx-bind:docid="select1.value" db="dbCouch" collection="db_training"></div>
<dmx-data-view id="data_view2" dmx-bind:data="datastore1.data" filter="!numSection.isEmpty()&amp;&amp;!pointValue.isEmpty()"></dmx-data-view>
<dmx-datastore id="datastore1"></dmx-datastore>
@ -69,6 +70,7 @@
</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="db_training"></div>
<div is="dmx-pouchdb-view" id="pouchdbview2" db="dbCouch" collection="db_training" filter="_id==select1.value"></div>
<dmx-pouchdb id="pouchdb1" db="dbCouch"></dmx-pouchdb>
<dmx-notifications id="notifies1" closable="true" timeout="3000"></dmx-notifications>
<dmx-serverconnect id="serverconnect_signature" url="/api/uploadSignature" noload="true"></dmx-serverconnect>
@ -233,7 +235,7 @@
<div class="row">
<div class="col-3 align-self-center">
<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" optionvalue="_id" dmx-bind:disabled="datastore1.data.hasItems()" dmx-bind:options="pouchdbview1.data" dmx-on:changed="toasts1.showSimple({message: selectedValue, delay: 2000});pouchdbdetail2.select(selectedValue)">
</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>