I believe Actions UI is all that was moved to contrib: https://www.drupal.org/project/action → .
Core still uses action plugins themselves, like the promote to front/sticky ones you mentioned:
https://git.drupalcode.org/project/drupal/-/tree/11.x/core/modules/node/...
That's what provides the VBO style functionality in core, with the dropdown options in the admin content listing page.
There's also the local actions, defined in yaml files.
I think the Actions UI was an attempt to make local actions configurable, by placing action buttons on pages.
Calling existing actions might work, since those are provided by some contrib modules, we'll be able to cover all existing uses, plus more general capability with how this module's plugins are written for modifying fields of a type.
If we had eca integration, we could call actions through that.
This fixes it. I can't find a change record, but it seems like something changed with entity route handlers.
We don't need a canonical url, right?
I can't reproduce this, but my local is on 10.5.
It's working for me on 10.5 too.
Could you give the steps to reproduce -- when do you get the error?
All I did was create a new action link with the above config. The error appears on save.
And do you have a backtrace please?
It doesn't look very helpful because it's all happening in the routing while trying to generate a link:
Symfony\Component\Routing\Exception\RouteNotFoundException: Route "entity.action_link.canonical" does not exist. in Drupal\Core\Routing\RouteProvider->getRouteByName() (line 214 of core/lib/Drupal/Core/Routing/RouteProvider.php).
Drupal\Core\Routing\UrlGenerator->getRoute() (Line: 290)
Drupal\Core\Routing\UrlGenerator->generateFromRoute() (Line: 105)
Drupal\Core\Render\MetadataBubblingUrlGenerator->generateFromRoute() (Line: 773)
Drupal\Core\Url->toString() (Line: 176)
Drupal\Core\Utility\LinkGenerator->generate() (Line: 104)
Drupal\Core\Render\Element\Link::preRenderLink()
...
I was able to install this by adding the issue fork as a composer repository:
{
"type": "vcs",
"url": "git@git.drupal.org:issue/workspace_approval-3510809.git"
},Then installing with:
ddev composer require drupal/workspace_approval:dev-3510809-not-installable-on
I tried it with UI Patterns and I see what you mean. I could only access one of the custom subfields.
I have moved from sdc_block/display to UI Patterns, but I think a UI Patterns Custom Field extension would help.
I think canvas shares a mechanism with UI Patterns for using the component schema as the config form. Maybe that's what's missing support for the subfields. SDC Display uses CL Editorial, which I think is on the way out, or only used in a subset of modules.
I also tried using tokens, but to access subfields, you need to add a delta value. So this didn't work for using UI Patterns component per field item.
This is no longer an issue.
I don't have any of the hide view/block options enabled now, but a view with no results is not showing the block title.
This may be a result of certain configuration differences. This might be a problem if you actually want to show the title for empty results.
The options to hide the view for empty results should be fixed for toggling it.
To answer the question, these do different things.
ViewField is a field that references a view. For example, creating a paragraph that allows the user to select from a list of available views.
Views Field Formatter allows devs to use a view to format a field value.
If you like the way SDC Display and UI Patterns work, what is the advantage of creating a custom solution within this module?
I think Canvas will also handle this.
I think we just need to add hx-swap="afterend".
This is mentioned on the parent issue: https://www.drupal.org/project/documentation/issues/3535179#comment-1631... 📌 [Meta] Provide operations that replace existing Ajax API commands Active
Linking to similar commands.
I tried to use the #53 3.x patch with 3.3.5, but it's not working (no change to permission blockers).
mortona2k → made their first commit to this issue’s fork.
Here is a full example of dialog native using htmx:
{{ attach_library('dialog_native/dialogNative') }}
<button
hx-get="/htmx/node/1/teaser"
hx-target="#dialog-container"
hx-on:htmx:after-request="Drupal.dialog(this.parentElement.querySelector('#dialog-container'))"
>Click me</button>
<div id="dialog-container"></div>I'm not sure how else to initialize the dialog after htmx loads the node, but this works.
I took a closer look at HTMX Dialog.
It implements a bootstrap modal dialog in the htmx-dialog component.
A button is needed to launch it:
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#htmx-dialog-container">
Launch demo modal
</button>There is a route and controller provided: /htmx-dialog/{entityType}/{entity}/{viewMode}.
This extends core's HtmxEntityViewController->view() function to wrap the rendered entity in the htmx_dialog:htmx-dialog component.
To implement the htmx callback, simply add hx-get and hx-target attributions to the button:
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#htmx-dialog-container"
hx-get="/htmx-dialog/node/1/default?_wrapper_format=drupal_htmx"
hx-target="#htmx-dialog-container .modal-dialog">
Launch demo modal
</button>hx-get use the module's route that renders the content in a dialog component. On the front end, bootstrap loads the modal.
So unless we want to render the dialog server side (do we?), I don't think HTMX Dialog offers anything except for some ideas and example code. This could work for other frameworks that have dialog components.
As an example, here's a recipe variation for adding a logger to the tasks with ECA.
I figured out how to trigger the RefreshView event with the invoke command. The required input format is a bit tricky and I couldn't find an example. This is provided by the core views ajax js.
And it's now filtering for the flag path with a route match.
Yep the idea is to use ECA for the refresh instead of this extra module.
I’m also investigating htmx, which would need an endpoint to render the returned html like you describe. I think views Ajax already provides a route for that, but ECA endpoints rendering individual items could be very powerful. I’m thinking of trying this as a replacement for quick edit as well.
I was able to use that event to set a message, but couldn't figure out how to trigger the view refresh.
I tried using Ajax Response: Invoke and passing in the view class. That doesn't seem to work. I tried with method: RefreshView and also method: trigger, argument: RefreshView.
I can type this into the browser console and it works: jQuery('.view-display-id-block').trigger('RefreshView').
I'm running into problems saving the ECA now. I need to figure out how to filter the event for just the flag callback, not sure how to do that yet.
Fixed by calling trigger('RefreshView') as per ajax_view.js.
Composer patches are applied after calculating dependencies, so you can't use patches to fix version conflicts.
There is an exception to this when using the lenient repository, but only if the conflict is with drupal core, and not on other modules like it is here.
To test a merge request with updated dependencies, add the issue fork as a composer repository:
"repositories": [
{
"type": "vcs",
"url": "git@git.drupal.org:issue/views_flag_refresh-3543385.git"
},
]Then require the branch with composer, prefixed with "dev-".
ddev composer require drupal/views_flag_refresh:dev-3543385-support-flag-v.5
I recently hit this too, while setting up tabs and tab field hero’ groups.
Is this issue related?
https://www.drupal.org/project/drupal/issues/1310642
🐛
Adding drupal_add_tabledrag() support for parents with depth 0
Needs work
I just tried the Uppy module: https://www.drupal.org/project/uppy →
It provides a field widget for file fields, which can be set up on a media item form.
I created an issue to investigate adding it to the default media library bulk upload widget.
mortona2k → made their first commit to this issue’s fork.
Patch #31 applies. No other changes from #29.
Try testing by changing the theme: {"theme": "forest"} or {"theme": "dark"}.
Removed form_mode: null
Looks like this is from Add Content By Bundle missing a schema definition for the form display when using Form Mode Control.
TODO: fix that, or move to Tasks Extras?
Removed default_argument_skip_url: false
Per this change record:
https://www.drupal.org/node/3382316 →
Changed draggable_views_pass_arguments: false to 0
views.view.tasks:display.default.display_options.sorts.weight.draggable_views_pass_arguments variable type is boolean but applied schema class is Drupal\Core\TypedData\Plugin\DataType\IntegerData
This is necessary for the 2.1.4 release
But the 2.1.x/2.2.x branch have it as a boolean
Here's how to add the project repository as a composer repo and install the 2.x branch as a recipe.
First, in composer.json, make sure you have the drupal-recipe package type defined:
"extra": {
"installer-paths": {
"recipes/{$name}": [
"type:drupal-recipe"
]
}
}Then add the gitlab repository as a vcs composer repo:
"repositories": [
{
"type": "vcs",
"url": "git@git.drupal.org:project/tasks.git"
},
]Now you can require it with composer:
ddev composer require drupal/tasks:^2.0 (Beta)
ddev composer require drupal/tasks:2.0.x-dev (Dev)
And install with drush:
ddev drush recipe ../recipes/tasks
Media Library Bulk Upload is considering marking itself deprecated 💬 Should media_library_bulk_upload be made obsolete? Active if the dropzone library issue can be resolved in Media Bulk Upload. 📌 Make Dropzone fully optional Active
The use of jquery once changed a while back: https://www.drupal.org/node/3158256 →
I could use some feedback on this, whether it's the right approach or if I'm missing something about how these plugins should work.
I have been pretty happy with this for a few months now, check it out!
I wonder if there is a way to render a single row and inject it into the view?
Viewfield is documented here: https://www.drupal.org/docs/extending-drupal/contributed-modules/compari... →
This module may need to be added to that list.
mortona2k → made their first commit to this issue’s fork.
This is fixed by the patch in the parent issue, so I believe this one is a duplicate.
Formatter->getConfigDependencyName() is calling $this->id(), but the config does not exist yet.
I think we can skip it in getDependentEntities().
The listings at /listallcomments and /listallnodes are working now.
Trying to merge 5.x.
In LinkHtmlTest.php, doFlagNode(), some changes were made that may have been a mistake?
I kept the code from this issue, because it's needed to check the token I think.
See:
https://git.drupalcode.org/project/flag/-/commit/12d60c15bae663f2f05ef95...
There is no mention of why the code in the test was changed in the ticket: https://www.drupal.org/project/flag/issues/3538393 ✨ Suggestion for an additional flagging cache tag Active
mortona2k → made their first commit to this issue’s fork.
Flag 5.x has no breaking changes listed.
I don't see any breaking changes in the Flag 5.x releases, so this is probably good to go.
See #19 🐛 Arbitrary scroll on dialog open Needs work
Here's the ajax commands getting returned. I removed all my custom libraries except for file.css. If I remove that one too, the modal opens.
In the console log below, the core libraries get loaded, but the file.css does not.
Do we need to trigger vite HMR when ajax loads assets?
When I open the media library widget, the vite urls for my libraries are correct but the dialog doesn't open. I don't see the libraries getting loaded in the console, but other, non vite libraries are getting included. I don't see any error/warning, but modal just doesn't open. Removing my custom libraries makes it work again.
This seems similar to https://www.drupal.org/project/drd → .
This one is a duplicate of
https://www.drupal.org/project/views_add_button/issues/3489089
📌
Drupal 11 upgrade requirements for Views Add Button
Active
.
However, there is more work in here, so maybe we should close that one.
Can this one be addressed at the same time?
https://www.drupal.org/project/views_add_button/issues/3519204
🐛
Fix Deprecated function: Creation of dynamic property in ViewsAddButtonService line 58 under PHP 8.2+
Active
I think there is some overlap in the changes.
I installed the patch for testing on d10 and 11 sites. Will report any issues.
Commented out a line that was breaking the Popular Tags widget inside the modal.
I made you an admin and set up the menu.
We still need to get the docs linked in the project sidebar.
I changed the permissions. Thanks for your all your effort in getting things clarified and documented!
Relaxing permission for others to make changes to the menu.
Great, thank you for the quick response!
I added a note to an issue in Views Ajax History: https://www.drupal.org/project/views_ajax_history/issues/3386120#comment... 📌 Improve module UX Active
In this related issue, I suggested that the archive and glossary views could be created with a pager or grouping plugin, as opposed to the summary option under contextual filter. We would need a way to group by date/year, or first char of title, and display the number of items in the group. The archive does not make sense as a pager, but the glossary could be a pager instead of contextual filter setting + attachment.
Configuring views with these settings is quite challenging. The summary setting is difficult to find, and doesn't make much sense to me as a contextual filter option. Also, the result count there overrides the pager options.
The glossary is basically using an attachment as a pager. What if we moved all of this into a pager plugin?
The archive makes less sense as a pager. Is it possible to do this with results grouping and aggregation?
At the top of the issue, wizards are mentioned. There is also Views Templates → , which helps scaffold a view. Maybe something to bring into core? Is the wizard option still available?
A big part of the question is what's the right UX for an interface that has some routine use cases and also highly advanced options that are not very intuitive to regular users. Creating a UI that works for both beginners and experts is a hard problem. Templated setup or a wizard would also help. AI prompting and generating config has potential for sidestepping the issue.
These views are nice to have as long as the capability they demonstrate exists. Maybe they could just be moved into recipes in the standard profile.
I merged dev to rerun the pipelines. Previously it was showing a failure on phpunit, but I don't think that was related to this change.
Now there are only warnings, and they are all coming from other code.
I made the change locally for a quick test and don't see any issues. This is correct usage of the function, so I will mark this as RBTC.
mortona2k → made their first commit to this issue’s fork.
I just saw this module get posted: https://www.drupal.org/project/htmx_dialog → .
I can see the empty text settings in the config form now, but I don't see it appearing.
Linking to the issue for adding empty text to views facets.
I cannot find the empty facet text settings for facets in views w/ BEF.
Was that setting not carried over from 2.x?
The last patch is just setting a class. Is that working?
Can someone in the know please mention on the project page or docs what the plan is for this module, now that this feature has been added to core: Enable bookmarking of AJAX views ✨ Enable bookmarking of AJAX views Needs work .
Looks like that is going into 11.3, so there will be some sites that will want to keep using this until they upgrade. After that, are there any features in the module that are still useful? What will be the upgrade process when we move to 11.3?
Drupal core is adding ajax history capability. In the long run, Views Ajax History may no longer be needed.
Examples were updated.
https://www.drupal.org/docs/extending-drupal/contributed-modules/contrib... →
The documentation page linked above has been updated as requested by @ressa in #3030506.
Can we add the link to the project page and close out this ticket? Or do we need separate d7/8+ documentation?