Account created on 9 January 2014, about 11 years ago
#

Merge Requests

More

Recent comments

🇨🇦Canada sagesolutions

Tested on version 2.0.8 on Drupal 10.4.2. Works as expected, marking as RTBC

🇨🇦Canada sagesolutions

Unfortunately I am also running into this issue for one customer. He has purchased items before, and now when he tries to go through the checkout, he has the same payment intent ID, preventing him to checkout.

"error": {
    "code": "payment_intent_unexpected_state",
    "doc_url": "https://stripe.com/docs/error-codes/payment-intent-unexpected-state",
    "message": "You cannot confirm this PaymentIntent because it has already succeeded after being previously confirmed.",
    "payment_intent": {
      "id": "pi_*************",
      "object": "payment_intent",
      "amount": 144,
      "amount_details": {
        "tip": {
        }
      },
      "automatic_payment_methods": null,
      "canceled_at": null,
      "cancellation_reason": null,
      "capture_method": "automatic",
      "client_secret": "******************",
      "confirmation_method": "automatic",
      "created": 1739086429,
      "currency": "cad",
      "description": null,
      "last_payment_error": null,
      "livemode": true,
      "next_action": null,
      "payment_method": "pm_***************",
      "payment_method_configuration_details": null,
      "payment_method_types": [
        "card"
      ],
      "processing": null,
      "receipt_email": null,
      "setup_future_usage": null,
      "shipping": null,
      "source": null,
      "status": "succeeded"
    },
    "request_log_url": "https://dashboard.stripe.com/logs/req_***********",
    "type": "invalid_request_error"
  }

I tried to remove the stripe data from the commerce_order table in the database, hoping it would create a new payment intent, but I think there is caching or something else working because the 'data' column was updated/reverted with the same payment intent ID after I ran

 update commerce_order set data = '' where order_id = 127419;
🇨🇦Canada sagesolutions

Ok after some review I found a couple issues

1) If there are no facet summary fields created, trying to add one to the view breaks as found in comment #74. Instead, there should be a check for empty facet summaries and show a link to /admin/config/search/facets directing the user to add one.

2) Summary Facet doesn't show current search string when Show a text when there are no results is selected. Unchecking the no results box allows the Show the current search string to appear

3) Adding a facet summary in the views filter criteria runs into a PHP error due to SearchApiDisplay not returning anything when it should return a string. Adding the facet summary in the views header doesn't have this issue. A quick fix for this one is below

/**
   * {@inheritdoc}
   */
  public function getCount(): ?string {
    $search_id = $this->getDisplay()->getPluginId();
    if ($search_id && !empty($search_id)) {
      if ($this->searchApiQueryHelper->getResults($search_id) !== NULL) {
        return $this->searchApiQueryHelper->getResults($search_id)
          ->getResultCount();
      }
    }
    return NULL;
  }
🇨🇦Canada sagesolutions

I tried adding the MR #185 to both 3.0.0 and the 3.0-dev version. The patch applies successfully to both, but when I enable the module and try to add a facet summary to the header region of the view, I run into an error:

"The submitted value in the Facet summary" element is not allowed

I don't see a field for editing. I try to remove it, and it errors out again with the same error. I have to end up closing the popup and canceling my view changes to get rid of the field.

🇨🇦Canada sagesolutions

Tested out the hard limit patch, and it resolves this issue. Marking this ticket as a duplicate.

🇨🇦Canada sagesolutions

I'm using OpenSearch as the indexing backend, on Drupal 10 and Facets 3.0.0. The default is 10 items when no limit is set. Adding this patch allowed me to set the limit so I could show more.

Marking as RTBC

🇨🇦Canada sagesolutions

Setting a hard limit may fix this, but I haven't tested it yet

🇨🇦Canada sagesolutions

Also running into this issue. I'm trying to list our topics (25 or so) as a facet, but only 10 are shown. I'm using OpenSearch as the indexing backend, on Drupal 10 and Facets 3.0.0

🇨🇦Canada sagesolutions

I tested MR #11 with mysql, and the new tag is added properly. I can confirm this issue is specific to postgres

🇨🇦Canada sagesolutions

I tested MR #11 with postgres, but still running into the same error when trying to add a new tag via the autocreate option

SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for type bigint: "$ID:sage" LINE 6: ..., '468', '175', '469', '176', '140', '44', '202', '$ID:sage'...

🇨🇦Canada sagesolutions

Added patch to site and created a test in VWO. Site is working as expected, see added screenshots

🇨🇦Canada sagesolutions

The PR looks like it can handle <meta name="format-detection" content="telephone=no"> now which is great. Can you also update it so colons are allowed? In my case I need to add twitter:data1 meta tags

