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

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




function saveToWikiPage(geoJSONData) {
async function saveToWikiPage(geoJSONData) {
     var formattedData = geoJSONData;
     var formattedData = geoJSONData;
      
      
    // mw オブジェクトの存在チェックと csrfToken の取得
     if (!checkUserLoggedIn()) {
     if (typeof mw === 'undefined' || !mw.user || !mw.user.tokens) {
         alert('エラー: ログインしていません。データを保存するにはログインが必要です。');
        console.error('MediaWiki API is not available');
         alert('Error: MediaWiki API is not available. Unable to save data.');
         return;
         return;
     }
     }


     var csrfToken = mw.user.tokens.get('csrfToken');
     try {
    if (!csrfToken) {
         const csrfToken = await getCSRFToken();
         console.error('CSRF token not available');
        alert('Error: Unable to get CSRF token. Please try again or contact support.');
        return;
    }


    $.ajax({
        $.ajax({
        type: "POST",
            type: "POST",
        url: mw.util.wikiScript('api'), // 'http://162.43.54.49/api.php' の代わりに使用
            url: mw.util.wikiScript('api'),
        data: {
            data: {
            action: 'edit',
                action: 'edit',
            title: '<!--{$geojson}-->',
                title: '<!--{$geojson}-->',
            text: formattedData,
                text: formattedData,
            token: csrfToken,
                token: csrfToken,
            format: 'json'
                format: 'json'
        },
            },
        success: function(response) {
            success: function(response) {
            console.log("Save response:", response); // デバッグ用にコメントを外す
                console.log("Save response:", response);
            if (response.edit && response.edit.result === 'Success') {
                if (response.edit && response.edit.result === 'Success') {
                alert('データは正常に保存されました');
                    alert('データは正常に保存されました');
                editMode = false;
                    editMode = false;
                drawControl.remove();
                    drawControl.remove();
                editButton.state('enable-edit');
                    editButton.state('enable-edit');
                saveButton.remove(); // saveButtonを非表示にする
                    saveButton.remove();
               
                   
                setTimeout(function() {
                    setTimeout(function() {
                    loadPinsFromWikiPage();
                        loadPinsFromWikiPage();
                }, 1000);
                    }, 1000);
            } else {
                } else {
                alert('Error saving data: ' + JSON.stringify(response));
                    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);
             }
             }
         },
         });
        error: function(xhr, status, error) {
    } catch (error) {
            console.error("Save error:", error);
        console.error("Error getting CSRF token:", error);
            console.log("XHR status:", status);
        alert('Error: Unable to get CSRF token. ' + error);
            console.log("XHR response:", xhr.responseText);
     }
            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;

2024年9月24日 (火) 13:12時点における版

地図表示Widget「Widget:Custom map」です。