Ver a proveniência

3/18/2024

master
rpm-mcarman há 2 anos
ascendente
cometimento
13d7da0c07
22 ficheiros alterados com 4600 adições e 526 eliminações
  1. +202
    -0
      app/api/PartCodes/cmasters.json
  2. +586
    -0
      app/api/PartCodes/masters.json
  3. +164
    -0
      app/api/PartCodes/parent.json
  4. +1504
    -0
      app/api/Parts/asynccalls/create_part.json
  5. +4
    -23
      app/api/Parts/newpart.json
  6. +425
    -0
      app/api/Users/addtorole.json
  7. +2
    -20
      app/api/Users/create.json
  8. +67
    -0
      app/api/Users/insert.json
  9. +555
    -0
      app/api/roles/cnfrm_addroles.json
  10. +55
    -270
      app/api/security/confirm.json
  11. +154
    -149
      app/api/security/defalutadminapi.json
  12. +78
    -12
      app/api/security/isauthenticated.json
  13. +243
    -33
      app/api/security/whoami.json
  14. BIN
      data/authdb.sqlite3
  15. +71
    -0
      public/css/style.css
  16. +366
    -0
      public/dmxAppConnect/config.js
  17. +32
    -3
      views/cnfrm.ejs
  18. +77
    -4
      views/layouts/smain.ejs
  19. +5
    -5
      views/secure/dspec.ejs
  20. +1
    -1
      views/secure/dspecmotor.ejs
  21. +8
    -5
      views/secure/partinfo.ejs
  22. +1
    -1
      views/wadmin/usermanage.ejs

+ 202
- 0
app/api/PartCodes/cmasters.json Ver ficheiro

@@ -0,0 +1,202 @@
{
"meta": {
"$_GET": [
{
"type": "text",
"name": "code"
}
]
},
"exec": {
"steps": {
"name": "api",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'partcodes/cmasters/'+$_GET.code}}",
"schema": [
{
"type": "array",
"name": "data",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "text",
"name": "code"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
]
},
"output": true,
"meta": [
{
"type": "array",
"name": "data",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "text",
"name": "code"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
],
"outputType": "object"
}
}
}

+ 586
- 0
app/api/PartCodes/masters.json Ver ficheiro

@@ -0,0 +1,586 @@
[
{
"name": "list",
"module": "api",
"action": "send",
"options": {
"url": "http://localhost:8080/api/v1.0/partcodes/masters",
"schema": [
{
"type": "array",
"name": "data",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "text",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "code"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
]
},
"output": true,
"meta": [
{
"type": "array",
"name": "data",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "text",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "code"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
],
"outputType": "object"
},
{
"name": "allpartcodes",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'partcodes/ispartcode'}}",
"schema": [
{
"type": "array",
"name": "data",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "text",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "ending"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "number",
"name": "starting"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "text",
"name": "name"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "text",
"name": "code"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "array",
"name": "children",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "text",
"name": "code"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "array",
"name": "children"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
]
},
"output": true,
"meta": [
{
"type": "array",
"name": "data",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "text",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "ending"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "number",
"name": "starting"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "text",
"name": "name"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "text",
"name": "code"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "array",
"name": "children",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "text",
"name": "code"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "array",
"name": "children"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
],
"outputType": "object"
}
]

+ 164
- 0
app/api/PartCodes/parent.json Ver ficheiro

@@ -0,0 +1,164 @@
{
"meta": {
"$_GET": [
{
"type": "number",
"name": "id"
}
]
},
"exec": {
"steps": [
{
"name": "api",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'/partcodes/parent/'+$_GET.id}}",
"schema": [
{
"type": "text",
"name": "data"
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
]
},
"output": true,
"meta": [
{
"type": "text",
"name": "data"
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
],
"outputType": "object"
},
{
"name": "",
"module": "core",
"action": "condition",
"options": {
"if": "{{api.data==0}}",
"then": {
"steps": {
"name": "view",
"module": "core",
"action": "setvalue",
"options": {
"key": "g_view",
"value": "change"
},
"meta": [],
"output": true,
"outputType": "text"
}
},
"else": {
"steps": {
"name": "",
"module": "core",
"action": "condition",
"options": {
"if": "{{api.data==2}}",
"then": {
"steps": {
"name": "view",
"module": "core",
"action": "setvalue",
"options": {
"value": "dspecm"
},
"meta": [],
"output": true,
"outputType": "text"
}
},
"else": {
"steps": {
"name": "",
"module": "core",
"action": "condition",
"options": {
"if": "{{api.data==3}}",
"then": {
"steps": {
"name": "view",
"module": "core",
"action": "setvalue",
"options": {
"value": "dspec"
},
"meta": [],
"output": true,
"outputType": "text"
}
},
"else": {
"steps": {
"name": "view",
"module": "core",
"action": "setvalue",
"options": {
"value": "dspecg"
},
"meta": [],
"output": true,
"outputType": "text"
}
}
},
"outputType": "boolean"
}
}
},
"outputType": "boolean"
}
}
},
"outputType": "boolean"
}
]
}
}

+ 1504
- 0
app/api/Parts/asynccalls/create_part.json
A apresentação das diferenças no ficheiro foi suprimida por ser demasiado grande
Ver ficheiro


+ 4
- 23
app/api/Parts/newpart.json Ver ficheiro

@@ -109,13 +109,7 @@
] ]
} }
], ],
"outputType": "object",
"metaData": {
"apiUrl": {
"name": "API_BASEURL",
"type": "text"
}
}
"outputType": "object"
}, },
{ {
"name": "partnumber", "name": "partnumber",
@@ -126,8 +120,7 @@
"value": "{{$_GET.parttypeid+'-'+$_GET.partcodeid+'-'+api.data.number}}" "value": "{{$_GET.parttypeid+'-'+$_GET.partcodeid+'-'+api.data.number}}"
}, },
"meta": [], "meta": [],
"outputType": "text",
"metaData": {}
"outputType": "text"
}, },
{ {
"name": "insertpn", "name": "insertpn",
@@ -175,13 +168,7 @@
] ]
} }
], ],
"outputType": "object",
"metaData": {
"apiUrl": {
"name": "API_BASEURL",
"type": "text"
}
}
"outputType": "object"
}, },
{ {
"name": "insertpart", "name": "insertpart",
@@ -251,13 +238,7 @@
] ]
} }
], ],
"outputType": "object",
"metaData": {
"apiUrl": {
"name": "API_BASEURL",
"type": "text"
}
}
"outputType": "object"
} }
] ]
} }

+ 425
- 0
app/api/Users/addtorole.json Ver ficheiro

