882799afbd9ecaa304854b0d7d07d077982d5833
[yaffs-website] / web / modules / contrib / entity_browser / js / entity_browser.entity_reference.js
1 /**
2  * @file entity_browser.entity_reference.js
3  *
4  * Defines the behavior of the entity reference widget that utilizes entity
5  * browser.
6  */
7
8 (function ($, Drupal) {
9
10   'use strict';
11
12   /**
13    * Registers behaviours related to entity reference field widget.
14    */
15   Drupal.behaviors.entityBrowserEntityReference = {
16     attach: function (context) {
17       $(context).find('.field--widget-entity-browser-entity-reference').each(function () {
18         $(this).find('.entities-list.sortable').sortable({
19           stop: Drupal.entityBrowserEntityReference.entitiesReordered
20         });
21       });
22     }
23   };
24
25   Drupal.entityBrowserEntityReference = {};
26
27   /**
28    * Reacts on sorting of the entities.
29    *
30    * @param {object} event
31    *   Event object.
32    * @param {object} ui
33    *   Object with detailed information about the sort event.
34    */
35   Drupal.entityBrowserEntityReference.entitiesReordered = function (event, ui) {
36     var items = $(this).find('.item-container');
37     var ids = [];
38     for (var i = 0; i < items.length; i++) {
39       ids[i] = $(items[i]).attr('data-entity-id');
40     }
41
42     $(this).parent().parent().find('input[type*=hidden][name*="[target_id]"]').val(ids.join(' '));
43   };
44
45 }(jQuery, Drupal));