update demo to latest zmodem.js code

This commit is contained in:
Felipe Gasper
2017-09-26 10:31:24 -04:00
parent 65f5f1c38c
commit 3f467b33e4
3 changed files with 18 additions and 5 deletions
+2
View File
@@ -22,6 +22,7 @@
<script src="/zmodemjs/zsubpacket.js"></script>
<script src="/zmodemjs/zsession.js"></script>
<script src="/zmodemjs/zsentry.js"></script>
<script src="/zmodemjs/zerror.js"></script>
<script src="/zmodemjs/zbrowser.js"></script>
</head>
<body>
@@ -56,6 +57,7 @@
<form id="zm_progress" style="display: none" action="javascript:void(0)">
<div><span id="percent_received"></span>% (<span id="bytes_received"></span> bytes) received</div>
<button type="button" onclick="abort_current_session(); this.form.style.display='none';">Abort ZMODEM</button>
</form>
<form id="zm_choose" style="display: none" action="javascript:void(0)">
+15 -4
View File
@@ -137,7 +137,7 @@ function _hide_file_info() {
document.getElementById("zm_file").style.display = "none";
}
function _download(xfer, buffer) {
function _save_to_disk(xfer, buffer) {
return Zmodem.Browser.save_to_disk(buffer, xfer.get_details().name);
}
@@ -175,10 +175,12 @@ function _handle_receive_session(zsession) {
var FILE_BUFFER = [];
xfer.on("input", (payload) => {
_update_progress(xfer);
FILE_BUFFER.push.apply(FILE_BUFFER, payload);
FILE_BUFFER.push( new Uint8Array(payload) );
});
xfer.accept().then( () => {
_download(xfer, FILE_BUFFER);
xfer.accept().then(
() => { _save_to_disk(xfer, FILE_BUFFER); },
console.error.bind(console)
).then( () => {
_hide_file_info();
_hide_progress();
} );
@@ -224,6 +226,13 @@ function _handle_send_session(zsession) {
};
}
//This is here to allow canceling of an in-progress ZMODEM transfer.
var current_zsession;
function abort_current_session() {
current_zsession.abort();
}
var text_encoder = new TextEncoder();
var zsentry = new Zmodem.Sentry( {
to_terminal(octets) {
@@ -249,6 +258,8 @@ var zsentry = new Zmodem.Sentry( {
if (e.currentTarget.zmstart.value) {
let zsession = detection.confirm();
current_zsession = zsession;
if (zsession.type === "receive") {
_handle_receive_session(zsession);
}