Parcourir la source

Create Part Error fixed. Had 2 $_ENV variables as the path so the path was reading http://vapor.prelub.com/api/v1.0/http://vapor.prelub.com/ap/v1.0/

master
rpm-mcarman il y a 2 ans
Parent
révision
2c8c17bc88
11 fichiers modifiés avec 1354 ajouts et 1145 suppressions
  1. +628
    -1083
      app/api/DSpec/searchpn.json
  2. +1
    -1
      app/api/Parts/asynccalls/create_part.json
  3. +3
    -0
      app/api/files/linkfile.json
  4. +186
    -0
      public/dmxAppConnect/config.js
  5. +379
    -0
      public/dmxAppConnect/dmxPreloader/dmxPreloader.css
  6. +8
    -0
      public/dmxAppConnect/dmxPreloader/dmxPreloader.js
  7. +3
    -1
      views/layouts/smain.ejs
  8. +4
    -0
      views/partials/.wappler_folder.json
  9. +11
    -0
      views/partials/partinfocard.ejs
  10. +130
    -59
      views/secure/dspecgeneral.ejs
  11. +1
    -1
      views/wadmin/usermanage.ejs

+ 628
- 1083
app/api/DSpec/searchpn.json
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 1
app/api/Parts/asynccalls/create_part.json Voir le fichier

@@ -211,7 +211,7 @@
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV$_ENV.API_BASEURL+'partnumbers/async'}}",
"url": "{{$_ENV.API_BASEURL+'partnumbers/async'}}",
"dataType": "json",
"schema": [
{


+ 3
- 0
app/api/files/linkfile.json Voir le fichier

@@ -0,0 +1,3 @@
{
"exec": {}
}

+ 186
- 0
public/dmxAppConnect/config.js Voir le fichier

@@ -8291,6 +8291,192 @@ dmx.config({
"var_bomdspecid": {
"meta": null,
"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": {


+ 379
- 0
public/dmxAppConnect/dmxPreloader/dmxPreloader.css Voir le fichier

@@ -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; }
}

+ 8
- 0
public/dmxAppConnect/dmxPreloader/dmxPreloader.js Voir le fichier

@@ -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

+ 3
- 1
views/layouts/smain.ejs Voir le fichier

@@ -47,6 +47,8 @@
<script src="/dmxAppConnect/dmxBootstrap4Navigation/dmxBootstrap4Navigation.js" defer></script>
<script src="/dmxAppConnect/dmxBootstrap4Modal/dmxBootstrap4Modal.js" defer></script>
<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>

<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_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_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 class="modal" id="mod_changepartcode" is="dmx-bs5-modal" tabindex="-1">
<div class="modal-dialog" role="document">


+ 4
- 0
views/partials/.wappler_folder.json Voir le fichier

@@ -2,5 +2,9 @@
"newpart.ejs": {
"description": "",
"layoutPage": "smain"
},
"partinfocard.ejs": {
"description": "",
"layoutPage": "smain"
}
}

+ 11
- 0
views/partials/partinfocard.ejs Voir le fichier

@@ -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>

+ 130
- 59
views/secure/dspecgeneral.ejs Voir le fichier

@@ -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-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_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>
<h1 class="mt-3 ms-4 text-center">General DSpec</h1>

</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>
<div class="row">
<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 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 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>
<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 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 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()&gt;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>
<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 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 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>
<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">
@@ -210,7 +281,7 @@
</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>
<div class="row">
<div class="col">


+ 1
- 1
views/wadmin/usermanage.ejs Voir le fichier

@@ -207,7 +207,7 @@
<th scope="row">Roles</th>
</tr>
</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>
<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})">


Chargement…
Annuler
Enregistrer