Finish with edit update and delete options.
authorSteve Sutton <steve@gaslightmedia.com>
Fri, 8 Jun 2018 18:46:45 +0000 (14:46 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Fri, 8 Jun 2018 18:46:45 +0000 (14:46 -0400)
Can now edit delete and add new messages.
Listing in order desc by updated date.

classes/data/dataMessages.php
models/admin/relay/index.php
views/admin/relay/edit.html
views/admin/relay/index.html

index 75534dc..79200dd 100644 (file)
@@ -152,7 +152,7 @@ class GlmDataMessages extends GlmDataAbstract
             'created' => array (
                 'field' => 'created',
                 'type'  => 'datetime',
-                'use'   => 'a'
+                'use'   => 'i'
             ),
 
             // Date/Time Updated
index 51f080a..a0700e5 100644 (file)
@@ -90,6 +90,7 @@ class GlmMembersAdmin_relay_index extends GlmDataMessages
         $view     = 'index.html';
         $messages = false;
         $message  = false;
+        $updated  = false;
 
         $option = isset( $_REQUEST['option'] ) ? $_REQUEST['option'] : false;
 
@@ -106,23 +107,30 @@ class GlmMembersAdmin_relay_index extends GlmDataMessages
             break;
         case 'edit':
             if ( isset( $_REQUEST['id'] ) && $message_id = filter_var( $_REQUEST['id'] ) ) {
-                $message = $this->getEntry( $message_id );
+                $message = $this->editEntry( $message_id );
             }
             $view = 'edit.html';
             break;
         case 'update':
             if ( isset( $_REQUEST['id'] ) && $message_id = filter_var( $_REQUEST['id'] ) ) {
+                $_REQUEST['updated'] = date( 'Y-m-d H:i:s' );
                 $message = $this->updateEntry( $message_id );
+
+                if ( $message['status'] ) {
+                    $updated = true;
+                }
+                // Reset for edit now
+                $message = $this->editEntry( $message_id );
             }
             $view = 'edit.html';
             break;
         case 'delete':
             if ( isset( $_REQUEST['id'] ) && $message_id = filter_var( $_REQUEST['id'] ) ) {
-                $message = $this->deleteEntry( $message_id );
+                $message = $this->deleteEntry( $message_id, true );
             }
-            break;
+            $view = 'index.html';
         default:
-            $messages = $this->getList();
+            $messages = $this->getList( '', "T.updated desc" );
             break;
         }
 
