fix: recursiveAdaptWidgets

This commit is contained in:
Jean-Baptiste Pasquier 2020-02-19 16:27:22 +01:00
parent e1bce61124
commit 8042b179c6
No known key found for this signature in database
GPG Key ID: F2702E6D22ED4D62
5 changed files with 46 additions and 54 deletions

View File

@ -1,50 +1,47 @@
function recursiveAdaptWidgets(prefix, element, user) { function applyAdapt(prefix, sibDisplay, user) {
//- This function is a workaround for the currently unworking populate
//- Feel free to see examples on page-circles- //- Allow to bind-user on selected attribute
if (sibDisplay.getAttribute(prefix + "-user-id")) {
element.querySelectorAll("[" + prefix + "-user-id]").forEach(el => { sibDisplay.setAttribute(
el.setAttribute(el.getAttribute(prefix + "-user-id"), user["@id"]); sibDisplay.getAttribute(prefix + "-user-id"),
}); user["@id"]
);
if (element != document) {
//- Allow to bind-user on selected attribute
if (element.getAttribute(prefix + "-user-id")) {
element.setAttribute(
element.getAttribute(prefix + "-user-id"),
user["@id"]
);
}
//- Allow to set data-src to a children sib-form
if (element.getAttribute(prefix + "-bind-resources")) {
let form = element.querySelector(
element.getAttribute(prefix + "-bind-resources") + " sib-form"
);
if (form) {
form.setAttribute(
"data-src",
element.component.resourceId.replace("members/", "")
);
}
}
//- Allow to put user on a targetted search field
if (element.getAttribute(prefix + "-bind-user2input")) {
element.querySelector(
element.getAttribute(prefix + "-bind-user2input")
).value = user["@id"];
}
//- In case your sib-display use a multiple, you have to target sub-sib-display auto-generated
element.querySelectorAll("sib-display, sib-form, div > sib-display, div > sib-form").forEach(el => {
el.setAttribute(prefix + "-widgets", "");
});
} }
//- This function is hooked every time a sib-something with prefix+"-widgets" is populated //- Allow to set data-src to a children sib-form
element.querySelectorAll("[" + prefix + "-widgets]").forEach(elementChild => { if (sibDisplay.getAttribute(prefix + "-bind-resources")) {
elementChild.addEventListener("populate", () => { let form = sibDisplay.querySelector(
recursiveAdaptWidgets(prefix, elementChild, user); sibDisplay.getAttribute(prefix + "-bind-resources") + " sib-form"
);
if (form) {
form.setAttribute(
"data-src",
sibDisplay.component.resourceId.replace("members/", "")
);
}
}
//- Allow to put user on a targetted search field
if (sibDisplay.getAttribute(prefix + "-bind-user2input")) {
sibDisplay.querySelector(
sibDisplay.getAttribute(prefix + "-bind-user2input")
).value = user["@id"];
}
}
function recursiveAdaptWidgets(prefix, element, user) {
element.addEventListener("populate", () => {
//- This function is a workaround for the currently unworking populate
//- Feel free to see examples on page-circles-
element.querySelectorAll("[" + prefix + "-user-id]").forEach(el => {
el.setAttribute(el.getAttribute(prefix + "-user-id"), user["@id"]);
});
applyAdapt(prefix, element, user);
document.querySelectorAll('sib-display, sib-form').forEach(sibDisplay => {
applyAdapt(prefix, sibDisplay, user);
}); });
}); });
} }
@ -219,8 +216,10 @@ document.addEventListener("DOMContentLoaded", function(event) {
document document
.querySelector('button[role="log in"]') .querySelector('button[role="log in"]')
.setAttribute("style", "display:none !important"); .setAttribute("style", "display:none !important");
// Set current user id on set-user-id of sib-display document.querySelectorAll('sib-display, sib-form').forEach(element => {
recursiveAdaptWidgets("hd-inherit", document, user); // Set current user id on set-user-id of sib-display
recursiveAdaptWidgets("hd-inherit", element, user);
});
for (leaveBtn of document.querySelectorAll( for (leaveBtn of document.querySelectorAll(
"admin-circle-leave > sib-ac-checker:not([hidden])" "admin-circle-leave > sib-ac-checker:not([hidden])"
)) { )) {

View File

@ -94,7 +94,6 @@
class-members='w33 cell border cell-with-buttons' class-members='w33 cell border cell-with-buttons'
widget-members="admin-circle-join-button" widget-members="admin-circle-join-button"
hd-inherit-bind-user2input="input[name='user.@id']"
) )

View File

@ -68,7 +68,6 @@
search-widget-user='sib-form-hidden' search-widget-user='sib-form-hidden'
search-value-user="-" search-value-user="-"
hd-inherit-user-id="search-value-user" hd-inherit-user-id="search-value-user"
hd-inherit-widgets
) )
sib-display( sib-display(
@ -84,8 +83,6 @@
widget-buttons="admin-project-buttons" widget-buttons="admin-project-buttons"
action-buttons="buttons" action-buttons="buttons"
hd-inherit-widgets
hd-inherit-widgets-multiple
widget-captain='project-captain' widget-captain='project-captain'
widget-members='project-admins' widget-members='project-admins'

View File

@ -60,7 +60,6 @@ sib-router(default-route='circle-profile', hidden)
widget-user.@id='sib-form-hidden' widget-user.@id='sib-form-hidden'
hd-inherit-bind-user2input="input[name='user.@id']" hd-inherit-bind-user2input="input[name='user.@id']"
hd-inherit-widgets
submit-button='Join Circle' submit-button='Join Circle'
) )
@ -77,7 +76,6 @@ sib-router(default-route='circle-profile', hidden)
empty-widget='circle-join-button' empty-widget='circle-join-button'
hd-inherit-bind-resources='circle-join-button' hd-inherit-bind-resources='circle-join-button'
hd-inherit-user-id="search-value-user" hd-inherit-user-id="search-value-user"
hd-inherit-widgets
) )

View File

@ -94,7 +94,6 @@ sib-router(default-route='project-profile', hidden)
search-value-user="" search-value-user=""
hd-inherit-user-id="search-value-user" hd-inherit-user-id="search-value-user"
hd-inherit-widgets
) )