diff --git a/kifiform.info.yml b/kifiform.info.yml index a058cc4..5e3cf0e 100644 --- a/kifiform.info.yml +++ b/kifiform.info.yml @@ -1,6 +1,7 @@ name: Form Bundle type: module core: 8.x +core_version_requirement: ">=8" package: Kirjastot.fi description: 'Provides custom form fields' dependencies: {} diff --git a/kifiform.libraries.yml b/kifiform.libraries.yml index 6c325a9..2b48c3b 100644 --- a/kifiform.libraries.yml +++ b/kifiform.libraries.yml @@ -15,7 +15,7 @@ rating-ajax: public/js/kifiform-rating.js: {} dependencies: - core/jquery - - core/jquery.once + - core/once view-counter: js: public/js/kifiform-view-counter.js: {} @@ -30,4 +30,4 @@ autocomplete-tags: public/js/kifiform-autocomplete-tags.js: {} dependencies: - core/jquery - - core/jquery.once + - core/once diff --git a/public/js/kifiform-autocomplete-tags.js b/public/js/kifiform-autocomplete-tags.js index a89a760..032cccc 100644 --- a/public/js/kifiform-autocomplete-tags.js +++ b/public/js/kifiform-autocomplete-tags.js @@ -59,8 +59,7 @@ Drupal.behaviors.kifiFormAutoCompleteTags = { attach: function(context, settings) { - var elements = $("input.form-autocomplete") - .once("kifiform-autocomplete-tags") + var elements = $(once("kifiform-autocomplete-tags", "input.form-autocomplete")) .each(function(i, _input) { var input = $(_input); @@ -75,6 +74,9 @@ init_tags(input, proxy, tags); + // When enter is disabled, user cannot create new tags. + var disableEnter = settings.kifiform && settings.kifiform.disableEnter; + input .on("autocompleteselect", function(event, ui) { ui.item.autocompleted = true; @@ -91,6 +93,8 @@ if (event.keyCode == KEY_ENTER && this.value.length > 0) { event.preventDefault(); + if (disableEnter) return; + append_value(proxy, this.value); append_tag(input, tags, {label: this.value, value: this.value}); diff --git a/public/js/kifiform-rating.js b/public/js/kifiform-rating.js index 1b4abf3..7e29a84 100644 --- a/public/js/kifiform-rating.js +++ b/public/js/kifiform-rating.js @@ -3,8 +3,7 @@ Drupal.behaviors.kifiFormContentRating = { attach: function(context, settings) { - $(".field--type-kifiform-rating") - .once("kifiform-rating") + $(once("kifiform-rating", ".field--type-kifiform-rating")) .each(function(i, _element) { var element = $(_element); var form = $(_element).find('.rating-form'); diff --git a/src/Controller/ViewCounterController.php b/src/Controller/ViewCounterController.php index be1f23d..025f998 100644 --- a/src/Controller/ViewCounterController.php +++ b/src/Controller/ViewCounterController.php @@ -6,7 +6,7 @@ use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Entity\FieldableEntityInterface; use Drupal\Core\Field\FieldItemListInterface; -use Drupal\user\PrivateTempStoreFactory; +use Drupal\Core\TempStore\PrivateTempStoreFactory; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; @@ -18,7 +18,7 @@ class ViewCounterController extends ControllerBase { public static function create(ContainerInterface $container) { return new static( $container->get('entity_type.manager'), - $container->get('user.private_tempstore') + $container->get('tempstore.private') ); } diff --git a/src/Plugin/Field/FieldType/RatingItem.php b/src/Plugin/Field/FieldType/RatingItem.php index 720c162..a018d0d 100644 --- a/src/Plugin/Field/FieldType/RatingItem.php +++ b/src/Plugin/Field/FieldType/RatingItem.php @@ -103,7 +103,7 @@ public static function defaultFieldSettings() { } public function isUserAllowedToVote() { - $store = \Drupal::service('user.private_tempstore')->get('kifiform'); + $store = \Drupal::service('tempstore.private')->get('kifiform'); $key = sprintf('%s.%s.%s', $this->getEntity()->getEntityTypeId(), $this->getFieldDefinition()->getName(), $this->getEntity()->id()); return !$store->get($key); } @@ -116,7 +116,7 @@ public function addVote($vote, $lock_session = FALSE) { } if ($lock_session) { - $store = \Drupal::service('user.private_tempstore')->get('kifiform'); + $store = \Drupal::service('tempstore.private')->get('kifiform'); $key = sprintf('%s.%s.%s', $this->getEntity()->getEntityTypeId(), $this->getFieldDefinition()->getName(), $this->getEntity()->id()); $store->set($key, TRUE); }