@@ -0,0 +1,425 @@
{
"meta": {
"$_GET": [
{
"type": "text",
"name": "roleid"
},
{
"type": "text",
"name": "userid"
},
{
"type": "text",
"name": "sort"
},
{
"type": "text",
"name": "dir"
}
]
},
"exec": {
"steps": [
{
"name": "identity",
"module": "auth",
"action": "identify",
"options": {
"provider": "auth"
},
"output": true,
"meta": []
},
{
"name": "query",
"module": "dbconnector",
"action": "select",
"options": {
"connection": "authdb",
"sql": {
"type": "select",
"columns": [
{
"table": "xuserrole",
"column": "roleid"
}
],
"params": [
{
"operator": "equal",
"type": "expression",
"name": ":P1",
"value": "{{identity}}",
"test": ""
}
],
"table": {
"name": "xuserrole"
},
"primary": "id",
"joins": [],
"wheres": {
"condition": "AND",
"rules": [
{
"id": "xuserrole.userid",
"field": "xuserrole.userid",
"type": "double",
"operator": "equal",
"value": "{{identity}}",
"data": {
"table": "xuserrole",
"column": "userid",
"type": "number",
"columnObj": {
"type": "integer",
"primary": false,
"unique": false,
"nullable": true,
"name": "userid"
}
},
"operation": "="
}
],
"conditional": null,
"valid": true
},
"query": "select `roleid` from `xuserrole` where `xuserrole`.`userid` = ?"
}
},
"output": true,
"meta": [
{
"type": "number",
"name": "roleid"
}
],
"outputType": "array"
},
{
"name": "repeat",
"module": "core",
"action": "repeat",
"options": {
"repeat": "{{query}}",
"outputFields": [],
"exec": {
"steps": {
"name": "api",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'/xuserroles/add/'+query[$index].roleid+'/'+identity}}",
"schema": [
{
"type": "array",
"name": "data",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "user",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "password"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "username"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "number",
"name": "id"
},
{
"type": "object",
"name": "role",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "text",
"name": "name"
},
{
"type": "boolean",
"name": "isdepartment"
}
]
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
],
"method": "POST"
},
"output": true,
"meta": [
{
"type": "array",
"name": "data",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "user",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "password"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "username"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "number",
"name": "id"
},
{
"type": "object",
"name": "role",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "text",
"name": "name"
},
{
"type": "boolean",
"name": "isdepartment"
}
]
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
],
"outputType": "object"
}
}
},
"output": true,
"meta": [
{
"name": "$index",
"type": "number"
},
{
"name": "$number",
"type": "number"
},
{
"name": "$name",
"type": "text"
},
{
"name": "$value",
"type": "object"
},
{
"name": "roleid",
"type": "number"
}
],
"outputType": "array"
}
]
}
}

+ 2
- 20
app/api/Users/create.json Ver ficheiro

@@ -32,13 +32,7 @@
"options": { "options": {
"password": "{{strpwd}}" "password": "{{strpwd}}"
}, },
"outputType": "text",
"metaData": {
"hashPassword": {
"name": "strpwd",
"type": "text"
}
}
"outputType": "text"
}, },
{ {
"name": "regcode", "name": "regcode",
@@ -49,13 +43,7 @@
"value": "{{UUID}}" "value": "{{UUID}}"
}, },
"meta": [], "meta": [],
"outputType": "text",
"metaData": {
"setValueExpression": {
"name": "UUID",
"type": "object"
}
}
"outputType": "text"
}, },
{ {
"name": "insert", "name": "insert",
@@ -233,12 +221,6 @@
"toEmail": "{{$_POST.email}}", "toEmail": "{{$_POST.email}}",
"body": "<p>\nHere are your credentials to login for the first time and your registration code to validate your account.\nYour username is: {{$_POST.email}}\nYour password is: P@$$w0rd\nYour validation code is: {{regcode}}\n</p><Br/>\n<p>Click <a href='http://access2.prelub.com'>here</a> to be directed to the website.\n Then click the account menu and login.\n Once you login you will be prompted for the validation code.\n</p>\n\n\n\n", "body": "<p>\nHere are your credentials to login for the first time and your registration code to validate your account.\nYour username is: {{$_POST.email}}\nYour password is: P@$$w0rd\nYour validation code is: {{regcode}}\n</p><Br/>\n<p>Click <a href='http://access2.prelub.com'>here</a> to be directed to the website.\n Then click the account menu and login.\n Once you login you will be prompted for the validation code.\n</p>\n\n\n\n",
"contentType": "html" "contentType": "html"
},
"metaData": {
"sendToEmail": {
"name": "email",
"type": "text"
}
} }
} }
] ]


+ 67
- 0
app/api/Users/insert.json Ver ficheiro

@@ -0,0 +1,67 @@
{
"meta": {
"$_GET": [
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "text",
"name": "email"
}
]
},
"exec": {
"steps": [
{
"name": "identity",
"module": "auth",
"action": "identify",
"options": {
"provider": "auth"
},
"output": true,
"meta": []
},
{
"name": "strId",
"module": "core",
"action": "setvalue",
"options": {
"key": "g_strId",
"value": "{{identity.toString()}}"
},
"meta": [],
"outputType": "text"
},
{
"name": "api",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'users/insert'}}",
"method": "POST",
"dataType": "json",
"data": {
"id": "{{strId}}",
"createuserid": -1,
"updatedate": "{{NOW}}",
"lastname": "{{$_GET.lastname}}",
"firstname": "{{$_GET.firstname}}",
"updateuserid": -1,
"password": null,
"isactive": true,
"username": null,
"createdate": "{{NOW}}",
"email": "{{$_GET.email}}"
}
},
"output": true
}
]
}
}

+ 555
- 0
app/api/roles/cnfrm_addroles.json Ver ficheiro

