Account created on 22 November 2010, over 14 years ago
#

Merge Requests

More

Recent comments

🇦🇺Australia acbramley

I can't see any help text on the block types page and searching for "custom block libraries" brings up nothing so it's hard to tell what #34.2 is referring to.

🇦🇺Australia acbramley

I've manually reproduced this issue and looked into how group (or more explicitly the gnode) module works with these routes as well as skimmed through Node previews don't work when adding group node Needs work .

From what I can see, gnode implements its own routes and forms to achieve this functionality and therefore should be in charge of altering the url for the back link.

🇦🇺Australia acbramley

This issue mentions functions that no longer exist. Let's create a new issue with more detail if anything still needs fixing.

🇦🇺Australia acbramley

Given this hasn't had any meaningful activity in 11 years I'm marking this as a won't fix.

I can see many UX issues with what is being proposed in the IS, mainly around different bundles having different fields and data loss.

If anyone is interested in implementing this, I would recommend doing so in contrib and then creating an issue to get buy in for moving the functionality into core.

🇦🇺Australia acbramley

The Create new revision checkbox is no longer tied to the administer nodes permission.

🇦🇺Australia acbramley

Permissions are grouped by module name and Node obviously won't be changed. Content has a much broader scope now that we have content entities. This is a won't fix I think.

🇦🇺Australia acbramley

~14 years since any activity on this one, I think it's safe to close out.

🇦🇺Australia acbramley

This setting is not designed to have any relation to the revisions table. Hiding the date and author information in the table would effectively hide any relevant information. This would likely be undesirable for existing sites which have this setting disabled.

🇦🇺Australia acbramley

I can't think of a feasible way to do this given the unknowns of both the teaser display and the full display of any given node. Given the age of the issue I'm going to close this.

🇦🇺Australia acbramley

The /node page is provided by the frontpage view, the permission to see that path can be modified in the view itself. This is outdated as a new permission doesn't make sense anymore.

🇦🇺Australia acbramley

Can and should we cache a revision list?

I think in a real world scenario we'd almost never hit the bug that this test is hitting. To reproduce it via a browser I had to:

1. Disable the admin theme setting for node.settings
2. Disable the breadcrumb and primary tab blocks (these add the node cache tag)

Without doing this the node cache tag gets added to the page and when editing a node via the UI to create a new revision, the revisions page is purged.

