Merge branch 'master' of https://git.startinblox.com/applications/hubl into feature/invoice

This commit is contained in:
Marjolaine Le Bon 2021-04-28 09:42:05 +02:00
commit df030b04e5
36 changed files with 256 additions and 158 deletions

6
package-lock.json generated
View File

@ -1615,9 +1615,9 @@
}
},
"@startinblox/hubl-styling-framework": {
"version": "1.8.21",
"resolved": "https://registry.npmjs.org/@startinblox/hubl-styling-framework/-/hubl-styling-framework-1.8.21.tgz",
"integrity": "sha512-4T0sqL7rqqe8uFmH4f8geigxZ4pIxI1ze3sycM762CQFtM5fXadAI9tl7wwAOQbY15y6xfZfDcPoK0YEjv0v9g=="
"version": "1.8.24",
"resolved": "https://registry.npmjs.org/@startinblox/hubl-styling-framework/-/hubl-styling-framework-1.8.24.tgz",
"integrity": "sha512-eYrFaNG9iD3dskQcID7eEXabQZaE1u6QKuhJ8HTcnEKUFCo2DQhMe1F15zwYtxVeGE7KTrbGlGPGxfRQ2r8hig=="
},
"@types/q": {
"version": "1.5.4",

View File

@ -57,7 +57,7 @@
"clearDist": false
},
"dependencies": {
"@startinblox/hubl-styling-framework": "^1.8.21",
"@startinblox/hubl-styling-framework": "^1.8.24",
"cross-env": "^7.0.3",
"fs-extra": "^9.0.1",
"normalize.css": "^8.0.1",

View File

@ -17,7 +17,7 @@ if componentSet.has("autoLogin") || componentSet.has("registering")
//- script(type="module" src="/lib/sib-auth/index.js" defer)
if componentSet.has("chat") || componentSet.has("circles") || componentSet.has("projects")
script(type="module" src="https://cdn.skypack.dev/@startinblox/component-chat@5.2" defer)
script(type="module" src="https://cdn.skypack.dev/@startinblox/component-chat@5.3" defer)
//- script(type="module" src="/lib/solid-xmpp-chat/dist/index.js" defer)
if componentSet.has("communities")
@ -57,7 +57,7 @@ if componentSet.has("profileDirectory")
//- script(type="module" src="/lib/solid-directory/dist/index.js" defer)
if componentSet.has("resources")
script(type="module", src="https://cdn.skypack.dev/@startinblox/component-resource@3.1", defer)
script(type="module", src="https://cdn.skypack.dev/@startinblox/component-resource@3.3", defer)
//- script(type="module" src="/lib/solid-resource/solid-resource.js" defer)
if componentSet.has("themeChecker")

View File

@ -99,7 +99,7 @@ html(lang="en")
include views/page-messages.pug
if component.type == "circles"
.with-sidebar.whitespace-normal
.with-sidebar.whitespace-normal.jsMobileContentSidebarControl
hubl-reactivity(bind-user nested-field='inbox' target-src="store://user.circles")
hubl-reactivity(bind-user nested-field="circles" target-src="store://user")
hubl-reactivity(data-src=`${component.endpoints.get}joinable/` target-src=`${component.endpoints.get}`)
@ -141,7 +141,7 @@ html(lang="en")
include views/page-polls.pug
if component.type == "projects"
.with-sidebar.whitespace-normal
.with-sidebar.whitespace-normal.jsMobileContentSidebarControl
hubl-reactivity(bind-user nested-field='inbox' target-src="store://user.projects")
hubl-reactivity(bind-user nested-field="projects" target-src="store://user")
hubl-reactivity(data-src=`${component.endpoints.post}joinable/` target-src=`${component.endpoints.get}`)

View File

@ -281,7 +281,7 @@
"hublStatus": "Public = Public, Private = Private",
"success": "Success!",
"errors": {
"somethingGoesWrong": "Something goes wrong, try to",
"somethingGoesWrong": "Something went wrong, try to",
"reload": "reload"
},
"goButton": "GO",

View File

@ -0,0 +1,9 @@
document.addEventListener("keydown", function (e) {
/*
CTRL + K : Focus on the user search
*/
if(e.ctrlKey && e.key == "k") {
document.querySelector('#general-search input[type="text"]').focus();
e.preventDefault();
}
});

View File

@ -19,13 +19,27 @@ function closeRightMenu() {
el.querySelector('.text-right').setAttribute('hidden', '');
el.querySelector('.text-left').removeAttribute('hidden');
});
Array.from(rightMenu).forEach(el => el.removeAttribute("open"));
Array.from(rightMenu).forEach(el => {
el.removeAttribute("open");
el.classList.add('sm-hidden');
Array.from(el.parentElement.querySelectorAll('.jsMobileRightMenuButton')).forEach(ac => {
ac.classList.remove('icon-close');
ac.classList.add('icon-options-vertical');
});
});
}
}
function openRightMenu() {
let rightMenu = document.querySelectorAll(".jsRightMenu");
Array.from(rightMenu).forEach(el => el.setAttribute("open", ""));
Array.from(rightMenu).forEach(el => {
el.setAttribute("open", "");
el.classList.remove('sm-hidden');
Array.from(el.parentElement.querySelectorAll('.jsMobileRightMenuButton')).forEach(ac => {
ac.classList.remove('icon-options-vertical');
ac.classList.add('icon-close');
});
});
Array.from(document.querySelectorAll(".jsOffsiteToggle")).forEach(el => {
el.querySelector('.text-left').setAttribute('hidden', '');
el.querySelector('.text-right').removeAttribute('hidden');
@ -35,6 +49,32 @@ function openRightMenu() {
);
}
function closeRightMobileMenu() {
let rightMenu = document.querySelectorAll(".jsRightMenu");
if (Array.from(rightMenu).filter(el => el.hasAttribute("mobile-open")).length > 0) {
Array.from(rightMenu).forEach(el => {
el.removeAttribute("mobile-open");
el.classList.add('sm-hidden');
Array.from(el.parentElement.querySelectorAll('.jsMobileRightMenuButton')).forEach(ac => {
ac.classList.remove('icon-close');
ac.classList.add('icon-options-vertical');
});
});
}
}
function openRightMobileMenu() {
let rightMenu = document.querySelectorAll(".jsRightMenu");
Array.from(rightMenu).forEach(el => {
el.setAttribute("mobile-open", "");
el.classList.remove('sm-hidden');
Array.from(el.parentElement.querySelectorAll('.jsMobileRightMenuButton')).forEach(ac => {
ac.classList.remove('icon-options-vertical');
ac.classList.add('icon-close');
});
});
}
document.addEventListener("DOMContentLoaded", function () {
const componentSet = new Set(window.hubl.components.map(c => c.type));
@ -112,9 +152,11 @@ document.addEventListener("DOMContentLoaded", function () {
closeLeftMenu();
}
if (
!event.target.closest(".jsOffsiteToggle")
!event.target.closest(".jsOffsiteToggle") &&
!event.target.classList.contains('jsMobileRightMenuButton')
) {
closeRightMenu();
closeRightMobileMenu();
}
});
@ -125,6 +167,7 @@ document.addEventListener("DOMContentLoaded", function () {
closeUserControls();
closeLeftMenu();
closeRightMenu();
closeRightMobileMenu();
}
};
@ -152,10 +195,15 @@ document.addEventListener("DOMContentLoaded", function () {
});
});
Array.from(document.querySelectorAll(".jsMobileSidebarOpenButton")).forEach(
Array.from(document.querySelectorAll(".jsMobileRightMenuButton")).forEach(
el => {
el.addEventListener("click", () => {
openRightMenu();
if (el.closest('.jsMobileContentSidebarControl').querySelector('nav.jsRightMenu').hasAttribute("mobile-open")) {
closeRightMobileMenu();
} else {
openRightMobileMenu();
}
});
}
);

View File

@ -8,4 +8,4 @@ setTimeout(() => {
}
}
}
}, 10000);
}, 15000);

