I think I was able to get it working again, sprinkle in some Drupal.announce and remove the jQuery dependency.
https://git.drupalcode.org/issue/gpa_calculator-3462133/-/compare/2.x......
I think some validation is covered, and it would be nice to confirm the math is right. Interested in input from others.
I've been working with mariewakeman off-thread on this and it has turned into a bit of a refactor. To address the accessibility concerns, we started by moving away from the custom js "Add more" inputs and back towards a Form API approach with an AJAX callback. Additionally, the existing JS was not using the Drupal Behaviors attach functionality. The work we have pushed so far is non-functional but is a step forward.
Here is some todo from my perspective:
- Map letter grades to numeric equivalents whether config is supplied or default is used
- Re-wire up response variables to calculation logic and return results to the callback div
- Validate on empty inputs and/or remove empty inputs from the calculation
- Finish removing jQuery and update the library config
- Use Drupal.announce() to notify users of the results
- Since we are bumping to D11, check module for other upgrade issues
joewhitsitt β made their first commit to this issueβs fork.
Looks good. Thanks for the quick adjustments. If there is desire for the 11:59pm = midnight option, I suggest a follow up issue.
// @todo worry about handling other languages?
I think the primary focus of the AP Stylebook is English-language usage and style, but you can't quote me on that since I don't actually license a copy. Leaving in for now.
Taking a look at this and don't have an idea yet, but with a format like M. j, Y the code str_replace([$month_full, $month_abbr . '.', $month_abbr]...
is causing things like Marchch and Sept.t.
Oh gosh. I don't know how you deal with all of this date stuff. Thank you for the example. Should the string matches account for 12:00:00 as well and if an 11:59 p.m. option is allowed any number of seconds between 11:59:00 p.m. and 12:00:00 a.m.? Does this get complicated enough that a stored timestamp should be evaluated against instead of the markup string?
It might also be advisable to replace "11:59pm" with midnight, but open to discussion on this idea.
If you can point to a reference regarding this, I think this could be a opt-in option in addition.
joewhitsitt β created an issue.
joewhitsitt β made their first commit to this issueβs fork.
joewhitsitt β made their first commit to this issueβs fork.
I guess the info file needs to be updated with this information as well. I can try to get to it soon if you don't beat me to it.
Absolutely. Thanks for your interest. I've been out sick, but this should be done.
joewhitsitt β created an issue.
The z-index issues might be related to https://www.drupal.org/project/drupal/issues/3328425 π CKEditor 5 balloons invisible when CKEditor 5 is used inside a modal Needs work
I appreciate the quick response and suggestion.
joewhitsitt β created an issue.
I found that this is not necessarily an issue with this patch for linkit_media_library, but that there is a upstream linkit issue here
https://www.drupal.org/project/linkit/issues/3396049
π¬
Links surrounding Media Library item strips data-entity-type and data-entity-uuid
Postponed
editor_advanced_link appears to be having the same issue: https://www.drupal.org/project/editor_advanced_link/issues/3349389 π Link attributes don't save Needs review
We haven't had a chance to look into this yet, but we noticed when placing a link around a media item using the new media balloon toolbar, that it doesn't insert the media entity link properly with all of the necessary attributes.
data-entity-type, data-entity-uuid, data-entity-substitution
joewhitsitt β made their first commit to this issueβs fork.
Just curious if anyone is encountering JS performance issues when fontawesome all.js (load assets) and ckeditor5 are loaded. It gets to the point where the page becomes unresponsive if there is fontawesome markup in the editor. I noticed bnjmnm in #37 mentions cruddy laptop performance.
Not sure what the magic combination in the end was for us, but we were able to do this with something like:
composer require 'drupal/file_mdm:^3.0' --no-update
composer require 'drupal/imagemagick:^3.6' --no-update
composer update drupal/sophron drupal/file_mdm drupal/imagemagick
`--with-all-dependencies` i think worked at one point but updated more in our composer.json than we were ready to bite off.
Our group invested in a solution for this, but because we think it goes against the nature of what this module is doing, we didn't write a patch for this module. In our situation, our customer had a jobs feed in addition to news feeds. Unlike storing a aggregate of news items, the customer wanted the expired job postings to no longer display.
Instead we created a boolean "purge items" field on the aggregator feed entity (admin/config/services/aggregator/fields) and then used a service decorator to plug into the aggregator.items.importer service. That way each feed source can be configured to use this feature or not.
Using a service decorator, hopefully the code footprint is smaller and we don't have to recreate the rest of what the importer is doing. Hope this can be of help to others.
in mymodule.services.yml:
mymodule.custom_items_import:
class: Drupal\mymodule\ItemsImporterOverride
decorates: aggregator.items.importer
decoration_priority: 9
public: false
arguments: ['@mymodule.custom_items_import.inner', '@config.factory', '@plugin.manager.aggregator.fetcher', '@plugin.manager.aggregator.parser', '@plugin.manager.aggregator.processor', '@logger.channel.aggregator', '@keyvalue.aggregator']
in mymodule/src/ItemsImporterOverride:
<?php
namespace Drupal\mymodule;
use Drupal\aggregator\FeedInterface;
use Drupal\aggregator\ItemsImporter;
use Drupal\aggregator\Plugin\AggregatorPluginManager;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\KeyValueStore\KeyValueFactoryInterface;
use Psr\Log\LoggerInterface;
/**
* Modify the Aggregator ItemsImporter with a custom refresh.
*/
class ItemsImporterOverride extends ItemsImporter {
/**
* Original service object.
*
* @var \Drupal\aggregator\ItemsImporter
*/
protected $itemsImporter;
/**
* {@inheritdoc}
*/
public function __construct(
ItemsImporter $itemsImporter,
ConfigFactoryInterface $configFactory,
AggregatorPluginManager $fetcherManager,
AggregatorPluginManager $parserManager,
AggregatorPluginManager $processorManager,
LoggerInterface $logger,
KeyValueFactoryInterface $keyValue,
) {
$this->itemsImporter = $itemsImporter;
parent::__construct($configFactory, $fetcherManager, $parserManager, $processorManager, $logger, $keyValue);
}
/**
* {@inheritdoc}
*/
public function refresh(FeedInterface $feed) {
$purgeItems = $feed->get('field_aggregator_purge_items')?->value;
if ($purgeItems) {
$feed->deleteItems();
}
parent::refresh($feed);
}
}
We have just recently run into this in setting up the module for our sites. We have a similar role that can create, edit but not schedule/publish who are locked out from making edits until the scheduled date is processed.
We are adding messages alerting the users that this is the case so they don't get confused why they can edit other nodes of this type but not these.
Could this be configurable site-wide or per media entity? Is there a technical reason why it is set to the first second besides avoiding black/fade-in frames?