diff --git a/CHANGELOG b/CHANGELOG index 4fd085a01..8b469a4cd 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -36,7 +36,8 @@ Users: Core: - No reload on logoff. OpenSlides is now a full single page application [#3172]. -- Adding support for choosing image files as logos [#3184, #3207]. +- Adding support for choosing image files as logos for projector and + pdf [#3184, #3207, #3208]. - Fixing error when clearing empty chat [#3199]. General: diff --git a/openslides/core/config_variables.py b/openslides/core/config_variables.py index b4221d981..70ff69874 100644 --- a/openslides/core/config_variables.py +++ b/openslides/core/config_variables.py @@ -254,7 +254,7 @@ def get_config_variables(): yield ConfigVariable( name='logo_pdf_header', default_value={ - 'display_name': 'Header PDF logo', + 'display_name': 'PDF header logo', 'path': ''}, input_type='logo', weight=310, @@ -264,7 +264,7 @@ def get_config_variables(): yield ConfigVariable( name='logo_pdf_footer', default_value={ - 'display_name': 'Footer PDF logo', + 'display_name': 'PDF footer logo', 'path': ''}, input_type='logo', weight=311, diff --git a/openslides/core/static/js/core/pdf-worker.js b/openslides/core/static/js/core/pdf-worker.js index a83fcc574..4300bb558 100644 --- a/openslides/core/static/js/core/pdf-worker.js +++ b/openslides/core/static/js/core/pdf-worker.js @@ -96,20 +96,16 @@ self.addEventListener('message', function(e) { // see https://github.com/bpampuch/pdfmake/issues/38 if (data.footerTpl) { data.footer = function (currentPage, pageCount) { - var footerText = ''; for(var i = 0; i < data.footerTpl.columns.length; i++) { if (data.footerTpl.columns[i].text) { - footerText = data.footerTpl.columns[i].text + data.footerTpl.columns[i].text = data.footerTpl.columns[i].text .replace('{{currentPage}}', currentPage) .replace('{{pageCount}}', pageCount); } } return { - text: footerText, - alignment: data.footerTpl.alignment, + columns: data.footerTpl.columns, margin: data.footerTpl.margin, - fontSize: data.footerTpl.fontSize, - color: data.footerTpl.color }; }; } diff --git a/openslides/core/static/js/core/pdf.js b/openslides/core/static/js/core/pdf.js index a7ec7aa38..46f47d8fa 100644 --- a/openslides/core/static/js/core/pdf.js +++ b/openslides/core/static/js/core/pdf.js @@ -161,6 +161,7 @@ angular.module('OpenSlidesApp.core.pdf', []) columns.push({ image: imageMap[logoHeaderUrl], fit: [180, 40], + width: '20%' }); } @@ -176,7 +177,8 @@ angular.module('OpenSlidesApp.core.pdf', []) columns.push({ text: text, fontSize: 10, - width: '100%', + alignment: 'right', + margin: [0, 10, 0, 0], }); return { color: '#555', @@ -194,22 +196,22 @@ angular.module('OpenSlidesApp.core.pdf', []) var getFooter = function() { var columns = []; - // TODO: This does't work. The image does not get rendered. if (logoFooterUrl) { columns.push({ image: imageMap[logoFooterUrl], - fit: [180,40], + fit: [400,50], + width: '80%' }); } columns.push({ text: '{{currentPage}} / {{pageCount}}', - width: '100%', + color: '#555', + fontSize: 9, + alignment: 'right', + margin: [0, 15, 0, 0], }); return { - alignment: 'right', - margin: [0, 15, 75, 0], - fontSize: 9, - color: '#555', + margin: [75, 0, 75, 10], columns: columns, columnGap: 10, }; diff --git a/openslides/core/static/js/core/site.js b/openslides/core/static/js/core/site.js index c925a46ee..d0b144286 100644 --- a/openslides/core/static/js/core/site.js +++ b/openslides/core/static/js/core/site.js @@ -1714,6 +1714,8 @@ angular.module('OpenSlidesApp.core.site', [ gettext('List of speakers overlay'); gettext('Projector logo'); gettext('Projector header image'); + gettext('PDF header logo'); + gettext('PDF footer logo'); // Mark the string 'Default projector' here, because it does not appear in the templates. gettext('Default projector');