Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // plak alles hieronder in de "Custom JavaScript for websites" Chrome extension op de PostNL pagina en sla deze op.
- // Custom JavaScript for websites extension is hier te vinden:
- // https://chrome.google.com/webstore/detail/custom-javascript-for-web/poakhlngfciodnhlhhgnaaelnpjljija?hl=en
- // lukt het nou echt niet? https://tweakers.net/gallery/401983/
- var jouwPrinterNaam = "DYMO LabelWriter 450"; // vervang DYMO LabelWriter 450 met de naam van de gewenste printer
- // om de exacte naam te vinden ga je naar de lijst van printers in windows (voorbeeld: https://imgur.com/a/IBiSGjB)
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // Code niet aanpassen onder deze tekst
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // Variabelen voor tijdens het afdrukken
- var afdrukkenProefzegel = 0;
- var afdrukkenHuidigeNr = 0;
- var afdrukkenTotaalAantal = 0;
- var afdrukkenAnnuleren = 0;
- var printParams = "";
- var jsfwDymo = null;
- var printers = null;
- // Afdruk URL wordt gezet op het moment van afdrukken
- var afdrukkenUrl = "";
- // Omniture product (aantal = 1) en products (aantal = totaal) worden gezet op het moment van afdrukken
- var omnitureProduct = "";
- function frameworkInitShim() {
- dymo.label.framework.init(SysteemcontroleCheck); //init, then invoke a callback
- }
- function AfdrukkenProefzegel()
- {
- var fout = frameworkInitShim();
- if (fout)
- {
- ToonSysteemcontrole('proefzegel_afdrukken', fout);
- return;
- }
- ToonAfdrukBevestiging(500);
- }
- function Afdrukken(aantal, isIngelogd, heeftVoldoendeSaldo, popupHoogte)
- {
- if (!isIngelogd) {
- ToonInloggen('afdrukken');
- return;
- }
- var fout = frameworkInitShim();
- if (fout) {
- ToonSysteemcontrole('afdrukken', fout);
- return;
- }
- if (!heeftVoldoendeSaldo) {
- ToonOpwaarderen('afdrukken');
- return;
- }
- ToonAfdrukBevestiging(450 + popupHoogte);
- }
- /*
- * Controleert of de Dymo Javascript Framework Library de Dymo Add-In geladen kan worden
- * en of er een Dymo labelprinter wordt gevonden.
- *
- * Returns: 0 bij succes. Foutmelding bij een fout.
- */
- function SysteemcontroleCheck() {
- jsfwDymo = dymo.label.framework.checkEnvironment();
- if (!jsfwDymo.isFrameworkInstalled) {
- return "Framework_Not_Installed";
- }
- if (!jsfwDymo.isBrowserSupported) {
- return "Browser_Not_Supported";
- }
- // Controleer of er Dymo labelprinters gevonden kunnen worden.
- top.printers = dymo.label.framework.getLabelWriterPrinters();
- if (top.printers.length == 0) {
- return "FoutPrinter";
- }
- // Controleer of de Dymo labelprinter is aangesloten en aan staat.'
- var connected = false;
- for (var i = 0; i < top.printers.length && !connected; i++)
- {
- connected = top.printers[i].isConnected;
- }
- if (!connected) {
- return "FoutPrinter";
- }
- // Geslaagd
- return 0;
- }
- /*
- * Functie die opnieuw controleert of de systeemcontrole goed gaat. Zo niet wordt 'from' gebruikt om opnieuw het dialoog
- * van systeemcontrole te openen. Zo ja, wordt 'from' gebruikt om te bepalen welk scherm geopend wordt.
- */
- function SysteemcontroleRecheck(from)
- {
- var fout = frameworkInitShim();
- if (fout)
- {
- ToonSysteemcontrole(from, fout);
- }
- else
- {
- switch (from)
- {
- case 'afdrukken':
- RefreshProductSelectie('FROM_SYSTEEMCONTROLE_GESLAAGD');
- break;
- case 'aandeslag':
- ToonAandeslag('systeemcontrole');
- break;
- default:
- tb_remove();
- break;
- }
- }
- }
- function AfdrukkenStarten(aantal, proefzegel)
- {
- // Proefzegel?
- if (proefzegel)
- afdrukkenProefzegel = 1;
- else
- afdrukkenProefzegel = 0;
- // Hoeveel zegels?
- if (proefzegel)
- afdrukkenTotaalAantal = 1;
- else
- afdrukkenTotaalAantal = aantal;
- // Overige variabelen initialiseren
- afdrukkenHuidigeNr = 0;
- afdrukkenAnnuleren = 0;
- // Controle
- if (afdrukkenTotaalAantal < 1) {
- ToonFoutmelding('AFDRUKKEN', 'Een onverwachte fout is opgetreden. Het totaal af te drukken zegels is kleiner dan 1. Deze fout hoort afgevangen te worden in de server.');
- return;
- }
- // Popup openen
- tb_open(null, "BezigAfdrukken.aspx?height=250&width=435&size=small", null);
- // Wacht op callback van BezigAfdrukken.aspx
- }
- function AfdrukkenStartenPopupCallback()
- {
- // Ga naar volgende stap
- setTimeout("PrintClicked_WaitForPrinterReady()", 200);
- }
- function UpdateProgress()
- {
- $('#bezigmetprinten #progressbar').updateProgress(afdrukkenHuidigeNr, afdrukkenTotaalAantal);
- }
- function PrintClicked_WaitForPrinterReady()
- {
- // Annuleren?
- if (afdrukkenAnnuleren)
- return;
- // Zijn we klaar met printen?
- if (afdrukkenHuidigeNr == afdrukkenTotaalAantal) {
- PrintDone();
- }
- else {
- // Zo niet, opnieuw printen
- setTimeout("PrintClicked_PrintLabel()", 1);
- }
- }
- function PrintClicked_PrintLabel() {
- if(jsfwDymo == null)
- jsfwDymo = dymo.label.framework.checkEnvironment();
- // Huidige print bijwerken
- afdrukkenHuidigeNr++;
- UpdateProgress();
- // get the correct printer
- //if(top.printers == null)
- top.printers = dymo.label.framework.getLabelWriterPrinters();
- if (top.printers.length == 0) {
- PrintError('no_printer');
- return;
- }
- // Laatste kans om te annuleren
- if (afdrukkenAnnuleren) {
- return;
- }
- // Inladen van label
- var labelXml = loadLabel(afdrukkenUrl);
- var label = dymo.label.framework.openLabelXml(labelXml);
- if (labelXml.indexOf("Error code ") != -1) {
- PrintError('url');
- return;
- }
- // Werkelijk afdrukken
- label.print(jouwPrinterNaam, printParams);
- // Timeout alvorens verder te gaan
- setTimeout("PrintClicked_WaitForPrinterReady()", 3000);
- // Voor statistieken
- OmniturePurchase(omnitureProduct);
- }
- function loadLabel(url)
- {
- var xhr = new XMLHttpRequest();
- xhr.open('GET', url, false);
- xhr.send(null);
- if(xhr.status == 200)
- {
- return xhr.responseText;
- }
- else
- {
- PrintError('url');
- return "Error code " + xhr.status;
- }
- }
- function PrintError(melding)
- {
- ToonFoutmelding('AFDRUKKEN', melding);
- RefreshLoginPanel();
- }
- function PrintDone()
- {
- tb_remove();
- RefreshLoginPanel();
- RefreshProductSelectie('print_done');
- }
- function PrintCancel()
- {
- afdrukkenAnnuleren = 1;
- tb_remove();
- RefreshLoginPanel();
- RefreshProductSelectie('print_cancel');
- OmnitureAfdrukkenGeannuleerd();
- }
- /*
- * Deze functie wordt aangeroepen zodra het vinkje van 'Aan de slag' wordt geplaatst. Een systeemcontrole wordt
- * uitgevoerd en bij een fout wordt het systeemcontrolescherm geopend. Stond in Global maar is hier verplaatst omdat door een workaround
- * een kopie is gemaakt van ICT.Afdrukken om de oude situatie te behouden.
- */
- function AanDeSlagControle() {
- if ($(this).is(':checked')) {
- var fout = SysteemcontroleCheck();
- if (fout) {
- ToonSysteemcontrole('aandeslag', fout);
- }
- }
- }
- function IsTwinTurboPrinter() {
- var isTwinTurbo = false;
- if (top.printers != null && top.printers != "")
- {
- for (var i = 0; i < top.printers.length; i++)
- {
- if (top.printers[i].printerType == "LabelWriterPrinter" && top.printers[i].isConnected)
- {
- isTwinTurbo = top.printers[i].isTwinTurbo;
- break;
- }
- }
- }
- return isTwinTurbo;
- }
Advertisement
Add Comment
Please, Sign In to add comment