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);
})
}
}