@@ -132,6 +140,7 @@ class GlmMembersAdmin_relay_index extends GlmDataMessages
         $templateData = array(
             'messages' => $messages,
             'message'  => $message,
+            'updated'  => $updated,
         );
              // Return status, any suggested view, and any data to controller
         return array(
index 7d986e4..1248dd5 100644 (file)
@@ -2,58 +2,71 @@
 
 <h3>Edit/Add Message</h3>
 
+{if $updated}<h2 class="glm-notice glm-flash-updated"> Message Updated! </h2>{/if}
+
 <form action="{$thisUrl}?page={$thisPage}" method="post">
     <input type="hidden" name="glm_action" value="index" />
+
     {if isset($message.fieldData.id) &&  $message.fieldData.id}
-        <input type="hidden" name="id" value="{$mesagge.id}" />
+        <input type="hidden" name="id" value="{$message.fieldData.id}" />
         <input type="hidden" name="option" value="update" />
     {else}
         <input type="hidden" name="option" value="insert" />
     {/if}
+
     <table id="glm-table-message" class="glm-admin-table glm-event-table">
 
-    <tr>
-        <th {if $message.fieldRequired.status} class="glm-required"}{/if}>Status</th>
-        <td {if $message.fieldFail.status}class="glm-form-bad-input" data-tabid="glm-status"{/if}>
-            <select name="status">
-                <option value=""></option>
-                {foreach $message.fieldData.status.list as $v}
-                    <option value="{$v.value}"
-                        {if $message.fieldData.status.value == $v.value} selected{/if}
-                    >
-                        {$v.name}
-                    </option>
-                {/foreach}
-            </select>
-        {if $message.fieldFail.status}<p>{$message.fieldFail.status}</p>{/if}<br>
-        </td>
-    </tr>
-
-    <tr>
-        <th {if $message.fieldRequired.title} class="glm-required"}{/if}>Title</th>
-        <td {if $message.fieldFail.title}class="glm-form-bad-input" data-tabid="glm-title"{/if}>
-            <input type="text" name="title" value="{$message.fieldData.title}" class="glm-form-text-input-medium">
-        {if $message.fieldFail.title}<p>{$message.fieldFail.title}</p>{/if}<br>
-        </td>
-    </tr>
-
-    <tr>
-        <th {if $message.fieldRequired.message} class="glm-required"}{/if}>Message</th>
-        <td {if $message.fieldFail.message}class="glm-form-bad-input" data-tabid="glm-message"{/if}>
-        <textarea name="message" class="glm-form-textarea">{$message.fieldData.message}</textarea>
-            {if $message.fieldFail.message}
-                <p>{$message.fieldFail.message}</p>
-            {/if}<br>
-        </td>
-    </tr>
-
-    <tr>
-        <td colspan="2">
-            <input type="submit" class="button" value="Save" />
-        </td>
-    </tr>
+        <tr>
+            <th {if $message.fieldRequired.status} class="glm-required"}{/if}>Status</th>
+            <td {if $message.fieldFail.status}class="glm-form-bad-input" data-tabid="glm-status"{/if}>
+                <select name="status">
+                    <option value=""></option>
+                    {foreach $message.fieldData.status.list as $v}
+                        <option value="{$v.value}" {if $message.fieldData.status.value == $v.value} selected{/if}>{$v.name}</option>
+                    {/foreach}
+                </select>
+                {if $message.fieldFail.status}<p>{$message.fieldFail.status}</p>{/if}<br>
+            </td>
+        </tr>
+
+        <tr>
+            <th {if $message.fieldRequired.title} class="glm-required"}{/if}>Title</th>
+            <td {if $message.fieldFail.title}class="glm-form-bad-input" data-tabid="glm-title"{/if}>
+                <input type="text" name="title" value="{$message.fieldData.title}" class="glm-form-text-input-medium">
+                {if $message.fieldFail.title}<p>{$message.fieldFail.title}</p>{/if}<br>
+            </td>
+        </tr>
+
+        <tr>
+            <th {if $message.fieldRequired.message} class="glm-required"}{/if}>Message</th>
+            <td {if $message.fieldFail.message}class="glm-form-bad-input" data-tabid="glm-message"{/if}>
+            {php}
+                wp_editor('{$message.fieldData.message|escape:quotes}', 'glm_descr', array(
+                    'wpautop' => false,
+                    'textarea_name' => 'message',
+                    'editor_height' => 400,     // Height in px, overrides editor_rows
+                ));
+            {/php}
+                {if $message.fieldFail.message}<p>{$message.fieldFail.message}</p>{/if}<br>
+            </td>
+        </tr>
+
+        <tr>
+            <td colspan="2">
+                <input type="submit" class="button" value="Save" />
+            </td>
+        </tr>
 
     </table>
 </form>
 
+<script>
+ jQuery(document).ready(function($) {
+
+ // Flash certain elements for a short time after display
+ $(".glm-flash-updated").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);
+
+ });
+</script>
+
 {include file="admin/footer.html"}
index b38969c..f0f24f5 100644 (file)
@@ -2,14 +2,44 @@
 
 <h2>GLM Info</h2>
 
-<a class="button" href="{$thisUrl}?page={$thisPage}&glm_action=index&option=add">Add Message</a>
-
-{if $messages}
-    {foreach $messages as $m}
-        <div>
-            <span>{$m.title}</span><span>{$m.updated.datetime}</span>
-        </div>
-    {/foreach}
-{/if}
+
+<div style="display: block; float: right;">
+    <a class="button" href="{$thisUrl}?page={$thisPage}&glm_action=index&option=add">Add Message</a>
+</div>
+
+
+<table class="wp-list-table striped glm-admin-table" style="width: 800px;">
+    <thead>
+        <th> Edit </th>
+        <th> Title </th>
+        <th> Updated </th>
+        <th> Delete </th>
+    </thead>
+
+    <tbody>
+        {if $messages}
+
+            {foreach $messages as $m}
+                <tr>
+                    <td>
+                        <a href="{$thisUrl}?page={$thisPage}&glm_action=index&option=edit&id={$m.id}">Edit</a>
+                    </td>
+                    <td>
+                        {$m.title}
+                    </td>
+                    <td>
+                        {$m.updated.datetime}
+                    </td>
+                    <td>
+                        <a onclick="return confirm('This will delete the message! Are you sure?');"
+                            href="{$thisUrl}?page={$thisPage}&glm_action=index&option=delete&id={$m.id}">Delete</a>
+                    </td>
+                </tr>
+            {/foreach}
+
+        {/if}
+
+  </tbody>
+</table>
 
 {include file="admin/footer.html"}