Merge branch 'master' into feature/test-flows
This commit is contained in:
commit
3137443da2
348
.gitlab-ci.yml
348
.gitlab-ci.yml
@ -176,24 +176,6 @@ community:
|
|||||||
tags:
|
tags:
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
etuc:
|
|
||||||
stage: deployment
|
|
||||||
environment:
|
|
||||||
name: etuc
|
|
||||||
url: https://app.digitalplatformobservatory.org
|
|
||||||
before_script:
|
|
||||||
- npm ci --cache .npm --prefer-offline --only=production
|
|
||||||
script:
|
|
||||||
- echo "$APP_CONFIG_DIGITALPLATFORMOBSERVATORY" > config.json
|
|
||||||
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
|
||||||
- npm run build
|
|
||||||
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* etuc@ssh-etuc.happy-dev.fr:~/sib/www/
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
when: manual
|
|
||||||
tags:
|
|
||||||
- deploy
|
|
||||||
|
|
||||||
nantes:
|
nantes:
|
||||||
stage: deployment
|
stage: deployment
|
||||||
environment:
|
environment:
|
||||||
@ -230,15 +212,15 @@ paris:
|
|||||||
tags:
|
tags:
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
toulouse:
|
smarttoulouse:
|
||||||
stage: deployment
|
stage: deployment
|
||||||
environment:
|
environment:
|
||||||
name: toulouse
|
name: smarttoulouse
|
||||||
url: https://smart-toulouse.happy-dev.fr
|
url: https://smart-toulouse.happy-dev.fr
|
||||||
before_script:
|
before_script:
|
||||||
- npm ci --cache .npm --prefer-offline --only=production
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
script:
|
script:
|
||||||
- echo "$APP_CONFIG_TOULOUSE" > config.json
|
- echo "$APP_CONFIG_SMARTTOULOUSE" > config.json
|
||||||
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
- npm run build
|
- npm run build
|
||||||
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* smart-toulouse@ssh-smart-toulouse.happy-dev.fr:~/www/
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* smart-toulouse@ssh-smart-toulouse.happy-dev.fr:~/www/
|
||||||
@ -301,3 +283,327 @@ playground:
|
|||||||
when: manual
|
when: manual
|
||||||
tags:
|
tags:
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
|
casaco:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: casaco
|
||||||
|
url: https://casaco.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_CASACO" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* casaco@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
opteos:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: opteos
|
||||||
|
url: https://opteos.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_OPTEOS" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* opteos@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
fnk:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: fnk
|
||||||
|
url: https://fnk.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_FNK" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* fnk@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
labriqueterie:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: labriqueterie
|
||||||
|
url: https://labriqueterie.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_LABRIQUETERIE" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* labriqueterie@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
facttic:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: facttic
|
||||||
|
url: https://facttic.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_FACTTIC" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* facttic@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
cotech:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: cotech
|
||||||
|
url: https://hubl.coops.tech
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_COTECH" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* cotech@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
lelaptop:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: lelaptop
|
||||||
|
url: https://lelaptop.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_LELAPTOP" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* lelaptop@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
virtualassembly:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: virtualassembly
|
||||||
|
url: https://virtual-assembly.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_VIRTUAL_ASS" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* virtual-assembly@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
ouisharequebec:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: ouisharequebec
|
||||||
|
url: https://ouishare-quebec.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_OUISHARE" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* ouishare-quebec@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
nouvelleaquitaine:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: nouvelleaquitaine
|
||||||
|
url: https://app.nouvelle-aquitaine.happy-dev.fr
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_NVLE_AQ" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* nouvelle-aquitaine@ssh-nouvelle-aquitaine.happy-dev.fr:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
paca:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: paca
|
||||||
|
url: https://app.paca.happy-dev.fr
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_PACA" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* paca@ssh-paca.happy-dev.fr:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
strasbourg:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: strasbourg
|
||||||
|
url: https://app.strasbourg.happy-dev.fr
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_STRASBOURG" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* strasbourg@ssh-strasbourg.happy-dev.fr:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
bretagne:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: bretagne
|
||||||
|
url: https://app.bretagne.happy-dev.fr
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_BRETAGNE" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* bretagne@ssh-bretagne.happy-dev.fr:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
lemans:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: lemans
|
||||||
|
url: https://app.lemans.happy-dev.fr
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_LEMANS" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* lemans@ssh-lemans.happy-dev.fr:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
apidays:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: apidays
|
||||||
|
url: https://apidays.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_APIDAYS" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* apidays@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
ejp:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: ejp
|
||||||
|
url: https://ejp.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_EJP" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* georgetown-uni@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
fichemetierfr:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: fichemetierfr
|
||||||
|
url: https://fichemetier.fr.hubl.world
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_FICHEMETIERFR" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* fichemetierfr@astral.startinblox.com:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
toulouse:
|
||||||
|
stage: deployment
|
||||||
|
environment:
|
||||||
|
name: toulouse
|
||||||
|
url: https://app.toulouse.happy-dev.fr
|
||||||
|
before_script:
|
||||||
|
- npm ci --cache .npm --prefer-offline --only=production
|
||||||
|
script:
|
||||||
|
- echo "$APP_CONFIG_TOULOUSE" > config.json
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
|
||||||
|
- npm run build
|
||||||
|
- scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* toulouse@ssh-toulouse.happy-dev.fr:~/front/
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
when: manual
|
||||||
|
tags:
|
||||||
|
- deploy
|
||||||
|
40
.gitlab/issue_templates/new_instance.md
Normal file
40
.gitlab/issue_templates/new_instance.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/label ~"New Instance"
|
||||||
|
|
||||||
|
# Please fill all these info:
|
||||||
|
|
||||||
|
## General info
|
||||||
|
|
||||||
|
- Name of the instance:
|
||||||
|
- Domain:
|
||||||
|
|
||||||
|
## Settings:
|
||||||
|
|
||||||
|
- Does the instance allow people to sign up? **Yes / No**
|
||||||
|
- Does the instance want new people to get a welcome email? **Yes / No**
|
||||||
|
|
||||||
|
## Federation:
|
||||||
|
|
||||||
|
- Which current instance should see this new instance data? **Please provide the info module by module and include the instance itself.**
|
||||||
|
- Do those current instances agree to share their public data with this new instance? **Yes / No**
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
- *Instance G is the new kid in town*
|
||||||
|
- *Instance G wants to only see their dashboard, but want to access the circles of A, B, C, D, E & F.*
|
||||||
|
- *Instance G wants to be able to chat with users from A, B, C, D, E & F.*
|
||||||
|
- *Instance G wants to be able to see A and B job offers*
|
||||||
|
|
||||||
|
Let's say every instances agree to this scenario, the issue should describe the following:
|
||||||
|
|
||||||
|
- Dashboard: G
|
||||||
|
- Circles: A, B, C, D, E, F & G
|
||||||
|
- Job offers: A, B, F, G
|
||||||
|
- Users: A, B, C, D, E, F & G
|
||||||
|
- Profile directory: A, B, C, D, E, F & G
|
||||||
|
- G agrees that any new instance can see their public data.
|
||||||
|
|
||||||
|
## Cosmetics
|
||||||
|
|
||||||
|
- Logo:
|
||||||
|
- Favicon:
|
||||||
|
- 4 Colors:
|
@ -27,6 +27,12 @@
|
|||||||
/* Header's elements */
|
/* Header's elements */
|
||||||
--color-header-background: var(--color-white);
|
--color-header-background: var(--color-white);
|
||||||
--color-bell: var(--color-complementary-darken);
|
--color-bell: var(--color-complementary-darken);
|
||||||
|
--color-notification-counter-number: black;
|
||||||
|
--color-notification-summary: #7A7F85;
|
||||||
|
--solid-notifications-theme: var(--color-primary);
|
||||||
|
--color-notification-item-border: #E4E8ED;
|
||||||
|
--color-notification-scrollbar-background: #EDF1FA;
|
||||||
|
--color-notification-scrollbar-track: #BDC2D7;
|
||||||
--color-user-panel-header-text: var(--color-complementary-darken);
|
--color-user-panel-header-text: var(--color-complementary-darken);
|
||||||
--color-user-panel-header-background: var(--color-white);
|
--color-user-panel-header-background: var(--color-white);
|
||||||
--color-user-panel-header-text-open: var(--color-white);
|
--color-user-panel-header-text-open: var(--color-white);
|
||||||
|
@ -5,7 +5,7 @@ const HublSearchUsers = widgetFactory(
|
|||||||
`<input
|
`<input
|
||||||
data-holder
|
data-holder
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
placeholder="\${label}"
|
placeholder="\${label} (^ + K)"
|
||||||
type="text"
|
type="text"
|
||||||
name="\${name}"
|
name="\${name}"
|
||||||
value="\${escapedValue}"
|
value="\${escapedValue}"
|
||||||
|
@ -11,7 +11,7 @@ script(type="module" src="https://unpkg.com/@startinblox/oidc@0.9" defer)
|
|||||||
script(type="module" src="https://unpkg.com/@startinblox/router@0.8" defer)
|
script(type="module" src="https://unpkg.com/@startinblox/router@0.8" defer)
|
||||||
//- script(type="module" src="/lib/solid-router/src/index.js" defer)
|
//- script(type="module" src="/lib/solid-router/src/index.js" defer)
|
||||||
|
|
||||||
script(type="module" src="https://unpkg.com/@startinblox/component-notifications@0.4" defer)
|
script(type="module" src="https://unpkg.com/@startinblox/component-notifications@0.6.2" defer)
|
||||||
//- script(type="module" src="/lib/sib-notifications/index.js" defer)
|
//- script(type="module" src="/lib/sib-notifications/index.js" defer)
|
||||||
|
|
||||||
if endpoints.events || (endpoints.get && endpoints.get.events)
|
if endpoints.events || (endpoints.get && endpoints.get.events)
|
||||||
@ -19,15 +19,15 @@ if endpoints.events || (endpoints.get && endpoints.get.events)
|
|||||||
//- script(type="module" src="/lib/sib-event/sib-event.js" defer)
|
//- script(type="module" src="/lib/sib-event/sib-event.js" defer)
|
||||||
|
|
||||||
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
|
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
|
||||||
script(type="module" src="https://unpkg.com/@startinblox/component-job-board@0.5" defer)
|
script(type="module" src="https://unpkg.com/@startinblox/component-job-board@0.6" defer)
|
||||||
//- script(type="module" src="/lib/solid-job-board/dist/index.js" 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))
|
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.5" defer)
|
script(type="module" src="https://unpkg.com/@startinblox/component-directory@0.7" defer)
|
||||||
//- script(type="module" src="/lib/solid-directory/dist/index.js" defer)
|
//- script(type="module" src="/lib/solid-directory/dist/index.js" defer)
|
||||||
|
|
||||||
if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
|
if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
|
||||||
script(type="module" src="https://unpkg.com/@startinblox/component-dashboard@0.2" defer)
|
script(type="module" src="https://unpkg.com/@startinblox/component-dashboard@0.3" defer)
|
||||||
//- script(type="module" src="/lib/solid-dashboard/dist/index.js" defer)
|
//- script(type="module" src="/lib/solid-dashboard/dist/index.js" defer)
|
||||||
|
|
||||||
if endpoints.users || (endpoints.get && endpoints.get.users)
|
if endpoints.users || (endpoints.get && endpoints.get.users)
|
||||||
|
@ -2,11 +2,15 @@
|
|||||||
solid-link(next='dashboard')
|
solid-link(next='dashboard')
|
||||||
img(src=`${clientLogo || '/images/logo.png'}` style=`max-height:${clientLogoHeight || '32px'}`)
|
img(src=`${clientLogo || '/images/logo.png'}` style=`max-height:${clientLogoHeight || '32px'}`)
|
||||||
|
|
||||||
sib-notifications.notLoggedIn(
|
solid-notifications.notLoggedIn(
|
||||||
nested-field="inbox"
|
nested-field="inbox"
|
||||||
bind-user
|
bind-user
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//- Templates for notifications from circles and from other users
|
||||||
|
include views/circle/page-circle-notifications.pug
|
||||||
|
include views/user/page-user-notifications.pug
|
||||||
|
|
||||||
include templates/hubl-user-avatar.pug
|
include templates/hubl-user-avatar.pug
|
||||||
|
|
||||||
details#user-controls.notLoggedIn
|
details#user-controls.notLoggedIn
|
||||||
|
@ -35,6 +35,10 @@ html(lang="en")
|
|||||||
|
|
||||||
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
|
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
|
||||||
#job-offers(hidden).no-sidebar.with-padding
|
#job-offers(hidden).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}`)
|
||||||
|
hubl-reactivity(data-src=`${endpoints.post.joboffers}` target-src=`${endpoints.get.joboffers}`)
|
||||||
hubl-reactivity(data-src=`${endpoints.joboffers || endpoints.get.joboffers}current/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
|
hubl-reactivity(data-src=`${endpoints.joboffers || endpoints.get.joboffers}current/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
|
||||||
hubl-reactivity(data-src=`${endpoints.joboffers || endpoints.get.joboffers}current/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}expired/`)
|
hubl-reactivity(data-src=`${endpoints.joboffers || endpoints.get.joboffers}current/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}expired/`)
|
||||||
hubl-reactivity(data-src=`${endpoints.joboffers || endpoints.get.joboffers}expired/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
|
hubl-reactivity(data-src=`${endpoints.joboffers || endpoints.get.joboffers}expired/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
|
||||||
@ -45,6 +49,11 @@ html(lang="en")
|
|||||||
|
|
||||||
if endpoints.projects || (endpoints.get && endpoints.get.projects)
|
if endpoints.projects || (endpoints.get && endpoints.get.projects)
|
||||||
#project(hidden).with-sidebar
|
#project(hidden).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}`)
|
||||||
|
hubl-reactivity(bind-user nested-field="projects" target-src=`${endpoints.post.projects}`)
|
||||||
|
hubl-reactivity(bind-user nested-field="projects" target-src=`${endpoints.post.projects}joinable/`)
|
||||||
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src=`${endpoints.projects || endpoints.get.projects}`)
|
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src=`${endpoints.projects || endpoints.get.projects}`)
|
||||||
hubl-reactivity(bind-user nested-field="projects" target-src=`${endpoints.projects || endpoints.get.projects}`)
|
hubl-reactivity(bind-user nested-field="projects" target-src=`${endpoints.projects || endpoints.get.projects}`)
|
||||||
hubl-reactivity(bind-user nested-field="projects" target-src=`${endpoints.projects || endpoints.get.projects}joinable/`)
|
hubl-reactivity(bind-user nested-field="projects" target-src=`${endpoints.projects || endpoints.get.projects}joinable/`)
|
||||||
@ -52,6 +61,11 @@ html(lang="en")
|
|||||||
|
|
||||||
if endpoints.circles || (endpoints.get && endpoints.get.circles)
|
if endpoints.circles || (endpoints.get && endpoints.get.circles)
|
||||||
#circle(hidden).with-sidebar
|
#circle(hidden).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}`)
|
||||||
|
hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.post.circles}`)
|
||||||
|
hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.post.circles}joinable/`)
|
||||||
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src=`${endpoints.circles || endpoints.get.circles}`)
|
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src=`${endpoints.circles || endpoints.get.circles}`)
|
||||||
hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.circles || endpoints.get.circles}`)
|
hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.circles || endpoints.get.circles}`)
|
||||||
hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.circles || endpoints.get.circles}joinable/`)
|
hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.circles || endpoints.get.circles}joinable/`)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
solid-widget(name='hubl-counter')
|
solid-widget(name='hubl-counter')
|
||||||
template
|
template
|
||||||
solid-fix-badge(data-src="${value == 'badge' ? src : value}")
|
solid-badge(data-src="${value == 'badge' ? src : value}")
|
||||||
|
|
||||||
solid-widget(name='hubl-menu-jabberid')
|
solid-widget(name='hubl-menu-jabberid')
|
||||||
template
|
template
|
||||||
@ -79,10 +79,16 @@ solid-router#navbar-router(default-route='dashboard')
|
|||||||
div.menu-icon.icon-folder-alt
|
div.menu-icon.icon-folder-alt
|
||||||
solid-route(name='project', rdf-type='hd:project', use-id='', hidden)
|
solid-route(name='project', rdf-type='hd:project', use-id='', hidden)
|
||||||
div.sub-menu.menu-notification
|
div.sub-menu.menu-notification
|
||||||
|
div#loader-projects.loader.loader-menu
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
solid-display.project-tab(
|
solid-display.project-tab(
|
||||||
bind-user
|
bind-user
|
||||||
nested-field='projects'
|
nested-field='projects'
|
||||||
fields='project'
|
fields='project'
|
||||||
|
loader-id='loader-projects'
|
||||||
empty-widget='hubl-create'
|
empty-widget='hubl-create'
|
||||||
empty-value='projet'
|
empty-value='projet'
|
||||||
widget-project='hubl-menu-fix-url-project'
|
widget-project='hubl-menu-fix-url-project'
|
||||||
@ -96,16 +102,22 @@ solid-router#navbar-router(default-route='dashboard')
|
|||||||
div.menu
|
div.menu
|
||||||
div.menu-chevron
|
div.menu-chevron
|
||||||
div.menu-icon.icon-arrow-right-circle
|
div.menu-icon.icon-arrow-right-circle
|
||||||
div.menu-label Canaux
|
div.menu-label Cercles
|
||||||
div.menu-icon.icon-folder-alt
|
div.menu-icon.icon-folder-alt
|
||||||
solid-route(name='circle', rdf-type='hd:circle', use-id='', hidden)
|
solid-route(name='circle', rdf-type='hd:circle', use-id='', hidden)
|
||||||
div.sub-menu.menu-notification
|
div.sub-menu.menu-notification
|
||||||
|
div#loader-circles.loader.loader-menu
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
solid-display.circle-tab(
|
solid-display.circle-tab(
|
||||||
bind-user
|
bind-user
|
||||||
nested-field='circles'
|
nested-field='circles'
|
||||||
fields='circle'
|
fields='circle'
|
||||||
|
loader-id='loader-circles'
|
||||||
empty-widget='hubl-create'
|
empty-widget='hubl-create'
|
||||||
empty-value='canal'
|
empty-value='cercle'
|
||||||
widget-circle='hubl-menu-fix-url-circle'
|
widget-circle='hubl-menu-fix-url-circle'
|
||||||
order-by='circle.name'
|
order-by='circle.name'
|
||||||
next='circle'
|
next='circle'
|
||||||
@ -120,9 +132,15 @@ solid-router#navbar-router(default-route='dashboard')
|
|||||||
div.menu-icon.icon-envelope-letter
|
div.menu-icon.icon-envelope-letter
|
||||||
solid-route(name='messages', rdf-type='foaf:user', use-id='', hidden)
|
solid-route(name='messages', rdf-type='foaf:user', use-id='', hidden)
|
||||||
div.sub-menu.menu-notification
|
div.sub-menu.menu-notification
|
||||||
|
div#loader-messages.loader.loader-menu
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
solid-display.nosub.message-tab(
|
solid-display.nosub.message-tab(
|
||||||
data-src=`${endpoints.users || (endpoints.get && endpoints.get.users)}`
|
data-src=`${endpoints.users || (endpoints.get && endpoints.get.users)}`
|
||||||
fields='name, chatProfile.jabberID, badge'
|
fields='name, chatProfile.jabberID, badge'
|
||||||
|
loader-id='loader-messages'
|
||||||
search-fields="name"
|
search-fields="name"
|
||||||
search-label-name="Rechercher..."
|
search-label-name="Rechercher..."
|
||||||
search-widget-name="hubl-search-users"
|
search-widget-name="hubl-search-users"
|
||||||
|
@ -20,7 +20,7 @@ nav.jsRightMenu(role='navigation')
|
|||||||
if endpoints.circles || (endpoints.get && endpoints.get.circles)
|
if endpoints.circles || (endpoints.get && endpoints.get.circles)
|
||||||
solid-route(name='admin-circles')
|
solid-route(name='admin-circles')
|
||||||
li
|
li
|
||||||
a Canaux
|
a Cercles
|
||||||
if endpoints.projects || (endpoints.get && endpoints.get.projects)
|
if endpoints.projects || (endpoints.get && endpoints.get.projects)
|
||||||
solid-route(name='admin-projects')
|
solid-route(name='admin-projects')
|
||||||
li
|
li
|
||||||
|
10
src/scripts/keyboard-shortcuts.js
Normal file
10
src/scripts/keyboard-shortcuts.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
document.addEventListener("keydown", function (e) {
|
||||||
|
/*
|
||||||
|
CTRL + K : Focus on the user search
|
||||||
|
Keycode 75
|
||||||
|
*/
|
||||||
|
if(e.ctrlKey && e.which == 75) {
|
||||||
|
document.querySelector('hubl-search-users > input').focus();
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
});
|
11
src/scripts/menu-toggle.js
Normal file
11
src/scripts/menu-toggle.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
const menuWrappers = Array.from(document.querySelectorAll(".menu-wrapper"));
|
||||||
|
|
||||||
|
//- Toggle sub-menus
|
||||||
|
menuWrappers.forEach(menuWrapper => {
|
||||||
|
const menu = menuWrapper.querySelector(".menu");
|
||||||
|
menu.addEventListener("click", e => {
|
||||||
|
menuWrapper.classList.toggle("is-closed");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@ -1,60 +0,0 @@
|
|||||||
//- Update badges from notifications list
|
|
||||||
async function updateBadges(element) {
|
|
||||||
const unreadNotifications = new Map();
|
|
||||||
const notifications = element.component.resource;
|
|
||||||
if (!notifications) return;
|
|
||||||
// Generate unread map
|
|
||||||
for (let notification of notifications['ldp:contains']) {
|
|
||||||
if (await notification['unread']) {
|
|
||||||
const object = await notification['object'];
|
|
||||||
unreadNotifications.set(object['@id'], (unreadNotifications.get(object['@id']) || 0) + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// update badges
|
|
||||||
unreadNotifications.forEach((notifNumber, objectId) => {
|
|
||||||
const badge = document.querySelector(`solid-fix-badge[data-src="${objectId}"]`);
|
|
||||||
if (badge) {
|
|
||||||
badge.innerText = notifNumber || '';
|
|
||||||
badge.style.display = notifNumber ? 'block' : 'none';
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
document.addEventListener("DOMContentLoaded", function (event) {
|
|
||||||
|
|
||||||
//- Fix badges performances
|
|
||||||
// on load time
|
|
||||||
const checkNotificationMenuExist = setInterval(function () { // wait for notification menu to exist
|
|
||||||
const notifsMenu = document.getElementById('notifications-list');
|
|
||||||
if (notifsMenu) {
|
|
||||||
clearInterval(checkNotificationMenuExist);
|
|
||||||
notifsMenu.addEventListener('populate', (event) => {
|
|
||||||
const checkExist = setInterval(function () { // wait for left menus to exist
|
|
||||||
const subMenus = document.querySelectorAll('.sub-menu > solid-display > div');
|
|
||||||
if (subMenus.length >= 2) {
|
|
||||||
updateBadges(event.target);
|
|
||||||
clearInterval(checkExist);
|
|
||||||
}
|
|
||||||
}, 500);
|
|
||||||
}, {
|
|
||||||
once: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, 500);
|
|
||||||
|
|
||||||
// on refresh notification list
|
|
||||||
window.addEventListener('notificationsRefresh', () => {
|
|
||||||
document.getElementById('notifications-list').addEventListener('populate', (event) => {
|
|
||||||
updateBadges(event.target);
|
|
||||||
}, {
|
|
||||||
once: true
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// on read notification
|
|
||||||
window.addEventListener('read', (event) => {
|
|
||||||
if (event.detail && event.detail.resource && event.detail.resource['@id']) {
|
|
||||||
const badge = document.querySelector(`solid-fix-badge[data-src="${event.detail.resource['@id']}"]`);
|
|
||||||
if (badge) badge.style.display = "none";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
@ -8,7 +8,7 @@ document.addEventListener("DOMContentLoaded", function (event) {
|
|||||||
|
|
||||||
window.addEventListener('read', (event) => {
|
window.addEventListener('read', (event) => {
|
||||||
if (event.detail && event.detail.resource && event.detail.resource['@id']) {
|
if (event.detail && event.detail.resource && event.detail.resource['@id']) {
|
||||||
const badge = document.querySelector(`solid-fix-badge[data-src="${event.detail.resource['@id']}"]`);
|
const badge = document.querySelector(`solid-badge[data-src="${event.detail.resource['@id']}"]`);
|
||||||
if (badge) badge.parentElement.parentElement.classList.remove('unread');
|
if (badge) badge.parentElement.parentElement.classList.remove('unread');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -33,7 +33,6 @@
|
|||||||
--color-main-text: var(--color-grey-4);
|
--color-main-text: var(--color-grey-4);
|
||||||
--color-highlight-primary: var(--color-primary);
|
--color-highlight-primary: var(--color-primary);
|
||||||
--color-user-panel: var(--color-black);
|
--color-user-panel: var(--color-black);
|
||||||
--color-bell: var(--color-secondary);
|
|
||||||
--color-avatar-background: var(--color-grey-10);
|
--color-avatar-background: var(--color-grey-10);
|
||||||
--color-title: var(--color-secondary);
|
--color-title: var(--color-secondary);
|
||||||
--color-h1: var(--color-secondary);
|
--color-h1: var(--color-secondary);
|
||||||
@ -42,6 +41,12 @@
|
|||||||
/* Header's elements */
|
/* Header's elements */
|
||||||
--color-header-background: var(--color-white);
|
--color-header-background: var(--color-white);
|
||||||
--color-bell: var(--color-secondary);
|
--color-bell: var(--color-secondary);
|
||||||
|
--color-notification-counter-number: var(--color-white);
|
||||||
|
--color-notification-summary: var(--color-grey-4);
|
||||||
|
--solid-notifications-theme: var(--color-primary);
|
||||||
|
--color-notification-item-border: var(--color-grey-12);
|
||||||
|
--color-notification-scrollbar-background: #EDF1FA;
|
||||||
|
--color-notification-scrollbar-track: var(--color-grey-8);
|
||||||
--color-user-panel-header-text: var(--color-secondary);
|
--color-user-panel-header-text: var(--color-secondary);
|
||||||
--color-user-panel-header-background: var(--color-white);
|
--color-user-panel-header-background: var(--color-white);
|
||||||
--color-user-panel-header-text-open: var(--color-white);
|
--color-user-panel-header-text-open: var(--color-white);
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
@include breakpoint(lg) {
|
@include breakpoint(lg) {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
margin-bottom: 0;
|
||||||
transition: all .3s ease;
|
transition: all .3s ease;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -31,7 +32,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-top: 109px;
|
margin-top: 32px;
|
||||||
position: relative;
|
position: relative;
|
||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
|
@ -67,17 +67,17 @@ details {
|
|||||||
}
|
}
|
||||||
/* End */
|
/* End */
|
||||||
|
|
||||||
sib-notifications {
|
solid-notifications {
|
||||||
color: var(--color-bell);
|
color: var(--color-bell);
|
||||||
|
|
||||||
@include breakpoint(sm) {
|
@include breakpoint(sm) {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sib-notifications__container {
|
.solid-notifications__container {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.sib-notifications__button {
|
.solid-notifications__button {
|
||||||
@include icon('bell');
|
@include icon('bell');
|
||||||
font-size: 2.5rem;
|
font-size: 2.5rem;
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ sib-notifications {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sib-notifications__counter {
|
.solid-notifications__counter {
|
||||||
left: 2rem;
|
left: 2rem;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 1px;
|
top: 1px;
|
||||||
@ -102,27 +102,157 @@ sib-notifications {
|
|||||||
left: 2.1rem;
|
left: 2.1rem;
|
||||||
top: -3px;
|
top: -3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: var(--color-notification-counter-number);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.sib-notifications__list {
|
.solid-notifications__triangle-back {
|
||||||
overflow-x: hidden;
|
display: none;
|
||||||
position: fixed;
|
}
|
||||||
left: 0;
|
|
||||||
top: 4.5rem;
|
|
||||||
width: 100vw;
|
|
||||||
|
|
||||||
@include breakpoint(md) {
|
.solid-notifications__triangle-shadow {
|
||||||
border: 0;
|
display: none;
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@include breakpoint(lg) {
|
@include breakpoint(lg) {
|
||||||
|
background: white;
|
||||||
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: auto;
|
left: auto;
|
||||||
right: 0;
|
right: -2.1em;
|
||||||
top: 5.6rem;
|
top: 5em;
|
||||||
width: 300px;
|
transform: initial;
|
||||||
|
width: 0;
|
||||||
|
z-index: 4;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
margin-left: -5em;
|
||||||
|
top: 0px;
|
||||||
|
left: 50%;
|
||||||
|
border: 1em solid black;
|
||||||
|
border-color: #fff #fff transparent transparent;
|
||||||
|
transform-origin: 0 0;
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
box-shadow: 6px -6px 10px -3px rgba(92, 97, 104, 0.14);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.solid-notifications__list {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
box-shadow: 0 0 7px 0 rgba(92, 97, 104, 0.24);
|
||||||
|
max-height: calc(100vh - 50px);
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
top: 2.5em;
|
||||||
|
width: 100vw;
|
||||||
|
|
||||||
|
@include breakpoint(lg) {
|
||||||
|
max-height: calc(100vh - 93px);
|
||||||
|
position: absolute;
|
||||||
|
left: auto;
|
||||||
|
right: -2.3em;
|
||||||
|
top: 3.99em;
|
||||||
|
width: 347px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Custom scrollbar */
|
||||||
|
overflow: auto;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
-ms-overflow-style: none;
|
||||||
|
scrollbar-width: thin;
|
||||||
|
scrollbar-color: var(--color-notification-scrollbar-track) var(--color-notification-scrollbar-background);
|
||||||
|
|
||||||
|
&::-webkit-scrollbar-track {
|
||||||
|
background: var(--color-notification-scrollbar-background);
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-webkit-scrollbar-thumb {
|
||||||
|
background-color: var(--color-notification-scrollbar-track);
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-webkit-scrollbar {
|
||||||
|
width: 6px;
|
||||||
|
}
|
||||||
|
/* End of custom scrollbar */
|
||||||
|
|
||||||
|
.solid-notifications__item {
|
||||||
|
border-bottom: 1px solid var(--color-notification-item-border);
|
||||||
|
|
||||||
|
.solid-notification {
|
||||||
|
padding: 1.2rem 0 1.5rem;
|
||||||
|
|
||||||
|
.solid-notification__avatar {
|
||||||
|
align-items: center;
|
||||||
|
background: var(--color-avatar-background);
|
||||||
|
display: flex;
|
||||||
|
height: 35px;
|
||||||
|
justify-content: center;
|
||||||
|
margin-left: 1.6rem;
|
||||||
|
margin-right: 1.4rem;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 35px;
|
||||||
|
|
||||||
|
img {
|
||||||
|
background-color: var(--color-grey-10);
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
object-position: center center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
object {
|
||||||
|
height: 45%;
|
||||||
|
width: 45%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.solid-notification__content {
|
||||||
|
font-family: Open Sans, sans-serif;
|
||||||
|
|
||||||
|
.solid-notification__title {
|
||||||
|
font-size: 1.3rem;
|
||||||
|
font-weight: 600;
|
||||||
|
|
||||||
|
.solid-notification__title__side {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.solid-notification__title__icon {
|
||||||
|
font-family: simple-line-icons;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.solid-notification__summary {
|
||||||
|
color: var(--color-notification-summary);
|
||||||
|
font-size: 1.2rem;
|
||||||
|
line-height: 1.7rem;
|
||||||
|
margin: 1.1rem 0 0;
|
||||||
|
|
||||||
|
@include breakpoint(320px, 388px) {
|
||||||
|
max-width: 226px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include breakpoint(lg) {
|
||||||
|
max-width: 256px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.solid-notification__read {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ solid-dashboard section {
|
|||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
overflow-y: auto;
|
overflow-y: scroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.jsLeftMenu {
|
&.jsLeftMenu {
|
||||||
@ -279,6 +279,111 @@ h5 {
|
|||||||
width: 15vw;
|
width: 15vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.project-edit-logo {
|
||||||
|
display: flex;
|
||||||
|
height: 8.5vh;
|
||||||
|
margin-top: 20px;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
|
||||||
|
form {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
hubl-user-avatar {
|
||||||
|
width: 104px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type='submit'] {
|
||||||
|
@extend .button,
|
||||||
|
.text-bold,
|
||||||
|
.text-uppercase,
|
||||||
|
.button-primary,
|
||||||
|
.bordered;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-picture {
|
||||||
|
|
||||||
|
form {
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 2.6rem;
|
||||||
|
padding-top: 1.8rem;
|
||||||
|
|
||||||
|
@include breakpoint(lg) {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
hubl-user-avatar {
|
||||||
|
display: inline-block;
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 16.5vh;
|
||||||
|
|
||||||
|
@include breakpoint(lg) {
|
||||||
|
margin-left: 20px;
|
||||||
|
max-height: 8.5vh;
|
||||||
|
max-width: none;
|
||||||
|
width: calc(35vw - 20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
>object,
|
||||||
|
>img {
|
||||||
|
display: block;
|
||||||
|
max-height: 16.5vh !important;
|
||||||
|
|
||||||
|
@include breakpoint(lg) {
|
||||||
|
max-height: 8.5vh !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
@extend .button,
|
||||||
|
.text-bold,
|
||||||
|
.text-uppercase,
|
||||||
|
.button-primary,
|
||||||
|
.bordered;
|
||||||
|
margin: 10px 0;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
@include breakpoint(lg) {
|
||||||
|
margin: auto 0 auto 2.2rem;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.p_relative {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex_column {
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex_vertical-center {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.w90 {
|
||||||
|
|
||||||
|
@include breakpoint(sm) {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.w100 {
|
||||||
|
|
||||||
|
@include breakpoint(sm) {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.content-box {
|
.content-box {
|
||||||
@include window-style-modal();
|
@include window-style-modal();
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
@ -13,13 +13,21 @@
|
|||||||
|
|
||||||
solid-router {
|
solid-router {
|
||||||
.menu-wrapper {
|
.menu-wrapper {
|
||||||
&.is-closed {
|
.menu-icon.icon-arrow-up {
|
||||||
.sub-menu {
|
visibility: hidden;
|
||||||
display: none;
|
}
|
||||||
|
@include breakpoint(lg) {
|
||||||
|
.menu-icon.icon-arrow-up {
|
||||||
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
&.is-closed {
|
||||||
|
.sub-menu {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.menu-chevron {
|
.menu-chevron {
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -162,7 +170,7 @@
|
|||||||
width: calc(80vw - 71px);
|
width: calc(80vw - 71px);
|
||||||
display: block;
|
display: block;
|
||||||
background-color: var(--color-secondary);
|
background-color: var(--color-secondary);
|
||||||
color: var(--color-grey-6);
|
color: var(--color-white);
|
||||||
border: 1px solid var(--color-grey-4);
|
border: 1px solid var(--color-grey-4);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
@ -182,7 +190,7 @@
|
|||||||
grid-template-areas: "left middle right";
|
grid-template-areas: "left middle right";
|
||||||
|
|
||||||
>* {
|
>* {
|
||||||
color: var(--color-grey-6);
|
color: var(--color-white);
|
||||||
}
|
}
|
||||||
|
|
||||||
>[data-id="prev"] {
|
>[data-id="prev"] {
|
||||||
@ -227,7 +235,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
>div {
|
>div {
|
||||||
color: var(--color-grey-6);
|
color: var(--color-white);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
>hubl-menu-fix-url-circle>solid-display>div,
|
>hubl-menu-fix-url-circle>solid-display>div,
|
||||||
@ -292,20 +300,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Temporary fix for badges
|
|
||||||
solid-fix-badge {
|
|
||||||
display: none;
|
|
||||||
box-sizing: border-box;
|
|
||||||
font-family: sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
background-color: var(--sib-notifications-theme, gray);
|
|
||||||
color: #36383a;
|
|
||||||
border-radius: 50%;
|
|
||||||
line-height: 20px;
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
text-align: center;
|
|
||||||
font-weight: bold;
|
|
||||||
padding-bottom: 0;
|
|
||||||
}
|
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.user-thumb__admin:not(:empty) {
|
.user-thumb__admin:not(:empty) {
|
||||||
|
display: block !important;
|
||||||
@extend %tag-admin;
|
@extend %tag-admin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,3 +4,4 @@
|
|||||||
@import 'sidebar';
|
@import 'sidebar';
|
||||||
@import 'skills';
|
@import 'skills';
|
||||||
@import 'tags';
|
@import 'tags';
|
||||||
|
@import 'project-edit-picture';
|
||||||
|
75
src/styles/components/loader.scss
Normal file
75
src/styles/components/loader.scss
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
.loader {
|
||||||
|
margin: 0 auto;
|
||||||
|
position: relative;
|
||||||
|
width: 80px;
|
||||||
|
height: 20px;
|
||||||
|
|
||||||
|
&.loader-top {
|
||||||
|
top: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div {
|
||||||
|
position: absolute;
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: var(--color-menu-background);
|
||||||
|
animation-timing-function: cubic-bezier(0, 1, 1, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.loader-menu div {
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
background: var(--color-menu-text);
|
||||||
|
}
|
||||||
|
|
||||||
|
div:nth-child(1) {
|
||||||
|
left: 8px;
|
||||||
|
animation: lds-ellipsis1 0.6s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
div:nth-child(2) {
|
||||||
|
left: 8px;
|
||||||
|
animation: lds-ellipsis2 0.6s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
div:nth-child(3) {
|
||||||
|
left: 32px;
|
||||||
|
animation: lds-ellipsis2 0.6s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
div:nth-child(4) {
|
||||||
|
left: 56px;
|
||||||
|
animation: lds-ellipsis3 0.6s infinite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes lds-ellipsis1 {
|
||||||
|
0% {
|
||||||
|
transform: scale(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes lds-ellipsis3 {
|
||||||
|
0% {
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: scale(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes lds-ellipsis2 {
|
||||||
|
0% {
|
||||||
|
transform: translate(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translate(24px, 0);
|
||||||
|
}
|
||||||
|
}
|
39
src/styles/components/project-edit-picture.scss
Normal file
39
src/styles/components/project-edit-picture.scss
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
.project-edit-picture {
|
||||||
|
|
||||||
|
>div>*:not(:last-child) {
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
hubl-user-avatar {
|
||||||
|
background: transparent;
|
||||||
|
border-radius: 0;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
object, img {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
solid-ac-checker:first-of-type {
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
@include breakpoint(lg) {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
#solid-picture-remove {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: 2rem;
|
||||||
|
|
||||||
|
@include breakpoint(lg) {
|
||||||
|
margin-left: 2rem;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
solid-ac-checker:last-of-type {
|
||||||
|
align-self: flex-end;
|
||||||
|
}
|
||||||
|
}
|
@ -6,6 +6,7 @@
|
|||||||
@import 'abstracts/fonts';
|
@import 'abstracts/fonts';
|
||||||
@import 'abstracts/variables';
|
@import 'abstracts/variables';
|
||||||
@import 'abstracts/mixins';
|
@import 'abstracts/mixins';
|
||||||
|
@import 'components/loader';
|
||||||
@import 'components/icons/index';
|
@import 'components/icons/index';
|
||||||
@import 'base/main';
|
@import 'base/main';
|
||||||
@import 'base/about';
|
@import 'base/about';
|
||||||
|
@ -1,24 +1,31 @@
|
|||||||
div.content-box__info.flex
|
div.content-box__info.flex
|
||||||
solid-link(class="backlink right", next='admin-circle-list') Retour
|
solid-link(class="backlink right", next='admin-circle-list') Retour
|
||||||
|
|
||||||
h1.centered Créer un canal
|
h1.centered Créer un cercle
|
||||||
|
|
||||||
|
div#loader-circles-create.loader.loader-top
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
solid-form.form.button-register(
|
solid-form.form.button-register(
|
||||||
data-src=`${endpoints.circles || endpoints.post.circles}`
|
data-src=`${endpoints.circles || endpoints.post.circles}`
|
||||||
|
|
||||||
fields='status, name, description'
|
fields='status, name, description'
|
||||||
|
loader-id='loader-circles-create'
|
||||||
|
|
||||||
class-status='form-label is-light is-full-width color'
|
class-status='form-label is-light is-full-width color'
|
||||||
class-name='form-label is-light is-full-width input-text-like'
|
class-name='form-label is-light is-full-width input-text-like'
|
||||||
class-description='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 canal'
|
label-status='Statut du cercle'
|
||||||
label-name='Nom du canal *'
|
label-name='Nom du cercle *'
|
||||||
label-description='Sous-titre du canal *'
|
label-description='Sous-titre du cercle *'
|
||||||
|
|
||||||
widget-status='hubl-status'
|
widget-status='hubl-status'
|
||||||
|
|
||||||
next='admin-circle-list'
|
next='circle'
|
||||||
|
|
||||||
submit-button='Enregistrer'
|
submit-button='Enregistrer'
|
||||||
)
|
)
|
||||||
|
@ -31,12 +31,12 @@
|
|||||||
|
|
||||||
div.admin-header.flex
|
div.admin-header.flex
|
||||||
|
|
||||||
h3 Canaux
|
h3 Cercles
|
||||||
|
|
||||||
solid-link(
|
solid-link(
|
||||||
class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
|
class='button text-bold text-uppercase reversed button-primary bordered with-icon icon-plus'
|
||||||
next='admin-circle-create'
|
next='admin-circle-create'
|
||||||
) Créer un canal
|
) Créer un cercle
|
||||||
|
|
||||||
.table-wrapper
|
.table-wrapper
|
||||||
.table
|
.table
|
||||||
@ -56,6 +56,9 @@
|
|||||||
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}` target-src='${src}')
|
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}')
|
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src='${src}')
|
||||||
hubl-reactivity(bind-user nested-field="circles" target-src='${src}')
|
hubl-reactivity(bind-user nested-field="circles" target-src='${src}')
|
||||||
|
if (endpoints.post && endpoints.post.circles) && (endpoints.get && endpoints.get.circles)
|
||||||
|
hubl-reactivity(data-src=`${endpoints.post.circles}joinable/` target-src=`${src}`)
|
||||||
|
hubl-reactivity(data-src=`${endpoints.post.circles}` target-src=`${src}`)
|
||||||
|
|
||||||
solid-display(
|
solid-display(
|
||||||
class='table-body'
|
class='table-body'
|
||||||
@ -63,6 +66,7 @@
|
|||||||
bind-user
|
bind-user
|
||||||
nested-field='circles'
|
nested-field='circles'
|
||||||
fields='circle.name, circle.owner, leaveButton'
|
fields='circle.name, circle.owner, leaveButton'
|
||||||
|
loader-id='loader-admin-circles'
|
||||||
|
|
||||||
class-circle.name='w280 border cell-with-name'
|
class-circle.name='w280 border cell-with-name'
|
||||||
class-circle.owner='w280 border cell-with-id-card'
|
class-circle.owner='w280 border cell-with-id-card'
|
||||||
@ -89,12 +93,16 @@
|
|||||||
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}` target-src='${value}')
|
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}')
|
hubl-reactivity(data-src=`${endpoints.circles || endpoints.get.circles}joinable/` target-src='${value}')
|
||||||
hubl-reactivity(bind-user nested-field="circles" target-src='${value}')
|
hubl-reactivity(bind-user nested-field="circles" target-src='${value}')
|
||||||
|
if (endpoints.post && endpoints.post.circles) && (endpoints.get && endpoints.get.circles)
|
||||||
|
hubl-reactivity(data-src=`${endpoints.post.circles}joinable/` target-src=`${value}`)
|
||||||
|
hubl-reactivity(data-src=`${endpoints.post.circles}` target-src=`${value}`)
|
||||||
|
|
||||||
solid-display(
|
solid-display(
|
||||||
class='table-body'
|
class='table-body'
|
||||||
|
|
||||||
data-src=`${endpoints.circles || endpoints.get.circles}joinable/`
|
data-src=`${endpoints.circles || endpoints.get.circles}joinable/`
|
||||||
fields='name, owner, members'
|
fields='name, owner, members'
|
||||||
|
loader-id='loader-admin-circles'
|
||||||
|
|
||||||
class-name='w280 border cell-with-name'
|
class-name='w280 border cell-with-name'
|
||||||
class-owner='w280 border cell-with-id-card'
|
class-owner='w280 border cell-with-id-card'
|
||||||
@ -106,6 +114,11 @@
|
|||||||
order-by="name"
|
order-by="name"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
div#loader-admin-circles.loader.loader-top
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
#admin-circle-create.content-box__height(hidden)
|
#admin-circle-create.content-box__height(hidden)
|
||||||
include page-admin-circles-create.pug
|
include page-admin-circles-create.pug
|
||||||
|
@ -14,18 +14,22 @@ div.content-box__info.flex
|
|||||||
|
|
||||||
h1.centered Créer un nouveau projet
|
h1.centered Créer un nouveau projet
|
||||||
|
|
||||||
|
div#loader-projects-create.loader.loader-top
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
solid-form.form.button-register(
|
solid-form.form.button-register(
|
||||||
data-src=`${endpoints.projects || endpoints.post.projects}`
|
data-src=`${endpoints.projects || endpoints.post.projects}`
|
||||||
|
|
||||||
fields='status, line-1(customer.name, name), description, line-2(captain), logo'
|
fields='status, line-1(customer.name, name), line-2(captain)'
|
||||||
|
loader-id='loader-projects-create'
|
||||||
|
|
||||||
label-status='Statut du canal*'
|
label-status='Statut du cercle*'
|
||||||
widget-status='hubl-status'
|
widget-status='solid-form-hidden'
|
||||||
class-status='form-label is-light is-full-width'
|
class-status='form-label is-light is-full-width'
|
||||||
|
value-status="Private"
|
||||||
label-description='Description du projet'
|
|
||||||
class-description='form-label is-light is-full-width input-text-like'
|
|
||||||
widget-description='solid-form-textarea'
|
|
||||||
|
|
||||||
label-customer.name='Nom du client*'
|
label-customer.name='Nom du client*'
|
||||||
class-customer.name='form-label is-light is-half-width input-text-like'
|
class-customer.name='form-label is-light is-half-width input-text-like'
|
||||||
@ -39,12 +43,8 @@ div.content-box__info.flex
|
|||||||
widget-captain='solid-form-auto-completion'
|
widget-captain='solid-form-auto-completion'
|
||||||
|
|
||||||
class='input-text-like'
|
class='input-text-like'
|
||||||
widget-logo="solid-form-file"
|
|
||||||
label-logo="Télécharger un logo"
|
|
||||||
class-logo='select-add'
|
|
||||||
upload-url-logo=`${endpoints.uploads || endpoints.post.uploads}`
|
|
||||||
|
|
||||||
next='admin-project-list'
|
next='project'
|
||||||
|
|
||||||
submit-button='Enregistrer et ajouter des membres'
|
submit-button='Enregistrer'
|
||||||
)
|
)
|
||||||
|
@ -40,6 +40,9 @@
|
|||||||
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}` target-src='${src}')
|
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}')
|
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src='${src}')
|
||||||
hubl-reactivity(bind-user nested-field="projects" target-src='${src}')
|
hubl-reactivity(bind-user nested-field="projects" target-src='${src}')
|
||||||
|
if (endpoints.post && endpoints.post.projects) && (endpoints.get && endpoints.get.projects)
|
||||||
|
hubl-reactivity(data-src=`${endpoints.post.projects}joinable/` target-src=`${src}`)
|
||||||
|
hubl-reactivity(data-src=`${endpoints.post.projects}` target-src=`${src}`)
|
||||||
|
|
||||||
solid-widget(name='hubl-project-captain')
|
solid-widget(name='hubl-project-captain')
|
||||||
template
|
template
|
||||||
@ -79,6 +82,7 @@
|
|||||||
bind-user
|
bind-user
|
||||||
nested-field="projects"
|
nested-field="projects"
|
||||||
fields='project.name, project.members, project.captain, leaveButton'
|
fields='project.name, project.members, project.captain, leaveButton'
|
||||||
|
loader-id='loader-admin-projects'
|
||||||
|
|
||||||
class-project.name='w280 cell border cell-with-name'
|
class-project.name='w280 cell border cell-with-name'
|
||||||
class-project.members='w280 cell border cell-with-id-card'
|
class-project.members='w280 cell border cell-with-id-card'
|
||||||
@ -109,12 +113,16 @@
|
|||||||
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}` target-src='${src}')
|
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}')
|
hubl-reactivity(data-src=`${endpoints.projects || endpoints.get.projects}joinable/` target-src='${src}')
|
||||||
hubl-reactivity(bind-user nested-field="projects" target-src='${src}')
|
hubl-reactivity(bind-user nested-field="projects" target-src='${src}')
|
||||||
|
if (endpoints.post && endpoints.post.projects) && (endpoints.get && endpoints.get.projects)
|
||||||
|
hubl-reactivity(data-src=`${endpoints.post.projects}joinable/` target-src=`${value}`)
|
||||||
|
hubl-reactivity(data-src=`${endpoints.post.projects}` target-src=`${value}`)
|
||||||
|
|
||||||
solid-display(
|
solid-display(
|
||||||
class='table-body'
|
class='table-body'
|
||||||
|
|
||||||
data-src=`${endpoints.projects || endpoints.get.projects}joinable/`
|
data-src=`${endpoints.projects || endpoints.get.projects}joinable/`
|
||||||
fields='name, members, captain, joinButton'
|
fields='name, members, captain, joinButton'
|
||||||
|
loader-id='loader-admin-projects'
|
||||||
|
|
||||||
class-name='w280 cell border cell-with-name'
|
class-name='w280 cell border cell-with-name'
|
||||||
class-members='w280 cell border cell-with-id-card'
|
class-members='w280 cell border cell-with-id-card'
|
||||||
@ -130,5 +138,11 @@
|
|||||||
order-by="name"
|
order-by="name"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
div#loader-admin-projects.loader.loader-top
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
#admin-project-create(hidden)
|
#admin-project-create(hidden)
|
||||||
include page-admin-projects-create.pug
|
include page-admin-projects-create.pug
|
@ -3,10 +3,17 @@ div.content-box__info.flex
|
|||||||
|
|
||||||
h1.centered Ajouter un utilisateur à la plateforme
|
h1.centered Ajouter un utilisateur à la plateforme
|
||||||
|
|
||||||
|
div#loader-users-create.loader.loader-top
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
solid-form.form.button-register(
|
solid-form.form.button-register(
|
||||||
data-src=`${endpoints.users || endpoints.post.users}`
|
data-src=`${endpoints.users || endpoints.post.users}`
|
||||||
|
|
||||||
fields='line-1(first_name, last_name), line-2(username, email), line-3(password)'
|
fields='line-1(first_name, last_name), line-2(username, email), line-3(password)'
|
||||||
|
loader-id='loader-users-create'
|
||||||
|
|
||||||
class-first_name='form-label is-light is-half-width input-text-like'
|
class-first_name='form-label is-light is-half-width input-text-like'
|
||||||
class-last_name='form-label is-light is-half-width input-text-like'
|
class-last_name='form-label is-light is-half-width input-text-like'
|
||||||
|
@ -3,24 +3,31 @@ div.content-box__info.flex
|
|||||||
|
|
||||||
h1.centered
|
h1.centered
|
||||||
span Modifier un utilisateur
|
span Modifier un utilisateur
|
||||||
|
|
||||||
|
div#loader-users-edit.loader.loader-top
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
solid-display(
|
solid-display(
|
||||||
bind-resources=''
|
bind-resources=''
|
||||||
fields='name'
|
fields='name'
|
||||||
|
loader-id='loader-users-edit'
|
||||||
)
|
)
|
||||||
|
|
||||||
solid-form.form.button-register(
|
solid-form.form.button-register(
|
||||||
bind-resources=''
|
bind-resources=''
|
||||||
|
|
||||||
fields='line-1(first_name, last_name), line-2(username, email)'
|
fields='line-1(first_name, last_name), line-2(email)'
|
||||||
|
loader-id='loader-users-edit'
|
||||||
|
|
||||||
class-first_name='form-label is-light is-half-width input-text-like'
|
class-first_name='form-label is-light is-half-width input-text-like'
|
||||||
class-last_name='form-label is-light is-half-width input-text-like'
|
class-last_name='form-label is-light is-half-width input-text-like'
|
||||||
class-username='form-label is-light is-half-width input-text-like'
|
class-email='form-label is-light is-full-width input-text-like'
|
||||||
class-email='form-label is-light is-half-width input-text-like'
|
|
||||||
|
|
||||||
label-first_name='Prénom *'
|
label-first_name='Prénom *'
|
||||||
label-last_name='Nom *'
|
label-last_name='Nom *'
|
||||||
label-username='Nom d\'utilisateur *'
|
|
||||||
label-email='E-mail *'
|
label-email='E-mail *'
|
||||||
|
|
||||||
next='admin-user-list'
|
next='admin-user-list'
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
class='table-body'
|
class='table-body'
|
||||||
data-src=`${endpoints.users || endpoints.get.users}`
|
data-src=`${endpoints.users || endpoints.get.users}`
|
||||||
fields='cell-1(user-thumb(account.picture, sup(name), sub(username))), actions'
|
fields='cell-1(user-thumb(account.picture, sup(name), sub(username))), actions'
|
||||||
|
loader-id='loader-admin-users'
|
||||||
|
|
||||||
class-account.picture='avatar user-thumb__picture'
|
class-account.picture='avatar user-thumb__picture'
|
||||||
class-name='user-thumb__name'
|
class-name='user-thumb__name'
|
||||||
@ -53,6 +54,11 @@
|
|||||||
order-by='username'
|
order-by='username'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
div#loader-admin-users.loader.loader-top
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
#admin-users-create.content-box__height(hidden)
|
#admin-users-create.content-box__height(hidden)
|
||||||
include page-admin-users-create.pug
|
include page-admin-users-create.pug
|
||||||
|
@ -44,7 +44,13 @@ div.content-box__info
|
|||||||
solid-link(class="backlink right", bind-resources, next='circle-profile') Retour
|
solid-link(class="backlink right", bind-resources, next='circle-profile') Retour
|
||||||
|
|
||||||
solid-ac-checker(permission='acl:Write', bind-resources)
|
solid-ac-checker(permission='acl:Write', bind-resources)
|
||||||
h1 Modifie ton canal
|
h1 Modifie ton cercle
|
||||||
|
|
||||||
|
div#loader-circle-edit.loader.loader-top
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
solid-form.form.button-register(
|
solid-form.form.button-register(
|
||||||
bind-resources
|
bind-resources
|
||||||
@ -52,12 +58,12 @@ div.content-box__info
|
|||||||
fields='status, line-1(name, owner), description'
|
fields='status, line-1(name, owner), description'
|
||||||
range-owner=`${endpoints.users || endpoints.get.users}`
|
range-owner=`${endpoints.users || endpoints.get.users}`
|
||||||
|
|
||||||
label-status='Statut du canal'
|
label-status='Statut du cercle'
|
||||||
widget-status='hubl-status'
|
widget-status='hubl-status'
|
||||||
|
|
||||||
label-name='Nom du canal'
|
label-name='Nom du cercle'
|
||||||
label-owner='Administrateur ou administratrice'
|
label-owner='Administrateur ou administratrice'
|
||||||
label-description='Sous-titre du canal *'
|
label-description='Sous-titre du cercle *'
|
||||||
|
|
||||||
class-name='form-label is-light is-half-width input-text-like'
|
class-name='form-label is-light is-half-width input-text-like'
|
||||||
class-owner='form-label is-light is-half-width member-select color'
|
class-owner='form-label is-light is-half-width member-select color'
|
||||||
@ -99,6 +105,7 @@ div.content-box__info
|
|||||||
class='table-body'
|
class='table-body'
|
||||||
bind-resources
|
bind-resources
|
||||||
fields='members'
|
fields='members'
|
||||||
|
loader-id='loader-circle-edit'
|
||||||
|
|
||||||
multiple-members=''
|
multiple-members=''
|
||||||
widget-members='hubl-team-template-edit'
|
widget-members='hubl-team-template-edit'
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#circle-left(hidden)
|
#circle-left(hidden)
|
||||||
div.content-box__info.flex(style="padding: 15px")
|
div.content-box__info.flex(style="padding: 15px")
|
||||||
|
|
||||||
p Tu as quitté ce canal.
|
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 Pour le rejoindre à nouveau, rends-toi dans le panneau <solid-link next="admin-circle-list">administration</solid-link> ou contacte un administrateur.
|
||||||
|
10
src/views/circle/page-circle-notifications.pug
Normal file
10
src/views/circle/page-circle-notifications.pug
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
solid-notifications-template(data-rdf-type='hd:circle')
|
||||||
|
template
|
||||||
|
.solid-notification__avatar
|
||||||
|
| ${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__icon ${(await object.status) == 'Public' ? '#' : ''}
|
||||||
|
| ${await object.name}
|
||||||
|
p.solid-notification__summary ${summary}
|
@ -7,10 +7,17 @@ solid-router(default-route='circle-profile', hidden)
|
|||||||
|
|
||||||
.content-box__info.flex
|
.content-box__info.flex
|
||||||
|
|
||||||
|
div#loader-circle-profile.loader
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
.flex.space-between.with-padding.mobile-vertical-align
|
.flex.space-between.with-padding.mobile-vertical-align
|
||||||
solid-display.mobile-margin__bottom(
|
solid-display.mobile-margin__bottom(
|
||||||
bind-resources
|
bind-resources
|
||||||
fields='creationDateSet(title, creationDate)'
|
fields='creationDateSet(title, creationDate)'
|
||||||
|
loader-id='loader-circle-profile'
|
||||||
|
|
||||||
class-title='word-spacing-right'
|
class-title='word-spacing-right'
|
||||||
|
|
||||||
@ -19,7 +26,10 @@ solid-router(default-route='circle-profile', hidden)
|
|||||||
widget-creationDate='solid-display-date'
|
widget-creationDate='solid-display-date'
|
||||||
)
|
)
|
||||||
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
|
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
|
||||||
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-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-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
|
||||||
|
|
||||||
|
|
||||||
div.flex.desktop-button__end
|
div.flex.desktop-button__end
|
||||||
@ -27,16 +37,18 @@ solid-router(default-route='circle-profile', hidden)
|
|||||||
solid-delete(
|
solid-delete(
|
||||||
class='button mobile-full-width text-bold text-uppercase button-primary bordered with-icon icon-trash'
|
class='button mobile-full-width text-bold text-uppercase button-primary bordered with-icon icon-trash'
|
||||||
bind-resources
|
bind-resources
|
||||||
data-label='Supprimer le canal'
|
data-label='Supprimer le cercle'
|
||||||
)
|
)
|
||||||
|
|
||||||
solid-widget(name='hubl-circle-leave-button')
|
solid-widget(name='hubl-circle-leave-button')
|
||||||
template
|
template
|
||||||
solid-delete(
|
solid-ac-checker(no-permission='acl:Delete', data-src="${src}", nested-field="circle")
|
||||||
class='button mobile-full-width desktop-btn-margin__left text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
|
solid-delete(
|
||||||
data-src="${src}"
|
class='button mobile-full-width desktop-btn-margin__left text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
|
||||||
data-label='Quitter le canal'
|
data-src="${src}"
|
||||||
)
|
data-label='Quitter le cercle'
|
||||||
|
next='circle-left'
|
||||||
|
)
|
||||||
|
|
||||||
solid-widget(name='hubl-circle-join-button')
|
solid-widget(name='hubl-circle-join-button')
|
||||||
template
|
template
|
||||||
@ -45,14 +57,11 @@ solid-router(default-route='circle-profile', hidden)
|
|||||||
data-src=''
|
data-src=''
|
||||||
nested-field='members'
|
nested-field='members'
|
||||||
|
|
||||||
fields='user.@id'
|
fields='user.username'
|
||||||
label-user.@id=''
|
value-user.username='hubl-workaround-493'
|
||||||
value-user.@id=''
|
widget-user.username='solid-form-hidden'
|
||||||
widget-user.@id='solid-form-hidden'
|
|
||||||
|
|
||||||
hubl-inherit-bind-user2input="input[name='user.@id']"
|
submit-button='Rejoindre le cercle'
|
||||||
|
|
||||||
submit-button='Rejoindre le canal'
|
|
||||||
)
|
)
|
||||||
|
|
||||||
solid-display(
|
solid-display(
|
||||||
@ -74,12 +83,11 @@ solid-router(default-route='circle-profile', hidden)
|
|||||||
solid-display.block(
|
solid-display.block(
|
||||||
bind-resources
|
bind-resources
|
||||||
fields='members'
|
fields='members'
|
||||||
|
loader-id='loader-circle-profile'
|
||||||
|
|
||||||
multiple-members=''
|
multiple-members=''
|
||||||
widget-members='hubl-circle-team-template'
|
widget-members='hubl-circle-team-template'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#circle-edit.content-box__height(hidden)
|
#circle-edit.content-box__height(hidden)
|
||||||
include page-circle-edit.pug
|
include page-circle-edit.pug
|
||||||
|
@ -4,57 +4,48 @@ div.content-box__info
|
|||||||
|
|
||||||
solid-link(class='backlink right', bind-resources, next='project-profile') Retour
|
solid-link(class='backlink right', bind-resources, next='project-profile') Retour
|
||||||
|
|
||||||
h1 Modifie ton projet
|
solid-ac-checker(permission='acl:Write', bind-resources)
|
||||||
|
h1 Modifie ton projet
|
||||||
|
|
||||||
solid-form.form.button-register(
|
div#loader-project-edit.loader.loader-top
|
||||||
bind-resources
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
fields='status, line-1(customer.name, name), description'
|
solid-form.form.button-register(
|
||||||
|
bind-resources
|
||||||
|
|
||||||
label-status='Statut du canal*'
|
fields='line-1(customer.name, name)'
|
||||||
widget-status='hubl-status'
|
|
||||||
class-status='form-label is-light is-full-width member-select color'
|
|
||||||
|
|
||||||
label-name='Nom du projet*'
|
|
||||||
class-name='form-label is-light is-half-width input-text-like'
|
|
||||||
|
|
||||||
label-customer.name='Nom du client*'
|
label-name='Nom du projet*'
|
||||||
class-customer.name='form-label is-light is-half-width input-text-like'
|
class-name='form-label is-light is-half-width input-text-like'
|
||||||
|
|
||||||
label-description='Description du projet'
|
label-customer.name='Nom du client*'
|
||||||
class-description='form-label is-light is-full-width input-text-like'
|
class-customer.name='form-label is-light is-half-width input-text-like'
|
||||||
widget-description='solid-form-textarea'
|
|
||||||
|
|
||||||
partial=""
|
partial=""
|
||||||
|
|
||||||
submit-button='Enregistrer'
|
submit-button='Enregistrer'
|
||||||
next='project-information'
|
next='project-information'
|
||||||
)
|
)
|
||||||
|
|
||||||
h2 Photo du projet
|
|
||||||
|
|
||||||
solid-form.form-picture(
|
|
||||||
bind-resources
|
|
||||||
fields='customer.logo'
|
|
||||||
widget-customer.logo="hubl-user-avatar"
|
|
||||||
submit-button='Edit'
|
|
||||||
next='project-picture'
|
|
||||||
)
|
|
||||||
|
|
||||||
h2 Liste des membres :
|
h2 Liste des membres :
|
||||||
|
|
||||||
solid-form.block.select-add(
|
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
|
||||||
bind-resources
|
solid-form.block.select-add(
|
||||||
nested-field='members'
|
bind-resources
|
||||||
fields='user'
|
nested-field='members'
|
||||||
range-user=`${endpoints.users || endpoints.get.users}`
|
fields='user'
|
||||||
|
range-user=`${endpoints.users || endpoints.get.users}`
|
||||||
|
|
||||||
class-user='team form-label is-light'
|
class-user='team form-label is-light'
|
||||||
label-user=''
|
label-user=''
|
||||||
widget-user='solid-form-auto-completion'
|
widget-user='solid-form-auto-completion'
|
||||||
|
|
||||||
submit-button='Ajouter un membre'
|
submit-button='Ajouter un membre'
|
||||||
)
|
)
|
||||||
|
|
||||||
.table-wrapper
|
.table-wrapper
|
||||||
.table
|
.table
|
||||||
@ -67,6 +58,7 @@ div.content-box__info
|
|||||||
class='table-body'
|
class='table-body'
|
||||||
bind-resources
|
bind-resources
|
||||||
fields='members'
|
fields='members'
|
||||||
|
loader-id='loader-project-edit'
|
||||||
|
|
||||||
multiple-members=''
|
multiple-members=''
|
||||||
widget-members='hubl-team-template-edit'
|
widget-members='hubl-team-template-edit'
|
||||||
|
@ -2,4 +2,4 @@
|
|||||||
div.content-box__info.flex(style="padding: 15px")
|
div.content-box__info.flex(style="padding: 15px")
|
||||||
|
|
||||||
p Tu as quitté ce projet.
|
p Tu as quitté ce projet.
|
||||||
p Ceci est un groupe privé. Pour le rejoindre, rends-toi dans le panneau <solid-link next="admin-project-list">administration</solid-link> et demande une invitation.
|
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.
|
||||||
|
@ -4,7 +4,7 @@ div.content-box__info
|
|||||||
|
|
||||||
h1 Modifier l'image du projet
|
h1 Modifier l'image du projet
|
||||||
|
|
||||||
solid-picture(
|
solid-picture.project-edit-picture(
|
||||||
bind-resources
|
bind-resources
|
||||||
upload-src=`${endpoints.uploads || endpoints.post.uploads}`
|
upload-src=`${endpoints.uploads || endpoints.post.uploads}`
|
||||||
upload-id="solid-project-edit-picture"
|
upload-id="solid-project-edit-picture"
|
||||||
|
@ -4,15 +4,21 @@ solid-router(default-route='project-profile', hidden)
|
|||||||
|
|
||||||
#project-profile(hidden)
|
#project-profile(hidden)
|
||||||
include ../../templates/hubl-captain.pug
|
include ../../templates/hubl-captain.pug
|
||||||
include ../../templates/hubl-circle-team.pug
|
|
||||||
include ../../templates/hubl-project-team.pug
|
include ../../templates/hubl-project-team.pug
|
||||||
|
|
||||||
.content-box__info.flex
|
.content-box__info.flex
|
||||||
|
|
||||||
|
div#loader-project-profile.loader
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
div
|
||||||
|
|
||||||
.flex.space-between.with-padding.mobile-vertical-align
|
.flex.space-between.with-padding.mobile-vertical-align
|
||||||
solid-display.mobile-margin__bottom(
|
solid-display.mobile-margin__bottom(
|
||||||
bind-resources
|
bind-resources
|
||||||
fields='creationDateSet(title, creationDate)'
|
fields='creationDateSet(title, creationDate)'
|
||||||
|
loader-id='loader-project-profile'
|
||||||
|
|
||||||
class-title='word-spacing-right'
|
class-title='word-spacing-right'
|
||||||
|
|
||||||
@ -21,23 +27,43 @@ solid-router(default-route='project-profile', hidden)
|
|||||||
widget-creationDate='solid-display-date'
|
widget-creationDate='solid-display-date'
|
||||||
)
|
)
|
||||||
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
|
solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members')
|
||||||
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-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-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-display(
|
div.flex.desktop-button__end
|
||||||
class='flex desktop-button__end'
|
solid-ac-checker(permission='acl:Delete', bind-resources)
|
||||||
bind-resources
|
solid-delete(
|
||||||
nested-field='members'
|
class='button mobile-full-width text-bold text-uppercase button-primary bordered with-icon icon-trash'
|
||||||
fields='relation'
|
bind-resources
|
||||||
|
data-label='Supprimer le projet'
|
||||||
|
)
|
||||||
|
|
||||||
action-relation='relation'
|
solid-widget(name='hubl-project-leave-button')
|
||||||
widget-relation='hubl-project-leave-button'
|
template
|
||||||
|
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'
|
||||||
|
next='project-left'
|
||||||
|
)
|
||||||
|
|
||||||
search-fields='user'
|
solid-ac-checker(no-permission='acl:Delete', bind-resources)
|
||||||
search-widget-user='solid-form-hidden'
|
solid-display(
|
||||||
search-value-user=""
|
bind-resources
|
||||||
|
nested-field='members'
|
||||||
|
fields='relation'
|
||||||
|
|
||||||
hubl-inherit-user-id="search-value-user"
|
action-relation='relation'
|
||||||
)
|
widget-relation='hubl-project-leave-button'
|
||||||
|
|
||||||
|
search-fields='user'
|
||||||
|
search-widget-user='solid-form-hidden'
|
||||||
|
search-value-user=""
|
||||||
|
|
||||||
|
hubl-inherit-user-id="search-value-user"
|
||||||
|
)
|
||||||
|
|
||||||
.flex.space-between
|
.flex.space-between
|
||||||
solid-display(
|
solid-display(
|
||||||
@ -48,13 +74,8 @@ solid-router(default-route='project-profile', hidden)
|
|||||||
class-label-captain='h2-like'
|
class-label-captain='h2-like'
|
||||||
widget-captain='hubl-captain'
|
widget-captain='hubl-captain'
|
||||||
)
|
)
|
||||||
solid-display(
|
|
||||||
class='customer-logo'
|
|
||||||
bind-resources
|
|
||||||
fields='customer.logo'
|
|
||||||
|
|
||||||
widget-customer.logo='solid-display-img'
|
br
|
||||||
)
|
|
||||||
|
|
||||||
h2 Equipe :
|
h2 Equipe :
|
||||||
|
|
||||||
@ -66,14 +87,5 @@ solid-router(default-route='project-profile', hidden)
|
|||||||
widget-members='hubl-project-team'
|
widget-members='hubl-project-team'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
solid-widget(name='hubl-project-leave-button')
|
|
||||||
template
|
|
||||||
solid-delete(
|
|
||||||
class='button desktop-btn-margin__left text-bold text-uppercase reversed button-secondary bordered with-icon icon-close'
|
|
||||||
data-src="${src}"
|
|
||||||
data-label='Quitter le groupe'
|
|
||||||
)
|
|
||||||
|
|
||||||
#project-edit.content-box__height(hidden)
|
#project-edit.content-box__height(hidden)
|
||||||
include page-project-edit.pug
|
include page-project-edit.pug
|
||||||
|
8
src/views/user/page-user-notifications.pug
Normal file
8
src/views/user/page-user-notifications.pug
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
solid-notifications-template(data-rdf-type='foaf:user')
|
||||||
|
template
|
||||||
|
.solid-notification__avatar
|
||||||
|
| ${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é
|
||||||
|
p.solid-notification__summary ${summary}
|
Loading…
Reference in New Issue
Block a user