Add fxAdminTradLinkClass function and update translation button handling
This commit introduces the fxAdminTradLinkClass function to centralize CSS class management for translation links. The fxAdminTradButton function has been updated to utilize this new function, ensuring consistent styling. Additionally, a new JavaScript function is added to handle translation link clicks, opening a popup for editing translations. This enhances the user experience and maintains code clarity.
This commit is contained in:
@ -222,6 +222,11 @@ function fxAdminTradMarker($clef, $mem_global = 0) {
|
||||
return "\xE2\x80\x8B\xE2\x80\x8C" . $strPayload . "\xE2\x80\x8C\xE2\x80\x8B";
|
||||
}
|
||||
|
||||
/** Classes CSS crayon traduction (sans btn-admin-trad — évite le handler bib sur data-trad-url). */
|
||||
function fxAdminTradLinkClass() {
|
||||
return 'btn-aide-bib btn-aide-trad ms1-trad-link';
|
||||
}
|
||||
|
||||
/** Lien crayon traduction.php — superadm dev/préprod + switch « Textes » ON. */
|
||||
function fxAdminTradButton($clef, $strInfoPrg = null, $mem_global = 0) {
|
||||
if (!fxAdminTextEditModeActive() || trim($clef) === '') {
|
||||
@ -229,8 +234,7 @@ function fxAdminTradButton($clef, $strInfoPrg = null, $mem_global = 0) {
|
||||
}
|
||||
|
||||
return '<a href="' . fxAdminEsc(fxAdminTradUrl($clef, $strInfoPrg, $mem_global)) . '"'
|
||||
. ' target="_blank" rel="noopener"'
|
||||
. ' class="btn-admin-trad btn-aide-bib btn-aide-trad ms1-trad-link"'
|
||||
. ' class="' . fxAdminTradLinkClass() . '"'
|
||||
. ' title="Modifier textes FR/EN"'
|
||||
. ' aria-label="Modifier textes">'
|
||||
. '<i class="fa fa-pencil" aria-hidden="true"></i>'
|
||||
@ -251,6 +255,33 @@ function fxAdminTradMarkerScriptHtml() {
|
||||
var re = /\u200B\u200C([A-Za-z0-9+/=]+)\u200C\u200B/g;
|
||||
var tradBase = ' . json_encode($vDomaine . '/php/traduction.php') . ';
|
||||
var pageDefault = ' . json_encode(!empty($vPage) ? $vPage : 'compte.php') . ';
|
||||
var tradLinkClass = ' . json_encode(fxAdminTradLinkClass()) . ';
|
||||
|
||||
function openTradPopup(url) {
|
||||
var w = window.open(
|
||||
url,
|
||||
"ms1Trad" + Date.now(),
|
||||
"width=960,height=640,scrollbars=yes,resizable=yes"
|
||||
);
|
||||
if (w) {
|
||||
var timer = setInterval(function () {
|
||||
if (w.closed) {
|
||||
clearInterval(timer);
|
||||
window.location.reload();
|
||||
}
|
||||
}, 400);
|
||||
}
|
||||
}
|
||||
|
||||
document.addEventListener("click", function (e) {
|
||||
var link = e.target.closest("a.ms1-trad-link");
|
||||
if (!link || !link.href) {
|
||||
return;
|
||||
}
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
openTradPopup(link.href);
|
||||
}, true);
|
||||
|
||||
function skipParent(node) {
|
||||
var p = node.parentNode;
|
||||
@ -296,9 +327,7 @@ function fxAdminTradMarkerScriptHtml() {
|
||||
var o = JSON.parse(atob(m[1]));
|
||||
var a = document.createElement("a");
|
||||
a.href = buildUrl(o);
|
||||
a.target = "_blank";
|
||||
a.rel = "noopener";
|
||||
a.className = "btn-admin-trad btn-aide-bib btn-aide-trad ms1-trad-link";
|
||||
a.className = tradLinkClass;
|
||||
a.title = "Modifier textes FR/EN";
|
||||
a.setAttribute("aria-label", "Modifier textes");
|
||||
a.innerHTML = \'<i class="fa fa-pencil" aria-hidden="true"></i>\';
|
||||
|
||||
Reference in New Issue
Block a user