major: flatten the project

This commit is contained in:
Jean-Baptiste Pasquier
2020-11-26 23:21:55 +01:00
parent ebe46c6b6f
commit dee070596a
66 changed files with 11228 additions and 9483 deletions

10
src/context.pug Normal file
View File

@ -0,0 +1,10 @@
//- Context - Fix for default context
script(data-default-context, type="application/ld+json")
| {
| "inbox": "http://happy-dev.fr/owl/#inbox",
| "object": "http://happy-dev.fr/owl/#object",
| "author": "http://happy-dev.fr/owl/#author",
| "account": "http://happy-dev.fr/owl/#account",
| "jabberID": "foaf:jabberID",
| "picture": "foaf:depiction"
| }

View File

@ -1,10 +1,3 @@
script(src="https://browser.sentry-cdn.com/5.25.0/bundle.tracing.min.js" defer)
script(type="module" src="/components/sentry.js" defer)
script(type="module" src="/components/hubl-search-users.js" defer)
script(type="module" src="/components/hubl-status.js" defer)
script(type="module" src="/components/hubl-reactivity.js" defer)
script(type="module" src="https://cdn.skypack.dev/@startinblox/core@0.13" defer)
//- script(type="module" src="/lib/sib-core/dist/index.js" defer)
@ -17,54 +10,34 @@ script(type="module" src="https://cdn.skypack.dev/@startinblox/router@0.11" defe
script(type="module" src="https://cdn.skypack.dev/@startinblox/component-notifications@0.8" defer)
//- script(type="module" src="/lib/sib-notifications/index.js" defer)
//- DISABLED - please migrate to dev.skypack.dev + upgrade to core@0.13
//- if (endpoints.events || (endpoints.get && endpoints.get.events)) && (endpoints.typeevents || (endpoints.get && endpoints.get.typeevents))
//- script(type="module" src="https://cdn.skypack.dev/@startinblox/component-event@1.2" defer)
//- script(type="module" src="/lib/sib-event-component/sib-event.js" defer)
if endpoints.get
//- DISABLED - please migrate to dev.skypack.dev + upgrade to core@0.13
//- if endpoints.get.events && endpoints.get.typeevents
//- script(type="module" src="https://cdn.skypack.dev/@startinblox/component-event@1.2" defer)
//- script(type="module" src="/lib/sib-event-component/sib-event.js" defer)
//- DISABLED - please migrate to dev.skypack.dev + upgrade to core@0.13
//- if (endpoints.resources || (endpoints.get && endpoints.get.resources)) && (endpoints.resourceskeywords || (endpoints.get && endpoints.get.resourceskeywords)) && (endpoints.resourcestypes || (endpoints.get && endpoints.get.resourcestypes))
//- script(type="module" src="https://cdn.skypack.dev/@startinblox/component-resource@1.0" defer)
//- script(type="module" src="/lib/sib-resource/sib-resource.js" defer)
//- DISABLED - please migrate to dev.skypack.dev + upgrade to core@0.13
//- if endpoints.get.resources && endpoints.get.resourceskeywords && endpoints.get.resourcestypes
//- script(type="module" src="https://cdn.skypack.dev/@startinblox/component-resource@1.0" defer)
//- script(type="module" src="/lib/sib-resource/sib-resource.js" defer)
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
script(type="module" src="https://cdn.skypack.dev/@startinblox/component-job-board@1.2" defer)
//- script(type="module" src="/lib/solid-job-board/dist/index.js" defer)
if endpoints.get.joboffers
script(type="module" src="https://cdn.skypack.dev/@startinblox/component-job-board@1.2" 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://cdn.skypack.dev/@startinblox/component-directory@1.2" defer)
//- script(type="module" src="/lib/solid-directory/dist/index.js" defer)
if endpoints.get.uploads && endpoints.get.skills && endpoints.get.users
script(type="module" src="https://cdn.skypack.dev/@startinblox/component-directory@1.2" defer)
//- script(type="module" src="/lib/solid-directory/dist/index.js" defer)
if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
script(type="module" src="https://cdn.skypack.dev/@startinblox/component-dashboard@0.6" defer)
//- script(type="module" src="/lib/solid-dashboard/dist/index.js" defer)
if endpoints.get.dashboards
script(type="module" src="https://cdn.skypack.dev/@startinblox/component-dashboard@0.6" defer)
//- script(type="module" src="/lib/solid-dashboard/dist/index.js" defer)
if endpoints.users || (endpoints.get && endpoints.get.users)
script(type="module" src="https://cdn.skypack.dev/@startinblox/component-chat@1.4" defer)
//- script(type="module" src="/lib/solid-xmpp-chat/dist/index.js" defer)
if endpoints.get.users
script(type="module" src="https://cdn.skypack.dev/@startinblox/component-chat@1.4" defer)
//- script(type="module" src="/lib/solid-xmpp-chat/dist/index.js" defer)
//- DISABLED - please migrate to dev.skypack.dev + upgrade to core@0.13
//- if endpoints.polls || (endpoints.get && endpoints.get.polls)
//- script(type="module" src="https://cdn.skypack.dev/@startinblox/component-poll@1.0" defer)
//- script(type="module" src="/lib/sib-polls-component/index.js" defer)
//- swal2 does not work with skypack
script(src="https://cdn.jsdelivr.net/npm/sweetalert2@10")
script(src="/scripts/index.js" defer)
//- Stylesheets
link(rel='stylesheet', href='/styles/index.css')
link(rel='stylesheet', href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,400i,600,700&subset=latin-ext')
link(rel='stylesheet', href='https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i')
//- Context - Fix for LDFlex
script(data-default-context, type="application/ld+json")
| {
| "inbox": "http://happy-dev.fr/owl/#inbox",
| "object": "http://happy-dev.fr/owl/#object",
| "author": "http://happy-dev.fr/owl/#author",
| "account": "http://happy-dev.fr/owl/#account",
| "jabberID": "foaf:jabberID",
| "picture": "foaf:depiction"
| }
//- DISABLED - please migrate to dev.skypack.dev + upgrade to core@0.13
//- if endpoints.get.polls
//- script(type="module" src="https://cdn.skypack.dev/@startinblox/component-poll@1.0" defer)
//- script(type="module" src="/lib/sib-polls-component/index.js" defer)

View File

@ -1,5 +0,0 @@
-
var __env = locals[process.env.ENV]
for(k in __env){
eval(`var ${k} = __env[${JSON.stringify(k)}]`);
}

2
src/index.js Normal file
View File

@ -0,0 +1,2 @@
//- Automatically import every scripts
import './scripts/**/*.js';

View File

@ -1,107 +1,134 @@
include get_config.pug
doctype html
html(lang="en")
head
meta(charset="UTF-8")
title #{clientName || "My Personal Hubl"}
meta(name="viewport", content="width=device-width, initial-scale=1.0")
meta(http-equiv="X-UA-Compatible", content="ie=edge")
if clientFavicon
link(rel="icon" type="image/png" href=`${clientFavicon}`)
else
link(rel="icon" type="image/webp" href="/images/favicon.webp")
include dependencies.pug
link(rel="icon" type="image/webp" href="./images/favicon.webp")
link(rel="preconnect" href="https://fonts.gstatic.com")
link(rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans&display=swap")
link(rel='stylesheet', href='/styles/index.scss')
if clientCSS
link(rel='stylesheet', href=`${clientCSS}`)
link(rel="manifest" href="/manifest.webmanifest")
script(src="https://browser.sentry-cdn.com/5.25.0/bundle.tracing.min.js" defer)
script(type="module" src="/components/sentry.js" defer)
script(type="module" src="/components/hubl-search-users.js" defer)
script(type="module" src="/components/hubl-status.js" defer)
script(type="module" src="/components/hubl-reactivity.js" defer)
include dependencies.pug
include context.pug
//- swal2 does not work with skypack
script(src="https://cdn.jsdelivr.net/npm/sweetalert2@10" defer)
script(src="index.js" defer)
body
if endpoints.get && endpoints.post
.wrapper
include views/partials/notifications.pug
include views/partials/widgets.pug
header#header.header.is-spaced(role='banner')
include header.pug
.wrapper
nav#main__menu.left-menu.jsLeftMenu
include menu-left.pug
header#header.header.is-spaced(role='banner')
include views/partials/header.pug
main#viewport.content.notLoggedIn
nav#main__menu.left-menu.jsLeftMenu
include views/partials/menu-left.pug
if endpoints.dashboards || (endpoints.get && endpoints.get.dashboards)
#dashboard(hidden, data-view="dashboard").no-sidebar.with-padding
include page-dashboard.pug
main#viewport.content.notLoggedIn
if publicDirectory && (endpoints.users || (endpoints.get && endpoints.get.users))
#members(hidden, data-view="members").no-sidebar.with-padding
include page-directory.pug
if endpoints.get.dashboards
#dashboard(hidden, data-view="dashboard").no-sidebar.with-padding
include views/page-dashboard.pug
if endpoints.joboffers || (endpoints.get && endpoints.get.joboffers)
#job-offers(hidden, data-view="job-offers").no-sidebar.with-padding
if (endpoints.post && endpoints.post.joboffers) && (endpoints.get && endpoints.get.joboffers)
if publicDirectory && endpoints.get.users
#members(hidden, data-view="members").no-sidebar.with-padding
include views/page-directory.pug
if endpoints.get.joboffers
#job-offers(hidden, data-view="job-offers").no-sidebar.with-padding
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}expired/`)
hubl-reactivity(data-src=`${endpoints.joboffers || endpoints.get.joboffers}expired/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
hubl-reactivity(bind-user nested-field="joboffers" target-src=`${endpoints.joboffers || endpoints.get.joboffers}expired/`)
hubl-reactivity(bind-user nested-field="joboffers" target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
hubl-reactivity(bind-user nested-field="joboffers" target-src=`${endpoints.joboffers || endpoints.get.joboffers}current/`)
include page-job-offers.pug
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}expired/` target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
hubl-reactivity(bind-user nested-field="joboffers" target-src=`${endpoints.joboffers || endpoints.get.joboffers}expired/`)
hubl-reactivity(bind-user nested-field="joboffers" target-src=`${endpoints.joboffers || endpoints.get.joboffers}`)
hubl-reactivity(bind-user nested-field="joboffers" target-src=`${endpoints.joboffers || endpoints.get.joboffers}current/`)
include views/page-job-offers.pug
if endpoints.projects || (endpoints.get && endpoints.get.projects)
#project(hidden, data-view="project").with-sidebar
if (endpoints.post && endpoints.post.projects) && (endpoints.get && endpoints.get.projects)
if endpoints.get.projects
#project(hidden, data-view="project").with-sidebar
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(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/`)
include page-project.pug
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}joinable/`)
include views/page-project.pug
if endpoints.circles || (endpoints.get && endpoints.get.circles)
#circle(hidden, data-view="circle").with-sidebar
if (endpoints.post && endpoints.post.circles) && (endpoints.get && endpoints.get.circles)
if endpoints.get.circles
#circle(hidden, data-view="circle").with-sidebar
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(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/`)
include page-circle.pug
if endpoints.users || (endpoints.get && endpoints.get.users)
#messages(hidden, data-view="messages").with-sidebar
include page-messages.pug
if endpoints.polls || (endpoints.get && endpoints.get.polls)
#polls(hidden, data-view="polls").with-sidebar
include page-polls.pug
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}joinable/`)
include views/page-circle.pug
if endpoints.get.users
#messages(hidden, data-view="messages").with-sidebar
include views/page-messages.pug
if endpoints.get.polls
#polls(hidden, data-view="polls").with-sidebar
include views/page-polls.pug
if endpoints.events || (endpoints.get && endpoints.get.events)
#events(hidden, data-view="events")
include page-events.pug
if endpoints.get.events
#events(hidden, data-view="events")
include views/page-events.pug
if endpoints.resources || (endpoints.get && endpoints.get.resources)
#resources(hidden, data-view="resources")
include page-resources.pug
if endpoints.get.resources
#resources(hidden, data-view="resources")
include views/page-resources.pug
#admin(hidden, data-view="admin").with-sidebar
include page-admin.pug
#admin(hidden, data-view="admin").with-sidebar
include views/page-admin.pug
#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, data-view="profile").no-sidebar
include page-profile.pug
if analytics
each provider in analytics
if provider.type && provider.url && provider.url
solid-analytics(
type=`${provider.type}`
url=`${provider.url}`
id=`${provider.id}`
)
#about(data-view="about").no-sidebar.with-padding
include views/page-about.pug
if endpoints.get.skills && endpoints.post.uploads && endpoints.post.users
#profile(hidden, data-view="profile").no-sidebar
include views/page-profile.pug
if analytics
each provider in analytics
if provider.type && provider.url && provider.url
solid-analytics(
type=`${provider.type}`
url=`${provider.url}`
id=`${provider.id}`
)
else
h1(style='color:red') Invalid config.json (missing `endpoints.get` or `endpoints.post`)

5
src/pug.config.js Normal file
View File

@ -0,0 +1,5 @@
const config = require("../config.json");
module.exports = {
locals: config
};

View File

@ -19,12 +19,12 @@ solid-form {
}
.button-register>form>input[type=submit] {
@extend .button,
.text-bold,
.text-uppercase,
.reversed,
.button-secondary,
.bordered;
// @extend .button; // Can't extend .button, does not exists here.
@extend .text-bold;
@extend .text-uppercase;
@extend .reversed;
@extend .button-secondary;
@extend .bordered;
height: auto;
position: fixed;
bottom: 1em;
@ -100,37 +100,6 @@ textarea {
height: 100px;
resize: vertical;
}
.content-box {
&.with-form {
/*solid-set-default:not([name='user-thumb']) {
clear: both;
display: flex!important;
flex-wrap: wrap;
max-width: 100%;
solid-form-label-text {
float: left;
width: 50%;
}
}*/
}
}
/*solid-form[set-user-id-select] {
input[type="submit"] {
margin-left: 0;
margin-top: 0;
}
select {
display: none;
}
}*/
/* WIDGETS SIB (let in .content-box to override default styles) */

View File

@ -1,28 +1,25 @@
@charset "UTF-8";
@import '../../node_modules/include-media/dist/include-media';
@import '../../node_modules/normalize.css/normalize';
@import 'normalize.css';
@import 'abstracts/fonts';
@import 'abstracts/variables';
@import 'abstracts/mixins';
@import 'components/loader';
@import 'components/icons/index';
@import 'components/icons';
@import 'base/main';
@import 'base/about';
#viewport {
display: flex;
flex: 1;
/*height: auto;
min-height: 100vh;*/
overflow-y: auto;
@import 'components/index';
@import 'layout/members/index';
@import 'layout/job-offers/index';
@import 'layout/user/index';
@import 'layout/events/index';
@import 'layout/resources/index';
@import 'layout/dashboard/index';
@import 'layout/polls/index';
@import 'components';
@import 'layout/members';
@import 'layout/job-offers';
@import 'layout/user';
@import 'layout/events';
@import 'layout/resources';
@import 'layout/dashboard';
@import 'layout/polls';
}

View File

@ -1,16 +0,0 @@
include hubl-user-avatar.pug
solid-widget(name='hubl-captain')
template
solid-display.user-thumb(
data-src="${await value}"
fields='account.picture, sup(name), sub(is_lead)'
class-account.picture='avatar user-thumb__picture'
class-name='user-thumb__name'
class-is_lead='user-thumb__lead'
widget-account.picture='hubl-user-avatar'
value-is_lead=''
data-trans='value-is_lead=template-captain.isLead'
)

View File

@ -1,2 +0,0 @@
solid-widget(name='hubl-user-avatar')
template ${await value ? `<img src="${await value}" style="max-width:100%; max-height: 100%;" />` : `<object type="image/svg+xml" data="/images/alien.svg"></object>`}

View File

@ -1,13 +1,13 @@
.views-container.sidebar-is-closed
if endpoints.circles || (endpoints.get && endpoints.get.circles)
#admin-circles(hidden, data-view="admin-circles")
include views/admin/page-admin-circles.pug
include partials/admin/page-admin-circles.pug
if endpoints.projects || (endpoints.get && endpoints.get.projects)
#admin-projects(hidden, data-view="admin-projects")
include views/admin/page-admin-projects.pug
include partials/admin/page-admin-projects.pug
if (endpoints.users || (endpoints.get && endpoints.get.users))
#admin-communities(hidden, data-view="admin-communities")
include views/admin/page-admin-communities.pug
include partials/admin/page-admin-communities.pug
nav.jsRightMenu(role='navigation')
solid-router(default-route='admin-circles')
ul

View File

@ -13,15 +13,15 @@
div.content-box__height
solid-ac-checker(permission='acl:Read', bind-resources)
#circle-chat(hidden, data-view="circle-chat")
include views/circle/page-circle-chat.pug
include partials/circle/page-circle-chat.pug
#circle-information.content-box__height(hidden, data-view="circle-information")
include views/circle/page-circle-profile.pug
include partials/circle/page-circle-profile.pug
#circle-events(hidden, data-view="circle-events")
include views/circle/page-circle-events.pug
include partials/circle/page-circle-events.pug
#circle-resources(hidden, data-view="circle-resources")
include views/circle/page-circle-resources.pug
include partials/circle/page-circle-resources.pug
#circle-polls(hidden, data-view="circle-polls")
include views/circle/page-circle-polls.pug
include partials/circle/page-circle-polls.pug
nav.jsRightMenu(role='navigation')
solid-router(default-route='circle-chat')

View File

@ -17,11 +17,11 @@
div.content-box__height
solid-ac-checker(permission='acl:Read', bind-resources)
#project-chat(hidden, data-view="project-chat")
include views/project/page-project-chat.pug
include partials/project/page-project-chat.pug
#project-information.content-box__height(hidden, data-view="project-information")
include views/project/page-project-profile.pug
include partials/project/page-project-profile.pug
#project-picture(hidden, data-view="project-picture")
include views/project/page-project-picture.pug
include partials/project/page-project-picture.pug
nav.jsRightMenu(role='navigation')
solid-router(default-route='project-chat')

View File

@ -11,7 +11,6 @@
include ../circle/page-circle-left.pug
#admin-circle-list.content-box__height(hidden, data-view="admin-circle-list")
include ../../templates/hubl-user-avatar.pug
solid-widget(name='hubl-circle-owner')
template

View File

@ -12,7 +12,6 @@
include ../project/page-project-left.pug
#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

View File

@ -1,7 +1,5 @@
div.content-box__info
include ../../templates/hubl-user-avatar.pug
solid-widget(name="circle-edit-members-delete")
template
solid-ac-checker(permission="acl:Delete" data-src="${src}")

View File

@ -10,12 +10,6 @@ solid-notifications.notLoggedIn(
bind-user
)
//- Templates for notifications from circles and from other users
include views/notifications/message-circle.pug
include views/notifications/message-private.pug
include templates/hubl-user-avatar.pug
details#user-controls.notLoggedIn
summary(tabindex='0' role='button')
solid-display#user-controls__profile(

View File

@ -0,0 +1,4 @@
//- Templates for notifications
include notifications/message-circle.pug
include notifications/message-private.pug

View File

@ -1,7 +1,5 @@
div.content-box__info
include ../../templates/hubl-user-avatar.pug
solid-widget(name="project-edit-members-delete")
template
solid-ac-checker(permission="acl:Delete" data-src="${src}")

View File

@ -3,7 +3,6 @@ solid-router(default-route='project-profile', hidden)
solid-route(name='project-edit')
#project-profile(hidden, data-view="project-profile")
include ../../templates/hubl-captain.pug
solid-widget(name='hubl-project-team-contact')
template

View File

@ -0,0 +1,3 @@
//- Import your widgets from the `widget`folder here
include widgets/hubl-user-avatar.pug

View File

@ -0,0 +1,2 @@
solid-widget(name='hubl-user-avatar')
template ${value ? `<img src="${value}" style="max-width:100%; max-height: 100%;" />` : `<object type="image/svg+xml" data="/images/alien.svg"></object>`}