Giter Site home page Giter Site logo

search.jboss.org-ui's Introduction

Searchisko Build Status Coverage Status

Searchisko is an open source project that allows to quickly build secured role-based REST service to index, search, retrieve and aggregate content from heterogeneous sources. It can attribute content to people and projects regardless of where the content originated.

Searchisko is Java EE 6 application which runs in the JBoss EAP 6 application server to provide REST API, and using Apache Lucene based full-text search engine and relational database in the background to provide powerful content retrieval, full-text search and aggregation functions.

Searchisko High-level View

Why have we created it?

Initially Searchisko was intended to provide a unified search experience across the multiple applications hosted at jboss.org but over time we realised it could also provide a powerful way to understand how people contribute to upstream projects using these applications and others on the internet.

Documentation

Anyone who would like to use Searchisko or implement a REST client for Searchisko can learn more in the following documentation:

Other resources

License

Copyright 2012 Red Hat Inc. and/or its affiliates and other contributors
as indicated by the @authors tag.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

search.jboss.org-ui's People

Contributors

cheyenneweaver avatar lukas-vlcek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

search.jboss.org-ui's Issues

Add Date pickers to the Date filter tab

Allow exact Date selection (From, To). Add two Date pickers to the date filter tab.
Make it working smoothly with connection to #36 (i.e. when the date is being interactively selected by pointer update From or To values accordingly on the fly).

Histogram data - filter out data out of selected interval

Filter out all histogram data that is out of selected interval.

Reason:
Typically a single document can contribute to several histogram bins thus the histogram can contain data out of selected interval. This is due to the nature of our data (activity_date is an array of dates). It can be confusing for the users so let's try to filter all data out of selected interval before they are displayed in chart.

Histogram visual improvements & fixes

  • Left-hand side axis needs to use different formatter for values greater then 999. It needs to use xK notations. For example 1000 = 1K, 1200 = 1,2K
  • Add chart title: Contributions per month/week/day/hour

user query not populated into search field on browser back

After search results are generated and user clicks on some hit (which leaves the search page) then the search query is not populated in the search field when user navigates back to search results page (using browser history back button).

Display facet counts for content

Display counts for All | Mails | Tickets | Blogs
They can be found in

{
    facets : {
        per_dcp_type_counts : {
            terms : [
                { term : "issue", count : 7429 },   // Tickets
                { term : "blogpost", count : 962 }  // Blogs
            ],
            total : 8391  // All
        }
    }
}

Update contributor info on mouse over on small avatar icons

When mouse over the small avatar icon then update the following information:

  • change name next to the small icons to selected contributor name
  • change large avatar icon on the left hand side to search hit to the selected contributor avatar

[Project list] use code if name is missing

If project name is missing(*) use code value instead to avoid empty DIV.

* this should not generally happen but even if it happens we can use code value as it has to be unique anyway.

Highlight active contributor's icon

For the contributor that is active (i.e. whose name is displayed) make the small icon highlighted. So that both the large and small icons of the contributor will have the same opacity (or something like that).

Create a filter panel parent for handling common functionality.

Filter panel - Project, Author, Content - share common functionality:

  • similar key handler (ESC)
  • similar items selection functionality

Probably what we can try is to have a simple parent to share:

  • filter items selection
  • key handler (ESC)

This one will be used by the content filter. Then we can extend it for Project and Author filters and add query filed handler and two areas of filter items (those that are relevant to current query and those that will be driven by the query field in the filter panel).

Make filter tabs hidden by default

When page is loading very slowly it can happen that content of filter tabs are visible before CSS is applied. Make sure they are hidden (hardcoded inline CSS?).

Pre-cache all large avatars

Once the search results are rendered start pre-caching all large avatar images for all contributors. This can improve responsiveness of mouseover over small icons.

Make this option configurable (optional) because it could be resource intensive and thus it might make sense to disable it for mobile devices or when connectivity is slow.

Related: #31

Simplify printJSTDdeps.sh

Script printJSTDdeps.sh does not have to list all individual scripts. Only the important top level scripts are needed and closurebuilder.py figures the dependencies automatically (similarly to buildForTesting.sh).

Display date interval information in search results

In search results, it would be better to represent date interval instead of a single date for some document types (like forum threads for example). Makes results from filtering more clear as well.

Hint, for older dates, display just yyyy-mm-dd and drop time. For recent documents, it might make sense to display time in greater granularity.

So for example intervals can look like: (2006-3-1, 2013-5-3 10:23)

Display facet counts for Projects

Display counts for Projects
They can be found in

{
    facets : {
        per_project_counts : {
            terms : [
                { term : "seam", count : 2118 },
                { term : "jbosstools", count : 1489 },
                ....
                { term : "jbossmarshalling", count : 1 }
            ],
            total : 6013
        }
    }
}

Highlighting in blogposts can be missing

It seems that relevant blogposts may not always display highlighted snippets in search results showing the generic description field content instead (highlighted fields changed for blogs?)

clean up listeners from D3

Make sure all listeners are cleaned when D3 SVG component is removed from the DOM. So far it seems that transitions with delay are still running behind resulting into possible leaks.

Change mapping of `dcp_content` to multi_field

Currently, the dcp_content field can hold any content-type, specific type is stored in dcp_content_content-type (see DCP Content object).

The problem is we use the dcp_content for highlighting, which is not ideal if it is not plain/text. Try to see if we can use multi_field with automatically selected index analyzer based on dcp_content_content-type value (for example to strip HTML).

Refactor XHR query execution code

Currently, the code that executes XHR queries (based on use input) is too mixed with main search page logic. It needs to be refactored into more independent code and events need to be used to control program flow instead of callbacks.

This will enable at least two important things going forward:

  • better implementation logic of filters (date, author, project,...)
  • allows for easy search results caching layer implementation (especially, when navigating BACK and FORWARD in browser, we do not need to re-execute the same query within 10 seconds interval). This can significantly improve visual response in some cases.

Move "Content" into "Filter"

We are going to have more and more content types. It does not make sense to have "Content" as a separate filter above the "Filter" row. Make it [the Content] just another Filter.

As a result there will just a single row of Filters:

Filters:  Date  |  Project  |  Author  |  Content 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.