「Widget:Custom map」の版間の差分

提供:ロマサガ2リメイク 攻略Wiki(ロマンシング サガ2 リベンジオブザセブン)
移動先:案内検索
編集の要約なし
タグ: 差し戻し済み
編集の要約なし
タグ: 手動差し戻し
683行目: 683行目:


function saveToWikiPage(geoJSONData) {
function saveToWikiPage(geoJSONData) {
     var api = new mw.Api();
     var formattedData = geoJSONData;
 
    $.ajax({
    api.post({
        type: "POST",
        action: 'edit',
        url: API_BASE_URL + '/api.php',
        title: '<!--{$geojson}-->',
        data: {
        text: geoJSONData,
            action: 'edit',
        token: csrfToken, // 取得したトークンを使用
            title: '<!--{$geojson}-->',
        format: 'json'
            text: formattedData,
    }).done(function(response) {
            token: mw.user.tokens.get('csrfToken'),
        if (response.edit && response.edit.result === 'Success') {
            format: 'json'
            alert('データは正常に保存されました');
        },
            editMode = false;
        success: function(response) {
            drawControl.remove();
//            console.log("Save response:", response);
            editButton.state('enable-edit');
            if (response.edit && response.edit.result === 'Success') {
            saveButton.remove();
                alert('データは正常に保存されました');
 
                editMode = false;
            setTimeout(function() {
                drawControl.remove();
                loadPinsFromWikiPage();
                editButton.state('enable-edit');
            }, 1000);
                saveButton.remove(); // saveButtonを非表示にする
        } else {
               
            alert('Error saving data: ' + JSON.stringify(response));
                setTimeout(function() {
                    loadPinsFromWikiPage();
                }, 1000);
            } else {
                alert('Error saving data: ' + JSON.stringify(response));
            }
        },
        error: function(xhr, status, error) {
            console.error("Save error:", error);
//            console.log("XHR status:", status);
//            console.log("XHR response:", xhr.responseText);
            alert('Error saving data: ' + error);
         }
         }
    }).fail(function(error) {
        console.error("Save error:", error);
        alert('Error saving data: ' + error);
     });
     });
}
}
map.on(L.Draw.Event.CREATED, function (event) {
map.on(L.Draw.Event.CREATED, function (event) {
     var layer = event.layer;
     var layer = event.layer;
722行目: 727行目:
     drawnItems.addLayer(layer);
     drawnItems.addLayer(layer);
});
});
function refreshTokenAndSave(geoJSONData) {
    var api = new mw.Api();
    api.get({
        action: 'query',
        meta: 'tokens',
        type: 'csrf',
        format: 'json'
    }).done(function(data) {
        csrfToken = data.query.tokens.csrftoken; // トークンを更新
        saveToWikiPage(geoJSONData); // 保存処理を再試行
    });
}




////////////////////////////////////////////////////
////////////////////////////////////////////////////
// ページ読み込み時にデータを読み込む
// ページ読み込み時にデータを読み込む
var csrfToken; // グローバル変数としてトークンを格納
$(document).ready(function() {
$(document).ready(function() {
    var api = new mw.Api();
    // トークンを取得
    api.get({
        action: 'query',
        meta: 'tokens',
        type: 'csrf',
        format: 'json'
    }).done(function(data) {
        csrfToken = data.query.tokens.csrftoken; // トークンを保存
        console.log('CSRF Token acquired:', csrfToken);
    }).fail(function(error) {
        console.error('Failed to fetch CSRF Token:', error);
    });
    // 地図の初期化とデータの読み込み
     setTimeout(function() {
     setTimeout(function() {
         map.invalidateSize();
         map.invalidateSize();
         loadPinsFromWikiPage();
         loadPinsFromWikiPage();
     }, 500);
     }, 500); // 少し長めの遅延を設定
});
});
</script>
</script>


</includeonly>
</includeonly>

2024年11月9日 (土) 15:26時点における版