modif simplemobnav to look like a smartphone on big screen

This commit is contained in:
2025-09-02 08:57:40 +02:00
parent 2ac5e9ce07
commit 5a4771311f
18 changed files with 819 additions and 286 deletions

View File

@@ -1,5 +1,5 @@
<!-- screen action-->
<div class="screenaction mt-5 sm:mx-auto sm:w-full sm:max-w-sm">
<div class="screenaction mt-5 m-2 sm:mx-auto sm:w-full sm:max-w-sm">
</div>
<!-- feedback action-->
<div class="my-5">

View File

@@ -1,5 +1,5 @@
<div class="mt-1">
<label class="input validator mbt-1">
<div class="mt-1 w-full">
<label class="input validator mbt- w-full max-w-full">
<svg class="h-[1em] opacity-50" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<g
stroke-linejoin="round"
@@ -23,7 +23,7 @@
<path d="M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM12.735 14c.618 0 1.093-.561.872-1.139a6.002 6.002 0 0 0-11.215 0c-.22.578.254 1.139.872 1.139h9.47Z"></path>
</g>
</svg>
<input id="inputaliasrecovery" type="text" placeholder="mail@site.com | alias" required />
<input id="inputaliasrecovery" class="w-full max-w-full" type="text" placeholder="mail@site.com | alias" required />
</label>
<div class="validator-hint hidden">
Enter a valid email or an alias (lowercase a-z and 0-9)

View File

@@ -1,8 +1,9 @@
<div class="w-full">
<p data-wco="createid" class="text-center text-neutral-content">
{{{signintitle}}}
</p>
<div class="mt-2">
<label class="input validator">
<label class="input validator w-full">
<svg class="h-[1em] opacity-90" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<g
stroke-linejoin="round"
@@ -15,7 +16,7 @@
</g>
</svg>
<input
class="signinalias"
class="signinalias w-full"
type="input"
required
placeholder="alias"
@@ -28,7 +29,7 @@
<p class="validator-hint hidden"> {{{aliasinvalid}}}</p>
</div>
<div class="mt-2">
<label class="input mt-1">
<label class="input mt-1 w-full">
<svg class="h-[1em] opacity-90" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<g
stroke-linejoin="round"
@@ -44,7 +45,7 @@
</label>
</div>
<div class="mt-2">
<textarea rows=5 class="mt-2 textarea signinprivatekey" placeholder="{{{privatekeyplaceholder}}}"></textarea>
<textarea rows=5 class="mt-2 textarea signinprivatekey w-full" placeholder="{{{privatekeyplaceholder}}}"></textarea>
</div>
<div class="flex m-6">
<div class="w-14 flex-none">
@@ -67,3 +68,4 @@
{{{authentifyme}}}
</button>
</div>
</div>

View File

@@ -1,9 +1,10 @@
<div class="w-full">
<p data-wco="createid" class="text-center text-neutral-content">
{{{signuptitle}}}
</p>
<div class="paramid">
<div class="paramid space-y-3 w-full">
<div class="mt-2">
<label class="input validator mbt-1">
<label class="input validator mbt-1 w-full max-w-full">
<svg class="h-[1em] opacity-90" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<g
stroke-linejoin="round"
@@ -16,7 +17,7 @@
</g>
</svg>
<input
class="signupalias"
class="signupalias w-full"
type="input"
required
placeholder="alias"
@@ -31,7 +32,7 @@
</div>
</div>
<div class="mt-2">
<label class="input validator mt-1">
<label class="input validator mt-1 w-full max-w-full">
<svg class="h-[1em] opacity-50" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<g
stroke-linejoin="round"
@@ -44,14 +45,14 @@
<path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path>
</g>
</svg>
<input class="signupemailrecovery" type="email" placeholder="mail@site.com" required />
<input class="signupemailrecovery w-full" type="email" placeholder="mail@site.com" required />
</label>
<div class="validator-hint hidden">
{{{emailinvalid}}}
</div>
</div>
<div class="mt-2">
<label class="input mt-1">
<label class="input mt-1 w-full max-w-full">
<svg class="h-[1em] opacity-90" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<g
stroke-linejoin="round"
@@ -63,7 +64,7 @@
<path d="M11.5 1A3.5 3.5 0 0 0 8 4.5V7H2.5A1.5 1.5 0 0 0 1 8.5v5A1.5 1.5 0 0 0 2.5 15h7a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 9.5 7V4.5a2 2 0 1 1 4 0v1.75a.75.75 0 0 0 1.5 0V4.5A3.5 3.5 0 0 0 11.5 1Z"></path>
</g>
</svg>
<input type="text" class="signuppassphrase" placeholder="passphrase (option)" />
<input type="text" class="signuppassphrase w-full" placeholder="passphrase (option)" />
</label>
</div>
<div class="mt-5">
@@ -118,4 +119,4 @@
</button>
</div>
</div>
</div>

View File

