comment.js 8.55 KB
$(function() {

    function addRemoveBlocks(data)
    {
        $('#overlay, .succses_comm').remove();
        $('body').append('<div id="overlay" style="top:0; left:0;"></div>').append('<div class="succses_comm"><div class="closed-form"></div><div class="succses_comm-txt">'+data.text+'</div></div>');
        $('#overlay').fadeIn(
            400, function()
            {
                $('.succses_comm').css({display : 'block'}).animate({opacity : 1, top : '50%'}, 200);
            }
        );
        function closeSuccsescomm() {
            $('.succses_comm')
                .animate(
                    {opacity : 0, top : '30%'}, 200, function()
                    {
                        $(this).css('display', 'none')
                        $('#overlay').fadeOut(
                            400, function()
                            {
                                $('#overlay, .succses_comm').remove()
                            }
                        )
                    }
                )
        }
        $('body').on('click', '.closed-form, #overlay', function() {
                closeSuccsescomm()
            }
        );

        setTimeout(closeSuccsescomm, 4000)
    }

    $(document).on('click', '.artbox_comment_container .removeable', function(e) {
        e.preventDefault();
        $(this).parent().remove();
//        var container = $(this).parents('.artbox_comment_container');
//        $(container).remove();
    });

    $(document).on(
        'click', '.artbox_comment_delete', function(e)
        {
            e.preventDefault();
            var container = $(this).parents('.artbox_comment_container');
            var comment_id = $(container).data('key');
            var form_name = $(container).data('form');
            if(confirm("Уверены, что хотите удалить комментарий?"))
            {
                $.post(
                    '/artbox-comment/delete', {
                        Comment : {
                            comment_id : comment_id
                        }
                    }, function(data, textStatus, jqXHR)
                    {
                        if(!data.error)
                        {
                            {
                                $(container).remove();
                                addRemoveBlocks(data)
                                // $(container).append('<p class="removeable">' + data.text + '</p>');
                            }
                        } else
                        {
                            $(container).prepend('<p class="removeable error_message">' + data.error + '</p>')
                        }
                    }
                );
            }
        }
    );

    $(document).on(
        'click', '.artbox_comment_reply', function(e)
        {
            e.preventDefault();
            var container = $(this).parents('.artbox_comment_container').first();
            var comment_id = $(container).data('key');
            var form_name = $(container).data('form');
            var author = $(container).find('.artbox_comment_author').first().text();
            var comment_form = $(container).parents('.artbox_comment_widget').find('.artbox_comment_form').first();
            var offset = $(comment_form).offset();
            var reply_block = $(comment_form).find('.artbox_comment_reply_block').first();
            $(reply_block).empty();
            $(reply_block).append('<input type="hidden" name="' + form_name + '[comment_pid]" value="' + comment_id + '">');
            $(reply_block).append('<p class="artbox_comment_reply_author">' + author + '</p>');
            $('html, body').animate(
                {
                    scrollTop : offset.top - 50,
                }
            );
        }
    );

    $(document).on(
        'click', '.artbox_comment_reply_author', function()
        {
            $(this).parents('.artbox_comment_reply_block').first().empty();
        }
    );

    $(document).on(
        'click', '.artbox_comment_update', function(e)
        {
            e.preventDefault();
            var container = $(this).parents('.artbox_comment_container').first();
            var comment_id = $(container).data('key');
            var form_name = $(container).data('form');
            var object = {};
            object[form_name] = {comment_id : comment_id};
            $.post(
                '/artbox-comment/form', object, function(data, textStatus, jqXHR)
                {
                    $(container).empty();
                    $(container).append(data.result.form);
                }
            );
        }
    );

    // @TODO What is this
    $(document).on(
        'click', '.artbox_comment_update_reply', function()
        {
            $(this).remove();
        }
    );

    $(document).on(
        'click', '.artbox_comment_update_submit', function(e)
        {
            e.preventDefault();
            var container = $(this).parents('.artbox_comment_container').first();
            $.post(
                '/artbox-comment/update', $(container).find('form').serialize(), function(data)
                {
                    $(container).empty();
                    if(!data.error)
                    {
                        $(container).append('<p>'+data.result.text+'</p>');
                        $(container).append(data.result.html);
                    } else {
                        $(container).append(data.form);
                    }
                }
            )
        }
    );

    $(document).on(
        'click', '.artbox_comment_update_answer', function(e)
        {
            e.preventDefault();
            var container = $(this).parents('.artbox_comment_container').first();
            var comment_id = $(container).data('key');
            var form_name = $(container).data('form');
            var object = {};
            object[form_name] = {comment_id : comment_id};
            $.post(
                '/artbox-comment/form-answer', object, function(data, textStatus, jqXHR)
                {
                    $(container).empty();
                    $(container).append(data.result.form);
                }
            );
        }
    );

    $(document).on(
        'click', '.artbox_comment_update_answer_submit', function(e)
        {
            e.preventDefault();
            var container = $(this).parents('.artbox_comment_container').first();
            $.post(
                '/artbox-comment/update-answer', $(container).find('form').serialize(), function(data)
                {
                    $(container).empty();
                    if(!data.error)
                    {
                        $(container).append('<p>'+data.result.text+'</p>');
                        $(container).append(data.result.html);
                    } else {
                        $(container).append(data.form);
                    }
                }
            )
        }
    );

    $(document).on(
        'click', '.artbox_comment_delete_answer', function(e)
        {
            e.preventDefault();
            var container = $(this).parents('.artbox_comment_container');
            var comment_id = $(container).data('key');
            var form_name = $(container).data('form');
            if(confirm("Уверены, что хотите удалить вопрос?"))
            {
                $.post(
                    '/artbox-comment/delete-answer', {
                        CommentProjectAnswer : {
                            comment_id : comment_id
                        }
                    }, function(data, textStatus, jqXHR)
                    {
                        if(!data.error)
                        {
                            $(container).remove();
                            addRemoveBlocks(data)
                        } else
                        {
                            $(container).prepend('<p class="removeable error_message">' + data.error + '</p>')
                        }
                    }
                );
            }
        }
    );

    $(document).on('click', '.artbox_comment_reply_answer', function(e) {
        e.preventDefault();
        var widget = $(this).parents('.artbox_comment_widget');
        var form = $(widget).find('.artbox_comment_form');
        $(form).removeClass('hidden');
        $(widget).find('.artbox_comment_answer_label').text('Ответ');
    });

    $(document).on('click', '.artbox_comment_reply_answer_block', function(e) {
        var form = $(this).parents('.artbox_comment_form');
        $(form).addClass('hidden');
        $(form).find('.artbox_comment_answer_label').text('Вопрос');
    });

});