Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cadabfe

Browse files
committed
Implement a template for the importer results pane
1 parent 08cac8e commit cadabfe

File tree

3 files changed

+93
-347
lines changed

3 files changed

+93
-347
lines changed

Data Admin/import_history_view.php

Lines changed: 21 additions & 172 deletions
Original file line numberDiff line numberDiff line change
@@ -18,187 +18,36 @@
1818
*/
1919

2020
use Gibbon\Module\DataAdmin\ImportType;
21+
use Gibbon\Domain\System\LogGateway;
2122

2223
// Module Bootstrap
2324
require __DIR__ . '/module.php';
2425

25-
if (isActionAccessible($guid, $connection2, "/modules/Data Admin/import_history_view.php")==false) {
26-
//Acess denied
27-
echo "<div class='error'>" ;
28-
echo __("You do not have access to this action.") ;
29-
echo "</div>" ;
26+
if (isActionAccessible($guid, $connection2, "/modules/Data Admin/import_history_view.php") == false) {
27+
// Access denied
28+
$page->addError('You do not have access to this action.');
3029
} else {
31-
$gibbonLogID = (isset($_GET['gibbonLogID']))? $_GET['gibbonLogID'] : -1;
30+
$gibbonLogID = $_GET['gibbonLogID'] ?? 0;
3231

33-
$data = array('gibbonLogID' => $gibbonLogID);
34-
$sql = "SELECT gibbonLog.*, gibbonPerson.username, gibbonPerson.surname, gibbonPerson.preferredName
35-
FROM gibbonLog
36-
JOIN gibbonPerson ON (gibbonPerson.gibbonPersonID=gibbonLog.gibbonPersonID)
37-
WHERE gibbonLog.gibbonLogID=:gibbonLogID";
38-
$result=$pdo->executeQuery($data, $sql);
32+
$logGateway = $container->get(LogGateway::class);
33+
$importLog = $logGateway->getLogByID($gibbonLogID);
3934

40-
if ($result->rowCount() < 1) {
41-
echo "<div class='error'>" ;
42-
echo __("There are no records to display.") ;
43-
echo "</div>" ;
44-
} else {
45-
$importLog = $result->fetch();
46-
$importData = isset($importLog['serialisedArray'])? unserialize($importLog['serialisedArray']) : [];
47-
$importResults = $importData['results'] ?? [];
48-
49-
if (empty($importResults) || !isset($importData['type'])) {
50-
echo "<div class='error'>" ;
51-
echo __("There are no records to display.") ;
52-
echo "</div>" ;
53-
return;
54-
}
55-
56-
$importType = ImportType::loadImportType($importData['type'], $pdo); ?>
57-
<h1>
58-
<?php echo __('Import History', 'Data Admin'); ?>
59-
</h1>
60-
61-
<?php if (!empty($importResults['ignoreErrors'])) : ?>
62-
<div class="warning">
63-
<?php echo __("Imported with errors ignored."); ?>
64-
</div>
65-
<?php endif; ?>
66-
67-
<table class='blank fullWidth' cellspacing='0'>
68-
<tr>
69-
<td width="50%">
70-
<?php echo __("Import Type", 'Data Admin').": "; ?><br/>
71-
<?php echo $importType->getDetail('name'); ?>
72-
</td>
73-
<td width="50%">
74-
<?php echo __("Date").": "; ?><br/>
75-
<?php printf("<span title='%s'>%s</span>", $importLog['timestamp'], date('F j, Y, g:i a', strtotime($importLog['timestamp']))); ?>
76-
</td>
77-
</tr>
78-
<tr>
79-
<td width="50%">
80-
<?php echo __("Details").": "; ?><br/>
81-
<?php echo ($importData['success'])? __("Success") : __("Failed"); ?>
82-
</td>
83-
<td width="50%">
84-
<?php echo __("User").": "; ?><br/>
85-
<?php printf("<span title='%s'>%s %s</span>", $importLog['username'], $importLog['preferredName'], $importLog['surname']); ?>
86-
</td>
87-
</tr>
88-
</table>
89-
<br/>
90-
91-
<table class='smallIntBorder fullWidth' cellspacing='0'>
92-
<tr <?php echo "class='". (($importResults['importSuccess'])? 'current' : 'error') ."'"; ?>>
93-
<td class="right" width="50%">
94-
<?php echo __("Reading Spreadsheet", 'Data Admin').": "; ?>
95-
</td>
96-
<td>
97-
<?php echo ($importResults['importSuccess'])? __("Success", 'Data Admin') : __("Failed", 'Data Admin'); ?>
98-
</td>
99-
</tr>
100-
<tr>
101-
<td class="right">
102-
<?php echo __("Execution time", 'Data Admin').": "; ?>
103-
</td>
104-
<td>
105-
<?php echo $importResults['executionTime']; ?>
106-
</td>
107-
</tr>
108-
<tr>
109-
<td class="right">
110-
<?php echo __("Memory usage", 'Data Admin').": "; ?>
111-
</td>
112-
<td>
113-
<?php echo $importResults['memoryUsage']; ?>
114-
</td>
115-
</tr>
116-
</table><br/>
117-
<table class='smallIntBorder fullWidth' cellspacing='0'>
118-
<tr <?php echo "class='". (($importResults['buildSuccess'])? 'current' : 'error') ."'"; ?>>
119-
<td class="right" width="50%">
120-
<?php echo __("Validating data", 'Data Admin').": "; ?>
121-
</td>
122-
<td>
123-
<?php echo ($importResults['buildSuccess'])? __("Success", 'Data Admin') : __("Failed", 'Data Admin'); ?>
124-
</td>
125-
</tr>
126-
<tr>
127-
<td class="right">
128-
<?php echo __("Rows processed", 'Data Admin').": "; ?>
129-
</td>
130-
<td>
131-
<?php echo $importResults['rows']; ?>
132-
</td>
133-
</tr>
134-
<tr>
135-
<td class="right">
136-
<?php echo __("Rows with errors", 'Data Admin').": "; ?>
137-
</td>
138-
<td>
139-
<?php echo $importResults['rowerrors']; ?>
140-
</td>
141-
</tr>
142-
<tr>
143-
<td class="right">
144-
<?php echo __("Total errors", 'Data Admin').": "; ?>
145-
</td>
146-
<td>
147-
<?php echo $importResults['errors']; ?>
148-
</td>
149-
</tr>
150-
<?php if ($importResults['warnings'] > 0) : ?>
151-
<tr>
152-
<td class="right">
153-
<?php echo __("Total warnings", 'Data Admin').": "; ?>
154-
</td>
155-
<td>
156-
<?php echo $importResults['warnings']; ?>
157-
</td>
158-
</tr>
159-
<?php endif; ?>
160-
</table><br/>
161-
162-
<table class='smallIntBorder fullWidth' cellspacing='0'>
163-
<tr <?php echo "class='". (($importResults['databaseSuccess'])? 'current' : 'error') ."'"; ?>>
164-
<td class="right" width="50%">
165-
<?php echo __("Querying database", 'Data Admin').": "; ?>
166-
</td>
167-
<td>
168-
<?php echo ($importResults['databaseSuccess'])? __("Success", 'Data Admin') : __("Failed", 'Data Admin'); ?>
169-
</td>
170-
</tr>
171-
<tr>
172-
<td class="right">
173-
<?php echo __("Database Inserts", 'Data Admin').": "; ?>
174-
</td>
175-
<td>
176-
<?php
177-
echo $importResults['inserts'];
178-
if ($importResults['inserts_skipped'] > 0) {
179-
echo " (". $importResults['inserts_skipped'] ." ". __("skipped", 'Data Admin') .")";
180-
} ?>
181-
</td>
182-
</tr>
35+
if (empty($importLog)) {
36+
$page->addError('There are no records to display.');
37+
return;
38+
}
18339

184-
<tr>
185-
<td class="right">
186-
<?php echo __("Database Updates", 'Data Admin').": "; ?>
187-
</td>
188-
<td>
189-
<?php
190-
echo $importResults['updates'];
191-
if ($importResults['updates_skipped'] > 0) {
192-
echo " (". $importResults['updates_skipped'] ." ". __("skipped", 'Data Admin') .")";
193-
} ?>
194-
</td>
195-
</tr>
40+
$importData = isset($importLog['serialisedArray'])? unserialize($importLog['serialisedArray']) : [];
41+
$importData['log'] = $importLog;
42+
$importResults = $importData['results'] ?? [];
19643

197-
198-
</table><br/>
44+
if (empty($importData['results']) || !isset($importData['type'])) {
45+
$page->addError('There are no records to display.');
46+
return;
47+
}
19948

49+
$importType = ImportType::loadImportType($importData['type'], $pdo);
50+
$importData['name'] = $importType->getDetail('name');
20051

201-
<?php
202-
}
52+
echo $page->fetchFromTemplate('importer.twig.html', array_merge($importData, $importResults));
20353
}
204-
?>

Data Admin/import_manage.php

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,24 @@
6565
$table = DataTable::create('rollGroups');
6666
$table->setTitle(__($importGroupName));
6767

68-
$table->addColumn('category', __('Category'))->width('20%');
69-
$table->addColumn('name', __('Name'));
70-
$table->addColumn('lastRun', __('Last Run'))
71-
->width('25%')
68+
$table->addColumn('category', __('Category'))
69+
->width('20%')
70+
->format(function ($importType) {
71+
return __($importType['category']);
72+
});
73+
$table->addColumn('name', __('Name'))
7274
->format(function ($importType) {
75+
$nameParts = array_map('trim', explode('-', $importType['name']));
76+
return implode(' - ', array_map('__', $nameParts));
77+
});
78+
$table->addColumn('timestamp', __('Last Import'))
79+
->width('25%')
80+
->format(function ($importType) use ($guid) {
7381
if ($log = $importType['log']) {
74-
return '<span title="'.Format::dateTime($log['timestamp']).' - '.Format::nameList([$log]).'">'.Format::dateReadable($log['timestamp']).'</span>';
82+
$text = Format::dateReadable($log['timestamp']);
83+
$url = $_SESSION[$guid]['absoluteURL'].'/fullscreen.php?q=/modules/Data Admin/import_history_view.php&gibbonLogID='.$log['gibbonLogID'].'&width=600&height=550';
84+
$title = Format::dateTime($log['timestamp']).' - '.Format::nameList([$log]);
85+
return Format::link($url, $text, ['title' => $title, 'class' => 'thickbox']);
7586
}
7687
return '';
7788
});
@@ -84,7 +95,7 @@
8495
->setIcon('run')
8596
->setURL('/modules/Data Admin/import_run.php');
8697

87-
$actions->addAction('export', __('Export Structure'))
98+
$actions->addAction('export', __('Export Columns'))
8899
->isDirect()
89100
->addParam('q', $_GET['q'])
90101
->addParam('data', 0)

0 commit comments

Comments
 (0)