prepare ajax
This commit is contained in:
		
							parent
							
								
									6d458f8fa4
								
							
						
					
					
						commit
						7d153816f9
					
				
					 2 changed files with 109 additions and 0 deletions
				
			
		
							
								
								
									
										83
									
								
								assets/comments.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								assets/comments.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,83 @@
 | 
			
		|||
$(document).ready(function () {
 | 
			
		||||
 | 
			
		||||
    function PhpComment(element) {
 | 
			
		||||
        this.element = element;
 | 
			
		||||
        this.init();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    PhpComment.prototype.init = function () {
 | 
			
		||||
        this.setupVariables();
 | 
			
		||||
        this.setupEvents();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    PhpComment.prototype.setupVariables = function () {
 | 
			
		||||
        this.commentForm = this.element.find(".comment-form");
 | 
			
		||||
        this.titleField = this.element.find("#comment_title");
 | 
			
		||||
        this.bodyField = this.element.find("#comment_body");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    PhpComment.prototype.setupEvents = function () {
 | 
			
		||||
        var phpComment = this,
 | 
			
		||||
        newMedia;
 | 
			
		||||
 | 
			
		||||
        $.ajax({
 | 
			
		||||
            url: '/media_template.php',
 | 
			
		||||
            method: 'GET',
 | 
			
		||||
            dataType: 'html',
 | 
			
		||||
            success: function (data) {
 | 
			
		||||
                newMedia = data;
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        phpComment.commentForm.on("submit", function (e) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            var parentId = 0,
 | 
			
		||||
                title = phpComment.titleField.val(),
 | 
			
		||||
                body = phpComment.bodyField.val();
 | 
			
		||||
 | 
			
		||||
            if(phpComment.commentForm.parents(".media").length > 0){
 | 
			
		||||
                parentId = phpComment.commentForm.closest(".media").attr("data-Id");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            $.ajax({
 | 
			
		||||
                url: phpComment.commentForm.attr("action"),
 | 
			
		||||
                method: 'POST',
 | 
			
		||||
                dataType: 'json',
 | 
			
		||||
                data: {title: title, body: body, parentId: parentId},
 | 
			
		||||
                success: function (data) {
 | 
			
		||||
                    if(!data.created){
 | 
			
		||||
                        alert("Couldn't create comment");
 | 
			
		||||
                        return;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    newMedia = newMedia.replace("{{id}}", data.id);
 | 
			
		||||
                    newMedia = newMedia.replace("{{title}}", title);
 | 
			
		||||
                    newMedia = newMedia.replace("{{body}}", body);
 | 
			
		||||
                    newMedia = newMedia.replace("{{nested}}", '');
 | 
			
		||||
                    phpComment.commentForm.before(newMedia);
 | 
			
		||||
                    phpComment.titleField.val("");
 | 
			
		||||
                    phpComment.bodyField.val("");
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $(document).on("click", ".comment-add-new", function (e) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            var media = $(this).closest(".comments");
 | 
			
		||||
            media.find(">.comment-body>.comment-text").after(phpComment.commentForm);
 | 
			
		||||
        });
 | 
			
		||||
        $(document).on("click", ".comment-add-reply", function (e) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            var media = $(this).closest(".comment");
 | 
			
		||||
            media.find(">.comment-body>.comment-text").after(phpComment.commentForm);
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $.fn.phpComment = function (options) {
 | 
			
		||||
        new PhpComment(this);
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $(".comments").phpComment();
 | 
			
		||||
 | 
			
		||||
});
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue