cloudinary-8.x-1.x-dev/js/cloudinary.js

js/cloudinary.js
/**
 * @file
 * JavaScript behaviors for the image effect form page of Cloudinary.
 */

(function ($) {

  "use strict";

  Drupal.behaviors.cloudinary = Drupal.behaviors.cloudinary || {};

  Drupal.behaviors.cloudinary.attach = function (context) {
    Drupal.cloudinary.ui(context);
  };

  Drupal.cloudinary = Drupal.cloudinary || {};

  Drupal.cloudinary.ui = function (context) {
    var farb_change_color = function (obj, color) {
      if (!color) {
        color = '#000';
      }
      obj.css({
        backgroundColor: color,
        'color': farb.RGBToHSL(farb.unpack(color))[2] > 0.5 ? '#000' : '#fff'
      });
    };

    var $picker = $('<div id="placeholder"></div>')
      .css({'position': 'absolute', 'z-index': 999999})
      .appendTo('#farbtastic-color')
      .hide()
      .once('farbtastic');
    var farb = $.farbtastic($picker);
    // Bind input as color picker.
    $('.input_color', context).once('input_color', function () {
      var $ic = $(this);
      farb_change_color($ic, $ic.val());
      $ic.focus(function () {
        var position = $ic.position();
        var left = position.left - ((195 - $ic.width()) / 2);
        var top = position.top - 195;

        farb.linkTo(function (color) {
          farb_change_color($ic.val(color), color);
        }).setColor($ic.val());

        $picker.css({'left': left, 'top': top}).fadeIn();
      }).focusout(function () {
        farb.setColor($ic.val());
        $picker.hide();
      });
    });
    // Bind textfield as jquery ui slider.
    $('.input_slider', context).once('input_slider', function () {
      var $select = $(this);
      var min = 0;
      var max = 200;
      var fixed = 'dynamic';
      var css = 'slider';
      var data = $select.attr('data');
      // Assign data if get custom value.
      if (data) {
        var datas = data.split('_', 4);
        if (datas.length >= 3) {
          fixed = datas[0];
          min = parseInt(datas[1]);
          max = parseInt(datas[2]);
          if (datas[3]) {
            css = datas[3];
          }
        }
      }
      // Insert jquery ui slider before textfield.
      var $slider = $('<div></div>').addClass(css).insertBefore($select).slider({
        min: min,
        max: max,
        range: 'min',
        value: parseInt($select.val()) || 0,
        slide: function (event, ui) {
          $select.val(ui.value);
        }
      });
      // Update slider max if input value large.
      // Update value with min if less than min value.
      $select.change(function () {
        var current_value = parseInt($(this).val());
        if (current_value < min) {
          current_value = min;
        }
        else if (fixed === 'fixed' && current_value > max) {
          current_value = max;
        }
        $(this).val(current_value);
        $slider.slider('value', current_value);
        if (fixed !== 'fixed' && current_value > max) {
          $slider.slider('option', 'max', current_value);
        }
      });
    });
    // Bind reset button.
    $('#edit-reset').click(function () {
      $(this).parents('form').map(function () {
        this.reset();
        var $input = $(this).find(':input');
        $input.not('.input_slider').change();
        $input.filter('.input_color').map(function () {
          farb_change_color($(this), $(this).val());
        });
        $input.filter('.input_slider').map(function () {
          var cv = $(this).val();
          $(this).change().val(cv);
        });
      });

      return false;
    });
  };

})(jQuery);

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

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