Add label printing support, use more URLs instead of functions for nav
parent
da23bdcb23
commit
3fcf2b3bc8
@ -0,0 +1,113 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 Netsyms Technologies.
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var pdfobject = null;
|
||||||
|
|
||||||
|
function labelListAsync(routeTo, routeFrom, resolve, reject) {
|
||||||
|
app.dialog.preloader("Loading...");
|
||||||
|
apirequest(
|
||||||
|
"listlabels",
|
||||||
|
{},
|
||||||
|
function (resp) {
|
||||||
|
app.dialog.close();
|
||||||
|
if (resp.status == "ERROR") {
|
||||||
|
app.dialog.alert(resp.msg, "Error");
|
||||||
|
reject();
|
||||||
|
} else {
|
||||||
|
var context = {
|
||||||
|
labels: resp.labels,
|
||||||
|
machineid: routeTo.params.machineid
|
||||||
|
};
|
||||||
|
resolve({
|
||||||
|
templateUrl: "pages/labels.html",
|
||||||
|
}, {
|
||||||
|
context: context
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
function (xhr) {
|
||||||
|
app.dialog.close();
|
||||||
|
var error = $.parseJSON(xhr.responseText);
|
||||||
|
if (error && typeof error.msg != 'undefined') {
|
||||||
|
app.dialog.alert(error.msg, "Error");
|
||||||
|
} else {
|
||||||
|
app.dialog.alert("A server or network error occurred.", "Error");
|
||||||
|
}
|
||||||
|
reject();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPDFLabelAndDisplay(machineid, labeltype) {
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.onreadystatechange = function () {
|
||||||
|
if (this.readyState == 4 && this.status == 200) {
|
||||||
|
//this.response is what you're looking for
|
||||||
|
pdfobject = this.response;
|
||||||
|
|
||||||
|
$("#print-fab").removeClass("display-none");
|
||||||
|
$("#pdf-canvas").removeClass("display-none");
|
||||||
|
$("#pdf-loading-message").addClass("display-none");
|
||||||
|
|
||||||
|
pdfjsLib.getDocument({data: pdfobject}).promise.then(function (pdf) {
|
||||||
|
pdf.getPage(1).then(function (page) {
|
||||||
|
var scale = 1.5;
|
||||||
|
var viewport = page.getViewport({scale: scale});
|
||||||
|
|
||||||
|
var canvas = document.getElementById('pdf-canvas');
|
||||||
|
var context = canvas.getContext('2d');
|
||||||
|
canvas.height = viewport.height;
|
||||||
|
canvas.width = viewport.width;
|
||||||
|
|
||||||
|
var renderContext = {
|
||||||
|
canvasContext: context,
|
||||||
|
viewport: viewport
|
||||||
|
};
|
||||||
|
page.render(renderContext);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xhr.open('POST', SETTINGS.apiserver + "getlabel", true, getStorage("username"), getStorage("password"));
|
||||||
|
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
|
||||||
|
xhr.responseType = 'arraybuffer';
|
||||||
|
xhr.send("id=" + machineid + "&type=" + labeltype);
|
||||||
|
}
|
||||||
|
|
||||||
|
function sendPDFToPrintServer() {
|
||||||
|
var bytesArray = new Uint8Array(pdfobject);
|
||||||
|
|
||||||
|
var printurl = getStorage("printserverurl");
|
||||||
|
|
||||||
|
$.getJSON(printurl, {action: "list"}, function (resp) {
|
||||||
|
var printers = resp.printers;
|
||||||
|
|
||||||
|
var buttons = [];
|
||||||
|
for (var i = 0; i < printers.length; i++) {
|
||||||
|
buttons.push({
|
||||||
|
text: printers[i]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
app.dialog.create({
|
||||||
|
title: 'Print',
|
||||||
|
text: 'Select a printer',
|
||||||
|
buttons: buttons,
|
||||||
|
verticalButtons: true,
|
||||||
|
onClick: function (dialog, index) {
|
||||||
|
var printer = printers[index];
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: printurl + '?action=print&printer=' + printer,
|
||||||
|
type: 'POST',
|
||||||
|
contentType: 'application/octet-stream',
|
||||||
|
data: bytesArray,
|
||||||
|
processData: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}).open();
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
<!--
|
||||||
|
Copyright 2020 Netsyms Technologies.
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<div class="page" data-name="labels">
|
||||||
|
|
||||||
|
<div class="navbar">
|
||||||
|
<div class="navbar-bg"></div>
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="left">
|
||||||
|
<a href="#" class="link icon-only back">
|
||||||
|
<i class="icon icon-back"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="title">Labels for #{{machineid}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="list links-list no-margin-top">
|
||||||
|
<ul>
|
||||||
|
{{#each labels}}
|
||||||
|
<li>
|
||||||
|
<a href="/labels/{{../machineid}}/{{@key}}/{{this}}">
|
||||||
|
{{this}}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,37 @@
|
|||||||
|
<!--
|
||||||
|
Copyright 2020 Netsyms Technologies.
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<div class="page" data-name="viewlabel">
|
||||||
|
|
||||||
|
<div class="navbar">
|
||||||
|
<div class="navbar-bg"></div>
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="left">
|
||||||
|
<a href="#" class="link icon-only back">
|
||||||
|
<i class="icon icon-back"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="title">{{$route.params.labelname}} #{{$route.params.machineid}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="fab fab-right-bottom display-none" id="print-fab">
|
||||||
|
<a href="#" onclick="sendPDFToPrintServer()">
|
||||||
|
<span class="material-icons">print</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="page-content" id="pdfcanvas-container">
|
||||||
|
<canvas id="pdf-canvas" class="display-none"></canvas>
|
||||||
|
<p id="pdf-loading-message">Loading...</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
getPDFLabelAndDisplay("{{$route.params.machineid}}", "{{$route.params.labeltype}}");
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
Loading…
Reference in New Issue