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

提供:ロマサガ2リメイク 攻略Wiki(ロマンシング・サガ2 リベンジオブザセブン):ヘイグ
移動先:案内検索
編集の要約なし
タグ: 差し戻し済み
編集の要約なし
タグ: 手動差し戻し
 
(同じ利用者による、間の6版が非表示)
41行目: 41行目:
var drawnItems = new L.FeatureGroup();
var drawnItems = new L.FeatureGroup();
map.addLayer(drawnItems);
map.addLayer(drawnItems);
var DEBUG_MODE = true;
function debugLog(message) {
    if (DEBUG_MODE) {
        console.log("DEBUG:", message);
    }
}




252行目: 244行目:
// MediaWikiコンテンツのレンダリング
// MediaWikiコンテンツのレンダリング
function renderMediaWikiContent(content) {
function renderMediaWikiContent(content) {
    if (typeof mw === 'undefined' || !mw.Api) {
        console.warn('MediaWiki API is not available. Returning raw content.');
        return content;
    }
     var renderedContent = '';
     var renderedContent = '';
     $.ajax({
     $.ajax({
269行目: 256行目:
             renderedContent = data.parse.text['*'];
             renderedContent = data.parse.text['*'];
         },
         },
         error: function(xhr, status, error) {
         error: function() {
             console.error('Failed to render MediaWiki content:', error);
             console.error('Failed to render MediaWiki content');
            renderedContent = content;  // エラー時は元のコンテンツを返す
         }
         }
     });
     });
     return renderedContent;
     return renderedContent;
}
}


// ポップアップの内容を保存
// ポップアップの内容を保存
330行目: 317行目:
         title: 'マップを編集する',
         title: 'マップを編集する',
         onClick: function(btn, map) {
         onClick: function(btn, map) {
             editMode = true;
             checkUserGroup('map-edit-member', function(isInGroup) {
            map.addControl(drawControl);
                if (isInGroup) {
            btn.state('disable-edit');
                    editMode = true;
            updateAllPopups();
                    map.addControl(drawControl);
            saveButton.addTo(map); // saveButtonを表示する
                    btn.state('disable-edit');
                    updateAllPopups();
                    saveButton.addTo(map); // saveButtonを表示する
                } else {
                    alert('あなたには編集権限がありません。\n攻略に参加することでマップが編集できるようになります。');
                }
            });
         }
         }
     }, {
     }, {
557行目: 550行目:
function saveToWikiPage(geoJSONData) {
function saveToWikiPage(geoJSONData) {
     var formattedData = geoJSONData;
     var formattedData = geoJSONData;
   
    // mw オブジェクトの存在チェックと csrfToken の取得
    if (typeof mw === 'undefined' || !mw.user || !mw.user.tokens) {
        console.error('MediaWiki API is not available');
        alert('Error: MediaWiki API is not available. Unable to save data.');
        return;
    }
    var csrfToken = mw.user.tokens.get('csrfToken');
    if (!csrfToken) {
        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: 'http://162.43.54.49/api.php',
         data: {
         data: {
             action: 'edit',
             action: 'edit',
             title: '<!--{$geojson}-->',
             title: '<!--{$geojson}-->',
             text: formattedData,
             text: formattedData,
             token: csrfToken,
             token: mw.user.tokens.get('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('データは正常に保存されました');
600行目: 578行目:
         error: function(xhr, status, error) {
         error: function(xhr, status, error) {
             console.error("Save error:", error);
             console.error("Save error:", error);
            console.log("XHR status:", status);
//            console.log("XHR status:", status);
            console.log("XHR response:", xhr.responseText);
//            console.log("XHR response:", xhr.responseText);
             alert('Error saving data: ' + error);
             alert('Error saving data: ' + error);
         }
         }

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

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