var reviewsManage = { review_data: {}, review_data_id: 1, create: function(replay_data) { this.initEvents(); // if (replay_data && Object.keys(replay_data).length) { this.replayData(replay_data); } this.controllerReviews(); }, initEvents: function() { $("#reviews-list-btn").on('click', function() { reviewsManage.addReview(); return false; }); $("#reviews-list").delegate('.delete-link', 'click', function() { var review_id = $(this).closest('.e').attr('data-review-id'); reviewsManage.deleteReview(review_id); return false; }).delegate('.input-name', 'keyup', function() { var review_id = $(this).closest('.e').attr('data-review-id'); reviewsManage.reviewDataUpdate(review_id, { name: $(this).langInputVal() }); }).delegate('.input-desc', 'keyup', function() { var review_id = $(this).closest('.e').attr('data-review-id'); reviewsManage.reviewDataUpdate(review_id, { desc: $(this).langInputVal() }); }).delegate('.input-author', 'keyup', function() { var review_id = $(this).closest('.e').attr('data-review-id'); reviewsManage.reviewDataUpdate(review_id, { author: $(this).langInputVal() }); }).delegate('.input-rank', 'change', function() { var review_id = $(this).closest('.e').attr('data-review-id'); reviewsManage.reviewDataUpdate(review_id, { rank: this.value }); }).delegate('.input-author-company', 'keyup', function() { var review_id = $(this).closest('.e').attr('data-review-id'); reviewsManage.reviewDataUpdate(review_id, { author_company: $(this).langInputVal() }); }); }, // saveData: function() { var xhr_url = themeOptions.admin_url + 'admin-ajax.php?action=hotel_save_reviews_data'; var export_data = this.exportData(); $.ajax({ type: 'POST', url: xhr_url, data: { saveData: encodeURIComponent(export_data) } }).done(function() { $('.hotel-theme h2 span').show().delay(500).animate({ 'opacity': 0, }, 500, function() { $(this).hide().css('opacity', 1); }); }); }, exportData: function() { var review_data = []; for (i in this.review_data) { review_data.push(this.review_data[i]); } return JSON.stringify(review_data); }, replayData: function(review_list) { console.log('review_list', review_list); for (i in review_list) { var e = review_list[i]; delete e.id; // var review_id = this.reviewDataAdd(e); this.addReviewView(review_id); } }, // addReview: function() { var review_id = this.reviewDataAdd(); this.addReviewView(review_id); }, addReviewView: function(review_id) { var review_data = this.reviewDataGet(review_id); var html = Mustache.render(document.getElementById('template-reviews-e').innerHTML, { review_data: review_data, }); $("#reviews-list").append(html); // var $this = $("#reviews-list > .e:last"); $this.dataSelected(); $this.langInputValSetup(); // this.controllerReviews(); }, deleteReview: function(review_id) { this.reviewDataRemove(review_id); $("#reviews-list > .e[data-review-id=" + review_id + "]").remove(); this.controllerReviews(); }, controllerReviews: function() { if (!$("#reviews-list .e").length) { $("#reviews-list").html('