Support embedded link counts via `data-*` attribute
This commit is contained in:
parent
488319a5d1
commit
bcc7f3aba4
|
@ -28,11 +28,14 @@ class EmbedController < ApplicationController
|
|||
|
||||
def count
|
||||
|
||||
topic_embeds = TopicEmbed.where(embed_url: params[:embed_url]).includes(:topic).all
|
||||
urls = params[:embed_url].map {|u| u.sub(/#discourse-comments$/, '') }
|
||||
topic_embeds = TopicEmbed.where(embed_url: urls).includes(:topic).references(:topic)
|
||||
|
||||
by_url = {}
|
||||
topic_embeds.each do |te|
|
||||
by_url["#{te.embed_url}#discourse-comments"] = I18n.t('embed.replies', count: te.topic.posts_count - 1)
|
||||
url = te.embed_url
|
||||
url = "#{url}#discourse-comments" unless params[:embed_url].include?(url)
|
||||
by_url[url] = I18n.t('embed.replies', count: te.topic.posts_count - 1)
|
||||
end
|
||||
|
||||
respond_to do |format|
|
||||
|
|
|
@ -8,13 +8,20 @@
|
|||
countFor = [];
|
||||
|
||||
for(var i=0; i<links.length; i++) {
|
||||
var href = links[i].href;
|
||||
var link = links[i],
|
||||
href = link.href;
|
||||
if (href && href.length) {
|
||||
var m = /^(.*)#discourse-comments$/.exec(href);
|
||||
if (m && m[1]) { countFor.push(m[1]); }
|
||||
if (/#discourse-comments$/.test(href)) {
|
||||
countFor.push(href);
|
||||
}
|
||||
}
|
||||
|
||||
var dataEmbed = link.getAttribute('data-discourse-embed-url');
|
||||
if (dataEmbed && dataEmbed.length) {
|
||||
countFor.push(dataEmbed);
|
||||
}
|
||||
}
|
||||
//
|
||||
|
||||
// JSONP callback to update counts
|
||||
window.discourseUpdateCounts = function(result) {
|
||||
if (result && result.counts) {
|
||||
|
|
Loading…
Reference in New Issue