mirror of
https://github.com/nunocoracao/blowfish.git
synced 2025-04-22 01:51:53 +02:00
♻️ refactor articles and list to use page.js logic instead of inline js
This commit is contained in:
parent
9a56be903f
commit
8171739c7e
2 changed files with 10 additions and 226 deletions
|
@ -36,120 +36,12 @@
|
||||||
{{ .Content | emojify }}
|
{{ .Content | emojify }}
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
var liked_article = false
|
|
||||||
|
|
||||||
if (typeof auth !== 'undefined') {
|
|
||||||
var oid = "views_{{ .File.Path }}"
|
var oid = "views_{{ .File.Path }}"
|
||||||
var id = oid ? oid.replaceAll("/", "-") : oid
|
|
||||||
|
|
||||||
var viewed = localStorage.getItem(id);
|
|
||||||
|
|
||||||
if (!viewed) {
|
|
||||||
auth.signInAnonymously()
|
|
||||||
.then(() => {
|
|
||||||
var docRef = db.collection('views').doc(id)
|
|
||||||
localStorage.setItem(id, true);
|
|
||||||
docRef.get().then((doc) => {
|
|
||||||
if (doc.exists) {
|
|
||||||
db.collection('views').doc(id).update({
|
|
||||||
views: firebase.firestore.FieldValue.increment(1)
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
db.collection('views').doc(id).set({ views: 1 })
|
|
||||||
}
|
|
||||||
}).catch((error) => {
|
|
||||||
console.log("Error getting document:", error);
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
var errorCode = error.code;
|
|
||||||
var errorMessage = error.message;
|
|
||||||
console.error(errorCode, errorMessage)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var oid_likes = "likes_{{ .File.Path }}"
|
var oid_likes = "likes_{{ .File.Path }}"
|
||||||
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
|
|
||||||
|
|
||||||
var liked = localStorage.getItem(id_likes);
|
|
||||||
|
|
||||||
if (liked) {
|
|
||||||
liked_article = true
|
|
||||||
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = ""
|
|
||||||
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = "none"
|
|
||||||
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = ""
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function like_article(id_likes) {
|
|
||||||
auth.signInAnonymously()
|
|
||||||
.then(() => {
|
|
||||||
var docRef = db.collection('likes').doc(id_likes)
|
|
||||||
docRef.get().then((doc) => {
|
|
||||||
liked_article = true
|
|
||||||
localStorage.setItem(id_likes, true);
|
|
||||||
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = ""
|
|
||||||
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = "none"
|
|
||||||
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = ""
|
|
||||||
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) {
|
|
||||||
auth.signInAnonymously()
|
|
||||||
.then(() => {
|
|
||||||
var docRef = db.collection('likes').doc(id_likes)
|
|
||||||
docRef.get().then((doc) => {
|
|
||||||
liked_article = false
|
|
||||||
localStorage.removeItem(id_likes);
|
|
||||||
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = "none"
|
|
||||||
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = ""
|
|
||||||
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = "\xa0Like"
|
|
||||||
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_{{ .File.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>
|
</script>
|
||||||
|
{{ $jsPage := resources.Get "js/page.js" }}
|
||||||
|
{{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint "sha512" }}
|
||||||
|
<script type="text/javascript" src="{{ $jsPage.RelPermalink }}" integrity="{{ $jsPage.Data.Integrity }}"></script>
|
||||||
</section>
|
</section>
|
||||||
{{ if gt .Pages 0 }}
|
{{ if gt .Pages 0 }}
|
||||||
|
|
||||||
|
|
|
@ -38,120 +38,12 @@
|
||||||
{{ partial "series-closed.html" . }}
|
{{ partial "series-closed.html" . }}
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
var liked_article = false
|
|
||||||
|
|
||||||
if (typeof auth !== 'undefined') {
|
|
||||||
var oid = "views_{{ .File.Path }}"
|
var oid = "views_{{ .File.Path }}"
|
||||||
var id = oid ? oid.replaceAll("/", "-") : oid
|
|
||||||
|
|
||||||
var viewed = localStorage.getItem(id);
|
|
||||||
|
|
||||||
if (!viewed) {
|
|
||||||
auth.signInAnonymously()
|
|
||||||
.then(() => {
|
|
||||||
var docRef = db.collection('views').doc(id)
|
|
||||||
localStorage.setItem(id, true);
|
|
||||||
docRef.get().then((doc) => {
|
|
||||||
if (doc.exists) {
|
|
||||||
db.collection('views').doc(id).update({
|
|
||||||
views: firebase.firestore.FieldValue.increment(1)
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
db.collection('views').doc(id).set({ views: 1 })
|
|
||||||
}
|
|
||||||
}).catch((error) => {
|
|
||||||
console.log("Error getting document:", error);
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
var errorCode = error.code;
|
|
||||||
var errorMessage = error.message;
|
|
||||||
console.error(errorCode, errorMessage)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var oid_likes = "likes_{{ .File.Path }}"
|
var oid_likes = "likes_{{ .File.Path }}"
|
||||||
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
|
|
||||||
|
|
||||||
var liked = localStorage.getItem(id_likes);
|
|
||||||
|
|
||||||
if (liked) {
|
|
||||||
liked_article = true
|
|
||||||
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = ""
|
|
||||||
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = "none"
|
|
||||||
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = ""
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function like_article(id_likes) {
|
|
||||||
auth.signInAnonymously()
|
|
||||||
.then(() => {
|
|
||||||
var docRef = db.collection('likes').doc(id_likes)
|
|
||||||
docRef.get().then((doc) => {
|
|
||||||
liked_article = true
|
|
||||||
localStorage.setItem(id_likes, true);
|
|
||||||
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = ""
|
|
||||||
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = "none"
|
|
||||||
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = ""
|
|
||||||
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) {
|
|
||||||
auth.signInAnonymously()
|
|
||||||
.then(() => {
|
|
||||||
var docRef = db.collection('likes').doc(id_likes)
|
|
||||||
docRef.get().then((doc) => {
|
|
||||||
liked_article = false
|
|
||||||
localStorage.removeItem(id_likes);
|
|
||||||
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = "none"
|
|
||||||
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = ""
|
|
||||||
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = "\xa0Like"
|
|
||||||
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_{{ .File.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>
|
</script>
|
||||||
|
{{ $jsPage := resources.Get "js/page.js" }}
|
||||||
|
{{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint "sha512" }}
|
||||||
|
<script type="text/javascript" src="{{ $jsPage.RelPermalink }}" integrity="{{ $jsPage.Data.Integrity }}"></script>
|
||||||
</section>
|
</section>
|
||||||
<footer class="pt-8 max-w-prose print:hidden">
|
<footer class="pt-8 max-w-prose print:hidden">
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue