Skip to content

Commit 0e884de

Browse files
authored
Merge pull request #1845 from Admidio/remove-deprecated-classes
Remove deprecated classes
2 parents 07a3dea + 2e95b3e commit 0e884de

33 files changed

+582
-250
lines changed

languages/en.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1074,6 +1074,7 @@
10741074
<string name="SYS_NO_ENTRY">Requested entry does not exist in the database.</string>
10751075
<string name="SYS_NO_LEADER">No leader</string>
10761076
<string name="SYS_NO_LOGIN_DATA">Don't have a login name and password?</string>
1077+
<string name="SYS_NO_MATCHING_ENTRIES">No matching entries found.</string>
10771078
<string name="SYS_NO_MORE_COLUMN">For technical reasons, no more column can be added.</string>
10781079
<string name="SYS_NO_NEW_REGISTRATIONS">No new registrations available.</string>
10791080
<string name="SYS_NO_PERMISSIONS_ASSIGNED">No permissions have been assigned.</string>

modules/category-report/category_report.php

Lines changed: 65 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use Admidio\Infrastructure\Exception;
2121
use Admidio\Infrastructure\Utils\FileSystemUtils;
2222
use Admidio\Infrastructure\Utils\SecurityUtils;
23+
use Admidio\UI\Component\DataTables;
2324
use Admidio\UI\Presenter\FormPresenter;
2425
use Admidio\UI\Presenter\PagePresenter;
2526
use Admidio\Users\Entity\User;
@@ -79,7 +80,7 @@
7980
$getMode = 'pdf';
8081
break;
8182
case 'html':
82-
$classTable = 'table table-condensed';
83+
$classTable = 'table table-condensed table-hover';
8384
break;
8485
case 'print':
8586
$classTable = 'table table-condensed table-striped';
@@ -91,6 +92,9 @@
9192
// CSV file as string
9293
$csvStr = '';
9394

95+
// data array
96+
$data = array('headers' => array(), 'rows' => array(), 'column_align' => array());
97+
9498
// generate the display list
9599
$report->setConfiguration($getCrtId);
96100
$report->generate_listData();
@@ -116,17 +120,16 @@
116120
}
117121