View File

@ -173,7 +173,7 @@
height: 100%;
background-position: center;
background-repeat: no-repeat;
background-size: contain;
background-size: cover;
}
}
}
@ -287,7 +287,7 @@
}
.community-profile-logo {
border-bottom: 1px solid #D6CECE;
border-bottom: 1px solid #E4E9F1;
}
hubl-communities-profile-logo {

View File

@ -22,8 +22,8 @@ main {
&.sidebar-is-closed {
@media(min-width: 768.01px) {
margin-left: -152px;
transform: translate(152px);
margin-left: -157px;
transform: translate(157px);
}
}
}
@ -39,18 +39,11 @@ main {
width: 217px;
@media (max-width: 768px) {
width: 65px;
width: 60px;
}
ul {
li {
border-bottom: 1px solid #D6CECE;
&>a {
vertical-align: super;
}
}
&>li:first-child>a {
vertical-align: middle;
}
@ -69,11 +62,28 @@ main {
/* Styles use with JS to open/close the sidebar */
&.jsRightMenu {
display: block;
@media (min-width: 768,01px) {
display: block;
}
@media (max-width: 768px) {
position: fixed;
top: 99px;
right: 0;
height: auto;
z-index: 2999;
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.14);
}
solid-link[active] {
color: white;
background: var(--color-heading);
>li {
border-bottom: 1px solid var(--color-heading);
}
}
solid-link:not([active]):hover {
background: #e4e4e4;
}
@ -81,15 +91,7 @@ main {
&.jsRightMenu:not([open]) {
@media (min-width: 768.01px) {
transform: translate(152px);
}
/* Quick fix. When you got time, use animation on the span instead */
@media (max-width: 768px) {
ul>li:first-child>span,
ul>li:first-child>a {
visibility: hidden;
}
transform: translate(157px);
}
}
@ -97,16 +99,12 @@ main {
display: block;
bottom: 0;
right: 0;
@media(max-width: 768px) {
box-shadow: 0 2px 9px 0 rgba(0, 0, 0, 0.12);
min-width: 60%;
position: fixed;
top: 50px;
z-index: 3000;
}
}
}
.jsMobileRightMenuButton {
float: right;
}
}
/* Add scrollbar to the left menu and to the content */
@ -122,11 +120,11 @@ main {
height: 100vh;
}
/* Custom scrollbar of the left-menu*/
/* Custom scrollbar of the right-menu */
/* Works on Firefox*/
.scrollbar-nav {
scrollbar-width: thin;
scrollbar-color:#D6CECE var(--color-heading);
scrollbar-color:#E4E9F1 var(--color-heading);
}
/* Works on Chrome, Edge, and Safari */
@ -140,20 +138,17 @@ main {
}
&::-webkit-scrollbar-thumb {
background-color:#D6CECE; /* color of the scroll thumb */
background-color:#E4E9F1; /* color of the scroll thumb */
border-radius: 6px; /* roundness of the scroll thumb */
border: 3px solid var(--color-heading); /* creates padding around scroll thumb */
}
}
/* Custom scrollbar of the content */
/* Works on Firefox */
.scrollbar-content {
scrollbar-width: thin;
scrollbar-color:#D6CECE white; /* scroll thumb and track */
scrollbar-color:#E4E9F1 white; /* scroll thumb and track */
}
/* Works on Chrome, Edge, and Safari */
@ -167,11 +162,12 @@ main {
}
&::-webkit-scrollbar-thumb {
background-color:#D6CECE; /* color of the scroll thumb */
background-color:#E4E9F1; /* color of the scroll thumb */
border-radius: 6px; /* roundness of the scroll thumb */
border: 3px solid white; /* creates padding around scroll thumb */
}
}
/* End scrollbar*/
solid-display-value-markdown {

View File

@ -393,7 +393,7 @@ header {
box-shadow: none;
>ul>li:last-child {
border-bottom: 1px solid #d6cece;
border-bottom: 1px solid #E4E9F1;
}
}
}

View File

@ -92,3 +92,14 @@ hubl-menu-empty+hubl-menu-empty {
.two-lines-ellipsis {
display: -webkit-box !important;
}
.link-hover {
text-decoration: underline;
&:before {
text-decoration: none;
}
&:hover {
text-decoration: none;
}
}

View File

@ -1,4 +1,4 @@
.with-sidebar.whitespace-normal.bg-color-white.only-on-admin(hidden)
.with-sidebar.jsMobileContentSidebarControl.whitespace-normal.bg-color-white.only-on-admin(hidden)
.scrollbar-content.views-container.sidebar-is-closed
for component of components
if component.route
@ -57,10 +57,10 @@
)
include partials/admin/page-admin-chat-create.pug
nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation')
nav.jsRightMenu.segment.sm-hidden.text-disable-selection.sidebar.whitespace-normal(role='navigation')
.segment.whitespace-normal.text-color-heading.text-bold
ul
li.segment.full.padding-small.text-normal.jsOffsiteToggle
li.segment.full.sm-hidden.padding-small.text-normal.border-bottom.border-color-grey.jsOffsiteToggle
span.icon.icon-arrow-left.icon-xsmall.margin-left-xxsmall.text-left
span.segment.full.text-right(hidden)
span.icon.icon-arrow-right.icon-xsmall.margin-right-xxsmall
@ -69,16 +69,16 @@
if component.route
if component.type == "circles"
solid-link.segment.full(next=`admin-${component.route}`)
li.segment.full.padding-medium
span.icon.ci-bubble-add.icon-xlarge.margin-right-medium
a(data-trans='admin.menuRight.circles')
li.segment.full.padding-medium.border-bottom.border-color-grey
span.icon.icon-globe.icon-large.margin-right-medium
a.text-baseline(data-trans='admin.menuRight.circles')
if component.type == "projects"
solid-link.segment.full(next=`admin-${component.route}`)
li.segment.full.padding-medium
span.icon.ci-add.icon-xlarge.margin-right-medium
a(data-trans='admin.menuRight.projects')
li.segment.full.padding-medium.border-bottom.border-color-grey
span.icon.icon-folder-alt.icon-large.margin-right-medium
a.text-baseline(data-trans='admin.menuRight.projects')
if component.type == "chat"
solid-link.segment.full(next=`admin-${component.route}`)
li.segment.full.padding-medium
span.icon.ci-networking.icon-xlarge.margin-right-medium
a(data-trans='admin.menuRight.community')
li.segment.full.padding-medium.border-bottom.border-color-grey
span.icon.icon-grid.icon-large.margin-right-medium
a.text-baseline(data-trans='admin.menuRight.community')

View File

@ -41,10 +41,10 @@
)
include partials/circle/page-circle-polls.pug
nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation')
nav.jsRightMenu.segment.sm-hidden.text-disable-selection.sidebar.whitespace-normal(role='navigation')
solid-router.segment.whitespace-normal.text-color-heading.text-bold(default-route=`${component.route}-chat`)
ul
li.segment.full.padding-small.text-normal.jsOffsiteToggle
li.segment.full.sm-hidden.padding-small.text-normal.jsOffsiteToggle
span.icon.icon-arrow-left.icon-xsmall.margin-left-xxsmall.text-left
span.segment.full.text-right(hidden)
span.icon.icon-arrow-right.icon-xsmall.margin-right-xxsmall