@@ -1,4 +1,4 @@
<div class="py-1">
<div class="py-1 sm:w-full sm:max-w-sm mx-auto">
<img
class="mx-auto w-auto block dark:hidden"
data-wco="logo"
@@ -25,5 +25,5 @@
<span class="loading loading-spinner loading-lg text-secondary"></span>
</div>
</div>
<div id="{{contentid}}" wco-name="{{contentwconame}}" wco-link="{{contentscreen}}" class="mt-5 sm:mx-auto sm:w-full sm:max-w-sm"></div>
<div class="navlink"></div>
<div id="{{contentid}}" wco-name="{{contentwconame}}" wco-link="{{contentscreen}}" class="flex flex-col overflow-y-auto flex justify-center"></div>
<div class="navlink flex justify-around border-t bg-base-200 p-2"></div>

View File

@@ -0,0 +1,29 @@
<div class="py-1">
<img
class="mx-auto w-auto block dark:hidden"
data-wco="logo"
src="{{logobglight.src}}"
alt="{{logobglight.alt}}"
src="{{logobgdark.src}}"
alt="{{logobgdark.alt}}"
/>
<img
class="mx-auto w-auto hidden dark:block"
data-wco="logo"
src="{{logobgdark.src}}"
alt="{{logobgdark.alt}}"
/>
<h2
class="mt-10 text-center text-2xl font-bold leading-9 tracking-tight"
data-wco="claim"
>
{{claim.textContent}}
</h2>
</div>
<div id="loading" class="flex min-h-full flex-col justify-center">
<div class="sm:mx-auto sm:w-full sm:max-w-sm py-4 text-center">
<span class="loading loading-spinner loading-lg text-secondary"></span>
</div>
</div>
<div id="{{contentid}}" wco-name="{{contentwconame}}" wco-link="{{contentscreen}}" class="mt-5 sm:mx-auto sm:w-full sm:max-w-sm"></div>
<div class="navlink"></div>

View File