I think it's perfectly reasonable to have a cacheable revisions page, especially since the reason why it isn't is because of a bugged call to addCacheableDependency (which I thought we deprecated in #3232018: Trigger a deprecation when using \Drupal\Core\Cache\RefinableCacheableDependencyTrait::addCacheableDependency with a non CacheableDependencyInterface object but that didn't cover the renderer...)

🇦🇺Australia acbramley

Reversing the terminology and adding the summary line back as well as changing the "developer" wording. Still need to add examples but I'm not sure where they should live (probably under all of the text?) and how detailed we want to be.

🇦🇺Australia acbramley

acbramley changed the visibility of the branch 3490787-remove-exception-when to hidden.

🇦🇺Australia acbramley

Here's the crucial difference:

11.x has node.settings:use_admin_theme defaulting to true https://git.drupalcode.org/project/drupal/-/blob/11.x/core/modules/node/...

11.1.x has it defaulting to false https://git.drupalcode.org/project/drupal/-/blob/11.1.x/core/modules/nod...

DPC has a response policy to blanket deny on admin pages via Drupal\dynamic_page_cache\PageCache\ResponsePolicy\DenyAdminRoutes

This default setting was changed in 📌 Consider using the administration theme when editing or creating content by default Active , does that just need to be committed to 11.1.x?

🇦🇺Australia acbramley

It looks like the difference is to do with some other unrelated cache metadata making this cacheable on 11.1.x when it's not on 11.x (in the context of NodeRevisionsAllTest)

11.x cache headers:

  'Cache-Control' => 'must-revalidate, no-cache, private',
  'X-Drupal-Dynamic-Cache' => 'UNCACHEABLE (response policy)',
  'X-Drupal-Cache-Tags' => 'http_response rendered',
  'X-Drupal-Cache-Contexts' => 'languages:language_interface theme url.query_args user.permissions user.roles:authenticated',
  'X-Drupal-Cache-Max-Age' => '-1 (Permanent)',

11.1.x cache headers:

  'Cache-Control' => 'must-revalidate, no-cache, private',
  'X-Drupal-Dynamic-Cache' => 'HIT',
  'X-Drupal-Cache-Tags' => 'http_response rendered',
  'X-Drupal-Cache-Contexts' => 'languages:language_interface theme url.query_args.pagers:0 url.query_args:_wrapper_format user.permissions user.roles:authenticated',
  'X-Drupal-Cache-Max-Age' => '-1 (Permanent)',
🇦🇺Australia acbramley

Removed the jQuery selector, I'm not sure if this is testable in phpunit.

The original feature was added in 🐛 Double click prevention on form submission Fixed in 2014 without tests but that could have been before we had extensive test coverage.

🇦🇺Australia acbramley

@mradcliffe I agree, but the MR here was adding the library's code to the module which I don't want to support. We should find an alternative.

🇦🇺Australia acbramley

I think we can close this one now that the original is reverted and test both branches over there?

🇦🇺Australia acbramley

I've gone through the MR quite thoroughly and generally +1 this overall approach although it is quite complicated and may be hard for some devs to grok, especially the compiler pass stuff (queue many "why isn't this working?!")

My main concerns are:
1. The administer_blocks_permission_test module, although very minor it just doesn't feel right to add a duplicate permission, this is a big nit picky though
2. navigation_variant_test - now tests that just needed 1 block get all the additional elements rendered. Again this may be minor. I haven't ever looked into DisplayVariant plugins before though so thanks for the learning :)

🇦🇺Australia acbramley

The bug is that the access checks are invalid and functionally don't do anything, the issue summary is up to date with this information and the original bug report is there as well.

🇦🇺Australia acbramley

See https://www.drupal.org/project/diff/issues/3498207#comment-16113370 🐛 Required library has code deprecation Active

🇦🇺Australia acbramley

Running composer update drupal/diff -W should be enough.

Since the caxy library is a dependency of a dependency (mkalkbrenner/php-htmldiff-advanced) there's nothing else to do here.

🇦🇺Australia acbramley

You can disable layout plugins via the module settings page. Disabling all but 1 will not allow users to change to any other layout plugin.

🇦🇺Australia acbramley

For example Layout Builder renders reusable Block Content with contextual links on the view entity route just fine.

Layout builder does this via a block plugin, no?

🇦🇺Australia acbramley

@tr this issue is asking for a plan for the release, can we at least get the issues listed here that need to be fixed? Then this can become a meta and we can work through them together. Right now it is not clear what needs to be done.

🇦🇺Australia acbramley

@alexpott I think that's a much larger task, we'd need to:

1. Add a new formatter
2. Update views
3. Write an upgrade path for any view that has a revision_log field to change the formatter.

Step 3 seems like it could be extremely disruptive.

The revision log is a plain text field, it should not contain HTML.

🇦🇺Australia acbramley

I'll need some more information, what commands have you run and why are you unable to upgrade.

🇦🇺Australia acbramley

I'm not fully understanding what the IS is asking, but we cannot expose inline blocks via a UI outside of layout builder. The layout entity must reference the revision id of the inline block so editing the block (and creating a new revision) outside of the layout entity will break things badly.

More information at https://www.drupal.org/project/drupal/issues/3075308#comment-13322570 🐛 Inline blocks shouldn't be editable via the normal block content UI Active

🇦🇺Australia acbramley

The Recipes initiative added the ability to import content via yml files

It is not very well documented but the class is Drupal\Core\DefaultContent\Importer and some information at https://git.drupalcode.org/project/distributions_recipes/-/blob/1.0.x/do...

Block content won't be implementing it's own thing for this.

🇦🇺Australia acbramley

The blocker went in but I don't think we should try combining the screens, there's a push to decouple block_content from block at the moment so we don't want to tie them together any more (see 📌 Why block_content depends on block? Active )

There is also Link block to content_block Active for adding a link so maybe we close this one in favour of that?

🇦🇺Australia acbramley

Here's the explain on the query from loading the view and clicking the tablesort.

MySQL [local]> explain SELECT node_field_data.nid AS nid, users_field_data_node_field_data.uid AS users_field_data_node_field_data_uid
    -> FROM
    -> node_field_data node_field_data
    -> INNER JOIN users_field_data users_field_data_node_field_data ON node_field_data.uid = users_field_data_node_field_data.uid
    -> WHERE (node_field_data.status = 1 OR (node_field_data.uid = 1 AND 1 <> 0 AND 1 = 1) OR 1 = 1)
    -> ORDER BY users_field_data_node_field_data.name ASC
    -> LIMIT 50 OFFSET 0
    -> ;
+----+-------------+----------------------------------+------------+------+----------------------------------------------+---------+---------+---------------------------+------+----------+---------------------------------+
| id | select_type | table                            | partitions | type | possible_keys                                | key     | key_len | ref                       | rows | filtered | Extra                           |
+----+-------------+----------------------------------+------------+------+----------------------------------------------+---------+---------+---------------------------+------+----------+---------------------------------+
|  1 | SIMPLE      | node_field_data                  | NULL       | ALL  | node_field__uid__target_id                   | NULL    | NULL    | NULL                      |    1 |   100.00 | Using temporary; Using filesort |
|  1 | SIMPLE      | users_field_data_node_field_data | NULL       | ref  | PRIMARY,user__id__default_langcode__langcode | PRIMARY | 4       | local.node_field_data.uid |    1 |   100.00 | NULL                            |
+----+-------------+----------------------------------+------------+------+----------------------------------------------+---------+---------+---------------------------+------+----------+---------------------------------+
2 rows in set, 1 warning (0.000 sec)

So yeah we're using temp tables.

Setting to PMNMI for the decision on whether we want to do this. Personally I'm happy to close.

🇦🇺Australia acbramley

actually this is probably still NW as we'd need changes to the test to cover the redirect error.

🇦🇺Australia acbramley

Merged in 11.x, the test was reverted to what was committed in the other issue and the only difference in NodeAccessControlHandler was an additional comment which I've kept.

🇦🇺Australia acbramley

Added https://www.drupal.org/node/3524296 and linked to it from the other CR.

I don't think we need a CR for the MediaSourceInterface::METADATA_ATTRIBUTE_LINK_TARGET, happy to be told otherwise though :)

🇦🇺Australia acbramley

From the steps to reproduce, this sounds like an issue in BEF?

🇦🇺Australia acbramley

We also have FilterNodeAccessTest which tests this filter, it obviously passes now. Changing from AND to 0 doesn't break it, but we'd need test coverage for the bug here.

🇦🇺Australia acbramley

There's no code here to add tests for.

Drupal 10.2 is also EOL, is this reproducible on Drupal 11?

I added the condition to the content view on standard install and logged in as a non admin user and can't reproduce an error. It does look incorrect though to pass AND there but the query does seem to work, at least without any grants.

🇦🇺Australia acbramley

Forgot to set back to rtbc post rebase.

🇦🇺Australia acbramley

FYI I haven't changed anything to do with DI except in NodeModuleHooks where both hooks need the module handler.

I'm not sure how we should handle it, we've seen impacts to performance tests in previous changes and I've also seen how they can break Kernel tests where a test doesn't install the module that implements the service being injected, since the test doesn't hit the hook it's not necessary.

Maybe we should defer the DI discussion to another issue and get the organisation of hooks in first since it's going to be quite disruptive already.

🇦🇺Australia acbramley

Split by api.php as per #29

🇦🇺Australia acbramley

acbramley changed the visibility of the branch 3511357-remove-nodehooks1-2 to hidden.

🇦🇺Australia acbramley

acbramley changed the visibility of the branch 3511357-remove-nodehooks1 to hidden.

🇦🇺Australia acbramley

Got this green, it would be great for people to test this on 11.x with the latest changes in the MR.

God help the next person that has to deal with SmartDefaultSettingsTest 💀

🇦🇺Australia acbramley

I accidentally rebased onto the closed branch so I've toggled MRs since the latest one had other issues.

Please, if you want to contribute to this issue do not upload more patches or open more MRs, instead get push access via the button under the issue summary and contribute directly to this MR

https://git.drupalcode.org/project/drupal/-/merge_requests/11100

🇦🇺Australia acbramley

acbramley changed the visibility of the branch 3274635-upstream-use-ckeditor-11.x-2 to hidden.

🇦🇺Australia acbramley

acbramley changed the visibility of the branch 3274635-upstream-use-ckeditor-11.x to active.

🇦🇺Australia acbramley

This is great, I've done the following:

1. Gone through the MR and closed all threads after confirming they were resolved or (in the case of the helpful comments) explained what was going on well enough.
2. Reviewed the code
3. Rebased the MR to ensure tests pass against latest HEAD.
4. Manually tested the changes locally with xdebug ensuring the closure works as expected.

This is ready to go!

🇦🇺Australia acbramley

And I disagree that it up to the developer to decide

I think "developer" is used very broadly here to include reviewers/committers (if you're reviewing code or committing it you're probably a developer too?) but we can use more generic language.

One thing that can be done to help here is examples of when the docs must be added and when the docs can be omitted.

That is going to drastically increase the length of the description though?

Can we add consistency so that the 'return' section has separate line like "All @param tags on a function can be dropped, if:" ?

There is only ever a single return tag so it doesn't make sense IMO.

Why is the summary line removed? That seems out of scope.

I removed it to shorten the overall section because it's implied by the other information.

🇦🇺Australia acbramley

Patches in #119 and #120 seem to be missing something, again it's hard to figure out what since no interdiffs have been provided. When applied to 10.3.x I'm unable to save the editor config screen as it complains about the properties key in config schema.

Going all the way back to #86 is working on 10.3.

🇦🇺Australia acbramley

🐛 Action buttons unresponsive when coming back from node preview Active was marked as a duplicate of this.

When testing that issue I also found some weird behaviour (I didn't realise this was core's JS at the time) where after you hit Back in the browser you can eventually submit the form if you spam the save button a few times.

🇦🇺Australia acbramley

This is at the top of the postponed list, was a duplicate ever found?

The title doesn't really seem to match the IS or patch either, wondering what we should do here.

🇦🇺Australia acbramley

It's been another few months without any steps to reproduce so closing this one out.

If you are able to provide steps to reproduce, feel free to re-open this.

🇦🇺Australia acbramley

Addressed feedback, service names are personal preference I guess? Personally not a huge fan of a class name service and interface name alias.

🇦🇺Australia acbramley

Found a nice way to do #16 - there's a _block_ui_hidden key on the definition that BlockLibraryController uses to filter out definitions when adding a block. This doesn't affect existing blocks that have already been placed. Works perfectly for what we need here!

🇦🇺Australia acbramley

Improved the solution substantially with:

1. Config subscriber as requesting by @alexpott to clear theme settings caches when core.extension:theme changes
2. Memory cache service following recommendations in 🌱 [policy] Standardize how we implement in-memory caches Needs work

🇦🇺Australia acbramley

I've tried passing the display's cache tags into the set() call so, in theory, it should be invalidated automatically when the display is saved but that doesn't seem to be the case. Must be missing something?

🇦🇺Australia acbramley

Tested this manually on HEAD and was unable to reproduce the access denied issue.

🇦🇺Australia acbramley

Much nicer solution, thanks for the links. I didn't see any decisions on 🌱 [policy] Standardize how we implement in-memory caches Needs work with how these memory cache services should be setup wrt. service id names or how specific/generic they should be but I've loosely tried to follow what other things are doing in core already with cache.asset_memory and system.module_admin_links_memory_cache

🇦🇺Australia acbramley

Awesome! Have added that and removed the classes. Tested manually and it works well.

Production build 0.71.5 2024