app/views/application/comments_script.html.erb
<%- url = @setting.juvia_server_url %>
<%- key = @setting.juvia_site_key %>
<%- order = @setting.juvia_comment_order %>
<%- css = @setting.juvia_include_css %>
<script type="text/javascript" class="juvia">
(function() {
var options = {
container : '#comments',
site_key : '<%= key %>',
topic_key : location.pathname,
topic_url : location.href,
topic_title : document.title || location.href,
include_base : !window.Juvia,
include_css : <%= css %>,
comment_order: '<%= order %>'
};
function makeQueryString(options) {
var key, params = [];
for (key in options) {
params.push(
encodeURIComponent(key) +
'=' +
encodeURIComponent(options[key]));
}
return params.join('&');
}
function makeApiUrl(options) {
// Makes sure that each call generates a unique URL, otherwise
// the browser may not actually perform the request.
if (!('_juviaRequestCounter' in window)) {
window._juviaRequestCounter = 0;
}
var result =
'<%= url %>/api/show_topic.js' +
'?_c=' + window._juviaRequestCounter +
'&' + makeQueryString(options);
window._juviaRequestCounter++;
return result;
}
var s = document.createElement('script');
s.async = true;
s.type = 'text/javascript';
s.className = 'juvia';
s.src = makeApiUrl(options);
(document.getElementsByTagName('head')[0] ||
document.getElementsByTagName('body')[0]).appendChild(s);
})();
</script>