var iDB_proc_flg = false; // コンストラクタ function iDBconstructor() { // console.log('constructor'); createDatabase(); } // データベースとストアの作成 function createDatabase() { db = new Dexie('shizuokaDataBase'); db.version(1).stores({ diary_good: "id, registAt", tv_good: "id, registAt" }); return db; } // 写メールGood INIT function pd_good_init(idb, pd_ids) { var err_flg = false; pd_ids.forEach(function(v, i, a) { var sv = parseInt(v); idb.diary_good.where('id').equals(sv).toArray().then(function(goods) { if (goods.length) { var ctrl_id = goods[0]['id']; $('#pd_'+ctrl_id).addClass('btn_good'); $('#pd_'+ctrl_id).removeClass('btn_g0'); } }) .catch(function(e) { idb.delete(); createDatabase(); }); }); } // 写メールLIST Good INIT function pd_good_list_init(idb, pd_ids) { pd_ids.forEach(function(v, i, a) { var sv = parseInt(v); idb.diary_good.where('id').equals(sv).toArray().then(function(goods) { if (goods.length) { var ctrl_id = goods[0]['id']; $('#pd_'+ctrl_id).addClass('good_no'); $('#pd_'+ctrl_id).removeClass('good_0'); } }) .catch(function(e) { idb.delete(); createDatabase(); }); }); } // 姫TVGood INIT function std_good_init(idb, std_ids) { std_ids.forEach(function(v, i, a) { var sv = parseInt(v); idb.tv_good.where('id').equals(sv).toArray().then(function(goods) { if (goods.length) { var ctrl_id = goods[0]['id']; $('#std_'+ctrl_id).addClass('btn_good'); $('#std_'+ctrl_id).removeClass('btn_g0'); } }) .catch(function(e) { idb.delete(); createDatabase(); }); }); } // 姫TVLIST Good INIT function std_good_list_init(idb, std_ids) { std_ids.forEach(function(v, i, a) { var sv = parseInt(v); idb.tv_good.where('id').equals(sv).toArray().then(function(goods) { if (goods.length) { var ctrl_id = goods[0]['id']; $('#std_'+ctrl_id).addClass('good_no'); $('#std_'+ctrl_id).removeClass('good_0'); } }) .catch(function(e) { idb.delete(); createDatabase(); }); }); } // 写メールGood CONTROLL function pd_good_control(idb) { $(document).on('click', '.good_link', function() { var obj = $(this); var url = obj.attr('href'); var target = obj.children('span'); var today = new Date(); var today_ts = today.getTime(); // コンテンツIDが登録済みかチェック var pd_id = obj.data('pd_id'); var opFlg = "add"; idb.diary_good.where('id').equals(pd_id).toArray().then(function(goods) { if (goods.length) { var ctrl_id = goods[0]['id']; opFlg = "del"; } pd_good_execute(idb, obj, url, target, pd_id, opFlg, today_ts); }) .catch(function(e) { pd_good_execute(idb, obj, url, target, pd_id, opFlg, today_ts); }); return false; }); } // 姫TVGood CONTROLL function std_good_control(idb) { $(document).on('click', '.good_link', function() { var obj = $(this); var url = obj.attr('href'); var target = obj.children('span'); var today = new Date(); var today_ts = today.getTime(); // コンテンツIDが登録済みかチェック var std_id = obj.data('std_id'); var opFlg = "add"; // console.log("std_id:"+std_id); idb.tv_good.where('id').equals(std_id).toArray().then(function(goods) { if (goods.length) { var ctrl_id = goods[0]['id']; // console.log('have:'+ctrl_id); opFlg = "del"; } std_good_execute(idb, obj, url, target, std_id, opFlg, today_ts); }) .catch(function(e) { // console.log('ERRORRRR!'); std_good_execute(idb, obj, url, target, std_id, opFlg, today_ts); }); return false; }); } // 写メールGOOD実行 function pd_good_execute(idb, obj, url, target, pd_id, opFlg, today_ts) { if (iDB_proc_flg == false) { $.ajax({ url: url, data:{ 'pd_id':pd_id, 'add':opFlg }, cache: false, dataType: 'json', beforeSend: function() { iDB_proc_flg = true; } }) .done(function(res) { if (res['error']) { alert(res['msg']); } else { // カウントアップ if (res['good_process'] == 'up') { obj.removeClass('btn_g0'); obj.addClass('btn_good'); // INDEXED DB idb.diary_good.add({ id: parseInt(pd_id), registAt: today_ts }) .catch(function(e) { // console.log(e); }); // カウントダウン } else { obj.removeClass('btn_good'); obj.addClass('btn_g0'); // INDEXED DB idb.diary_good.delete(pd_id); } target.text(res['count']); } }) .fail(function() { }) .always(function() { setTimeout(function() { iDB_proc_flg = false; }, 300); }) } } // 姫TVGOOD実行 function std_good_execute(idb, obj, url, target, std_id, opFlg, today_ts) { if (iDB_proc_flg == false) { $.ajax({ url: url, data:{ 'std_did':std_id, 'add':opFlg }, cache: false, dataType: 'json', beforeSend: function() { iDB_proc_flg = true; } }) .done(function(res) { if (res['error']) { alert(res['msg']); } else { // カウントアップ if (res['good_process'] == 'up') { obj.removeClass('btn_g0'); obj.addClass('btn_good'); // INDEXED DB idb.tv_good.add({ id: parseInt(std_id), registAt: today_ts }) .catch(function(e) { // console.log(e); }); // カウントダウン } else { obj.removeClass('btn_good'); obj.addClass('btn_g0'); // INDEXED DB idb.tv_good.delete(std_id); } target.text(res['count']); } }) .fail(function() { }) .always(function() { setTimeout(function() { iDB_proc_flg = false; }, 300); }) } }