これまでの作業で、ロケタッチのスポットをタグつきで保存できるようになった。ここからは、このアプリを活用して、「訪問予定のスポットと予定日時」を管理し、自動チェックインするアプリを作成していく。
- 保存(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(){ // タグの複数選択を許容していないので、今のところ不要 } }); }