Slick filter schema is incomplete

Created on 24 November 2023, 12 months ago
Updated 30 November 2023, 12 months ago

Problem/Motivation

The slick_filter text format filter schema is incomplete. We have a dedicated kernel test in our project that checks for schema compliance all config YAMLs store in the config sync directory and these issues were reported.

For reference, this is test we're using to check schema https://git.fpfis.tech.ec.europa.eu/ec-europa/digit-joinup-reference/-/b...

Proposed resolution

Add missed schema.

Remaining tasks

None.

User interface changes

None.

API changes

None.

Data model changes

Complete schema

💬 Support request
Status

Fixed

Version

2.0

Component

Documentation

Created by

🇷🇴Romania claudiu.cristea Arad 🇷🇴

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @claudiu.cristea
  • Merge request !7Add missing schema → (Open) created by claudiu.cristea
  • Status changed to Needs review 12 months ago
  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴
  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴
  • Status changed to Postponed: needs info 12 months ago
  • 🇮🇩Indonesia gausarts

    Thank you

    Does config_inspector reports the same thing?
    If yes, a bug undeed.
    If not, likely that test tools' STAN limitations.

  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴

    When exporting the config creates this YAML

    uuid: 5e41fc3f-ac9f-4211-89b9-b4052feeda6e
    langcode: en
    status: true
    dependencies:
      module:
        - blazy
        - slick
    _core:
      default_config_hash: _EOmoFGHhTjV4rORLrzpQZv9C6rnPb8LVLDoNMqBz7U
    name: 'Basic HTML'
    format: basic_html
    weight: 0
    filters:
      filter_url:
        id: filter_url
        provider: filter
        status: true
        weight: -49
        settings:
          filter_url_length: 72
      filter_html:
        id: filter_html
        provider: filter
        status: true
        weight: -48
        settings:
          allowed_html: '<br> <p> <i> <b> <a hreflang href> <strong> <em> <blockquote> <ul> <ol> <li>'
          filter_html_help: false
          filter_html_nofollow: true
      filter_htmlcorrector:
        id: filter_htmlcorrector
        provider: filter
        status: true
        weight: -41
        settings: {  }
      blazy_filter:
        id: blazy_filter
        provider: blazy
        status: false
        weight: 3
        settings:
          media_switch: ''
          hybrid_style: ''
          box_style: ''
          box_media_style: ''
          box_caption: ''
          filter_tags:
            img: img
            iframe: iframe
          use_data_uri: '0'
      slick_filter:
        id: slick_filter
        provider: slick
        status: false
        weight: 4
        settings:
          caption:
            alt: '0'
            title: '0'
          optionset: default
          layout: ''
          background: false
          box_caption: ''
          box_caption_custom: ''
          box_media_style: ''
          loading: ''
          responsive_image_style: ''
          box_style: ''
          image_style: ''
          media_switch: ''
          ratio: ''
          thumbnail_style: ''
          grid: ''
          grid_medium: ''
          grid_small: ''
          style: ''
          skin: ''
          overridables:
            arrows: '0'
            autoplay: '0'
            dots: '0'
            draggable: '0'
            infinite: '0'
            mouseWheel: '0'
            randomize: '0'
            variableWidth: '0'
          optionset_thumbnail: ''
          skin_thumbnail: ''
          thumbnail_caption: ''
          thumbnail_effect: ''
          thumbnail_position: ''
          override: false
          preserve_keys: false
          visible_items: null
    

    and you cannot find several keys of `slick_filter` defined in the schema, by manually check, I think it's obvious w/o any test/tool

  • 🇮🇩Indonesia gausarts

    Thank you.

    Mind replying to my previous question:
    Does config_inspector report the same thing?

    This is very important to qualify a bug.

    IMHO, manual inspection is sometimes deceiving. Also STAN, so many times I got fatal errors by just listening to STAN suggestions as seen in the latest blazy commits for level 3-5. Not to mention, STAN don't care about BC layers since it only wears horse goggles. And that is another problem as well.

  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴

    Yes, no tool is perfect. Maybe not even config_inspector :) Because right now I'm trying that and it just crashes with...

    TypeError: Drupal\config_inspector\ConfigInspectorManager::getDataType(): Argument #1 ($typed_data) must be of type Drupal\Core\TypedData\TypedDataInterface, null given, called in web/modules/contrib/config_inspector/src/ConfigInspectorManager.php on line 208 in Drupal\config_inspector\ConfigInspectorManager::getDataType() (line 302 of modules/contrib/config_inspector/src/ConfigInspectorManager.php).
    

    Trying to find out why but will take a while

  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴

    Running config inspector with Drush it shows this

    filter.format.basic_html Correct 17% ✅❓

    And I don't know what 17% means. Also, I see with my eyes that the schema is missing.

  • 🇮🇩Indonesia gausarts

    IMHO, Correct 17% does not mention anything about Slick filter, I am afraid. UI reports will cover the entire configs, including those you see as missing.

    I have config_inspector running fine in D9-D10, I would wait for your update from config_inspector UI reports.

    About eyes, my 2 cents, eyes are sometimes being decieved, not undervaluing, nor insults. It happens.

  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴

    With UI I'm getting #8

  • 🇮🇩Indonesia gausarts

    Almost close, but unclear :)

    Mind opening the list or error config, find slick_filter, and screenshot the errors there?

    Must say something Undefined next to slick filter with red errors, if really Slick.

    That would tell exactly the actual errors.

  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴

    Mind opening the list or error config, find slick_filter, and screenshot the errors there?

    There's no slick_filter config. This is the schema of a filter plugin configuration and is part of filter.format.* configs plugin collection

    Managed to run via UI but it shows no errors.

    However, my filter.format.* configs contain data such as filters.slick_filter.settings.layout having an empty string ('') as value. I see this value in the 'config' table but also in exported YAMLs. filters.slick_filter.settings should be covered by filter_settings.slick_filter entry from slick.schema.yml. That schema extends slick_base which has no layout. But slick_base extends blazy_base which is also missing an layout mapping.

    Unless these values ended in config by mistake (but how?) I'm sure my code/config/schema read is correct and I think there's something wrong with the schema that makes config_inspector to not detect this bug

  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴

    OK, I found: filter_settings.slick_filter should be of type "filter", not "slick_base"

  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴

    Here are the errors reported buy conf inspector after https://git.drupalcode.org/project/slick/-/merge_requests/7/diffs?commit... change. See attached file

  • Status changed to Needs review 12 months ago
  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴

    And here's the report after applying the changes from MR

    So,

  • 🇮🇩Indonesia gausarts

    Thank you.

    That is what I meant.

    I am away from laptop now.

    Please do not merge your PR, yet.

    Try saving the filter form manually, and clear cache.

    And screenshot from filter.slick_filter.settings again.

  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴

    I'm not anymore on that install. Sorry

  • Status changed to Fixed 12 months ago
  • 🇮🇩Indonesia gausarts

    Saving the form should make Drupal sync.
    That is how it works.

    Since it is fixable by just saving the form, which you should anyway, it is no longer a bug.

    Feel free to re-open if still an issue.
    Thank you.

  • Status changed to Needs review 12 months ago
  • 🇷🇴Romania claudiu.cristea Arad 🇷🇴

    I'm using 2.10.0.

    I've saved the text format form for filter.format.basic_html. Nothing changed in the config. All values with no schema are still inside config. Then I've created a new text format and saved via UI/form. Again, all those values with no schema are in the config. I'm getting the same config inspector errors as in

    You don't see this because you didn't correct the schema of filter_settings.slick_filter and config_inspector is lying. Please do this change https://git.drupalcode.org/project/slick/-/merge_requests/7/diffs?commit..., clear the cache and repeat #19 and you will clearly see the bug. Again, filter_settings.slick_filter it's an obvious bug. Just search for other `filter_settings.*` and see their type

  • Status changed to Postponed: needs info 12 months ago
  • 🇮🇩Indonesia gausarts

    @claudiu.cristea, I would love to reproduce your issue.

    However I don't see what you see. And when you said "I'm not anymore on that install.", I assumed you were no longer interested in the issue.

    Mind providing more details to re-produce it so that we are on the same page?

    See my attachments. They are fine at my installs for both D9 and D10. Bugs must be reproducible.

    Thank you.

  • 🇮🇩Indonesia gausarts

    Oh, did you clear cache when re-visiting config inspector after re-saving the form?

    Normally clearing cache fixes such an issue.

  • Status changed to Fixed 12 months ago
  • 🇮🇩Indonesia gausarts

    Feel free to re-open if still an issue.

    Thank you.

  • Automatically closed - issue fixed for 2 weeks with no activity.

Production build 0.71.5 2024