@@ -1,11 +1,8 @@
<div class="flex justify-center gap-2 p-4">
{{#links}}
<button class="btn {{classnavbutton}} flex-col gap-1" onclick="apx.simplemobnav.action('{{id}}','{{link}}','{{action}}','{{wconame}}');">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-16 h-16 box-content">
<path stroke-linecap="round" stroke-linejoin="round" d="{{d}}" />
</svg>
<span class="text-sm">{{{shortlabel}}}</span>
<button class="{{classnavbutton}} btn btn-ghost btn-sm flex flex-col items-center" onclick="apx.simplemobnav.action('{{id}}','{{link}}','{{action}}','{{wconame}}');">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="{{d}}"/></svg>
<span class="text-xs">{{{shortlabel}}}</span>
</button>
{{/links}}
</div>

View File

@@ -0,0 +1,11 @@
<div class="flex justify-center gap-2 p-4">
{{#links}}
<button class="btn {{classnavbutton}} flex-col gap-1" onclick="apx.simplemobnav.action('{{id}}','{{link}}','{{action}}','{{wconame}}');">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-16 h-16 box-content">
<path stroke-linecap="round" stroke-linejoin="round" d="{{d}}" />
</svg>
<span class="text-sm">{{{shortlabel}}}</span>
</button>
{{/links}}
</div>

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="fr" data-theme="apxtridark" class="h-full bg-base-200 text-neutral-content ">
<html lang="fr" data-theme="apxtridark">
<head>
<meta charset="utf-8" />
<title>Authentification</title>
@@ -50,16 +50,11 @@
<script src="/api/apxtri/wwws/getwco/simplemobnav.js?wcotribe=apxtri&tribe=apxtri&xapp=admin&pagename=apxid&code=enjoy&tagid=authentification"></script>
<script src="/api/apxtri/wwws/getwco/apxauth.js?wcotribe=apxtri&tribe=apxtri&xapp=admin&pagename=apxid&code=enjoy&tagid=signature"></script>
</head>
<body class="h-full">
<div class="flex items-center justify-center min-h-screen px-4">
<body class="bg-base-100 flex items-center justify-center min-h-screen">
<div
id="authentification"
wco-name="simplemobnav"
class="bg-base-100 min-h-screen w-full p-4 text-center">
</div>
<!--div wco-name="chatroom" class="hidden min-h-full flex-col justify-center px-6 py-12 lg:px-8">
</div-->
class="w-full h-screen sm:w-[600px] bg-base-100 rounded-none sm:rounded-2xl shadow-xl flex flex-col overflow-hidden">
</div>
</body>
</html>

View File

@@ -57,6 +57,7 @@
--font-weight-bold: 700;
--tracking-tight: -0.025em;
--radius-lg: 0.5rem;
--radius-2xl: 1rem;
--ease-in: cubic-bezier(0.4, 0, 1, 1);
--ease-out: cubic-bezier(0, 0, 0.2, 1);
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
@@ -1873,6 +1874,79 @@
cursor: not-allowed;
}
}
.card {
position: relative;
display: flex;
flex-direction: column;
border-radius: var(--radius-box);
outline-width: 2px;
transition: outline 0.2s ease-in-out;
outline: 0 solid #0000;
outline-offset: 2px;
&:focus {
--tw-outline-style: none;
outline-style: none;
@media (forced-colors: active) {
outline: 2px solid transparent;
outline-offset: 2px;
}
}
&:focus-visible {
outline-color: currentColor;
}
:where(figure:first-child) {
overflow: hidden;
border-start-start-radius: inherit;
border-start-end-radius: inherit;
border-end-start-radius: unset;
border-end-end-radius: unset;
}
:where(figure:last-child) {
overflow: hidden;
border-start-start-radius: unset;
border-start-end-radius: unset;
border-end-start-radius: inherit;
border-end-end-radius: inherit;
}
&:where(.card-border) {
border: var(--border) solid var(--color-base-200);
}
&:where(.card-dash) {
border: var(--border) dashed var(--color-base-200);
}
&.image-full {
display: grid;
> * {
grid-column-start: 1;
grid-row-start: 1;
}
> .card-body {
position: relative;
color: var(--color-neutral-content);
}
:where(figure) {
overflow: hidden;
border-radius: inherit;
}
> figure img {
height: 100%;
object-fit: cover;
filter: brightness(28%);
}
}
figure {
display: flex;
align-items: center;
justify-content: center;
}
&:has(> input:is(input[type="checkbox"], input[type="radio"])) {
cursor: pointer;
user-select: none;
}
&:has(> :checked) {
outline: 2px solid currentColor;
}
}
.swap {
position: relative;
display: inline-grid;
@@ -2439,6 +2513,9 @@
.m-1 {
margin: calc(var(--spacing) * 1);
}
.m-2 {
margin: calc(var(--spacing) * 2);
}
.m-4 {
margin: calc(var(--spacing) * 4);
}
@@ -2984,6 +3061,9 @@
.h-\[1em\] {
height: 1em;
}
.h-\[700px\] {
height: 700px;
}
.h-auto {
height: auto;
}
@@ -3047,6 +3127,9 @@
.w-100 {
width: calc(var(--spacing) * 100);
}
.w-\[375px\] {
width: 375px;
}
.w-auto {
width: auto;
}
@@ -3062,9 +3145,15 @@
.max-w-\[20rem\] {
max-width: 20rem;
}
.max-w-full {
max-width: 100%;
}
.max-w-screen-lg {
max-width: var(--breakpoint-lg);
}
.max-w-sm {
max-width: var(--container-sm);
}
.min-w-110 {
min-width: calc(var(--spacing) * 110);
}
@@ -3166,6 +3255,9 @@
.items-start {
align-items: flex-start;
}
.justify-around {
justify-content: space-around;
}
.justify-between {
justify-content: space-between;
}
@@ -3203,6 +3295,13 @@
margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
}
}
.space-y-3 {
:where(& > :not(:last-child)) {
--tw-space-y-reverse: 0;
margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
}
}
.space-y-4 {
:where(& > :not(:last-child)) {
--tw-space-y-reverse: 0;
@@ -3258,6 +3357,9 @@
.rounded {
border-radius: 0.25rem;
}
.rounded-2xl {
border-radius: var(--radius-2xl);
}
.rounded-box {
border-radius: var(--radius-box);
}
@@ -3270,6 +3372,9 @@
.rounded-lg {
border-radius: var(--radius-lg);
}
.rounded-none {
border-radius: 0;
}
.rounded-tl-lg {
border-top-left-radius: var(--radius-lg);
}
@@ -3286,10 +3391,18 @@
border-style: var(--tw-border-style);
border-width: 1px;
}
.border-t {
border-top-style: var(--tw-border-style);
border-top-width: 1px;
}
.border-r {
border-right-style: var(--tw-border-style);
border-right-width: 1px;
}
.border-b {
border-bottom-style: var(--tw-border-style);
border-bottom-width: 1px;
}
.border-none {
--tw-border-style: none;
border-style: none;
@@ -3632,6 +3745,10 @@
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
.shadow-xl {
--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
.ring {
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -3893,11 +4010,36 @@
display: none;
}
}
.sm\:h-\[700px\] {
@media (width >= 40rem) {
height: 700px;
}
}
.sm\:w-64 {
@media (width >= 40rem) {
width: calc(var(--spacing) * 64);
}
}
.sm\:w-\[375px\] {
@media (width >= 40rem) {
width: 375px;
}
}
.sm\:w-\[400px\] {
@media (width >= 40rem) {
width: 400px;
}
}
.sm\:w-\[500px\] {
@media (width >= 40rem) {
width: 500px;
}
}
.sm\:w-\[600px\] {
@media (width >= 40rem) {
width: 600px;
}
}
.sm\:w-full {
@media (width >= 40rem) {
width: 100%;
@@ -3914,6 +4056,11 @@
translate: var(--tw-translate-x) var(--tw-translate-y);
}
}
.sm\:rounded-2xl {
@media (width >= 40rem) {
border-radius: var(--radius-2xl);
}
}
.md\:grid-cols-2 {
@media (width >= 48rem) {
grid-template-columns: repeat(2, minmax(0, 1fr));

58
wwws/admin/src/test.html Normal file
View File

@@ -0,0 +1,58 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>App Smartphone Responsive</title>
<script src="https://cdn.tailwindcss.com"></script>
<!-- DaisyUI -->
<script>
tailwind.config = {
plugins: [daisyui],
daisyui: { themes: ["light"] }
}
</script>
</head>
<body class="bg-gray-200 flex items-center justify-center min-h-screen">
<!-- Smartphone container -->
<div class="w-full h-screen sm:w-[600px] bg-white rounded-none sm:rounded-2xl shadow-xl flex flex-col overflow-hidden">
<!-- Header -->
<div class="p-4 border-b font-bold text-lg">
Mon Application
</div>
<!-- Contenu scrollable -->
<div class="flex-1 overflow-y-auto flex flex-col justify-center p-4 space-y-4">
<div class="card bg-base-200 p-4">Contenu 1</div>
<div class="card bg-base-200 p-4">Contenu 2</div>
<div class="card bg-base-200 p-4">Contenu 3</div>
<div class="card bg-base-200 p-4">Contenu 4</div>
<div class="card bg-base-200 p-4">Contenu 5</div>
<div class="card bg-base-200 p-4">Contenu 6</div>
<div class="card bg-base-200 p-4">Contenu 7</div>
<div class="card bg-base-200 p-4">Contenu 8</div>
<div class="card bg-base-200 p-4">Contenu 9</div>
</div>
<!-- Dock en bas -->
<div class="flex justify-around border-t bg-base-100 p-2">
<button class="btn btn-ghost btn-sm flex flex-col items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0h6"/></svg>
<span class="text-xs">Home</span>
</button>
<button class="btn btn-ghost btn-sm flex flex-col items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 17v-6h13M9 5v6h13"/></svg>
<span class="text-xs">Search</span>
</button>
<button class="btn btn-ghost btn-sm flex flex-col items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4.354a4 4 0 110 7.292m0 0a4 4 0 100 7.292m0-14.584v14.584"/></svg>
<span class="text-xs">Profile</span>
</button>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html lang="fr" data-theme="apxtridark" >
<head>
<meta charset="utf-8" />
<title>Authentification</title>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta
content="L'unique et sa propriété, authentification, apxtri, cle public, cle privée"
name="keywords"
/>
<meta
content="Porte d'entrée dans l'univers libre d'apXtri, là où vous pouvez être l'Unique et sa propriété."
name="description"
/>
<link data-wco="favicon" href="static/img/icons/iconbgdark.png" rel="icon" />
<!--script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script-->
<link href="static/css/output.css" rel="stylesheet" />
<script>
/**
* Read apx.js to know more
*/
const apxtri = {
headers: {
xtrkversion: 1,
xtribe: "apxtri",
xapp: "admin",
xlang: "fr",
xalias: "anonymous",
xhash: "anonymous",
xprofils:["anonymous"],
xdays: 0,
xuuid:0
},
pagename: "test",
wcoobserver:true,
allowedprofils:["anonymous"],
version:0
};
</script>
<script src="/apxtrilib/axios/dist/axios.min.js"></script>
<script src="/apxtrilib/dayjs/dayjs.min.js"></script>
<script src="/apxtrilib/openpgp/dist/openpgp.min.js"></script>
<script src="/apxtrilib/mustache/mustache.min.js"></script>
<script src="/apxtrilib/qr-code-styling/lib/qr-code-styling.js"></script>
<script src="/apxtrilib/checkjson.js"></script>
<script src="/api/apxtri/wwws/getwco/apx.js?wcotribe=apxtri&tribe=apxtri&xapp=admin&pagename=apxid&code=enjoy"></script>
<script src="/api/apxtri/wwws/getwco/simplemobnav.js?wcotribe=apxtri&tribe=apxtri&xapp=admin&pagename=apxid&code=enjoy&tagid=authentification"></script>
<script src="/api/apxtri/wwws/getwco/apxauth.js?wcotribe=apxtri&tribe=apxtri&xapp=admin&pagename=apxid&code=enjoy&tagid=signature"></script>
</head>
<body class="bg-base-100 flex items-center justify-center min-h-screen">
<div
id="authentification"
wco-name="simplemobnav"
class="w-full h-screen sm:w-[600px] bg-base-100 rounded-none sm:rounded-2xl shadow-xl flex flex-col overflow-hidden">
</div>
</body>
</html>

View File

@@ -1,48 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test Timestamp</title>
<script src="https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js"></script>
</head>
<body>
<h1>Test Timestamp avec Day.js</h1>
<pre id="output"></pre>
<script>
(function(){
const output = document.getElementById("output");
function log(...args) {
console.log(...args);
output.textContent += args.join(" ") + "\n";
}
// Timestamp avec dayjs
const tsNow = dayjs().valueOf();
log("Timestamp dayjs().valueOf():", tsNow);
// Timestamp Date.now()
const tsSystem = Date.now();
log("Timestamp Date.now():", tsSystem);
// Différence
log("Différence (ms) :", tsNow - tsSystem);
// Conversion en date
log("Date locale :", new Date(tsNow).toString());
log("Date UTC :", new Date(tsNow).toUTCString());
// Vérification simple
if (tsNow - tsSystem > 5000 || tsNow - tsSystem < -5000) {
log("⚠️ Attention : décalage > 5s entre dayjs() et Date.now()");
} else {
log("✔ Timestamp cohérent");
}
})();
</script>
</body>
</html>

View File

@@ -0,0 +1,120 @@
{
"contentwconame": "apxauth",
"contentid": "signature",
"logobgdark": {
"src": "static/img/logo/logobgdark.png",
"alt": "apxtri"
},
"logobglight": {
"src": "static/img/logo/logobglight.png",
"alt": "apxtri"
},
"claim": {
"textContent": "L'Unique et sa Propriété"
},
"navtpl":"navbuttonh",
"classnavbutton":"btn-primary hover:bg-secondary",
"classnavlist":{"p":"text-sm text-gray-500","a":"text-secondary hover:text-primary"},
"profilmenu": [
{
"mainprofil": "persons",
"link": "myworld"
},
{
"mainprofil": "pagans",
"link": "myworld"
},
{
"mainprofil": "anonymous",
"link": "signin"
}
],
"links": [
{
"link": "signup",
"d":"M18 7.5v3m0 0v3m0-3h3m-3 0h-3m-2.25-4.125a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0ZM3 19.235v-.11a6.375 6.375 0 0 1 12.75 0v.109A12.318 12.318 0 0 1 9.374 21c-2.331 0-4.512-.645-6.374-1.766Z",
"shortlabel":"Créer",
"label": "Pas encore d'identité apxtri ?",
"textlink": "Créer mon identité",
"allowedprofil":["anonymous"],
"action":"navigation",
"next": [
"signin",
"forgetkey",
"information"
]
},
{
"link": "signin",
"d":"M13.5 10.5V6.75a4.5 4.5 0 1 1 9 0v3.75M3.75 21.75h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H3.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z",
"shortlabel": "S'identifier",
"label": "S'identifier ?",
"textlink": "Accédez à vos données",
"allowedprofil":["anonymous"],
"action":"navigation",
"next": [
"signup",
"forgetkey",
"information"
]
},
{
"link": "forgetkey",
"d":"M15.75 5.25a3 3 0 0 1 3 3m3 0a6 6 0 0 1-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1 1 21.75 8.25Z",
"shortlabel": "Clé oublié",
"label": "Clé oubliée ?",
"textlink": "Récupérez par email",
"allowedprofil":["anonymous"],
"action":"navigation",
"next": [
"signin",
"signup",
"information"
]
},
{
"link": "information",
"d":"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z",
"shortlabel": "Info",
"label": " C'est quoi une identité apxtri ?",
"textlink": "En savoir plus",
"allowedprofil":["anonymous"],
"action":"navigation",
"next": [
"back"
]
},
{
"link": "back",
"d":"M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3",
"shortlabel":"Retour",
"label": "Retour au menu ",
"allowedprofil":["anonymous"],
"action":"reload",
"wconame":"simplemobnav",
"textlink": "Retour",
"next": []
},
{
"link": "logout",
"d":"M8.25 9V5.25A2.25 2.25 0 0 1 10.5 3h6a2.25 2.25 0 0 1 2.25 2.25v13.5A2.25 2.25 0 0 1 16.5 21h-6a2.25 2.25 0 0 1-2.25-2.25V15m-3 0-3-3m0 0 3-3m-3 3H15",
"shortlabel": "Logout",
"label": "Nettoyer mes traces",
"allowedprofil":["pagans"],
"label":"Se deconnecter",
"textlink": "Se déconnecter",
"action":"logout",
"wconame":"apxauth",
"next": []
},
{
"link": "myworld",
"shortlabel": "Ma chose",
"label": "Ma propriété",
"allowedprofil":["pagans"],
"textlink": "Voir ",
"action":"navigation",
"next": ["logout"]
}
]
}

View File

@@ -0,0 +1,113 @@
{
"contentwconame": "apxauth",
"contentid": "signature",
"logo": {
"src": "/src/static/img/logo/logobgdark.png",
"alt": "smatchit"
},
"claim": {
"textContent": "Never miss an opportunity"
},
"textlist": true,
"commentmenutype": "textlist: vertical list of menu with texte, buttonlist: horizontal btn",
"profilmenu": [
{
"mainprofil": "persons",
"link": "mytribes"
},
{
"mainprofil": "pagans",
"link": "logout"
},
{
"mainprofil": "anonymous",
"link": "signin"
}
],
"links": [
{
"link": "signup",
"label": "Pas encore d'identité apxtri ?",
"textlink": "Créer mon identité",
"tpl": "apxauthscreensignup",
"allowedprofil": [
"anonymous"
],
"next": [
"signin",
"forgetkey",
"information"
]
},
{
"link": "signin",
"label": "S'identifier ?",
"textlink": "Accédez à vos données",
"tpl": "apxauthscreensignin",
"allowedprofil": [
"anonymous"
],
"next": [
"signup",
"forgetkey",
"information"
]
},
{
"link": "forgetkey",
"label": "Clé oubliée ?",
"textlink": "Récupérez par email",
"tpl": "apxauthscreenforgetkey",
"allowedprofil": [
"anonymous"
],
"next": [
"signin",
"signup",
"information"
]
},
{
"link": "information",
"label": " C'est quoi une identité apxtri ?",
"textlink": "En savoir plus",
"allowedprofil": [
"anonymous"
],
"tpl": "apxauthscreeninformation",
"next": [
"back"
]
},
{
"link": "back",
"label": "Retour au menu ",
"allowedprofil": [
"anonymous"
],
"tpl": "sc",
"textlink": "Retour",
"next": []
},
{
"link": "logout",
"label": " ",
"allowedprofil": [
"pagans"
],
"tpl": "apxauthscreenlogout",
"textlink": "",
"next": []
},
{
"link": "mytribes",
"label": " ",
"tpl": "apxauthscreenmytribes",
"allowedprofil": [
"persons"
],
"textlink": "",
"next": []
}
]
}

View File

@@ -0,0 +1,46 @@
{
"idparent": "authentification",
"signintitle": "Qui êtes-vous?",
"signuptitle": "Creer un compte anonyme",
"aliastitle": "Votre alias",
"aliasinvalid": "Combinaison de 3 à 150 caractères <br /> composée de minuscules (a à z) et/ou de chiffres (0 à 9)",
"aliastitle": "Uniquement minuscules ou chiffres",
"emailinvalid": "Vérifier votre email",
"privatekeyplaceholder": "Votre clé privée",
"remembermetext": "Stocker mon identité sur ce navigateur plus de 24 heures.Pour supprimer la clé de ce navigateur, il suffit de se déconnecter.",
"authentifyme": "S'identifier",
"createkey": "Créer mes clés en local",
"trusttext": "Si vous faites plus confiance à ce domaine qu'à vous même pour garder vos clés, cochez cette case. Les administrateurs de ce domaine auront accès à vos clés et pourront donc agir en votre nom. L'email ci-dessus sera utilisé pour vous renvoyer vos clés par le domaine de confiance. Dans tous les cas, il est conseillé de telecharger vos clés et de les stocker sur un support fiable non connecté (papier, clé usb)",
"downloadPuK": " Download <br />Publickey",
"downloadPrK": " Download <br />Privatekey",
"saveidentity": "Sauvegarde cette identité",
"nextpage": "Page suivante",
"optionlinksmajor":[ {
"notification_count": 5,
"typebadge": "success",
"svg": "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='size-6'> <path stroke-linecap='round' stroke-linejoin='round' d='M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75' /></svg>",
"title": "Accéder à l'administration de la ville",
"onclick": " href='admindata_fr.html' "
}],
"optionlinks": [
{
"notification_count": 1,
"typebadge": "success",
"svg":"<svg class='w-10 h-10 text-base-content' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='currentColor' ><path d='M97.6 214.8h2.3a2159.5 2159.5 0 0 1 24.2 0 2976.5 2976.5 0 0 0 38-.2h2.2c4.4 0 7.2.7 10.7 3.4 2.4 3.7 2.3 5.4 2.3 9.7v9.1a5200 5200 0 0 0 0 18.5v11.2a13324.6 13324.6 0 0 1 .2 77.7 3051.3 3051.3 0 0 0 0 38.8v3.8c-.6 3.8-1.7 5.5-4.5 8.2-3.4 1-3.4 1-7 1a54.1 54.1 0 0 1-11.2-9l-1.5-1.4a1543.7 1543.7 0 0 1-17.7-17.7l-9.8-9.9a20275.3 20275.3 0 0 1-74.5-74.6l-4.6-4.6-2.6-2.6c-2.6-2.8-4-4.6-4.7-8.4.6-4 1-4.6 3.6-7.4l1.9-2.2c3.7-4 7.6-7.8 11.4-11.7l2.7-2.6a5470.5 5470.5 0 0 1 19.2-19.3l2.5-2.6 2.4-2.3 2-2.1c3.8-3.2 7.9-2.8 12.5-2.8ZM216.6 345.9a238272208 238272208 0 0 0 62-.1 12532.8 12532.8 0 0 0 85.8-.2 628.2 628.2 0 0 1 10.4 0c3.5.4 5.4 1.3 8.2 3.4 1.9 2.5 2 3.7 1.8 6.8-1 4-2.6 5.7-5.6 8.6l-1.5 1.5-5 5a2949 2949 0 0 0-13.6 13.5l-10.3 10.3a9057.4 9057.4 0 0 1-41.8 41.6 27411 27411 0 0 1-41.1 41l-2.7 2.7a11.1 11.1 0 0 1-9.1 3.6c-10-2.8-21-18.3-28.1-25.4a3170 3170 0 0 0-12.3-12.3l-2.2-2.2-2.1-2-1.9-2c-3.7-4.2-3.8-8-3.8-13.6v-2.4a1220.2 1220.2 0 0 1 0-24.8 2068.7 2068.7 0 0 0-.2-31.3v-9.8c0-4.9 1-7.4 4.5-10.8 2.9-1.4 5.4-1.1 8.6-1.1ZM259 51c6.4 4.6 12 10.8 17.5 16.4l2.6 2.6A5839.7 5839.7 0 0 1 301 92l2.3 2.3 2.1 2c3.2 3.6 2.7 7 2.7 11.5v2.4a2459.5 2459.5 0 0 1 0 24.9 4177 4177 0 0 0 .2 41.3c0 6.8 0 6.8-2.3 9.7-3.6 2.3-6.7 2.3-11 2.3h-9a5189.6 5189.6 0 0 0-18.6 0h-11.3a13928.8 13928.8 0 0 1-78.2 0 4265 4265 0 0 0-39 0h-3.8c-3.4-.3-4.7-.9-7.1-3.3-1-3.3-1-3.3-1-7 2.5-4.3 5.5-7.8 9-11.3l1.5-1.5a1601.7 1601.7 0 0 1 18-18l10.1-10a21005.6 21005.6 0 0 1 76-75.9l4.6-4.7L249 54c3.4-3.2 5.5-3.7 10.1-3ZM348 139c2.7 2 2.7 2 5.4 4.8l1.6 1.5a682.9 682.9 0 0 1 8.7 8.7l10 10 8.2 8.2a8423.8 8423.8 0 0 1 39.7 39.6 5758 5758 0 0 1 48.5 48.4c2.4 3.5 2.4 5.6 1.9 9.8-1.2 2.1-1.2 2.1-3 3.8l-1.9 2-2.1 2.2-2.2 2.2c-2.3 2.5-4.7 4.9-7.2 7.3l-2.6 2.6A5839.7 5839.7 0 0 1 431 312l-2.3 2.3-2 2.1c-3.6 3.2-7 2.8-11.6 2.8H402a6035.4 6035.4 0 0 1-54 .3h-2.3c-3.5 0-5.3-.2-8.1-2.4-2.8-3.7-2.7-6-2.7-10.7v-2.1a2222.5 2222.5 0 0 1-.2-34 21694.8 21694.8 0 0 1-.2-94.5 1746.5 1746.5 0 0 1 0-24.8v-3.8c.6-3.8 1.7-5.5 4.5-8.2 3.6-1.2 5.3-1 9 0ZM218.6 214.9h2.7a3102.4 3102.4 0 0 1 28 0 5270.3 5270.3 0 0 0 43.8-.1h2.6c7.3 0 7.3 0 10.3 2.2 2.6 4 2.3 7.3 2.3 11.9v2.7a1551.6 1551.6 0 0 1 .1 28.5 2352.9 2352.9 0 0 0 .2 36v11.3c0 4.1-.3 6.1-2.6 9.6-4.1 2.7-7.3 2.7-12.1 2.6H291a694.7 694.7 0 0 1-15.2 0 1867.7 1867.7 0 0 1-30 0 1797.5 1797.5 0 0 1-27.8 0h-2.6c-4 0-6-.3-9.5-2.6-2.7-4.1-2.7-7.3-2.6-12.1V302a708.4 708.4 0 0 1 0-15.3 1897.8 1897.8 0 0 1 0-30 2184 2184 0 0 1 0-27.8v-2.6c.1-5.8.1-5.8 2.5-8.9 4.1-3 7.8-2.6 12.7-2.6Z'/></svg>",
"title": "Accéder à vos messages chiffrés",
"onclick": " href='privatri_fr.html' "
},
{
"notification_count": 1,
"typebadge": "success",
"svg": "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='size-6'> <path stroke-linecap='round' stroke-linejoin='round' d='m21 7.5-2.25-1.313M21 7.5v2.25m0-2.25-2.25 1.313M3 7.5l2.25-1.313M3 7.5l2.25 1.313M3 7.5v2.25m9 3 2.25-1.313M12 12.75l-2.25-1.313M12 12.75V15m0 6.75 2.25-1.313M12 21.75V19.5m0 2.25-2.25-1.313m0-16.875L12 2.25l2.25 1.313M21 14.25v2.25l-2.25 1.313m-13.5 0L3 16.5v-2.25' /></svg>",
"title": "Accéder à mon wallet",
"onclick": " href='wallet_fr.html' "
},
{
"svg": "<svg class='w-10 h-10 text-base-content' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor'><path stroke-linecap= 'round' stroke-linejoin='round' d='M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.33 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z' /></svg>",
"title": "Accéder à mon profil",
"onclick": " href='myprofil_fr.html' "
}
]
}

View File

@@ -0,0 +1,59 @@
<!DOCTYPE html>
<html lang="fr" data-theme="apxtridark" class="h-full bg-base-200 text-neutral-content ">
<head>
<meta charset="utf-8" />
<title>Mes transactions</title>
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta
content="L'unique et sa propriété, authentification, apxtri, cle public, cle privée"
name="keywords"
/>
<meta
content="Porte d'entrée dans l'univers libre d'apXtri, là où vous pouvez être l'Unique et sa propriété."
name="description"
/>
<link data-wco="favicon" href="static/img/icons/iconbgdark.png" rel="icon" />
<link href="static/css/output.css" rel="stylesheet" />
<script>
/**
* Read apx.js to know more
*/
const apxtri = {
headers: {
xtrkversion: 1,
xtribe: "apxtri",
xapp: "admin",
xlang: "fr",
xalias: "anonymous",
xhash: "anonymous",
xprofils:["anonymous"],
xdays: 0,
xuuid:0
},
pagename: "wallet",
wcoobserver:true,
allowedprofils:["pagans"],
version:0
};
</script>
<script src="/apxtrilib/axios/dist/axios.min.js"></script>
<script src="/apxtrilib/dayjs/dayjs.min.js"></script>
<script src="/apxtrilib/openpgp/dist/openpgp.min.js"></script>
<script src="/apxtrilib/mustache/mustache.min.js"></script>
<script src="/apxtrilib/qr-code-styling/lib/qr-code-styling.js"></script>
<script src="/apxtrilib/checkjson.js"></script>
<script src="/api/apxtri/wwws/getwco/apx.js?wcotribe=apxtri&tribe=apxtri&xapp=admin&pagename=apxid&code=enjoy"></script>
<script src="/api/apxtri/wwws/getwco/simplemobnav.js?wcotribe=apxtri&tribe=apxtri&xapp=admin&pagename=apxid&code=enjoy&tagid=walletmanager"></script>
<script src="/api/apxtri/wwws/getwco/apxwallet.js?wcotribe=apxtri&tribe=apxtri&xapp=admin&pagename=wallet&code=enjoy&tagid=signature"></script>
</head>
<body class="h-full">
<div class="flex items-center justify-center min-h-screen px-4">
<div
id="walletmanager"
wco-name="simplemobnav"
class="bg-base-100 min-h-screen w-full p-4 text-center">
</div>
</div>
</body>
</html>

View File

@@ -6,22 +6,21 @@
"anonymous"
],
"tpl": {
"simplemobnavnavbuttonh": "apxtri/objects/wco/simplemobnav/navbuttonh.mustache",
"simplemobnavnavlist": "apxtri/objects/wco/simplemobnav/navlist.mustache",
"simplemobnavnavbutton": "apxtri/objects/wco/simplemobnav/navbuttonh.mustache",
"simplemobnavmain": "apxtri/objects/wco/simplemobnav/main.mustache",
"apxauthmain": "apxtri/objects/wco/apxauth/main",
"apxauthscreensignup": "apxtri/objects/wco/apxauth/screensignup",
"apxauthscreensignin": "apxtri/objects/wco/apxauth/screensignin",
"apxauthscreenlogout": "apxtri/objects/wco/apxauth/screenlogout",
"apxauthscreenmyworld": "apxtri/objects/wco/apxauth/screenmyworld",
"apxauthscreeninformation": "apxtri/objects/wco/apxauth/screeninformation",
"apxauthscreenforgetkey": "apxtri/objects/wco/apxauth/screenforgetkey"
"apxauthscreenforgetkey": "apxtri/objects/wco/apxauth/screenforgetkey",
"simplemobnavnavbuttonh": "apxtri/objects/wco/simplemobnav/navbuttonh.mustache",
"simplemobnavnavlist": "apxtri/objects/wco/simplemobnav/navlist.mustache",
"simplemobnavnavbutton": "apxtri/objects/wco/simplemobnav/navbuttonh.mustache",
"simplemobnavmain": "apxtri/objects/wco/simplemobnav/main.mustache"
},
"tpldata": {
"apxid_authentification_simplemobnav": "apxtri/objects/wwws/admin/src/tpldata/apxid_authentification_simplemobnav",
"apxid_signature_apxauth": "apxtri/objects/wwws/admin/src/tpldata/apxid_signature_apxauth",
"apxid_mydata_simplemobnav": "apxtri/objects/wwws/admin/src/tpldata/apxid_mydata_simplemobnav"
"apxid_authentification_simplemobnav": "apxtri/objects/wwws/admin/src/tpldata/apxid_authentification_simplemobnav"
},
"schema": [
"apxtri/objects/pagans",
@@ -35,62 +34,6 @@
"Notification": "apxtri/models/tplstrings/Notifications",
"Middlewares": "apxtri/models/tplstrings/Middlewares"
}
},
"privatri": {
"version": 1,
"profils": [
"anonymous"
],
"tpl": {
"privatrimain": "apxtri/objects/wco/privatri/main.mustache",
"privatriAlias": "apxtri/objects/wco/privatri/alias.mustache",
"privatriCreateThread": "apxtri/objects/wco/privatri/createThread.mustache",
"privatriEditMessage": "apxtri/objects/wco/privatri/editMessage.mustache",
"privatriInviteAlias": "apxtri/objects/wco/privatri/inviteAlias.mustache",
"privatriMessage": "apxtri/objects/wco/privatri/message.mustache",
"privatriThread": "apxtri/objects/wco/privatri/thread.mustache",
"privatriThreadAliasList": "apxtri/objects/wco/privatri/threadAliasList.mustache",
"privatriThreadSettings": "apxtri/objects/wco/privatri/threadSettings.mustache",
"privatriToastAlert": "apxtri/objects/wco/privatri/toastAlert.mustache"
},
"tpldata": {
"privatri_main_privatri": "apxtri/objects/wwws/admin/src/tpldata/privatri_main_privatri"
},
"schema": [],
"ref": {
"Checkjson": "apxtri/models/tplstrings/Checkjson",
"Notification": "apxtri/models/tplstrings/Notifications",
"Middlewares": "apxtri/models/tplstrings/Middlewares"
}
},
"admindata": {
"version": 1,
"profils": [
"anonymous"
],
"tpl": {},
"tpldata": {},
"schema": [],
"ref": {
"Checkjson": "apxtri/models/tplstrings/Checkjson",
"Notification": "apxtri/models/tplstrings/Notifications",
"Middlewares": "apxtri/models/tplstrings/Middlewares"
}
}
}
}
kull/headnav"
},
"tpldata": {},
"schema": [
"apxtri/objects/pagans",
"apxtri/objects/persons"
],
"ref": {
"Odmdb": "apxtri/models/tplstrings/Odmdb",
"Pagans": "apxtri/models//tplstrings/Pagans",
"Persons": "apxtri/models/tplstrings/Persons"
}
}
}
}