From 9f4095341f8729859529d4adf07b22c26c2167f5 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Wed, 4 Sep 2019 09:32:54 -0400 Subject: [PATCH] Add restore and archive message links. Ability to restore and archive the email messages. --- classes/data/dataEmailMessages.php | 36 ++++++++++ models/admin/messages/index.php | 80 ++++----------------- views/admin/messages/editHtmlEmail.html | 4 +- views/admin/messages/listMessagesTable.html | 8 +++ 4 files changed, 59 insertions(+), 69 deletions(-) diff --git a/classes/data/dataEmailMessages.php b/classes/data/dataEmailMessages.php index eab54a3..f28e64f 100644 --- a/classes/data/dataEmailMessages.php +++ b/classes/data/dataEmailMessages.php @@ -254,4 +254,40 @@ class GlmDataEmailMessages extends GlmDataAbstract } + /** + * Archive this message. + * + * @param int id Message id to archive + * + * @return void + */ + public function archive( $id ) + { + $this->wpdb->update( + $this->table, + array( 'archived' => true ), + array( 'id' => $id ), + array( '%d' ), + array( '%d' ) + ); + } + + /** + * Restore this message. + * + * @param int id Message id to restore + * + * @return void + */ + public function restore( $id ) + { + $this->wpdb->update( + $this->table, + array( 'archived' => false ), + array( 'id' => $id ), + array( '%d' ), + array( '%d' ) + ); + } + } diff --git a/models/admin/messages/index.php b/models/admin/messages/index.php index e6164a2..35a2ac0 100644 --- a/models/admin/messages/index.php +++ b/models/admin/messages/index.php @@ -257,6 +257,7 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages 'paging' => $paging, ]; break; + case 'search': $view = 'search'; $searchResults = array(); @@ -445,73 +446,6 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages ); break; - case 'editTemplate': - $error = false; - $view = 'editTemplate'; - $newEntry = false; - $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config ); - if ( isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) { - $template = $Templates->editEntry( $id ); - } else { - $template = $Templates->newEntry(); - $newEntry = true; - } - $tData = array( - 'template' => $template, - 'newEntry' => $newEntry, - 'error' => $error, - ); - break; - - case 'updateTemplate': - $error = false; - $success = false; - $templateData['thisOption'] = 'listTemplates'; - $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config ); - if ( isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) { - $newEntry = false; - $template = $Templates->updateEntry( $id ); - } else { - $newEntry = true; - $template = $Templates->insertEntry(); - } - if ( $template['status'] != 1 ) { - $error = true; - $view = 'editTemplate'; - $tData = array( - 'template' => $template, - 'newEntry' => $newEntry, - 'error' => $error, - 'success' => $success, - ); - } else { - $success = true; - $view = 'editTemplate'; - $tData = array( - 'template' => $template, - 'newEntry' => $newEntry, - 'error' => $error, - 'success' => $success, - ); - } - break; - - case 'deleteTemplate': - $view = 'list'; - $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config ); - if ( $option == 'deleteTemplate' && isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) { - $Templates->deleteEntry( $id, true ); - } - - case 'listTemplates': - $view = 'listTemplates'; - $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config ); - $templates = $Templates->getList(); - $tData = array( - 'templates' => $templates, - ); - break; - case 'editHtmlEmail': $view = 'editHtmlEmail'; $newEntry = false; @@ -569,6 +503,18 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages $this->deleteEntry( $id, true ); } + case 'archive': + $view = 'list'; + if ( $option == 'archive' && isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) { + $this->archive( $id ); + } + + case 'restore': + $view = 'list'; + if ( $option == 'restore' && isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) { + $this->restore( $id ); + } + case 'list': $view = 'list'; diff --git a/views/admin/messages/editHtmlEmail.html b/views/admin/messages/editHtmlEmail.html index 259b44f..f123705 100644 --- a/views/admin/messages/editHtmlEmail.html +++ b/views/admin/messages/editHtmlEmail.html @@ -191,8 +191,8 @@ {* UI for Delete Dialog *} {if !$newEntry} - {assign var="itemName" value="Message"} - {assign var="deleteUrl" value="{$thisUrl}?page={$thisPage}&option=deleteMessage&id={$message.fieldData.id}"} + {$itemName="Message"} + {$deleteUrl="{$thisUrl}?page={$thisPage}&option=deleteMessage&id={$message.fieldData.id}"} {include file='admin/ui/deleteDialog.html'} {/if} diff --git a/views/admin/messages/listMessagesTable.html b/views/admin/messages/listMessagesTable.html index 50027f2..0448cfd 100644 --- a/views/admin/messages/listMessagesTable.html +++ b/views/admin/messages/listMessagesTable.html @@ -6,6 +6,7 @@ Last Updated Last Sent Queued + Archive Preview @@ -18,6 +19,13 @@ {$message.last_updated.timestamp|date_format:"%D %r"} {$message.sent|date_format:"%D %r"} {$message.stats|date_format:"%D %r"} + + {if $message.archived.value} + Restore + {else} + Archive + {/if} + Preview -- 2.17.1