🇨🇦Canada sagesolutions

Needed to update Twitter to X. The MR #15 works for me. Kudos for adding the update script as well!

🇨🇦Canada sagesolutions

Marking as active as this could be a new feature instead of poor design.

Currently there is no way to add `twitter:data1` meta tags to add meta data when sharing over slack. See https://whitep4nth3r.com/blog/level-up-your-link-previews-in-slack/ as an example



🇨🇦Canada sagesolutions

Ok tested on staging. Unfortunately I still needed to run #33

 $entity_type = \Drupal::entityTypeManager()->getDefinition('commerce_order_report');
  \Drupal::entityDefinitionUpdateManager()->installEntityType($entity_type);

Can we add this to another update_hook in the address module? If so, we need to also add a check if \Drupal::entityTypeManager()->getDefinition('commerce_order_report') exists first in case there are sites that do not have commerce installed.

🇨🇦Canada sagesolutions

I also ran into this issue.

These are the steps that worked for me

  1. Adding the MR 46 as a patch
  2. reverting back to 9200 update via drush ev "\Drupal::keyValue('system.schema')->set('address', (int) 9200)";
  3. rerunning drush updb
  4. running the code from #33. I used drush php

I will test the MR in a staging environment to see if it fixes the issue.

I think once the MR is added, I shouldn't have to run code from #33, correct?

🇨🇦Canada sagesolutions

Tested and works properly. Thanks for the quick MR!

🇨🇦Canada sagesolutions

@sayan_k_dutta I think its ok that the label and the name fields are the same.
When the tag is added to the html, it uses the name variable

🇨🇦Canada sagesolutions

I upgraded to Drupal 10.3 and updated rules to 4.0-dev and ran into this issue.

I had a slightly different error, but the patch #12 still fixed it

TypeError: Drupal\typed_data\PlaceholderResolver::scan(): Argument #1 ($text) must be of type string, null given, called in /web/modules/contrib/rules/src/Plugin/RulesDataProcessor/TokenProcessor.php on line 69 in Drupal\typed_data\PlaceholderResolver->scan() (line 180 of /web/modules/contrib/typed_data/src/PlaceholderResolver.php).

🇨🇦Canada sagesolutions

composer.json file looks good to me. Marking as RTBC

🇨🇦Canada sagesolutions

sagesolutions changed the visibility of the branch 3481806-ignore-tracking-ip to hidden.

🇨🇦Canada sagesolutions

Tested on the 3.x-dev branch and Image loading attributes are now working properly. Thanks @mrshowerman!

🇨🇦Canada sagesolutions

I could not apply the MR #18 diff to any logical branch. I tried version 3.0.2, version 3.1.0, dev-3.x#2fe16c7a9f0c511bbcaa44499a4fb61fa0f9854c, and the latest 3.x-dev branch.

Patching all of them failed.

🇨🇦Canada sagesolutions

Created a settings form and updated the hook_user_login. Please review!

🇨🇦Canada sagesolutions

Adding some extra context here since I am looking into a similar situation....

The masquerade module calls all the user_login hooks via

// Call all login hooks when making user login.
    $this->moduleHandler->invokeAll('user_login', [$user]);

So any module hooking into the user_login hook will have no idea if the user is masqueraded or not.

🇨🇦Canada sagesolutions

Hi @cmlara,

Thanks for the thorough response.

I see that the image urls on my site are actually pointing to the cdn domain and loading the file directly from the cdn s3 bucket; not using the /s3 path. I'm okay with closing this ticket.

🇨🇦Canada sagesolutions

I also ran into this issue of nothing being sent to the queue on save. Enabling the purge_queuer_coretags module fixed it for me as well.

🇨🇦Canada sagesolutions

I agree, config should be saved in the configuration, not in the state. This will be helpful for importing and exporting across environments.

🇨🇦Canada sagesolutions

I think it would also be helpful if there was an option to purge immediately when the node expires instead of moving it into the trash. This could be a configurable setting.

🇨🇦Canada sagesolutions

Patch #2 applies to version 2.0.0-alpha0, but the MR-15 does not. I'm guessing that the Merge Request only applies to the 2.0.x-dev version

🇨🇦Canada sagesolutions

Looks like this is fixed in 3.0 branch. Closing ticket

🇨🇦Canada sagesolutions

I've also used #156 and that fixed the issue for me.

🇨🇦Canada sagesolutions

The patch #11 was working for version 5.2, however it no longer applies to version 7.1.0

🇨🇦Canada sagesolutions

These patches and Merge requests 3 and 5 are all related to the 1.x version. Please update the Merge request to work with version 2.x

