You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jquery-qrcode/src/demo/scripts.js

105 lines
2.6 KiB
JavaScript

11 years ago
(function () {
'use strict';
12 years ago
11 years ago
var $ = jQuery;
12 years ago
11 years ago
var isOpera = Object.prototype.toString.call(window.opera) === '[object Opera]',
12 years ago
11 years ago
guiValuePairs = [
["size", "px"],
["minversion", ""],
["quiet", " modules"],
["radius", "%"],
["msize", "%"],
["mposx", "%"],
["mposy", "%"]
],
12 years ago
11 years ago
updateGui = function () {
12 years ago
11 years ago
$.each(guiValuePairs, function (idx, pair) {
12 years ago
11 years ago
var $label = $('label[for="' + pair[0] + '"]');
12 years ago
11 years ago
$label.text($label.text().replace(/:.*/, ': ' + $('#' + pair[0]).val() + pair[1]));
});
},
12 years ago
11 years ago
updateQrCode = function () {
11 years ago
var options = {
render: $("#render").val(),
ecLevel: $("#eclevel").val(),
minVersion: parseInt($("#minversion").val(), 10),
11 years ago
fill: $("#fill").val(),
background: $("#background").val(),
// fill: $("#img-buffer")[0],
12 years ago
11 years ago
text: $("#text").val(),
size: parseInt($("#size").val(), 10),
radius: parseInt($("#radius").val(), 10) * 0.01,
quiet: parseInt($("#quiet").val(), 10),
12 years ago
11 years ago
mode: parseInt($("#mode").val(), 10),
11 years ago
mSize: parseInt($("#msize").val(), 10) * 0.01,
mPosX: parseInt($("#mposx").val(), 10) * 0.01,
mPosY: parseInt($("#mposy").val(), 10) * 0.01,
12 years ago
11 years ago
label: $("#label").val(),
fontname: $("#font").val(),
fontcolor: $("#fontcolor").val(),
12 years ago
11 years ago
image: $("#img-buffer")[0]
};
12 years ago
11 years ago
$("#container").empty().qrcode(options);
},
12 years ago
11 years ago
update = function () {
12 years ago
11 years ago
updateGui();
updateQrCode();
},
12 years ago
11 years ago
onImageInput = function () {
12 years ago
11 years ago
var input = $("#image")[0];
12 years ago
11 years ago
if (input.files && input.files[0]) {
12 years ago
11 years ago
var reader = new FileReader();
12 years ago
11 years ago
reader.onload = function (event) {
$("#img-buffer").attr("src", event.target.result);
$("#mode").val("4");
setTimeout(update, 250);
};
reader.readAsDataURL(input.files[0]);
}
},
12 years ago
11 years ago
download = function (event) {
12 years ago
11 years ago
var data = $("#container canvas")[0].toDataURL('image/png');
$("#download").attr("href", data);
};
12 years ago
11 years ago
$(function () {
12 years ago
11 years ago
if (isOpera) {
$('html').addClass('opera');
$('#radius').prop('disabled', true);
}
12 years ago
11 years ago
$("#download").on("click", download);
$("#image").on('change', onImageInput);
$("input, textarea, select").on("input change", update);
$(window).load(update);
update();
});
12 years ago
11 years ago
}());