@@ -0,0 +1,555 @@
{
"meta": {
"$_GET": [
{
"type": "text",
"name": "sort"
},
{
"type": "text",
"name": "dir"
},
{
"type": "text",
"name": "userid"
}
]
},
"exec": {
"steps": [
{
"name": "query",
"module": "dbconnector",
"action": "select",
"options": {
"connection": "authdb",
"sql": {
"type": "select",
"columns": [
{
"table": "xuserrole",
"column": "roleid",
"recid": 1
}
],
"params": [
{
"operator": "equal",
"type": "expression",
"name": ":P1",
"value": "{{$_GET.userid}}",
"test": ""
}
],
"table": {
"name": "xuserrole"
},
"primary": "id",
"joins": [],
"wheres": {
"condition": "AND",
"rules": [
{
"id": "xuserrole.userid",
"field": "xuserrole.userid",
"type": "double",
"operator": "equal",
"value": "{{$_GET.userid}}",
"data": {
"table": "xuserrole",
"column": "userid",
"type": "number",
"columnObj": {
"type": "integer",
"primary": false,
"unique": false,
"nullable": true,
"name": "userid"
}
},
"operation": "=",
"table": "xuserrole"
}
],
"conditional": null,
"valid": true
},
"query": "select `roleid` from `xuserrole` where `xuserrole`.`userid` = ?"
}
},
"output": true,
"meta": [
{
"type": "number",
"name": "roleid"
}
],
"outputType": "array"
},
{
"name": "repeat",
"module": "core",
"action": "repeat",
"options": {
"repeat": "{{query}}",
"outputFields": [],
"exec": {
"steps": {
"name": "api",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'xuserroles/add/'+$_GET.userid+'/'+roleid}}",
"schema": [
{
"type": "object",
"name": "data",
"sub": [
{
"type": "object",
"name": "userid",
"sub": [
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "password"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "object",
"name": "roleid",
"sub": [
{
"type": "text",
"name": "name"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "boolean",
"name": "isdepartment"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
],
"method": "POST"
},
"output": true,
"meta": [
{
"type": "object",
"name": "data",
"sub": [
{
"type": "object",
"name": "userid",
"sub": [
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "password"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "object",
"name": "roleid",
"sub": [
{
"type": "text",
"name": "name"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "boolean",
"name": "isdepartment"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
],
"outputType": "object"
}
}
},
"output": true,
"meta": [
{
"name": "$index",
"type": "number"
},
{
"name": "$number",
"type": "number"
},
{
"name": "$name",
"type": "text"
},
{
"name": "$value",
"type": "object"
},
{
"name": "roleid",
"type": "number"
},
{
"name": "api",
"type": "object",
"sub": [
{
"type": "object",
"name": "data",
"sub": [
{
"type": "object",
"name": "userid",
"sub": [
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "password"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "object",
"name": "roleid",
"sub": [
{
"type": "text",
"name": "name"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "boolean",
"name": "isdepartment"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
]
}
],
"outputType": "array"
}
]
}
}

+ 55
- 270
app/api/security/confirm.json Ver ficheiro

@@ -23,27 +23,77 @@
{ {
"type": "text", "type": "text",
"fieldName": "confirmation", "fieldName": "confirmation",
"options": {
"rules": {
"core:required": {
"param": ""
}
}
},
"name": "confirmation" "name": "confirmation"
}, },
{ {
"type": "text", "type": "text",
"fieldName": "firstname", "fieldName": "firstname",
"options": {
"rules": {
"core:required": {
"param": ""
}
}
},
"name": "firstname" "name": "firstname"
}, },
{ {
"type": "text", "type": "text",
"fieldName": "lastname1", "fieldName": "lastname1",
"options": {
"rules": {
"core:required": {
"param": ""
}
}
},
"name": "lastname1" "name": "lastname1"
}, },
{ {
"type": "text", "type": "text",
"fieldName": "email", "fieldName": "email",
"options": {
"rules": {
"core:required": {
"param": ""
}
}
},
"name": "email" "name": "email"
}, },
{ {
"type": "text", "type": "text",
"fieldName": "password", "fieldName": "password",
"options": {
"rules": {
"core:required": {
"param": ""
}
}
},
"name": "password" "name": "password"
},
{
"type": "text",
"fieldName": "pwd2",
"options": {
"rules": {
"core:required": {
"param": ""
},
"core:equalTo": {
"param": "password"
}
}
},
"name": "pwd2"
} }
] ]
}, },
@@ -197,13 +247,11 @@
"columns": [ "columns": [
{ {
"table": "xuserrole", "table": "xuserrole",
"column": "userid",
"recid": 1
"column": "userid"
}, },
{ {
"table": "xuserrole", "table": "xuserrole",
"column": "roleid",
"recid": 2
"column": "roleid"
} }
], ],
"params": [ "params": [
@@ -211,7 +259,7 @@
"operator": "equal", "operator": "equal",
"type": "expression", "type": "expression",
"name": ":P1", "name": ":P1",
"value": "{{$_POST.id}}",
"value": "{{identity}}",
"test": "" "test": ""
} }
], ],
@@ -228,7 +276,7 @@
"field": "xuserrole.userid", "field": "xuserrole.userid",
"type": "double", "type": "double",
"operator": "equal", "operator": "equal",
"value": "{{$_POST.id}}",
"value": "{{identity}}",
"data": { "data": {
"table": "xuserrole", "table": "xuserrole",
"column": "userid", "column": "userid",
@@ -241,8 +289,7 @@
"name": "userid" "name": "userid"
} }
}, },
"operation": "=",
"table": "xuserrole"
"operation": "="
} }
], ],
"conditional": null, "conditional": null,
@@ -263,268 +310,6 @@
} }
], ],
"outputType": "array" "outputType": "array"
},
{
"name": "api",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'users/insert'}}",
"dataType": "json",
"schema": [
{
"type": "object",
"name": "data",
"sub": [
{
"type": "boolean",
"name": "isactive"
},
{
"type": "array",
"name": "roles",
"sub": [
{
"type": "text",
"name": "description"
},
{
"type": "text",
"name": "updateuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "createuserid"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "password"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
],
"method": "POST",
"data": {
"isactive": true,
"id": "{{$_POST.id.toString()}}",
"firstname": "{{$_POST.firstname}}",
"email": "{{$_POST.email}}",
"lastname": "{{$_POST.lastname1}}",
"username": null,
"password": "{{hash}}",
"updateuserid": "{{identity}}",
"createuserid": "{{identity}}"
}
},
"output": true,
"meta": [
{
"type": "object",
"name": "data",
"sub": [
{
"type": "boolean",
"name": "isactive"
},
{
"type": "array",
"name": "roles",
"sub": [
{
"type": "text",
"name": "description"
},
{
"type": "text",
"name": "updateuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "createuserid"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "password"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
],
"outputType": "object",
"disabled": true
},
{
"name": "repeat",
"module": "core",
"action": "repeat",
"options": {
"repeat": "{{query.count()}}",
"outputFields": [],
"exec": {
"steps": {
"name": "addroles",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'xuserroles/add/'+$_POST.id+'/'+roleid}}",
"method": "POST"
},
"output": true
}
}
},
"output": true,
"meta": [
{
"name": "$index",
"type": "number"
},
{
"name": "$number",
"type": "number"
},
{
"name": "$name",
"type": "text"
},
{
"name": "$value",
"type": "object"
},
{
"name": "userid",
"type": "number"
},
{
"name": "roleid",
"type": "number"
},
{
"name": "addroles",
"type": "text"
}
],
"outputType": "array",
"disabled": true
} }
] ]
}, },


+ 154
- 149
app/api/security/defalutadminapi.json Ver ficheiro

