「Widget:Custom map」の版間の差分
提供:ロマサガ2リメイク 攻略Wiki(ロマンシング・サガ2 リベンジオブザセブン):ヘイグ
編集の要約なし タグ: 差し戻し済み |
編集の要約なし タグ: 手動差し戻し |
||
(同じ利用者による、間の4版が非表示) | |||
41行目: | 41行目: | ||
var drawnItems = new L.FeatureGroup(); | var drawnItems = new L.FeatureGroup(); | ||
map.addLayer(drawnItems); | map.addLayer(drawnItems); | ||
252行目: | 244行目: | ||
// MediaWikiコンテンツのレンダリング | // MediaWikiコンテンツのレンダリング | ||
function renderMediaWikiContent(content) { | function renderMediaWikiContent(content) { | ||
var renderedContent = ''; | var renderedContent = ''; | ||
$.ajax({ | $.ajax({ | ||
269行目: | 256行目: | ||
renderedContent = data.parse.text['*']; | renderedContent = data.parse.text['*']; | ||
}, | }, | ||
error: function( | error: function() { | ||
console.error('Failed to render MediaWiki content | console.error('Failed to render MediaWiki 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) { | ||
if (isInGroup) { | |||
editMode = true; | |||
map.addControl(drawControl); | |||
btn.state('disable-edit'); | |||
updateAllPopups(); | |||
saveButton.addTo(map); // saveButtonを表示する | |||
} else { | |||
alert('あなたには編集権限がありません。\n攻略に参加することでマップが編集できるようになります。'); | |||
} | |||
}); | |||
} | } | ||
}, { | }, { | ||
365行目: | 358行目: | ||
// 保存ボタン | // 保存ボタン | ||
var saveButton = L.easyButton('<img src="https://dq.h1g.jp/img/marker-icon-img/save-solid.svg">', | var saveButton = L.easyButton('<img src="https://dq.h1g.jp/img/marker-icon-img/save-solid.svg">', function() { | ||
if (editMode) { | if (editMode) { | ||
var geoJSONData = convertToGeoJSON(drawnItems); | var geoJSONData = convertToGeoJSON(drawnItems); | ||
if (geoJSONData) { | if (geoJSONData) { | ||
// console.log(geoJSONData); | |||
saveButton.remove(); | saveToWikiPage(geoJSONData); | ||
saveButton.remove(); // saveButtonを非表示にする | |||
} else { | } else { | ||
alert('Error: Invalid GeoJSON data'); | alert('Error: Invalid GeoJSON data'); | ||
554行目: | 548行目: | ||
function saveToWikiPage(geoJSONData) { | |||
var formattedData = geoJSONData; | var formattedData = geoJSONData; | ||
$.ajax({ | |||
type: "POST", | |||
url: 'http://162.43.54.49/api.php', | |||
data: { | |||
action: 'edit', | |||
title: '<!--{$geojson}-->', | |||
text: formattedData, | |||
token: mw.user.tokens.get('csrfToken'), | |||
format: 'json' | |||
}, | |||
success: function(response) { | |||
// console.log("Save response:", response); | |||
if (response.edit && response.edit.result === 'Success') { | |||
alert('データは正常に保存されました'); | |||
editMode = false; | |||
drawControl.remove(); | |||
editButton.state('enable-edit'); | |||
saveButton.remove(); // saveButtonを非表示にする | |||
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); | |||
} | |||
}); | |||
} | } | ||
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:45時点における最新版
地図表示Widget「Widget:Custom map」です。