/* * 記事購入処理(メーター制) */ //多重起動防止 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); } } ); }