@@ -39,15 +39,7 @@
"column": "lastname" "column": "lastname"
} }
], ],
"params": [
{
"operator": "equal",
"type": "expression",
"name": ":P1",
"value": "{{$_GET.id}}",
"test": ""
}
],
"params": [],
"table": { "table": {
"name": "users" "name": "users"
}, },
@@ -57,21 +49,22 @@
"condition": "AND", "condition": "AND",
"rules": [ "rules": [
{ {
"id": "users.id",
"field": "users.id",
"type": "double",
"id": "users.email",
"field": "users.email",
"type": "string",
"operator": "equal", "operator": "equal",
"value": "{{$_GET.id}}",
"value": "admin@prelub.com",
"data": { "data": {
"table": "users", "table": "users",
"column": "id",
"type": "number",
"column": "email",
"type": "text",
"columnObj": { "columnObj": {
"type": "increments",
"primary": true,
"type": "string",
"maxLength": 255,
"primary": false,
"unique": false, "unique": false,
"nullable": false,
"name": "id"
"nullable": true,
"name": "email"
} }
}, },
"operation": "=" "operation": "="
@@ -80,7 +73,7 @@
"conditional": null, "conditional": null,
"valid": true "valid": true
}, },
"query": "select `id`, `email`, `pwd`, `firstname`, `lastname` from `users` where `users`.`id` = ?"
"query": "select `id`, `email`, `pwd`, `firstname`, `lastname` from `users` where `users`.`email` = ?"
} }
}, },
"output": true, "output": true,
@@ -109,143 +102,155 @@
"outputType": "object" "outputType": "object"
}, },
{ {
"name": "insertuser",
"module": "api",
"action": "send",
"name": "",
"module": "core",
"action": "condition",
"options": { "options": {
"url": "{{$_ENV.API_BASEURL+'users/insert'}}",
"method": "POST",
"schema": [
{
"type": "object",
"name": "data",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "text",
"name": "password"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
}
],
"dataType": "json",
"data": {
"id": "{{gettheuser.id.toString()}}",
"firstname": "{{gettheuser.firstname}}",
"lastname": "{{gettheuser.lastname}}",
"email": "{{gettheuser.email}}",
"password": "{{gettheuser.password}}",
"isactive": true,
"createuserid": -1,
"updateuserid": -1,
"username": null
}
},
"output": true,
"meta": [
{
"type": "object",
"name": "data",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "text",
"name": "password"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "firstname"
},
"if": "{{!gettheuser}}",
"then": {
"steps": [
{ {
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "createdate"
"name": "insertuser",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'users/insert'}}",
"method": "POST",
"schema": [
{
"type": "object",
"name": "data",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "text",
"name": "password"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
}
],
"dataType": "json",
"data": {
"id": "{{gettheuser.id.toString()}}",
"firstname": "{{gettheuser.firstname}}",
"lastname": "{{gettheuser.lastname}}",
"email": "{{gettheuser.email}}",
"password": "{{gettheuser.password}}",
"isactive": true,
"createuserid": -1,
"updateuserid": -1,
"username": null
}
},
"output": true,
"meta": [
{
"type": "object",
"name": "data",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "text",
"name": "password"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "email"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "number",
"name": "createuserid"
}
]
}
],
"outputType": "object"
}, },
{ {
"type": "number",
"name": "createuserid"
"name": "addrole",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'xuserroles/add/'+gettheuser.id+'/1'}}",
"method": "POST",
"dataType": "json"
},
"output": true
} }
] ]
} }
],
"outputType": "object"
},
{
"name": "addrole",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'xuserroles/add/'+gettheuser.id+'/1'}}",
"method": "POST",
"dataType": "json"
}, },
"output": true,
"metaData": {}
"outputType": "boolean"
} }
] ]
} }

+ 78
- 12
app/api/security/isauthenticated.json Ver ficheiro

@@ -232,6 +232,82 @@
"name": "isDepartment" "name": "isDepartment"
} }
], ],
"outputType": "array",
"output": true
},
{
"name": "xuserroles",
"module": "dbconnector",
"action": "select",
"options": {
"connection": "authdb",
"sql": {
"type": "select",
"columns": [
{
"table": "xuserrole",
"column": "userid"
},
{
"table": "xuserrole",
"column": "roleid"
}
],
"params": [
{
"operator": "equal",
"type": "expression",
"name": ":P1",
"value": "{{identity}}",
"test": ""
}
],
"table": {
"name": "xuserrole"
},
"primary": "id",
"joins": [],
"wheres": {
"condition": "AND",
"rules": [
{
"id": "xuserrole.userid",
"field": "xuserrole.userid",
"type": "double",
"operator": "equal",
"value": "{{identity}}",
"data": {
"table": "xuserrole",
"column": "userid",
"type": "number",
"columnObj": {
"type": "integer",
"primary": false,
"unique": false,
"nullable": true,
"name": "userid"
}
},
"operation": "="
}
],
"conditional": null,
"valid": true
},
"query": "select `userid`, `roleid` from `xuserrole` where `xuserrole`.`userid` = ?"
}
},
"output": true,
"meta": [
{
"type": "number",
"name": "userid"
},
{
"type": "number",
"name": "roleid"
}
],
"outputType": "array" "outputType": "array"
}, },
{ {
@@ -269,7 +345,6 @@
} }
], ],
"outputType": "text", "outputType": "text",
"metaData": {},
"output": true "output": true
}, },
{ {
@@ -295,12 +370,6 @@
} }
], ],
"outputType": "text", "outputType": "text",
"metaData": {
"setValueExpression": {
"name": "roles",
"type": "array"
}
},
"output": true "output": true
}, },
{ {
@@ -326,7 +395,6 @@
} }
], ],
"outputType": "text", "outputType": "text",
"metaData": {},
"output": true "output": true
}, },
{ {
@@ -522,8 +590,7 @@
} }
} }
}, },
"outputType": "boolean",
"metaData": {}
"outputType": "boolean"
}, },
{ {
"name": "", "name": "",
@@ -543,8 +610,7 @@
} }
} }
}, },
"outputType": "boolean",
"metaData": {}
"outputType": "boolean"
} }
] ]
} }

+ 243
- 33
app/api/security/whoami.json Ver ficheiro

@@ -130,7 +130,12 @@
"connection": "authdb", "connection": "authdb",
"sql": { "sql": {
"type": "select", "type": "select",
"columns": [],
"columns": [
{
"table": "xuserrole",
"column": "roleid"
}
],
"params": [ "params": [
{ {
"operator": "equal", "operator": "equal",
@@ -141,32 +146,10 @@
} }
], ],
"table": { "table": {
"name": "roles"
"name": "xuserrole"
}, },
"primary": "id", "primary": "id",
"joins": [
{
"table": "xuserrole",
"column": "*",
"type": "INNER",
"clauses": {
"condition": "AND",
"rules": [
{
"table": "xuserrole",
"column": "roleid",
"operator": "equal",
"operation": "=",
"value": {
"table": "roles",
"column": "id"
}
}
]
},
"primary": "id"
}
],
"joins": [],
"wheres": { "wheres": {
"condition": "AND", "condition": "AND",
"rules": [ "rules": [
@@ -194,25 +177,252 @@
"conditional": null, "conditional": null,
"valid": true "valid": true
}, },
"query": "select * from `roles` inner join `xuserrole` on `xuserrole`.`roleid` = `roles`.`id` where `xuserrole`.`userid` = ?"
"query": "select `roleid` from `xuserrole` where `xuserrole`.`userid` = ?"
} }
}, },
"output": true, "output": true,
"meta": [ "meta": [
{ {
"type": "number", "type": "number",
"name": "id"
},
"name": "roleid"
}
],
"outputType": "array"
},
{
"name": "api_userinfo",
"module": "api",
"action": "send",
"options": {
"url": "{{$_ENV.API_BASEURL+'users/'+identity}}",
"schema": [
{
"type": "object",
"name": "data",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "array",
"name": "roles",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "text",
"name": "name"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "boolean",
"name": "isdepartment"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "password"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "email"
}
]
},
{
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
}
]
},
"output": true,
"meta": [
{ {
"type": "text",
"name": "name"
"type": "object",
"name": "data",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "array",
"name": "roles",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "text",
"name": "name"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "boolean",
"name": "isdepartment"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "text",
"name": "lastname"
},
{
"type": "text",
"name": "firstname"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "password"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "username"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "email"
}
]
}, },
{ {
"type": "boolean",
"name": "isDepartment"
"type": "object",
"name": "headers",
"sub": [
{
"type": "text",
"name": "connection"
},
{
"type": "text",
"name": "content-length"
},
{
"type": "text",
"name": "content-type"
},
{
"type": "text",
"name": "date"
}
]
} }
], ],
"outputType": "array"
"outputType": "object",
"disabled": true
} }
] ]
} }

BIN
data/authdb.sqlite3 Ver ficheiro


+ 71
- 0
public/css/style.css Ver ficheiro

