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

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

    function 
ConcreteAjaxBlockForm($form, options) {
        
'use strict';
        var 
my = this;
        
options = $.extend({
            
'iframe': true,
            
'task': false,
            
'dragAreaBlockID': false,
            
dragArea: null,
            
'bID': false
        
}, options);
        
my.options = options;

        if (
options.dragAreaBlockID) {
            
$form.find('input[name=dragAreaBlockID]').val(options.dragAreaBlockID);
        }
        return 
ConcreteAjaxForm.call(my, $form, options);
    }

    
ConcreteAjaxBlockForm.prototype = Object.create(ConcreteAjaxForm.prototype);

    
ConcreteAjaxBlockForm.prototype.before = function (my) {
        
ConcreteEvent.fire('EditModeBeforeBlockSubmit', {
            
'form': my
        
});
    };

    
ConcreteAjaxBlockForm.prototype.success = function (resp, my) {
        if (
my.validateResponse(resp)) {
            var 
cID = (resp.cID) ? resp.cID : CCM_CID,
                
editor = new Concrete.getEditMode(),
                
area = editor.getAreaByID(resp.aID),
                
arEnableGridContainer = area.getEnableGridContainer() ? 1 : 0,
                
action = CCM_DISPATCHER_FILENAME + '/ccm/system/block/render';

            
jQuery.fn.dialog.closeTop();

            $.
get(action, {
                
arHandle: area.getHandle(),
                
cID: cID,
                
bID: resp.bID,
                
arEnableGridContainer: arEnableGridContainer,
                
placeholder: ''
            
}, function (r) {
                var 
block, edit_mode = Concrete.getEditMode(), local_area = area.inEditMode(edit_mode);

                
ConcreteToolbar.disableDirectExit();
                
jQuery.fn.dialog.hideLoader();

                if (
my.options.task == 'add') {
                    var 
$area = local_area.getElem(), $elem = $(r);

                    if (!
$elem.hasClass('ccm-block-edit')) {
                        var 
found = $elem.find('.ccm-block-edit');
                        if (
found.length) {
                            
block = new Concrete.Block(found, edit_mode);
                            
block.setArea(local_area);
                        }
                    }

                    if (!
block) {
                        
block = new Concrete.Block($elem, edit_mode);
                        
block.setArea(local_area);
                    }

                    if (
my.options.btHandle === 'core_area_layout') {
                        
$area.children('.ccm-area-block-list').append($elem);
                    } else {
                        var 
placeholder = $(my.options.placeholder);
                        if (
placeholder.length) {
                            
placeholder.replaceWith($elem);
                        } else {
                            
$area.children('.ccm-area-block-list').prepend($elem);
                        }
                    }

                    
ConcreteAlert.notify({
                        
'message': ccmi18n.addBlockMsg,
                        
'title': ccmi18n.addBlock
                    
});
                    
jQuery.fn.dialog.closeAll();

                    if (
my.options.btSupportsInlineAdd) {
                        
editor.destroyInlineEditModeToolbars();
                        
ConcreteEvent.fire('EditModeExitInlineComplete', {
                            
block: block
                        
});
                    }

                    
ConcreteEvent.fire('EditModeAddBlockComplete', {
                        
block: block
                    
});

                } else {
                    
// remove old block from area
                    
block = local_area.getBlockByID(my.options.bID);
                    var 
newBlock = block.replace(r);
                    
ConcreteAlert.notify({
                        
'message': ccmi18n.updateBlockMsg,
                        
'title': ccmi18n.updateBlock
                    
});

                    if (
my.options.btSupportsInlineEdit) {
                        
editor.destroyInlineEditModeToolbars();
                        
ConcreteEvent.fire('EditModeExitInlineComplete', {
                            
block: newBlock
                        
});
                    }

                    
ConcreteEvent.fire('EditModeUpdateBlockComplete', {
                        
block: newBlock
                    
});
                }


            });
        }
    };

    
// jQuery Plugin
    
$.fn.concreteAjaxBlockForm = function (options) {
        return $.
each($(this), function (i, obj) {
            new 
ConcreteAjaxBlockForm($(this), options);
        });
    };

    global.
ConcreteAjaxBlockForm = ConcreteAjaxBlockForm;

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