Merge branch 'master' into release/hubl-618
This commit is contained in:
commit
f8cf5c4772
1107
package-lock.json
generated
1107
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
25
package.json
25
package.json
@ -13,20 +13,34 @@
|
||||
"build:jscomponents": "babel \"src/components/*.js\" --out-dir dist/components/",
|
||||
"build:pug": "pug src/index.pug -o dist/ --obj config.json",
|
||||
"build:manifest": "node --experimental-modules make-webmanifest.mjs",
|
||||
"build:i18n": "copyfiles -u 2 src/locales/*.json dist/locales",
|
||||
"copy:font": "copyfiles -f src/fonts/* dist/fonts",
|
||||
"copy:image": "copyfiles -f src/images/* dist/images",
|
||||
"copy:sw": "copyfiles -f src/sw.js dist",
|
||||
"serve": "pushstate-server -d ./dist -p 3000",
|
||||
"watch": "run-p copy:* build:manifest watch:* serve",
|
||||
"watch:css": "npm run build:css && npm run build:css -- -w",
|
||||
"watch:js": "babel --watch \"src/scripts/*.js\" -o dist/scripts/index.js",
|
||||
"watch:jscomponents": "babel --watch \"src/components/*.js\" --out-dir dist/components/",
|
||||
"watch": "run-p build watch:* serve",
|
||||
"watch:css": "npm-watch build:css",
|
||||
"watch:js": "npm-watch build:js",
|
||||
"watch:jscomponents": "npm-watch build:jscomponents",
|
||||
"watch:manifest": "npm-watch build:manifest",
|
||||
"watch:pug": "pug --watch src/index.pug -o dist/ --obj config.json",
|
||||
"watch:i18n": "npm-watch build:i18n",
|
||||
"watch:font": "npm-watch copy:font",
|
||||
"watch:image": "npm-watch copy:image",
|
||||
"cypress:open": "cypress open",
|
||||
"cypress:verify": "cypress verify",
|
||||
"cypress:info": "cypress info",
|
||||
"test": "cypress run"
|
||||
},
|
||||
"watch": {
|
||||
"build:css": "src/styles/*",
|
||||
"build:manifest": "make-webmanifest.mjs",
|
||||
"build:i18n": "src/locales/*",
|
||||
"copy:images": "src/fonts/*.js",
|
||||
"copy:fonts": "src/images/*.js",
|
||||
"build:js": "src/scripts/*.js",
|
||||
"build:jscomponents": "src/components/*.js"
|
||||
},
|
||||
"release": {
|
||||
"branches": [
|
||||
"master"
|
||||
@ -71,6 +85,7 @@
|
||||
"devDependencies": {
|
||||
"cypress": "^4.5.0",
|
||||
"cypress-localstorage-commands": "^1.2.1",
|
||||
"cypress-terminal-report": "^1.2.1"
|
||||
"cypress-terminal-report": "^1.2.1",
|
||||
"npm-watch": "^0.7.0"
|
||||
}
|
||||
}
|
||||
|
@ -11,10 +11,10 @@ const HublStatus = widgetFactory(
|
||||
name="\${name}">
|
||||
<option
|
||||
value="Public"
|
||||
\${value=="Public" ? 'selected' : ''}>Public</option>
|
||||
\${value=="Public" ? 'selected' : ''} data-trans="hublStatus.public">Public</option>
|
||||
<option
|
||||
value="Private"
|
||||
\${value=="Private" ? 'selected' : ''}>Privé</option>
|
||||
\${value=="Private" ? 'selected' : ''} data-trans="hublStatus.private">Privé</option>
|
||||
</select>
|
||||
</label>`,
|
||||
'',
|
||||
|
@ -3,6 +3,6 @@ if(typeof Sentry !== 'undefined') {
|
||||
dsn: 'https://b4b29557689049a39168599577adb940@sentry.startinblox.com/4',
|
||||
integrations: [new Sentry.Integrations.BrowserTracing()],
|
||||
environment: document.location.hostname,
|
||||
tracesSampleRate: 1.0,
|
||||
tracesSampleRate: 0.2,
|
||||
});
|
||||
}
|
@ -10,7 +10,7 @@ script(type="module" src="https://unpkg.com/@startinblox/core@0.12" defer)
|
||||
script(type="module" src="https://unpkg.com/@startinblox/oidc@0.10" defer)
|
||||
//- script(type="module" src="/lib/sib-auth/index.js" defer)
|
||||
|
||||
script(type="module" src="https://unpkg.com/@startinblox/router@0.9" defer)
|
||||
script(type="module" src="https://unpkg.com/@startinblox/router@0.10" defer)
|
||||
//- script(type="module" src="/lib/sib-router/src/index.js" defer)
|
||||
|
||||
script(type="module" src="https://unpkg.com/@startinblox/component-notifications@0.7" defer)
|
||||
@ -25,11 +25,11 @@ if (endpoints.resources || (endpoints.get && endpoints.get.resources)) && (endpo
|
||||
//- script(type="module" src="/lib/sib-resource/sib-resource.js" defer)
|
||||
|
||||
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
|
||||
script(type="module" src="https://unpkg.com/@startinblox/component-job-board@0.8" defer)
|
||||
script(type="module" src="https://unpkg.com/@startinblox/component-job-board@1.0" defer)
|
||||
//- script(type="module" src="/lib/solid-job-board/dist/index.js" defer)
|
||||
|
||||
if (endpoints.uploads || (endpoints.get && endpoints.get.uploads)) && (endpoints.skills || (endpoints.get && endpoints.get.skills)) && (endpoints.users || (endpoints.get && endpoints.get.users))
|
||||
script(type="module" src="https://unpkg.com/@startinblox/component-directory@0.10" defer)
|
||||
script(type="module" src="https://unpkg.com/@startinblox/component-directory@1.0" defer)
|
||||
//- script(type="module" src="/lib/solid-directory/dist/index.js" defer)
|
||||
|
||||
if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
|
||||
@ -37,7 +37,7 @@ if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
|
||||
//- script(type="module" src="/lib/solid-dashboard/dist/index.js" defer)
|
||||
|
||||
if endpoints.users || (endpoints.get && endpoints.get.users)
|
||||
script(type="module" src="https://unpkg.com/@startinblox/component-chat@1.1" defer)
|
||||
script(type="module" src="https://unpkg.com/@startinblox/component-chat@1.2" defer)
|
||||
//- script(type="module" src="/lib/solid-xmpp-chat/dist/index.js" defer)
|
||||
|
||||
if endpoints.polls || (endpoints.get && endpoints.get.polls)
|
||||
|
@ -3,7 +3,7 @@
|
||||
solid-link(next='dashboard')
|
||||
img(src=`${clientLogo || '/images/logo.png'}` style=`max-height:${clientLogoHeight || '32px'}`)
|
||||
|
||||
span.beta-tag Beta
|
||||
span.beta-tag(data-trans='header.beta')
|
||||
|
||||
solid-notifications.notLoggedIn(
|
||||
nested-field="inbox"
|
||||
@ -30,14 +30,14 @@ details#user-controls.notLoggedIn
|
||||
ul
|
||||
if (endpoints.uploads || (endpoints.get && endpoints.get.uploads)) && (endpoints.skills || (endpoints.get && endpoints.get.skills)) && (endpoints.users || (endpoints.get && endpoints.get.users))
|
||||
li
|
||||
solid-link(next='profile') Mon profil
|
||||
solid-link(next='profile' data-trans='header.myProfile')
|
||||
li
|
||||
solid-link(next='admin') Administration
|
||||
solid-link(next='admin' data-trans='header.admin')
|
||||
li
|
||||
solid-link(next='about') A propos
|
||||
button(role='log out' onclick="document.querySelector('sib-auth').logout();") Se déconnecter
|
||||
solid-link(next='about' data-trans='header.about')
|
||||
button(role='log out' onclick="document.querySelector('sib-auth').logout();" data-trans='header.logOut')
|
||||
|
||||
button.loggedIn(role='log in' onclick="document.querySelector('sib-auth').login();") Se connecter
|
||||
button.loggedIn(role='log in' onclick="document.querySelector('sib-auth').login();" data-trans='header.logIn')
|
||||
|
||||
button.notLoggedIn.mobile-menu-icon.icon-menu#toggleMainMenu
|
||||
|
||||
|
@ -27,15 +27,15 @@ html(lang="en")
|
||||
main#viewport.content.notLoggedIn
|
||||
|
||||
if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
|
||||
#dashboard(hidden).no-sidebar.with-padding
|
||||
#dashboard(hidden, data-view="dashboard").no-sidebar.with-padding
|
||||
include page-dashboard.pug
|
||||
|
||||
if publicDirectory && (endpoints.users || (endpoints.get && endpoints.get.users))
|
||||
#members(hidden).no-sidebar.with-padding
|
||||
#members(hidden, data-view="members").no-sidebar.with-padding
|
||||
include page-directory.pug
|
||||
|
||||
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
|
||||
#job-offers(hidden).no-sidebar.with-padding
|
||||
#job-offers(hidden, data-view="job-offers").no-sidebar.with-padding
|
||||
if (endpoints.post && endpoints.post.joboffers) && (endpoints.get && endpoints.get.joboffers)
|
||||
hubl-reactivity(data-src=`${endpoints.post.joboffers}current/` target-src=`${endpoints.get.joboffers}`)
|
||||
hubl-reactivity(data-src=`${endpoints.post.joboffers}expired/` target-src=`${endpoints.get.joboffers}`)
|
||||
@ -49,7 +49,7 @@ html(lang="en")
|
||||
include page-job-offers.pug
|
||||
|
||||
if endpoints.projects || (endpoints.get && endpoints.get.projects)
|
||||
#project(hidden).with-sidebar
|
||||
#project(hidden, data-view="project").with-sidebar
|
||||
if (endpoints.post && endpoints.post.projects) && (endpoints.get && endpoints.get.projects)
|
||||
hubl-reactivity(data-src=`${endpoints.post.projects}joinable/` target-src=`${endpoints.get.projects}`)
|
||||
hubl-reactivity(data-src=`${endpoints.post.projects}` target-src=`${endpoints.get.projects}`)
|
||||
@ -61,7 +61,7 @@ html(lang="en")
|
||||
include page-project.pug
|
||||
|
||||
if endpoints.circles || (endpoints.get && endpoints.get.circles)
|
||||
#circle(hidden).with-sidebar
|
||||
#circle(hidden, data-view="circle").with-sidebar
|
||||
if (endpoints.post && endpoints.post.circles) && (endpoints.get && endpoints.get.circles)
|
||||
hubl-reactivity(data-src=`${endpoints.post.circles}joinable/` target-src=`${endpoints.get.circles}`)
|
||||
hubl-reactivity(data-src=`${endpoints.post.circles}` target-src=`${endpoints.get.circles}`)
|
||||
@ -72,29 +72,29 @@ html(lang="en")
|
||||
hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.circles || endpoints.get.circles}joinable/`)
|
||||
include page-circle.pug
|
||||
if endpoints.users || (endpoints.get && endpoints.get.users)
|
||||
#messages(hidden).with-sidebar
|
||||
#messages(hidden, data-view="messages").with-sidebar
|
||||
include page-messages.pug
|
||||
|
||||
if endpoints.polls || (endpoints.get && endpoints.get.polls)
|
||||
#polls(hidden).with-sidebar
|
||||
#polls(hidden, data-view="polls").with-sidebar
|
||||
include page-polls.pug
|
||||
|
||||
if endpoints.events || (endpoints.get && endpoints.get.events)
|
||||
#events(hidden)
|
||||
#events(hidden, data-view="events")
|
||||
include page-events.pug
|
||||
|
||||
if endpoints.resources || (endpoints.get && endpoints.get.resources)
|
||||
#resources(hidden)
|
||||
#resources(hidden, data-view="resources")
|
||||
include page-resources.pug
|
||||
|
||||
#admin(hidden).with-sidebar
|
||||
#admin(hidden, data-view="admin").with-sidebar
|
||||
include page-admin.pug
|
||||
|
||||
#about.no-sidebar.with-padding
|
||||
#about(data-view="about").no-sidebar.with-padding
|
||||
include page-about.pug
|
||||
|
||||
if (endpoints.skills || (endpoints.get && endpoints.get.skills)) && (endpoints.uploads || (endpoints.post && endpoints.post.uploads)) && (endpoints.users || (endpoints.post && endpoints.post.users))
|
||||
#profile(hidden).no-sidebar
|
||||
#profile(hidden, data-view="profile").no-sidebar
|
||||
include page-profile.pug
|
||||
|
||||
if analytics
|
||||
|
208
src/locales/fr.json
Normal file
208
src/locales/fr.json
Normal file
@ -0,0 +1,208 @@
|
||||
{
|
||||
"header": {
|
||||
"beta": "Beta",
|
||||
"myProfile": "Mon profil",
|
||||
"admin": "Administration",
|
||||
"about": "A propos",
|
||||
"logOut": "Se déconnecter",
|
||||
"logIn": "Se connecter"
|
||||
},
|
||||
"menuLeft": {
|
||||
"emptyCircleProject": {
|
||||
"notPartOf": "Tu ne fais partie d'aucun",
|
||||
"createNew": "Pour en créer un nouveau, tu peux te rendre dans le",
|
||||
"adminPanel": "panneau d'administration",
|
||||
"project": "projet",
|
||||
"circle": "cercle"
|
||||
},
|
||||
"dashboard": "Tableau de bord",
|
||||
"events": "Evènements",
|
||||
"gov": "Gouvernance",
|
||||
"resources": "Ressources",
|
||||
"jobBoard": "Offres de mission",
|
||||
"profileDirectory": "Annuaire des membres",
|
||||
"projects": "Projets",
|
||||
"circles": "Circles",
|
||||
"messages": "Messages",
|
||||
"search": "Rechercher..."
|
||||
},
|
||||
"about": {
|
||||
"title": "A propos",
|
||||
"card1": {
|
||||
"subTitle": "Cette application est développée par Startin'blox",
|
||||
"paragraph1": "Startin’blox est une coopérative qui développe des outils libres pour construire facilement et à moindre coût des applications fédérées et interopérables basées sur les derniers standards du web poussés par le projet SOLID.",
|
||||
"paragraph2": "Sa mission est de redonner le pouvoir aux utilisateurs en leur permettant de reprendre la main sur leur outil numérique et de bénéficier d’un effet de réseau au sein d’un écosystème choisi afin de s’émanciper des grandes plateformes."
|
||||
},
|
||||
"card2": {
|
||||
"title": "Contacte-nous",
|
||||
"paragraph-1": "Tu veux contribuer, nous remonter un bug, nous suggérer une amélioration, travailler avec nous ?",
|
||||
"link": "Contact"
|
||||
}
|
||||
},
|
||||
"admin": {
|
||||
"menuRight": {
|
||||
"fold": "Replier le menu",
|
||||
"community": "Communautés",
|
||||
"circles": "Cercles",
|
||||
"projects": "Projets"
|
||||
}
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Tableau de bord"
|
||||
},
|
||||
"circle": {
|
||||
"menuRight": {
|
||||
"buttonMobile": "MENU",
|
||||
"fold": "Replier le menu",
|
||||
"chat": "Chat",
|
||||
"information": "Information",
|
||||
"resources": "Resources",
|
||||
"events": "Events",
|
||||
"polls": "Polls"
|
||||
},
|
||||
"create": {
|
||||
"backlink": "Retour",
|
||||
"title": "Créer un cercle",
|
||||
"labelStatus": "Statut du cercle",
|
||||
"labelName": "Nom du cercle *",
|
||||
"labelDescription": "Sous-titre du cercle *",
|
||||
"buttonSubmit": "Enregistrer"
|
||||
},
|
||||
"edit": {
|
||||
"buttonDelete": "Retirer",
|
||||
"backlink": "Retour",
|
||||
"title": "Modifie ton cercle",
|
||||
"labelStatus": "Statut du cercle",
|
||||
"labelName": "Nom du cercle *",
|
||||
"labelOwner": "Administrateur ou administratrice *",
|
||||
"labelDescription": "Sous-titre du cercle *",
|
||||
"subTitle": "Liste des membres :",
|
||||
"tableHeader1": "Nom",
|
||||
"tableHeader2": "Accès",
|
||||
"buttonSubmit": "Enregistrer",
|
||||
"buttonAddMember": "Ajouter un membre"
|
||||
},
|
||||
"list": {
|
||||
"title": "Administration",
|
||||
"buttonMobile": "MENU",
|
||||
"subTitle": "Cercles",
|
||||
"buttonCreate": "Créer un cercle",
|
||||
"tableHeader1": "Nom",
|
||||
"tableHeader2": "Administrateurs",
|
||||
"tableHeader3": "Rejoindre",
|
||||
"buttonQuit": "Quitter",
|
||||
"buttonJoin": "Rejoindre"
|
||||
},
|
||||
"left": {
|
||||
"paragraphQuit": "Tu as quitté ce cercle.",
|
||||
"paragraphJoin": "Pour le rejoindre à nouveau, rends-toi dans le panneau",
|
||||
"paragraphContact": "ou contacte un administrateur.",
|
||||
"admin": "d'administration"
|
||||
},
|
||||
"profile": {
|
||||
"creationDate": "Date de création : ",
|
||||
"buttonModify": "Modifier et ajouter un membre",
|
||||
"buttonAdd": "Ajouter un membre",
|
||||
"buttonDelete": "Supprimer le cercle",
|
||||
"buttonQuit": "Quitter le cercle",
|
||||
"buttonJoin": "Rejoindre le cercle",
|
||||
"subTitle": "Membres :"
|
||||
}
|
||||
},
|
||||
"communities": {
|
||||
"title": "Administration",
|
||||
"menuMobile": "MENU",
|
||||
"linkInvite": "Inviter un nouvel utilisateur",
|
||||
"noPermission": "Membre, aucune permission",
|
||||
"subTitle": "Communautés",
|
||||
"tableHeader1": "Nom",
|
||||
"tableHeader2": "Action"
|
||||
},
|
||||
"project": {
|
||||
"menuRight": {
|
||||
"buttonMobile": "MENU",
|
||||
"fold": "Replier le menu",
|
||||
"chat": "Chat",
|
||||
"information": "Information"
|
||||
},
|
||||
"create": {
|
||||
"backlink": "Retour",
|
||||
"title": "Créer un nouveau projet",
|
||||
"labelName": "Nom du projet *",
|
||||
"labelCustomer": "Nom du client*",
|
||||
"labelCaptain": "Capitaine du projet*",
|
||||
"buttonSubmit": "Enregistrer"
|
||||
},
|
||||
"edit": {
|
||||
"buttonDelete": "Retirer",
|
||||
"backlink": "Retour",
|
||||
"title": "Modifie ton projet",
|
||||
"labelName": "Nom du projet *",
|
||||
"labelCustomer": "Nom du client *",
|
||||
"subTitle": "Liste des membres :",
|
||||
"tableHeader1": "Nom",
|
||||
"tableHeader2": "Accès",
|
||||
"buttonSubmit": "Enregistrer",
|
||||
"buttonAddMember": "Ajouter un membre"
|
||||
},
|
||||
"modifyPicture": {
|
||||
"backlink": "Retour",
|
||||
"title": "Modifier l'image du projet"
|
||||
},
|
||||
"list": {
|
||||
"title": "Administration",
|
||||
"buttonMobile": "MENU",
|
||||
"subTitle": "Projets",
|
||||
"buttonCreate": "Créer un nouveau projet",
|
||||
"tableHeader1": "Nom",
|
||||
"tableHeader2": "Administrateurs",
|
||||
"tableHeader3": "Capitaines",
|
||||
"tableHeader4": "Rejoindre",
|
||||
"buttonQuit": "Quitter",
|
||||
"buttonJoin":"Rejoindre"
|
||||
},
|
||||
"left": {
|
||||
"paragraphQuit": "Tu as quitté ce projet.",
|
||||
"paragraphJoin": "Ceci est un projet privé. Pour le joindre à nouveau, rends-toi dans le panneau",
|
||||
"paragraphContact": "et demande une invitation.",
|
||||
"admin": "d'administration"
|
||||
},
|
||||
"profile": {
|
||||
"creationDate": "Date de création : ",
|
||||
"buttonModify": "Modifier et ajouter un membre",
|
||||
"buttonAdd": "Ajouter un membre",
|
||||
"buttonDelete": "Supprimer le projet",
|
||||
"buttonQuit": "Quitter le projet",
|
||||
"buttonJoin": "Rejoindre le projet",
|
||||
"captain": "Capitaine :",
|
||||
"subTitle": "Equipe :"
|
||||
}
|
||||
},
|
||||
"user": {
|
||||
"create": {
|
||||
"backlink": "Retour",
|
||||
"title": "Inviter un utilisateur à ",
|
||||
"labelUsername": "Nom d'utilisateur*",
|
||||
"labelUsernameTitle": "Caractères alphanumérique uniquement",
|
||||
"labelEmail": "E-mail *",
|
||||
"labelFirstname": "Prénom *",
|
||||
"labelLastname": "Nom *",
|
||||
"buttonSubmit": "Inviter"
|
||||
}
|
||||
},
|
||||
"notification": {
|
||||
"circle": {
|
||||
"in": "dans"
|
||||
},
|
||||
"private": {
|
||||
"private": "en privé"
|
||||
}
|
||||
},
|
||||
"template-captain": {
|
||||
"isLead": "Capitaine"
|
||||
},
|
||||
"hublStatus": {
|
||||
"private": "Privé",
|
||||
"public": "Public"
|
||||
}
|
||||
}
|
@ -14,10 +14,13 @@ solid-widget(name='hubl-menu-publicprivate')
|
||||
|
||||
solid-widget(name='hubl-create')
|
||||
template
|
||||
p.create Tu ne fais partie d'aucun ${value}.
|
||||
p.create
|
||||
span(data-trans="menuLeft.emptyCircleProject.notPartOf")
|
||||
span ${value}.
|
||||
br
|
||||
| Pour en créer un nouveau, tu peux te rendre dans le
|
||||
solid-link(next='admin') panneau d'administration
|
||||
span(data-trans="menuLeft.emptyCircleProject.createNew")
|
||||
span
|
||||
solid-link(next="${value == 'projet' ? 'admin-projects' : 'admin-circles'}", data-trans="menuLeft.emptyCircleProject.adminPanel")
|
||||
|
||||
solid-widget(name='hubl-menu-fix-url-circle')
|
||||
template
|
||||
@ -53,32 +56,32 @@ solid-widget(name='hubl-menu-fix-url-project')
|
||||
solid-router#navbar-router(default-route='dashboard')
|
||||
if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
|
||||
solid-route.menu(name='dashboard')
|
||||
div.menu-label Tableau de bord
|
||||
div.menu-label(data-trans="menuLeft.dashboard")
|
||||
div.menu-icon.icon-home
|
||||
div.divider
|
||||
if publicDirectory && (endpoints.users || (endpoints.get && endpoints.get.users))
|
||||
solid-route.menu(name='members')
|
||||
div.menu-label Annuaire des membres
|
||||
div.menu-label(data-trans="menuLeft.profileDirectory")
|
||||
div.menu-icon.icon-people
|
||||
div.divider
|
||||
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
|
||||
solid-route.menu(name='job-offers', rdf-type='hd:joboffer')
|
||||
div.menu-label Offres de mission
|
||||
div.menu-label(data-trans="menuLeft.jobBoard")
|
||||
div.menu-icon.icon-briefcase
|
||||
div.divider
|
||||
if endpoints.resources || (endpoints.get && endpoints.get.resources)
|
||||
solid-route.menu(name='resources')
|
||||
div.menu-label Ressources
|
||||
div.menu-label(data-trans="menuLeft.resources")
|
||||
div.menu-icon.icon-docs
|
||||
div.divider
|
||||
if endpoints.polls || (endpoints.get && endpoints.get.polls)
|
||||
solid-route.menu(name='polls')
|
||||
div.menu-label Gouvernance
|
||||
div.menu-label(data-trans="menuLeft.gov")
|
||||
div.menu-icon.icon-bubbles
|
||||
div.divider
|
||||
if endpoints.events || (endpoints.get && endpoints.get.events)
|
||||
solid-route.menu(name='events')
|
||||
div.menu-label Evènements
|
||||
div.menu-label(data-trans="menuLeft.events")
|
||||
div.menu-icon.icon-calendar
|
||||
div.divider
|
||||
if endpoints.projects || (endpoints.get && endpoints.get.projects)
|
||||
@ -89,7 +92,7 @@ solid-router#navbar-router(default-route='dashboard')
|
||||
div.menu-chevron
|
||||
div.menu-icon.icon-arrow-up
|
||||
//- div.menu-icon.icon-arrow-right-circle
|
||||
div.menu-label Projets
|
||||
div.menu-label(data-trans="menuLeft.projects")
|
||||
div.menu-icon.icon-folder-alt
|
||||
solid-route(name='project', rdf-type='hd:project', use-id='', hidden)
|
||||
div.sub-menu.menu-notification
|
||||
@ -104,7 +107,8 @@ solid-router#navbar-router(default-route='dashboard')
|
||||
fields='project'
|
||||
loader-id='loader-projects'
|
||||
empty-widget='hubl-create'
|
||||
empty-value='projet'
|
||||
empty-value=''
|
||||
data-trans="empty-value=menuLeft.emptyCircleProject.project"
|
||||
widget-project='hubl-menu-fix-url-project'
|
||||
order-by="project.customer.name"
|
||||
)
|
||||
@ -117,7 +121,7 @@ solid-router#navbar-router(default-route='dashboard')
|
||||
div.menu-chevron
|
||||
div.menu-icon.icon-arrow-up
|
||||
//- div.menu-icon.icon-arrow-right-circle
|
||||
div.menu-label Cercles
|
||||
div.menu-label(data-trans="menuLeft.circles")
|
||||
div.menu-icon.icon-folder-alt
|
||||
solid-route(name='circle', rdf-type='hd:circle', use-id='', hidden)
|
||||
div.sub-menu.menu-notification
|
||||
@ -132,7 +136,8 @@ solid-router#navbar-router(default-route='dashboard')
|
||||
fields='circle'
|
||||
loader-id='loader-circles'
|
||||
empty-widget='hubl-create'
|
||||
empty-value='cercle'
|
||||
empty-value=''
|
||||
data-trans="empty-value=menuLeft.emptyCircleProject.circle"
|
||||
widget-circle='hubl-menu-fix-url-circle'
|
||||
order-by="circle.name"
|
||||
)
|
||||
@ -142,7 +147,7 @@ solid-router#navbar-router(default-route='dashboard')
|
||||
div.menu
|
||||
div.menu-chevron
|
||||
div.menu-icon.icon-arrow-up
|
||||
div.menu-label Messages
|
||||
div.menu-label(data-trans="menuLeft.messages")
|
||||
div.menu-icon.icon-envelope-letter
|
||||
solid-route(name='messages', rdf-type='foaf:user', use-id='', hidden)
|
||||
div.sub-menu.menu-notification
|
||||
@ -156,7 +161,8 @@ solid-router#navbar-router(default-route='dashboard')
|
||||
fields='name, chatProfile.jabberID, badge'
|
||||
loader-id='loader-messages'
|
||||
search-fields="name"
|
||||
search-label-name="Rechercher..."
|
||||
search-label-name=""
|
||||
data-trans="search-label-name=menuLeft.search"
|
||||
search-widget-name="hubl-search-users"
|
||||
widget-name='solid-display-div'
|
||||
widget-badge='hubl-counter'
|
||||
|
@ -1,17 +1,17 @@
|
||||
.views-container
|
||||
h2 A propos
|
||||
h2(data-trans='about.title')
|
||||
div.flex-content-white
|
||||
div
|
||||
div
|
||||
h3 Cette application est développée par Startin'blox
|
||||
p Startin’blox est une coopérative qui développe des outils libres pour construire facilement et à moindre coût des applications fédérées et interopérables basées sur les derniers standards du web poussés par le projet SOLID.
|
||||
p Sa mission est de redonner le pouvoir aux utilisateurs en leur permettant de reprendre la main sur leur outil numérique et de bénéficier d’un effet de réseau au sein d’un écosystème choisi afin de s’émanciper des grandes plateformes.
|
||||
h3(data-trans='about.card1.subTitle')
|
||||
p(data-trans='about.card1.paragraph1')
|
||||
p(data-trans='about.card1.paragraph2')
|
||||
div
|
||||
a(href="https://startinblox.com/fr/" target="_blank") https://startinblox.com/fr/
|
||||
|
||||
div
|
||||
div
|
||||
h3 Contacte-nous
|
||||
p Tu veux contribuer, nous remonter un bug, nous suggérer une amélioration, travailler avec nous ?
|
||||
h3(data-trans='about.card2.subTitle')
|
||||
p(data-trans='about.card2.paragraph1')
|
||||
div
|
||||
a(href="https://startinblox.com/fr/#home-contact" target="_blank").main-cta Contact
|
||||
a(href="https://startinblox.com/fr/#home-contact" target="_blank" data-trans='about.card2.link').main-cta
|
@ -1,27 +1,27 @@
|
||||
.views-container.sidebar-is-closed
|
||||
if endpoints.circles || (endpoints.get && endpoints.get.circles)
|
||||
#admin-circles(hidden)
|
||||
#admin-circles(hidden, data-view="admin-circles")
|
||||
include views/admin/page-admin-circles.pug
|
||||
if endpoints.projects || (endpoints.get && endpoints.get.projects)
|
||||
#admin-projects(hidden)
|
||||
#admin-projects(hidden, data-view="admin-projects")
|
||||
include views/admin/page-admin-projects.pug
|
||||
if (endpoints.users || (endpoints.get && endpoints.get.users))
|
||||
#admin-communities(hidden)
|
||||
#admin-communities(hidden, data-view="admin-communities")
|
||||
include views/admin/page-admin-communities.pug
|
||||
nav.jsRightMenu(role='navigation')
|
||||
solid-router(default-route='admin-circles')
|
||||
ul
|
||||
li.jsOffsiteToggle
|
||||
a Replier le menu
|
||||
a(data-trans='admin.menuRight.fold')
|
||||
if (endpoints.users || (endpoints.get && endpoints.get.users))
|
||||
solid-route(name='admin-communities')
|
||||
li
|
||||
a Communautés
|
||||
a(data-trans='admin.menuRight.community')
|
||||
if endpoints.circles || (endpoints.get && endpoints.get.circles)
|
||||
solid-route(name='admin-circles')
|
||||
li
|
||||
a Cercles
|
||||
a(data-trans='admin.menuRight.circles')
|
||||
if endpoints.projects || (endpoints.get && endpoints.get.projects)
|
||||
solid-route(name='admin-projects')
|
||||
li
|
||||
a Projets
|
||||
a(data-trans='admin.menuRight.projects')
|
||||
|
@ -9,41 +9,41 @@
|
||||
class-name='h1-like'
|
||||
class-description='h1-aside description'
|
||||
)
|
||||
button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
|
||||
button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle(data-trans='circle.menuRight.buttonMobile')
|
||||
div.content-box__height
|
||||
solid-ac-checker(permission='acl:Read', bind-resources)
|
||||
#circle-chat(hidden)
|
||||
#circle-chat(hidden, data-view="circle-chat")
|
||||
include views/circle/page-circle-chat.pug
|
||||
#circle-information.content-box__height(hidden)
|
||||
#circle-information.content-box__height(hidden, data-view="circle-information")
|
||||
include views/circle/page-circle-profile.pug
|
||||
#circle-events(hidden)
|
||||
#circle-events(hidden, data-view="circle-events")
|
||||
include views/circle/page-circle-events.pug
|
||||
#circle-resources(hidden)
|
||||
#circle-resources(hidden, data-view="circle-resources")
|
||||
include views/circle/page-circle-resources.pug
|
||||
#circle-polls(hidden)
|
||||
#circle-polls(hidden, data-view="circle-polls")
|
||||
include views/circle/page-circle-polls.pug
|
||||
|
||||
nav.jsRightMenu(role='navigation')
|
||||
solid-router(default-route='circle-chat')
|
||||
ul
|
||||
li.jsOffsiteToggle
|
||||
a Replier le menu
|
||||
a(data-trans='circle.menuRight.fold')
|
||||
solid-route(name='circle-chat')
|
||||
li
|
||||
a Chat
|
||||
a(data-trans='circle.menuRight.chat')
|
||||
solid-route(name='circle-information')
|
||||
li
|
||||
a Information
|
||||
a(data-trans='circle.menuRight.information')
|
||||
if (endpoints.resources || (endpoints.get && endpoints.get.resources)) && (endpoints.resourceskeywords || (endpoints.get && endpoints.get.resourceskeywords)) && (endpoints.resourcestypes || (endpoints.get && endpoints.get.resourcestypes))
|
||||
solid-route(name='circle-resources' use-id)
|
||||
li
|
||||
a Resources
|
||||
a(data-trans='circle.menuRight.resources')
|
||||
if (endpoints.events || (endpoints.get && endpoints.get.events)) && (endpoints.typeevents || (endpoints.get && endpoints.get.typeevents))
|
||||
solid-route(name='circle-events' use-id)
|
||||
li
|
||||
a Events
|
||||
a(data-trans='circle.menuRight.events')
|
||||
if endpoints.polls || (endpoints.get && endpoints.get.polls)
|
||||
solid-route(name='circle-polls' use-id)
|
||||
li
|
||||
a Polls
|
||||
a(data-trans='circle.menuRight.polls')
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
.views-container
|
||||
h1 Tableau de bord
|
||||
h1(data-trans='dashboard.title')
|
||||
solid-dashboard(
|
||||
data-src=`${endpoints.dashboards || endpoints.get.dashboards}`
|
||||
)
|
||||
|
@ -13,25 +13,25 @@
|
||||
|
||||
value-const-title1='N°'
|
||||
)
|
||||
button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
|
||||
button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle(data-trans='project.menuRight.buttonMobile')
|
||||
div.content-box__height
|
||||
solid-ac-checker(permission='acl:Read', bind-resources)
|
||||
#project-chat(hidden)
|
||||
#project-chat(hidden, data-view="project-chat")
|
||||
include views/project/page-project-chat.pug
|
||||
#project-information.content-box__height(hidden)
|
||||
#project-information.content-box__height(hidden, data-view="project-information")
|
||||
include views/project/page-project-profile.pug
|
||||
#project-picture(hidden)
|
||||
#project-picture(hidden, data-view="project-picture")
|
||||
include views/project/page-project-picture.pug
|
||||
|
||||
nav.jsRightMenu(role='navigation')
|
||||
solid-router(default-route='project-chat')
|
||||
ul
|
||||
li.jsOffsiteToggle
|
||||
a Replier le menu
|
||||
a(data-trans='project.menuRight.fold')
|
||||
solid-route(name='project-chat')
|
||||
li
|
||||
a Chat
|
||||
a(data-trans='project.menuRight.chat')
|
||||
solid-route(name='project-information')
|
||||
li
|
||||
a Information
|
||||
a(data-trans='project.menuRight.information')
|
||||
solid-route(name='project-picture' use-id)
|
55
src/scripts/firefox-scroll.js
Normal file
55
src/scripts/firefox-scroll.js
Normal file
@ -0,0 +1,55 @@
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const resizeChat = () => {
|
||||
let chatBox = Array.from(document.querySelectorAll("solid-xmpp-chat"))
|
||||
.map((el) => el.shadowRoot ? el.shadowRoot.getElementById("conversejs") : false)
|
||||
.filter((el) => el)
|
||||
.pop();
|
||||
if (chatBox) {
|
||||
let chatTextArea = chatBox.querySelector(".message-form-container");
|
||||
let ischatTextArea = setInterval(() => {
|
||||
chatTextArea = chatBox.querySelector(".message-form-container");
|
||||
if (chatTextArea) {
|
||||
clearInterval(ischatTextArea);
|
||||
if (
|
||||
chatBox.getBoundingClientRect().height -
|
||||
chatTextArea.getBoundingClientRect().height !=
|
||||
chatTextArea.offsetTop
|
||||
) {
|
||||
let viewportChat = Array.from(
|
||||
document.querySelectorAll("#viewport .chat-view")
|
||||
);
|
||||
viewportChat.forEach(
|
||||
(c) => (c.style.height = "calc(100vh - 106px - 57px - 4px)")
|
||||
);
|
||||
}
|
||||
}
|
||||
}, 15);
|
||||
}
|
||||
};
|
||||
resizeChat();
|
||||
|
||||
let isbody = setInterval(() => {
|
||||
if (document.body) {
|
||||
clearInterval(isbody);
|
||||
resizeChat();
|
||||
}
|
||||
}, 15);
|
||||
|
||||
window.addEventListener("load", () => {
|
||||
setTimeout(() => {
|
||||
resizeChat();
|
||||
}, 0);
|
||||
});
|
||||
|
||||
window.addEventListener("resize", () => {
|
||||
setTimeout(() => {
|
||||
resizeChat();
|
||||
}, 0);
|
||||
});
|
||||
|
||||
document.addEventListener("navigate", () => {
|
||||
setTimeout(() => {
|
||||
resizeChat();
|
||||
}, 0);
|
||||
});
|
||||
});
|
198
src/scripts/intl.js
Normal file
198
src/scripts/intl.js
Normal file
@ -0,0 +1,198 @@
|
||||
/*
|
||||
js intl, inspired by danabr/jsI18n
|
||||
*/
|
||||
class JsI18n {
|
||||
|
||||
constructor() {
|
||||
this.locale = ""; //Current locale
|
||||
this.locales = new Array(); //Available locales
|
||||
}
|
||||
|
||||
/*
|
||||
Method for automatically detecting the language, does not work in every browser.
|
||||
*/
|
||||
detectLanguage() {
|
||||
if (localStorage.getItem('language') || (window.navigator.language !== null && window.navigator.language !== undefined)) {
|
||||
this.setLocale(localStorage.getItem('language') || window.navigator.language.slice(0, 2));
|
||||
} else {
|
||||
console.error('Language not found');
|
||||
this.setLocale('fr');
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Translates tag contents and
|
||||
attributes depending on the
|
||||
value of key.
|
||||
*/
|
||||
translateTag(node, key) {
|
||||
if (key.indexOf("=") == -1) { //Simple key
|
||||
this.translateNodeContent(node, key);
|
||||
} else { //Attribute/key pairs
|
||||
var parts = key.split(";");
|
||||
|
||||
for (var i = 0; i < parts.length; i++) {
|
||||
var pair = parts[i].split("=");
|
||||
var attr = pair[0].toLowerCase().trim();
|
||||
var k = pair[1].trim();
|
||||
|
||||
if (attr == "html") {
|
||||
this.translateNodeContent(node, k);
|
||||
} else {
|
||||
if(node.tagName == "SOLID-DELETE") {
|
||||
let button = node.querySelector('button');
|
||||
if(button != null) {
|
||||
this.translateNodeContent(button, k);
|
||||
}
|
||||
}
|
||||
this.translateNodeContent(node.attributes[attr], k);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Replace the content of the given node
|
||||
if there is a translation for the given key.
|
||||
**/
|
||||
translateNodeContent(node, key) {
|
||||
var translation = this.t(key);
|
||||
if (node != null && translation != undefined) {
|
||||
if (node.nodeType == 1) { //Element
|
||||
try {
|
||||
node.innerHTML = translation;
|
||||
} catch (e) {
|
||||
node.text = translation;
|
||||
}
|
||||
} else if (node.nodeType == 2) { //Attribute
|
||||
node.value = translation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Helper for translating a node
|
||||
and all its child nodes.
|
||||
*/
|
||||
processNode(node) {
|
||||
if (node != undefined) {
|
||||
if (node.nodeType == 1) { //Element node
|
||||
|
||||
var key = node.attributes["data-trans"];
|
||||
if (key != null) {
|
||||
this.translateTag(node, key.nodeValue);
|
||||
}
|
||||
}
|
||||
|
||||
//Process child nodes
|
||||
var children = node.childNodes;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
this.processNode(children[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Adds a locale to the list,
|
||||
replacing the translations
|
||||
if the locale is already defined.
|
||||
*/
|
||||
addLocale(locale, translations) {
|
||||
this.locales[locale.toString()] = translations;
|
||||
}
|
||||
|
||||
/*
|
||||
Sets the locale to use when translating.
|
||||
*/
|
||||
setLocale(locale) {
|
||||
try {
|
||||
fetch(`/locales/${locale}.json`).then((result) => {
|
||||
if (result.ok) {
|
||||
result.json().then(e => {
|
||||
this.addLocale(locale, e);
|
||||
this.processPage();
|
||||
}).catch(() => {
|
||||
if (locale != "fr") {
|
||||
console.warn(`Locale not found: ${locale}, fallback to french`);
|
||||
this.setLocale("fr");
|
||||
} else {
|
||||
console.error("Language not found");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (locale != "fr") {
|
||||
console.warn(`Locale not found: ${locale}, fallback to french`);
|
||||
this.setLocale("fr");
|
||||
} else {
|
||||
console.error("Language not found");
|
||||
}
|
||||
}
|
||||
});
|
||||
this.locale = locale;
|
||||
} catch {
|
||||
if (locale != "fr") {
|
||||
console.warn(`Locale not found: ${locale}, fallback to french`);
|
||||
this.setLocale("fr");
|
||||
} else {
|
||||
console.error("Language not found");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Fetches the translation associated with the given key.
|
||||
*/
|
||||
t(key) {
|
||||
var translations = this.locales[this.locale];
|
||||
if (translations != undefined) {
|
||||
let translation = key.toString().split('.').reduce((o, i) => (o ? o[i] : undefined), translations);
|
||||
if(typeof translation == "string") {
|
||||
return translation;
|
||||
} else {
|
||||
return translations[key.toString()];
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
/*
|
||||
Alias for JsI18n.t
|
||||
*/
|
||||
translate(key) {
|
||||
this.t(key);
|
||||
}
|
||||
|
||||
/**
|
||||
Replaces the contents of all tags
|
||||
that have the data-trans attribute set.
|
||||
**/
|
||||
processPage() {
|
||||
this.processNode(document.getElementsByTagName("html")[0]);
|
||||
}
|
||||
}
|
||||
|
||||
//Global
|
||||
jsI18n = new JsI18n;
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
|
||||
// Detect the lang & initialize, based on the browser or "language" item from localstorage
|
||||
jsI18n.detectLanguage();
|
||||
|
||||
/*
|
||||
recursivePopulate(DOMElement)
|
||||
Will listen for the populate event of any sib element
|
||||
Process the changed node every time it populate
|
||||
Recursively add a populate listener for children elements
|
||||
*/
|
||||
function recursivePopulate(element) {
|
||||
Array.from(element.querySelectorAll('*')).forEach((e) => {
|
||||
e.addEventListener("populate", (e) => {
|
||||
recursivePopulate(e.target);
|
||||
jsI18n.processNode(e.target);
|
||||
});
|
||||
});
|
||||
}
|
||||
// Process every children from document
|
||||
recursivePopulate(document);
|
||||
});
|
@ -49,6 +49,9 @@
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
solid-multiple[name="user.communities"] {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -11,5 +11,6 @@ solid-widget(name='hubl-captain')
|
||||
class-is_lead='user-thumb__lead'
|
||||
|
||||
widget-account.picture='hubl-user-avatar'
|
||||
value-is_lead='Capitaine'
|
||||
value-is_lead=''
|
||||
data-trans='value-is_lead=template-captain.isLead'
|
||||
)
|
||||
|
@ -1,7 +1,7 @@
|
||||
div.content-box__info.flex
|
||||
solid-link(class="backlink right", next='admin-circle-list') Retour
|
||||
solid-link(class="backlink right", next='admin-circle-list' data-trans='circle.create.backlink')
|
||||
|
||||
h1.centered Créer un cercle
|
||||
h1.centered(data-trans='circle.create.title')
|
||||
|
||||
div#loader-circles-create.loader.loader-top
|
||||
div
|
||||
@ -22,13 +22,15 @@ div.content-box__info.flex
|
||||
class-name='form-label is-light is-full-width input-text-like'
|
||||
class-description='form-label is-light is-full-width input-text-like'
|
||||
|
||||
label-status='Statut du cercle'
|
||||
label-name='Nom du cercle *'
|
||||
label-description='Sous-titre du cercle *'
|
||||
label-status=''
|
||||
label-name=''
|
||||
label-description=''
|
||||
|
||||
widget-status='hubl-status'
|
||||
|
||||
next='circle'
|
||||
|
||||
submit-button='Enregistrer'
|
||||
submit-button=''
|
||||
|
||||
data-trans='label-status=circle.create.labelStatus;label-name=circle.create.labelName;label-description=circle.create.labelDescription;submit-button=circle.create.buttonSubmit'
|
||||
)
|
||||
|
@ -5,12 +5,12 @@
|
||||
solid-route(name='circle-left')
|
||||
|
||||
div.content-box__header.flex.space-between
|
||||
h1.without-margin Administration
|
||||
button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
|
||||
h1.without-margin(data-trans='circle.list.title')
|
||||
button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle(data-trans='circle.list.buttonMobile')
|
||||
|
||||
include ../circle/page-circle-left.pug
|
||||
|
||||
#admin-circle-list.content-box__height(hidden)
|
||||
#admin-circle-list.content-box__height(hidden, data-view="admin-circle-list")
|
||||
include ../../templates/hubl-user-avatar.pug
|
||||
|
||||
solid-widget(name='hubl-circle-owner')
|
||||
@ -31,27 +31,29 @@
|
||||
|
||||
div.admin-header.flex
|
||||
|
||||
h3 Cercles
|
||||
h3(data-trans='circle.list.subTitle')
|
||||
|
||||
solid-link(
|
||||
class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
|
||||
next='admin-circle-create'
|
||||
) Créer un cercle
|
||||
solid-ac-checker(data-src=`${endpoints.circles || (endpoints.post && endpoints.post.circles)}`, permission='acl:Append')
|
||||
solid-link(
|
||||
class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
|
||||
next='admin-circle-create' data-trans='circle.list.buttonCreate'
|
||||
)
|
||||
|
||||
.table-wrapper
|
||||
.table
|
||||
|
||||
div.table-header.grey-color
|
||||
div.w280 Nom
|
||||
div.w280 Administrateurs
|
||||
div.w280 Rejoindre
|
||||
div.w280(data-trans='circle.list.tableHeader1')
|
||||
div.w280(data-trans='circle.list.tableHeader2')
|
||||
div.w280(data-trans='circle.list.tableHeader3')
|
||||
|
||||
solid-widget(name='hubl-admin-circle-leave-button')
|
||||
template
|
||||
solid-delete(
|
||||
class='circle-leave button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
|
||||
data-src="${src}"
|
||||
data-label='Quitter'
|
||||
data-label=''
|
||||
data-trans='data-label=circle.list.buttonQuit'
|
||||
)
|
||||
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}` target-src='${src}')
|
||||
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src='${src}')
|
||||
@ -89,6 +91,7 @@
|
||||
widget-user.username='solid-form-hidden'
|
||||
|
||||
submit-button='Rejoindre'
|
||||
data-trans='submit-button=circle.list.buttonJoin'
|
||||
)
|
||||
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}` target-src='${value}')
|
||||
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src='${value}')
|
||||
@ -120,5 +123,5 @@
|
||||
div
|
||||
div
|
||||
|
||||
#admin-circle-create.content-box__height(hidden)
|
||||
#admin-circle-create.content-box__height(hidden, data-view="admin-circle-create")
|
||||
include page-admin-circles-create.pug
|
||||
|
@ -4,8 +4,8 @@
|
||||
solid-route(name='admin-users-create', use-id)
|
||||
|
||||
div.content-box__header.flex.space-between
|
||||
h1.without-margin Administration
|
||||
button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
|
||||
h1.without-margin(data-trans='communities.title')
|
||||
button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle(data-trans='communities.menuMobile')
|
||||
|
||||
solid-widget(name='hubl-action-community')
|
||||
template
|
||||
@ -14,20 +14,21 @@
|
||||
class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
|
||||
data-src="${value}"
|
||||
next="admin-users-create"
|
||||
) Inviter un nouvel utilisateur
|
||||
data-trans='communities.linkInvite'
|
||||
)
|
||||
solid-ac-checker(data-src="${value}", nested-field="members", no-permission='acl:Append')
|
||||
div.button.text-bold.text-uppercase.button-disabled Membre, aucune permission
|
||||
div.button.text-bold.text-uppercase.button-disabled(data-trans='communities.noPermission')
|
||||
|
||||
#admin-communities-list.content-box__height(hidden)
|
||||
#admin-communities-list.content-box__height(hidden, data-view="admin-communities-list")
|
||||
div.content-box__info.flex
|
||||
div.admin-header.flex
|
||||
h3 Communautés
|
||||
h3(data-trans='communities.subTitle')
|
||||
|
||||
.table-wrapper
|
||||
.table
|
||||
div.table-header.grey-color
|
||||
div.w450 Nom
|
||||
div.w370 Action
|
||||
div.w450(data-trans='communities.tableHeader1')
|
||||
div.w370(data-trans='communities.tableHeader2')
|
||||
|
||||
solid-display(
|
||||
class='table-body'
|
||||
@ -49,5 +50,5 @@
|
||||
div
|
||||
div
|
||||
|
||||
#admin-users-create.content-box__height(hidden)
|
||||
#admin-users-create.content-box__height(hidden, data-view="admin-users-create")
|
||||
include page-admin-users-create.pug
|
||||
|
@ -1,7 +1,7 @@
|
||||
div.content-box__info.flex
|
||||
solid-link(class="backlink right" next='admin-project-list') Retour
|
||||
solid-link(class="backlink right" next='admin-project-list' data-trans='project.create.backlink')
|
||||
|
||||
h1.centered Créer un nouveau projet
|
||||
h1.centered(data-trans='project.create.title')
|
||||
|
||||
div#loader-projects-create.loader.loader-top
|
||||
div
|
||||
@ -19,18 +19,18 @@ div.content-box__info.flex
|
||||
required-captain
|
||||
loader-id='loader-projects-create'
|
||||
|
||||
label-status='Statut du cercle*'
|
||||
label-status=''
|
||||
widget-status='solid-form-hidden'
|
||||
class-status='form-label is-light is-full-width'
|
||||
value-status="Private"
|
||||
|
||||
label-customer.name='Nom du client*'
|
||||
label-customer.name=''
|
||||
class-customer.name='form-label is-light is-half-width input-text-like'
|
||||
|
||||
label-name='Nom du projet*'
|
||||
label-name=''
|
||||
class-name='form-label is-light is-half-width input-text-like'
|
||||
|
||||
label-captain='Capitaine du projet*'
|
||||
label-captain=''
|
||||
range-captain=`${endpoints.users || endpoints.get.users}`
|
||||
class-captain='form-label is-light is-half-width'
|
||||
widget-captain='solid-form-dropdown-autocompletion-label'
|
||||
@ -39,5 +39,7 @@ div.content-box__info.flex
|
||||
|
||||
next='project'
|
||||
|
||||
submit-button='Enregistrer'
|
||||
submit-button=''
|
||||
|
||||
data-trans='label-status=project.create.labelStatus;label-customer.name=project.create.labelCustomer;label-name=project.create.labelName;label-captain=project.create.labelCaptain;submit-button=project.create.buttonSubmit'
|
||||
)
|
||||
|
@ -5,37 +5,40 @@
|
||||
solid-route(name='project-left')
|
||||
|
||||
div.content-box__header.flex.space-between
|
||||
h1.without-margin Administration
|
||||
button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle MENU
|
||||
h1.without-margin(data-trans='project.list.title')
|
||||
button.mobile-sidebar-button.jsMobileSidebarOpenButton.icon-arrow-left-circle(data-trans='project.list.buttonMobile')
|
||||
|
||||
#project-left(hidden)
|
||||
#project-left(hidden, data-view="project-left")
|
||||
include ../project/page-project-left.pug
|
||||
|
||||
#admin-project-list.content-box__height(hidden)
|
||||
#admin-project-list.content-box__height(hidden, data-view="admin-project-list")
|
||||
include ../../templates/hubl-user-avatar.pug
|
||||
|
||||
div.content-box__info.flex
|
||||
div.admin-header.flex
|
||||
h3 Projets
|
||||
solid-link(
|
||||
class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
|
||||
next='admin-project-create'
|
||||
) Créer un nouveau projet
|
||||
h3(data-trans='project.list.subTitle')
|
||||
solid-ac-checker(data-src=`${endpoints.projects || (endpoints.post && endpoints.post.projects)}`, permission='acl:Append')
|
||||
solid-link(
|
||||
class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
|
||||
next='admin-project-create'
|
||||
data-trans='project.list.buttonCreate'
|
||||
)
|
||||
|
||||
.table-wrapper
|
||||
.table
|
||||
div.table-header.grey-color
|
||||
div.w280 Nom
|
||||
div.w280 Administrateurs
|
||||
div.w280 Capitaines
|
||||
div.w230 Rejoindre
|
||||
div.w280(data-trans='project.list.tableHeader1')
|
||||
div.w280(data-trans='project.list.tableHeader2')
|
||||
div.w280(data-trans='project.list.tableHeader3')
|
||||
div.w230(data-trans='project.list.tableHeader4')
|
||||
|
||||
solid-widget(name="hubl-admin-project-leave-button")
|
||||
template
|
||||
solid-delete(
|
||||
class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
|
||||
data-src="${src}"
|
||||
data-label='Quitter'
|
||||
data-label=''
|
||||
data-trans='data-label=project.list.buttonQuit'
|
||||
)
|
||||
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}` target-src='${src}')
|
||||
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src='${src}')
|
||||
@ -73,7 +76,8 @@
|
||||
solid-delete(
|
||||
class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
|
||||
data-src="${src}"
|
||||
data-label='Quitter'
|
||||
data-label=''
|
||||
data-trans='data-label=project.list.buttonQuit'
|
||||
)
|
||||
|
||||
solid-display(
|
||||
@ -108,7 +112,8 @@
|
||||
value-user.username='hubl-workaround-493'
|
||||
widget-user.username='solid-form-hidden'
|
||||
|
||||
submit-button='Rejoindre'
|
||||
submit-button=''
|
||||
data-trans='submit-button=project.list.buttonJoin'
|
||||
)
|
||||
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}` target-src='${src}')
|
||||
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src='${src}')
|
||||
@ -144,5 +149,5 @@
|
||||
div
|
||||
div
|
||||
|
||||
#admin-project-create(hidden)
|
||||
include page-admin-projects-create.pug
|
||||
#admin-project-create(hidden, data-view="admin-project-create")
|
||||
include page-admin-projects-create.pug
|
||||
|
@ -1,10 +1,11 @@
|
||||
div.content-box__info.flex
|
||||
solid-link(class='backlink right', next='admin-communities-list') Retour
|
||||
solid-link(class='backlink right', next='admin-communities-list' data-trans='user.create.backlink')
|
||||
|
||||
solid-display.h1-like.centered(
|
||||
bind-resources
|
||||
fields='text, name'
|
||||
value-text="Inviter un utilisateur à "
|
||||
value-text=''
|
||||
data-trans='value-text=user.create.title'
|
||||
loader-id='loader-users-title'
|
||||
)
|
||||
|
||||
@ -22,13 +23,13 @@ div.content-box__info.flex
|
||||
|
||||
solid-widget(name='hubl-username-field')
|
||||
template
|
||||
label Nom d'utilisateur*
|
||||
input(type="text" title='Caractères alphanumérique uniquement' pattern="[a-zA-Z0-9]+" label="Nom d'utilisateur *" name="username" required value="\${value}" data-holder)
|
||||
label(data-trans='user.create.labelUsername')
|
||||
input(type="text" title='' pattern="[a-zA-Z0-9]+" label="" data-trans='title=user.create.labelUsernameTitle;label=user.create.labelUsername' name="username" required value="\${value}" data-holder)
|
||||
|
||||
solid-widget(name='hubl-email-field')
|
||||
template
|
||||
label E-mail *
|
||||
input(type="email" label="E-mail *" name="email" required value="\${value}" data-holder)
|
||||
label(data-trans='user.create.labelEmail')
|
||||
input(type="email" label='' data-trans='label=user.create.labelEmail' name="email" required value="\${value}" data-holder)
|
||||
|
||||
solid-form.form.button-register#selected-community(
|
||||
bind-resources
|
||||
@ -46,10 +47,10 @@ div.content-box__info.flex
|
||||
class-user.username='form-label is-light is-half-width input-text-like'
|
||||
class-user.email='form-label is-light is-half-width input-text-like'
|
||||
|
||||
label-user.first_name='Prénom *'
|
||||
label-user.last_name='Nom *'
|
||||
label-user.username='Nom d\'utilisateur *'
|
||||
label-user.email='E-mail *'
|
||||
label-user.first_name=''
|
||||
label-user.last_name=''
|
||||
label-user.username=''
|
||||
label-user.email=''
|
||||
|
||||
value-user.password=''
|
||||
widget-user.password='solid-form-hidden'
|
||||
@ -59,5 +60,6 @@ div.content-box__info.flex
|
||||
|
||||
next='admin-communities-list'
|
||||
|
||||
submit-button='Inviter'
|
||||
submit-button=''
|
||||
data-trans='label-user.first_name=user.create.labelFirstname;label-user.last_name=user.create.labelLastname;label-user.username=user.create.labelUsername;label-user.email=user.create.labelEmail;submit-button=user.create.buttonSubmit'
|
||||
)
|
||||
|
@ -8,13 +8,14 @@ div.content-box__info
|
||||
solid-delete(
|
||||
class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
|
||||
data-src="${src}"
|
||||
data-label='Retirer'
|
||||
data-label=''
|
||||
data-trans='data-label=circle.edit.buttonDelete'
|
||||
)
|
||||
|
||||
solid-link(class="backlink right", bind-resources, next='circle-profile') Retour
|
||||
solid-link(class="backlink right", bind-resources, next='circle-profile' data-trans='circle.edit.backlink')
|
||||
|
||||
solid-ac-checker(permission='acl:Write', bind-resources)
|
||||
h1 Modifie ton cercle
|
||||
h1(data-trans='circle.edit.title')
|
||||
|
||||
div#loader-circle-edit.loader.loader-top
|
||||
div
|
||||
@ -32,12 +33,12 @@ div.content-box__info
|
||||
required-description
|
||||
range-owner=`${endpoints.users || endpoints.get.users}`
|
||||
|
||||
label-status='Statut du cercle'
|
||||
label-status=''
|
||||
widget-status='hubl-status'
|
||||
|
||||
label-name='Nom du cercle *'
|
||||
label-owner='Administrateur ou administratrice *'
|
||||
label-description='Sous-titre du cercle *'
|
||||
label-name=''
|
||||
label-owner=''
|
||||
label-description=''
|
||||
|
||||
class-name='form-label is-light is-half-width input-text-like'
|
||||
class-owner='form-label is-light is-half-width member-select color'
|
||||
@ -50,9 +51,11 @@ div.content-box__info
|
||||
|
||||
submit-button='Enregistrer'
|
||||
next='circle-information'
|
||||
|
||||
data-trans='label-name=circle.edit.labelStatus;label-name=circle.edit.labelName;label-owner=circle.edit.labelOwner;label-description=circle.edit.labelDescription;submit-button=circle.edit.buttonSubmit'
|
||||
)
|
||||
|
||||
h2 Liste des membres :
|
||||
h2(data-trans='circle.edit.subTitle')
|
||||
|
||||
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
|
||||
solid-form.block.select-add(
|
||||
@ -64,14 +67,15 @@ div.content-box__info
|
||||
class-user='team'
|
||||
widget-user='solid-form-dropdown-autocompletion'
|
||||
|
||||
submit-button='Ajouter un membre'
|
||||
submit-button=''
|
||||
data-trans='submit-button=circle.edit.buttonAddMember'
|
||||
)
|
||||
|
||||
.table-wrapper
|
||||
.table
|
||||
div.table-header.grey-color
|
||||
div.w280 Nom
|
||||
div.w162 Accès
|
||||
div.w280(data-trans='circle.edit.tableHeader1')
|
||||
div.w162(data-trans='circle.edit.tableHeader2')
|
||||
|
||||
solid-display(
|
||||
class='table-body'
|
||||
|
@ -1,5 +1,10 @@
|
||||
#circle-left(hidden)
|
||||
#circle-left(hidden, data-view="circle-left")
|
||||
div.content-box__info.flex(style="padding: 15px")
|
||||
|
||||
p Tu as quitté ce cercle.
|
||||
p Pour le rejoindre à nouveau, rends-toi dans le panneau <solid-link next="admin-circle-list">administration</solid-link> ou contacte un administrateur.
|
||||
p(data-trans='circle.left.paragraphQuit')
|
||||
p
|
||||
span(data-trans='circle.left.paragraphJoin')
|
||||
span
|
||||
solid-link(next="admin-circle-list" data-trans='circle.left.admin')
|
||||
span
|
||||
span(data-trans='circle.left.paragraphContact')
|
@ -2,7 +2,7 @@ solid-router(default-route='circle-profile', hidden)
|
||||
solid-route(name='circle-profile')
|
||||
solid-route(name='circle-edit')
|
||||
|
||||
#circle-profile(hidden)
|
||||
#circle-profile(hidden, data-view="circle-profile")
|
||||
|
||||
solid-widget(name='hubl-circle-team-contact')
|
||||
template
|
||||
@ -24,15 +24,16 @@ solid-router(default-route='circle-profile', hidden)
|
||||
|
||||
class-title='word-spacing-right'
|
||||
|
||||
value-title='Date de création : '
|
||||
value-title=''
|
||||
data-trans='value-title=circle.profile.creationDate'
|
||||
|
||||
widget-creationDate='solid-display-value-date'
|
||||
)
|
||||
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
|
||||
solid-ac-checker(permission='acl:Delete', bind-resources)
|
||||
solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='circle-edit' bind-resources) Modifier et ajouter un membre
|
||||
solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='circle-edit' bind-resources data-trans='circle.profile.buttonModify')
|
||||
solid-ac-checker(no-permission='acl:Delete', bind-resources)
|
||||
solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='circle-edit' bind-resources) Ajouter un membre
|
||||
solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='circle-edit' bind-resources data-trans='circle.profile.buttonAdd')
|
||||
|
||||
|
||||
div.flex.desktop-button__end
|
||||
@ -40,7 +41,8 @@ solid-router(default-route='circle-profile', hidden)
|
||||
solid-delete(
|
||||
class='button mobile-full-width text-bold text-uppercase button-primary bordered with-icon icon-trash'
|
||||
bind-resources
|
||||
data-label='Supprimer le cercle'
|
||||
data-label=''
|
||||
data-trans='data-label=circle.profile.buttonDelete'
|
||||
next='admin-circles'
|
||||
)
|
||||
|
||||
@ -50,7 +52,8 @@ solid-router(default-route='circle-profile', hidden)
|
||||
solid-delete(
|
||||
class='button mobile-full-width desktop-btn-margin__left text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
|
||||
data-src="${src}"
|
||||
data-label='Quitter le cercle'
|
||||
data-label=''
|
||||
data-trans='data-label=circle.profile.buttonQuit'
|
||||
next='circle-left'
|
||||
)
|
||||
|
||||
@ -65,7 +68,8 @@ solid-router(default-route='circle-profile', hidden)
|
||||
value-user.username='hubl-workaround-493'
|
||||
widget-user.username='solid-form-hidden'
|
||||
|
||||
submit-button='Rejoindre le cercle'
|
||||
submit-button=''
|
||||
data-trans='submit-button=circle.profile.buttonJoin'
|
||||
)
|
||||
|
||||
solid-display(
|
||||
@ -82,7 +86,7 @@ solid-router(default-route='circle-profile', hidden)
|
||||
hubl-inherit-user-id="search-value-user"
|
||||
)
|
||||
|
||||
h2 Membres :
|
||||
h2(data-trans='circle.profile.subTitle')
|
||||
|
||||
solid-widget(name='hubl-circle-user-admin')
|
||||
template ${value ? "Administrateur" : ""}
|
||||
@ -109,5 +113,5 @@ solid-router(default-route='circle-profile', hidden)
|
||||
)
|
||||
|
||||
|
||||
#circle-edit.content-box__height(hidden)
|
||||
#circle-edit.content-box__height(hidden, data-view="circle-edit")
|
||||
include page-circle-edit.pug
|
||||
|
@ -4,7 +4,8 @@ solid-notifications-template(data-rdf-type='hd:circle')
|
||||
| ${await author['account.foaf:depiction'] ? `<img src="${await author['account.foaf:depiction']}" style="max-width:100%; max-height: 100%;" />` : `<object type="image/svg+xml" data="/images/alien.svg"></object>`}
|
||||
.solid-notification__content
|
||||
.solid-notification__title ${await author.name}
|
||||
span.solid-notification__title__side dans
|
||||
span.solid-notification__title__side
|
||||
span(data-trans='notification.circle.in')
|
||||
span.solid-notification__title__icon ${(await object.status) == 'Public' ? '#' : ''}
|
||||
| ${await object.name}
|
||||
p.solid-notification__summary ${summary}
|
||||
|
@ -4,5 +4,5 @@ solid-notifications-template(data-rdf-type='foaf:user')
|
||||
| ${await author['account.foaf:depiction'] ? `<img src="${await author['account.foaf:depiction']}" style="max-width:100%; max-height: 100%;" />` : `<object type="image/svg+xml" data="/images/alien.svg"></object>`}
|
||||
.solid-notification__content
|
||||
.solid-notification__title ${await author.name}
|
||||
span.solid-notification__title__side en privé
|
||||
span.solid-notification__title__side(data-trans='notification.private.private')
|
||||
p.solid-notification__summary ${summary}
|
@ -8,13 +8,14 @@ div.content-box__info
|
||||
solid-delete(
|
||||
class='button text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
|
||||
data-src="${src}"
|
||||
data-label='Retirer'
|
||||
data-label=''
|
||||
data-trans='data-label=project.edit.buttonDelete'
|
||||
)
|
||||
|
||||
solid-link(class='backlink right', bind-resources, next='project-profile') Retour
|
||||
solid-link(class='backlink right', bind-resources, next='project-profile' data-trans='project.edit.backlink')
|
||||
|
||||
solid-ac-checker(permission='acl:Write', bind-resources)
|
||||
h1 Modifie ton projet
|
||||
h1(data-trans='project.edit.title')
|
||||
|
||||
div#loader-project-edit.loader.loader-top
|
||||
div
|
||||
@ -29,20 +30,21 @@ div.content-box__info
|
||||
required-customer.name
|
||||
required-name
|
||||
|
||||
|
||||
label-name='Nom du projet*'
|
||||
label-name=''
|
||||
class-name='form-label is-light is-half-width input-text-like'
|
||||
|
||||
label-customer.name='Nom du client*'
|
||||
label-customer.name=''
|
||||
class-customer.name='form-label is-light is-half-width input-text-like'
|
||||
|
||||
partial=""
|
||||
|
||||
submit-button='Enregistrer'
|
||||
next='project-information'
|
||||
|
||||
data-trans='label-name=project.edit.labelName;label-customer.name=project.edit.labelCustomer;submit-button=project.edit.buttonSubmit'
|
||||
)
|
||||
|
||||
h2 Liste des membres :
|
||||
h2(data-trans='project.edit.subTitle')
|
||||
|
||||
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
|
||||
solid-form.block.select-add(
|
||||
@ -55,14 +57,15 @@ div.content-box__info
|
||||
label-user=''
|
||||
widget-user='solid-form-dropdown-autocompletion'
|
||||
|
||||
submit-button='Ajouter un membre'
|
||||
submit-button=''
|
||||
data-trans='submit-button=project.edit.buttonAddMember'
|
||||
)
|
||||
|
||||
.table-wrapper
|
||||
.table
|
||||
div.table-header.grey-color
|
||||
div.w280 Nom
|
||||
div.w162 Accès
|
||||
div.w280(data-trans='project.edit.tableHeader1')
|
||||
div.w162(data-trans='project.edit.tableHeader2')
|
||||
|
||||
//-class='table-body'
|
||||
solid-display(
|
||||
|
@ -1,5 +1,10 @@
|
||||
#project-left
|
||||
div.content-box__info.flex(style="padding: 15px")
|
||||
|
||||
p Tu as quitté ce projet.
|
||||
p Ceci est un projet privé. Pour le rejoindre, rends-toi dans le panneau <solid-link next="admin-project-list">administration</solid-link> et demande une invitation.
|
||||
p(data-trans='circle.left.paragraphQuit')
|
||||
p
|
||||
span(data-trans='project.left.paragraphJoin')
|
||||
span
|
||||
solid-link(next="admin-project-list" data-trans='project.left.admin')
|
||||
span
|
||||
span(data-trans='project.left.paragraphContact')
|
||||
|
@ -1,8 +1,8 @@
|
||||
div.content-box__info
|
||||
|
||||
solid-link(class='backlink right', bind-resources, next='project-edit') Retour
|
||||
solid-link(class='backlink right', bind-resources, next='project-edit' data-trans='project.modifyPicture.backlink')
|
||||
|
||||
h1 Modifier l'image du projet
|
||||
h1(data-trans='project.modifyPicture.title')
|
||||
|
||||
solid-picture.project-edit-picture(
|
||||
bind-resources
|
||||
|
@ -2,7 +2,7 @@ solid-router(default-route='project-profile', hidden)
|
||||
solid-route(name='project-profile')
|
||||
solid-route(name='project-edit')
|
||||
|
||||
#project-profile(hidden)
|
||||
#project-profile(hidden, data-view="project-profile")
|
||||
include ../../templates/hubl-captain.pug
|
||||
|
||||
solid-widget(name='hubl-project-team-contact')
|
||||
@ -25,22 +25,24 @@ solid-router(default-route='project-profile', hidden)
|
||||
|
||||
class-title='word-spacing-right'
|
||||
|
||||
value-title='Date de création : '
|
||||
value-title=''
|
||||
data-trans='value-title=project.profile.creationDate'
|
||||
|
||||
widget-creationDate='solid-display-value-date'
|
||||
)
|
||||
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
|
||||
solid-ac-checker(permission='acl:Delete', bind-resources)
|
||||
solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='project-edit' bind-resources) Modifier et ajouter un membre
|
||||
solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='project-edit' bind-resources data-trans='project.profile.buttonModify')
|
||||
solid-ac-checker(no-permission='acl:Delete', bind-resources)
|
||||
solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='project-edit' bind-resources) Ajouter un membre
|
||||
solid-link(class='button mobile-full-width text-bold text-uppercase reversed button-primary bordered with-icon icon-pencil' next='project-edit' bind-resources data-trans='project.profile.buttonAdd')
|
||||
|
||||
div.flex.desktop-button__end
|
||||
solid-ac-checker(permission='acl:Delete', bind-resources)
|
||||
solid-delete(
|
||||
class='button mobile-full-width text-bold text-uppercase button-primary bordered with-icon icon-trash'
|
||||
bind-resources
|
||||
data-label='Supprimer le projet'
|
||||
data-label=''
|
||||
data-trans='data-label=project.profile.buttonDelete'
|
||||
next='admin-projects'
|
||||
)
|
||||
|
||||
@ -49,7 +51,8 @@ solid-router(default-route='project-profile', hidden)
|
||||
solid-delete(
|
||||
class='button mobile-full-width desktop-btn-margin__left text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
|
||||
data-src="${src}"
|
||||
data-label='Quitter le projet'
|
||||
data-label=''
|
||||
data-trans='data-label=project.profile.buttonQuit'
|
||||
next='project-left'
|
||||
)
|
||||
|
||||
@ -74,14 +77,15 @@ solid-router(default-route='project-profile', hidden)
|
||||
bind-resources
|
||||
fields='label-captain, captain'
|
||||
|
||||
value-label-captain='Capitaine :'
|
||||
value-label-captain=''
|
||||
data-trans='value-label-captain=project.profile.captain',
|
||||
class-label-captain='h2-like'
|
||||
widget-captain='hubl-captain'
|
||||
)
|
||||
|
||||
br
|
||||
|
||||
h2 Equipe :
|
||||
h2(data-trans:'project.profile.subTitle')
|
||||
|
||||
solid-widget(name='hubl-project-user-admin')
|
||||
template ${value ? "Administrateur" : ""}
|
||||
@ -107,5 +111,5 @@ solid-router(default-route='project-profile', hidden)
|
||||
widget-is_admin='hubl-project-user-admin'
|
||||
)
|
||||
|
||||
#project-edit.content-box__height(hidden)
|
||||
#project-edit.content-box__height(hidden, data-view="project-edit")
|
||||
include page-project-edit.pug
|
||||
|
Loading…
Reference in New Issue
Block a user