Coder Social home page Coder Social logo

directory's Introduction

Vaadin Directory project

Visit at vaadin.com/directory/

Vaadin Directory is the place to share Vaadin add-ons: Sophisticated client-server Java and Web Components compatible with Vaadin Flow and Vaadin Framework.

Read more about Vaadin at vaadin.com/developers and how to publish your own Vaadin Add-ons at vaadin.com/directory/help.

Building and running

While the admin UI based on Vaadin, the search is built with Hilla (previously known as Vaadin Fusion) with Java 17 and Lit.

(Note: This project depends on a separate backend project, and before byilding you should have installed that.)

Build and run development mode using Maven:

mvn install

Build Docker image:

export DOCKER_BUILDKIT=0
docker build --progress plain -t vaadin/directory . > docker.build.log

Run Docker image:

docker run -p 8080:8080 vaadin/directory

Application is running at localhost:8080.

directory's People

Contributors

jouni avatar marcushellberg avatar mstahv avatar samie avatar tarekoraby avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

mlopezfc

directory's Issues

Filtering by author is not working properly

If the author name contain spaces, when clicking the hyperlink that navigates to the search with the string "author:A given author" then the search doesn't return results if there are spaces on the name.

Allow selecting text from the `Install -> Maven POM` snippet

When using the Install -> Maven POM feature, the example content is copied to the clipboard, but it contains both the dependency and the repository
If the repository configuration is already present in the project, it would be nice to be able to copy only the dependency, but currently it seems it is not possible to select only a part of the snippet.

When clicking to start the selection, it seems like the server is called, since the blue progress bar at the top of the page is shown.

image

Version selection should update the URL

If I search for something, e.g. "chart", I end up in https://vaadin.com/directory-beta/?q=chart. Then I add a filter to e.g. Vaadin 14. I'd like to send a link of the search results to someone who is interested in Vaadin 14 chart add-ons, but the URL is not updated so I can only send a link to the page with all versions.

Single quotes in add-on description break the discussions.

Example: https://vaadin.com/directory/component/grid-exporter-add-on includes the discussion using:

<iframe 
id="discussion-iframe" 
src="https://vaadin.com/vaadincom/discussion-service/embed.html?root=DIRECTORY&amp;id=24801&amp;url=/directory/component/grid-exporter-add-on&amp;name=Grid%20Exporter%20Add-on&amp;description=Extension%20for%20exporting%20Vaadin's%20grid%20data%20to%20common%20formats" 
scrolling="no" 
style="overflow: hidden; height: 156px;">
</iframe>

Instead of single quote a HTML entity &#39; should be used.

Some images look really bad

A couple of potential design defects:

Display edit button in the addon page

As an author

I would like to see an an "Edit" button in the addon page, and navigate back to the addon after saving changes.

So that

  • I can enter edition from the addon instead of going back through "My components"
  • I have a one-click way of entering edition when I notice an error.
  • I'm able to observe how the changes look after editing (and fix them in case I entered something wrong).
  • I can easily correct the compatibility matrix, which involves editing different versions of the addon.

Show images as a carousel

If a given addon contains several screenshots, when clicking on one of them there is no option for going to the next screenshot.
It would be nice that when the screenshots are shown, you could go to the next one with a carousel.

"Publish component" path issues

Sometimes when I click on "Publish component", my-components is added to the end of the current path.

Here are a couple ways to reproduce this odd behavior:

  1. Start at https://vaadin.com/directory/.
  2. Click on any component card.
  3. Click on "Publish component".
  4. Go back in your browser.
  5. Click on "Publish component".

or

  1. Start at https://vaadin.com/directory/.
  2. Click on any component card.
  3. Click on the "Back" button (above the title icon).
  4. Click on "Publish component".

Parameterize HaaS resources

For proper environment isolation and testing HaaS resources should be parameterized.
Use case: To be able to run the app against production or staging HaaS.

Allow numbers in add-on names

Currently, numbers are not allowed when uploading a new add-on. There might be no real (technical or logical) reason to limit using numbers in the add-on names. And we should relax this requirement.

Note: artifact names ideas still have the limitation based on Maven. It would be very good to link to these instruction limitation somewhere in the upload dialog.

Atom feed updated too often

The Atom feed contains list of component updates about "new uploaded versions". However currently it also includes components that only have been edited for metadata.

Add an option to save/mark components

It would be nice to have a save/mark option like in Github for the directory to save components that are interesting or could be helpful in the future. Currently, I store the links in an issue, but that is cumbersome and needs time.

missing edit button when opening page

When I search for my component via google and go to its url directly, there is no edit-link under Links, even though I am automatically logged in.
To get the edit-link, I need to click on the back link, search for my component and select it. This returns me to the same url as before, but this time the edit-link is there...

Dynamically created PDF can Not be exported

In the demo sample (BasicPdfViewerExample) the file (/pdf/example.pdf) is loaded by the class loader (getClass().getResourceAsStream(..)).
And the example works! :-)
If I create a pdf dynamically (via class PdfCreator uses the Java library pdfbox) and hand it over to the PdfViewer, the file can not be downloaded!

Any help is appreciated! Thanks!
PdfViewer_Issue.zip

(Technically spoken: Whether the solution works depends on the implementation of the InputStream.)

Option for mirroring a GitHub repo

Instead of duplicating content in both Directory and GitHub, it would be great if Directory offered an option to mirror the contents from a GitHub repo directly. This would include the repo description (add-on summary), readme (add-on description), releases including release notes, license.

In addition, it would be nice if Directory showed direct links to reporting issues in GitHub (and perhaps showed the issue count), and showed the repo star count (vanity metric, could be used in search ranking).

Make tags more visible

Tags are currently hard to find as they are below the discussions and not visible on the listing page.

Allow to use custom field provider not by property name but by property type

I would like to centralize making all columns of a given type to be handled in a specific way. Currently it's allowed to set values for specific properties, only.

in AbstractAutoGeneratedCrudFormFactory:

    protected HasValueAndElement buildField(CrudFormConfiguration configuration, String property, Class<?> propertyType, T domainObject) throws InstantiationException, IllegalAccessException {
        HasValueAndElement<?, ?> field;
        FieldProvider<?, T> provider = (FieldProvider<?, T>) configuration.getFieldProviders().get(property);

        if (provider != null) {
            field = provider.buildField(domainObject);
        } else {
            Class<? extends HasValueAndElement<?, ?>> fieldType = configuration.getFieldTypes().get(property);
            if (fieldType != null) {
                field = fieldType.newInstance();
            } else {
                field = new DefaultFieldProvider(propertyType).buildField(domainObject);
            }
        }

it would be great if it was possible to override

                field = new DefaultFieldProvider(propertyType).buildField(domainObject);

by changing
new DefaultFieldProvider(propertyType) to a new method getFieldProvider(propertyType) and make it overridable.

Or, is there any other better way to achieve this?

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.