118122
if ($getMode !== 'csv') {
119-
$datatable = false;
120-
$hoverRows = false;
121-
123+
$page = PagePresenter::withHtmlIDAndHeadline('adm_category_report');
124+
$smarty = $page->createSmartyObject();
125+
$smarty->assign('l10n', $gL10n);
122126
if ($getMode === 'print') {
123-
$page = PagePresenter::withHtmlIDAndHeadline('plg-category-report-main-print');
124127
$page->setContentFullWidth();
125128
$page->setPrintMode();
126129
$page->setTitle($title);
127130
$page->setHeadline($headline);
128131
$page->addHtml('<h5 class="admidio-content-subheader">' . $subHeadline . '</h5>');
129-
$table = new HtmlTable('adm_lists_table', $page, $hoverRows, $datatable, $classTable);
132+
$smarty->assign('classTable', $classTable);
130133
} elseif ($getMode === 'pdf') {
131134
if (ini_get('max_execution_time') < 600) {
132135
ini_set('max_execution_time', 600); //600 seconds = 10 minutes
@@ -161,26 +164,11 @@
161164
// add a page
162165
$pdf->AddPage();
163166

164-
// Create table object for display
165-
$table = new HtmlTable('adm_lists_table', null, $hoverRows, $datatable, $classTable);
166-
$table->addAttribute('border', '1');
167-
168-
$table->addTableHeader();
169-
$table->addRow();
170-
$table->addAttribute('align', 'center');
171-
$table->addColumn($subHeadline, array('colspan' => $columnCount + 1));
172-
$table->addRow();
167+
// set subHeadline and class for table
168+
$smarty->assign('subHeadline', $subHeadline);
169+
$smarty->assign('classTable', $classTable);
173170
} elseif ($getMode === 'html') {
174-
if ($getExportAndFilter) {
175-
$datatable = false;
176-
} else {
177-
$datatable = true;
178-
}
179-
180-
$hoverRows = true;
181-
182171
// create html page object
183-
$page = PagePresenter::withHtmlIDAndHeadline('plg-category-report-main-html');
184172
$page->setContentFullWidth();
185173
$page->setTitle($title);
186174
$page->setHeadline($headline);
@@ -303,14 +291,15 @@
303291

304292
$page->addHtml('<h5 class="admidio-content-subheader">' . $subHeadline . '</h5>');
305293

306-
$table = new HtmlTable('adm_lists_table', $page, $hoverRows, $datatable, $classTable);
307-
$table->setDatatablesRowsPerPage($gSettingsManager->getInt('groups_roles_members_per_page'));
308-
} else {
309-
$table = new HtmlTable('adm_lists_table', null, $hoverRows, $datatable, $classTable);
294+
$smarty->assign('classTable', $classTable);
295+
if (!$getExportAndFilter) {
296+
$categoryReportTable = new DataTables($page, 'adm_lists_table');
297+
$categoryReportTable->setRowsPerPage($gSettingsManager->getInt('groups_roles_members_per_page'));
298+
}
310299
}
311300
}
312301

313-
$columnAlign = array('center');
302+
$columnAlign = array('right');
314303
$columnValues = array($gL10n->get('SYS_ABR_NO'));
315304
$columnNumber = 1;
316305

@@ -321,8 +310,11 @@
321310
if ($gProfileFields->getPropertyById($usf_id, 'usf_type') == 'NUMBER'
322311
|| $gProfileFields->getPropertyById($usf_id, 'usf_type') == 'DECIMAL_NUMBER') {
323312
$columnAlign[] = 'right';
324-
} else {
313+
} elseif ($gProfileFields->getPropertyById($usf_id, 'usf_type') == 'CHECKBOX' || $usf_id === 0) {
314+
// bei allen Feldern, die kein Profilfeld sind (usf_id = 0) und Checkboxen wird zentriert
325315
$columnAlign[] = 'center';
316+
} else {
317+
$columnAlign[] = 'left';
326318
}
327319

328320
if ($getMode == 'csv') {
@@ -331,15 +323,10 @@
331323
$csvStr .= $valueQuotes . $gL10n->get('SYS_ABR_NO') . $valueQuotes;
332324
}
333325
$csvStr .= $separator . $valueQuotes . $columnHeader['data'] . $valueQuotes;
334-
} elseif ($getMode == 'pdf') {
335-
if ($columnNumber === 1) {
336-
$table->addColumn($gL10n->get('SYS_ABR_NO'), array('style' => 'text-align: center;font-size:14;background-color:#C7C7C7;'), 'th');
337-
}
338-
$table->addColumn($columnHeader['data'], array('style' => 'text-align: center;font-size:14;background-color:#C7C7C7;'), 'th');
339326
} elseif ($getMode === "xlsx") {
340327
// convert html characters to plain text
341328
$columnValues[] = html_entity_decode($columnHeader['data'], ENT_QUOTES | ENT_HTML5, 'UTF-8');
342-
} elseif ($getMode == 'html' || $getMode == 'print') {
329+
} elseif ($getMode == 'html' || $getMode == 'print' || $getMode == 'pdf') {
343330
$columnValues[] = $columnHeader['data'];
344331
}
345332
$columnNumber++;
@@ -351,12 +338,9 @@
351338
$spreadsheet = new Spreadsheet();
352339
$activeSheet = $spreadsheet->getActiveSheet();
353340
$activeSheet->fromArray(array_values($columnValues));
354-
} elseif ($getMode === 'html' || $getMode === 'print') {
355-
$table->setColumnAlignByArray($columnAlign);
356-
$table->addRowHeadingByArray($columnValues);
357341
} else {
358-
$table->addTableBody();
359-
$table->setColumnAlignByArray($columnAlign);
342+
$data['headers'] = $columnValues;
343+
$data['column_align'] = $columnAlign;
360344
}
361345

