diff --git a/.gitignore b/.gitignore index fb71fd6..cfb2a61 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,6 @@ dist/html/* # Files index.html -config.php +config.pug issues.md oidc-client-preprod-config.json diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2fc30ec --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +default: install + +config.pug: + cp config-sample.pug config.pug + +dist/css/hd-app.css: src/scss/main.scss + npx grunt sass + +install: + git submodule update --init --recursive + npm install + +build: config.pug + npx grunt sass + npx pug --pretty -p index.pug < index.pug > index.html + +serve: dist/css/hd-app.css + php -S 127.0.0.1:8080 router.php + + +.PHONY: default install build serve diff --git a/README.md b/README.md index 3b36a27..3258dd3 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,19 @@ +# HD app HD app is the magic tool that allows the Happy Dev network to thrive in a decentralized way. ## Install - * `git clone --recurse-submodules https://git.happy-dev.fr/happy-dev/hd-app.git` - * `cd hd-app` - * `cp config-sample.php config.php` - * Edit `config.php` to suit your own setup - * `npm install -g grunt-cli` - * `npm install` -## Compile SASS - * `grunt watch` +clone then: + +* `make install` + +## Build + +Compile sass & pug + +* `make build` + +## Run server + +require PHP +* `make serve` diff --git a/config-sample.php b/config-sample.php deleted file mode 100644 index 9e8c1d0..0000000 --- a/config-sample.php +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - - Happy Dev App - - - - - - - -
- - - - - - - - - -
- - - - - - diff --git a/index.pug b/index.pug new file mode 100644 index 0000000..560bc2d --- /dev/null +++ b/index.pug @@ -0,0 +1,48 @@ + +include config.pug +html(lang='fr') + head + meta(charset='UTF-8') + meta(name='viewport', content='width=device-width, initial-scale=1.0') + meta(http-equiv='X-UA-Compatible', content='ie=edge') + title Happy Dev App + //- Prod/Dev setup + if (['https://app.happy-dev.fr', 'https://staging-app.happy-dev.fr'].includes(dn)) + include src/html/dependencies-prod.pug + else + include src/html/dependencies-dev.pug + body + include src/html/menu.pug + main#mainContainer.container-fluid + include src/html/dashboard.pug + include src/html/members.pug + include src/html/member.pug + include src/html/projects.pug + include src/html/project.pug + include src/html/client-creation.pug + include src/html/channels.pug + include src/html/channel.pug + include src/html/search.pug + sib-chat#chat-singleton(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='') + script. + // Move the chat singleton to the right view on "page load" + window.onload = function() { + if (window.location.pathname.indexOf("-chat") !== -1) { + var chatSingleton = document.querySelector("#chat-singleton"); + var pathnameParts = window.location.pathname.split("/"); + var viewName = pathnameParts[pathnameParts.length - 1]; + var view = document.getElementById(viewName); + + view.appendChild(chatSingleton); + chatSingleton.dataset.src = view.dataset.src; + } + } + + // Move the chat singleton to the right view on "navigate" + window.addEventListener('navigate', event => { + var chatSingleton = document.querySelector("#chat-singleton"); + var view = document.getElementById(event.detail.route); + + view.querySelector(".chat-view").appendChild(chatSingleton); + chatSingleton.dataset.src = view.dataset.src; + }); diff --git a/oidc-client-config.json b/oidc-client-config.json index 7f4d9dd..6141b66 100644 --- a/oidc-client-config.json +++ b/oidc-client-config.json @@ -1,10 +1,10 @@ { "authority": "https://test-paris.happy-dev.fr/openid/", "client_id": "125356", - "redirect_uri": "http://hd-app.local", + "redirect_uri": "http://127.0.0.1:8080", "response_type": "id_token token", "scope": "openid profile email", "automaticSilentRenew": true, - "silent_redirect_uri": "http://hd-app.local", + "silent_redirect_uri": "http://127.0.0.1:8080", "loadUserInfo": true } diff --git a/router.php b/router.php new file mode 100644 index 0000000..0042b79 --- /dev/null +++ b/router.php @@ -0,0 +1,8 @@ + -

Agenda

- - diff --git a/src/html/calendar.pug b/src/html/calendar.pug new file mode 100644 index 0000000..bc172f3 --- /dev/null +++ b/src/html/calendar.pug @@ -0,0 +1,6 @@ +#calendar(style='display: none') + h1.page-title Agenda + ldp-calendar( + data-src='http://lucky.alwaysdata.net/api/events/', + style='display: block; height: 300px; width: 500px;' + ) diff --git a/src/html/channel-chat.html b/src/html/channel-chat.html deleted file mode 100644 index e6d99da..0000000 --- a/src/html/channel-chat.html +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/html/channel-chat.pug b/src/html/channel-chat.pug new file mode 100644 index 0000000..d892ccf --- /dev/null +++ b/src/html/channel-chat.pug @@ -0,0 +1 @@ +#channel-chat.chat-view(style='display: none', bind-resources='') diff --git a/src/html/channel-create.html b/src/html/channel-create.html deleted file mode 100644 index 5364a41..0000000 --- a/src/html/channel-create.html +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/src/html/channel-create.pug b/src/html/channel-create.pug new file mode 100644 index 0000000..5e7b303 --- /dev/null +++ b/src/html/channel-create.pug @@ -0,0 +1,7 @@ +#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/` + ) diff --git a/src/html/channel-edit.html b/src/html/channel-edit.html deleted file mode 100644 index b3c66e1..0000000 --- a/src/html/channel-edit.html +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/src/html/channel-edit.pug b/src/html/channel-edit.pug new file mode 100644 index 0000000..9244226 --- /dev/null +++ b/src/html/channel-edit.pug @@ -0,0 +1,7 @@ +#channel-edit(style='display: none') + sib-form( + range-owner=`${sdn}/members/`, + widget-members='sib-form-multiple-dropdown', + range-members=`${sdn}/members/`, + bind-resources='' + ) diff --git a/src/html/channel-profile.html b/src/html/channel-profile.pug similarity index 53% rename from src/html/channel-profile.html rename to src/html/channel-profile.pug index 2186fc5..bd47756 100644 --- a/src/html/channel-profile.html +++ b/src/html/channel-profile.pug @@ -1,4 +1,4 @@ - - diff --git a/src/html/channel.php b/src/html/channel.php deleted file mode 100644 index 612396f..0000000 --- a/src/html/channel.php +++ /dev/null @@ -1,23 +0,0 @@ - diff --git a/src/html/channel.pug b/src/html/channel.pug new file mode 100644 index 0000000..728f3e8 --- /dev/null +++ b/src/html/channel.pug @@ -0,0 +1,15 @@ +#channel(style='display: none') + sib-router#channel-router(default-route='channel-profile') + sib-route(name='channel-chat') + button Chat + sib-route(name='channel-profile') + button Info + sib-route(name='channel-edit') + button Éditer + sib-route(name='channel-create') + button Nouveau + #network-views-container + include channel-chat.pug + include channel-profile.pug + include channel-edit.pug + include channel-create.pug diff --git a/src/html/channels.html b/src/html/channels.html deleted file mode 100644 index 3afdcc1..0000000 --- a/src/html/channels.html +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/src/html/channels.pug b/src/html/channels.pug new file mode 100644 index 0000000..4a46b19 --- /dev/null +++ b/src/html/channels.pug @@ -0,0 +1,7 @@ +#channels(style='display: none') + sib-display#channels-list( + data-src=`${sdn}/channels/`, + data-fields='name, description', + search-fields='name, description', + next='channel' + ) diff --git a/src/html/client-creation.html b/src/html/client-creation.html deleted file mode 100644 index 21edcff..0000000 --- a/src/html/client-creation.html +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/src/html/client-creation.pug b/src/html/client-creation.pug new file mode 100644 index 0000000..d023504 --- /dev/null +++ b/src/html/client-creation.pug @@ -0,0 +1,5 @@ +#client-create(style='display: none') + sib-form( + data-src=`${sdn}/clients/`, + data-fields='name, address, logo' + ) diff --git a/src/html/dashboard.html b/src/html/dashboard.html deleted file mode 100644 index 37ffb96..0000000 --- a/src/html/dashboard.html +++ /dev/null @@ -1,26 +0,0 @@ - diff --git a/src/html/dashboard.pug b/src/html/dashboard.pug new file mode 100644 index 0000000..61a18a3 --- /dev/null +++ b/src/html/dashboard.pug @@ -0,0 +1,21 @@ +#dashboard(style='display: none') + //- +
+
+ + * parmi les membres, les projets et les groupes de discussion +
+
+ .list-condensed + ldp-display#to-user-profile( + data-src=`${sdn}/members/1/`, + set-name='firstname, name-separator, lastname', + value-name-separator=' ', + data-fields='avatar, name', + widget-avatar='ldp-display-img' + ) + script. + document.querySelector("#to-user-profile").addEventListener("click", () => { + document.getElementById("navbar-router").navigate("member"); + document.getElementById("member-page-router").navigate("member-detail"); + }); diff --git a/src/html/dependencies-dev.php b/src/html/dependencies-dev.php deleted file mode 100644 index 1cefc27..0000000 --- a/src/html/dependencies-dev.php +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/html/dependencies-dev.pug b/src/html/dependencies-dev.pug new file mode 100644 index 0000000..595fd6b --- /dev/null +++ b/src/html/dependencies-dev.pug @@ -0,0 +1,16 @@ +// Stylesheets +link(rel='stylesheet', href=`${dn}/node_modules/bootstrap/dist/css/bootstrap.min.css`) +link(rel='stylesheet', href=`${dn}/node_modules/cropper/dist/cropper.min.css`) +link(rel='stylesheet', href=`${dn}/node_modules/font-awesome/css/font-awesome.min.css`) +link(rel='stylesheet', href=`${dn}/dist/css/hd-app.css?v=${v}`) +// Javascript +script(src=`${dn}/node_modules/jquery/dist/jquery.min.js`) +script(src=`${dn}/node_modules/bootstrap/dist/js/bootstrap.min.js`) +script(src=`${dn}/node_modules/cropper/dist/cropper.min.js`) +script(src=`${dn}/dist/lib/webcomponentsjs/webcomponents-loader.js`) +script(src=`${dn}/src/js/hd-app.js?v=${v}`) +script(src=`${dn}/dist/lib/sib-chat/3rdparty/sib-oidc-client.js?v=${v}`) +// Web components +link(rel='import', href=`${dn}/dist/lib/sib-core/sib-display.html?v=${v}`) +link(rel='import', href=`${dn}/dist/lib/sib-router/sib-router.html?v=${v}`) +link(rel='import', href=`${dn}/dist/lib/sib-chat/sib-chat.html`) diff --git a/src/html/dependencies-prod.php b/src/html/dependencies-prod.php deleted file mode 100644 index d3d1db7..0000000 --- a/src/html/dependencies-prod.php +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/html/dependencies-prod.pug b/src/html/dependencies-prod.pug new file mode 100644 index 0000000..312ac4e --- /dev/null +++ b/src/html/dependencies-prod.pug @@ -0,0 +1,34 @@ +// Stylesheets +link(rel='stylesheet', href='https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css', integrity='sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4', crossorigin='anonymous') +link(href='https://cdn.bootcss.com/cropper/4.0.0/cropper.min.css', rel='stylesheet') +link(rel='stylesheet', href='https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css') +link(rel='stylesheet', href=`${dn}/dist/css/hd-app.css?v=${v}`) + +// Javascript +script( + src='https://code.jquery.com/jquery-3.3.1.slim.min.js', + integrity='sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo', + crossorigin='anonymous') +script( + src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js', + integrity='sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ', + crossorigin='anonymous') +script( + src='https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js', + integrity='sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm', + crossorigin='anonymous') +script( + src='https://cdn.bootcss.com/cropper/4.0.0/cropper.min.js') +script( + src='https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.2.0/webcomponents-loader.js', + integrity='sha256-fUVqCtpScUF69qkFkeuHmcShr2N2UleRQJhRG4etHds=', + crossorigin='anonymous') +script( + src=`${dn} ?>/src/js/hd-app.js?v=${v}`) +script( + src=`${cdn} ?>/sib-chat/3rdparty/sib-oidc-client.js?v=${v}`) + +// Web components +link(rel='import', href=`${cdn} ?>/sib-core/sib-display.html?v=${v}`) +link(rel='import', href=`${cdn} ?>/sib-router/sib-router.html?v=${v}`) +link(rel='import', href=`${cdn} ?>/sib-chat/sib-chat.html`) diff --git a/src/html/drive.html b/src/html/drive.html deleted file mode 100644 index efcbb4b..0000000 --- a/src/html/drive.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/html/drive.pug b/src/html/drive.pug new file mode 100644 index 0000000..7c12325 --- /dev/null +++ b/src/html/drive.pug @@ -0,0 +1,2 @@ +#drive(style='display: none') + h1.page-title Drive diff --git a/src/html/member-chat.html b/src/html/member-chat.html deleted file mode 100644 index 177f1eb..0000000 --- a/src/html/member-chat.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/html/member-chat.pug b/src/html/member-chat.pug new file mode 100644 index 0000000..52afa44 --- /dev/null +++ b/src/html/member-chat.pug @@ -0,0 +1 @@ +#member-chat.chat-view(style='display: none', bind-resources='') diff --git a/src/html/member-edit.html b/src/html/member-edit.pug similarity index 52% rename from src/html/member-edit.html rename to src/html/member-edit.pug index b484708..83b1c5f 100644 --- a/src/html/member-edit.html +++ b/src/html/member-edit.pug @@ -1,51 +1,41 @@ - + render() { + store.get(this.value).then( (value) => { + this._value = value; + this.innerHTML = this.template; + }); + } + } + customElements.define("ldp-form-img-upload", LDPFormImgUpload); + widget-avatar="ldp-form-img-upload" - -
-
- -
- -
- - - -
-
- - diff --git a/src/html/member-profile.html b/src/html/member-profile.html deleted file mode 100644 index 6e97f4c..0000000 --- a/src/html/member-profile.html +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/src/html/member-profile.pug b/src/html/member-profile.pug new file mode 100644 index 0000000..11057ab --- /dev/null +++ b/src/html/member-profile.pug @@ -0,0 +1,11 @@ +#member-profile(style='display: none') + sib-display#member-info( + data-fields='avatar, user, before-pseudo, pseudo, bio, cell, number, roles, website, skills', + widget-avatar='sib-display-img', + widget-user='hdapp-userinfo', + widget-cell='hdapp-usercell', + widget-number='sib-display-tel', + widget-roles='sib-display-lookuplist', + widget-skills='sib-display-lookuplist', + bind-resources='' + ) diff --git a/src/html/member.php b/src/html/member.php deleted file mode 100644 index b25db2b..0000000 --- a/src/html/member.php +++ /dev/null @@ -1,19 +0,0 @@ - diff --git a/src/html/member.pug b/src/html/member.pug new file mode 100644 index 0000000..8b1d68c --- /dev/null +++ b/src/html/member.pug @@ -0,0 +1,12 @@ +#member(style='display: none') + sib-router#member-router(default-route='member-profile') + sib-route(name='member-chat') + button Chat + sib-route(name='member-profile') + button Voir + sib-route(name='member-edit') + button Éditer + #member-views-container + include member-chat.pug + include member-profile.pug + include member-edit.pug diff --git a/src/html/members.html b/src/html/members.pug similarity index 76% rename from src/html/members.html rename to src/html/members.pug index 553e833..2ccdd30 100644 --- a/src/html/members.html +++ b/src/html/members.pug @@ -1,4 +1,4 @@ - - +#members.view(style='display: none') + sib-display#profiles-list( + data-src=`${sdn}/members/`, + data-fields='avatar, user, before-pseudo, pseudo, bio, cell, skills', + value-before-pseudo='@', + widget-avatar='sib-display-img', + widget-user='hdapp-userinfo', + widget-cell='hdapp-usercell', + widget-skills='sib-display-lookuplist', + set-searchset='user.first_name, user.last_name', + search-fields='searchset', + next='member' + ) + diff --git a/src/html/menu.html b/src/html/menu.html deleted file mode 100644 index b4f45f4..0000000 --- a/src/html/menu.html +++ /dev/null @@ -1,37 +0,0 @@ - diff --git a/src/html/menu.pug b/src/html/menu.pug new file mode 100644 index 0000000..a374d72 --- /dev/null +++ b/src/html/menu.pug @@ -0,0 +1,23 @@ +nav#navbar.navbar.bg-white.fixed-top.border-bottom.pb-0.d-md-flex + sib-router#navbar-router.navbar-nav(default-route='members') + sib-route#menu-title.nav-item(name='dashboard') + | HAPPY DEV + #menu-items.col-7.col-md-7 + sib-route.nav-item.pb-2.active.align-self-stretch.text-center.text-md-left(name='members') + i.fa.fa-users(aria-hidden='true') + span.d-none.d-md-inline Membres + sib-route.d-none(name='member', id-prefix=`${sdn}/members/`) + sib-route.nav-item.pb-2.align-self-stretch.text-center.text-md-left(name='projects') + i.fa.fa-tasks(aria-hidden='true') + span.d-none.d-md-inline Projets + sib-route.d-none(name='project', id-prefix=`${sdn}/projects/`) + sib-route(name='client-create') New client + sib-route.nav-item.pb-2.align-self-stretch.text-center.text-md-left(name='channels') + i.fa.fa-comments(aria-hidden='true') + span.d-none.d-md-inline Network + sib-route.d-none(name='channel', id-prefix=`${sdn}/channels/`) + .col-2.col-md-1 + #search-bar + input#search-input.form-control(placeholder='ctrl + k', type='search') + i#search-icon.fa.fa-search(aria-hidden='true') + i#close-search-icon.fa.fa-times(aria-hidden='true') diff --git a/src/html/project-chat.html b/src/html/project-chat.html deleted file mode 100644 index 0831813..0000000 --- a/src/html/project-chat.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/html/project-chat.pug b/src/html/project-chat.pug new file mode 100644 index 0000000..5d59065 --- /dev/null +++ b/src/html/project-chat.pug @@ -0,0 +1 @@ +#project-chat.chat-view(style='display: none', bind-resources='') diff --git a/src/html/project-create.html b/src/html/project-create.html deleted file mode 100644 index 9139602..0000000 --- a/src/html/project-create.html +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/src/html/project-create.pug b/src/html/project-create.pug new file mode 100644 index 0000000..69a9607 --- /dev/null +++ b/src/html/project-create.pug @@ -0,0 +1,7 @@ +#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/` + ) diff --git a/src/html/project-edit.html b/src/html/project-edit.html deleted file mode 100644 index c2471fc..0000000 --- a/src/html/project-edit.html +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/src/html/project-edit.pug b/src/html/project-edit.pug new file mode 100644 index 0000000..dd6c902 --- /dev/null +++ b/src/html/project-edit.pug @@ -0,0 +1,7 @@ +#project-edit(style='display: none') + sib-form( + range-client=`${sdn}/clients/`, + widget-team='sib-form-multiple-dropdown', + range-team=`${sdn}/members/`, + bind-resources='' + ) diff --git a/src/html/project-profile.html b/src/html/project-profile.html deleted file mode 100644 index 0d2ad8b..0000000 --- a/src/html/project-profile.html +++ /dev/null @@ -1,19 +0,0 @@ - - diff --git a/src/html/project-profile.pug b/src/html/project-profile.pug new file mode 100644 index 0000000..6db2091 --- /dev/null +++ b/src/html/project-profile.pug @@ -0,0 +1,15 @@ +#project-profile(style='display: none') + sib-display( + data-fields='name, number, client', + widget-client='hdapp-client', + bind-resources='' + ) + h2 Team + sib-display.members-list-condensed( + id-suffix='team', + data-fields='avatar, user', + widget-avatar='sib-display-img', + widget-user='hdapp-userinfo', + next='member', + bind-resources='' + ) diff --git a/src/html/project.php b/src/html/project.php deleted file mode 100644 index 68ccc94..0000000 --- a/src/html/project.php +++ /dev/null @@ -1,23 +0,0 @@ - diff --git a/src/html/project.pug b/src/html/project.pug new file mode 100644 index 0000000..c027c26 --- /dev/null +++ b/src/html/project.pug @@ -0,0 +1,15 @@ +#project(style='display: none') + sib-router#project-router(default-route='project-profile') + sib-route(name='project-chat') + button Chat + sib-route(name='project-profile') + button Voir + sib-route(name='project-edit') + button Éditer + sib-route(name='project-create') + button Nouveau + #project-views-container + include project-chat.pug + include project-profile.pug + include project-edit.pug + include project-create.pug diff --git a/src/html/projects.html b/src/html/projects.pug similarity index 61% rename from src/html/projects.html rename to src/html/projects.pug index 75089b5..942bf1f 100644 --- a/src/html/projects.html +++ b/src/html/projects.pug @@ -1,4 +1,4 @@ - - - +#projects(style='display: none') + sib-display( + data-src=`${sdn}/projects/`, + data-fields='number, client, name', + widget-client='hdapp-client', + search-fields='number, name', + next='project' + ) diff --git a/src/html/search.html b/src/html/search.html deleted file mode 100644 index b3f5969..0000000 --- a/src/html/search.html +++ /dev/null @@ -1,35 +0,0 @@ -
-
- - - - - -
-
diff --git a/src/html/search.pug b/src/html/search.pug new file mode 100644 index 0000000..8d809aa --- /dev/null +++ b/src/html/search.pug @@ -0,0 +1,26 @@ +#search-view + .content.container-fluid + ldp-display#search-results-members.list-condensed( + data-src=`${sdn}/members/`, + set-name='firstname, name-separator, lastname', + value-name-separator=' ', + data-fields='avatar, name', + widget-avatar='ldp-display-img', + search-fields='firstname, lastname', + next='member' + ) + ldp-display#search-results-projects.list-condensed( + data-src=`${sdn}/projects/`, + set-title='number, after-num-separator, name', + value-after-num-separator=' - ', + data-fields='client, title', + widget-client='ldp-display-client', + search-fields='number, name', + next='project' + ) + ldp-display#search-results-channels( + data-src=`${sdn}/channels/`, + data-fields='name', + search-fields='name', + next='channel' + )