mirror of
https://github.com/nunocoracao/blowfish.git
synced 2026-01-30 16:31:52 +01:00
added likes
This commit is contained in:
@@ -23,6 +23,9 @@
|
||||
{{ .Content | emojify }}
|
||||
</div>
|
||||
<script>
|
||||
|
||||
var liked_article = false
|
||||
|
||||
if (typeof auth !== 'undefined') {
|
||||
var oid = "views_{{ .Path }}"
|
||||
var id = oid ? oid.replaceAll("/", "-") : oid
|
||||
@@ -52,6 +55,81 @@
|
||||
console.error(errorCode, errorMessage)
|
||||
});
|
||||
}
|
||||
|
||||
var oid_likes = "likes_{{ .Path }}"
|
||||
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
|
||||
|
||||
var liked = localStorage.getItem(id_likes);
|
||||
|
||||
if (liked) {
|
||||
liked_article = true
|
||||
document.querySelectorAll("button[id='likes_button']")[0].innerText = "Remove Like"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function like_article(id_likes) {
|
||||
console.log("add")
|
||||
liked_article = true
|
||||
localStorage.setItem(id_likes, true);
|
||||
document.querySelectorAll("button[id='likes_button']")[0].innerText = "Remove Like"
|
||||
auth.signInAnonymously()
|
||||
.then(() => {
|
||||
var docRef = db.collection('likes').doc(id_likes)
|
||||
docRef.get().then((doc) => {
|
||||
if (doc.exists) {
|
||||
db.collection('likes').doc(id_likes).update({
|
||||
likes: firebase.firestore.FieldValue.increment(1)
|
||||
});
|
||||
} else {
|
||||
db.collection('likes').doc(id_likes).set({ likes: 1 })
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.log("Error getting document:", error);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
var errorCode = error.code;
|
||||
var errorMessage = error.message;
|
||||
console.error(errorCode, errorMessage)
|
||||
});
|
||||
}
|
||||
|
||||
function remove_like_article(id_likes) {
|
||||
console.log("remove")
|
||||
liked_article = false
|
||||
localStorage.setItem(id_likes, false);
|
||||
document.querySelectorAll("button[id='likes_button']")[0].innerText = "Like"
|
||||
auth.signInAnonymously()
|
||||
.then(() => {
|
||||
var docRef = db.collection('likes').doc(id_likes)
|
||||
docRef.get().then((doc) => {
|
||||
if (doc.exists) {
|
||||
db.collection('likes').doc(id_likes).update({
|
||||
likes: firebase.firestore.FieldValue.increment(-1)
|
||||
});
|
||||
} else {
|
||||
db.collection('likes').doc(id_likes).set({ likes: 0 })
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.log("Error getting document:", error);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
var errorCode = error.code;
|
||||
var errorMessage = error.message;
|
||||
console.error(errorCode, errorMessage)
|
||||
});
|
||||
}
|
||||
|
||||
function process_article() {
|
||||
var oid_likes = "likes_{{ .Path }}"
|
||||
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
|
||||
if (!liked_article) {
|
||||
like_article(id_likes)
|
||||
} else {
|
||||
remove_like_article(id_likes)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</section>
|
||||
|
||||
@@ -28,10 +28,18 @@
|
||||
{{ $meta.Add "partials" (slice (partial "meta/reading-time.html" .)) }}
|
||||
{{ end }}
|
||||
|
||||
{{ if (.Params.showViews | default (.Site.Params.article.showViews | default true)) }}
|
||||
{{ if (.Params.showViews | default (.Site.Params.article.showViews | default false)) }}
|
||||
{{ $meta.Add "partials" (slice (partial "meta/views.html" .)) }}
|
||||
{{ end }}
|
||||
|
||||
{{ if (.Params.showLikes | default (.Site.Params.article.showLikes | default false)) }}
|
||||
{{ $meta.Add "partials" (slice (partial "meta/likes.html" .)) }}
|
||||
{{ end }}
|
||||
|
||||
{{ if and (eq $scope "single") (.Params.showLikes | default (.Site.Params.article.showLikes | default false)) }}
|
||||
{{ $meta.Add "partials" (slice (partial "meta/likes_button.html" .)) }}
|
||||
{{ end }}
|
||||
|
||||
{{ if and (eq $scope "single") (.Params.showEdit | default (.Site.Params.article.showEdit | default false)) }}
|
||||
{{ $meta.Add "partials" (slice (partial "meta/edit.html" .)) }}
|
||||
{{ end }}
|
||||
|
||||
4
layouts/partials/meta/likes.html
Normal file
4
layouts/partials/meta/likes.html
Normal file
@@ -0,0 +1,4 @@
|
||||
<span>
|
||||
<span id="likes_{{ .Path }}" title="likes">{{- i18n "article.likes" 0 | markdownify | emojify -}}</span>
|
||||
</span>
|
||||
{{- /* Trim EOF */ -}}
|
||||
6
layouts/partials/meta/likes_button.html
Normal file
6
layouts/partials/meta/likes_button.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<span>
|
||||
<button id="likes_button" class="border rounded px-3" onclick="process_article()">
|
||||
Like
|
||||
</button>
|
||||
</span>
|
||||
{{- /* Trim EOF */ -}}
|
||||
Reference in New Issue
Block a user