これまでの作業で、ロケタッチのスポットをタグつきで保存できるようになった。ここからは、このアプリを活用して、「訪問予定のスポットと予定日時」を管理し、自動チェックインするアプリを作成していく。
- 保存(clip)したスポットを読み込む:loadClip()
GAE (Google App Engine)のデータストアに保存したスポットのデータを読み込む。データストアへのアクセスにはgaedirectを利用する。
// JavaScript
function loadClip(){
gDSspotClip.dbRevAll2('','',function(clips){ // 全てのエンティティ(レコード)を対象
xumiscMessage(clips.length + ' clip spots loaded.', 2000); // 読み込んだ件数を表示
});
}
GAEに保存したタグ一覧を読み込む。
// JavaScript
function loadTagClip(){
// 並び順は昇順、ステータス:live(使用中)のものを読み込み
gDStag.dbRevAll2('tag_name:ASCENDING', 'tag_status:live', function(tags){
setCbxTagClip(tags); // コンボボックスの初期化
});
}
読み込んだタグ一覧でコンボボックス(タグ選択用)を初期化する。
// JavaScript
function setCbxTagClip(tags){
$('#cbxTagClip').combobox({
valueField: 'tag_key',
textField: 'tag_name',
multiple: false, // 複数選択しない
data: tags, // データをセット
onSelect: function(){ // 選択時の動作を指定
// 保存したspotを選択したタグでフィルタリング
var _spots =
filterSpotByTag(gDSspotClip.getData(), $('#cbxTagClip').combobox('getValues'));
if ( _spots.length > 0) { // 対象spotが1つ以上の場合
showTblClip($('#tblClipSpot'), _spots); // spot一覧をテーブル表示
displaySpotsOnMap(_spots); // spot一覧を地図表示
//xumiscMessage(_spots.length + ' spots clipped.');
}
else { // 対象spotがない場合
xumiscMessage('No for the tag:' + $('#cbxTagClip').combobox('getValues'));
}
//showTblClip($('#tblClipSpot'), gDSspotClip.getData());
//console.log('cbxTagClip onSelect');
},
onUnselect: function(){
// タグの複数選択を許容していないので、今のところ不要
}
});
}
