116 lines
3.3 KiB
TypeScript
116 lines
3.3 KiB
TypeScript
/*
|
|
docker run -v ./script.js:/app/script.js --rm playwright:1.47.0
|
|
*/
|
|
import type { Page } from "playwright";
|
|
import login from "../login.ts";
|
|
import forms from "../forms.ts";
|
|
|
|
async function removeLoginForgottenPasswordLink(
|
|
{ page, dolibarrAddress }: {
|
|
page: Page;
|
|
dolibarrAddress: string;
|
|
imgFolderPath: string;
|
|
},
|
|
): Promise<void> {
|
|
await page.goto(`${dolibarrAddress}/admin/security.php`);
|
|
const label = `Cacher le lien "Mot de passe oublié" sur la page de connexion`;
|
|
const row = page.locator("tr").filter({
|
|
has: page.locator("td", { hasText: label }),
|
|
});
|
|
|
|
const enableLink = row.locator("a", {
|
|
hasText: /^Activer$/,
|
|
hasNotText: /^Désactiver$/,
|
|
});
|
|
const disableLink = row.locator("a", {
|
|
hasText: /^Désactiver$/,
|
|
hasNotText: /^Activer$/,
|
|
});
|
|
if (await enableLink.isVisible()) {
|
|
await enableLink.click();
|
|
} else if (!await disableLink.isVisible()) {
|
|
throw new Error("Enable/Disable link not found");
|
|
}
|
|
}
|
|
async function setupLoginPage(
|
|
globalCtx: {
|
|
page: Page;
|
|
dolibarrAddress: string;
|
|
imgFolderPath: string;
|
|
},
|
|
{ removeHelpLink, HTMLMessage, backgroundImage }: {
|
|
removeHelpLink?: boolean;
|
|
HTMLMessage?: string;
|
|
backgroundImage?: string;
|
|
},
|
|
): Promise<void> {
|
|
const { page, dolibarrAddress } = globalCtx;
|
|
await page.goto(`${dolibarrAddress}/admin/ihm.php?mode=login`);
|
|
|
|
await forms.fillForm(
|
|
globalCtx,
|
|
{
|
|
HTMLMessage,
|
|
backgroundImage,
|
|
removeHelpLink: (removeHelpLink||false).toString(),
|
|
},
|
|
new Map([
|
|
["removeHelpLink",`Cacher le lien «Besoin d'aide ou assistance» sur la page de connexion:toggle`],
|
|
["backgroundImage","imagebackground:file"],
|
|
["HTMLMessage", "main_home:cke"]
|
|
]),
|
|
1,
|
|
);
|
|
}
|
|
|
|
async function setGlobalCSS(
|
|
{ page, dolibarrAddress, imgFolderPath }: {
|
|
page: Page;
|
|
dolibarrAddress: string;
|
|
imgFolderPath: string;
|
|
}, cssStyleSheet: string) {
|
|
await page.goto(`${dolibarrAddress}/admin/ihm.php?mode=css`);
|
|
await forms.fillForm(
|
|
{page, imgFolderPath},
|
|
{cssStyleSheet},
|
|
new Map([
|
|
["cssStyleSheet","MAIN_IHM_CUSTOM_CSSaceeditorid:ace"]
|
|
]),
|
|
1,
|
|
)
|
|
}
|
|
|
|
async function setupDisplay(
|
|
globalCtx: {
|
|
page: Page;
|
|
dolibarrAddress: string;
|
|
adminCredentials: { username: string; password: string };
|
|
imgFolderPath: string;
|
|
},
|
|
): Promise<void> {
|
|
await login.doAdminLogin(globalCtx);
|
|
// await removeLoginForgottenPasswordLink(globalCtx);
|
|
// await setupLoginPage(globalCtx, {
|
|
// removeHelpLink: true,
|
|
// HTMLMessage: `
|
|
// <div style="text-align:center"><span style="color:#000000">Bienvenue chez </span><span style="color:#2c3e50"><em>Gabriel Radureau</em></span><br />
|
|
// <span style="color:#000000"><em>l'</em></span><span style="color:#e74c3c"><em>ar</em></span><span style="color:#c0392b"><em>change</em></span><span style="color:#000000"><em> du </em></span><span style="color:#2ecc71"><em>code</em></span><br />
|
|
// <span style="color:#000000">🏹💻🪽<br />
|
|
// <em><span style="font-size:8px">Pariez sur le bon sagitaire</span></em></span></div>
|
|
// `.trim(),
|
|
// backgroundImage: "$IMG/loginBackground.jpeg",
|
|
// });
|
|
await setGlobalCSS(globalCtx, `
|
|
body {
|
|
color: black;
|
|
}
|
|
`.trim());
|
|
}
|
|
|
|
export default {
|
|
setupDisplay,
|
|
|
|
removeLoginForgottenPasswordLink,
|
|
setupLoginPage,
|
|
};
|