dbXapp 2.0
RAD, CMS, Module und Runtime-IDE fuer dbXapp
Loading...
Searching...
No Matches
dbxMissing.class.php
Go to the documentation of this file.
1<?php
2namespace dbx\dbxAdmin;
3
4class dbxMissing {
5
6 private function action_url($url) {
7 $sep = (strpos((string)$url, '?') === false) ? '?' : '&';
8 return $url . $sep . 'dbx_token=' . rawurlencode(dbx()->action_token('dbxAdmin.missing'));
9 }
10
11 private function check_action_token($work, $oReport) {
12 if (!$work) return true;
13 $token = dbx()->get_modul_var('dbx_token', '', 'varchar|max=128');
14 if (dbx()->check_action_token('dbxAdmin.missing', $token)) return true;
15 $oReport->_msg_err = 'Aktion abgelehnt: Sicherheits-Token fehlt oder ist ungueltig.';
16 dbx()->sys_msg('security', 'dbxAdmin', dbx()->user(), 'invalid admin missing action token', $_SERVER['REQUEST_URI'] ?? '');
17 return false;
18 }
19
20 private function delete_table_action(): string {
21 return '<a class="btn btn-sm btn-outline-danger dbxAjax dbxConfirm"'
22 . ' href="' . dbx()->esc($this->action_url('?dbx_modul=dbxAdmin&dbx_run1=missing&dbx_run2=list_missing&dbx_do=delete_tab')) . '"'
23 . ' title="Missing-Eintraege leeren"'
24 . ' data-confirm-title="<i class=\'bi bi-trash3\'></i> Missing-Eintraege leeren"'
25 . ' data-confirm="Alle Missing-Eintraege wirklich loeschen?"'
26 . ' data-confirm-hint="<small>Die Tabelle dbxMissing wird komplett geleert. Dieser Vorgang kann nicht rueckgaengig gemacht werden.</small>"'
27 . ' data-confirm-buttons="yesno"'
28 . ' role="button"><i class="bi bi-trash3"></i></a>';
29 }
30
31 private function report_missing() {
32 $content = '';
33 $dd = 'dbxMissing';
34
35 $db = dbx()->get_system_obj('dbxDB');
36 $oReport = dbx()->get_system_obj('dbxReport');
37 $oReport->init('report-missing');
38 $oReport->_dd = $dd;
39 $oReport->add_rep('bar_actions', $this->delete_table_action());
40
41 $work = dbx()->get_modul_var('dbx_do', '', 'parameter');
42 $rid = dbx()->get_modul_var('rid', 0, 'int');
43 $actionAllowed = $this->check_action_token($work, $oReport);
44
45 if ($actionAllowed && $work == 'row_delete' && $rid) {
46 $ok = $oReport->del_selected($rid);
47 $ok = $db->delete($dd, $rid);
48
49 if ( $ok) $oReport->_msg_success = 'Zeile geloescht';
50 if (!$ok) $oReport->_msg_err = 'Zeile konnte nicht geloescht werden';
51 }
52
53 if ($actionAllowed && $work == 'multi_delete') {
54 $result = $oReport->delete_multi_selected_records($dd);
55 $oReport->apply_multi_delete_result($result);
56 }
57
58 if ($actionAllowed && $work == 'delete_tab') {
59 $ok = $db->delete_tab($dd);
60 dbx()->debug("##delete tab dd=($dd) ok=($ok)");
61 if ( $ok) $oReport->_msg_success = 'Datenbank-Tabelle geleert';
62 if (!$ok) $oReport->_msg_err = 'Datenbank-Tabelle konnte nicht geleert werden';
63 }
64
65 $flds['id'] = 'ID';
66 $flds['create_date'] = 'Create';
67 $flds['update_date'] = 'Update';
68 $flds['count'] = 'Count';
69 $flds['missing'] = 'Missing';
70
71 $rformat['create_date'] = 'php-datetime-usr';
72 $rformat['update_date'] = 'php-datetime-usr';
73 $oReport->_rpt_format = $rformat;
74
75 $oReport->_action = '?dbx_modul=dbxAdmin&dbx_run1=missing&dbx_run2=list_missing';
76 $oReport->_action = $this->action_url($oReport->_action);
77 $oReport->_pages = true;
78 $oReport->_create_row_select = true;
79 $oReport->_create_row_edit = false;
80 $oReport->_create_row_delete = true;
81 $oReport->_create_sel_flds = true;
82 $oReport->_but_pagination = 5;
83
84 $oReport->enable_delete_tab($dd);
85
86 $oReport->add_action('rows_delete' , 'action_button_delete' , '&dbx_do=multi_delete');
87
88 $oReport->create_selection_fields('dbxAdmin|rpt-missing-selection');
89
90 if ($work != 'delete_tab' && $work != 'multi_delete' && $work != 'row_delete' && $oReport->submit()) {
91 if (!$oReport->errors()) {
92 $oReport->_msg_success = '';
93 } else {
94 $oReport->_msg_err = 'Pruefen sie bitte ihre Eingaben';
95 }
96 }
97
98 $rwhere = $oReport->get_fld_val('dbx_rwhere' , '' , 'sqlsearch|max=64');
99 $rrows = $oReport->get_fld_val('dbx_rrows' , 15 , 'int');
100 $rpos = $oReport->get_fld_val('dbx_rpos' , 0 , 'int');
101 $rsort = $oReport->get_fld_val('dbx_rsort' , 'update_date', 'parameter');
102 $rdesc = $oReport->get_fld_val('dbx_rdesc' , 'DESC' , 'parameter');
103 $select = $oReport->get_fld_val('dbx_rselect', 0 , 'int');
104 $rgroup = '';
105
106 if ($rwhere != '') {
107 $rwhere = array(
108 'search' => array(
109 'value' => $rwhere,
110 'like' => array('missing'),
111 'mode' => 'starts_with',
112 ),
113 );
114 }
115
116 if ($select) {
117 if (is_array($rwhere)) {
118 $rwhere = $db->normalize_where($dd, $rwhere);
119 }
120
121 $rwhere = $oReport->add_rwhere_select($rwhere);
122 }
123
124 $oReport->_rflds = $flds;
125 $oReport->_rrows = $rrows;
126 $oReport->_rpos = $rpos;
127 $oReport->_count_all = $db->count($dd);
128 $oReport->_rcount = $db->count($dd, $rwhere);
129 $oReport->_rdata = $db->select($dd, $rwhere, $flds, $rsort, $rdesc, $rgroup, $rrows, $rpos);
130
131 $content = $oReport->run();
132
133 return $content;
134 }
135
136 public function run() {
137 return $this->report_missing();
138 }
139
140}
141?>
DBX schema administration.
if(! $db->connect_db_server($server)) $result
$_SERVER['REQUEST_URI']