View File

@ -32,10 +32,10 @@
)
include partials/project/page-project-invoices.pug
nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation')
nav.jsRightMenu.segment.sm-hidden.text-disable-selection.sidebar.whitespace-normal(role='navigation')
solid-router.segment.whitespace-normal.text-color-heading.text-bold(default-route=`${component.route}-chat`)
ul
li.segment.full.padding-small.text-normal.jsOffsiteToggle
li.segment.full.sm-hidden.padding-small.text-normal.jsOffsiteToggle
span.icon.icon-arrow-left.icon-xsmall.margin-left-xxsmall.text-left
span.segment.full.text-right(hidden)
span.icon.icon-arrow-right.icon-xsmall.margin-right-xxsmall

View File

@ -1,8 +1,10 @@
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.padding-large.border-bottom.border-color-grey
div.segment.half.sm-full
div.segment.full.sm-three-quarter
h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='communities.title')
div.segment.half.sm-hidden.text-right
solid-link(class="backlink", next=`admin-${getRoute('chat', true)}` data-trans='circle.create.backlink')
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal
div#loader-users-title.loader.loader
@ -11,12 +13,6 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
div
div
div#loader-users-create.loader.loader-top
div
div
div
div
div.segment.margin-bottom-medium
div.segment
solid-display.text-color-heading.text-semibold.text-xlarge.text-letter-spacing-large(
@ -27,6 +23,12 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
loader-id='loader-users-title'
)
div#loader-users-create.loader.loader-top
div
div
div
div
solid-form.form#selected-community(
bind-resources
nested-field='members'

