| Current Path : /var/www/html/media/kunena/core/js/ |
| Current File : /var/www/html/media/kunena/core/js/krating.js |
/**
* Kunena Component
* @package Kunena.Media
*
* @copyright Copyright (C) 2008 - 2026 Kunena Team. All rights reserved.
* @license https://www.gnu.org/copyleft/gpl.html GNU/GPL
* @link https://www.kunena.org
**/
jQuery(document).ready(function ($) {
// Krating element
const krating = document.querySelector('#krating');
// Initialize
(function init() {
const topic_id = $("#topic_id").val();
if ($('#krating').length > 0) {
$.ajax({
dataType: "json",
url: $('#krating_url').val(),
data: 'topic_id=' + topic_id
}
).done(function (response) {
addRatingWidget(buildItem(), response, topic_id);
}
).fail(function (reponse) {
//TODO: handle the error of ajax request
}
);
}
})();
// Build krating item
function buildItem() {
const ratingItem = document.createElement('div');
ratingItem.innerHTML = Joomla.sanitizeHtml('<ul class="c-rating"></ul>');
krating.appendChild(ratingItem);
return ratingItem;
}
// Add krating widget
function addRatingWidget(ratingItem, rate, topicid) {
const ratingElement = ratingItem.querySelector('.c-rating');
const currentRating = rate;
const maxRating = 5;
const catid = $("#catid").val();
const callback = function (rating) {
$.ajax({
dataType: "json",
url: $('#krating_submit_url').val(),
data: 'starid=' + rating + '&topic_id=' + topicid + '&catid=' + catid
}
).done(function (response) {
if (response.success) {
$('<div class="alert alert-success alert-dismissible fade show" role="alert">' + Joomla.Text._(response.message) + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>').appendTo('#system-message-container');
} else {
$('<div class="alert alert-danger alert-dismissible fade show" role="alert">' + Joomla.Text._(response.message) + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>').appendTo('#system-message-container');
}
}
).fail(function (response) {
$('<div class="alert alert-danger alert-dismissible fade show" role="alert"><h4>' + Joomla.Text._('COM_KUNENA_RATING_WARNING_LABEL') + '</h4>' + response + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>').appendTo('#system-message-container');
}
);
};
const r = rating(ratingElement, currentRating, maxRating, callback);
}
}
);