unclean SPARC
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
|
||||
Typical TODO-list for new app feature:
|
||||
|
||||
=> New route:
|
||||
=> Delegating route in baseRoutes.json (without method)
|
||||
=> Add real route(s) in the xxxController.json (section:routes)
|
||||
|
||||
=> New controller :
|
||||
=> Create xxxController.json (minimum: routes, views to load, model to load)
|
||||
=> Create xxxController.js
|
||||
=> (!) make sure to have a correct "app.registerClass"(same as filename !)
|
||||
=> (!) make sure the class name is unique across the universe
|
||||
=> Create the methods used in the route(s) definition
|
||||
=> Add this.loadWindow in the method(s)
|
||||
=> second param is object of anything to pass to view, such ass model(s) (1)
|
||||
|
||||
=> New model :
|
||||
=> Create xxxModel.js
|
||||
=> (!) make sure to have a correct "app.registerClass" (same as filename !)
|
||||
=> (!) make sure the class name is unique across the universe
|
||||
|
||||
=> New view :
|
||||
=> Create xxxView.html
|
||||
=> Create xxxView.js
|
||||
=> (!) make sure to have a correct "app.registerClass" (same as filename !)
|
||||
=> (!) make sure the class name is unique across the universe
|
||||
=> Needs at least a method "DOMContentLoaded(options)"
|
||||
=> probably want to use "ui.eicfy(this.el)"
|
||||
=> setup all your dom & components references
|
||||
=> probably want to get stuff from the controller via options.xxx
|
||||
=> typical: "this.model = this.options.model" (see (1))
|
||||
or: like "for(let model in options.models) this[model] = options.models[model]"
|
||||
|
||||
=> Make a menu entry :
|
||||
=> Add an entry in "/app/assets/json/global/app-menu-map.json"
|
||||
=> (!) Make sure to select the proper roles (or "*" for open-bar)
|
||||
|
||||
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,106 @@
|
||||
<PIC>889194733</PIC> Granted
|
||||
<PIC>934188280</PIC> Granted
|
||||
<PIC>892649679</PIC> Granted
|
||||
<PIC>917568106</PIC> Granted
|
||||
<PIC>904060759</PIC> Granted
|
||||
<PIC>888564233</PIC> Granted
|
||||
<PIC>888330366</PIC> Granted
|
||||
<PIC>888554145</PIC> Granted
|
||||
<PIC>898827900</PIC> Granted
|
||||
<PIC>888323091</PIC> Granted
|
||||
<PIC>888325128</PIC> Granted
|
||||
<PIC>888511562</PIC> Granted
|
||||
<PIC>892722235</PIC> Granted
|
||||
<PIC>913000861</PIC> Granted
|
||||
<PIC>889396978</PIC> Granted
|
||||
<PIC>890403838</PIC> Granted
|
||||
<PIC>898781534</PIC> Granted
|
||||
<PIC>931664437</PIC> Granted
|
||||
<PIC>904105282</PIC> Granted
|
||||
<PIC>886470682</PIC> Granted
|
||||
<PIC>894431763</PIC> Granted
|
||||
<PIC>910667138</PIC> Granted
|
||||
<PIC>886482710</PIC> Granted
|
||||
<PIC>890038730</PIC> Granted
|
||||
<PIC>892657148</PIC> Granted
|
||||
<PIC>910897028</PIC> Granted
|
||||
<PIC>886501625</PIC> Granted
|
||||
<PIC>904414615</PIC> Granted
|
||||
<PIC>910449664</PIC> Granted
|
||||
<PIC>907587485</PIC> Granted
|
||||
<PIC>889228295</PIC> Granted
|
||||
<PIC>891358221</PIC> Granted
|
||||
<PIC>886526845</PIC> Granted
|
||||
<PIC>936304335</PIC> Granted
|
||||
<PIC>894423712</PIC> Granted
|
||||
<PIC>907679247</PIC> Granted
|
||||
<PIC>925244783</PIC> Granted
|
||||
<PIC>885790324</PIC> Granted
|
||||
<PIC>885800315</PIC> Granted
|
||||
<PIC>931630681</PIC> Granted
|
||||
<PIC>891563279</PIC> Granted
|
||||
<PIC>898815387</PIC> Granted
|
||||
<PIC>911172023</PIC> Granted
|
||||
<PIC>911227992</PIC> Granted
|
||||
<PIC>885787123</PIC> Granted
|
||||
<PIC>891010476</PIC> Granted
|
||||
<PIC>894993878</PIC> Granted
|
||||
<PIC>885846390</PIC> Granted
|
||||
<PIC>895010174</PIC> Granted
|
||||
<PIC>889226258</PIC> Granted
|
||||
<PIC>886396671</PIC> Granted
|
||||
|
||||
|
||||
927984548 Granted
|
||||
891694714
|
||||
891087979
|
||||
995981645
|
||||
905736531 NIKE
|
||||
|
||||
|
||||
|
||||
***************************** SHORTPROPS *****************************
|
||||
|
||||
|
||||
User Org SP
|
||||
n0005lk9 / /
|
||||
n0005lka 891808301 /
|
||||
n0005lkb 888657256 190157586
|
||||
n0005lkd / 190116115
|
||||
|
||||
steinic 886396671 created
|
||||
|
||||
|
||||
n0005lke / Z8bltqvKewuraPkGN0rS (not in the BE yet --> need onboarding) / 190117162
|
||||
n0005lkf (not in the BE yet --> need onboarding) 923569011 190138101
|
||||
n0005lk9 --> l'utilisateur existe mais n'a accès à rien
|
||||
n0005lka --> l'utilisateur existe et est admin de l'organisation 891808301 (qui existe elle aussi)
|
||||
n0005lkb --> l'utilisateur est admin de l'organisation et de la short mentionnées
|
||||
n0005lkd --> l'utilisateur est admin de la short mentionnée (qui n'a pas de PIC) ; il n'est membre d'aucune organisation
|
||||
n0005lke --> l'utilisateur n'existe pas encore dans le BE mais son EULogin est lié à une short existante (qui n'a pas de PIC)
|
||||
n0005lkf --> l'utilisateur n'existe pas encore dans le BE mais son EULogin est lié à une short existante, qui elle-même est liée à une organisation (qui n'existe pas encore dans le BE)
|
||||
n0005lkl
|
||||
n0005lki
|
||||
n0005lkj
|
||||
|
||||
T3stE2E@eic.EU
|
||||
|
||||
|
||||
Gavin.eic1@gmail.com: n000110z / Easme12345678901 => Z8bltqvKewuraPkGN0rS
|
||||
samantha.patelle@gmail.com Easme12345
|
||||
|
||||
n0005jin / uraPkGN0rSZ8bltqvKew : BP_SPOC_FastTrack
|
||||
|
||||
|
||||
https://myeic.dev.eismea.eu/applicant/999519720
|
||||
999507207
|
||||
999513706
|
||||
999516519
|
||||
999519720
|
||||
999588784
|
||||
999678121
|
||||
999770950
|
||||
999780262
|
||||
999796946
|
||||
999833612
|
||||
999906459
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"success" : true,
|
||||
"payload": [
|
||||
{
|
||||
"family_name": "Stein",
|
||||
"given_name": "Nicolas",
|
||||
"email": "nicolas.stein@disney.com",
|
||||
"https://ecas.ec.europa.eu/claims/uid":"steinni"
|
||||
},
|
||||
{
|
||||
"family_name": "Lapraline",
|
||||
"given_name": "Toto",
|
||||
"email": "toto@gmail.com",
|
||||
"https://ecas.ec.europa.eu/claims/uid":"piperto"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
[
|
||||
{
|
||||
"role": "BP_PO",
|
||||
"permissions": {
|
||||
"tokens": [ "list", "setSettings", "getSettings" ],
|
||||
"users": [ "list", "search", "create", "revoke" ],
|
||||
"company": [ "search", "grant", "revoke" ],
|
||||
"templates": ["list", "search", "create", "clone", "edit", "reject", "approve" ]
|
||||
}
|
||||
},
|
||||
{ "role": "BP_HoU",
|
||||
"permissions": {
|
||||
"tokens": [ "list" ],
|
||||
"users": [ ],
|
||||
"company": [ ]
|
||||
}
|
||||
},
|
||||
{ "role": "BP_SPOC_FastTrack",
|
||||
"permissions": {
|
||||
"tokens": [ "list" ],
|
||||
"users": [ "list", "search", "create", "revoke" ],
|
||||
"company": [ "search", "grant" ]
|
||||
}
|
||||
},
|
||||
{ "role": "BP_SPOC_Plugin",
|
||||
"permissions": {
|
||||
"tokens": [ "list", "getPrograms", "addProgram", "removeProgram" ],
|
||||
"users": [ "list", "search", "create", "revoke" ],
|
||||
"company": [ "search", "grant" ]
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,116 @@
|
||||
|
||||
<button primary eicbutton xlarge icon="icon-stop"></button>
|
||||
<button primary eicbutton xlarge icon="icon-play"></button>
|
||||
<button primary eicbutton xlarge icon="icon-history"></button>
|
||||
<button primary eicbutton xlarge icon="icon-spinner"></button>
|
||||
<button primary eicbutton xlarge icon="icon-cog"></button>
|
||||
<button primary eicbutton xlarge icon="icon-star-empty"></button>
|
||||
<button primary eicbutton xlarge icon="icon-star-half"></button>
|
||||
<button primary eicbutton xlarge icon="icon-star-full"></button>
|
||||
<button primary eicbutton xlarge icon="icon-heart"></button>
|
||||
<button primary eicbutton xlarge icon="icon-happy"></button>
|
||||
<button primary eicbutton xlarge icon="icon-face-smile"></button>
|
||||
<button primary eicbutton xlarge icon="icon-face-tongue"></button>
|
||||
<button primary eicbutton xlarge icon="icon-face-sad"></button>
|
||||
<button primary eicbutton xlarge icon="icon-face-wink"></button>
|
||||
<button primary eicbutton xlarge icon="icon-face-baffled"></button>
|
||||
<button primary eicbutton xlarge icon="icon-face-confused"></button>
|
||||
<button primary eicbutton xlarge icon="icon-youtube"></button>
|
||||
<button primary eicbutton xlarge icon="icon-linkedin"></button>
|
||||
<button primary eicbutton xlarge icon="icon-pdf"></button>
|
||||
<button primary eicbutton xlarge icon="icon-pen"></button>
|
||||
<button primary eicbutton xlarge icon="icon-coaching"></button>
|
||||
<button primary eicbutton xlarge icon="icon-cart"></button>
|
||||
<button primary eicbutton xlarge icon="icon-phone"></button>
|
||||
<button primary eicbutton xlarge icon="icon-hour-glass"></button>
|
||||
<button primary eicbutton xlarge icon="icon-refresh"></button>
|
||||
<button primary eicbutton xlarge icon="icon-complaint"></button>
|
||||
<button primary eicbutton xlarge icon="icon-evaluation"></button>
|
||||
<button primary eicbutton xlarge icon="icon-link"></button>
|
||||
<button primary eicbutton xlarge icon="icon-loop"></button>
|
||||
<button primary eicbutton xlarge icon="icon-image"></button>
|
||||
<button primary eicbutton xlarge icon="icon-new"></button>
|
||||
<button primary eicbutton xlarge icon="icon-map"></button>
|
||||
<button primary eicbutton xlarge icon="icon-pin"></button>
|
||||
<button primary eicbutton xlarge icon="icon-user-check"></button>
|
||||
<button primary eicbutton xlarge icon="icon-cogs"></button>
|
||||
<button primary eicbutton xlarge icon="icon-bin"></button>
|
||||
<button primary eicbutton xlarge icon="icon-attachment"></button>
|
||||
<button primary eicbutton xlarge icon="icon-xls"></button>
|
||||
<button primary eicbutton xlarge icon="icon-big-bullet"></button>
|
||||
<button primary eicbutton xlarge icon="icon-code"></button>
|
||||
<button primary eicbutton xlarge icon="icon-check-rounded"></button>
|
||||
<button primary eicbutton xlarge icon="icon-dashboard"></button>
|
||||
<button primary eicbutton xlarge icon="icon-more"></button>
|
||||
<button primary eicbutton xlarge icon="icon-locked"></button>
|
||||
<button primary eicbutton xlarge icon="icon-unlocked"></button>
|
||||
<button primary eicbutton xlarge icon="icon-menu"></button>
|
||||
<button primary eicbutton xlarge icon="icon-reply"></button>
|
||||
<button primary eicbutton xlarge icon="icon-back"></button>
|
||||
<button primary eicbutton xlarge icon="icon-link-ext"></button>
|
||||
<button primary eicbutton xlarge icon="icon-share"></button>
|
||||
<button primary eicbutton xlarge icon="icon-workflow"></button>
|
||||
<button primary eicbutton xlarge icon="icon-health"></button>
|
||||
<button primary eicbutton xlarge icon="icon-copy"></button>
|
||||
<button primary eicbutton xlarge icon="icon-filter"></button>
|
||||
<button primary eicbutton xlarge icon="icon-deny"></button>
|
||||
<button primary eicbutton xlarge icon="icon-home"></button>
|
||||
<button primary eicbutton xlarge icon="icon-pause"></button>
|
||||
<button primary eicbutton xlarge icon="icon-market"></button>
|
||||
<button primary eicbutton xlarge icon="icon-thumbs-down"></button>
|
||||
<button primary eicbutton xlarge icon="icon-thumbs-up"></button>
|
||||
<button primary eicbutton xlarge icon="icon-trash"></button>
|
||||
<button primary eicbutton xlarge icon="icon-bolt"></button>
|
||||
<button primary eicbutton xlarge icon="icon-check"></button>
|
||||
<button primary eicbutton xlarge icon="icon-cancel"></button>
|
||||
<button primary eicbutton xlarge icon="icon-close"></button>
|
||||
<button primary eicbutton xlarge icon="icon-download"></button>
|
||||
<button primary eicbutton xlarge icon="icon-envelope"></button>
|
||||
<button primary eicbutton xlarge icon="icon-company"></button>
|
||||
<button primary eicbutton xlarge icon="icon-servers"></button>
|
||||
<button primary eicbutton xlarge icon="icon-review"></button>
|
||||
<button primary eicbutton xlarge icon="icon-correction"></button>
|
||||
<button primary eicbutton xlarge icon="icon-mediation"></button>
|
||||
<button primary eicbutton xlarge icon="icon-writing"></button>
|
||||
<button primary eicbutton xlarge icon="icon-sort-asc"></button>
|
||||
<button primary eicbutton xlarge icon="icon-sort-desc"></button>
|
||||
<button primary eicbutton xlarge icon="icon-unsorted"></button>
|
||||
<button primary eicbutton xlarge icon="icon-help"></button>
|
||||
<button primary eicbutton xlarge icon="icon-plus"></button>
|
||||
<button primary eicbutton xlarge icon="icon-search"></button>
|
||||
<button primary eicbutton xlarge icon="icon-user"></button>
|
||||
<button primary eicbutton xlarge icon="icon-logoff"></button>
|
||||
<button primary eicbutton xlarge icon="icon-edit"></button>
|
||||
<button primary eicbutton xlarge icon="icon-checked"></button>
|
||||
<button primary eicbutton xlarge icon="icon-info"></button>
|
||||
<button primary eicbutton xlarge icon="icon-expand"></button>
|
||||
<button primary eicbutton xlarge icon="icon-warning"></button>
|
||||
<button primary eicbutton xlarge icon="icon-calendar"></button>
|
||||
<button primary eicbutton xlarge icon="icon-comment"></button>
|
||||
<button primary eicbutton xlarge icon="icon-twitter"></button>
|
||||
<button primary eicbutton xlarge icon="icon-facebook"></button>
|
||||
<button primary eicbutton xlarge icon="icon-square-o"></button>
|
||||
<button primary eicbutton xlarge icon="icon-website"></button>
|
||||
<button primary eicbutton xlarge icon="icon-users"></button>
|
||||
<button primary eicbutton xlarge icon="icon-list-ul"></button>
|
||||
<button primary eicbutton xlarge icon="icon-table"></button>
|
||||
<button primary eicbutton xlarge icon="icon-exchange"></button>
|
||||
<button primary eicbutton xlarge icon="icon-alert"></button>
|
||||
<button primary eicbutton xlarge icon="icon-chevron-left"></button>
|
||||
<button primary eicbutton xlarge icon="icon-chevron-right"></button>
|
||||
<button primary eicbutton xlarge icon="icon-angle-left"></button>
|
||||
<button primary eicbutton xlarge icon="icon-angle-right"></button>
|
||||
<button primary eicbutton xlarge icon="icon-angle-up"></button>
|
||||
<button primary eicbutton xlarge icon="icon-angle-down"></button>
|
||||
<button primary eicbutton xlarge icon="icon-zip"></button>
|
||||
<button primary eicbutton xlarge icon="icon-send"></button>
|
||||
<button primary eicbutton xlarge icon="icon-preview"></button>
|
||||
<button primary eicbutton xlarge icon="icon-stats"></button>
|
||||
<button primary eicbutton xlarge icon="icon-toggle-off"></button>
|
||||
<button primary eicbutton xlarge icon="icon-toggle-on"></button>
|
||||
<button primary eicbutton xlarge icon="icon-user-add"></button>
|
||||
<button primary eicbutton xlarge icon="icon-calendar-plus"></button>
|
||||
<button primary eicbutton xlarge icon="icon-calendar-minus"></button>
|
||||
<button primary eicbutton xlarge icon="icon-calendar-failed"></button>
|
||||
<button primary eicbutton xlarge icon="icon-calendar-check"></button>
|
||||
<button primary eicbutton xlarge icon="icon-graduate"></button>
|
||||
@@ -0,0 +1,11 @@
|
||||
CNS infos:
|
||||
|
||||
Home page in confluence:
|
||||
https://citnet.tech.ec.europa.eu/CITnet/confluence/display/CNS/CNS+Home
|
||||
API swagger:
|
||||
https://webgate.acceptance.ec.europa.eu/cns/restapi/?ticket=ST-3492070-ib8qIagzgjT0HjAnhZogjDJSwITAq4YOCQaPzSEzqkjXKYaMeSCdzzdjIxd6OCLEzgJYDCWfcAwTXd4czOpzwnrU-zGrcc7GCOy8q7wCXbuuQ9K-QDr1sFx5wNzYWsj7jNzSnl6VPOBo2YiHpKMXIlWXUDD7sVt23FD6R4fZfIxnlYH4pcAATXPFU5UaOFC1UzHyzvm#/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
***********************************************
|
||||
* Raiders of the lost-arcmodel (archaïc model)*
|
||||
***********************************************
|
||||
|
||||
===> Le comportement zarb:
|
||||
On édite une propal, on refocus le dashboard, on clique sur view de la même propal (probablement idem si edit) :
|
||||
La propal se re-focus, mais les dernières données encodées n'y sont pas.
|
||||
Biensur, réessayé en veillant bien à attendre le temps de l'auto-save,
|
||||
vérifié en voyant passer le PUT en console-network mais le blème est bien côté FE.
|
||||
|
||||
|
||||
|
||||
===> L'enquête:
|
||||
- Suivit le reloading des données en les dumpant partout, depuis le modèle (reload OK, données fraiches, donc effectivement c'est pas le BE)
|
||||
jusque dans la vue ou -surprise- elles sont périmées.
|
||||
- Pourtant séquence temporelle correcte, on a bien le model.getPropa avant le view.fill
|
||||
- Finalement soupçon sur l'instantiation des modèles => mise (temoraire) d'un UUID random comme propriété du modèle dans son constructeur.
|
||||
Du coup on peux tracer les changements d'instance.
|
||||
|
||||
|
||||
===> Le diagnostique:
|
||||
L'utilisateur sur le dashboard, fait un "Edit" sur la propal (première ouverture de cette propal):
|
||||
- Route vers "SubmissionController::proposal"
|
||||
- Ctrl instancie le model submissionModel (instance SM1)
|
||||
- Ctrl load les datas dans SM1.data
|
||||
THEN il fait un this.loadwindow (SumissionShortForm2023View), passe tous les modeles (dont SM1)
|
||||
son ancêtre "EICcontroller" fait un "createwindow", et un "loadview" : param "data.models" =tous les modeles (dont SM1)
|
||||
- "DOMContentLoaded(options)" est lancé dans la view "SubmissionShortForm2023View", SM1 arrive par "options.models", devient "this.submission"
|
||||
- La view-propal fait des "fill()" pour tous les tabs, prend ses datas dans "this.submission" donc dans SM1.data ===> all good
|
||||
|
||||
- Ensuite, le user refocus la fenetre dashboard et fait un "view" sur la même propal. (probablement un "edit" aurais le même comportement)
|
||||
- Route vers "SubmissionController::proposal"
|
||||
- Ctrl instancie le model submissionModel (instance SM2) ====> aie !
|
||||
- Ctrl load les datas fraiches dans SM2.data
|
||||
THEN il fait un loadwindow (SumissionShortForm2023View), passe tous les modeles (dont SM2)
|
||||
son ancetre "EICcontroller" conmait cette fenetre, et donc fait un "this.focus" (pas un create) param "data" = tous les modeles (dont SM2)
|
||||
- "DOMContentFocused(data)" est lancé dans la view "SubmissionShortForm2023View", qui recoit SM2 via options.models
|
||||
- MAIS "DOMContentFocused" se fout pas mal de options.models ====> ouille !
|
||||
This.submission reste donc l'instance SM1 pas fraiche ====> et bardaf, c'est l'embardée !
|
||||
|
||||
|
||||
- Biensur, Si on continue les allez-retour, il y a chaque fois une nouvelle instance de modèle,
|
||||
mais les tabs continuent d'utiliser la toute première instance ===> aie-ouille-bardaf !
|
||||
|
||||
|
||||
===> Le fix:
|
||||
|
||||
1. Patché d'abord en réassignant les modèles dans DOMContentFocused de "SubmissionShortForm2023View". (fastoche)
|
||||
|
||||
!!! Oui mais, dans le cas des Tabs ca ne suffit pas, car les tabs ne sont pas réinstanciés nonplus.
|
||||
De plus, leur "DOMContentFocused" n'est jamais appelé.
|
||||
|
||||
2. Ajouté un appel à "DOMContentFocused" pour tous les chunks.view dans "SubmissionShortForm2023View::DOMContentFocused" pour propager le focus aux tabs
|
||||
|
||||
3. Ensuite ajouté un "DOMContentFocused" dans la maman des tabs "SubmissionShortFormTabView" qui assigne this.model avec options.models.sumbission (options.models étant maintenant dispo)
|
||||
|
||||
Du coup les vues & tabs ont la dernière instance du modèle, créée en réentrant dans le CTRL et donc les données fraiches.
|
||||
...Reste a espérer qu'il ne traine plus de refs sur la vielle instance de modèle et qu'elle soit donc proprement garbage-collectée.
|
||||
|
||||
|
||||
Attention, du coup sémentiquement : "DOMContentFocused" d'un tab veux dire "la fenêtre à laquelle le tab appartient est refocussée",
|
||||
a ne pas confondre évidemment avec le focus du tab lui-même ( = event 'selected' du composant).
|
||||
|
||||
|
||||
Makes me wonder : dommage qu'on réinstancie le modèle (en général, même fenêtre (avec mêm url dont params) = mêmes données,
|
||||
le rafraichissement éventuel des données pourrais aussi bien se faire sans changer d'instance de modèle.
|
||||
Mais lorsque EICcontroller teste pour voir si c'est une fenetre connue, il est déjà trop tard :
|
||||
le ctrl-fiston a déjà instancié et choppé les datas, d'ailleurs c'est même obligatoirement synchrone avant de lancer la fenetre : via le THEN)
|
||||
D'un autre côté, créer une association modèle-window (pour savoir si on l'a déjà plus tôt) n'est clairement pas un bon pattern...
|
||||
... A méditer avec un malibu-ananas.
|
||||
|
||||
Si on reste sur le patch ci-dessus, faut bien garder ca en tête paske ce pattern => bug potientiel va se retrouver ailleurs !
|
||||
|
||||
|
||||
|
||||
===> Side-effect & Fix on the fix :
|
||||
Dans certains cas les focus sont appelés sans options (lorsqu'on clicke sur les badges fenêtre).
|
||||
=> rajouté un test pour ne pas tenter de recopier les modèles si pas d'options.
|
||||
Pas grave parceque ca correspond au cas ou on refocus la fenêtre sans rerouter, donc avec modèles non-réinstanciés.
|
||||
Mais j'adore pas tout ca... faudrat qu'on en cause, voir si on peut clarifier/simplifier.
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"blockedUUIDs": [
|
||||
"n0005lka"
|
||||
],
|
||||
"platformRestrictions": {
|
||||
"allowedRoles": [
|
||||
"EIC_Admin",
|
||||
"EIC_Dev"
|
||||
],
|
||||
"allowedUUIDs": [
|
||||
"n0005i29"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
# Test log from 2023-06-23
|
||||
#
|
||||
# - means bug
|
||||
# + means missing feature
|
||||
# + means change request
|
||||
#
|
||||
|
||||
- /organisations/PIC/ => sends an array of organisations (ony 1 item though). there should be only 1 object
|
||||
- /organisations/PIC/members => CORS error
|
||||
- /organisations/PIC/proposals => CORS error
|
||||
- logged under user fallimi => received ORG_MEMBER and SP_ADMIN roles but no permissions on /organisations (?!?)
|
||||
|
||||
+ missing /users/search => same as /bypass/users/search (could be global)
|
||||
+ missing /organisations/PIC/members/UID GET => retrieve details of a member (in order to update...)
|
||||
+ missing "phone" property in organisation member => align to proposal fields
|
||||
|
||||
* change "function" property in organisation member to "position" => align to proposal fields
|
||||
* change "administrator" property in organisation member to "admin" => align to member profile
|
||||
@@ -0,0 +1,2 @@
|
||||
Converting SELECT OPTIONS to meta (json) from console:
|
||||
Array.prototype.slice.call(document.querySelectorAll('[name="ref2selector"] option')).map(o => `{"id": "${o.value}", "label": "${o.innerHTML}"}`).join(",")
|
||||
Reference in New Issue
Block a user