View File

@ -1,5 +1,8 @@
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal
h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='communities.title')
div.segment.full.sm-three-quarter
h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='communities.title')
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal

View File

@ -1,8 +1,10 @@
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey
div.segment.half.sm-full
div.segment.full.sm-three-quarter
h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='circle.create.title')
div.segment.half.sm-hidden.text-right
solid-link(class="backlink", next=`admin-${getRoute('circles', true)}` data-trans='circle.create.backlink')
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal
div.loader.loader-top(id=`loader-admin-${getComponent('circles').uniq}`)
@ -14,33 +16,34 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
solid-form.form(
data-src=`${getComponent('circles').endpoints.post}`
fields='status, community, name, subtitle, description, help'
fields='status, community.community, name, subtitle, description, help'
required-status
required-community
required-community.community
required-name
required-subtitle
loader-id=`loader-admin-${getComponent('circles').uniq}`
class-status='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal'
class-community='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal'
class-community.community='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal'
class-name='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading'
class-subtitle='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading'
class-description='segment margin-bottom-xxsmall full text-small text-semibold text-uppercase text-color-heading'
class-help='segment full text-small margin-bottom-medium padding-left-small'
label-status=''
label-community=''
label-community.community=''
label-name=''
label-subtitle=''
label-description=''
label-help=''
range-community='store://user.communities'
option-label-community="community.name"
range-community.community='store://user.communities'
option-label-community.community="community.name"
option-value-community.community="community"
widget-status='solid-form-dropdown-autocompletion-label'
enum-status=""
widget-community='solid-form-dropdown-autocompletion-label'
widget-community.community='solid-form-dropdown-autocompletion-label'
widget-linebreak='solid-form-hidden'
widget-description='solid-form-richtext-label'
@ -51,5 +54,5 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
submit-button=''
submit-widget="button"
data-trans='enum-status=hublStatus;label-status=circle.create.labelStatus;label-community=circle.create.labelCommunity;label-name=circle.create.labelName;label-description=circle.create.labelDescription;submit-button=circle.create.buttonSubmit;label-subtitle=circle.create.labelSubtitle;label-help=circle.create.descriptionHelp'
data-trans='enum-status=hublStatus;label-status=circle.create.labelStatus;label-community.community=circle.create.labelCommunity;label-name=circle.create.labelName;label-description=circle.create.labelDescription;submit-button=circle.create.buttonSubmit;label-subtitle=circle.create.labelSubtitle;label-help=circle.create.descriptionHelp'
)

