From e4049d27937d94acb0502ba98d907ad3c0552551 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 6 Aug 2018 09:30:17 +0200 Subject: [PATCH 1/4] Converting timezone in admin queues --- mod/admin.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mod/admin.php b/mod/admin.php index 09a04ae02..9ef4c31ae 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -746,11 +746,21 @@ function admin_page_federation(App $a) function admin_page_queue(App $a) { // get content from the queue table + // PLEASE REVIEW (not 100% sure about my code) + $statement = DBA::Select('`queue` AS `q`, `contact` AS `c`', + [ '`c`.`name`', '`c`.`nurl`', '`q`.`id`', '`q`.`network`', "CONVERT_TZ(`q`.`created`, 'UTC' " . Config::get('system', 'default_timezone') . ') as created', "CONVERT_TZ(`q`.`last`, 'UTC', " . Config::get('system', 'default_timezone') . "') as last" ], + '`c`.`id`' => '`q`.`cid`', + ['order'=> ['`q`.`cid`, `q`.`created`']] + ); + $r = DBA::toArray($statement); + + /* + // Leaving this one here for the code review as well as backup $r = q("SELECT `c`.`name`, `c`.`nurl`, `q`.`id`, `q`.`network`, `q`.`created`, `q`.`last` FROM `queue` AS `q`, `contact` AS `c` WHERE `c`.`id` = `q`.`cid` ORDER BY `q`.`cid`, `q`.`created`;"); - + */ $t = get_markup_template('admin/queue.tpl'); return replace_macros($t, [ '$title' => L10n::t('Administration'), @@ -781,7 +791,7 @@ function admin_page_queue(App $a) function admin_page_workerqueue(App $a) { // get jobs from the workerqueue table - $statement = DBA::select('workerqueue', ['id', 'parameter', 'created', 'priority'], ['done' => 0], ['order'=> ['priority']]); + $statement = DBA::select('workerqueue', ['id', 'parameter', "CONVERT_TZ(created', 'UTC', " . Config::get('system', 'default_timezone') . "') as created", 'priority'], ['done' => 0], ['order'=> ['priority']]); $r = DBA::toArray($statement); foreach ($r as $key => $rr) { From 480d573fc50fc69aea5df593fd24c797bc4ab23a Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 6 Aug 2018 12:30:43 +0200 Subject: [PATCH 2/4] converting timezones in php --- mod/admin.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/mod/admin.php b/mod/admin.php index 9ef4c31ae..9be75f6f9 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -746,21 +746,25 @@ function admin_page_federation(App $a) function admin_page_queue(App $a) { // get content from the queue table - // PLEASE REVIEW (not 100% sure about my code) + /* + //todo: convert q() to DBA::Select() $statement = DBA::Select('`queue` AS `q`, `contact` AS `c`', [ '`c`.`name`', '`c`.`nurl`', '`q`.`id`', '`q`.`network`', "CONVERT_TZ(`q`.`created`, 'UTC' " . Config::get('system', 'default_timezone') . ') as created', "CONVERT_TZ(`q`.`last`, 'UTC', " . Config::get('system', 'default_timezone') . "') as last" ], '`c`.`id`' => '`q`.`cid`', ['order'=> ['`q`.`cid`, `q`.`created`']] ); $r = DBA::toArray($statement); - - /* - // Leaving this one here for the code review as well as backup + */ + $r = q("SELECT `c`.`name`, `c`.`nurl`, `q`.`id`, `q`.`network`, `q`.`created`, `q`.`last` FROM `queue` AS `q`, `contact` AS `c` WHERE `c`.`id` = `q`.`cid` ORDER BY `q`.`cid`, `q`.`created`;"); - */ + + foreach ($r as $key => $rr) { + $r[$key]['created'] = DateTimeFormat::local($rr['created']); + $r[$key]['last'] = DateTimeFormat::local($rr['last']); + } $t = get_markup_template('admin/queue.tpl'); return replace_macros($t, [ '$title' => L10n::t('Administration'), @@ -791,12 +795,13 @@ function admin_page_queue(App $a) function admin_page_workerqueue(App $a) { // get jobs from the workerqueue table - $statement = DBA::select('workerqueue', ['id', 'parameter', "CONVERT_TZ(created', 'UTC', " . Config::get('system', 'default_timezone') . "') as created", 'priority'], ['done' => 0], ['order'=> ['priority']]); + $statement = DBA::select('workerqueue', ['id', 'parameter', 'created', 'priority'], ['done' => 0], ['order'=> ['priority']]); $r = DBA::toArray($statement); foreach ($r as $key => $rr) { // fix GH-5469. ref: src/Core/Worker.php:217 $r[$key]['parameter'] = Arrays::recursiveImplode(json_decode($rr['parameter'], true), ': '); + $r[$key]['created'] = DateTimeFormat::local($rr['created']); } $t = get_markup_template('admin/workerqueue.tpl'); From 5c254ee401ed5cc77d11648d1e2c6e9223188e99 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 7 Aug 2018 10:18:59 +0200 Subject: [PATCH 3/4] Adjusted implementation to a better one (thanks to Michael Vogel) --- mod/admin.php | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/mod/admin.php b/mod/admin.php index 9be75f6f9..153b10506 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -746,25 +746,19 @@ function admin_page_federation(App $a) function admin_page_queue(App $a) { // get content from the queue table - /* - //todo: convert q() to DBA::Select() - $statement = DBA::Select('`queue` AS `q`, `contact` AS `c`', - [ '`c`.`name`', '`c`.`nurl`', '`q`.`id`', '`q`.`network`', "CONVERT_TZ(`q`.`created`, 'UTC' " . Config::get('system', 'default_timezone') . ') as created', "CONVERT_TZ(`q`.`last`, 'UTC', " . Config::get('system', 'default_timezone') . "') as last" ], - '`c`.`id`' => '`q`.`cid`', - ['order'=> ['`q`.`cid`, `q`.`created`']] - ); - $r = DBA::toArray($statement); - */ - - $r = q("SELECT `c`.`name`, `c`.`nurl`, `q`.`id`, `q`.`network`, `q`.`created`, `q`.`last` - FROM `queue` AS `q`, `contact` AS `c` - WHERE `c`.`id` = `q`.`cid` - ORDER BY `q`.`cid`, `q`.`created`;"); + $entries = DBA::p("SELECT `contact`.`name`, `contact`.`nurl`, + `queue`.`id`, `queue`.`network`, `queue`.`created`, `queue`.`last` + FROM `queue` INNER JOIN `contact` ON `contact`.`id` = `queue`.`cid` + ORDER BY `queue`.`cid`, `queue`.`created`"); - foreach ($r as $key => $rr) { - $r[$key]['created'] = DateTimeFormat::local($rr['created']); - $r[$key]['last'] = DateTimeFormat::local($rr['last']); + $r = []; + while ($entry = DBA::fetch($entries)) { + $entry['created'] = DateTimeFormat::local($entry['created']); + $entry['last'] = DateTimeFormat::local($entry['last']); + $r[] = $entry; } + DBA::close($entries); + $t = get_markup_template('admin/queue.tpl'); return replace_macros($t, [ '$title' => L10n::t('Administration'), @@ -795,13 +789,15 @@ function admin_page_queue(App $a) function admin_page_workerqueue(App $a) { // get jobs from the workerqueue table - $statement = DBA::select('workerqueue', ['id', 'parameter', 'created', 'priority'], ['done' => 0], ['order'=> ['priority']]); + $entries = DBA::select('workerqueue', ['id', 'parameter', 'created', 'priority'], ['done' => 0], ['order'=> ['priority']]); $r = DBA::toArray($statement); - foreach ($r as $key => $rr) { + $r = []; + while ($entry = DBA::fetch($entries)) { // fix GH-5469. ref: src/Core/Worker.php:217 - $r[$key]['parameter'] = Arrays::recursiveImplode(json_decode($rr['parameter'], true), ': '); - $r[$key]['created'] = DateTimeFormat::local($rr['created']); + $entry['parameter'] = Arrays::recursiveImplode(json_decode($entry['parameter'], true), ': '); + $entry['created'] = DateTimeFormat::local($entry['created']); + $r[] = $entry; } $t = get_markup_template('admin/workerqueue.tpl'); From 62e53698dfe113cd27e8ef8b3a38262cc5ff9f05 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 7 Aug 2018 12:25:55 +0200 Subject: [PATCH 4/4] Doing some laundry --- mod/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/admin.php b/mod/admin.php index 153b10506..b2f84d072 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -790,7 +790,6 @@ function admin_page_workerqueue(App $a) { // get jobs from the workerqueue table $entries = DBA::select('workerqueue', ['id', 'parameter', 'created', 'priority'], ['done' => 0], ['order'=> ['priority']]); - $r = DBA::toArray($statement); $r = []; while ($entry = DBA::fetch($entries)) { @@ -799,6 +798,7 @@ function admin_page_workerqueue(App $a) $entry['created'] = DateTimeFormat::local($entry['created']); $r[] = $entry; } + DBA::close($entries); $t = get_markup_template('admin/workerqueue.tpl'); return replace_macros($t, [