362346
$listRowNumber = 1;
@@ -472,7 +456,7 @@
472456
$activeSheet->setCellValue($colLetter . $currentRow, $cell);
473457
}
474458
} else {
475-
$table->addRowByArray($columnValues, 'row-' . $listRowNumber, array('nobr' => 'true'));
459+
$data['rows'][] = array('id' => 'row-' . $listRowNumber, 'data' => $columnValues);
476460
}
477461
$listRowNumber++;
478462
}
@@ -493,7 +477,7 @@
493477
// download CSV file
494478
header('Content-Type: text/comma-separated-values; charset=' . $charset);
495479
echo $csvStr;
496-
}elseif ($getMode === 'xlsx') {
480+
} elseif ($getMode === 'xlsx') {
497481
$filename = FileSystemUtils::getSanitizedPathEntry($filename) . '.' . $getMode;
498482

499483
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=' . $charset);
@@ -503,10 +487,22 @@
503487
formatSpreadsheet($spreadsheet, $columnCount + 1, true);
504488
$writer = new Xlsx($spreadsheet);
505489
$writer->save('php://output');
506-
} // send the new PDF to the User
507-
elseif ($getMode === 'pdf') {
490+
} elseif ($getMode === 'pdf') {
491+
// send the new PDF to the User
492+
// Using Smarty templating engine for exporting table in PDF
493+
$smarty->assign('attributes', array('border' => '1', 'cellpadding' => '1'));
494+
$smarty->assign('columnAlign', $data['column_align']);
495+
$smarty->assign('headers', $data['headers']);
496+
$smarty->assign('headersStyle', 'font-size:14;background-color:#C7C7C7;');
497+
$smarty->assign('rows', $data['rows']);
498+
$smarty->assign('rowsStyle', 'font-size:10;');
499+
500+
// Fetch the HTML table from our Smarty template
501+
$smarty->assign('exportMode', true);
502+
$htmlTable = $smarty->fetch('modules/category-report.list.tpl');
503+
508504
// output the HTML content
509-
$pdf->writeHTML($table->getHtmlTable(), true, false, true);
505+
$pdf->writeHTML($htmlTable, true, false, true);
510506

511507
$file = ADMIDIO_PATH . FOLDER_TEMP_DATA . '/' . $filename;
512508

@@ -527,13 +523,33 @@
527523
}
528524
} elseif ($getMode == 'html' && $getExportAndFilter) {
529525
$page->addHtml('<div style="width:100%; height: 500px; overflow:auto; border:20px;">');
530-
$page->addHtml($table->show(false));
531-
$page->addHtml('</div><br/>');
526+
$smarty->assign('columnAlign', $data['column_align']);
527+
$smarty->assign('headers', $data['headers']);
528+
$smarty->assign('rows', $data['rows']);
532529

530+
// Fetch the HTML table from our Smarty template
531+
$htmlTable = $smarty->fetch('modules/category-report.list.tpl');
532+
$page->addHtml($htmlTable);
533+
$page->addHtml('</div><br/>');
533534
$page->show();
534535
} elseif (($getMode == 'html' && !$getExportAndFilter) || $getMode == 'print') {
535-
$page->addHtml($table->show(false));
536+
if (isset($categoryReportTable)) {
537+
// we are in datatable mode
538+
$categoryReportTable->createJavascript(count($data['rows']), count($data['headers']));
539+
$categoryReportTable->setColumnAlignByArray($data['column_align']);
540+
$page->addHtml('<div class="table-responsive">');
541+
}
536542

543+
$smarty->assign('columnAlign', $data['column_align']);
544+
$smarty->assign('headers', $data['headers']);
545+
$smarty->assign('rows', $data['rows']);
546+
547+
// Fetch the HTML table from our Smarty template
548+
$htmlTable = $smarty->fetch('modules/category-report.list.tpl');
549+
$page->addHtml($htmlTable);
550+
if (isset($categoryReportTable)) {
551+
$page->addHtml('</div>');
552+
}
537553
$page->show();
538554
}
539555
} catch (Exception $e) {

modules/changelog/changelog.php

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
use Admidio\Infrastructure\Exception;
2424
use Admidio\Infrastructure\Utils\SecurityUtils;
2525
use Admidio\Infrastructure\Language;
26+
use Admidio\UI\Component\DataTables;
2627
use Admidio\UI\Presenter\FormPresenter;
2728
use Admidio\UI\Presenter\PagePresenter;
2829
use Admidio\Users\Entity\User;
@@ -215,7 +216,7 @@
215216
$form->addSubmitButton('adm_button_send', $gL10n->get('SYS_OK'));
216217
$form->addToHtmlPage();
217218

218-
$table = new HtmlTable('history_table', $page, true, true, 'table table-condensed');
219+
$table = new DataTables($page, 'adm_history_table');
219220

220221

221222
/* For now, simply show all column of the changelog table. As time permits, we can improve this by hiding unneccessary columns and by better naming columns depending on the table.
@@ -243,7 +244,7 @@
243244
$columnHeading[] = $gL10n->get('SYS_EDITED_BY');
244245
$columnHeading[] = $gL10n->get('SYS_CHANGED_AT');
245246

246-
$table->addRowHeadingByArray($columnHeading);
247+
$page->assignSmartyVariable('headers', $columnHeading);
247248

248249
$filterFields = array(
249250
'table' => $getTable,
@@ -256,18 +257,18 @@
256257

257258
$table->setServerSideProcessing(SecurityUtils::encodeUrl(ADMIDIO_URL . FOLDER_MODULES . '/changelog/changelog_data.php', $filterFields));
258259
// $table->setColumnAlignByArray($columnAlignment);
259-
$table->disableDatatablesColumnsSort(array(1, count($columnHeading)));// disable sort in last column
260-
$table->setDatatablesColumnsNotHideResponsive(array(count($columnHeading)));
260+
$table->disableColumnsSort(array(1, count($columnHeading)));// disable sort in last column
261+
$table->setColumnsNotHideResponsive(array(count($columnHeading)));
261262
// $table->setDatatablesRowsPerPage($gSettingsManager->getInt('contacts_per_page'));
262263
$table->setMessageIfNoRowsFound('SYS_NO_ENTRIES');
263-
264+
$table->createJavascript(0, count($columnHeading));
264265

265266

266267

267268

268269
$page->addHtml('<div class="alert alert-danger form-alert" id="DT_notice" style="display: none;"></div>');
269-
$page->addHtml($table->show());
270+
$page->addHtmlByTemplate('modules/changelog.list.tpl');
270271
$page->show();
271-
} catch (Exception $e) {
272+
} catch (Exception | \Smarty\Exception $e) {
272273
$gMessage->show($e->getMessage());
273274
}

modules/contacts/contacts.php

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Admidio\Infrastructure\Exception;
1919
use Admidio\Infrastructure\Utils\SecurityUtils;
2020
use Admidio\Roles\Entity\ListConfiguration;
21+
use Admidio\UI\Component\DataTables;
2122
use Admidio\UI\Presenter\FormPresenter;
2223
use Admidio\UI\Presenter\PagePresenter;
2324
use Admidio\Changelog\Service\ChangelogService;
@@ -123,7 +124,7 @@
123124
);
124125
}
125126
$orgName = $gCurrentOrganization->getValue('org_longname');// Create table object
126-
$contactsTable = new HtmlTable('adm_contacts_table', $page, true, true, 'table table-condensed');// create array with all column heading values
127+
$contactsTable = new DataTables($page, 'adm_contacts_table');
127128
$columnHeading = $contactsListConfig->getColumnNames();
128129

129130
if (($getMembersShowFilter < 3) && $gCurrentUser->isAdministratorUsers()) {
@@ -144,23 +145,22 @@
144145
$columnHeading[] = '&nbsp;';
145146
$columnAlignment = $contactsListConfig->getColumnAlignments();
146147
if (($getMembersShowFilter < 3) && $gCurrentUser->isAdministratorUsers()) {
147-
array_unshift($columnAlignment, 'center', 'left', 'left');
148+
array_unshift($columnAlignment, 'center', 'start', 'start');
148149
} else {
149-
array_unshift($columnAlignment, 'left', 'left');
150+
array_unshift($columnAlignment, 'start', 'start');
150151
}
151152

152-
$columnAlignment[] = 'right';
153+
$columnAlignment[] = 'end';
153154
$contactsTable->setServerSideProcessing(SecurityUtils::encodeUrl(ADMIDIO_URL . FOLDER_MODULES . '/contacts/contacts_data.php', array('mem_show_filter' => $getMembersShowFilter)));
154155
$contactsTable->setColumnAlignByArray($columnAlignment);
155156
if (($getMembersShowFilter < 3) && $gCurrentUser->isAdministratorUsers()) {
156-
$contactsTable->disableDatatablesColumnsSort(array(1, 2, count($columnHeading)));// disable sort in last column
157+
$contactsTable->disableColumnsSort(array(1, 2, count($columnHeading)));// disable sort in last column
157158
} else {
158-
$contactsTable->disableDatatablesColumnsSort(array(1, count($columnHeading)));// disable sort in last column
159+
$contactsTable->disableColumnsSort(array(1, count($columnHeading)));// disable sort in last column
159160
}
160-
$contactsTable->setDatatablesColumnsNotHideResponsive(array(count($columnHeading)));
161-
$contactsTable->addRowHeadingByArray($columnHeading);
161+
$contactsTable->setColumnsNotHideResponsive(array(count($columnHeading)));
162162
$contactsTable->setMessageIfNoRowsFound('SYS_NO_ENTRIES');
163-
$contactsTable->setDatatablesRowsPerPage($gSettingsManager->getInt('contacts_per_page'));
163+
$contactsTable->setRowsPerPage($gSettingsManager->getInt('contacts_per_page'));
164164

165165
if (($getMembersShowFilter < 3) && $gCurrentUser->isAdministratorUsers()) {
166166
// add the checkbox for selecting items and action buttons
@@ -336,27 +336,13 @@ class: "admidio-icon-link openPopup",
336336
});',
337337
true
338338
);
339-
340-
$page->addHtml('
341-
<div id="adm_contacts_table_select_actions" class="mb-3">
342-
<ul class="nav admidio-menu-function-node">
343-
<li class="nav-item">
344-
<button id="edit-selected" class="btn nav-link btn-primary" disabled="disabled">
345-
<i class="bi bi-pencil-square me-1"></i>' . $gL10n->get('SYS_EDIT_SELECTION') . '
346-
</button>
347-
</li>
348-
<li class="nav-item">
349-
<button id="delete-selected" class="btn nav-link btn-primary" disabled="disabled">
350-
<i class="bi bi-trash me-1"></i>' . $gL10n->get('SYS_DELETE_SELECTION') . '
351-
</button>
352-
</li>
353-
</ul>
354-
</div>
355-
');
339+
$page->assignSmartyVariable('showSelectActions', true);
356340
}
357341

358-
$page->addHtml($contactsTable->show());// show html of complete page
359-
$page->show();
360-
} catch (Exception $e) {
342+
$contactsTable->createJavascript(0, count($columnHeading));
343+
$page->assignSmartyVariable('headers', $columnHeading);
344+
$page->addHtmlByTemplate('modules/contacts.list.tpl');
345+
$page->show(); // show html of complete page
346+
} catch (Exception | \Smarty\Exception $e) {
361347
$gMessage->show($e->getMessage());
362348
}

modules/contacts/contacts_new.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
*/
1111
use Admidio\Infrastructure\Exception;
1212
use Admidio\UI\Presenter\FormPresenter;
13+
use Admidio\UI\Presenter\PagePresenter;
1314

1415
try {
1516
require_once(__DIR__ . '/../../system/common.php');
@@ -45,7 +46,7 @@
4546
array('icon' => 'bi-plus-circle-fill')
4647
);
4748

48-
$smarty = HtmlPage::createSmartyObject();
49+
$smarty = PagePresenter::createSmartyObject();
4950
$form->addToSmarty($smarty);
5051
$gCurrentSession->addFormObject($form);
5152
echo $smarty->fetch('modules/contacts.new.tpl');

0 commit comments

Comments
 (0)