View File

@ -1,5 +1,8 @@
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal
h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='circle.list.title')
div.segment.full.sm-three-quarter
h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='circle.list.title')
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
div.segment.full.padding-large.padding-top-medium.padding-bottom-xsmall.sm-padding-xsmall.sm-padding-top-xxsmall.whitespace-normal

View File

@ -1,8 +1,10 @@
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey
div.segment.half.sm-full
div.segment.full.sm-three-quarter
h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='project.create.title')
div.segment.half.sm-hidden.text-right
solid-link(class="backlink", next=`admin-${getRoute('projects', true)}` data-trans='project.create.backlink')
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal
div.loader.loader-top(id=`loader-admin-${getComponent('projects').uniq}`)

View File

@ -1,5 +1,8 @@
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal
h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='project.list.title')
div.segment.full.sm-three-quarter
h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='project.list.title')
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal
@ -10,7 +13,7 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
solid-ac-checker(data-src=`${getComponent('projects').endpoints.post}`, permission='acl:Append')
solid-link(
class='segment sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered icon icon-plus'
next='admin-projects-create'
next=`admin-${getRoute('projects', true)}-create`
data-trans='project.list.buttonCreate'
)

View File

@ -1,13 +1,16 @@
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal
solid-display.text-xxlarge.text-letter-spacing-large(
bind-resources
fields='name, dash, subtitle'
div.segment.full.sm-three-quarter.whitespace-normal
solid-display.text-xlarge.text-letter-spacing-large(
bind-resources
fields='name, dash, subtitle'
value-dash=' - '
value-dash=' - '
class-name='text-color-heading text-bold'
class-dash='text-color-heading text-bold'
)
class-name='text-color-heading text-bold'
class-dash='text-color-heading text-bold'
)
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
.chat-view.segment.full.whitespace-normal
solid-xmpp-chat(

View File

@ -1,7 +1,7 @@
solid-ac-checker(permission='acl:Read', bind-resources)
div.segment.full.padding-large.border-bottom.border-color-grey
div.segment.half.sm-full
solid-display.text-xxlarge.text-letter-spacing-large(
div.segment.half.sm-three-quarter.whitespace-normal
solid-display.text-xlarge.text-letter-spacing-large(
bind-resources
fields='name, dash, subtitle'
@ -12,6 +12,8 @@ solid-ac-checker(permission='acl:Read', bind-resources)
)
div.segment.half.sm-hidden.text-right
solid-link(class="backlink", bind-resources, next=`${component.route}-profile` data-trans='circle.edit.backlink')
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
div.segment.full.padding-large.whitespace-normal
@ -25,12 +27,12 @@ div.segment.full.padding-large.whitespace-normal
solid-form.form(
bind-resources
fields='name, subtitle, description, status, community, owner'
fields='name, subtitle, description, status, community.community, owner'
required-status
required-name
required-owner
required-subtitle
required-community
required-community.community
range-owner=`${component.endpoints.owners}`
label-name=''
@ -38,14 +40,14 @@ div.segment.full.padding-large.whitespace-normal
label-description=''
label-subtitle=''
label-status=''
label-community=''
label-community.community=''
label-help=''
class-name='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading'
class-subtitle='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading'
class-description='segment margin-bottom-medium full text-small text-semibold text-uppercase text-color-heading'
class-status='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal'
class-community='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal'
class-community.community='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal'
class-owner='hidden'
class-help='segment full text-small margin-bottom-medium padding-left-small'
@ -53,11 +55,12 @@ div.segment.full.padding-large.whitespace-normal
enum-status=""
widget-description='solid-form-richtext-label'
widget-help='solid-form-hidden-label'
widget-community='solid-form-dropdown-autocompletion-label'
widget-community.community='solid-form-dropdown-autocompletion-label'
widget-owner='solid-form-dropdown-autocompletion-label'
range-community='store://user.communities'
option-label-community="community.name"
range-community.community='store://user.communities'
option-label-community.community="community.name"
option-value-community.community="community"
partial=''
@ -65,7 +68,7 @@ div.segment.full.padding-large.whitespace-normal
submit-widget="button"
next=`${component.route}-information`
data-trans='enum-status=hublStatus;label-status=circle.edit.labelStatus;label-community=circle.edit.labelCommunity;label-name=circle.edit.labelName;label-owner=circle.edit.labelOwner;label-description=circle.edit.labelDescription;submit-button=circle.edit.buttonSubmit;label-subtitle=circle.edit.labelSubtitle;label-help=circle.edit.descriptionHelp'
data-trans='enum-status=hublStatus;label-status=circle.edit.labelStatus;label-community.community=circle.edit.labelCommunity;label-name=circle.edit.labelName;label-owner=circle.edit.labelOwner;label-description=circle.edit.labelDescription;submit-button=circle.edit.buttonSubmit;label-subtitle=circle.edit.labelSubtitle;label-help=circle.edit.descriptionHelp'
)
h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans='circle.edit.subTitle')

View File

@ -9,15 +9,18 @@ div(
)
solid-ac-checker.segment.block(permission='acl:Read', bind-resources)
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal
solid-display.text-xxlarge.text-letter-spacing-large(
bind-resources
fields='name, dash, subtitle'
div.segment.full.sm-three-quarter.whitespace-normal
solid-display.text-xlarge.text-letter-spacing-large(
bind-resources
fields='name, dash, subtitle'
value-dash=' - '
value-dash=' - '
class-name='text-color-heading text-bold'
class-dash='text-color-heading text-bold'
)
class-name='text-color-heading text-bold'
class-dash='text-color-heading text-bold'
)
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-xlarge
div.loader(id=`loader-${component.route}-profile-1`)
@ -67,8 +70,9 @@ div(
search-fields='user'
search-widget-user='solid-form-hidden'
search-value-user='store://user.@id'
empty-widget='hubl-circle-join-button'
disabled-empty-widget='hubl-circle-join-button'
)
//- https://git.startinblox.com/management/startinblox-feature-requests/issues/263
solid-ac-checker.segment.margin-left-small(permission='acl:Delete', bind-resources)
solid-delete(
class='segment sm-full text-xsmall text-center children-link-button children-link-text-bold children-link-text-uppercase children-link-color-secondary bordered'

View File

@ -8,12 +8,12 @@
fields='name'
placeholder-name=''
widget-name='solid-form-placeholder-text'
class-name="segment margin-bottom-medium sm-margin-bottom-none three-quarter sm-full padding-right-small sm-padding-none text-small input-bg-white children-shadow"
class-name="segment margin-bottom-medium sm-margin-bottom-none full sm-full padding-right-small sm-padding-none text-small input-bg-white children-shadow"
submit-button=""
submit-widget="button"
data-trans='placeholder-name=communities.list.searchBy;submit-button=communities.list.searchButton'
)
div.segment.three-quarter.sm-full.text-right
div.segment.sm-full.text-right(style='float:right')
solid-link.segment.children-link-rounded.children-icon-map.children-link-reversed.color-secondary.bordered(next=`${component.route}-map`)
span

View File

@ -9,13 +9,13 @@
search-filter='community.name, address_line1, address_line2'
placeholder-filter=''
widget-filter='solid-form-placeholder-text'
class-filter="segment margin-bottom-medium sm-margin-bottom-none three-quarter sm-full padding-right-small sm-padding-none text-small input-bg-white children-shadow"
class-filter="segment margin-bottom-medium sm-margin-bottom-none full sm-full padding-right-small sm-padding-none text-small input-bg-white children-shadow"
submit-button=""
submit-widget="button"
data-trans='placeholder-filter=communities.list.searchBy;submit-button=communities.list.searchButton'
)
div.segment.three-quarter.sm-full.text-right
div.segment.sm-full.text-right(style='float:right')
solid-link.segment.children-link-rounded.children-icon-grid.children-link-reversed.color-secondary.bordered(next=`${component.route}-directory`)
span

