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

提供:メタファー リファンタジオ 攻略Wiki
移動先:案内検索
編集の要約なし
タグ: 手動差し戻し
編集の要約なし
511行目: 511行目:
    
    
function loadPinsFromWikiPage() {
function loadPinsFromWikiPage() {
     var host = window.location.origin;
     getMwToken()
    var geojsonPage = "<!--{$geojson}-->";
        .then(function(token) {
    var url = API_BASE_URL + '/index.php/' + geojsonPage;
            var host = window.location.origin;
            var geojsonPage = "<!--{$geojson}-->";
            var url = API_BASE_URL + '/index.php/' + geojsonPage;


    $.ajax({
            return $.ajax({
        type: "GET",
                type: "GET",
        url: url,
                url: url,
        dataType: "html",
                dataType: "html",
         success: function(htmlContent) {
                headers: {
                    'Authorization': 'Bearer ' + token
                }
            });
        })
         .then(function(htmlContent) {
             try {
             try {
//                console.log("HTML Content: ", htmlContent); // 取得したHTMLをコンソールに出力
                 var parser = new DOMParser();
                 var parser = new DOMParser();
                 var doc = parser.parseFromString(htmlContent, "text/html");
                 var doc = parser.parseFromString(htmlContent, "text/html");
541行目: 547行目:
             } catch (error) {
             } catch (error) {
                 console.error("Error processing data:", error);
                 console.error("Error processing data:", error);
//                console.log("Raw HTML content:", htmlContent);
                 throw error;
//              console.log("Extracted script content:", scriptContent);
                 if (typeof geoJSONData !== 'undefined') {
//                  console.log("Extracted GeoJSON data:", geoJSONData);
                }
             }
             }
         },
         })
         error: function(xhr, status, error) {
         .catch(function(error) {
//          console.error("Error loading data:", error);
            console.error("Error loading data:", error);
//          console.log("XHR status:", status);
         });
//          console.log("XHR response:", xhr.responseText);
         }
    });
}
}


681行目: 680行目:




// トークンを取得する関数
function getMwToken() {
    return new Promise((resolve, reject) => {
        $.ajax({
            url: API_BASE_URL + '/api.php',
            data: {
                action: 'query',
                meta: 'tokens',
                type: 'csrf',
                format: 'json'
            },
            type: 'GET',
            success: function(response) {
                if (response.query && response.query.tokens && response.query.tokens.csrftoken) {
                    resolve(response.query.tokens.csrftoken);
                } else {
                    reject(new Error('Failed to get token'));
                }
            },
            error: function(xhr, status, error) {
                reject(error);
            }
        });
    });
}


function saveToWikiPage(geoJSONData) {
function saveToWikiPage(geoJSONData) {
     var formattedData = geoJSONData;
     var formattedData = geoJSONData;
     $.ajax({
      
        type: "POST",
    // 保存前に新しいトークンを取得
        url: API_BASE_URL + '/api.php',
    getMwToken()
        data: {
        .then(function(token) {
            action: 'edit',
            return $.ajax({
            title: '<!--{$geojson}-->',
                type: "POST",
            text: formattedData,
                url: API_BASE_URL + '/api.php',
            token: mw.user.tokens.get('csrfToken'),
                data: {
            format: 'json'
                    action: 'edit',
         },
                    title: '<!--{$geojson}-->',
         success: function(response) {
                    text: formattedData,
//            console.log("Save response:", response);
                    token: token,
                    format: 'json'
                }
            });
         })
         .then(function(response) {
             if (response.edit && response.edit.result === 'Success') {
             if (response.edit && response.edit.result === 'Success') {
                 alert('データは正常に保存されました');
                 alert('データは正常に保存されました');
701行目: 730行目:
                 drawControl.remove();
                 drawControl.remove();
                 editButton.state('enable-edit');
                 editButton.state('enable-edit');
                 saveButton.remove(); // saveButtonを非表示にする
                 saveButton.remove();
                  
                  
                 setTimeout(function() {
                 setTimeout(function() {
707行目: 736行目:
                 }, 1000);
                 }, 1000);
             } else {
             } else {
                 alert('Error saving data: ' + JSON.stringify(response));
                 throw new Error('Save failed: ' + JSON.stringify(response));
             }
             }
         },
         })
         error: function(xhr, status, error) {
         .catch(function(error) {
             console.error("Save error:", error);
             console.error("Save error:", error);
//            console.log("XHR status:", status);
             alert('Error saving data: ' + error.message);
//            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年11月9日 (土) 15:31時点における版