@@ -0,0 +1,71 @@
.:active {
background-color: #000;
border-width: 4px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-left-radius: 3px;
border-bottom-right-radius: 4px;
background-size: cover;
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(33%, black),
to(white)
);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(33%, black),
to(white)
);
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(33%, black),
to(white)
);
background-image: linear-gradient(0deg, black 33%, white 100%);
}
.:hover {
background-color: #f70808;
}
.:focus {
background-color: #ffc107;
}
.:visited {
background-color: #084298;
}
.wappler-temp {
}
.wappler-temp {
}
.wappler-temp {
}
.wappler-temp {
}
.wappler-temp {
}
.wappler-temp {
}
.wappler-temp {
}
.wappler-temp {
}
.wappler-temp {
}
.wappler-temp {
}
.wappler-temp {
}
.wappler-temp {
}
.tab {
}
.tab:active {
font-size: large;
line-height: normal;
color: #fff;
}

+ 366
- 0
public/dmxAppConnect/config.js Ver ficheiro

@@ -14413,6 +14413,340 @@ dmx.config({
"pg_apiurl": { "pg_apiurl": {
"meta": [], "meta": [],
"outputType": "text" "outputType": "text"
},
"arr_childpcs": {
"meta": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "text",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "ending"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "number",
"name": "starting"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "text",
"name": "name"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "text",
"name": "code"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "array",
"name": "children",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "text",
"name": "code"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "array",
"name": "children"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
],
"outputType": "array"
},
"arr_partcodes": {
"meta": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "text",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "text",
"name": "updatedate"
},
{
"type": "number",
"name": "ending"
},
{
"type": "number",
"name": "id"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "number",
"name": "starting"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "description"
},
{
"type": "text",
"name": "name"
},
{
"type": "number",
"name": "createuserid"
}
]
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "text",
"name": "code"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "array",
"name": "children",
"sub": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "description"
},
{
"type": "number",
"name": "createuserid"
},
{
"type": "text",
"name": "updatedate"
},
{
"type": "object",
"name": "parent",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "object",
"name": "parttype",
"sub": [
{
"type": "number",
"name": "id"
}
]
},
{
"type": "boolean",
"name": "ispartcode"
},
{
"type": "text",
"name": "code"
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "array",
"name": "children"
},
{
"type": "boolean",
"name": "isactive"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
]
},
{
"type": "number",
"name": "updateuserid"
},
{
"type": "text",
"name": "createdate"
},
{
"type": "text",
"name": "name"
}
],
"outputType": "array"
} }
}, },
"partinfo": { "partinfo": {
@@ -15390,5 +15724,37 @@ dmx.config({
], ],
"outputType": "array" "outputType": "array"
} }
},
"cnfrm": {
"tableRepeat1": {
"meta": [
{
"type": "number",
"name": "id"
},
{
"type": "text",
"name": "name"
},
{
"type": "boolean",
"name": "isDepartment"
}
],
"outputType": "array"
},
"tableRepeat2": {
"meta": [
{
"type": "number",
"name": "userid"
},
{
"type": "number",
"name": "roleid"
}
],
"outputType": "array"
}
} }
}); });

+ 32
- 3
views/cnfrm.ejs Ver ficheiro

@@ -1,6 +1,9 @@
<!-- Wappler include head-page="layouts/newmain" fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="cnfrm" appconnect="local" components="{dmxValidator:{},dmxNotifications:{},dmxFormatter:{}}" -->
<!-- Wappler include head-page="layouts/newmain" fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="cnfrm" appconnect="local" components="{dmxValidator:{},dmxNotifications:{},dmxFormatter:{},dmxBootstrap5TableGenerator:{}}" -->
<dmx-serverconnect id="conn_addrolls" url="/api/roles/cnfrm_addroles" dmx-param:userid="whoami.data.identity" noload="true"></dmx-serverconnect>
<dmx-serverconnect id="whoami" url="/api/security/whoami"></dmx-serverconnect> <dmx-serverconnect id="whoami" url="/api/security/whoami"></dmx-serverconnect>
<dmx-serverconnect id="conn_getuserinfo" url="/api/security/isauthenticated"></dmx-serverconnect>
<dmx-serverconnect id="conn_getuserinfo" url="/api/security/isauthenticated" noload="true"></dmx-serverconnect>
<dmx-serverconnect id="conn_postuser" url="/api/Users/insert" dmx-param:firstname="" dmx-param:lastname="" dmx-param:email="" dmx-on:success="run([{run:{outputType:'text',action:`conn_addrolls.load({userid: whoami.data.identity})`}},{run:{outputType:'text',action:`browser1.goto(\'/partinfo\')`}}])" noload="true"></dmx-serverconnect>
<dmx-serverconnect id="conn_addroles" url="/api/Users/addtorole" noload="true"></dmx-serverconnect>
<dmx-notifications id="notifies1"></dmx-notifications> <dmx-notifications id="notifies1"></dmx-notifications>
<meta name="ac:route" content="/cnfrm"> <meta name="ac:route" content="/cnfrm">
<header> <header>
@@ -10,7 +13,7 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<form id="frm_cnfrm" is="dmx-serverconnect-form" method="post" action="/api/security/confirm" dmx-on:success="browser1.goto('/partinfo')">
<form id="frm_cnfrm" is="dmx-serverconnect-form" method="post" action="/api/security/confirm" dmx-on:success="conn_postuser.load({firstname: firstname.value, lastname: lastname1.value, email: email.value})">
<p><input id="id" name="id" value="" dmx-bind:value="whoami.data.identity" type="hidden"></p> <p><input id="id" name="id" value="" dmx-bind:value="whoami.data.identity" type="hidden"></p>
<p><label for="confirmation">Confirmation:</label><input id="confirmation" name="confirmation" type="text" value="" required=""></p> <p><label for="confirmation">Confirmation:</label><input id="confirmation" name="confirmation" type="text" value="" required=""></p>
<p><label for="firstname">Firstname:</label><input id="firstname" name="firstname" type="text" value="" required=""></p> <p><label for="firstname">Firstname:</label><input id="firstname" name="firstname" type="text" value="" required=""></p>
@@ -24,4 +27,30 @@
</form> </form>
</div> </div>
</div> </div>
<div class="row">
<div class="col">
<div class="table-responsive">
<table class="table table-striped table-bordered table-hover table-sm">
<thead>
<tr>
<th>Userid</th>
<th>Roleid</th>
</tr>
</thead>
<tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_getuserinfo.data.xuserroles" id="tableRepeat1">
<tr>
<td dmx-text="userid"></td>
<td dmx-text="roleid"></td>
</tr>
</tbody>
<tfoot>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div> </div>

+ 77
- 4
views/layouts/smain.ejs Ver ficheiro