View File

@ -17,19 +17,19 @@ div.community-profile.padding-medium.sm-padding-none
class-segment0="segment full padding-xlarge sm-padding-none whitespace-normal"
class-segment1="community-profile-logo segment quarter sm-full margin-top-medium padding-top-medium padding-right-medium sm-margin-top-xsmall sm-padding-medium text-center"
class-segment2="segment three-quarter sm-full sm-padding-top-medium sm-padding-right-xsmall sm-padding-bottom-medium sm-padding-left-xsmall text-top sm-text-center whitespace-normal"
class-segment2="segment three-quarter sm-full sm-padding-top-medium sm-padding-right-xsmall sm-padding-bottom-medium sm-padding-left-xsmall text-top whitespace-normal"
class-segment3="segment full sm-two-third"
class-segment4="segment half sm-two-third padding-top-xsmall"
class-segment3="segment full sm-full"
class-segment4="segment half sm-full padding-top-xsmall"
class-name="segment block text-color-heading text-xxlarge text-bold sm-text-center margin-bottom-xxsmall whitespace-normal"
class-segment5="segment half text-right sm-hidden"
class-segment6="segment two-third sm-full padding-top-xsmall sm-text-center"
class-profile.shortDescription="segment block sm-text-center margin-bottom-large whitespace-normal"
class-segment7="segment lg-hidden sm-full"
class-segment7="segment lg-hidden sm-full sm-text-center"
class-segment8="segment two-third sm-full padding-bottom-large padding-bottom-xxsmall sm-text-left"
class-segment8="segment two-third sm-full padding-bottom-large sm-padding-top-large padding-bottom-xxsmall sm-text-left"
class-addresses="segment block margin-bottom-xsmall"
class-members="segment block margin-bottom-xsmall"
class-profile.website="segment block"
@ -37,7 +37,7 @@ div.community-profile.padding-medium.sm-padding-none
class-profile.phone="segment block"
class-segment9="segment full"
class-profile.description="segment full whitespace-normal"
class-profile.description="segment full whitespace-normal line-xlarge"
class-segment10="segment full text-right"

