| @@ -211,7 +211,7 @@ | |||||
| "module": "api", | "module": "api", | ||||
| "action": "send", | "action": "send", | ||||
| "options": { | "options": { | ||||
| "url": "{{$_ENV$_ENV.API_BASEURL+'partnumbers/async'}}", | |||||
| "url": "{{$_ENV.API_BASEURL+'partnumbers/async'}}", | |||||
| "dataType": "json", | "dataType": "json", | ||||
| "schema": [ | "schema": [ | ||||
| { | { | ||||
| @@ -0,0 +1,3 @@ | |||||
| { | |||||
| "exec": {} | |||||
| } | |||||
| @@ -8291,6 +8291,192 @@ dmx.config({ | |||||
| "var_bomdspecid": { | "var_bomdspecid": { | ||||
| "meta": null, | "meta": null, | ||||
| "outputType": "number" | "outputType": "number" | ||||
| }, | |||||
| "tableRepeat2": { | |||||
| "meta": [ | |||||
| { | |||||
| "name": "$index", | |||||
| "type": "number" | |||||
| }, | |||||
| { | |||||
| "name": "$key", | |||||
| "type": "text" | |||||
| }, | |||||
| { | |||||
| "name": "$value", | |||||
| "type": "object" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "updateuserid" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "createdate" | |||||
| }, | |||||
| { | |||||
| "type": "object", | |||||
| "name": "vendor", | |||||
| "sub": [ | |||||
| { | |||||
| "type": "text", | |||||
| "name": "id" | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "type": "object", | |||||
| "name": "partnumber", | |||||
| "sub": [ | |||||
| { | |||||
| "type": "number", | |||||
| "name": "id" | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "createuserid" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "description" | |||||
| }, | |||||
| { | |||||
| "type": "object", | |||||
| "name": "customer", | |||||
| "sub": [ | |||||
| { | |||||
| "type": "number", | |||||
| "name": "createuserid" | |||||
| }, | |||||
| { | |||||
| "type": "number", | |||||
| "name": "id" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "name" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "updatedate" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "description" | |||||
| }, | |||||
| { | |||||
| "type": "number", | |||||
| "name": "updateuserid" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "createdate" | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "type": "number", | |||||
| "name": "id" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "updatedate" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "number" | |||||
| } | |||||
| ], | |||||
| "outputType": "array" | |||||
| }, | |||||
| "tableRepeat3": { | |||||
| "meta": [ | |||||
| { | |||||
| "type": "text", | |||||
| "name": "updateuserid" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "createdate" | |||||
| }, | |||||
| { | |||||
| "type": "object", | |||||
| "name": "vendor", | |||||
| "sub": [ | |||||
| { | |||||
| "type": "text", | |||||
| "name": "id" | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "type": "object", | |||||
| "name": "partnumber", | |||||
| "sub": [ | |||||
| { | |||||
| "type": "number", | |||||
| "name": "id" | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "createuserid" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "description" | |||||
| }, | |||||
| { | |||||
| "type": "object", | |||||
| "name": "customer", | |||||
| "sub": [ | |||||
| { | |||||
| "type": "number", | |||||
| "name": "createuserid" | |||||
| }, | |||||
| { | |||||
| "type": "number", | |||||
| "name": "id" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "name" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "updatedate" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "description" | |||||
| }, | |||||
| { | |||||
| "type": "number", | |||||
| "name": "updateuserid" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "createdate" | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "type": "number", | |||||
| "name": "id" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "updatedate" | |||||
| }, | |||||
| { | |||||
| "type": "text", | |||||
| "name": "number" | |||||
| } | |||||
| ], | |||||
| "outputType": "array" | |||||
| } | } | ||||
| }, | }, | ||||
| "repeattest": { | "repeattest": { | ||||
| @@ -0,0 +1,379 @@ | |||||
| .dmxCloak { | |||||
| display: none; | |||||
| } | |||||
| .dmxPreloader { | |||||
| --color: #333; | |||||
| --bgcolor: #fff; | |||||
| position: fixed; | |||||
| top: 0; | |||||
| left: 0; | |||||
| bottom: 0; | |||||
| right: 0; | |||||
| z-index: 1050; | |||||
| background-color: #fff; | |||||
| background-color: var(--bgcolor); | |||||
| -webkit-transition: all 0.5s linear; | |||||
| -moz-transition: all 0.5s linear; | |||||
| -o-transition: all 0.5s linear; | |||||
| -ms-transition: all 0.5s linear; | |||||
| transition: all 0.5s linear; | |||||
| } | |||||
| .dmxPreloader-spinner { | |||||
| position: absolute; | |||||
| top: 50%; | |||||
| left: 50%; | |||||
| margin-top: -20px; | |||||
| margin-left: -20px; | |||||
| width: 40px; | |||||
| height: 40px; | |||||
| margin-top: calc(var(--size) / 2 * -1); | |||||
| margin-left: calc(var(--size) / 2 * -1); | |||||
| width: var(--size); | |||||
| height: var(--size); | |||||
| } | |||||
| /* rotatingPlane */ | |||||
| .dmxPreloader-rotatingPlane { | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| animation: rotatePlane 1.2s infinite ease-in-out; | |||||
| } | |||||
| @keyframes rotatePlane { | |||||
| 0% { transform: perspective(200px) rotateX(0deg) rotateY(0deg); } | |||||
| 50% { transform: perspective(200px) rotateX(-180.1deg) rotateY(0deg); } | |||||
| 100% { transform: perspective(200px) rotateX(-180deg) rotateY(-179.9deg); } | |||||
| } | |||||
| /* doubleBounce */ | |||||
| .dmxPreloader-doubleBounce > div { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| border-radius: 50%; | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| opacity: 0.6; | |||||
| position: absolute; | |||||
| top: 0; | |||||
| left: 0; | |||||
| animation: doubleBounce 2s infinite ease-in-out; | |||||
| } | |||||
| .dmxPreloader-doubleBounce > div:nth-child(2) { | |||||
| animation-delay: -1s; | |||||
| } | |||||
| @keyframes doubleBounce { | |||||
| 0%, 100% { transform: scale(0); } | |||||
| 50% { transform: scale(1); } | |||||
| } | |||||
| /* wave */ | |||||
| .dmxPreloader-wave > div { | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| height: 100%; | |||||
| width: 6px; | |||||
| width: calc((var(--size) / 5) - 6%); | |||||
| margin: 0 3%; | |||||
| display: inline-block; | |||||
| animation: waveStretchDelay 1.2s infinite ease-in-out; | |||||
| } | |||||
| .dmxPreloader-wave > div:nth-child(2) { | |||||
| animation-delay: -.2s; | |||||
| } | |||||
| .dmxPreloader-wave > div:nth-child(3) { | |||||
| animation-delay: -.4s; | |||||
| } | |||||
| .dmxPreloader-wave > div:nth-child(4) { | |||||
| animation-delay: -.6s; | |||||
| } | |||||
| .dmxPreloader-wave > div:nth-child(5) { | |||||
| animation-delay: -.8s; | |||||
| } | |||||
| @keyframes waveStretchDelay { | |||||
| 0%, 40%, 100% { transform: scaleY(0.4); } | |||||
| 20% { transform: scaleY(1); } | |||||
| } | |||||
| /* wanderingCubes */ | |||||
| .dmxPreloader-wanderingCubes > div { | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| width: 15px; | |||||
| height: 15px; | |||||
| width: calc(var(--size) / 3); | |||||
| height: calc(var(--size) / 3); | |||||
| position: absolute; | |||||
| top: 0; | |||||
| left: 0; | |||||
| animation: wanderingCube 1.8s infinite ease-in-out; | |||||
| } | |||||
| .dmxPreloader-wanderingCubes > div:nth-child(2) { | |||||
| animation-delay: -0.9s; | |||||
| } | |||||
| @keyframes wanderingCube { | |||||
| 0% { transform: rotate(0deg); } | |||||
| 25% { transform: translateX(25px) rotate(-90deg) scale(0.5); transform: translateX(calc(var(--size) / 3 * 2)) rotate(-90deg) scale(0.5); } | |||||
| 50% { transform: translateX(25px) translateY(25px) rotate(-179deg); transform: translateX(calc(var(--size) / 3 * 2)) translateY(calc(var(--size) / 3 * 2)) rotate(-179deg); } | |||||
| 50.1% { transform: translateX(25px) translateY(25px) rotate(-180deg); transform: translateX(calc(var(--size) / 3 * 2)) translateY(calc(var(--size) / 3 * 2)) rotate(-180deg); } | |||||
| 75% { transform: translateX(0) translateY(25px) rotate(-270deg) scale(0.5); transform: translateX(0) translateY(calc(var(--size) / 3 * 2)) rotate(-270deg) scale(0.5); } | |||||
| 100% { transform: rotate(-360deg); } | |||||
| } | |||||
| /* pulse */ | |||||
| .dmxPreloader-pulse { | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| border-radius: 50%; | |||||
| animation: pulseScaleOut 1.0s infinite ease-in-out; | |||||
| } | |||||
| @keyframes pulseScaleOut { | |||||
| 0% { transform: scale(0); } | |||||
| 100% { transform: scale(1); opacity: 0; } | |||||
| } | |||||
| /* chasingDots */ | |||||
| .dmxPreloader-chasingDots { | |||||
| animation: chasingDotsRotate 2s infinite linear; | |||||
| } | |||||
| .dmxPreloader-chasingDots > div { | |||||
| width: 60%; | |||||
| height: 60%; | |||||
| position: absolute; | |||||
| top: 0; | |||||
| left: 40%; | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| border-radius: 50%; | |||||
| animation: chasingDotsBounce 2s infinite ease-in-out; | |||||
| } | |||||
| .dmxPreloader-chasingDots > div:nth-child(2) { | |||||
| top: auto; | |||||
| bottom: 0; | |||||
| animation-delay: -1s; | |||||
| } | |||||
| @keyframes chasingDotsRotate { | |||||
| 100% { transform: rotate(360deg); } | |||||
| } | |||||
| @keyframes chasingDotsBounce { | |||||
| 0%, 100% { transform: scale(0); } | |||||
| 50% { transform: scale(1); } | |||||
| } | |||||
| /* threeBounce */ | |||||
| .dmxPreloader-threeBounce > div { | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| width: 25%; | |||||
| height: 25%; | |||||
| margin: 37.5% 4%; | |||||
| border-radius: 50%; | |||||
| display: inline-block; | |||||
| animation: threeBounce 1.4s infinite ease-in-out both; | |||||
| } | |||||
| .dmxPreloader-threeBounce > div:nth-child(1) { | |||||
| animation-delay: -0.32s; | |||||
| } | |||||
| .dmxPreloader-threeBounce > div:nth-child(2) { | |||||
| animation-delay: -0.16s; | |||||
| } | |||||
| @keyframes threeBounce { | |||||
| 0%, 80%, 100% { transform: scale(0); } | |||||
| 40% { transform: scale(1); } | |||||
| } | |||||
| /* circle */ | |||||
| .dmxPreloader-circle > div { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| position: absolute; | |||||
| left: 0; | |||||
| top: 0; | |||||
| } | |||||
| .dmxPreloader-circle > div:before { | |||||
| content: ''; | |||||
| display: block; | |||||
| margin: 0 auto; | |||||
| width: 15%; | |||||
| height: 15%; | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| border-radius: 50%; | |||||
| animation: circleBounceDelay 1.2s infinite ease-in-out both; | |||||
| } | |||||
| .dmxPreloader-circle > div:nth-child(2) { transform: rotate(30deg); } | |||||
| .dmxPreloader-circle > div:nth-child(2):before { animation-delay: -1.1s; } | |||||
| .dmxPreloader-circle > div:nth-child(3) { transform: rotate(60deg); } | |||||
| .dmxPreloader-circle > div:nth-child(3):before { animation-delay: -1.0s; } | |||||
| .dmxPreloader-circle > div:nth-child(4) { transform: rotate(90deg); } | |||||
| .dmxPreloader-circle > div:nth-child(4):before { animation-delay: -0.9s; } | |||||
| .dmxPreloader-circle > div:nth-child(5) { transform: rotate(120deg); } | |||||
| .dmxPreloader-circle > div:nth-child(5):before { animation-delay: -0.8s; } | |||||
| .dmxPreloader-circle > div:nth-child(6) { transform: rotate(150deg); } | |||||
| .dmxPreloader-circle > div:nth-child(6):before { animation-delay: -0.7s; } | |||||
| .dmxPreloader-circle > div:nth-child(7) { transform: rotate(180deg); } | |||||
| .dmxPreloader-circle > div:nth-child(7):before { animation-delay: -0.6s; } | |||||
| .dmxPreloader-circle > div:nth-child(8) { transform: rotate(210deg); } | |||||
| .dmxPreloader-circle > div:nth-child(8):before { animation-delay: -0.5s; } | |||||
| .dmxPreloader-circle > div:nth-child(9) { transform: rotate(240deg); } | |||||
| .dmxPreloader-circle > div:nth-child(9):before { animation-delay: -0.4s; } | |||||
| .dmxPreloader-circle > div:nth-child(10) { transform: rotate(270deg); } | |||||
| .dmxPreloader-circle > div:nth-child(10):before { animation-delay: -0.3s; } | |||||
| .dmxPreloader-circle > div:nth-child(11) { transform: rotate(300deg); } | |||||
| .dmxPreloader-circle > div:nth-child(11):before { animation-delay: -0.2s; } | |||||
| .dmxPreloader-circle > div:nth-child(12) { transform: rotate(330deg); } | |||||
| .dmxPreloader-circle > div:nth-child(12):before { animation-delay: -0.1s; } | |||||
| @keyframes circleBounceDelay { | |||||
| 0%, 80%, 100% { transform: scale(0); } | |||||
| 40% { transform: scale(1); } | |||||
| } | |||||
| /* cubeGrid */ | |||||
| .dmxPreloader-cubeGrid > div { | |||||
| width: 33.33%; | |||||
| height: 33.33%; | |||||
| width: calc(var(--size) / 3); | |||||
| height: calc(var(--size) / 3); | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| float: left; | |||||
| animation: cubeGridScaleDelay 1.3s infinite ease-in-out; | |||||
| } | |||||
| .dmxPreloader-cubeGrid > div:nth-child(1) { animation-delay: 0.2s; } | |||||
| .dmxPreloader-cubeGrid > div:nth-child(2) { animation-delay: 0.3s; } | |||||
| .dmxPreloader-cubeGrid > div:nth-child(3) { animation-delay: 0.4s; } | |||||
| .dmxPreloader-cubeGrid > div:nth-child(4) { animation-delay: 0.1s; } | |||||
| .dmxPreloader-cubeGrid > div:nth-child(5) { animation-delay: 0.2s; } | |||||
| .dmxPreloader-cubeGrid > div:nth-child(6) { animation-delay: 0.3s; } | |||||
| .dmxPreloader-cubeGrid > div:nth-child(7) { animation-delay: 0s; } | |||||
| .dmxPreloader-cubeGrid > div:nth-child(8) { animation-delay: 0.1s; } | |||||
| .dmxPreloader-cubeGrid > div:nth-child(9) { animation-delay: 0.2s; } | |||||
| @keyframes cubeGridScaleDelay { | |||||
| 0%, 70%, 100% { transform: scale3d(1, 1, 1); } | |||||
| 35% { transform: scale3d(0, 0, 1); } | |||||
| } | |||||
| /* fadingCircle */ | |||||
| .dmxPreloader-fadingCircle > div { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| position: absolute; | |||||
| left: 0; | |||||
| top: 0; | |||||
| } | |||||
| .dmxPreloader-fadingCircle > div:before { | |||||
| content: ''; | |||||
| display: block; | |||||
| margin: 0 auto; | |||||
| width: 15%; | |||||
| height: 15%; | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| border-radius: 50%; | |||||
| animation: circleFadeDelay 1.2s infinite ease-in-out both; | |||||
| } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(2) { transform: rotate(30deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(2):before { animation-delay: -1.1s; } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(3) { transform: rotate(60deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(3):before { animation-delay: -1.0s; } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(4) { transform: rotate(90deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(4):before { animation-delay: -0.9s; } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(5) { transform: rotate(120deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(5):before { animation-delay: -0.8s; } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(6) { transform: rotate(150deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(6):before { animation-delay: -0.7s; } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(7) { transform: rotate(180deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(7):before { animation-delay: -0.6s; } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(8) { transform: rotate(210deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(8):before { animation-delay: -0.5s; } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(9) { transform: rotate(240deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(9):before { animation-delay: -0.4s; } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(10) { transform: rotate(270deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(10):before { animation-delay: -0.3s; } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(11) { transform: rotate(300deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(11):before { animation-delay: -0.2s; } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(12) { transform: rotate(330deg); } | |||||
| .dmxPreloader-fadingCircle > div:nth-child(12):before { animation-delay: -0.1s; } | |||||
| @keyframes circleFadeDelay { | |||||
| 0%, 39%, 100% { opacity: 0; } | |||||
| 40% { opacity: 1; } | |||||
| } | |||||
| /* foldingCube */ | |||||
| .dmxPreloader-foldingCube { | |||||
| transform: rotateZ(45deg); | |||||
| } | |||||
| .dmxPreloader-foldingCube > div { | |||||
| float: left; | |||||
| width: 50%; | |||||
| height: 50%; | |||||
| position: relative; | |||||
| transform: scale(1.1); | |||||
| } | |||||
| .dmxPreloader-foldingCube > div:before { | |||||
| content: ''; | |||||
| position: absolute; | |||||
| top: 0; | |||||
| left: 0; | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| background-color: #333; | |||||
| background-color: var(--color); | |||||
| animation: foldCubeAngle 2.4s infinite linear both; | |||||
| transform-origin: 100% 100%; | |||||
| } | |||||
| .dmxPreloader-foldingCube > div:nth-child(2) { transform: scale(1.1) rotateZ(90deg); } | |||||
| .dmxPreloader-foldingCube > div:nth-child(3) { transform: scale(1.1) rotateZ(270deg); } | |||||
| .dmxPreloader-foldingCube > div:nth-child(4) { transform: scale(1.1) rotateZ(180deg); } | |||||
| .dmxPreloader-foldingCube > div:nth-child(2):before { animation-delay: 0.3s; } | |||||
| .dmxPreloader-foldingCube > div:nth-child(3):before { animation-delay: 0.9s; } | |||||
| .dmxPreloader-foldingCube > div:nth-child(4):before { animation-delay: 0.6s; } | |||||
| @keyframes foldCubeAngle { | |||||
| 0%, 10% { transform: perspective(140px) rotateX(-180deg); opacity: 0; } | |||||
| 25%, 75% { transform: perspective(140px) rotateX(0deg); opacity: 1; } | |||||
| 90%, 100% { transform: perspective(140px) rotateY(180deg); opacity: 0; } | |||||
| } | |||||
| @@ -0,0 +1,8 @@ | |||||
| /*! | |||||
| DMXzone Preloader | |||||
| Version: 1.0.0 | |||||
| (c) 2018 DMXzone.com | |||||
| @build 2018-01-30 17:30:56 | |||||
| */ | |||||
| document.documentElement.classList.add("dmxCloak"),document.addEventListener("DOMContentLoaded",function(){window.requestAnimationFrame(function(){document.documentElement.classList.remove("dmxCloak")})}),dmx.Component("preloader",{constructor:function(e,t){this.docLoaded=!1,this.imgLoaded=!1,this.dataLoaded=!1,this.loaded=!1,dmx.BaseComponent.call(this,e,t)},attributes:{preview:{type:Boolean,default:!1},color:{type:String,default:"#333"},bgcolor:{type:String,default:"#fff"},size:{type:Number,default:60},spinner:{type:String,default:null}},methods:{show:function(){this.show()},hide:function(){this.hide()}},event:{},spinners:{rotatingPlane:0,doubleBounce:2,wave:5,wanderingCubes:2,pulse:0,chasingDots:2,threeBounce:3,circle:12,cubeGrid:9,fadingCircle:12,foldingCube:4},render:function(e){if(this.$node.classList.add("dmxPreloader"),this.$node.style.setProperty("--color",this.props.color),this.$node.style.setProperty("--bgcolor",this.props.bgcolor),this.$node.style.setProperty("--size",this.props.size+"px"),this.props.spinner&&this.spinners.hasOwnProperty(this.props.spinner)){for(var t='<div class="dmxPreloader-spinner dmxPreloader-'+this.props.spinner+'">',o=0;o<this.spinners[this.props.spinner];o++)t+="<div></div>";t+="</div>",this.$node.innerHTML=t}this.show(),window.addEventListener("load",function(){dmx.requestUpdate()})},update:function(e){this.loaded||this.props.preview||(JSON.stringify(e)!=JSON.stringify(this.props)&&(this.$node.style.setProperty("--color",this.props.color),this.$node.style.setProperty("--bgcolor",this.props.bgcolor),this.$node.style.setProperty("--size",this.props.size+"px")),this.checkDocLoaded(),this.checkImgLoaded(),this.checkDataLoaded(),this.docLoaded&&this.imgLoaded&&this.dataLoaded&&requestAnimationFrame(function(){this.loaded||(this.checkDocLoaded(),this.checkImgLoaded(),this.checkDataLoaded(),this.docLoaded&&this.imgLoaded&&this.dataLoaded&&(this.hide(),this.loaded=!0))}.bind(this)))},show:function(){this.$node.style.removeProperty("opacity"),this.$node.style.removeProperty("z-index"),document.body.style.setProperty("overflow","hidden")},hide:function(){this.$node.style.setProperty("opacity",0),this.$node.style.setProperty("z-index",-1),document.body.style.removeProperty("overflow")},checkDocLoaded:function(){this.docLoaded="complete"===document.readyState},checkImgLoaded:function(){this.imgLoaded=dmx.array(document.getElementsByTagName("IMG")).every(function(e){if(!e.hasAttribute("src")&&e.hasAttribute("dmx-bind:src")&&(e.isLoaded=!1),e.isLoaded===!0)return!0;if(e.completed&&0!==e.naturalHeight)return!0;if(!e.isListening){var t=new Image;t.addEventListener("load",function(){e.isLoaded=!0,dmx.requestUpdate()}),t.addEventListener("error",function(){e.isLoaded=!0,dmx.requestUpdate()}),t.src=e.src,e.isListening=!0}return e.isLoaded},this)},checkDataLoaded:function(){this.dataLoaded=this.getDatasets().every(function(e){return null!=e.data})},getDatasets:function(){var e=[];return dmx.app.children.forEach(function t(o){"serverconnect"!=o.data.$type||o.props.noload||e.push(o.data),o.children.forEach(t)}),e}}); | |||||
| //# sourceMappingURL=../maps/dmxPreloader.js.map | |||||
| @@ -47,6 +47,8 @@ | |||||
| <script src="/dmxAppConnect/dmxBootstrap4Navigation/dmxBootstrap4Navigation.js" defer></script> | <script src="/dmxAppConnect/dmxBootstrap4Navigation/dmxBootstrap4Navigation.js" defer></script> | ||||
| <script src="/dmxAppConnect/dmxBootstrap4Modal/dmxBootstrap4Modal.js" defer></script> | <script src="/dmxAppConnect/dmxBootstrap4Modal/dmxBootstrap4Modal.js" defer></script> | ||||
| <link rel="stylesheet" href="/dmxAppConnect/dmxBootstrap4TableGenerator/dmxBootstrap4TableGenerator.css" /> | <link rel="stylesheet" href="/dmxAppConnect/dmxBootstrap4TableGenerator/dmxBootstrap4TableGenerator.css" /> | ||||
| <link rel="stylesheet" href="/dmxAppConnect/dmxPreloader/dmxPreloader.css" /> | |||||
| <script src="/dmxAppConnect/dmxPreloader/dmxPreloader.js" defer></script> | |||||
| </head> | </head> | ||||
| <body is="dmx-app" id="main"> | <body is="dmx-app" id="main"> | ||||
| @@ -65,7 +67,7 @@ | |||||
| <dmx-serverconnect id="conn_search" url="/api/Parts/Seach" dmx-param:input="var_ptsearch.value" noload="true"></dmx-serverconnect> | <dmx-serverconnect id="conn_search" url="/api/Parts/Seach" dmx-param:input="var_ptsearch.value" noload="true"></dmx-serverconnect> | ||||
| <dmx-serverconnect id="conn_masterpcs" url="/api/PartCodes/masters"></dmx-serverconnect> | <dmx-serverconnect id="conn_masterpcs" url="/api/PartCodes/masters"></dmx-serverconnect> | ||||
| <dmx-serverconnect id="conn_cmasters" url="/api/PartCodes/cmasters" dmx-param:code="mod_createpart.frm_createpart.inp_masterpc.value" noload="true"></dmx-serverconnect> | <dmx-serverconnect id="conn_cmasters" url="/api/PartCodes/cmasters" dmx-param:code="mod_createpart.frm_createpart.inp_masterpc.value" noload="true"></dmx-serverconnect> | ||||
| <dmx-serverconnect id="conn_updatepartcode" url="/api/Parts/asynccalls/updatepartcode" dmx-on:done="viewsearch.load({id: mod_changepartcode.var_changepartcode.value},true)"></dmx-serverconnect> | |||||
| <dmx-serverconnect id="conn_updatepartcode" url="/api/Parts/asynccalls/updatepartcode" dmx-on:done="viewsearch.load({id: mod_changepartcode.var_changepartcode.value},true)" noload="true"></dmx-serverconnect> | |||||
| <div is="dmx-browser" id="browser1"></div> | <div is="dmx-browser" id="browser1"></div> | ||||
| <div class="modal" id="mod_changepartcode" is="dmx-bs5-modal" tabindex="-1"> | <div class="modal" id="mod_changepartcode" is="dmx-bs5-modal" tabindex="-1"> | ||||
| <div class="modal-dialog" role="document"> | <div class="modal-dialog" role="document"> | ||||
| @@ -2,5 +2,9 @@ | |||||
| "newpart.ejs": { | "newpart.ejs": { | ||||
| "description": "", | "description": "", | ||||
| "layoutPage": "smain" | "layoutPage": "smain" | ||||
| }, | |||||
| "partinfocard.ejs": { | |||||
| "description": "", | |||||
| "layoutPage": "smain" | |||||
| } | } | ||||
| } | } | ||||
| @@ -0,0 +1,11 @@ | |||||
| <!-- Wappler include bootstrap5="local" is="dmx-app" id="partinfocard" appconnect="local" bootstrap_icons="local" fontawesome_5="local" head-page="layouts/smain" --> | |||||
| <div class="container"> | |||||
| <div class="row"> | |||||
| <div class="col"> | |||||
| </div> | |||||
| <p dmx-text="'Hello'"></p> | |||||
| <div class="col"></div> | |||||
| <div class="col"></div> | |||||
| </div> | |||||
| </div> | |||||
| @@ -1,6 +1,7 @@ | |||||
| <!-- Wappler include head-page="layouts/smain" bootstrap5="local" is="dmx-app" id="dspec" appConnect="local" components="{dmxStateManagement:{},dmxAutocomplete:{},dmxDatePicker:{},dmxBootstrap5Navigation:{},dmxFormatter:{},dmxBootstrap5Modal:{}}" jquery_slim_35="cdn" moment_2="cdn" fontawesome_5pro="cdn" --> | |||||
| <!-- Wappler include head-page="layouts/smain" bootstrap5="local" is="dmx-app" id="dspec" appConnect="local" components="{dmxStateManagement:{},dmxAutocomplete:{},dmxDatePicker:{},dmxBootstrap5Navigation:{},dmxFormatter:{},dmxBootstrap5Modal:{},dmxPreloader:{},dmxBootstrap5TableGenerator:{}}" jquery_slim_35="cdn" moment_2="cdn" fontawesome_5pro="cdn" --> | |||||
| <dmx-preloader id="preloader" spinner="pulse"></dmx-preloader> | |||||
| <dmx-query-manager id="query_partid"></dmx-query-manager> | <dmx-query-manager id="query_partid"></dmx-query-manager> | ||||
| <dmx-serverconnect id="conn_dspecinfo" url="/api/DSpec/searchpn" dmx-param:pn="query_partid.data.id" dmx-on:success="pt_rev.setValue(conn_dspecinfo.data.dspec.data.rev)"></dmx-serverconnect> | |||||
| <dmx-serverconnect id="conn_dspecinfo" url="/api/DSpec/searchpn" dmx-param:pn="query_partid.data.id" dmx-on:success="pt_rev.setValue(conn_dspecinfo.data.dspec.data.rev)" dmx-on:start="preloader.show()" dmx-on:done="preloader.hide()"></dmx-serverconnect> | |||||
| <dmx-serverconnect id="conn_copybomitems" url="/api/BOM/copyitems" dmx-param:olddspecid="conn_dspecinfo.data.dspec.data.id" dmx-param:newdspecid="var_dspecid.value" dmx-on:success="conn_dspecinfo.load({})" noload="true"></dmx-serverconnect> | <dmx-serverconnect id="conn_copybomitems" url="/api/BOM/copyitems" dmx-param:olddspecid="conn_dspecinfo.data.dspec.data.id" dmx-param:newdspecid="var_dspecid.value" dmx-on:success="conn_dspecinfo.load({})" noload="true"></dmx-serverconnect> | ||||
| <dmx-serverconnect id="conn_copybomfromotherpart" url="/api/BOM/copyitems" dmx-param:olddspecid="var_bomdspecid.value" dmx-param:newdspecid="conn_dspecinfo.data.dspec.data.id" dmx-on:success="conn_dspecinfo.load({})" noload="true"></dmx-serverconnect> | <dmx-serverconnect id="conn_copybomfromotherpart" url="/api/BOM/copyitems" dmx-param:olddspecid="var_bomdspecid.value" dmx-param:newdspecid="conn_dspecinfo.data.dspec.data.id" dmx-on:success="conn_dspecinfo.load({})" noload="true"></dmx-serverconnect> | ||||
| @@ -86,83 +87,153 @@ | |||||
| <header> | <header> | ||||
| <h1 class="mt-3 ms-4 text-center">General DSpec</h1> | <h1 class="mt-3 ms-4 text-center">General DSpec</h1> | ||||
| </header> | </header> | ||||
| <div class="w-100 rounded-3 rounded border-secondary border-5 container-xxl text-start ms-auto me-auto pt-0 pb-0 ps-0 pe-0 bg-secondary-subtle"> | |||||
| <div class="container bg-secondary-subtle mb-3"> | |||||
| <h1 class="text-center">Part Info</h1> | <h1 class="text-center">Part Info</h1> | ||||
| <div class="row"> | <div class="row"> | ||||
| <div class="col"> | <div class="col"> | ||||
| <div class="form-group mb-3"> | |||||
| <label for="inp_createdby" class="form-label">Created By</label> | |||||
| <input type="text" class="form-control" id="inp_createdby" name="createby" aria-describedby="input1_help" placeholder="Enter some text" readonly="true" dmx-bind:value="conn_dspecinfo.data.creator.firstname+' '+conn_dspecinfo.data.creator.lastname"> | |||||
| </div> | |||||
| </div> | |||||
| <div class="col"> | |||||
| <div class="form-check"> | |||||
| <input class="form-check-input" type="checkbox" value="" id="inp_approved" name="approved"> | |||||
| <label class="form-check-label" for="inp_approved">Approved By</label> | |||||
| <div class="row"> | |||||
| <div class="undefined-NaN col-3"> | |||||
| <div class="form-group mb-3"> | |||||
| <label for="inp_createdby" class="form-label col-form-label-sm">Created By</label> | |||||
| <input type="text" class="form-control form-control-sm" id="inp_createdby" name="createby" aria-describedby="input1_help" placeholder="Enter some text" readonly="true" dmx-bind:value="conn_dspecinfo.data.creator.firstname+' '+conn_dspecinfo.data.creator.lastname"> | |||||
| </div> | |||||
| </div> | |||||
| <div class="col"> | |||||
| <div class="form-check"> | |||||
| <input class="form-check-input" type="checkbox" value="" id="inp_approved" name="approved"> | |||||
| <label class="form-check-label col-form-label-sm" for="inp_approved">Approved By</label> | |||||
| </div> | |||||
| <div class="form-check"> | |||||
| <input class="form-check-input" type="checkbox" value="" id="inp_approved1" name="approved1"> | |||||
| <label class="form-check-label col-form-label-sm" for="inp_approved1">FAQ By</label> | |||||
| </div> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div class="form-check"> | |||||
| <input class="form-check-input" type="checkbox" value="" id="inp_approved1" name="approved1"> | |||||
| <label class="form-check-label" for="inp_approved1">FAQ By</label> | |||||
| <div class="row w-100 pt-0 pb-0 ps-0 pe-0"> | |||||
| <div class="col w-100 ms-1 pt-0 pb-0 pe-0"> | |||||
| <div class="form-group mb-3 row"> | |||||
| <label for="pt_obsolete" class="col-sm-2 col-form-label col-form-label-sm" style="width: fit-content;">Part #:</label> | |||||
| <div class="ms-2 col-sm-3"> | |||||
| <input type="text" class="form-control form-control-sm" id="pt_pn" name="ptpn" aria-describedby="pn_help" placeholder="Part#" style="width: fit-content;" dmx-bind:value="conn_dspecinfo.data.part.data.number"> | |||||
| </div> | |||||
| <label for="rev" class="col-sm-2 col-form-label col-form-label-sm" style="width: fit-content;">Rev:</label> | |||||
| <div class="ms-2 col-sm-6" style="display:inline-block;"> | |||||
| <input type="text" class="form-control form-control-sm" id="pt_rev" name="ptrev" aria-describedby="input1_help" placeholder="Rev" style="width: fit-content; display:inline-block;" dmx-bind:value="conn_dspecinfo.data.dspec.data.rev"> | |||||
| <button id="btn_newrev" class="btn btn-secondary btn-sm" style="display:inline-block;" dmx-show="conn_dspecinfo.data.dspec.data.id">New Rev</button> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| </div> | </div> | ||||
| </div> | |||||
| </div> | |||||
| <div class="row w-100 pt-0 pb-0 ps-0 pe-0"> | |||||
| <div class="col w-100 ms-1 pt-0 pb-0 pe-0"> | |||||
| <div class="form-group mb-3 row"> | |||||
| <div class="row w-100 pt-0 pb-0 ps-0 pe-0"> | |||||
| <div class="col w-100 ms-1 pt-0 pb-0 pe-0 align-self-center"> | |||||
| <div class="form-group mb-3 row"> | |||||
| <label for="pt_obsolete" class="col-sm-2 col-form-label" style="width: fit-content;">Part #:</label> | |||||
| <div class="ms-2 col-sm-3"> | |||||
| <input type="text" class="form-control" id="pt_pn" name="ptpn" aria-describedby="pn_help" placeholder="Part#" style="width: fit-content;" dmx-bind:value="conn_dspecinfo.data.part.data.number"> | |||||
| <label for="pt_obsolete" class="col-sm-2 col-form-label col-form-label-sm" style="width: fit-content;">Part Code:</label> | |||||
| <div class="ms-2 col-sm-3 align-self-center"> | |||||
| <input type="text" class="form-control form-control-sm" id="pt_partcode" name="ptpartcode" aria-describedby="pn_help" placeholder="Part#" style="width: fit-content;" is="dmx-autocomplete" dmx-bind:data="conn_basedata.data.partcodes.data" optiontext="name" optionvalue="id" optionsearch="name" dmx-bind:value="conn_dspecinfo.data.part.data.partcode.id"> | |||||
| </div> | |||||
| <div class="ms-2 col-sm-2 align-self-center"> | |||||
| <div class="form-check"> | |||||
| <input class="form-check-input" type="checkbox" value="" id="pt_obsolete" name="ptobsolete" dmx-bind:checked="(conn_dspecinfo.data.part.data.status.id == 2)"> | |||||
| <label class="form-check-label col-form-label-sm" for="pt_obsolete" style="width: fit-content;">Obsolete</label> | |||||
| </div> | |||||
| </div> | |||||
| <label for="pt_replacedby" class="col-sm-2 col-form-label col-form-label-sm" style="width: fit-content;">Replaced By:</label> | |||||
| <div class="ms-2 col-sm-2 align-self-center"> | |||||
| <div class="form-check"> | |||||
| <input type="text" class="form-control form-control-sm" id="pt_replacedby" name="ptreplacedby" aria-describedby="ptreplacedby_help" placeholder="Replaced By" style="width: fit-content;" dmx-bind:value="conn_dspecinfo.data.part.data.replacedby.number"> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <label for="rev" class="col-sm-2 col-form-label" style="width: fit-content;">Rev:</label> | |||||
| <div class="ms-2 col-sm-6" style="display:inline-block;"> | |||||
| <input type="text" class="form-control" id="pt_rev" name="ptrev" aria-describedby="input1_help" placeholder="Rev" style="width: fit-content; display:inline-block;" dmx-bind:value="conn_dspecinfo.data.dspec.data.rev"> | |||||
| <button id="btn_newrev" class="btn btn-secondary btn-sm" style="display:inline-block;" dmx-show="conn_dspecinfo.data.dspec.data.id">New Rev</button> | |||||
| </div> | |||||
| <div class="row"> | |||||
| <div class="col"> | |||||
| <label for="pt_description" class="col-sm-2 col-form-label col-form-label-sm" style="width: fit-content;">Description</label> | |||||
| <textarea id="pt_description" class="form-control" name="ptdescription" dmx-bind:value="conn_dspecinfo.data.part.data.description"></textarea> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | |||||
| </div> | |||||
| <div class="row w-100 pt-0 pb-0 ps-0 pe-0"> | |||||
| <div class="col w-100 ms-1 pt-0 pb-0 pe-0 align-self-center"> | |||||
| <div class="form-group mb-3 row"> | |||||
| <div class="row mb-3 pb-2"> | |||||
| <div class="col"> | |||||
| <label for="pt_comment" class="col-sm-2 col-form-label col-form-label-sm" style="width: fit-content;">Comments</label> | |||||
| <textarea id="pt_comment" class="form-control" name="ptcomment" dmx-bind:value="conn_dspecinfo.data.part.data.comments"></textarea> | |||||
| <label for="pt_obsolete" class="col-sm-2 col-form-label" style="width: fit-content;">Part Code:</label> | |||||
| <div class="ms-2 col-sm-3 align-self-center"> | |||||
| <input type="text" class="form-control" id="pt_partcode" name="ptpartcode" aria-describedby="pn_help" placeholder="Part#" style="width: fit-content;" is="dmx-autocomplete" dmx-bind:data="conn_basedata.data.partcodes.data" optiontext="name" optionvalue="id" optionsearch="name" dmx-bind:value="conn_dspecinfo.data.part.data.partcode.id"> | |||||
| </div> | </div> | ||||
| <div class="ms-2 col-sm-2 align-self-center"> | |||||
| <div class="form-check"> | |||||
| <input class="form-check-input" type="checkbox" value="" id="pt_obsolete" name="ptobsolete" dmx-bind:checked="(conn_dspecinfo.data.part.data.status.id == 2)"> | |||||
| <label class="form-check-label" for="pt_obsolete" style="width: fit-content;">Obsolete</label> | |||||
| </div> | |||||
| </div> | |||||
| <div class="col offset-2" dmx-show="conn_dspecinfo.data.part.data.partnumbers.count()>0"> | |||||
| <dmx-array id="arr_deletefiles"></dmx-array> | |||||
| <ul class="nav nav-tabs" id="navTabs1_tabs" role="tablist"> | |||||
| <li class="nav-item"> | |||||
| <a class="nav-link active" id="navTabs1_1_tab" data-bs-toggle="tab" href="#" data-bs-target="#navTabs1_1" role="tab" aria-controls="navTabs1_1" aria-selected="true">Customer Parts</a> | |||||
| </li> | |||||
| <li class="nav-item"> | |||||
| <a class="nav-link" id="navTabs1_2_tab" data-bs-toggle="tab" href="#" data-bs-target="#navTabs1_2" role="tab" aria-controls="navTabs1_2" aria-selected="false">Vendor Parts</a> | |||||
| </li> | |||||
| </ul> | |||||
| <div class="tab-content" id="navTabs1_content"> | |||||
| <div class="tab-pane fade show active" id="navTabs1_1" role="tabpanel"> | |||||
| <div class="table-responsive"> | |||||
| <table class="table table-striped table-bordered table-hover table-sm"> | |||||
| <thead> | |||||
| <tr> | |||||
| <th></th> | |||||
| <th>Customer</th> | |||||
| <th>Number</th> | |||||
| </tr> | |||||
| <tr> | |||||
| <th scope="row" colspan="3"> | |||||
| <a href="#" class="btn btn-sm" dmx-on:click="">Delete Selected</a> | |||||
| </th> | |||||
| </tr> | |||||
| </thead> | |||||
| <tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_dspecinfo.data.part.data.partnumbers.where(`customer.id`, null, '!=')" id="tableRepeat2"> | |||||
| <tr> | |||||
| <td> | |||||
| <div class="form-check"> | |||||
| <input class="form-check-input" type="checkbox" value="" id="input1" name="chk_delete" dmx-bind:value="id" dmx-on:checked="arr_deletefiles.add(value)" dmx-on:unchecked="arr_deletefiles.remove(value)"> | |||||
| </div> | |||||
| </td> | |||||
| <td dmx-text="customer.name"> | |||||
| </td> | |||||
| <td dmx-text="number"></td> | |||||
| </tr> | |||||
| </tbody> | |||||
| </table> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <label for="pt_replacedby" class="col-sm-2 col-form-label" style="width: fit-content;">Replaced By:</label> | |||||
| <div class="ms-2 col-sm-2 align-self-center"> | |||||
| <div class="form-check"> | |||||
| <input type="text" class="form-control" id="pt_replacedby" name="ptreplacedby" aria-describedby="ptreplacedby_help" placeholder="Replaced By" style="width: fit-content;" dmx-bind:value="conn_dspecinfo.data.part.data.replacedby.number"> | |||||
| <div class="tab-pane fade" id="navTabs1_2" role="tabpanel"> | |||||
| <div class="table-responsive"> | |||||
| <table class="table table-striped table-bordered table-hover table-sm"> | |||||
| <thead> | |||||
| <tr> | |||||
| <th class="visually-hidden">Id</th> | |||||
| <th>Customer</th> | |||||
| <th>Number</th> | |||||
| </tr> | |||||
| </thead> | |||||
| <tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_dspecinfo.data.part.data.partnumbers.where(`vendor.id`, null, '!=')" id="tableRepeat3"> | |||||
| <tr> | |||||
| <td dmx-text="id" class="visually-hidden"></td> | |||||
| <td dmx-text="vendor.name"> | |||||
| </td> | |||||
| <td dmx-text="number"></td> | |||||
| </tr> | |||||
| </tbody> | |||||
| </table> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="row"> | |||||
| <div class="col"> | |||||
| <label for="pt_description" class="col-sm-2 col-form-label" style="width: fit-content;">Description</label> | |||||
| <textarea id="pt_description" class="form-control" name="ptdescription" dmx-bind:value="conn_dspecinfo.data.part.data.description"></textarea> | |||||
| </div> | |||||
| </div> | |||||
| <div class="row mb-3 pb-2"> | |||||
| <div class="col"> | |||||
| <label for="pt_comment" class="col-sm-2 col-form-label" style="width: fit-content;">Comments</label> | |||||
| <textarea id="pt_comment" class="form-control" name="ptcomment" dmx-bind:value="conn_dspecinfo.data.part.data.comments"></textarea> | |||||
| </div> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div class="w-100 rounded-3 rounded border-secondary border-5 bg-secondary-subtle container-xxl ms-auto me-auto pt-0 pb-0 ps-0 pe-0"> | |||||
| <div class="w-100 rounded-3 rounded border-secondary border-5 bg-secondary-subtle container-xxl ms-auto me-auto pt-0 pb-0 ps-3 pe-3"> | |||||
| <h1 class="text-center">Design Spec</h1> | <h1 class="text-center">Design Spec</h1> | ||||
| <div class="row w-100 pt-0 pb-0 ps-0 pe-0"> | <div class="row w-100 pt-0 pb-0 ps-0 pe-0"> | ||||
| <div class="col w-100 ms-1 pt-0 pb-0 pe-0"> | <div class="col w-100 ms-1 pt-0 pb-0 pe-0"> | ||||
| @@ -210,7 +281,7 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="container-xxl bg-secondary-subtle mt-3 mb-4 ms-auto me-auto pb-3 ps-0 pe-0"> | |||||
| <div class="container-xxl bg-secondary-subtle mt-3 mb-4 ms-auto me-auto pb-3 ps-3 pe-3"> | |||||
| <h1 class="text-center">BOMS</h1> | <h1 class="text-center">BOMS</h1> | ||||
| <div class="row"> | <div class="row"> | ||||
| <div class="col"> | <div class="col"> | ||||
| @@ -207,7 +207,7 @@ | |||||
| <th scope="row">Roles</th> | <th scope="row">Roles</th> | ||||
| </tr> | </tr> | ||||
| </thead> | </thead> | ||||
| <tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_users.data.query" id="tableRepeat1"> | |||||
| <tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_users.data.query" id="tableRepeat1" key="id"> | |||||
| <tr> | <tr> | ||||
| <td> | <td> | ||||
| <button id="btn_edituser" class="btn btn-success w-100" dmx-bind:value="id" dmx-on:click="conn_singleuser.load({id: id});modal1.show();conn_userroles.load({id: id})"> | <button id="btn_edituser" class="btn btn-success w-100" dmx-bind:value="id" dmx-on:click="conn_singleuser.load({id: id});modal1.show();conn_userroles.load({id: id})"> | ||||