Skip to content
Snippets Groups Projects
menu-left.pug 11.1 KiB
Newer Older
solid-form-search(
  id='general-search'
  class='segment block form menu-search'
  fields='name'
  search-name='circle.name, project.customer.name, project.name, contact.username, contact.name'
  order-asc-names='name'

  placeholder-name=''
  data-trans='placeholder-name=menuLeft.search'
  widget-name="solid-form-placeholder-text"

  submit-button=""
  submit-widget="button"
  class-submit-button="icon children-icon-magnifier"
)
div.divider
solid-router#navbar-router(default-route=defaultRoute)
  for component of components
    if component.route
      if component.type == "about"
        solid-route(name=component.route, hidden)
      if component.type == "dashboard"
        solid-route.menu-tab.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.transparent-background.hover.active(name=component.route)
          div.segment.margin-right-xxsmall
            div.icon.icon-small&attributes({"class": component.parameters.icon})
          div.segment.text-uppercase.text-letter-spacing-large(data-trans=`${component.name?component.name:"menuLeft.dashboard"}`)
      if component.type == "communities"
        solid-route.menu.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.hover.active(name=component.route)
          div.segment.margin-right-xxsmall
            div.segment.icon.icon-small.icon-grid
          div.segment.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.communities")
        div.divider
      if component.type == "circles"
        div.jsMenuTab
          div.menu-header.segment.full.padding-xsmall.text-semibold.text-color-white.bg-color-heading.transparent-background.hover.cursor-pointer.jsMenuHeader
            div.segment.margin-right-xxsmall.jsMenuArrow
              div.segment.icon.icon-small.icon-arrow-down
            div.segment.half.text-uppercase.text-letter-spacing-large(data-trans=`${component.name?component.name:"menuLeft.circles"}`)
            if componentSet.has("admin")
              div.menu-options.segment.jsMenuOption
                div.menu-icon.icon.icon-small.icon-options-vertical
              div.menu-admin.segment.bg-color-white.shadow.text-color-secondary.padding-xxsmall.whitespace-normal.hidden.jsMenuAdmin
                span.segment.full.one-line-ellipsis.padding-xxsmall.sm-padding-xsmall.lg-hidden(data-trans="menuLeft.closeMenu" onclick="this.parentElement.classList.toggle('hidden', true)")
                solid-link.segment.full.one-line-ellipsis.padding-xxsmall.sm-padding-xsmall(next=`admin-${component.route}` data-trans="menuLeft.circlesBrowse")
                solid-link.segment.full.one-line-ellipsis.padding-xxsmall.sm-padding-xsmall(next=`admin-${component.route}-create` data-trans="menuLeft.circleCreate")
            solid-badge.badge(data-type="Mention" data-rdf-type="hd:circle")
