[CUBA-component] Taggable - preview

Hi,

i created a cuba app-component that you can use. It is in preview mode currently. Before releasing it “officially” i would like to get your feedback on it. It is open source (Apache 2 license) and you can find it on github:

CUBA component - Taggable

This application component let’s you enhance your entities with a generic tagging functionality.

Installation

  1. taggable is available in the CUBA marketplace
  2. Select a version of the add-on which is compatible with the platform version used in your project:
Platform Version Add-on Version
6.9.x 0.1.x

The latest version is: Download

Add custom application component to your project:

  • Artifact group: de.diedavids.cuba.taggable
  • Artifact name: taggable-global
  • Version: add-on version
dependencies {
  appComponent("de.diedavids.cuba.taggable:taggable-global:*addon-version*")
}

Using the application component

    @WithTags(listComponent = "customersTable", showTagsInList = true, showTagsAsLink = true, tagLinkOpenType = "NEW_TAB")
    class CustomerBrowse extends AnnotatableAbstractLookup {
    
    }

With that your Customer entity will be taggable and might look like the following:

1-customer-browse-with-tags

Example usage

To see this application component in action, check out this example: cuba-example-using-taggable.

3 Likes

Hello @mario,

Looks like it doesn’t work with screen based on EntityCombinedScreen because it should be inherited from AnnotatableAbstractLookup.

Can you suggest some workaround for that?
Maybe there is a reason to make AnnotatableAbstractLookup as an interface, what do you think?

Hi,

I just released taggable 0.4.0 for @CubaPlatform. It contains the ability to use contexts for your tags; use persistent attributes to filter for tags as well as CUBA 7 support (including new screens API support). There you go: https://github.com/mariodavid/cuba-component-taggable

Hi @matroskeen,

in version 0.4.0 your problem should be gone if you use the interface WithTagsSupport and CUBA 7 screens API.

Bye
Mario

1 Like

Hi, Mario.
I’m interested in using your Taggable add-on in Cuba-Platform 7.2.18. First, I created a new Cuba Project from your example project https://github.com/mariodavid/cuba-example-using-taggable.git but next errors appear after creating the project:

A problem occurred configuring root project 'cuba-example-using-taggable'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve com.haulmont.gradle:cuba-plugin:7.2.1.
     Required by:
         project :
      > Could not resolve com.haulmont.gradle:cuba-plugin:7.2.1.
         > Could not get resource 'https://dl.bintray.com/mariodavid/cuba-components/com/haulmont/gradle/cuba-plugin/7.2.1/cuba-plugin-7.2.1.pom'.
            > Could not GET 'https://dl.bintray.com/mariodavid/cuba-components/com/haulmont/gradle/cuba-plugin/7.2.1/cuba-plugin-7.2.1.pom'. Received status code 502 from server: Bad Gateway

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

I suppose the reason is the shutdown of Bintray repository. Do you have migrate the content to another repository? Is it possible to get another project with updated references?

Another more question, will this addon be migrated to Jmix?
Thanks, Mario, for your contributions.
Regards

Hi @xavier,

You are right, it’s because of bintray. That’s a little unfortunate, but I just forgot to search for some other solution. For Jmix we now use another approach by proxying GItHub Artifacts through the Jmix nexus repo.

@krivopustov perhaps we can mirror that approach for the Cuba addons, wdyt?

Regarding Jmix migration: yes it will be migrated. In fact for this particular addon i’m at 90%. The missing functionality is mainly the migration scripts from Cuba.

You can already take a look at it here: https://github.com/mariodavid/jmix-taggable

Cheers
Mario

1 Like

Btw, you can for testing purposes just download the clone the taggable addon sources and do a gradlew install so put it into your local maven repo or into your own hosted nexus. Both options will work in any case.

Thanks, Mario.
I’ll follow your suggestion.
Best regards,

Xavier

Hi @mario

All current CUBA add-ons are now available at repo.cuba-platform.com.
If an add-on requires an update, we’ll provide the add-on’s author with personal credentials to upload to this repo.

Regards,
Konstantin