Failed to execute template. Cause: [Access denied when checking [script] access to [xwiki:Collaboratory.UX.HbpSkin.WebHome] for user [xwiki:XWiki.Admin]]. Click on this message for details.

Context Search - HBP Wiki

IAM21 instance, do not create collab nor modify a team, your changes will be lost


Context Search

Version 26.70 by bougault on 2022/11/17 10:15

import {LitElement, html} from 'https://cdn.jsdelivr.net/gh/lit/dist@2/core/lit-core.min.js';
window.addEventListener('DOMContentLoaded', function() {

  class UnifiedSearch extends LitElement {
    /*
    static properties = {
      searchText: { type: String },
      favoritesFilter: { type: Boolean },
      administratorFilter: { type: Boolean },
      editorFilter: { type: Boolean },
      viewerFilter: { type: Boolean },
      publicFilter: { type: Boolean },
      privateFilter: { type: Boolean },
    }
    */
    constructor() {
      super();
      this.searchText = "";
      this.administrator = false;
      this.editor = false;
      this.viewer = false;
      this.rolesFilter = [];
      this.filterUrl = new URL(`${document.location.origin}/rest/v1/collabs?search=&offset=0&orderField=title&order=asc&favorite=true&roles=`);
    }
    toggleRoleFilter(roleName) {
      if(this.rolesFilter.indexOf(roleName) == -1) {
        this.rolesFilter.push(roleName);
      } else {
        this.rolesFilter.filter(role => role !== roleName);
      }
      this[roleName] = !this[roleName];
      this.filterUrl.searchParams.set('roles', this.rolesFilter.join("+"));
    }
    setSearchText(e) {
      this.searchText = e.target.value;
    }
    handleSearch() {
      console.log(this.searchText);
    }
    buildFilter() {
      //https://wiki-dev.ebrains.eu/rest/v1/collabs?search=&offset=0&orderField=title&order=asc&favorite=true&roles=
    }
    render() {
      return html`
` } } customElements.define('clb-unified-search', UnifiedSearch); function handleXWikiSearch(space, callback) { require(['jquery'], function($) { var solrServiceURL = new XWiki.Document('SuggestSolrService', 'XWiki').getURL('get'); const contextSearchButton = document.getElementById("context-search-button"); const xwikiSpace = space ? `.${space}` : ''; contextSearchButton.addEventListener('click', function() { $.post(solrServiceURL, { outputSyntax: 'plain', media: 'json', query: [ 'q="__INPUT__"~100', 'fq=type:DOCUMENT', `fq=space:Collabs${xwikiSpace}.*` ].join('\n'), input: $('#context-search-text').val() }).then(res => { if(callback) { callback(res).then(results => { contextSearchResponse.innerText = JSON.stringify(results, null, 2); }) } else { contextSearchResponse.innerText = JSON.stringify(res, null, 2); } }); }); }); } });