Version 1
[yaffs-website] / web / modules / contrib / entity_browser / js / entity_browser.entity_reference.js
diff --git a/web/modules/contrib/entity_browser/js/entity_browser.entity_reference.js b/web/modules/contrib/entity_browser/js/entity_browser.entity_reference.js
new file mode 100644 (file)
index 0000000..3e6d396
--- /dev/null
@@ -0,0 +1,45 @@
+/**
+ * @file entity_browser.entity_reference.js
+ *
+ * Defines the behavior of the entity reference widget that utilizes entity
+ * browser.
+ */
+
+(function ($, Drupal) {
+
+  'use strict';
+
+  /**
+   * Registers behaviours related to entity reference field widget.
+   */
+  Drupal.behaviors.entityBrowserEntityReference = {
+    attach: function (context) {
+      $(context).find('.field--widget-entity-browser-entity-reference').each(function () {
+        $(this).find('.entities-list').sortable({
+          stop: Drupal.entityBrowserEntityReference.entitiesReordered
+        });
+      });
+    }
+  };
+
+  Drupal.entityBrowserEntityReference = {};
+
+  /**
+   * Reacts on sorting of the entities.
+   *
+   * @param {object} event
+   *   Event object.
+   * @param {object} ui
+   *   Object with detailed information about the sort event.
+   */
+  Drupal.entityBrowserEntityReference.entitiesReordered = function (event, ui) {
+    var items = $(this).find('.item-container');
+    var ids = [];
+    for (var i = 0; i < items.length; i++) {
+      ids[i] = $(items[i]).attr('data-entity-id');
+    }
+
+    $(this).parent().parent().find('input[type*=hidden][name*="[target_id]"]').val(ids.join(' '));
+  };
+
+}(jQuery, Drupal));