dfm-8.x-1.16/js/dfm.bueditor.js

js/dfm.bueditor.js
/*global BUE:true*/
(function ($, Drupal, BUE) {
  /**
   * @file
   * Defines Dfm plugin for BUEditor.
   */

  /**
   * Extend window.dfmEditor.
   */
  var DE = window.dfmEditor || {};

  /**
   * Opens dfm for inserting images into BUEditor.
   */
  DE.bueImage = function (E) {
    return DE.buePopup(E, 'image');
  };

  /**
   * Opens dfm for inserting files into BUEditor.
   */
  DE.bueLink = function (E) {
    return DE.buePopup(E, 'link');
  };

  /**
   * Opens dfm for inserting files/images into BUEditor.
   */
  DE.buePopup = function (E, type) {
    return DE.open(
      'dfmEditor.sendtoBUEditor',
      type,
      'bue_id=' + encodeURIComponent(E.id),
    );
  };

  /**
   * Dfm sendto handler for inserting files/images into BUEditor.
   */
  DE.sendtoBUEditor = function (File, win) {
    var dfm = win.dfm;
    var E = BUE.getEditor(dfm.urlParam('bue_id'));
    if (E) {
      var img = dfm.urlParam('type') === 'image';
      var selected = dfm.getSelectedItems();
      var html = DE.filesHtml(selected, img, E.getSelection());
      E.setSelection(html);
    }
    win.close();
  };

  /**
   * Active form fields currently using the file browser.
   */
  DE.bueFields = [];

  /**
   * Dfm sendto handler for inserting a file url into a form field.
   */
  DE.sendtoBUEField = function (File, win) {
    var id = win.dfm.urlParam('field_id');
    var field = DE.bueFields[id];
    if (field) {
      // Set field value
      field.value = File.getUrl();
      // Check other fields
      var input;
      var value;
      var values = {
        width: File.width,
        height: File.height,
        alt: File.formatName(),
      };
      for (var name in values) {
        if ((value = values[name])) {
          if ((input = field.form.elements[name])) {
            input.value = value;
          }
        }
      }
      field.focus();
      DE.bueFields[id] = null;
    }
    win.close();
  };

  /**
   * Register buttons.
   */
  BUE.registerButtons('dfm', function () {
    return {
      dfm_image: {
        id: 'dfm_image',
        label: Drupal.t('Insert images'),
        cname: 'ficon-image',
        code: DE.bueImage,
      },
      dfm_link: {
        id: 'dfm_link',
        label: Drupal.t('Insert files'),
        cname: 'ficon-link',
        code: DE.bueLink,
      },
    };
  });

  /**
   * File browser handler for image/link dialogs.
   */
  BUE.fileBrowsers.dfm = function (field, type, E) {
    var field_id = DE.bueFields.length;
    DE.bueFields[field_id] = field;
    DE.open('dfmEditor.sendtoBUEField', type, 'field_id=' + field_id);
  };
})(jQuery, Drupal, BUE);

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

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