Вход Регистрация
Файл: concrete5.7.5.6/concrete/js/build/core/style-customizer/palette.js
Строк: 121
<?php
/**
 * block ajax
 */

/* jshint unused:vars, undef:true, browser:true */
/* global $, _, alert, ConcreteEvent, ccmi18n */

(function(global, $) {
    
'use strict';

    function 
ConcreteStyleCustomizerPalette($elementoptions) {
        var 
my this;
        
options = $.extend({
            
'inputName'false,
            
'unit''px',
            
'appendTo'document.body
        
}, options);

        
my.options options;
        
my.opened false;

        
my.$element $element;
        
my.$container = $(my.options.appendTo);

        
my._chooseTemplate _.template(my.chooseTemplate, {'options'my.optionsi18nccmi18n});
        
my._selectorTemplate _.template(my.selectorWidgetTemplate, {'options'my.optionsi18nccmi18n});

        
my.$element.append(my._chooseTemplate);
        
my.$widget = $(my._selectorTemplate);
        
my.$container.append(my.$widget);

        
my.$widget.find('.launch-tooltip').tooltip();
        
my.$widget.find('div.ccm-style-customizer-palette-actions button').on('click.style-customizer-palette', function(e) {
            
my.save(e);
            return 
false;
        });

        
my.$element.on('click.style-customizer-palette''[data-launch=style-customizer-palette]', function(e) {
            if (
my.opened) {
                
my.closeSelector(e);
            } else {
                var 
dim my.getPosition();
                
my.$widget.css({'top'dim.top'left'dim.left}).show().on('click.style-customizer-palette', function(e) {
                    
e.stopPropagation();
                });
                $(
document).on('click.style-customizer-palette', function(e) {
                    
my.closeSelector(e);
                });
                
my.opened true;
            }
            return 
false;
        });
    }

    
ConcreteStyleCustomizerPalette.prototype = {

        
setValue: function(fieldvalue) {
            var 
my this;
            
my.$element.find('input[data-style-customizer-input=' field ']').val(value);
        },

        
getPosition: function() {
            var 
my this;
            var 
offset my.getOffset(my.$widgetmy.$element);
            return 
offset;
        },

        
getOffset: function(pickerinput) {
            var 
extraY = -5;
            var 
dpWidth picker.outerWidth();
            var 
dpHeight picker.outerHeight();
            var 
inputHeight input.outerHeight();
            var 
doc picker[0].ownerDocument;
            var 
docElem doc.documentElement;
            var 
viewWidth docElem.clientWidth + $(doc).scrollLeft();
            var 
viewHeight docElem.clientHeight + $(doc).scrollTop();
            var 
offset input.offset();
            
offset.top += inputHeight;

            
offset.left -=
                
Math.min(offset.left, (offset.left dpWidth viewWidth && viewWidth dpWidth) ?
                
Math.abs(offset.left dpWidth viewWidth) : 0);

            
offset.top -=
                
Math.min(offset.top, ((offset.top dpHeight viewHeight && viewHeight dpHeight) ?
                
Math.abs(dpHeight inputHeight extraY) : extraY));

            return 
offset;
        },

        
getValue: function(field) {
            var 
my this;
            return 
my.$element.find('input[data-style-customizer-input=' field ']').val();
        },

        
closeSelector: function(e) {
            var 
my this;
            
my.$widget.hide();
            
my.opened false;
            $(
document).unbind('click.style-customizer-palette');
        },

        
updateSwatch: function() {
            
alert('You must implement this method updateSwatch.');
        },

        
save: function (e) {
            var 
my this;
            
my.updateSwatch();
            
my.closeSelector(e);
            
ConcreteEvent.publish('StyleCustomizerControlUpdate');
        }
    };

    global.
ConcreteStyleCustomizerPalette ConcreteStyleCustomizerPalette;

})(
this, $);
?>
Онлайн: 1
Реклама