mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Capture events on tmp download link created by FileUtils
This commit is contained in:
parent
581bd46dcd
commit
d4884a2de5
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
var URL_MAX_LENGTH = 30;
|
var URL_MAX_LENGTH = 30;
|
||||||
var MAX_GIF_COLORS = 256;
|
var MAX_GIF_COLORS = 256;
|
||||||
|
var MAX_EXPORT_ZOOM = 20;
|
||||||
|
var DEFAULT_EXPORT_ZOOM = 10;
|
||||||
|
|
||||||
ns.GifExportController = function (piskelController) {
|
ns.GifExportController = function (piskelController) {
|
||||||
this.piskelController = piskelController;
|
this.piskelController = piskelController;
|
||||||
@ -13,18 +15,12 @@
|
|||||||
* @static
|
* @static
|
||||||
* @type {Array} array of Objects {zoom:{Number}, default:{Boolean}}
|
* @type {Array} array of Objects {zoom:{Number}, default:{Boolean}}
|
||||||
*/
|
*/
|
||||||
ns.GifExportController.RESOLUTIONS = [
|
ns.GifExportController.RESOLUTIONS = [];
|
||||||
{
|
for (var i = 1 ; i <= MAX_EXPORT_ZOOM ; i++) {
|
||||||
'zoom' : 1
|
ns.GifExportController.RESOLUTIONS.push({
|
||||||
},{
|
zoom : i
|
||||||
'zoom' : 5
|
});
|
||||||
},{
|
|
||||||
'zoom' : 10,
|
|
||||||
'default' : true
|
|
||||||
},{
|
|
||||||
'zoom' : 20
|
|
||||||
}
|
}
|
||||||
];
|
|
||||||
|
|
||||||
ns.GifExportController.prototype.init = function () {
|
ns.GifExportController.prototype.init = function () {
|
||||||
this.optionTemplate_ = pskl.utils.Template.get("gif-export-option-template");
|
this.optionTemplate_ = pskl.utils.Template.get("gif-export-option-template");
|
||||||
@ -40,8 +36,6 @@
|
|||||||
this.downloadButton = $(".gif-download-button");
|
this.downloadButton = $(".gif-download-button");
|
||||||
this.downloadButton.click(this.onDownloadButtonClick_.bind(this));
|
this.downloadButton.click(this.onDownloadButtonClick_.bind(this));
|
||||||
|
|
||||||
this.exportForm = $(".gif-export-form");
|
|
||||||
|
|
||||||
this.exportProgressStatusEl = document.querySelector('.gif-export-progress-status');
|
this.exportProgressStatusEl = document.querySelector('.gif-export-progress-status');
|
||||||
this.exportProgressBarEl = document.querySelector('.gif-export-progress-bar');
|
this.exportProgressBarEl = document.querySelector('.gif-export-progress-bar');
|
||||||
|
|
||||||
@ -62,7 +56,6 @@
|
|||||||
fps = this.piskelController.getFPS();
|
fps = this.piskelController.getFPS();
|
||||||
|
|
||||||
this.renderAsImageDataAnimatedGIF(zoom, fps, function (imageData) {
|
this.renderAsImageDataAnimatedGIF(zoom, fps, function (imageData) {
|
||||||
pskl.app.imageUploadService.upload(imageData, this.onImageUploadCompleted_.bind(this));
|
|
||||||
pskl.utils.BlobUtils.dataToBlob(imageData, "image/gif", function(blob) {
|
pskl.utils.BlobUtils.dataToBlob(imageData, "image/gif", function(blob) {
|
||||||
pskl.utils.FileUtils.downloadAsFile(blob, fileName);
|
pskl.utils.FileUtils.downloadAsFile(blob, fileName);
|
||||||
});
|
});
|
||||||
@ -102,7 +95,9 @@
|
|||||||
var label = zoom*this.piskelController.getWidth() + "x" + zoom*this.piskelController.getHeight();
|
var label = zoom*this.piskelController.getWidth() + "x" + zoom*this.piskelController.getHeight();
|
||||||
var value = zoom;
|
var value = zoom;
|
||||||
|
|
||||||
var optionHTML = pskl.utils.Template.replace(this.optionTemplate_, {value : value, label : label});
|
var isSelected = zoom === DEFAULT_EXPORT_ZOOM;
|
||||||
|
var selected = isSelected ? 'selected' : '';
|
||||||
|
var optionHTML = pskl.utils.Template.replace(this.optionTemplate_, {value : value, label : label, selected : selected});
|
||||||
var optionEl = pskl.utils.Template.createFromHTML(optionHTML);
|
var optionEl = pskl.utils.Template.createFromHTML(optionHTML);
|
||||||
|
|
||||||
return optionEl;
|
return optionEl;
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
(function () {
|
(function () {
|
||||||
var ns = $.namespace('pskl.utils');
|
var ns = $.namespace('pskl.utils');
|
||||||
|
|
||||||
|
var stopPropagation = function (e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
};
|
||||||
|
|
||||||
ns.FileUtils = {
|
ns.FileUtils = {
|
||||||
readFile : function (file, callback) {
|
readFile : function (file, callback) {
|
||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
@ -20,7 +24,9 @@
|
|||||||
downloadLink.setAttribute('href', content);
|
downloadLink.setAttribute('href', content);
|
||||||
downloadLink.setAttribute('download', filename);
|
downloadLink.setAttribute('download', filename);
|
||||||
document.body.appendChild(downloadLink);
|
document.body.appendChild(downloadLink);
|
||||||
|
downloadLink.addEventListener('click', stopPropagation);
|
||||||
downloadLink.click();
|
downloadLink.click();
|
||||||
|
downloadLink.removeEventListener('click', stopPropagation);
|
||||||
document.body.removeChild(downloadLink);
|
document.body.removeChild(downloadLink);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
<label>Select resolution:</label>
|
<label>Select resolution:</label>
|
||||||
<select class="gif-export-select-resolution"></select>
|
<select class="gif-export-select-resolution"></select>
|
||||||
<script type="text/template" id="gif-export-option-template">
|
<script type="text/template" id="gif-export-option-template">
|
||||||
<option value="{{value}}">{{label}}</option>
|
<option value="{{value}}" {{selected}}>{{label}}</option>
|
||||||
</script>
|
</script>
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-item">
|
<div class="settings-item">
|
||||||
|
Loading…
Reference in New Issue
Block a user