Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • applications/etuc/hubl
  • applications/hubl
  • decentral1se/hubl
  • rngadam/hubl
  • jvtrudel/hubl
  • 3wc/hubl
6 results
Show changes
Showing
with 69 additions and 381 deletions
/**
* Rewrites a server URL by replacing the "server://" prefix with the actual server address from the config.
*
* @param {string|array} entry - The entry string that may contain a server URL.
* @param {Object} config - The configuration object containing the server information.
* @returns {string|array} - The rewritten entry with the server URL updated, or the original entry if not a server URL.
*/
const rewriteServer = (entry, config) => {
if (typeof entry === "string" && entry.startsWith("server://")) {
return config.client.server + entry.replace(/server:\//, "");
}
if(Array.isArray(entry)) {
const newArray = [];
for(const value of entry) {
newArray.push(rewriteServer(value, config));
}
return newArray;
}
return entry;
};
export default rewriteServer;
/**
* Truncates the text content of a DOM node and its child nodes to a specified limit.
*
* @param {Node} node - The DOM node whose text content is to be truncated.
* @param {number} limit - The maximum number of characters to retain in the text content.
* @returns {number} - The remaining number of characters that can be truncated.
*/
export default function truncate(node, limit) {
if (node.nodeType === Node.TEXT_NODE && node.textContent) {
node.textContent = node.textContent.substring(0, limit);
return limit - node.textContent.length;
}
let remaining = limit;
for (const child of [...node.childNodes]) {
remaining = truncate(child, limit);
}
return remaining;
}
import convertStringToBoolean from "@helpers/convertStringToBoolean";
import generateUniq from "@helpers/generateUniq";
import generateUrl from "@helpers/generateUrl";
import getComponent from "@helpers/getComponent";
import getComponentFromRoute from "@helpers/getComponentFromRoute";
import getDefaultRoute from "@helpers/getDefaultRoute";
import getRoute from "@helpers/getRoute";
import importCore from "@helpers/importCore";
import truncate from "@helpers/truncate";
import Swal from "sweetalert2";
export {
convertStringToBoolean,
generateUniq,
generateUrl,
getComponent,
getComponentFromRoute,
getDefaultRoute,
getRoute,
importCore,
truncate,
Swal,
};
import.meta.glob("./components/**/*.js", { eager: true });
import.meta.glob("./scripts/**/*.js", { eager: true });
document.dispatchEvent(new CustomEvent("orbit-ready"));
include variables.pug
<!DOCTYPE html>
html(lang="en")
head
meta(charset="UTF-8")
title HD App
meta(name="viewport", content="width=device-width, initial-scale=1.0")
meta(http-equiv="X-UA-Compatible", content="ie=edge")
include dependencies.pug
body
header#header
#logo
img(src="img/logo.png" width=166/2 height=48/2)
#subContainer
include menu.pug
main#mainContainer
//- #dashboard(hidden)
include page-dashboard.pug
#members(hidden)
include page-members.pug
#member(hidden)
div include page-member.pug
#job-offers(hidden)
include page-job-offers.pug
#projects(hidden)
include page-projects.pug
#project(hidden)
include page-project.pug
//- #client-creation(hidden)
include page-client-creation.pug
#channels(hidden)
include page-channels.pug
#channel(hidden)
include page-channel.pug
//- #search(hidden)
include page-search.pug
\ No newline at end of file
.btn-toggle
div
nav#navbar
sib-router#navbar-router(default-route='members')
div(hidden)
div#menu-items
sib-route(name='members')
div.icon-people Membres
sib-route(hidden, name='member', id-prefix=`${sdn}/members/`)
sib-route(name='job-offers')
div.icon-briefcase Job offers
div
div.icon-folder-alt Projets
sib-display(
data-src=`${sdn}/projects/`,
data-fields='name',
next='project'
)
sib-route(hidden, name='project', id-prefix=`${sdn}/projects/`)
div
div.icon-bubbles Channels
sib-display(
data-src=`${sdn}/channels/`,
data-fields='name',
next='channel'
)
sib-route(hidden, name='channel', id-prefix=`${sdn}/channels/`)
\ No newline at end of file
#channel-chat.chat-view(style='display: none', bind-resources='')
sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources='')
\ No newline at end of file
#channel-create(style='display: none')
sib-form(
data-src=`${sdn}/channels/`,
range-owner=`${sdn}/members/`,
widget-members='sib-form-multiple-dropdown',
range-members=`${sdn}/members/`
)
#channel-edit(style='display: none')
sib-form(
range-owner=`${sdn}/members/`,
widget-members='sib-form-multiple-dropdown',
range-members=`${sdn}/members/`,
bind-resources=''
)
script.
document.addEventListener('WebComponentsReady', function(event) {
class HDAppMember extends SIBWidget {
get template() {
return `
<div name="${this.name}">
<img src="${this.value.avatar}"/>
</div>
`;
}
render() {
store.get(this.value).then( (value) => {
this._value = value;
this.innerHTML = this.template;
});
}
}
customElements.define("hdapp-member", HDAppMember);
});
#channel-profile(style='display: none')
sib-display(
data-fields='name, description, owner',
widget-owner='hdapp-member',
bind-resources=''
)
h2.section.skills Participants
sib-display(
id-suffix='members',
data-fields='avatar, user',
widget-avatar='sib-display-img',
widget-user='hdapp-userinfo',
bind-resources=''
)
#channel(style='display: none')
sib-router#channel-router(default-route='channel-profile')
sib-route(name='channel-chat')
div Chat
sib-route(name='channel-profile')
div Info
sib-route(name='channel-edit')
div Éditer
sib-route(name='channel-create')
div Nouveau
#network-views-container
include page-channel-chat.pug
include page-channel-profile.pug
include page-channel-edit.pug
include page-channel-create.pug
#channels(style='display: none')
sib-display#channels-list(
data-src=`${sdn}/channels/`,
data-fields='name, description',
search-fields='name, description',
next='channel'
)
This diff is collapsed.
#member-chat.chat-view(style='display: none', bind-resources='')
sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources='')
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#project-chat.chat-view(style='display: none', bind-resources='')
sib-chat(data-authentication='login', data-auto-login='true', data-bosh-service-url='https://jabber.happy-dev.fr/http-bind/', data-debug='false', data-locales-url='en', bind-resources='')
#project-create(style='display: none')
sib-form(
data-src=`${sdn}/projects/`,
range-client=`${sdn}/clients/`,
widget-team='sib-form-multiple-dropdown',
range-team=`${sdn}/members/`
)