View File

@ -48,7 +48,7 @@ div
if componentSet.has("communities") && getComponent("chat").route
solid-link.text-hover(next=`admin-${getRoute("chat", true)}`)
li.segment.padding-top-small
a.icon.icon-people.icon-third.icon-small.icon-margin-right-xsmall(data-trans='admin.menuRight.community')
a.icon.icon-grid.icon-third.icon-small.icon-margin-right-xsmall(data-trans='admin.menuRight.community')
if componentSet.has("circles") && getComponent("circles").route
solid-link.text-hover(next=`admin-${getRoute("circles", true)}`)
li.segment.padding-top-small

View File

@ -29,7 +29,6 @@ solid-router#navbar-router(default-route=defaultRoute)
div.segment.margin-right-xxsmall
div.segment.icon.icon-small.icon-grid
div.segment.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.communities")
solid-route(name=`${component.route}-profile`)
div.divider
if component.type == "circles"
@ -81,6 +80,7 @@ solid-router#navbar-router(default-route=defaultRoute)
solid-link.segment.block.menu-icon.icon.icon-small.icon-user-follow(next=getRoute('profileDirectory', true))
solid-badge.badge(data-type="Message")
solid-route(name=`admin-${component.route}`, hidden)
solid-route(name=`admin-${component.route}-create` hidden)
solid-route(name=component.route, rdf-type='foaf:user', use-id='', hidden)
div.sub-menu.menu-notification.padding-bottom-xxsmall.jsMenuSub
div.loader.loader-menu(id=`loader-${component.route}`)

View File

