Owen Leonard
4c17151d74
This patch adds the option to show a QR code on the OPAC bibliographic detail page. The URL of the page is encoded in the image so that scanning it will take the user to that page on their device. The feature is controlled by a new system preference, OPACDetailQRCode, which is disabled by default. The QR Code is generated by a JavaScript library, "kjua" (https://github.com/lrsjng/kjua), which has been added to the "About" page in the staff client. To test, apply the patch and run the database update. Rebuild the OPAC CSS (https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_client). - In the staff client, go to Administration -> System preferences. - Locate the OPACDetailQRCode system preferences under OPAC -> Features. It should be disabled. - Enable the preference and switch to the OPAC. - Locate a title in the catalog and view the detail page. - In the sidebar menu there should be a "Send to device" link. - Clicking the link should display a QR Code. - Scan the code using a QR Code-capable device. - The URL should be correct. - Disable the system preference and confirm that the "Send to device" link no longer appears on the OPAC detail page. Signed-off-by: Christopher Brannon <cbrannon@cdalibrary.org> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
18 lines
656 B
JavaScript
18 lines
656 B
JavaScript
const {create_canvas, canvas_to_img, dpr} = require('./lib/dom');
|
|
const defaults = require('./lib/defaults');
|
|
const qrcode = require('./lib/qrcode');
|
|
const draw = require('./lib/draw');
|
|
|
|
module.exports = options => {
|
|
const settings = Object.assign({}, defaults, options);
|
|
|
|
const qr = qrcode(settings.text, settings.ecLevel, settings.minVersion, settings.quiet);
|
|
const ratio = settings.ratio || dpr;
|
|
const canvas = create_canvas(settings.size, ratio);
|
|
const context = canvas.getContext('2d');
|
|
|
|
context.scale(ratio, ratio);
|
|
draw(qr, context, settings);
|
|
|
|
return settings.render === 'image' ? canvas_to_img(canvas) : canvas;
|
|
};
|