@@ -54,15 +54,88 @@
<dmx-value id="var_partid"></dmx-value> <dmx-value id="var_partid"></dmx-value>
<dmx-value id="var_userinfo"></dmx-value> <dmx-value id="var_userinfo"></dmx-value>
<dmx-value id="pg_apiurl" dmx-bind:value="conn_urls.data.apiurl"></dmx-value> <dmx-value id="pg_apiurl" dmx-bind:value="conn_urls.data.apiurl"></dmx-value>
<dmx-serverconnect id="viewsearch" noload="true" url="/api/PartCodes/parent" dmx-on:success="run({condition:{outputType:'boolean',if:`(viewsearch.data.view == \'change\')`,then:{steps:{run:{outputType:'text',action:`mod_changepartcode.show()`}}},else:{steps:{run:{outputType:'text',action:`browser1.goto(\'/\'+viewsearch.data.view+\'?id=\'+var_partid.value)`}}}}})"></dmx-serverconnect>
<dmx-serverconnect id="whoami" url="/api/security/whoami"></dmx-serverconnect> <dmx-serverconnect id="whoami" url="/api/security/whoami"></dmx-serverconnect>
<dmx-serverconnect id="conn_basedata" url="/api/Parts/newpartbasedata"></dmx-serverconnect> <dmx-serverconnect id="conn_basedata" url="/api/Parts/newpartbasedata"></dmx-serverconnect>
<dmx-serverconnect id="conn_urls" url="/api/gs/urls"></dmx-serverconnect> <dmx-serverconnect id="conn_urls" url="/api/gs/urls"></dmx-serverconnect>
<dmx-serverconnect id="conn_isauthenticated" url="/api/security/isauthenticated" dmx-on:forbidden="browser1.goto('/cnfrm',true)" dmx-on:unauthorized="browser1.goto('/',true)"></dmx-serverconnect> <dmx-serverconnect id="conn_isauthenticated" url="/api/security/isauthenticated" dmx-on:forbidden="browser1.goto('/cnfrm',true)" dmx-on:unauthorized="browser1.goto('/',true)"></dmx-serverconnect>
<dmx-serverconnect id="conn_logout" url="/api/security/logout" dmx-on:success="browser1.goto('/')" noload="true"></dmx-serverconnect> <dmx-serverconnect id="conn_logout" url="/api/security/logout" dmx-on:success="browser1.goto('/')" noload="true"></dmx-serverconnect>
<dmx-serverconnect id="conn_newpart" url="/api/Parts/newpart" noload="true" dmx-param:description="modal_newpart.inp_description.value" dmx-param:comments="modal_newpart.inp_comments.value" dmx-param:partcodeid="modal_newpart.new_partcode.value" dmx-param:parttypeid="modal_newpart.new_parttype.value" dmx-on:success="run([{condition:{outputType:'boolean',if:`(modal_newpart.new_parttype.value == 1)`,then:{steps:{run:{name:'routeToMotorDspec',outputType:'text',action:`browser1.goto(\'/dspecm?id=\'+conn_newpart.data.insertpart.data.id,true,\'Motor Dspec\')`}}},else:{steps:{condition:{outputType:'boolean',if:`(modal_newpart.new_parttype.value == 2)`,then:{steps:{run:{name:'routeToKitDspec',outputType:'text',action:`browser1.goto(\'/dspec?id=\'+conn_newpart.data.insertpart.data.id,true,\'Kit Dspec\')`}}},else:{steps:{condition:{outputType:'boolean',if:`(modal_newpart.new_parttype.value == 3)`,then:{steps:{run:{name:'routeToKitDspec_copy',outputType:'text',action:`browser1.goto(\'/dspec\',true,\'Kit Dspec\')`}}},else:{steps:{condition:{outputType:'boolean',if:`(modal_newpart.new_partcode.value == 174)`,then:{steps:{run:{name:'routeToKitDspec_copy_copy',outputType:'text',action:`browser1.goto(\'/dspec?id=\'+conn_newpart.data.insertpart.data.id,true,\'Kit Dspec\')`}}},else:{steps:{run:{name:'routeToGeneralDspec',outputType:'text',action:`browser1.goto(\'/dspecg?id=\'+conn_newpart.data.insertpart.data.id,true,\'General Dspec\')`}}}}}}}}}}}}}},{run:{outputType:'text',action:`modal_newpart.new_parttype.setValue(0);modal_newpart.new_partcode.setValue(0);modal_newpart.inp_description.setValue(\'\');modal_newpart.inp_comments.setValue(\'\');modal_newpart.hide()`}}])" dmx-param:createuserid="conn_isauthenticated.data.identity"></dmx-serverconnect>
<dmx-serverconnect id="conn_newpart" url="/api/Parts/asynccalls/create_part" noload="true" dmx-param:description="modal_newpart.inp_description.value" dmx-param:comments="modal_newpart.inp_comments.value" dmx-param:partcodeid="" dmx-param:parttypeid="modal_newpart.new_parttype.value" dmx-on:success="run([{run:{outputType:'text',action:`var_partid.setValue(conn_newpart.data.createpartnumber.data.id)`}},{run:{name:'conn_view',outputType:'text',action:`viewsearch.load({id: conn_newpart.data.createpartnumber.data.partcode.id},true)`}}])" dmx-param:createuserid="conn_isauthenticated.data.identity"></dmx-serverconnect>
<dmx-serverconnect id="conn_searchforbom" url="/api/BOM/findbypn" noload="true"></dmx-serverconnect> <dmx-serverconnect id="conn_searchforbom" url="/api/BOM/findbypn" 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_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>
<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-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Part Code Invalid</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="form-group mb-3 row">
<label for="inp_masterpc" class="col-sm-2 col-form-label col-form-label-sm" style="width: 30%">Top Part Code</label>
<div class="align-self-center col-sm-7 offset-1">
<input type="text" class="form-control" id="inp_masterpc" name="masterpartcode" aria-describedby="input1_help" is="dmx-autocomplete" dmx-bind:data="conn_masterpcs.data.list.data" optiontext="name" optionvalue="code" optionsearch="name+' '" dmx-on:changed="run({condition:{outputType:'boolean',if:`value`,then:{steps:{run:{outputType:'text',action:`conn_cmasters.load({code: value},true)`}}}}})">
</div>
</div>
<div class="form-group mb-3 row" dmx-hide="inp_masterpc.value">
<label for="inp_childpc" class="col-sm-2 col-form-label col-form-label-sm" style="width: 30%">Part Code</label>
<div class="align-self-center col-sm-7 offset-1">
<input type="text" class="form-control" id="inp_childpc" name="childpartcode" aria-describedby="input1_help" is="dmx-autocomplete" dmx-bind:data="conn_masterpcs.data.allpartcodes.data" optiontext="name" optionvalue="code" optionsearch="name+' '">
</div>
</div>
<div class="form-group mb-3 row" dmx-show="inp_masterpc.value">
<label for="inp_filteredchildpc" class="col-sm-2 col-form-label col-form-label-sm" style="width: 30%">Part Code</label>
<div class="align-self-center col-sm-7 offset-1">
<input type="text" class="form-control" id="inp_filteredchildpc" name="filteredchildpartcode" aria-describedby="input1_help" is="dmx-autocomplete" dmx-bind:data="conn_cmasters.data.api.data" optiontext="name" optionvalue="code" optionsearch="name+' '">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<div class="modal" id="mod_createpart" is="dmx-bs5-modal" tabindex="-1">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">New Part</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="frm_createpart">
<div class="form-group mb-3 row">
<label for="inp_masterpc" class="col-sm-2 col-form-label col-form-label-sm" style="width: 30%">Top Part Code</label>
<div class="align-self-center col-sm-7 offset-1">
<input type="text" class="form-control" id="inp_masterpc" name="masterpartcode" aria-describedby="input1_help" is="dmx-autocomplete" dmx-bind:data="conn_masterpcs.data.list.data" optiontext="name" optionvalue="code" optionsearch="name+' '" dmx-on:changed="run({condition:{outputType:'boolean',if:`value`,then:{steps:{run:{outputType:'text',action:`conn_cmasters.load({code: value},true)`}}}}})">
</div>
</div>
<div class="form-group mb-3 row" dmx-hide="inp_masterpc.value">
<label for="inp_childpc" class="col-sm-2 col-form-label col-form-label-sm" style="width: 30%">Part Code</label>
<div class="align-self-center col-sm-7 offset-1">
<input type="text" class="form-control" id="inp_childpc" name="childpartcode" aria-describedby="input1_help" is="dmx-autocomplete" dmx-bind:data="conn_masterpcs.data.allpartcodes.data" optiontext="name" optionvalue="code" optionsearch="name+' '">
</div>
</div>
<div class="form-group mb-3 row" dmx-show="inp_masterpc.value">
<label for="inp_filteredchildpc" class="col-sm-2 col-form-label col-form-label-sm" style="width: 30%">Part Code</label>
<div class="align-self-center col-sm-7 offset-1">
<input type="text" class="form-control" id="inp_filteredchildpc" name="filteredchildpartcode" aria-describedby="input1_help" is="dmx-autocomplete" dmx-bind:data="conn_cmasters.data.api.data" optiontext="name" optionvalue="code" optionsearch="name+' '">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" dmx-on:click="run({condition:{outputType:'boolean',if:`(frm_createpart.inp_masterpc.value.length() &gt; 0)`,then:{steps:{run:{outputType:'text',action:`conn_newpart.load({partcodeid: conn_masterpcs.data.allpartcodes.data.where(\`code\`, frm_createpart.inp_filteredchildpc.value, \'==\')[0].id, code: frm_createpart.inp_filteredchildpc.value})`}}},else:{steps:{run:{outputType:'text',action:`conn_newpart.load({partcodeid: conn_masterpcs.data.allpartcodes.data.where(\`code\`, frm_createpart.inp_childpc.value, \'==\')[0].id, code: frm_createpart.inp_childpc.value})`}}}}})">Save changes</button>
</div>
</div>
</div>
</div>


