/*
* 記事購入処理(メーター制)
*/
//多重起動防止
var do_follow = false;
$(function(){
var btns = document.querySelectorAll('.tag_btn');
for(var i = 0; i < btns.length; i++){
btns[i].addEventListener('click',function(){
if(do_follow){
return;
}
do_follow = true;
$('.tag_btn button').prop('disabled', true);
var category_key = $(this).attr('category_key');
var follow_up = $(this).attr('follow_up');
var follow_down = $(this).attr('follow_down');
var category_id = $(this).attr('category_followBtn');
new Promise((exec_end) => {
follow(category_key,follow_up,follow_down,category_id,exec_end);
})
// .then(() => {
// console.log("フォロー処理が完了しました");
// })
// .catch((error) => {
// console.error("フォロー処理中にエラーが発生しました", error);
// })
.finally(() => {
// 処理完了後にフラグをリセット
do_follow = false;
// ボタンを再度有効化
$('.tag_btn button').prop('disabled', false);
return ;
});
},false);
}
});
function follow(category_key,follow_up,follow_down,id,exec_end){
/*
obj = $('#'+id);
obj.removeClass();
if(follow_up==1){
obj.addClass('folowBtn-down');
}
if(follow_down==1){
obj.addClass('folowBtn-up');
}
*/
obj_up = $('#up'+id);
obj_down = $('#down'+id);
// 記事詳細・カテゴリTOPページのフォローボタン用
var followUpButton = document.querySelector('#up'+id+' button');
var followDownButton = document.querySelector('#down'+id+' button');
if (followUpButton && followDownButton) {
var followUpButtonText = followUpButton.textContent; // ボタンのテキストを取得しておく
var followDownButtonText = followDownButton.textContent; // ボタンのテキストを取得しておく
followUpButton.textContent = '保存中...';
followDownButton.textContent = '解除中...';
}else{
// マイページ(マイニュース:フォロー一覧)のフォローボタン用
var serviceFollowUpButton = document.querySelector('#up'+id);
var serviceFollowDownButton = document.querySelector('#down'+id);
if (serviceFollowUpButton && serviceFollowDownButton) {
var serviceFollowUpButtonText = serviceFollowUpButton.textContent; // ボタンのテキストを取得しておく
var serviceFollowDownButtonText = serviceFollowDownButton.textContent; // ボタンのテキストを取得しておく
serviceFollowUpButton.textContent = '保存中...';
serviceFollowDownButton.textContent = '解除中...';
}
}
$.get(
'/follow?category_key='+category_key+'&follow_up='+follow_up+'&follow_down='+follow_down,
function(result){
var data = $.parseJSON(result);
if(data==true){
setTimeout(function(){
// if(input_type=='reload'){
// location.reload();
// }
if(follow_up==1){
obj_down.removeClass('hidden');
obj_down.addClass('selected');
obj_up.addClass('hidden');
// obj.html('フォロー解除');
if (followUpButton && followDownButton) {
followUpButton.textContent = followUpButtonText;
followDownButton.textContent = followDownButtonText;
}
if (serviceFollowUpButton && serviceFollowDownButton) {
serviceFollowUpButton.textContent = serviceFollowUpButtonText;
serviceFollowDownButton.textContent = serviceFollowDownButtonText;
}
}
if(follow_down==1){
obj_down.addClass('hidden');
obj_down.removeClass('selected');
obj_up.removeClass('hidden');
// obj.addClass('folowBtn-up');
// obj.html('フォローする');
if (followUpButton && followDownButton) {
followUpButton.textContent = followUpButtonText;
followDownButton.textContent = followDownButtonText;
}
if (serviceFollowUpButton && serviceFollowDownButton) {
serviceFollowUpButton.textContent = serviceFollowUpButtonText;
serviceFollowDownButton.textContent = serviceFollowDownButtonText;
}
}
},1000);
}else if(data=='permission_false'){
setTimeout(function(){},1000);
if (followUpButton && followDownButton) {
followUpButton.textContent = followUpButtonText;
followDownButton.textContent = followDownButtonText;
}
if (serviceFollowUpButton && serviceFollowDownButton) {
serviceFollowUpButton.textContent = serviceFollowUpButtonText;
serviceFollowDownButton.textContent = serviceFollowDownButtonText;
}
}else{
setTimeout(function(){
alert(data);
},1000);
if (followUpButton && followDownButton) {
followUpButton.textContent = followUpButtonText;
followDownButton.textContent = followDownButtonText;
}
if (serviceFollowUpButton && serviceFollowDownButton) {
serviceFollowUpButton.textContent = serviceFollowUpButtonText;
serviceFollowDownButton.textContent = serviceFollowDownButtonText;
}
}
// 1秒後に処理を完了する(ボタン名の表記変更に時間を要する為)
setTimeout(function () {
exec_end();// 処理終了
}, 1000);
}
);
}
function mail(user_id,category_key,follow_up,follow_down,id){
obj_up = $('#up'+id);
obj_down = $('#down'+id);
$.get(
'/follow/mail?user_id='+user_id+'&category_key='+category_key+'&follow_up='+follow_up+'&follow_down='+follow_down,
function(result){
var data = $.parseJSON(result);
if(data==true){
setTimeout(function(){
if(follow_up==1){
obj_down.removeClass('hidden');
obj_down.addClass('active');
obj_up.addClass('hidden');
// obj.html('フォロー解除');
}
if(follow_down==1){
obj_down.addClass('hidden');
obj_down.removeClass('active');
obj_up.removeClass('hidden');
// obj.addClass('folowBtn-up');
// obj.html('フォローする');
}
// location.reload();
},1000);
}else{
setTimeout(function(){
alert(data);
},1000);
}
}
);
}
function followTopView(user_id,on_flag,off_flag,id){
obj = $('#'+id);
if(on_flag==1){
flag=1;
}else
if(off_flag==1){
flag=0;
}
$.post('/service/follow/setting',
{'user_id': user_id, 'flag': flag},
function(result){
var data = $.parseJSON(result);
if(data==true){
/*
setTimeout(function(){
obj_down.addClass('hidden');
obj_down.removeClass('active');
obj_up.removeClass('hidden');
// location.reload();
},1000);
*/
}else{
setTimeout(function(){
alert(data);
},1000);
}
}
);
}