🇨🇦Canada sagesolutions

@SocialNicheGuru I doubt it. Ideally they will tag a new release when they merge the MR

🇨🇦Canada sagesolutions

I have a similar issue regarding fivestar. Randomly ratings on comments disappear. It happens from time to time seemingly random

I've added the fivestar field to my user comments and see data in the comment_field_user_rating table for existing comments. However, for ratings on comments that have disappeared, they are not in this table. It's very strange since the comment is on the site and all other data on the comment is there, except the fivestar rating.

🇨🇦Canada sagesolutions

Added patch that fixes the previous message issue. Please review!

🇨🇦Canada sagesolutions

At some point the javascript functions were updated to use `() =>` notation.

However, using that broke the ability to use `$(this)` inside them. See https://www.freecodecamp.org/news/the-difference-between-arrow-functions... for a review of arrow functions.

I've replaced the `() =>` with `function()` and that worked for me. Will create a patch / MR shortly.

🇨🇦Canada sagesolutions

I am also experiencing this issue. Not sure if this was a js caching issue or not, but after updating my site I ran into this same thing.

🇨🇦Canada sagesolutions

Can confirm patch #6 does not fix the issue.

This is a javascript issue, which is breaking not only the load previous link, but all other links on the page no longer work when viewing the thread.

I can confirm that you can send 25 messages just fine, but once the "Load Previous" link appears, you cannot submit the next one.

Whichever link you click on a link or button, the page submits to "/private-message/ajax-callback/get_old_messages? token=W2RZzcxI6isICC5_MZYFCantGuhyx_slkOhHC8zUul8&threadid=123456&messageid=NaN" which has an e.preventdefault() which prevents the page from submitting/ loading.

🇨🇦Canada sagesolutions

Fixed the issue of reloading the message I just sent.

Ready for review!

🇨🇦Canada sagesolutions

After further testing, this is close to working but there is still an issue. When I send a message to someone, I see it appear in the chat above. However, once the get_new_messages is called, my message that I just sent appears again. It only appears an extra time once, but still not ideal.

🇨🇦Canada sagesolutions

Hi Stephen,

If you disable javascript, you will always need to manually refresh to see new messages appear. Ithink an easier way to test is to include the patch from https://www.drupal.org/project/private_message/issues/3424499 🐛 Stuck on undefined URL Needs review and then test with javascript enabled.

🇨🇦Canada sagesolutions

I've created a MR for review. It's a bit hard to test since https://www.drupal.org/project/private_message/issues/3424499 🐛 Stuck on undefined URL Needs review is not merged yet.

I found the easiest way to test is to test with two browsers A and B and disable Javascript on B. Login to browser A with user 1 go to your private message chat with user 2. Then, send a message from user 2 on browser B to user 1. Back on browser A you should see the message appear without refreshing.

Also, all messages now no longer load every minute!

Please review!

🇨🇦Canada sagesolutions

Merge request fixes the undefined urls and allows users to load the private messages when clicking on links from the inbox block. Also user can click on any other link on the page and be redirected to that page as expected.

For hiding the ban/unban links in the actions area I don't see an easy way except using CSS.

Please review!

🇨🇦Canada sagesolutions

There are other tickets related to the window darkening and sending messages now tagged to this ticket.

For the access denied issue, This is fixed when setting the proper permissions.

🇨🇦Canada sagesolutions

I'm also running into this issue. Having all links broken when viewing private messages is critical issue. Bumping up priority

🇨🇦Canada sagesolutions

Added list of banned users on the ban/unban page.

Please review!

🇨🇦Canada sagesolutions

Alternatively, we could add the async tag on the script to improve pagespeed.

You can also load Stripe.js using the async or defer attribute on the script tag. Note, however, that with asynchronous loading any API calls will have to be made only after the script execution has finished.

🇨🇦Canada sagesolutions

Ah yes, Stripe wants to be loaded everywhere

To best leverage Stripe’s advanced fraud functionality, include this script on every page, not just the checkout page. This allows Stripe to detect suspicious behavior that may be indicative of fraud as customers browse your website.

I wonder if we could have a config setting to only load on /cart and /checkout/* pages instead of the entire site?

🇨🇦Canada sagesolutions

I've managed to update my EventSubscriber to work with the new workflow updates. Below is what works for me, maybe it will help others while upgrading.

/**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents(): array {
    return [
      'workflow.post_transition' => 'onWorkflowPostTransition',
    ];
  }

  public function onWorkflowPostTransition(WorkflowTransitionEvent $event): void {
    switch ($event->getTransition()->getToSid()) {
      case "permit_status_workflow_pending" :
        $this->onPendingTransition($event);
        break;
      case "permit_status_workflow_open":
        $this->onOpenTransition($event);
        break;
      case "permit_status_workflow_approved":
        $this->onApprovedTransition($event);
        break;
      case "permit_status_workflow_declined":
        $this->onDeclinedTransition($event);
        break;
    }
  }
🇨🇦Canada sagesolutions

I ran into this issue as well. Turns out I still had

{{ attach_library('classy/node') }}

in my twig template files which was causing the issue. The issue disappeared once I removed that line from all my template files.

🇨🇦Canada sagesolutions

Hi @johnv,
I like the getEntity() and getWorkflow() methods in the WorkflowTransistionEvent class. I can work with that. Please commit these updates :)

+ public function getWorkflow() {
+ return $this->transition->getWorkflow(); // CHANGED
+ }
+
+ public function getEntity() {
+ return $this->transition->getTargetEntity(); // CHANGED
+ }

For the subscribed events, I liked the ability of what was there before. Using the original patch, I can subscribe to each individual workflow change. For example:

  public static function getSubscribedEvents(): array {
    return [
      'permit_status_workflow.permit_status_workflow_creation.post_transition' => 'onCreationTransition',
      'permit_status_workflow.permit_status_workflow_draft.post_transition' => 'onDraftTransition',
      'permit_status_workflow.permit_status_workflow_open.post_transition' => 'onOpenTransition',
      'permit_status_workflow.permit_status_workflow_pending.post_transition' => 'onPendingTransition',
      'permit_status_workflow.permit_status_workflow_approved.post_transition' => 'onApprovedTransition',
      'permit_status_workflow.permit_status_workflow_declined.post_transition' => 'onDeclinedTransition',
    ];
  }

But now, I can only subscribe to the one post transition event. Then in the called function, I need to check the transition to/from and break apart from there. This seems a bit messier than before.

🇨🇦Canada sagesolutions

@johnv

Was it intentional to remove the entity and workflow from the WorkflowTransitionEvent?

In my eventsubscriber, I used the $event->getEntity() method to get the node.

+
+  /**
+     * The workflow.
+     *
+     * @var \Drupal\workflow\Entity\WorkflowInterface
+     */
+  protected $workflow;
+
+  /**
+     * The entity.
+     *
+     * @var \Drupal\Core\Entity\ContentEntityInterface
+     */
+  protected $entity;
...
+  public function __construct(WorkflowTransition $transition, WorkflowInterface $workflow, EntityInterface $entity) {
+        $this->transition = $transition;
+        $this->workflow = $workflow;
+        $this->entity = $entity;
+      }
+
+
+  /**
+     * Gets the workflow.
+     *
+     * @return \Drupal\workflow\Entity\WorkflowInterface
+     *   The workflow.
+     */
+  public function getWorkflow() {
+        return $this->workflow;
+  }
+
+  /**
+     * Gets the entity.
+     *
+     * @return \Drupal\Core\Entity\EntityInterface
+     *   The entity.
+     */
+  public function getEntity() {
+        return $this->entity;
+  }

Also, I used a specific event to trigger my subscribed events. For example 'permit_status_workflow.permit_status_workflow_open.post_transition' => 'onOpenTransition',

Is this still possible? I think this functionality has been removed??

+  /**
+   * Dispatches a transition event for the given phase.
+   *
+   * @param string $phase
+   *   The phase: pre_transition OR post_transition.
+   */
+  protected function dispatchTransitionEvent($phase) {
+
+    $workflow = $this->getWorkflow();
+
+    $event = new WorkflowTransitionEvent($this, $workflow, $this->getTargetEntity());
+    $event_dispatcher = \Drupal::getContainer()->get('event_dispatcher');
+
+    $events = [
+      // For example: 'my_custom_workflow.my_custom_transition.pre_transition'.
+      $this->getWorkflowId() . '.' . $this->getToSid() . '.' . $phase,
+      // For example: 'my_custom_workflow.pre_transition'.
+      $this->getWorkflowId() . '.' . $phase,
+      // For example: 'workflow.pre_transition'.
+      'workflow.' . $phase,
+    ];
+
+    foreach ($events as $event_id) {
+      $event_dispatcher->dispatch($event, $event_id);
+    }
+  }
+
🇨🇦Canada sagesolutions

@dabley, good call. I've updated my comment :)

🇨🇦Canada sagesolutions

@Engineer_UA Can we get an updated version of this module for Drupal 10?

Note that https://www.drupal.org/project/node_auto_expire/issues/3255643 will need to be fixed/merged before a D10 version is ready.

Thanks!

Production build 0.71.5 2024