Capture events on tmp download link created by FileUtils

This commit is contained in:
jdescottes 2014-07-13 15:54:13 +02:00
parent 581bd46dcd
commit d4884a2de5
3 changed files with 18 additions and 17 deletions

View File

@ -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;

View File

@ -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);
} }
} }

View File

@ -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">