@ -1,17 +1,20 @@
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal
solid-display.text-xxlarge.text-letter-spacing-large(
bind-resources
fields='const-title1, number, customer.name, dash, name'
div.segment.full.sm-three-quarter.whitespace-normal
solid-display.text-xlarge.text-letter-spacing-large(
bind-resources
fields='const-title1, number, customer.name, dash, name'
class-const-title1='text-color-heading text-bold text-uppercase'
class-number='text-color-heading text-bold text-uppercase word-spacing-right'
class-customer.name='text-color-heading text-bold text-uppercase'
class-dash='text-color-heading text-bold text-xlarge'
class-name=''
class-const-title1='text-color-heading text-bold text-uppercase'
class-number='text-color-heading text-bold text-uppercase word-spacing-right'
class-customer.name='text-color-heading text-bold text-uppercase'
class-dash='text-color-heading text-bold text-xlarge'
class-name=''
value-const-title1='N°'
value-dash=' - '
)
value-const-title1='N°'
value-dash=' - '
)
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
.chat-view.segment.full.whitespace-normal
solid-xmpp-chat(

View File

@ -1,7 +1,7 @@
solid-ac-checker(permission='acl:Read', bind-resources)
div.segment.full.padding-large.border-bottom.border-color-grey
div.segment.half.sm-full
solid-display.text-xxlarge.text-letter-spacing-large(
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal
div.segment.half.sm-three-quarter.whitespace-normal
solid-display.text-xlarge.text-letter-spacing-large(
bind-resources
fields='const-title1, number, customer.name, dash, name'
@ -16,6 +16,8 @@ solid-ac-checker(permission='acl:Read', bind-resources)
)
div.segment.half.sm-hidden.text-right
solid-link(class='backlink', bind-resources, next=`${component.route}-profile` data-trans='project.edit.backlink')
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
div.segment.full.padding-large.whitespace-normal

View File

@ -9,19 +9,22 @@ div(
)
solid-ac-checker.segment.block(permission='acl:Read', bind-resources)
div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal
solid-display.text-xxlarge.text-letter-spacing-large(
bind-resources
fields='const-title1, number, customer.name, dash, name'
div.segment.full.sm-three-quarter.whitespace-normal
solid-display.text-xlarge.text-letter-spacing-large(
bind-resources
fields='const-title1, number, customer.name, dash, name'
class-const-title1='text-color-heading text-bold text-uppercase'
class-number='text-color-heading text-bold text-uppercase word-spacing-right'
class-customer.name='text-color-heading text-bold text-uppercase'
class-dash='text-color-heading text-bold text-xlarge'
class-name=''
class-const-title1='text-color-heading text-bold text-uppercase'
class-number='text-color-heading text-bold text-uppercase word-spacing-right'
class-customer.name='text-color-heading text-bold text-uppercase'
class-dash='text-color-heading text-bold text-xlarge'
class-name=''
value-const-title1='N°'
value-dash=' - '
)
value-const-title1='N°'
value-dash=' - '
)
div.segment.lg-hidden.sm-quarter.text-right
div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading
div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-xlarge
div.loader(id=`loader-${component.route}-profile`)

View File

@ -1,3 +1,3 @@
if componentSet.has('communities') && getRoute('communities')
solid-widget(name='hubl-communities-profile-email')
template ${value != "" ? `<a class="link margin-bottom-xsmall icon mdi-email-outline icon-third icon-large icon-margin-right-xsmall" style="text-decoration:none;" href="mailto:\${value}">${value}</a>` : ""}
template ${value != "" ? `<a class="link margin-bottom-xsmall icon mdi-email-outline icon-third icon-large icon-margin-right-xsmall link-hover" href="mailto:\${value}">${value}</a>` : ""}

View File

@ -2,7 +2,7 @@ if componentSet.has('communities') && getRoute('communities')
solid-widget(name='hubl-communities-profile-members-counter')
template
span
span.icon.icon-people.icon-third.icon-large.margin-right-xsmall
span.margin-bottom-xsmall.icon.mdi-account-multiple.icon-third.icon-large.icon-margin-right-xsmall
solid-display.text-medium(
data-src="${src || value}"
fields=''

View File

@ -1,3 +1,3 @@
if componentSet.has('communities') && getRoute('communities')
solid-widget(name='hubl-communities-profile-phone')
template ${value != "" ? `<a class="link margin-bottom-xsmall icon mdi-cellphone-iphone icon-third icon-large icon-margin-right-xsmall" style="text-decoration:none;" href="tel:\${value}">${value}</a>` : ""}
template ${value != "" ? `<a class="link margin-bottom-xsmall icon mdi-cellphone-iphone icon-third icon-large icon-margin-right-xsmall link-hover" href="tel:\${value}">${value}</a>` : ""}

View File

@ -1,3 +1,3 @@
if componentSet.has('communities') && getRoute('communities')
solid-widget(name='hubl-communities-profile-website')
template ${value != "" ? `<a class="link margin-bottom-xsmall icon mdi-link-variant icon-third icon-large icon-margin-right-xsmall" style="text-decoration:none;" href="tel:\${value}" target="_blank">${value}</a>` : ""}
template ${value != "" ? `<a class="link margin-bottom-xsmall icon mdi-link-variant icon-third icon-large icon-margin-right-xsmall link-hover" href="tel:\${value}" target="_blank">${value}</a>` : ""}