Implementation instructions
//******************************
// Navbar
//******************************
1. A service megnyitásakor a client letölti a navbar-t a "getnavbar" HTTP kérésben.
2. Az API végigiterál az ozekiconfig mappa PHP állományain, majd a tartalmuk alapján előállítja lentebb ismertetett választ. http://inside.jobs.ozeki.hu/p_7832-admin-console.html
3. A client a válaszból a parser.ts/parse függvény segítségével kinyeri a FormItem listát.
4. A FormItem listát átadva a Navbar komponensnek az kirazolja az elemeket figyelembe véve azok "section" és "order" paramétereit. A navbar elemek kirajzolására azt a komponenst kell használni, ami most is megjeleníti a sidebar elemeket.
5. A navbar-t a sidebar elemek alá kell kirajzolni.
Method:
POST
URL:
?srv=conversation&api=chatcontrolpanel
Headers:
Content-Type: application/json
Ozeki-User: userid
Ozeki-Signature: signature
Ozeki-Client-Version: 1
POST data:
{
"timestamp": "2024-08-03 10:07:00",
"action": "getnavbar",
}
Response:
{
"status": "OK",
"errormessage": "",
"items": [
{
//"visible": true,//ha false, akkor vissza sem kell adni a kérésben
"section": "Display",
"label": "Labeling",
"order": 10,
"icon": "/ozekiservices/labeling/attachments/labeling.svg",
//"url": "/index.php?api=chatcontrolpanel",//helyette "form" paraméter, ami a kérésben fog szerepelni
"form":"labeling",
},
...
],
}
formgenerator/
navbar/
parser.ts
parse(data:any):NavbarItem
navbaritem.ts
- NavbarItem class:
//- visible:bool
- section:string
- label:string
- order:number
- icon:string
- url:string
navbar.tsx
Navbar({items, onItemSelected}:{items:NavbarItem[],onItemSelected:(NavbarItem)->void})
//******************************
// Form generator / Render
//******************************
1. A service megnyitásakor a client minden ismert FormItemInputType típushoz (pl. text) beregisztrál egy generator függvényt, ami egy FormItem objektum alapán egy React komponens kirajzol. Ez a komponens tartalmazza a label-t, description-t, valamint magát az input-ot.
2. A form generálását a Form komponens végzi a már ismert generator függvények felhasználásával. A komponens feladata az egy lapra, valamint az egy csoportba tarozó elemek azonosítása, majd azok rendezett kirajzolása a részkomponensek és a generator függvények segítségével.
3. A részkomponenseket (pl. GroupBox, TabPage) külön fájlba kell szervezni.
4. A Form komponens aljára ki kell rajzolni egy "Save changes" gombot. Ez lesz tulajdonképpen a form submit. Hatására egy form data kérést kell küldeni a chatcontrolpanel/updateform API-ra a módosult értékekkel, ami frissíti a releváns config PHP állományokat.
Method:
POST
URL:
?srv=chatcontrolpanel&api=formgenarator
Headers:
Content-Type: application/json
Ozeki-User: userid
Ozeki-Signature: signature
Ozeki-Client-Version: 1
POST data:
{
"timestamp": "2024-08-03 10:07:00",
"action": "getform",
"form":"labeling",
}
Response:
{
"status": "OK",
"errormessage": "",
"items": [
{
"id":"brandname"
"label": "Brand name",
"input": "textbox",
"groupbox": "Product",
"tabpage": "General",
"description": "Please provide a unique brand name.",
"value": "Ozeki",
},
...
],
}
formgenerator/
form/
items/
formitemtext.tsx
formitemnumber.tsx
formitemcheckbox.tsx
fromitem.ts
- FormItem class:
- id:string
- label:string
- input:FromItemInputType
- groupbox:string
- tabpage:string
- description:string?
- value:any
formitemgenerator.tsx
registergenerator(type:FormItemInputType,generator:(item:FormItem)->JSX)
generate(item:FromItem):JSX
form.tsx
Form({items, onSubmit}:{items:FormItem[],onSubmit:(items:FromItem[])->void})
//******************************
// Form generator / Update
//******************************
//******************************
// Draft
//******************************
http://inside.jobs.ozeki.hu/p_7832-admin-console.html