Skip to content
Code-Schnipsel Gruppen Projekte
Commit 21437f18 erstellt von Michael Danielczok's avatar Michael Danielczok
Dateien durchsuchen

Merge branch 'next-2.x' into 'main'

fix: improve data request pdf design

See merge request !26
Übergeordnete bb77247c a14f5be8
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
2 Merge Requests!26fix: improve data request pdf design,!20Update 'next-3.x' with latest changes from 'main'
Pipeline-Nr. 16550 mit Warnungen bestanden
......@@ -136,7 +136,7 @@ define('package/quiqqer/gdpr/bin/controls/user/GdprActions', [
}
// Delete user
if (!canDeleteUser) {
if (canDeleteUser) {
new QUIButton({
'class' : 'quiqqer-gdpr-user-actions-data',
textimage: 'fa fa-trash',
......
body {
padding: 5mm 15mm 5mm 10mm;
font-size: 8pt;
}
#pages {
......
......@@ -5,13 +5,17 @@
{continue}
{/if}
{if is_array($userDataField->data) || is_null($userDataField->data)}
<tr class="data-request-categories-entry-dataFields-row">
<td class="data-request-categories-entry-dataFields-row-title" colspan="2">
{$userDataField->title}
</td>
</tr>
{* <tr class="data-request-categories-entry-dataFields-row">*}
{* <td class="data-request-categories-entry-dataFields-row-title" colspan="2">*}
{* {$userDataField->title}*}
{* </td>*}
{* </tr>*}
<tr class="data-request-categories-entry-dataFields-row-table">
<td colspan="2">
<td colspan="2" class="no-padding">
<div class="data-request-categories-entry-dataFields-row-table__title">
{$userDataField->title}
</div>
{\QUI\GDPR\DataRequest\Utils::parseUserDataHtmlFromUserDataEntries($userDataField->data, $level)}
</td>
</tr>
......
<style>
body {
padding: 5mm 15mm 5mm 10mm;
}
h1 {
font-size: 22px;
font-size: 13pt;
}
h2 {
font-size: 18px;
font-size: 12pt;
}
h3 {
font-size: 9pt;
}
table {
border-collapse: collapse;
width: 100%;
page-break-inside: auto;
}
.data-request-categories-entry-dataFields-row-table__title {
font-weight: bold;
background: #eee;
font-size: 9pt;
padding-top: 1.5mm;
padding-bottom: 1.5mm;
padding-right: 3mm;
border-bottom: 1px solid #ccc;
}
table[data-level="1"] .data-request-categories-entry-dataFields-row-table__title {
padding-left: 3mm;
}
table[data-level="2"] .data-request-categories-entry-dataFields-row-table__title,
table[data-level="2"] > tbody > tr > td:first-child {
padding-left: 5mm;
}
table[data-level="3"] .data-request-categories-entry-dataFields-row-table__title,
table[data-level="3"] > tbody > tr > td:first-child {
padding-left: 10mm;
}
table[data-level="4"] .data-request-categories-entry-dataFields-row-table__title,
table[data-level="4"] > tbody > tr > td:first-child {
padding-left: 15mm;
}
table[data-level="5"] > tbody > tr > td:first-child {
padding-left: 20mm;
}
td {
vertical-align: top;
padding: 1.5mm 3mm;
}
td:first-child {
width: 10cm;
webkit-box-sizing: border-box;
box-sizing: border-box;
}
td {
border-top: 1px solid #ccc;
}
tr:first-child > td {
border-top: none;
}
.text-body {
font-size: 9pt;
line-height: 1.5;
}
.no-padding {
padding: 0 !important;
}
.data-request-categories-entry > caption {
background-color: #dedede;
padding: 15px;
.page-break {
page-break-after: always !important;
}
.avoid-page-break {
page-break-inside: avoid !important;
}
.data-request-categories-entry > caption,
.data-request-categories > h2 {
font-size: 11pt;
font-weight: bold;
text-align: left;
padding-block: 3mm;
}
.data-request-categories h3 {
background-color: #ededed;
padding: 1.5mm 3mm;
}
.data-request-categories-entry-header {
......@@ -21,7 +104,6 @@
}
.data-request-categories-entry-header > td {
background-color: #0ca678;
padding: 10px;
}
......@@ -30,7 +112,6 @@
}
.data-request-categories-entry {
page-break-inside: avoid !important;
width: 100%;
}
......@@ -44,130 +125,112 @@
padding: 0;
margin: 0;
}
.data-request-categories-entry-dataFields-row:nth-child(even) {
background-color: #DEDEDE;
}
.data-request-categories-entry-dataFields-table {
width: 100%;
}
.data-request-categories-entry-dataFields-row-title {
font-weight: bold;
vertical-align: top;
}
</style>
<h1>{locale group="quiqqer/gdpr" var="DataRequest.tpl.caption"}</h1>
<div class="data-request-info">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.info"
userName=$User->getName()
regulatoryAuthorityAddressLines=$regulatoryAuthorityAddressLines
date=$date
}
</div>
<div class="data-request-categories-list">
<p>
{locale group="quiqqer/gdpr" var="DataRequest.tpl.categories_info"}
</p>
<ul>
<!-- Workaround to achieve full a4 format as PDF file -->
<div style="position: absolute; left: 0; top: 0; width: 210mm; background: #fff; height: 5mm; z-index: -1;"></div>
<div style="position: absolute; left: 0; top: 0; width: 5mm; background: #fff; height: 297mm; z-index: -1;"></div>
<div style="width: 210mm; padding: 5mm 15mm 5mm 10mm; webkit-box-sizing: border-box; box-sizing: border-box;">
<h1 style="margin-bottom: 5mm;">{locale group="quiqqer/gdpr" var="DataRequest.tpl.caption"}</h1>
<div class="data-request-info text-body">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.info"
userName=$User->getName()
regulatoryAuthorityAddressLines=$regulatoryAuthorityAddressLines
date=$date
}
</div>
<div class="data-request-categories-list text-body page-break">
<p>
{locale group="quiqqer/gdpr" var="DataRequest.tpl.categories_info"}
</p>
<ol>
{foreach $providers as $entry}
<li>{$entry['title']}</li>
{/foreach}
</ol>
</div>
<div class="data-request-categories text-body" style="width: 100%;">
{assign var=counter value=1}
{foreach $providers as $entry}
<li>{$entry['title']}</li>
{/foreach}
</ul>
</div>
<div class="data-request-categories">
{foreach $providers as $entry}
<table class="data-request-categories-entry">
<caption>
{$entry['title']}
</caption>
<tbody>
<!-- User data fields -->
<tr class="data-request-categories-entry-header">
<td colspan="2">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.userData"}
</td>
</tr>
<tr class="data-request-categories-entry-dataFields">
<td colspan="2">
{\QUI\GDPR\DataRequest\Utils::parseUserDataHtmlFromUserDataEntries($entry['userDataFields'])}
</td>
</tr>
<!-- Purpose -->
<tr class="data-request-categories-entry-header-spacer"></tr>
<tr class="data-request-categories-entry-header">
<td colspan="2">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.purpose"}
</td>
</tr>
<tr>
<td colspan="2">
{$entry['purpose']}
</td>
</tr>
<!-- Recipients -->
<tr class="data-request-categories-entry-header-spacer"></tr>
<tr class="data-request-categories-entry-header">
<td colspan="2">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.recipients"}
</td>
</tr>
<tr>
<td colspan="2">
{$entry['recipients']}
</td>
</tr>
<!-- Storage duration -->
<tr class="data-request-categories-entry-header-spacer"></tr>
<tr class="data-request-categories-entry-header">
<td colspan="2">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.storageDuration"}
</td>
</tr>
<tr>
<td colspan="2">
{$entry['storageDuration']}
</td>
</tr>
<!-- Origin -->
{if !empty($entry['origin'])}
<tr class="data-request-categories-entry-header-spacer"></tr>
<tr class="data-request-categories-entry-header">
<td colspan="2">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.origin"}
</td>
</tr>
<tr>
<td colspan="2">
{$entry['origin']}
</td>
</tr>
{/if}
{if !empty($entry['customText'])}
<!-- Custom text -->
<tr class="data-request-categories-entry-header-spacer"></tr>
<tr class="data-request-categories-entry-header">
<td colspan="2">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.customText"}
</td>
</tr>
<table class="data-request-categories-entry">
<tr>
<td colspan="2">
{$entry['customText']}
<td style="padding: 0 !important; border: none;">
<!-- User data fields -->
<div class="avoid-page-break">
<h2>
{$counter}. {$entry['title']}
</h2>
<h3 class="data-request-categories-entry-header">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.userData"}
</h3>
<div class="data-request-categories-entry-dataFields">
{\QUI\GDPR\DataRequest\Utils::parseUserDataHtmlFromUserDataEntries($entry['userDataFields'])}
</div>
</div>
<!-- Purpose -->
<div class="avoid-page-break">
<h3 class="data-request-categories-entry-header">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.purpose"}
</h3>
<div>
{$entry['purpose']}
</div>
</div>
<!-- Recipients -->
<div class="avoid-page-break">
<h3 class="data-request-categories-entry-header">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.recipients"}
</h3>
<div>
{$entry['recipients']}
</div>
</div>
<!-- Storage duration -->
<div class="avoid-page-break">
<h3 class="data-request-categories-entry-header">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.storageDuration"}
</h3>
<div>
{$entry['storageDuration']}
</div>
</div>
<!-- Origin -->
{if !empty($entry['origin'])}
<div class="avoid-page-break">
<h3 class="data-request-categories-entry-header">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.origin"}
</h3>
<div>
{$entry['origin']}
</div>
</div>
{/if}
{if !empty($entry['customText'])}
<!-- Custom text -->
<div class="avoid-page-break">
<h3 class="data-request-categories-entry-header">
{locale group="quiqqer/gdpr" var="DataRequest.tpl.header.customText"}
</h3>
<div>
{$entry['customText']}
</div>
</div>
{/if}
</td>
</tr>
{/if}
</tbody>
</table>
{/foreach}
</table>
{assign var=counter value=$counter+1}
{/foreach}
</div>
</div>
\ No newline at end of file
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren