[EXTDAM-364] [S3] Performance issue when using RichTextEditor dam link Created: 14/Jun/22  Updated: 26/Aug/22

Status: Open
Project: External DAMs
Component/s: None
Affects Version/s: 1.1.3
Fix Version/s: None

Type: Improvement Priority: Neutral
Reporter: Raphael Falvo Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to EXTDAM-170 [173, 174] (S3) Improve rendering whe... Closed
relates to MGNLUI-6143 RichTextField: use new chooser dialog... Closed
causality
is causing CELUM-44 Rich-Text-Links to external DAM do no... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Date of First Response:
Epic Link: AuthorX improvements
Team: AuthorX

 Description   

Facts:

EXTDAM-170 made S3 asset sub app and S3 damlinkfield rendering of assets much faster when having a lot of assets in single folders.

RichTextField provides the possibility to add dam links, and until recently there was no way to add external dam links, until resolution of MGNLUI-6143.

 

Problem

Unfortunately when trying to add a S3 asset Link in richTextField, navigating into the S3 tree is really slow because it doesn't take advantage of what was implemented in EXTDAM-170

 

Affected customer

The same issue occurs on Celum connector, reported in CELUM-44, and our customer Union Investment is pushing to have a faster rendering when using richTextEditor dam links.



 Comments   
Comment by Roman Kovařík [ 15/Jun/22 ]

Hey

Same way as we have to explicitly configure a performance friendly chooser for linkField, we would need to explicitly configure the richTextField, e.g:

      $type: richTextField
      linkFieldDefinitions:
        website:
          $type: pageLinkField
        dam:
          $type: damLinkField
          chooserId: celum-dam-connector:chooser 

Doesn't seem to be documented though https://docs.magnolia-cms.com/product-docs/6.2/Developing/Templating/Dialog-definition/Field-definition/List-of-fields/Rich-text-field.html

The reason is that Magnolia doesn't have a heuristic to say if we intend to use only s3 assets or also JCR, Bynder in this particular field (custom deployments could provide a type mapping so this config is applied globally).

 

Hope that helps

 

Comment by Raphael Falvo [ 15/Jun/22 ]

Hey rkovarik 

Thanks for your feedback. Yes that's true, this is missing in the documentation, but looking into the code I found out this possibility. The issue is that at customer side, they are using also internal dam. With the above way, you are limiting to only one specific dam

While it's not a problem for a standard link field (they are using a switchableField to store either an external or internal dam link), something similar doesn't exist for richTextField.

This is just brainstorming, but would it be possible for instance to make the link buttons more configurable, so that we could do something like:

$type: richTextField
      linkFieldDefinitions:
        website:
          $type: pageLinkField
        dam:
          $type: damLinkField
        otherDam:           
          $type: damLinkField           
          chooserId: celum-dam-connector:chooser

In that case first button would use a non performant chooser but letting choose any of the configured dams, while the second would let only the access to the external dam with a performant chooser.

Comment by Roman Kovařík [ 15/Jun/22 ]

but would it be possible for instance to make the link buttons more configurable, so that we could do something like:

That would work, but one would need

  1. to explicitly configure another button for otherDam in plugins config and
  2. adjust the field factory (we could make this part easier by adjusting some code)

The issue is that at customer side, they are using also internal dam.

Do they use different DAMs in the same component (or is it because the same dialog is shared across different components)?

Comment by Raphael Falvo [ 15/Jun/22 ]

rkovarik 

Do they use different DAMs in the same component (or is it because the same dialog is shared across different components)

They are using both internal and external dams, so it could happen that an author might need to use a link to internal asset and a link to external asset in the same richTextField

 

We were discussing this option with Teresa, to add this extra button. She made an investigation, but it seems that she had to completely redefine the external plugin, is that correct? Or is there a way to update the external plugin and just add the extra button ? 

I'm not really in favour of redefining completely the plugin config, as we would loose any future changes that would happen on it.

Comment by Roman Kovařík [ 17/Jun/22 ]

Would something like this help (either in ext dam or your project)?

Comment by Raphael Falvo [ 17/Jun/22 ]

Hi rkovarik ,

I've no access to your repository, where you have done the changes. I'd like to run this locally, can you please grant me the access rights ?

Comment by Roman Kovařík [ 17/Jun/22 ]

Hey rfalvo,

You should be able to get any pr via

git fetch origin refs/pull-requests/$1/from:$1 && git checkout $1

where $1 is the PR number (192 in this case).

Comment by Raphael Falvo [ 17/Jun/22 ]

Thanks for above tip rkovarik

I've just been able to test it. Functionality wise it brings this missing possibility of letting the user deciding which chooser he'd like to use, that's cool !

Generated at Mon Feb 12 01:54:28 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.