bynder-4.0.0-beta1/js/bynder.search_view.js

js/bynder.search_view.js
/**
 * @file
 */

(function ($, Drupal, drupalSettings) {

    'use strict';

    /**
     * Registers behaviours related to Bynder search view widget.
     */
    Drupal.behaviors.BynderSearchView = {
        attach(context) {

          const $compactView =  $(once('bynder-compactview', '#bynder-compactview', context));
          $compactView.each(function() {
            BynderCompactView.open({
              mode: drupalSettings.bynder.compactviewMode,
              portal: {
                editable: false,
                url: drupalSettings.bynder.domain
              },
              assetTypes: drupalSettings.bynder.types,
              container: this,
              onSuccess: function(assets, AdditionalInfo) {
                var selectedValues = [];

                // Simplify the data structure, only keep what we need.
                assets.forEach(function(asset) {
                  // Alert the user that the selection does not have a thumbnail.
                  if (asset.type === 'DOCUMENT' && !asset.originalUrl) {
                    alert(Drupal.t('The document "@name" is not public. Please mark the original as public.',{'@name': asset.name}));
                    return;
                  }

                  var fileUrl = null;
                  var derivative = null;
                  if (AdditionalInfo.selectedFile !== undefined) {
                    fileUrl = AdditionalInfo.selectedFile.url;
                    derivative = getDerivative(fileUrl, asset);
                  }

                  selectedValues.push({
                    'id': asset.databaseId,
                    'type': asset.type,
                    'name': asset.name,
                    'fileUrl': fileUrl,
                    'derivative': derivative
                  });

                  // If there are no assets, do not submit the form.
                  if (selectedValues.length === 0) {
                    return;
                  }

                });


                // Append the selected assets ids to the bynder_selection hidden
                // input field, separated by a comma.
                var bynderSelection = $('input[name=bynder_selection]')[0];
                bynderSelection.value = JSON.stringify(selectedValues);

                // Trigger entity browser submit button click.
                $('.is-entity-browser-submit').click();
              }
            });
          });

          var getDerivative = function (url, asset) {
            var files = asset.files;
            var derivative = null;

            Object.keys(files).forEach(function(key) {
              if (files[key].url === url) {
                derivative = key;
              }
            });

            return derivative;
          };
        }
    };

}(jQuery, Drupal, drupalSettings));

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc