nicenote/themes/material/layout/_widget/leancloud-like.ejs
2018-07-13 19:29:56 +08:00

79 lines
3.2 KiB
Plaintext
Executable File

<script type="text/ls-javascript" id="leancloud-like-script">
function showTime(Like) {
var query = new AV.Query(Like);
$('.leancloud-like_num').each(function() {
var url = $(this).attr('id').trim();
query.equalTo('url', url);
query.find({
success: function(results) {
if (results.length === 0) {
var content = '0 ' + $(document.getElementById(url)).text();
$(document.getElementById(url)).text(content);
return;
}
for (var i = 0; i < results.length; i++) {
var object = results[i];
var content = object.get('time') + ' ' + $(document.getElementById(url)).text();
$(document.getElementById(url)).text(content);
}
},
error: function(object, error) {
console.log('Error: ' + error.code + ' ' + error.message);
}
});
});
}
function addCount(Like) {
var Like = AV.Object.extend('Like');
url = $('.leancloud-like_num').attr('id').trim();
title = $('.leancloud-like_num').attr('data-flag-title').trim();
var query = new AV.Query(Like);
query.equalTo('url', url);
query.find({
success: function(results) {
if (results.length > 0) {
var like = results[0];
like.fetchWhenSave(true);
like.increment('time');
like.save(null, {
success: function(like) {
var content = like.get('time') + ' ' + $(document.getElementById(url)).text();
$(document.getElementById(url)).text(content);
},
error: function(like, error) {
console.log('Failed to save Visitor num, with error message: ' + error.message);
}
});
} else {
var newlike = new Like();
newlike.set('title', title);
newlike.set('url', url);
newlike.set('time', 1);
newlike.save(null, {
success: function(newlike) {
console.log('newlike.get(\'time\')='+newlike.get('time'));
var content = newlike.get('time') + ' ' + $(document.getElementById(url)).text();
$(document.getElementById(url)).text(content);
},
error: function(newlike, error) {
console.log('Failed to create');
}
});
}
},
error: function(error) {
console.log('Error:' + error.code + ' ' + error.message);
}
});
}
$(function() {
var Like = AV.Object.extend('Like');
if ($('.leancloud-like_num').length === 1) {
addCount(Like);
} else if ($('.post-title-link').length > 1) {
showTime(Like);
}
});
</script>