<div class="container d-print-none" style="vertial-align: middle;"> <div class="container d-print-none" style="vertial-align: middle;">


@@ -78,7 +151,7 @@
<div class="nav-item dropdown"> <div class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" id="dropdown1" role="button" aria-haspopup="true" aria-expanded="false">Actions</a> <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" id="dropdown1" role="button" aria-haspopup="true" aria-expanded="false">Actions</a>
<div class="dropdown-menu" aria-labelledby="dropdown1"> <div class="dropdown-menu" aria-labelledby="dropdown1">
<a class="dropdown-item" internal="true" dmx-on:click="modal_newpart.show()">New Part</a>
<a class="dropdown-item" internal="true" dmx-on:click="mod_createpart.show()">New Part</a>
<a class="dropdown-item" href="/wadmin/usermanage" id="lnk_admin" dmx-show="conn_isauthenticated.data.administrator">User Management</a> <a class="dropdown-item" href="/wadmin/usermanage" id="lnk_admin" dmx-show="conn_isauthenticated.data.administrator">User Management</a>
<a class="dropdown-item" href="#">Something else here</a> <a class="dropdown-item" href="#">Something else here</a>
</div> </div>
@@ -110,13 +183,13 @@
<div class="col"> <div class="col">


<div class="form-group mb-3 row"> <div class="form-group mb-3 row">
<label for="input1" class="col-sm-2 col-form-label" style="width: fit-content;">Part Types</label>
<label for="inp_masterpc" class="col-sm-2 col-form-label" style="width: fit-content;">Part Types</label>
<select id="new_parttype" class="form-select" style="width: fit-content;" dmx-bind:options="conn_basedata.data.parttypes.data" optiontext="name" optionvalue="id"> <select id="new_parttype" class="form-select" style="width: fit-content;" dmx-bind:options="conn_basedata.data.parttypes.data" optiontext="name" optionvalue="id">
<option value="0"></option> <option value="0"></option>
</select> </select>
</div> </div>
<div class="form-group mb-3 row"> <div class="form-group mb-3 row">
<label for="input1" class="col-sm-2 col-form-label" style="width: fit-content;">Part Codes</label>
<label for="inp_masterpc" class="col-sm-2 col-form-label" style="width: fit-content;">Part Codes</label>
<select id="new_partcode" class="form-select" style="width: fit-content;" dmx-bind:options="conn_basedata.data.partcodes.data.where(`parttype.id`, new_parttype.value, '==')" optiontext="name" optionvalue="id"> <select id="new_partcode" class="form-select" style="width: fit-content;" dmx-bind:options="conn_basedata.data.partcodes.data.where(`parttype.id`, new_parttype.value, '==')" optiontext="name" optionvalue="id">
<option value="0"></option> <option value="0"></option>
</select> </select>


+ 5
- 5
views/secure/dspec.ejs Ver ficheiro

@@ -429,7 +429,7 @@
<div class="col"> <div class="col">
<ul class="nav nav-tabs mb-2" id="navTabs1_tabs" role="tablist"> <ul class="nav nav-tabs mb-2" id="navTabs1_tabs" role="tablist">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active bg-primary text-white me-2" id="navTabs1_1_tab" data-bs-toggle="tab" href="#" data-bs-target="#navTabs1_1" role="tab" aria-controls="navTabs1_1" aria-selected="true" dmx-on:click="var_viewlocationid.setValue(14)">Motor</a>
<a class="nav-link active me-2 tab text-white bg-primary" id="navTabs1_1_tab" data-bs-toggle="tab" href="#" data-bs-target="#navTabs1_1" role="tab" aria-controls="navTabs1_1" aria-selected="true" dmx-on:click="var_viewlocationid.setValue(14)">Motor</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link bg-primary text-white me-2" id="navTabs1_2_tab" data-bs-toggle="tab" href="#" data-bs-target="#navTabs1_2" role="tab" aria-controls="navTabs1_2" aria-selected="false" dmx-on:click="var_viewlocationid.setValue(19)">Electrical</a> <a class="nav-link bg-primary text-white me-2" id="navTabs1_2_tab" data-bs-toggle="tab" href="#" data-bs-target="#navTabs1_2" role="tab" aria-controls="navTabs1_2" aria-selected="false" dmx-on:click="var_viewlocationid.setValue(19)">Electrical</a>
@@ -479,7 +479,7 @@
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_dspecinfo.data.boms.data.where(`tab`, 14, '==')" id="tablemotor">
<tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_dspecinfo.data.boms.data.where(`tab`, 61, '==')" id="tablemotor">
<tr> <tr>
<td dmx-text="id" class="visually-hidden"></td> <td dmx-text="id" class="visually-hidden"></td>
<td dmx-text="partnumberid" class="visually-hidden"></td> <td dmx-text="partnumberid" class="visually-hidden"></td>
@@ -530,7 +530,7 @@
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_dspecinfo.data.boms.data.where(`tab`, 19, '==')" id="tableelectric">
<tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_dspecinfo.data.boms.data.where(`tab`, 63, '==')" id="tableelectric">
<tr> <tr>
<td dmx-text="id" class="visually-hidden"></td> <td dmx-text="id" class="visually-hidden"></td>
<td dmx-text="partnumberid" class="visually-hidden"></td> <td dmx-text="partnumberid" class="visually-hidden"></td>
@@ -579,7 +579,7 @@
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_dspecinfo.data.boms.data.where(`tab`, 17, '==')" id="tableplumb">
<tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_dspecinfo.data.boms.data.where(`tab`, 62, '==')" id="tableplumb">
<tr> <tr>
<td dmx-text="id" class="visually-hidden"></td> <td dmx-text="id" class="visually-hidden"></td>
<td dmx-text="partnumberid" class="visually-hidden"></td> <td dmx-text="partnumberid" class="visually-hidden"></td>
@@ -628,7 +628,7 @@
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_dspecinfo.data.boms.data.where(`tab`, 11, '==')" id="tableins">
<tbody is="dmx-repeat" dmx-generator="bs5table" dmx-bind:repeat="conn_dspecinfo.data.boms.data.where(`tab`, 64, '==')" id="tableins">
<tr> <tr>
<td dmx-text="id" class="visually-hidden"></td> <td dmx-text="id" class="visually-hidden"></td>
<td dmx-text="partnumberid" class="visually-hidden"></td> <td dmx-text="partnumberid" class="visually-hidden"></td>


+ 1
- 1
views/secure/dspecmotor.ejs Ver ficheiro

@@ -119,7 +119,7 @@
<label for="rev" class="col-sm-2 col-form-label" style="width: fit-content;">Rev:</label> <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;"> <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"> <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>
<button id="btn_newrev" class="btn btn-secondary btn-sm" style="display:inline-block;" dmx-show="conn_dspecinfo.data.dspec.data.id" dmx-on:click="conn_revup.load({id: conn_dspecinfo.data.api.data.id, userid: whoami.data.identity})">New Rev</button>
</div> </div>
</div> </div>
</div> </div>


+ 8
- 5
views/secure/partinfo.ejs Ver ficheiro

@@ -1,11 +1,14 @@
<!-- Wappler include head-page="layouts/smain" fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="partinfo" appConnect="local" components="{dmxNotifications:{},dmxFormatter:{},dmxBrowser:{},dmxBootbox5:{}}" -->
<dmx-api-action id="api_loadpart" noload="true" dmx-bind:url="pg_apiurl.value.concat('partnumbers/num/'.concat(txt_partNumber.value))" dmx-on:error="notifies1.warning('No Records Found');hdn_partid.setValue();txt_partNumber.setValue();txt_description.setValue();select1.setValue();txt_replaces.setValue();txt_replacedby.setValue();txt_primaryvendor.setValue();txt_secondaryvendor.setValue()" dmx-on:invalid="notifies1.warning('Invalid')"></dmx-api-action>
<!-- Wappler include head-page="layouts/smain" fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="partinfo" appConnect="local" components="{dmxNotifications:{},dmxFormatter:{},dmxBrowser:{},dmxBootbox5:{},dmxBootstrap5Modal:{}}" -->

<dmx-api-action id="api_loadpart" noload="true" dmx-bind:url="pg_apiurl.value.concat('partnumbers/num/'.concat(txt_partNumber.value))" dmx-on:error="notifies1.warning('No Records Found');hdn_partid.setValue();txt_partNumber.setValue();txt_description.setValue();select1.setValue();txt_replaces.setValue();txt_replacedby.setValue();txt_primaryvendor.setValue();txt_secondaryvendor.setValue()" dmx-on:invalid="notifies1.warning('Invalid')" dmx-on:success="var_partid.setValue(api_loadpart.data.id)"></dmx-api-action>
<dmx-value id="var_parttypeid"></dmx-value> <dmx-value id="var_parttypeid"></dmx-value>
<meta name="ac:route" content="/partinfo"> <meta name="ac:route" content="/partinfo">
<dmx-value id="var_partid" dmx-bind:value="api_loadpart.data.id"></dmx-value>
<dmx-value id="var_partcodeid" dmx-on:updated="var_parttypeid.setValue(conn_basedata.data.partcodes.data.where(`id`, value, '==')[0].parttype.id)"></dmx-value> <dmx-value id="var_partcodeid" dmx-on:updated="var_parttypeid.setValue(conn_basedata.data.partcodes.data.where(`id`, value, '==')[0].parttype.id)"></dmx-value>


<dmx-notifications id="notifies1" align="full"></dmx-notifications>

<dmx-notifications id="notifies1" align="full">

</dmx-notifications>






@@ -87,7 +90,7 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<a href="#" class="btn btn-warning" id="btn_dspec" dmx-show="(txt_partNumber.value.length() &gt; 0)" dmx-on:click="run({condition:{outputType:'boolean',if:`(var_parttypeid.value == 2)`,then:{steps:{run:{outputType:'text',action:`browser1.goto(\'/dspec?id=\'+var_partid.value,true,\'DSpec\')`}}},else:{steps:{condition:{outputType:'boolean',if:`(var_parttypeid.value == 3)`,then:{steps:{run:{outputType:'text',action:`browser1.goto(\'/dspec?id=\'+var_partid.value,true,\'DSpec\')`}}},else:{steps:{condition:{outputType:'boolean',if:`(var_partcodeid.value == 174)`,then:{steps:{run:{outputType:'text',action:`browser1.goto(\'/dspec?id=\'+var_partid.value,true,\'DSpec\')`}}},else:{steps:{condition:{outputType:'boolean',if:`(var_parttypeid.value == 1)`,then:{steps:{run:{outputType:'text',action:`browser1.goto(\'/dspecm?id=\'+var_partid.value,true,\'DSpec\')`}}},else:{steps:{run:{outputType:'text',action:`browser1.goto(\'/dspecg?id=\'+var_partid.value,true,\'DSpec\')`}}}}}}}}}}}}}})">DSpec</a>
<a href="#" class="btn btn-warning" id="btn_dspec" dmx-show="(txt_partNumber.value.length() &gt; 0)" dmx-on:click="viewsearch.load({id: sel_partcodes.value})">DSpec</a>
</div> </div>
</div> </div>
</div> </div>

+ 1
- 1
views/wadmin/usermanage.ejs Ver ficheiro

@@ -165,7 +165,7 @@
<input type="text" class="form-control" id="inp_newuseremail" name="email" aria-describedby="input1_help" placeholder="email address"> <input type="text" class="form-control" id="inp_newuseremail" name="email" aria-describedby="input1_help" placeholder="email address">
</div> </div>
<div class="form-group md-3"> <label for="inp_newuserdept" class="form-label">Department</label> <div class="form-group md-3"> <label for="inp_newuserdept" class="form-label">Department</label>
<input type="text" class="form-control" id="inp_newuserdept" name="department" aria-describedby="input1_help" placeholder="Enter some text" is="dmx-autocomplete" dmx-bind:data="conn_depts.data.query" optiontext="name" optionvalue="id" optionsearch="name" required="">
<input type="text" class="form-control" id="inp_newuserdept" name="department" aria-describedby="input1_help" placeholder="Enter some text" is="dmx-autocomplete" dmx-bind:data="conn_depts.data.query" optiontext="name+' '" optionvalue="id" optionsearch="name+' '" required="">
</div> </div>
<button id="btn_addnewuser" class="btn btn-primary" type="submit">Submit</button> <button id="btn_addnewuser" class="btn btn-primary" type="submit">Submit</button>
</form> </form>


Carregando…
Cancelar
Guardar