I just realized the actual feed looks correct. This is just in the views UI preview so I suppose this is fine.
For anyone that is trying to get html emails to work. you can override the text format setting in hook_mail_alter() by setting
$message['params']['text_format'] = 'your_filter_name';
But is seems like the select box should actually do the opposite: limit the filters to ones that DON'T escape html. (or just not limit them at all)
Yes, the MR is ready for review. It solves the original issue, and allows default permissions (for roles other than administrator) to be unelectable by site admins. It also includes my attempt at a test, which passes.
I will open new issues for the other points raised here. Thanks
apparently I had inadvertently updated geolocation to 4.0 reverting to the 3.x version got everything working again.
The output format is empty, even though there are #options in the element.
see screenshot
@joelpittet Yes it is something I am looking for as well. Happy to help test whatever you come up with.
@amitaibu - I agree.
Its rare, if ever, that I give group admins the full admin role with every single permission. Instead I typically have been creating a "manager" role that has some elevated permissions, but not all of them. Having a setting to auto assign group owners to a selected role, would be helpful.
Should the "administrator" role still get all permissions and the permissions be disabled. (like the admin role in core) Or should we leave it up to site admins which permissions to assign to the og administrator role?
I tested MR 44.
adding the filter works, in preview mode, but when I attempt to save the view I get the following error
The website encountered an unexpected error. Try again later.
InvalidArgumentException: The configuration property display.default.display_options.filters.roles_target_id_1.value.node-group-moderator doesn't exist. in Drupal\Core\Config\Schema\ArrayElement->get() (line 95 of core/lib/Drupal/Core/Config/Schema/ArrayElement.php).
Drupal\Core\Config\StorableConfigBase->castValue('display.default.display_options.filters.roles_target_id_1.value.node-group-moderator', 'node-group-moderator') (Line: 258)
Drupal\Core\Config\StorableConfigBase->castValue('display.default.display_options.filters.roles_target_id_1.value', Array) (Line: 258)
Drupal\Core\Config\StorableConfigBase->castValue('display.default.display_options.filters.roles_target_id_1', Array) (Line: 258)
Drupal\Core\Config\StorableConfigBase->castValue('display.default.display_options.filters', Array) (Line: 258)
Drupal\Core\Config\StorableConfigBase->castValue('display.default.display_options', Array) (Line: 258)
Drupal\Core\Config\StorableConfigBase->castValue('display.default', Array) (Line: 258)
Drupal\Core\Config\StorableConfigBase->castValue('display', Array) (Line: 258)
Drupal\Core\Config\StorableConfigBase->castValue(NULL, Array) (Line: 211)
Drupal\Core\Config\Config->save() (Line: 278)
Drupal\Core\Config\Entity\ConfigEntityStorage->doSave('group_moderators', Object) (Line: 486)
Drupal\Core\Entity\EntityStorageBase->save(Object) (Line: 257)
Drupal\Core\Config\Entity\ConfigEntityStorage->save(Object) (Line: 354)
Drupal\Core\Entity\EntityBase->save() (Line: 617)
Drupal\Core\Config\Entity\ConfigEntityBase->save() (Line: 1007)
Drupal\views_ui\ViewUI->save() (Line: 358)
Drupal\views_ui\ViewEditForm->save(Array, Object)
call_user_func_array(Array, Array) (Line: 129)
Drupal\Core\Form\FormSubmitter->executeSubmitHandlers(Array, Object) (Line: 67)
Drupal\Core\Form\FormSubmitter->doSubmitForm(Array, Object) (Line: 597)
Drupal\Core\Form\FormBuilder->processForm('view_edit_form', Array, Object) (Line: 326)
Drupal\Core\Form\FormBuilder->buildForm(Object, Object) (Line: 48)
Drupal\Core\Entity\EntityFormBuilder->getForm(Object, 'edit', Array) (Line: 220)
Drupal\views_ui\Controller\ViewsUIController->edit(Object, 'block_1')
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 637)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 121)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 181)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 116)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 90)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 741)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Just created a new release 1.0.1 with Drupal 11 support. Thanks
I actually went in a different direction and am not using this module. So I will be unable to work on this.
MR173 addresses the 2nd part of the IS. It adds the 'avatar' to the $context array allowing you to alter it like this.
function MYMODULE_tagify_autocomplete_match_alter(?string &$label, ?string &$info_label, array &$context): void {
// if avatar is empty use our own default
if (empty($context['avatar'])) {
$context['avatar'] = $my_default_image_url;
}
// Change avatar of users with a custom role.
if ($context['entity']->hasRole('CUSTOM_ROLE')) {
$context['avatar'] = $my_custom_image_url;
}
}
I will hold off on the first part until I hear from the maintainer if they think moving the user avatar settings to the main config form is a good idea. I think we should move both image_field and image_style to the global config so it does not need to be set per field. On any given site the user entity only really ever has one field and size needed for avatars.
And here is the patch to help test it with composer
I've created MR10 as an attempt to improve the regex for common cases with text editors.
Moderators may inadvertently add or regular spaces, or the URL may be wrapped inside a <div>.
These are situations I frequently encounter with moderators who are not familiar with HTML and often complain, "My links don't embed." In 99% of cases, the issue is that the HTML is slightly malformed, and they don’t know what to check or how to fix it.
@idebr Thanks for the review!
We still need the TempStore for now, although it’s doing much less than it used to. I did try to remove it, but if I remember correctly, the issue was related to how the form is submitted in the controller. Some of the required data just wasn’t available at that point. I think it mainly had to do with identifying where replies belonged when multiple forms were present on the page. It’s been a while since I looked at that part, so I’ll need to step through it again to confirm.
The JS commands for items 2 and 3 are no problem.
This approach is working, but I think a cleaner long-term solution would be to create a dedicated FieldFormatter specifically for AJAX forms. That would give us more control over the structure and eliminate the need for complex alters and passing field settings around. I started going down that path but wasn’t sure if it was too big a departure from the original implementation. However, if we’re moving to a new branch where breaking changes are acceptable, I think that’s the way to go.
Tried testing the MR. it applied, but I was unable to get it to work.
The images appear to upload in dropzone. but when I click the submit button I get an error message "At least one valid file should be uploaded."
and in the js console i have
VM11500 drupal.js:64 Uncaught TypeError: Cannot read properties of undefined (reading 'element')
at VM11522 dropzonejs_eb_widget.common.js:15:39
at Array.forEach (<anonymous>)
at Object.attach (VM11522 dropzonejs_eb_widget.common.js:14:60)
at VM11500 drupal.js:166:24
at Array.forEach (<anonymous>)
at Drupal.attachBehaviors (VM11500 drupal.js:162:34)
at HTMLDivElement.<anonymous> (VM11520 ajax.js:1404:18)
at ce.each (VM11495 jquery.min.js:2:3129)
at ce.fn.init.each (VM11495 jquery.min.js:2:1594)
at Drupal.AjaxCommands.insert (VM11520 ajax.js:1396:19)
Both the EB Media Dropzone widget, and the EB Media Dropzone widget with edit widet.
The patch intended for 10.5 in #47 applies but did not work for me. Does someone have one?
I got this error
ajax.js?v=10.5.4:1143 An error occurred during the execution of the Ajax response: CKEditorError: Cannot convert undefined or null to object
Read more: https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html#error-Cannot convert undefined or null to object
This is working as expected in my initial testing, I will continue to test it out with other providers. But this is now inline with what the core Media module is doing with the oEmbed field formatter.
And here is a static patch to test with composer.
I've only tested this minimally but it appears to be working well for me. Thanks!
I think this is pretty good now, Ive tested several different api reports methods and it seems to be retrieving the data correctly.
The latest code is in MR18.
This should now:
- Support all the reporting methods the api provides.
- Work if the params are cameCase or snake_case.
- Provides an option for forcing a cache refresh.
- Cleans up coding standards
- Better error handling when fetching data fails.
Here is a patch to use with composer if anyone want to test it out.
I made another improvement.
The static array key map that @mugesh.s added was good, but didn't cover all potential parameters. Instead of maintaining a static list, I added a method convertParamKeysToSnakeCase() that will replace all the first level keys in $params[0] with snake_case versions.
Ive added a few things to MR18
1. Supporting additional report request types
- RunPivotReportRequest();
- RunRealtimeReportRequest();
- BatchRunReportsRequest();
- BatchRunPivotReportsRequest();
- RunReportRequest();
2. Allow forcing a cache refresh for the api call.
you would call it like this in your module.
$service = GoogleAnalyticsReportsApiFeed::service();
$feed = $service->runReport($params, ['_refresh' => TRUE]);
GoogleAnalyticsReportsApiFeed::service()->runPivotReport($params); is not working.
I think we need to do something like this
switch ($func) {
case 'runPivotReport':
$params[0] = new RunPivotReportRequest($converted);
break;
default:
$params[0] = new RunReportRequest($converted);
}
It appears there is a setting for this in the dev version.
Created a MR of the 2 line patch in #10 to help move this along.
4 years later the patch still applies and works. +1
patch here works 📌 Support styling Hosted Fields RTBC
It looks like this module implements its own CSRF token logic. What was the rationale for not using Drupal’s built-in _csrf_token: TRUE in the router? From my understanding, defining this in the route (similar to the Flag module) could eliminate much of the custom token-checking logic and simplify the code significantly.
Would love to get tome input from the maintainers.
This MR does 2 few things.
1. It passes the parent entity to the oembed_lazyload_placeholder theme function.
2. Adds an option in the display formatter to choose the image field (if any others exist on the bundle) to use in the placeholder.
Should we also clear any configured default membership type for this group bundle to keep programmatic removal consistent with the UI flow?
Yes, I think you are right.
This is a super old issue, but I am looking to do the same and didnt see a way to do it.
The field settings should allow you to specify a directpry and support tokens like an image field does.
I can work on this if the maintainers think this is something that will be added.
Added a small fix for an undefined variable error that was showing in the logs on a last page of comments.
heres a new patch for composer.
And here's a patch you can use with composer.
I've updated the IS and made a few final updates to MR !13. All tests are passing.
Since this fundamentally changes how the module works (single comment insertion instead of full rebuilds), I suggest creating a new 2.x-dev or alpha branch. This way current users can stay on the stable 1.x branch while others can test the new approach.
I've been using this in production on several sites for a while now - it's been solid across different scenarios including sites with hundreds of comments, multiple comment fields, views, etc.
This issue has been open since 2020 and I've put a lot of work into making this a comprehensive solution. It fixes the original problems, resolves several related issues, and brings the module in line with how the D7 version and modern commenting systems work.
Would the maintainers be open to creating a 2.x branch for this?
Happy to help with any follow-up work needed.
Thanks!
I’ve been following this issue and testing the patches for a while. Overall, things are working well, but I did notice a couple of cases where the behavior isn’t what I would expect:
1. When a comment is denied access by returning AccessResult::forbidden() in a hook_comment_access() implementation, it is still visible in the thread. CommentDefaultFormatter::viewElements() doesn’t currently filter out inaccessible comments. It just calls viewMultiple(), which doesn’t perform access checks.
2. The comment field is hidden when the last comment is inaccessible.
CommentFieldItemList::lastPublishedCommentAccess() is used by CommentFieldItemList::access() to determine whether the entire field/thread is accessible. If the last comment in a thread is denied access, the entire field, including the comment form, is hidden. In this case, CommentDefaultFormatter::viewElements() is never called.
I've been testing this out and it works really well, thanks.
One issue I can see is, on the review page, all the users nodes and comments are listed.
If either of the users being merged have a lot of comments or nodes this can cause timeouts since we load every entity and then loop through them all to print the titles.
It would probably better to just show a summary of how many, grouped by bundle.
"X Article Nodes, Y Page Nodes, etc"
Or possibly list the first few and then print "and X more" sort of like how VBO does.
I've created MR5 which is @dipakmdhrm's work against 2.0.x which is the current branch.
I need some of these features for a product to get this more in line to what we were able to do in the D7 version. Until now there hadn't been an update to this issue since almost a year ago.
I would love to hear from the moderators as to the status of this module and their plans for a path forward.
@dipakmdhrm can you update the IS with the current status of the Remaining tasks so we can see what still needs to be worked on?
Ive added a composer.json file and made a few changes to the info.yml
Also while working on this I noticed that the og settings config value og_group_manager_full_access is never used anywhere.
The description of that field is "When enabled the group manager will have all the permissions in the group."
Is the intent of this setting to grant all permissions for the administrator role? If so, perhaps this MR should solve that too since its related.
When enabled the admin checkboxes would then be disabled, forcing group administrators/managers to have all perms.
When the setting is disabled, the checkboxes would be enabled allowing the site admin to set which permissions a group administrator/manager would get.
@amitaibu - I've taken a stab at adding a test, and it passes. Can you take a look and see if this is what you wanted?
Thanks
Ive added quicktabs.post_update.php. Is this more along the line of what you are asking for?
I tried this out and it didnt quite work for me.
the <!--break--> tag is still ignored when creating the trimmed version.
For the record there is a contrib module that allows <!--break--> in ckeditor
https://www.drupal.org/project/ckeditor_drupalbreaks →
I realize this is an old post, but I am seeing exactly what described in #11 and #12 in the latest 8.x-2.4 release, so I am reopening it.
with debug: true
views UI preview has CDATA on the description tags
front end has CDATA on the description tags
with debug: false
views UI preview has CDATA on the description tags
front end DOES NOT have CDATA on the description tags
I don't have any template or preprocess overrides for views_rss
I'm using Drupal 10.5
I too am seeing my html email escaped due to the html_convert_format being limited to filters that escape the html.
Isn't this defeating the purpose? What was the rational to limiting the filters to these?
I'm interested feature. I will take a stab at getting this patch to work with the current version.
I tried to get this to work with 4.1.x.
It does appear to be batching the command now.
loze → changed the visibility of the branch 3348339-batch-fix-references to active.
loze → changed the visibility of the branch 3348339-batch-fix-references to hidden.
loze → changed the visibility of the branch 3202896-oembed-error-message to hidden.
There is the hook spambot_registration_blocked that is invoked on both user registration and webform submissions.
But no hook is triggered when spam is detected on a cron run.
I have created a MR that removes the readonly properties from PrivateMessageForm. This resolves the issue for me.