split screenshot function into 4 separate helpers

This commit is contained in:
Devin Howard 2017-01-11 12:57:18 -05:00
parent 42d671c05b
commit 12a0d96332

View file

@ -251,6 +251,39 @@ const Map = {
}
},
exportImage: function() {
const canvas = Map.getMapCanvasForScreenshots()
const filename = Map.getMapScreenshotFilename(Active.Map)
Map.offerScreenshotDownload(canvas, filename)
Map.uploadMapScreenshot(canvas, filename)
},
offerScreenshotDownload: (canvas, filename) => {
var downloadMessage = outdent`
Captured map screenshot!
<a href="${canvas.canvas.toDataURL()}" download="${filename}">DOWNLOAD</a>`
GlobalUI.notifyUser(downloadMessage)
},
uploadMapScreenshot: (canvas, filename) => {
canvas.canvas.toBlob(imageBlob => {
const formData = new window.FormData()
formData.append('map[screenshot]', imageBlob, filename)
$.ajax({
type: 'PATCH',
dataType: 'json',
url: `/maps/${Active.Map.id}`,
data: formData,
processData: false,
contentType: false,
success: function(data) {
console.log('successfully uploaded map screenshot')
},
error: function() {
console.log('failed to save map screenshot')
}
})
})
},
getMapCanvasForScreenshots: () => {
var canvas = {}
canvas.canvas = document.createElement('canvas')
@ -336,8 +369,9 @@ const Map = {
node.visited = !T
})
var map = Active.Map
return canvas
},
getMapScreenshotFilename: map => {
var today = new Date()
var dd = today.getDate()
var mm = today.getMonth() + 1 // January is 0!
@ -352,30 +386,7 @@ const Map = {
var mapName = map.get('name').split(' ').join(['-'])
const filename = `metamap-${map.id}-${mapName}-${today}.png`
var downloadMessage = outdent`
Captured map screenshot!
<a href="${canvas.canvas.toDataURL()}" download="${filename}">DOWNLOAD</a>`
GlobalUI.notifyUser(downloadMessage)
canvas.canvas.toBlob(imageBlob => {
const formData = new window.FormData()
formData.append('map[screenshot]', imageBlob, filename)
$.ajax({
type: 'PATCH',
dataType: 'json',
url: `/maps/${map.id}`,
data: formData,
processData: false,
contentType: false,
success: function(data) {
console.log('successfully uploaded map screenshot')
},
error: function() {
console.log('failed to save map screenshot')
}
})
})
return filename
}
}