diff --git a/public/ERTSQlite.db b/public/ERTSQlite.db index b55d7c6..44049ac 100644 Binary files a/public/ERTSQlite.db and b/public/ERTSQlite.db differ diff --git a/public/dmxAppConnect/dmxBootbox5/bootstrap-modbox.min.js b/public/dmxAppConnect/dmxBootbox5/bootstrap-modbox.min.js new file mode 100644 index 0000000..696cc7d --- /dev/null +++ b/public/dmxAppConnect/dmxBootbox5/bootstrap-modbox.min.js @@ -0,0 +1,57 @@ +/* + * bootstrap-modbox + * Native JavaScript wrapper for simple Bootstrap 5 modals. Provides support for alert, confirm, and prompt modals, as well as advanced custom dialogs. + * + * version: 1.6.2 + * author: Eric Robertson + * license: MIT + * + * https://erobertson42.github.io/bootstrap-modbox/ + */ + +class modbox{static version="1.6.2";#options;#modal;#modalEl;#footer;static#bootstrapModal;static#defaultOptions={icon:null,style:"white",titleStyle:null,title:"Information",body:"",message:"",size:null,center:!1,fade:!0,show:!1,relatedTarget:void 0,scrollable:!0,destroyOnClose:!1,defaultButton:!0,swapButtonOrder:!1,justifyButtons:null,showHeaderClose:!0,events:{},buttons:[],okButton:{label:"OK",style:"primary"},closeButton:{label:"Close",style:"secondary"},input:{type:"text",class:"",value:"",title:null,placeholder:null,autocomplete:"off",minlength:null,maxlength:null,pattern:null,required:!1,sanitizer:!1},sanitizer:modbox.#sanitizeString};static#defaultButtonOptions={label:"Close",style:"secondary",class:"",outline:!1,size:null,icon:null,title:null,disabled:!1,close:!0,callback:null};static#modalDefaults={alert:{title:"Alert"},info:{style:"info",title:"Information"},success:{style:"success",title:"Success"},warning:{style:"warning",title:"Warning"},danger:{style:"danger",title:"Error"},confirm:{title:"Confirm"},prompt:{title:"Prompt",input:{id:modbox.#getUID("modbox-input-")}}};static#getUID(t="modbox-"){return t+Date.now()+Math.floor(1e4*Math.random())}static#typeof(t){return"object"==typeof t?Object.prototype.toString.call(t).slice(8,-1).toLowerCase():typeof t}static#deepMerge(i,s){const n={...i,...s};return Object.keys(n).forEach(t=>{var o=i[t],e=s[t];"object"===modbox.#typeof(o)&&"object"===modbox.#typeof(e)&&(n[t]=modbox.#deepMerge(o,e))}),n}static#checkUserOptions(t){return"string"==typeof t?{body:t}:t}static#mergeModalOptions(t,o={}){return modbox.#deepMerge(modbox.#deepMerge(modbox.#defaultOptions,modbox.#modalDefaults[t]),modbox.#checkUserOptions(o))}static#sanitizeString(t=""){return t}static#buildPromiseModal(a={},d="alert"){return a={...a,destroyOnClose:!0,defaultButton:!1,buttons:[]},new Promise((s,t)=>{const n=new modbox(a),o=[a.closeButton];if(["confirm","prompt"].includes(d)){let i=()=>s();if("prompt"===d&&"object"===modbox.#typeof(a.input)){let e=!1;(!0===a.input.required||"number"==typeof a.input.minlength||"string"==typeof a.input.pattern&&a.input.pattern.length)&&(a.okButton.close=!1,e=!0),i=()=>{const t=n.modalEl.querySelector(`#${a.input.id}`);if(!0!==e||t.reportValidity()){const o="function"==typeof n.options.input.sanitizer?n.options.input.sanitizer:!0===n.options.input.sanitizer?n.options.sanitizer:modbox.#sanitizeString;s(o(t.value)),n.hide()}}}o.unshift({...a.okButton,callback:function(t,o){"function"==typeof a.okButton.callback&&a.okButton.callback.call(this,t,o),(null!=t.defaultPrevented?t.defaultPrevented:!1===t.returnValue)||i()}})}const[e]=o.map(t=>n.addButton(t));"prompt"===d&&"object"===modbox.#typeof(a.input)&&n.modalEl.querySelector(`#${a.input.id}`).addEventListener("keyup",t=>{"Enter"===t.key&&e.click()}),n.addEvent("hidden",()=>{"alert"===d?s():["confirm","prompt"].includes(d)&&document.activeElement!==e&&t()}),n.show()})}#buildModal(){var t=["primary","secondary","success","danger","dark","body"].includes(this.#options.style),o=this.#options.titleStyle||(t?"white":"dark"),t=`btn-close ${t?"btn-close-white":""}`;modbox.container.insertAdjacentHTML("beforeend",this.#options.sanitizer(` + + `.trim())),this.#modalEl=modbox.container.querySelector(`#${this.#options.id}`),this.#footer=this.#modalEl.querySelector(".modal-footer"),this.#addButtons()}#addButtons(){Array.isArray(this.#options.buttons)||(this.#options.buttons=[]),0===this.#options.buttons.length&&!0===this.#options.defaultButton?this.#options.buttons=[modbox.#defaultButtonOptions]:this.#footer.classList.add("d-none"),this.#options.buttons.forEach(t=>this.addButton(t))}#addEvents(){Object.entries(this.#options.events).forEach(([t,o])=>{this.addEvent(t,o)}),!0===this.#options.destroyOnClose&&this.addEvent("hidden",()=>this.destroy())}constructor(t={}){if(!modbox.#bootstrapModal){if("object"!=typeof bootstrap)throw new Error('The "modbox.bootstrapModal" property is undefined. If importing Bootstrap as an ES module, you must also manually set this property. See the modbox README/docs for more info.');modbox.#bootstrapModal=bootstrap.Modal}if(modbox.#defaultOptions={...modbox.#bootstrapModal.Default,...modbox.#defaultOptions},this.#options={...modbox.#defaultOptions,id:modbox.#getUID(),...modbox.#checkUserOptions(t)},"string"!=typeof this.#options.body||!this.#options.body.length){if("string"!=typeof this.#options.message||!this.#options.message.length)throw new Error('The "body" or "message" configuration option is required (string).');this.#options.body=this.#options.message}var o,e;this.#buildModal(),this.#modal=new modbox.#bootstrapModal(this.#modalEl,([{backdrop:o,keyboard:e,focus:t}]=[this.#options],{backdrop:o,keyboard:e,focus:t})),this.#addEvents(),!0===this.#options.show&&this.show(this.#options.relatedTarget)}get options(){return this.#options}get modal(){return this.#modal}get modalEl(){return this.#modalEl}get buttons(){return[...this.#footer.querySelectorAll("button")]}static get bootstrapModal(){return modbox.#bootstrapModal}static set bootstrapModal(t){modbox.#bootstrapModal=t}static get defaultOptions(){return modbox.#defaultOptions}static set defaultOptions(t={}){modbox.#defaultOptions=modbox.#deepMerge(modbox.#defaultOptions,t)}static get defaultButtonOptions(){return modbox.#defaultButtonOptions}static set defaultButtonOptions(t={}){modbox.#defaultButtonOptions={...modbox.#defaultButtonOptions,...t}}static setDefaults(t,o={}){if(!(t="error"===(t=t.trim?.().toLowerCase?.())?"danger":t)||!["alert","info","success","warning","danger","confirm","prompt"].includes(t))throw new Error("Invalid modal type.");o="object"===modbox.#typeof(o)?o:{},modbox.#modalDefaults[t]=modbox.#deepMerge(modbox.#modalDefaults[t],o)}addButton(t={},o=this.#options.swapButtonOrder){this.#footer.classList.remove("d-none");var e=o?"afterbegin":"beforeend";if("string"==typeof t&&t.length){this.#footer.insertAdjacentHTML(e,this.#options.sanitizer(t));var i=this.buttons;return i[o?0:i.length-1]}const s={...modbox.#defaultButtonOptions,id:modbox.#getUID("modbox-btn-"),...t};this.#footer.insertAdjacentHTML(e,this.#options.sanitizer(` + + `.trim()));const n=this.#footer.querySelector(`#${s.id}`);return n&&"function"==typeof s.callback&&n.addEventListener("click",t=>s.callback.call(n,t,this)),n}addEvent(t,o){["show","shown","hide","hidden","hidePrevented"].includes(t)&&"function"==typeof o&&this.#modalEl.addEventListener(`${t}.bs.modal`,t=>o.call(this.#modalEl,t,this))}destroy(){this.dispose(),this.#modalEl.remove()}static get container(){let t=document.querySelector("#modbox-container");if(!t){const o=document.createElement("div");o.id="modbox-container",t=document.body.appendChild(o)}return t}static alert(t={}){return modbox.#buildPromiseModal(modbox.#mergeModalOptions("alert",t))}static info(t={}){return modbox.#buildPromiseModal(modbox.#mergeModalOptions("info",t))}static success(t={}){return modbox.#buildPromiseModal(modbox.#mergeModalOptions("success",t))}static warning(t={}){return modbox.#buildPromiseModal(modbox.#mergeModalOptions("warning",t))}static danger(t={}){return modbox.#buildPromiseModal(modbox.#mergeModalOptions("danger",t))}static error(t={}){return modbox.danger(t)}static confirm(t={}){return modbox.#buildPromiseModal(modbox.#mergeModalOptions("confirm",t),"confirm")}static prompt(t={}){const o=modbox.#mergeModalOptions("prompt",t);return"regexp"===modbox.#typeof(o.input?.pattern)&&(o.input.pattern=o.input.pattern.source),o.body=` + ${o.body?`

${o.body}

`:""} + ${"string"==typeof o.input?o.input:``} + `.trim(),modbox.#buildPromiseModal(o,"prompt")}toggle(){this.#modal.toggle()}show(t=this.#options.relatedTarget){this.#modal.show(t)}hide(){this.#modal.hide()}handleUpdate(){this.#modal.handleUpdate()}dispose(){this.#modal.dispose()}static getInstance(t){return modbox.#bootstrapModal.getInstance(t)}static getOrCreateInstance(t){return modbox.#bootstrapModal.getOrCreateInstance(t)}} +//# sourceMappingURL=bootstrap-modbox.min.js.map \ No newline at end of file diff --git a/public/dmxAppConnect/dmxBootbox5/dmxBootbox5.js b/public/dmxAppConnect/dmxBootbox5/dmxBootbox5.js new file mode 100644 index 0000000..b8dc480 --- /dev/null +++ b/public/dmxAppConnect/dmxBootbox5/dmxBootbox5.js @@ -0,0 +1,8 @@ +/*! + App Connect Bootbox (bs5) + Version: 2.0.0 + (c) 2024 Wappler.io + @build 2024-04-15 17:48:46 + */ +dmx.bootbox=dmx.bootbox||{},dmx.bootbox.convertOptions=function(e,o="alert"){const t={backdrop:"static",body:e.message,center:1==e.centerVertical,fade:!1!==e.animate,keyboard:!1!==e.onEscape,scrollable:!0===e.scrollable,showHeaderClose:!1!==e.closeButton,size:e.size,swapButtonOrder:!0===e.swapButtonOrder,title:e.title};if(!0===e.backdrop||"true"===e.backdrop?t.backdrop=!0:!1!==e.backdrop&&"false"!==e.backdrop||(t.backdrop=!1),e.buttons)switch(o){case"alert":e.buttons.ok&&(t.closeButton=dmx.bootbox.convertButtonOptions(e.buttons.ok));break;case"confirm":case"prompt":e.buttons.confirm&&(t.okButton=dmx.bootbox.convertButtonOptions(e.buttons.confirm)),e.buttons.cancel&&(t.closeButton=dmx.bootbox.convertButtonOptions(e.buttons.cancel))}if("prompt"===o){switch(e.inputType){case"select":t.input=`\n \n `;break;case"checkbox":case"radio":t.input=e.inputOptions.map(((o,t)=>`\n
\n \n \n
\n `)).join("");break;case"textarea":t.input=`\n \n ${e.value||""}\n \n `;break;default:t.input=`\n \n `}t.body=`\n ${e.message?`

${e.message}

`:""}\n ${t.input}\n `.trim()}return t},dmx.bootbox.convertButtonOptions=function(e){const o={};return e.label&&(o.label=e.label),e.className&&(o.style=e.className.slice(4)),o},dmx.Actions({"bootbox.alert":function(e){return modbox.alert(dmx.bootbox.convertOptions(this.parse(e)))},"bootbox.info":function(e){return modbox.info(dmx.bootbox.convertOptions(this.parse(e)))},"bootbox.success":function(e){return modbox.success(dmx.bootbox.convertOptions(this.parse(e)))},"bootbox.warning":function(e){return modbox.warning(dmx.bootbox.convertOptions(this.parse(e)))},"bootbox.danger":function(e){return modbox.danger(dmx.bootbox.convertOptions(this.parse(e)))},"bootbox.confirm":function(e){const o={then:(e=Object.assign({},e)).then,else:e.else};return delete e.then,delete e.else,modbox.confirm(dmx.bootbox.convertOptions(this.parse(e),"confirm")).then((()=>!o.then||this._exec(o.then).then((()=>!0)))).catch((e=>(e&&console.error(e),!!o.else&&this._exec(o.else).then((()=>!1)))))},"bootbox.prompt":function(e){const o=dmx.extend(!0,{okButton:{label:"OK",style:"primary"},closeButton:{label:"Close",style:"secondary"}},dmx.bootbox.convertOptions(this.parse(e),"prompt"),{destroyOnClose:!0,defaultButton:!1,button:[]});return new Promise((e=>{const t=new modbox(o),n=t.modalEl.querySelector("input,select,textarea");"radio"==n.type&&(n.checked=!0),o.okButton.close=!1,o.okButton.callback=()=>{if(!n||n.reportValidity()){if("SELECT"==n.nodeName&&n.multiple)e(Array.from(n.selectedOptions).map((e=>e.value)));else if("checkbox"==n.type){const o=t.modalEl.querySelectorAll("input:checked");e(Array.from(o).map((e=>e.value)))}else if("radio"==n.type){const o=t.modalEl.querySelector("input:checked");e(o.value)}else e(n.value);t.hide()}};const r=t.addButton(o.okButton);t.addButton(o.closeButton);n&&"INPUT"==n.nodeName&&n.addEventListener("keyup",(e=>{"Enter"==e.key&&r.click()})),t.addEvent("hide",(()=>e(null))),t.show()}))}}),dmx.Component("bootbox",{methods:{alert:e=>modbox.alert(dmx.bootbox.convertOptions(e)),info:e=>modbox.info(dmx.bootbox.convertOptions(e)),success:e=>modbox.success(dmx.bootbox.convertOptions(e)),warning:e=>modbox.warning(dmx.bootbox.convertOptions(e)),danger:e=>modbox.danger(dmx.bootbox.convertOptions(e))}}); +//# sourceMappingURL=dmxBootbox5.js.map diff --git a/public/dmxAppConnect/dmxBootbox5/dmxBootbox5.js.map b/public/dmxAppConnect/dmxBootbox5/dmxBootbox5.js.map new file mode 100644 index 0000000..8defa34 --- /dev/null +++ b/public/dmxAppConnect/dmxBootbox5/dmxBootbox5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["core/bootbox.js","actions/bootbox.js","components/bootbox.js"],"names":["dmx","bootbox","convertOptions","options","type","opts","backdrop","body","message","center","centerVertical","fade","animate","keyboard","onEscape","scrollable","showHeaderClose","closeButton","size","swapButtonOrder","title","buttons","ok","convertButtonOptions","confirm","okButton","cancel","inputType","input","multiple","required","inputOptions","map","option","value","text","join","index","rows","placeholder","autocomplete","minlength","maxlength","min","max","step","pattern","trim","label","className","style","slice","Actions","modbox","alert","this","parse","info","success","warning","danger","condition","then","Object","assign","else","_exec","catch","err","console","error","extend","destroyOnClose","defaultButton","button","Promise","resolve","box","inputEl","modalEl","querySelector","checked","close","callback","reportValidity","nodeName","Array","from","selectedOptions","checkedEl","querySelectorAll","el","hide","okBtn","addButton","addEventListener","event","key","click","addEvent","show","Component","methods"],"mappings":"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","file":"dmxBootbox5.js","sourcesContent":["dmx.bootbox = dmx.bootbox || {};\r\n\r\ndmx.bootbox.convertOptions = function (options, type = 'alert') {\r\n const opts = {\r\n backdrop: 'static',\r\n body: options.message,\r\n center: options.centerVertical == true,\r\n fade: options.animate !== false,\r\n keyboard: options.onEscape !== false,\r\n scrollable: options.scrollable === true,\r\n showHeaderClose: options.closeButton !== false,\r\n size: options.size,\r\n swapButtonOrder: options.swapButtonOrder === true,\r\n title: options.title,\r\n };\r\n\r\n if (options.backdrop === true || options.backdrop === 'true') {\r\n opts.backdrop = true;\r\n } else if (options.backdrop === false || options.backdrop === 'false') {\r\n opts.backdrop = false;\r\n }\r\n\r\n if (options.buttons) {\r\n switch (type) {\r\n case 'alert':\r\n if (options.buttons.ok) {\r\n opts.closeButton = dmx.bootbox.convertButtonOptions(options.buttons.ok);\r\n }\r\n break;\r\n\r\n case 'confirm':\r\n case 'prompt':\r\n if (options.buttons.confirm) {\r\n opts.okButton = dmx.bootbox.convertButtonOptions(options.buttons.confirm);\r\n }\r\n if (options.buttons.cancel) {\r\n opts.closeButton = dmx.bootbox.convertButtonOptions(options.buttons.cancel);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (type === 'prompt') {\r\n switch (options.inputType) {\r\n case 'select':\r\n opts.input = `\r\n \r\n `;\r\n break;\r\n\r\n case 'checkbox':\r\n case 'radio':\r\n opts.input = options.inputOptions.map((option, index) => `\r\n
\r\n \r\n \r\n
\r\n `).join('');\r\n break;\r\n\r\n case 'textarea':\r\n opts.input = `\r\n \r\n ${options.value || ''}\r\n \r\n `;\r\n break;\r\n\r\n default:\r\n opts.input = `\r\n \r\n `;\r\n break;\r\n }\r\n\r\n opts.body = `\r\n ${options.message ? `

${options.message}

` : ''}\r\n ${opts.input}\r\n `.trim();\r\n }\r\n\r\n return opts;\r\n};\r\n\r\ndmx.bootbox.convertButtonOptions = function (options) {\r\n const opts = {};\r\n if (options.label) opts.label = options.label;\r\n if (options.className) opts.style = options.className.slice(4);\r\n return opts;\r\n};","dmx.Actions({\r\n\r\n 'bootbox.alert': function (options) {\r\n return modbox.alert(dmx.bootbox.convertOptions(this.parse(options)));\r\n },\r\n\r\n 'bootbox.info': function (options) {\r\n return modbox.info(dmx.bootbox.convertOptions(this.parse(options)));\r\n },\r\n\r\n 'bootbox.success': function (options) {\r\n return modbox.success(dmx.bootbox.convertOptions(this.parse(options)));\r\n },\r\n\r\n 'bootbox.warning': function (options) {\r\n return modbox.warning(dmx.bootbox.convertOptions(this.parse(options)));\r\n },\r\n\r\n 'bootbox.danger': function (options) {\r\n return modbox.danger(dmx.bootbox.convertOptions(this.parse(options)));\r\n },\r\n\r\n 'bootbox.confirm': function (options) {\r\n options = Object.assign({}, options);\r\n\r\n const condition = {\r\n 'then': options.then,\r\n 'else': options.else,\r\n };\r\n\r\n delete options.then;\r\n delete options.else;\r\n\r\n return modbox.confirm(dmx.bootbox.convertOptions(this.parse(options), 'confirm')).then(() => {\r\n if (condition.then) {\r\n return this._exec(condition.then).then(() => true);\r\n }\r\n\r\n return true;\r\n }).catch((err) => {\r\n if (err) console.error(err);\r\n \r\n if (condition.else) {\r\n return this._exec(condition.else).then(() => false);\r\n }\r\n\r\n return false;\r\n });\r\n },\r\n\r\n 'bootbox.prompt': function (options) {\r\n const opts = dmx.extend(true, {\r\n okButton: {\r\n label: 'OK',\r\n style: 'primary',\r\n },\r\n closeButton: {\r\n label: 'Close',\r\n style: 'secondary',\r\n },\r\n }, dmx.bootbox.convertOptions(this.parse(options), 'prompt'), {\r\n destroyOnClose: true,\r\n defaultButton: false,\r\n button: [],\r\n });\r\n\r\n return new Promise(resolve => {\r\n const box = new modbox(opts);\r\n const inputEl = box.modalEl.querySelector('input,select,textarea');\r\n\r\n if (inputEl.type == 'radio') {\r\n inputEl.checked = true;\r\n }\r\n\r\n opts.okButton.close = false;\r\n opts.okButton.callback = () => {\r\n const isValid = inputEl ? inputEl.reportValidity() : true;\r\n\r\n if (isValid) {\r\n if (inputEl.nodeName == 'SELECT' && inputEl.multiple) {\r\n resolve(Array.from(inputEl.selectedOptions).map(option => option.value));\r\n } else if (inputEl.type == 'checkbox') {\r\n const checkedEl = box.modalEl.querySelectorAll('input:checked');\r\n resolve(Array.from(checkedEl).map(el => el.value));\r\n } else if (inputEl.type == 'radio') {\r\n const checkedEl = box.modalEl.querySelector('input:checked');\r\n resolve(checkedEl.value);\r\n } else {\r\n resolve(inputEl.value);\r\n }\r\n\r\n box.hide();\r\n }\r\n };\r\n\r\n const okBtn = box.addButton(opts.okButton);\r\n const closeBtn = box.addButton(opts.closeButton);\r\n\r\n if (inputEl && inputEl.nodeName == 'INPUT') {\r\n inputEl.addEventListener('keyup', event => {\r\n if (event.key == 'Enter') okBtn.click();\r\n });\r\n }\r\n\r\n box.addEvent('hide', () => resolve(null));\r\n box.show();\r\n });\r\n },\r\n\r\n});\r\n","dmx.Component('bootbox', {\r\n\r\n methods: {\r\n alert (options) {\r\n return modbox.alert(dmx.bootbox.convertOptions(options));\r\n },\r\n\r\n info (options) {\r\n return modbox.info(dmx.bootbox.convertOptions(options));\r\n },\r\n\r\n success (options) {\r\n return modbox.success(dmx.bootbox.convertOptions(options));\r\n },\r\n\r\n warning (options) {\r\n return modbox.warning(dmx.bootbox.convertOptions(options));\r\n },\r\n\r\n danger (options) {\r\n return modbox.danger(dmx.bootbox.convertOptions(options));\r\n },\r\n },\r\n\r\n});\r\n"]} \ No newline at end of file diff --git a/views/index.ejs b/views/index.ejs index 63dfa1b..7483bd0 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -1,4 +1,28 @@ - + + +
@@ -26,7 +50,7 @@ @@ -109,7 +131,7 @@
- +
diff --git a/views/layouts/main.ejs b/views/layouts/main.ejs index eb6f747..7234343 100644 --- a/views/layouts/main.ejs +++ b/views/layouts/main.ejs @@ -21,6 +21,8 @@ + +