Gaëlle Morin's avatar
Gaëlle Morin committed
          solid-route(name=`admin-${component.route}` hidden)
          solid-route(name=`admin-${component.route}-create` hidden)
          solid-route(name=`admin-${component.route}-leave` hidden)
          solid-route(name=component.route rdf-type='hd:circle' use-id='' hidden)
          solid-route(name=`${component.route}-left` hidden)
          div.sub-menu.menu-notification.padding-bottom-xxsmall.jsMenuSub
            div.loader.loader-menu(id=`loader-${component.route}`)
              div
              div
              div
              div
            solid-display.ellipsis(
              bind-user
              nested-field='circles'
              fields='circle'
              loader-id=`loader-${component.route}`
              empty-widget='orbit-menu-empty'
              empty-value=''
              data-trans="empty-value=menuLeft.emptyCircleProject.circle"
              widget-circle='orbit-menu-fix-url-circle'
              order-asc="circle.name"
              filtered-by="general-search"
            )
        div.divider
      if component.type == "chat"
        div.jsMenuTab
          div.menu-header.segment.full.padding-xsmall.text-semibold.text-color-white.bg-color-heading.transparent-background.hover.cursor-pointer.jsMenuHeader
            div.segment.margin-right-xxsmall.jsMenuArrow
              div.segment.icon.icon-small.icon-arrow-down
            div.segment.half.text-uppercase.text-letter-spacing-large(data-trans=`${component.name?component.name:"menuLeft.messages"}`)
            if componentSet.has("directory")
              div.menu-options.segment.jsMenuOption
                solid-link.segment.block.menu-icon.icon.icon-small.icon-user-follow(next=getRoute('directory', true))
            solid-badge.badge(data-type="Message")
          solid-route(name=`admin-${component.route}`, hidden)
          solid-route(name=`admin-${component.route}-create` use-id='' 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}`)
              div
              div
              div
              div
            solid-display.sub-menu__contacts.segment.full.children-full.whitespace-normal(
              bind-user
              nested-field='contacts'
              loader-id=`loader-${component.route}`
              empty-widget='orbit-menu-empty'
              widget-contact='orbit-menu-fix-url-contact'
              widget-id='orbit-menu-contact-removed'
              filtered-by="general-search"
              order-asc="contact.name"
plup's avatar
plup committed
      if component.type == "rocketchat"
        solid-route.menu-tab.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.transparent-background.hover.active(name=component.route)
          div.segment.margin-right-xxsmall
            div.segment.icon.icon-small.ci-chat
plup's avatar
plup committed
          div.segment.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.rocketchat")
        div.divider
      if component.type == "projects"
        div.jsMenuTab
          div.menu-header.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.transparent-background.hover.active.cursor-pointer.jsMenuHeader
            div.segment.margin-right-xxsmall.jsMenuArrow
              div.segment.icon.icon-small.icon-arrow-down
            div.segment.half.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.projects")
            if componentSet.has("admin")
              div.menu-options.segment.jsMenuOption
                div.menu-icon.icon.icon-small.icon-options-vertical
              div.menu-admin.segment.bg-color-white.shadow.text-color-secondary.padding-xxsmall.whitespace-normal.hidden.jsMenuAdmin
                span.segment.full.one-line-ellipsis.padding-xxsmall.sm-padding-xsmall.lg-hidden(data-trans="menuLeft.closeMenu" onclick="this.parentElement.classList.toggle('hidden', true)")
                solid-link.segment.full.one-line-ellipsis.padding-xxsmall.sm-padding-xsmall(next=`admin-${component.route}` data-trans="menuLeft.projectsBrowse")
                solid-link.segment.full.one-line-ellipsis.padding-xxsmall.sm-padding-xsmall(next=`admin-${component.route}-create` data-trans="menuLeft.projectCreate")
            solid-badge.badge(data-type="Mention" data-rdf-type="hd:project")
          solid-route(name=`admin-${component.route}`, hidden)
          solid-route(name=`admin-${component.route}-create`, hidden)
          solid-route(name=component.route, rdf-type='hd:project', use-id='', hidden)
          solid-route(name=`${component.route}-left`, hidden)
          div.sub-menu.menu-notification.padding-bottom-xxsmall.jsMenuSub
            div.loader.loader-menu(id=`loader-${component.route}`)
              div
              div
              div
              div
            solid-display.ellipsis(
              bind-user
              nested-field='projects'
              fields='project'
              loader-id=`loader-${component.route}`
              empty-widget='orbit-menu-empty'
              data-trans="empty-value=menuLeft.emptyCircleProject.project"
              widget-project='orbit-menu-fix-url-project'
              filtered-by="general-search"
              order-asc="project.customer.name"
      if component.type == "directory"
        solid-route.menu-tab.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.transparent-background.hover.active(name=component.route)
          div.segment.margin-right-xxsmall
            div.icon.icon-small.icon-people
          div.segment.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.profileDirectory")
        div.divider
      if component.type == "job-board"
        solid-route.menu-tab.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.transparent-background.hover.active(name=component.route)
          div.segment.margin-right-xxsmall
            div.segment.icon.icon-small.icon-briefcase
          div.segment.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.jobBoard")
          solid-badge.badge(data-type="JobOffer" data-rdf-type="hd:joboffer")
        div.divider
      if component.type == "resources"
        solid-route.menu-tab.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.transparent-background.hover.active(name=component.route)
          div.segment.margin-right-xxsmall
            div.segment.icon.icon-small.icon-docs
          div.segment.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.resources")
        div.divider
      if component.type == "polls"
        solid-route.menu-tab.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.transparent-background.hover.active(name=component.route)
          div.segment.margin-right-xxsmall
            div.segment.icon.icon-small.icon-bubbles
          div.segment.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.gov")
        div.divider
      if component.type == "events"
        solid-route.menu-tab.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.transparent-background.hover.active(name=component.route)
          div.segment.margin-right-xxsmall
            div.segment.icon.icon-small.icon-calendar
          div.segment.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.events")
        div.divider
      if component.type == "link"
        a.menu-tab.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.transparent-background.hover.active(href=component.parameters.target, target="_blank")
          div.segment.margin-right-xxsmall
            div.segment.icon.icon-small&attributes({"class": component.parameters.icon})
          div.segment.text-uppercase.text-letter-spacing-large(data-trans=component.parameters.name)
        div.divider
      if component.experimental
        if component.experimental.includes('menu')
          div.jsMenuTab
            #{"solid-"+component.type+"-menu"}(uniq=component.uniq)
  if componentSet.has('registering')
    solid-route(name='join-community', use-id, hidden)
    solid-route(name='login', hidden)
  
  +hookContent("sub_menu")