Flowdeck 7.84.13 : barre v0.3.0 — liens Hub du menu compte, URL Hub résolue comme les sœurs (draco_urls)
This commit is contained in:
@@ -157,6 +157,7 @@ class Settings(BaseSettings):
|
|||||||
# TIKTAK_URL=https://tiktak-dev.dracodev.net
|
# TIKTAK_URL=https://tiktak-dev.dracodev.net
|
||||||
# KANBANTE_URL=https://kanbante-dev.dracodev.net
|
# KANBANTE_URL=https://kanbante-dev.dracodev.net
|
||||||
# SHAARIT_URL=https://shaarit-dev.dracodev.net
|
# SHAARIT_URL=https://shaarit-dev.dracodev.net
|
||||||
|
# HUB_URL=https://hub-dev.dracodev.net
|
||||||
# FLOWDECK_URL=https://flowdeck-dev.dracodev.net
|
# FLOWDECK_URL=https://flowdeck-dev.dracodev.net
|
||||||
draco_sso_url: str = "https://og.dracodev.net" # ObsiGate (émettrice SSO)
|
draco_sso_url: str = "https://og.dracodev.net" # ObsiGate (émettrice SSO)
|
||||||
# ── Coffre ObsiGate, côté consommateur Flowdeck (Phase 4, issue #22) ──
|
# ── Coffre ObsiGate, côté consommateur Flowdeck (Phase 4, issue #22) ──
|
||||||
@@ -170,6 +171,7 @@ class Settings(BaseSettings):
|
|||||||
tiktak_url: str = "https://tiktak.dracodev.net"
|
tiktak_url: str = "https://tiktak.dracodev.net"
|
||||||
kanbante_url: str = "https://kanbante.dracodev.net"
|
kanbante_url: str = "https://kanbante.dracodev.net"
|
||||||
shaarit_url: str = "https://shaarit.dracodev.net"
|
shaarit_url: str = "https://shaarit.dracodev.net"
|
||||||
|
hub_url: str = "https://hub.dracodev.net"
|
||||||
# URL publique de CETTE instance ; vide = dérivée de
|
# URL publique de CETTE instance ; vide = dérivée de
|
||||||
# OAUTH_REDIRECT_URI, puis d'APP_BASE_URL (si non locale), puis du
|
# OAUTH_REDIRECT_URI, puis d'APP_BASE_URL (si non locale), puis du
|
||||||
# nom officiel.
|
# nom officiel.
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ OFFICIELLES = {
|
|||||||
"kanbante": "https://kanbante.dracodev.net",
|
"kanbante": "https://kanbante.dracodev.net",
|
||||||
"shaarit": "https://shaarit.dracodev.net",
|
"shaarit": "https://shaarit.dracodev.net",
|
||||||
"flowdeck": "https://flowdeck.dracodev.net",
|
"flowdeck": "https://flowdeck.dracodev.net",
|
||||||
|
"hub": "https://hub.dracodev.net",
|
||||||
"gitea": "https://git.dracodev.net",
|
"gitea": "https://git.dracodev.net",
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,6 +124,7 @@ _SLUGS_SOEURS = {
|
|||||||
"tiktak": "tiktak",
|
"tiktak": "tiktak",
|
||||||
"kanbante": "kanbante",
|
"kanbante": "kanbante",
|
||||||
"shaarit": "shaarit",
|
"shaarit": "shaarit",
|
||||||
|
"hub": "hub",
|
||||||
}
|
}
|
||||||
|
|
||||||
# Hôte de l'agent : agent<SUFFIXE>.dracodev.net (SUFFIXE = ``-dev``…).
|
# Hôte de l'agent : agent<SUFFIXE>.dracodev.net (SUFFIXE = ``-dev``…).
|
||||||
@@ -133,7 +135,7 @@ _MOTIF_HOTE_AGENT = re.compile(r"^agent(-[a-z0-9-]+)?\.dracodev\.net$")
|
|||||||
# de TOUTE l'installation — jamais un suffixe inventé depuis un
|
# de TOUTE l'installation — jamais un suffixe inventé depuis un
|
||||||
# hôte arbitraire : hors motif (autre domaine, LAN, IP), None.
|
# hôte arbitraire : hors motif (autre domaine, LAN, IP), None.
|
||||||
_MOTIF_HOTE_PUBLIC = re.compile(
|
_MOTIF_HOTE_PUBLIC = re.compile(
|
||||||
r"^(og|flowdeck|tiktak|kanbante|agent)(-[a-z0-9-]+)?\.dracodev\.net$")
|
r"^(og|flowdeck|tiktak|kanbante|agent|hub)(-[a-z0-9-]+)?\.dracodev\.net$")
|
||||||
|
|
||||||
# Slugs pour la résolution par l'hôte de la requête (l'agent inclus).
|
# Slugs pour la résolution par l'hôte de la requête (l'agent inclus).
|
||||||
_SLUGS_TOUTES = {**_SLUGS_SOEURS, "agent": "agent"}
|
_SLUGS_TOUTES = {**_SLUGS_SOEURS, "agent": "agent"}
|
||||||
@@ -282,6 +284,14 @@ def shaarit_url() -> str:
|
|||||||
return _resoudre_soeur("SHAARIT_URL", "shaarit_url", "shaarit")
|
return _resoudre_soeur("SHAARIT_URL", "shaarit_url", "shaarit")
|
||||||
|
|
||||||
|
|
||||||
|
def hub_url() -> str:
|
||||||
|
"""Hub (barre v0.3.0, HUB-1) : même résolution que les sœurs —
|
||||||
|
il n'a pas d'onglet, sa base sert les liens du menu compte
|
||||||
|
(Télécharger, À Propos, Aides, Profil) via ``urls.hub`` de la
|
||||||
|
configuration de la barre."""
|
||||||
|
return _resoudre_soeur("HUB_URL", "hub_url", "hub")
|
||||||
|
|
||||||
|
|
||||||
def gitea_url() -> str:
|
def gitea_url() -> str:
|
||||||
return _resoudre("GITEA_URL", "gitea_url", "gitea")
|
return _resoudre("GITEA_URL", "gitea_url", "gitea")
|
||||||
|
|
||||||
@@ -366,6 +376,7 @@ def toutes() -> dict[str, str]:
|
|||||||
"kanbante": kanbante_url(),
|
"kanbante": kanbante_url(),
|
||||||
"shaarit": shaarit_url(),
|
"shaarit": shaarit_url(),
|
||||||
"flowdeck": flowdeck_url(),
|
"flowdeck": flowdeck_url(),
|
||||||
|
"hub": hub_url(),
|
||||||
"gitea": gitea_url(),
|
"gitea": gitea_url(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
{# Barre d'apps commune dracodev — Fusion ACC-1.1 (issue #17).
|
{# Barre d'apps commune dracodev — Fusion ACC-1.1 (issue #17).
|
||||||
Snippet FIGÉ vendangé depuis Projets/dracodev-commons v0.2.0
|
Snippet FIGÉ vendangé depuis Projets/dracodev-commons v0.3.0
|
||||||
(ui/barre-apps/, commit 70c837a de la branche
|
(ui/barre-apps/, branche hub-menu-compte-v0-3-0 de la PR commons
|
||||||
shaarit-phase3-barre-contrats) : ne pas modifier la structure ici ;
|
#9 — HUB-1, fusion #115) : ne pas modifier la structure ici ;
|
||||||
toute évolution passe par une nouvelle version de commons.
|
toute évolution passe par une nouvelle version de commons.
|
||||||
|
v0.3.0 : menu compte — liens Hub Télécharger / À Propos / Aides
|
||||||
|
et Profil devenu lien (base draco_urls().hub passée en urls.hub
|
||||||
|
de la configuration ci-dessous) ; « Déconnexion » reste relayée.
|
||||||
CSS/JS : /static/css/draco-barre.css, /static/js/vendor/draco-barre.js.
|
CSS/JS : /static/css/draco-barre.css, /static/js/vendor/draco-barre.js.
|
||||||
v7.82.0 (dev/prod) : les href des onglets ne sont plus figés —
|
v7.82.0 (dev/prod) : les href des onglets ne sont plus figés —
|
||||||
l'hôte les injecte depuis sa config (draco_urls(), noms officiels
|
l'hôte les injecte depuis sa config (draco_urls(), noms officiels
|
||||||
@@ -105,6 +108,12 @@
|
|||||||
repli si le module ne charge pas). */
|
repli si le module ne charge pas). */
|
||||||
window.DRACO_BAR_CONFIG = {
|
window.DRACO_BAR_CONFIG = {
|
||||||
current: "flowdeck",
|
current: "flowdeck",
|
||||||
|
/* Barre v0.3.0 (HUB-1) : le Hub n'a pas d'onglet — sa base
|
||||||
|
(draco_urls().hub : HUB_URL explicite, hôte de la requête,
|
||||||
|
dérivation par l'agent, défaut officiel) alimente les
|
||||||
|
liens du menu compte (Télécharger, À Propos, Aides,
|
||||||
|
Profil) via urls.hub. */
|
||||||
|
urls: { hub: "{{ draco_urls().hub }}/" },
|
||||||
domain: (function () { try { return localStorage.getItem("draco_domain") || "pro"; } catch (e) { return "pro"; } })(),
|
domain: (function () { try { return localStorage.getItem("draco_domain") || "pro"; } catch (e) { return "pro"; } })(),
|
||||||
counts: {},
|
counts: {},
|
||||||
onAction: function (act, el) {
|
onAction: function (act, el) {
|
||||||
|
|||||||
@@ -20,6 +20,10 @@
|
|||||||
le clair via data-theme="light" héritait quand même du sombre
|
le clair via data-theme="light" héritait quand même du sombre
|
||||||
système (piège constaté dans les copies vendangées de
|
système (piège constaté dans les copies vendangées de
|
||||||
Kanbante/Flowdeck ; les re-vendanges de la v0.2.0 le corrigent).
|
Kanbante/Flowdeck ; les re-vendanges de la v0.2.0 le corrigent).
|
||||||
|
v0.3.0 (HUB-1) : aucun style nouveau — les liens du Hub du menu
|
||||||
|
compte (Télécharger, À Propos, Aides, Profil) réutilisent
|
||||||
|
.draco-menu-item (déjà ancre-compatible : text-decoration none)
|
||||||
|
et le séparateur .draco-menu-sep du menu des applications.
|
||||||
Jetons repris du prototype validé Console v7.2.
|
Jetons repris du prototype validé Console v7.2.
|
||||||
Thème : clair par défaut, sombre via [data-theme="dark"] sur <html>
|
Thème : clair par défaut, sombre via [data-theme="dark"] sur <html>
|
||||||
ou prefers-color-scheme si l'app intégratrice ne force rien
|
ou prefers-color-scheme si l'app intégratrice ne force rien
|
||||||
|
|||||||
Vendored
+82
-11
@@ -14,6 +14,21 @@
|
|||||||
* contrat que les autres apps), entrée APP_LABELS ; l'onglet
|
* contrat que les autres apps), entrée APP_LABELS ; l'onglet
|
||||||
* (data-app="shaarit", après Kanbante, avant agent) est repris
|
* (data-app="shaarit", après Kanbante, avant agent) est repris
|
||||||
* automatiquement par la construction du menu de la marque.
|
* automatiquement par la construction du menu de la marque.
|
||||||
|
* v0.3.0 (carte HUB-1, fusion #115) : le Hub, point central de la
|
||||||
|
* suite — nouvelle clé d'URL « hub » (jeton {{URL_HUB}} côté hôte,
|
||||||
|
* DRACO_BAR_CONFIG.urls.hub), défaut officiel
|
||||||
|
* https://hub.dracodev.net/, dérivation -dev hub-dev comme les
|
||||||
|
* sœurs. Le menu compte gagne trois vrais liens (patron
|
||||||
|
* buildAppsMenu : <a href>, classe draco-menu-item) — Télécharger
|
||||||
|
* → <hub>/telecharger, À Propos → <hub>/a-propos, Aides →
|
||||||
|
* <hub>/aide — et « Profil » devient lui aussi un lien, vers
|
||||||
|
* <hub>/profil (il n'est plus relayé aux hôtes : un seul Profil,
|
||||||
|
* celui du Hub). « Déconnexion » reste l'action relayée
|
||||||
|
* (data-compte-act="deconnexion" / onAction), inchangée.
|
||||||
|
* refreshMenuHrefs() resynchronise aussi les liens du Hub à
|
||||||
|
* l'ouverture des menus. Le Hub n'a pas d'onglet dans la barre :
|
||||||
|
* comme spark, sa clé est résolue et exposée via DRACO_BAR.urls,
|
||||||
|
* sans étape « href rendu » (voir « URL » ci-dessous).
|
||||||
*
|
*
|
||||||
* Aucun gestionnaire inline : un seul écouteur délégué sur le document
|
* Aucun gestionnaire inline : un seul écouteur délégué sur le document
|
||||||
* (patron validé par le prototype — les onclick du HTML généré sont
|
* (patron validé par le prototype — les onclick du HTML généré sont
|
||||||
@@ -33,7 +48,8 @@
|
|||||||
* kanbante: "https://kanbante.dracodev.net/",
|
* kanbante: "https://kanbante.dracodev.net/",
|
||||||
* shaarit: "https://shaarit.dracodev.net/",
|
* shaarit: "https://shaarit.dracodev.net/",
|
||||||
* agent: "https://agent.dracodev.net/",
|
* agent: "https://agent.dracodev.net/",
|
||||||
* spark: "https://spark.dracodev.net/"
|
* spark: "https://spark.dracodev.net/",
|
||||||
|
* hub: "https://hub.dracodev.net/"
|
||||||
* },
|
* },
|
||||||
* onAction: function (act, el) { … } // l'app relaie les actions
|
* onAction: function (act, el) { … } // l'app relaie les actions
|
||||||
* } // qu'elle ne connaît pas
|
* } // qu'elle ne connaît pas
|
||||||
@@ -67,6 +83,12 @@
|
|||||||
* la marque et DRACO_BAR.urls. Même résolution pour shaarit (v0.2.0) :
|
* la marque et DRACO_BAR.urls. Même résolution pour shaarit (v0.2.0) :
|
||||||
* explicite > dérivation -dev shaarit-dev > href rendu
|
* explicite > dérivation -dev shaarit-dev > href rendu
|
||||||
* ({{URL_SHAARIT}}) > défaut officiel.
|
* ({{URL_SHAARIT}}) > défaut officiel.
|
||||||
|
* Cas hub (v0.3.0) : PAS d'onglet, donc pas d'étape « href rendu » —
|
||||||
|
* explicite (DRACO_BAR_CONFIG.urls.hub, alimenté par le jeton
|
||||||
|
* {{URL_HUB}} remplacé côté serveur par l'hôte) > dérivation -dev
|
||||||
|
* hub-dev sur hôte -dev > défaut officiel
|
||||||
|
* https://hub.dracodev.net/. La base résolue sert les quatre liens
|
||||||
|
* du menu compte (telecharger, a-propos, aide, profil).
|
||||||
* Actions émises (data-act) : rail, palette, domaine (data-dom),
|
* Actions émises (data-act) : rail, palette, domaine (data-dom),
|
||||||
* alertes, spark, rappel-entete. L'app intégratrice décide de chacune
|
* alertes, spark, rappel-entete. L'app intégratrice décide de chacune
|
||||||
* (ouvrir la palette, le panneau Spark, changer de domaine…).
|
* (ouvrir la palette, le panneau Spark, changer de domaine…).
|
||||||
@@ -141,6 +163,14 @@
|
|||||||
* mais le menu affiche l'identité même sans gestionnaire hôte.
|
* mais le menu affiche l'identité même sans gestionnaire hôte.
|
||||||
* Accessibilité : vrais <button>, aria-haspopup / aria-expanded,
|
* Accessibilité : vrais <button>, aria-haspopup / aria-expanded,
|
||||||
* role="menu" / "menuitem", fermeture par Échap et clic extérieur.
|
* role="menu" / "menuitem", fermeture par Échap et clic extérieur.
|
||||||
|
* Menu compte (v0.3.0) — Profil n'est PLUS relayé : c'est un lien
|
||||||
|
* vers <hub>/profil, comme Télécharger / À Propos / Aides (liens
|
||||||
|
* Hub, data-hub-link, href resynchronisés à chaque ouverture via
|
||||||
|
* refreshCompteHrefs / refreshMenuHrefs). Seule « Déconnexion »
|
||||||
|
* reste relayée à l'hôte (data-compte-act="deconnexion"), inchangée.
|
||||||
|
* Les hôtes qui traitaient onAction("profil") (Kanbante → /profile)
|
||||||
|
* voient ce comportement remplacé par le lien Hub — décision du
|
||||||
|
* plan Hub : un seul Profil, celui du Hub.
|
||||||
*/
|
*/
|
||||||
(function () {
|
(function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
@@ -155,7 +185,8 @@
|
|||||||
kanbante: "https://kanbante.dracodev.net/",
|
kanbante: "https://kanbante.dracodev.net/",
|
||||||
shaarit: "https://shaarit.dracodev.net/",
|
shaarit: "https://shaarit.dracodev.net/",
|
||||||
agent: "https://agent.dracodev.net/",
|
agent: "https://agent.dracodev.net/",
|
||||||
spark: "https://spark.dracodev.net/"
|
spark: "https://spark.dracodev.net/",
|
||||||
|
hub: "https://hub.dracodev.net/"
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Dérivation -dev (v0.1.6) — appliquée UNIQUEMENT quand l'hôte courant
|
/* Dérivation -dev (v0.1.6) — appliquée UNIQUEMENT quand l'hôte courant
|
||||||
@@ -168,7 +199,8 @@
|
|||||||
tiktak: "https://tiktak-dev.dracodev.net/",
|
tiktak: "https://tiktak-dev.dracodev.net/",
|
||||||
kanbante: "https://kanbante-dev.dracodev.net/",
|
kanbante: "https://kanbante-dev.dracodev.net/",
|
||||||
shaarit: "https://shaarit-dev.dracodev.net/",
|
shaarit: "https://shaarit-dev.dracodev.net/",
|
||||||
agent: "https://agent-dev.dracodev.net/"
|
agent: "https://agent-dev.dracodev.net/",
|
||||||
|
hub: "https://hub-dev.dracodev.net/"
|
||||||
};
|
};
|
||||||
|
|
||||||
var APP_LABELS = {
|
var APP_LABELS = {
|
||||||
@@ -307,6 +339,28 @@
|
|||||||
menu.querySelectorAll(".draco-apps-item").forEach(function (a) {
|
menu.querySelectorAll(".draco-apps-item").forEach(function (a) {
|
||||||
if (a.dataset.app && resolvedUrls[a.dataset.app]) a.setAttribute("href", resolvedUrls[a.dataset.app]);
|
if (a.dataset.app && resolvedUrls[a.dataset.app]) a.setAttribute("href", resolvedUrls[a.dataset.app]);
|
||||||
});
|
});
|
||||||
|
/* v0.3.0 : les liens du Hub (menu compte) sont resynchronisés
|
||||||
|
* eux aussi à l'ouverture d'un menu, pour refléter setUrls et
|
||||||
|
* la dérivation -dev même s'ils ont été construits avant. */
|
||||||
|
refreshCompteHrefs();
|
||||||
|
}
|
||||||
|
/* Liens du Hub dans le menu compte (v0.3.0) : chemin → libellé.
|
||||||
|
* « Profil » est le quatrième lien (vers <hub>/profil) ; il
|
||||||
|
* remplace l'ancien item relayé « profil ». */
|
||||||
|
var HUB_LINKS = [
|
||||||
|
["telecharger", "Télécharger"],
|
||||||
|
["a-propos", "À Propos"],
|
||||||
|
["aide", "Aides"],
|
||||||
|
["profil", "Profil"]
|
||||||
|
];
|
||||||
|
function hubHref(path) {
|
||||||
|
return withSlash(resolvedUrls.hub || DEFAULT_URLS.hub) + path;
|
||||||
|
}
|
||||||
|
function refreshCompteHrefs() {
|
||||||
|
if (!compteMenu) return;
|
||||||
|
compteMenu.querySelectorAll("[data-hub-link]").forEach(function (a) {
|
||||||
|
a.setAttribute("href", hubHref(a.getAttribute("data-hub-link")));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
function togglePopup(menu, btn, force) {
|
function togglePopup(menu, btn, force) {
|
||||||
if (!menu) return;
|
if (!menu) return;
|
||||||
@@ -429,10 +483,14 @@
|
|||||||
if (!appsMenu.hidden) lastOpener = brand;
|
if (!appsMenu.hidden) lastOpener = brand;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Menu compte (v0.1.6) — en-tête d'identité + Profil / Déconnexion
|
/* Menu compte (v0.1.6 ; v0.3.0 pour les liens) — en-tête
|
||||||
* relayés à l'hôte. L'en-tête est rafraîchi à chaque ouverture, pour
|
* d'identité, puis les liens du Hub (Télécharger, À Propos,
|
||||||
* refléter un title posé après coup par l'hôte (ex. ObsiGate, qui
|
* Aides, Profil — vrais <a href>, même patron que le menu des
|
||||||
* remplit l'avatar depuis /api/auth/me après chargement). */
|
* applications), un séparateur, puis « Déconnexion » relayée à
|
||||||
|
* l'hôte. L'en-tête et les href sont rafraîchis à chaque
|
||||||
|
* ouverture, pour refléter un title posé après coup par l'hôte
|
||||||
|
* (ex. ObsiGate, qui remplit l'avatar depuis /api/auth/me après
|
||||||
|
* chargement) et la résolution d'URL la plus récente. */
|
||||||
function buildCompteMenu() {
|
function buildCompteMenu() {
|
||||||
if (!bar || !avatarBtn || compteMenu) return;
|
if (!bar || !avatarBtn || compteMenu) return;
|
||||||
compteMenu = document.createElement("div");
|
compteMenu = document.createElement("div");
|
||||||
@@ -443,15 +501,26 @@
|
|||||||
var head = document.createElement("div");
|
var head = document.createElement("div");
|
||||||
head.className = "draco-compte-nom";
|
head.className = "draco-compte-nom";
|
||||||
compteMenu.appendChild(head);
|
compteMenu.appendChild(head);
|
||||||
[["profil", "Profil"], ["deconnexion", "Déconnexion"]].forEach(function (pair) {
|
HUB_LINKS.forEach(function (pair) {
|
||||||
|
var a = document.createElement("a");
|
||||||
|
a.className = "draco-menu-item";
|
||||||
|
a.href = hubHref(pair[0]);
|
||||||
|
a.setAttribute("data-hub-link", pair[0]);
|
||||||
|
a.setAttribute("role", "menuitem");
|
||||||
|
a.textContent = pair[1];
|
||||||
|
compteMenu.appendChild(a);
|
||||||
|
});
|
||||||
|
var sep = document.createElement("div");
|
||||||
|
sep.className = "draco-menu-sep";
|
||||||
|
sep.setAttribute("aria-hidden", "true");
|
||||||
|
compteMenu.appendChild(sep);
|
||||||
var b = document.createElement("button");
|
var b = document.createElement("button");
|
||||||
b.type = "button";
|
b.type = "button";
|
||||||
b.className = "draco-menu-item";
|
b.className = "draco-menu-item";
|
||||||
b.setAttribute("data-compte-act", pair[0]);
|
b.setAttribute("data-compte-act", "deconnexion");
|
||||||
b.setAttribute("role", "menuitem");
|
b.setAttribute("role", "menuitem");
|
||||||
b.textContent = pair[1];
|
b.textContent = "Déconnexion";
|
||||||
compteMenu.appendChild(b);
|
compteMenu.appendChild(b);
|
||||||
});
|
|
||||||
bar.appendChild(compteMenu);
|
bar.appendChild(compteMenu);
|
||||||
}
|
}
|
||||||
function refreshCompteMenu() {
|
function refreshCompteMenu() {
|
||||||
@@ -459,6 +528,7 @@
|
|||||||
var head = compteMenu.querySelector(".draco-compte-nom");
|
var head = compteMenu.querySelector(".draco-compte-nom");
|
||||||
var name = displayName();
|
var name = displayName();
|
||||||
if (head) head.textContent = name || "Compte";
|
if (head) head.textContent = name || "Compte";
|
||||||
|
refreshCompteHrefs();
|
||||||
}
|
}
|
||||||
function toggleCompteMenu(force) {
|
function toggleCompteMenu(force) {
|
||||||
buildCompteMenu();
|
buildCompteMenu();
|
||||||
@@ -555,6 +625,7 @@
|
|||||||
resolvedUrls = resolveUrls();
|
resolvedUrls = resolveUrls();
|
||||||
window.DRACO_BAR.urls = resolvedUrls;
|
window.DRACO_BAR.urls = resolvedUrls;
|
||||||
applyUrls(resolvedUrls);
|
applyUrls(resolvedUrls);
|
||||||
|
refreshCompteHrefs();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user