comment.js 7.16 KB
$(function() {

    $(document).on('click', '.artbox_comment_container .removeable', function(e) {
        e.preventDefault();
        $(this).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).empty();
                            $(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).empty();
                            $(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_answer', function(e) {
        e.preventDefault();
        var widget = $(this).parents('.artbox_comment_widget');
        $(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).find('.artbox_comment_answer_label').text('Вопрос');
    });

});