JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
SCHEMA CHANGE, clean up /admin_images
authorJason Woofenden <jason@jasonwoof.com>
Fri, 6 Nov 2015 22:04:17 +0000 (17:04 -0500)
committerJason Woofenden <jason@jasonwoof.com>
Fri, 6 Nov 2015 22:04:17 +0000 (17:04 -0500)
admin_images.html
admin_images.php
admin_images.sql
admin_pages.php
style.styl

index f9d7063..d36df35 100644 (file)
                        <p><a href="admin_images?new=1">[Add a new image]</a></p>
 
                        <table cellspacing="0" cellpadding="4" border="0" summary="" class="evenodd">
-                               <tr><th>Image</th><th>Name</th><th>Caption</th><th>&nbsp;</th></tr><!--~listings {~-->
+                               <tr><th colspan="4" class="th_toggle_buttons">
+                                       <div><!--~sort_by_age unset {~--><a href="?sort=age"><!--~}~-->[sort by age]<!--~sort_by_age unset {~--></a><!--~}~--></div> <div><!--~sort_by_name unset {~--><a href="?sort=name"><!--~}~-->[sort by name/caption]<!--~sort_by_name unset {~--></a><!--~}~--></div> <div><!--~sort_by_caption unset {~--><a href="?sort=caption"><!--~}~-->[sort by caption/name]<!--~sort_by_caption unset {~--></a><!--~}~--></div>
+                               </th></tr>
+                               <!--~listings {~-->
                                <tr>
-                                       <td class="listing"><a href="admin_images?id=~id~"><!--~image nonempty {~--><span class="wfpl_thumb" style="background-image: url(~image image_src_thumb~)"></span><!--~}~--></a></td>
-                                       <td class="listing"><a href="admin_images?id=~id~">~name html~<!--~name empty {~--><em>(blank)</em><!--~}~--></a></td>
-                                       <td class="listing"><a href="admin_images?id=~id~">~caption html~<!--~caption empty {~--><em>(blank)</em><!--~}~--></a></td>
-                                       <td><a href="admin_images?admin_images_delete_id=~id~" onclick="return confirm('Permanently delete?')">[delete this image]</a></td>
-                               </tr><!--~}~-->
+                                       <td class="listing"><!--~image nonempty {~--><a style="cursor: zoom-in" href="~image image_src_full~" target="_blank"><span class="wfpl_thumb" style="background-image: url(~image image_src_thumb~)"></span></a><!--~}~--></td>
+                                       <td class="listing">Name: ~name html~<br>Caption: ~caption html~</td>
+                                       <td><a href="admin_images?id=~id~">[edit]</a></td>
+                                       <td><a href="admin_images?admin_images_delete_id=~id~" onclick="return confirm('Permanently delete?')" style="color: red">[delete]</a></td>
+                               </tr>
+                               <!--~}~-->
 
                        </table>
                <!--~}~-->
index 73d16c6..2a5ae51 100644 (file)
@@ -127,7 +127,22 @@ function admin_images_main_delete($id) {
 }
 
 function admin_images_main_listing() {
-       $listing_rows = db_get_assocs('cms_images', 'id,image,name,caption', 'order by name, caption');
+       $sort_by = 'name';
+       $sorts = array(
+               'age' => 'created_at desc',
+               'name' => "coalesce(nullif(name, ''), caption), created_at",
+               'caption' => "coalesce(nullif(caption, ''), name), created_at"
+       );
+       if (isset($_REQUEST['sort'])) {
+               foreach ($sorts as $s => $sql) {
+                       if ($_REQUEST['sort'] == $s) {
+                               $sort_by = $s;
+                               break;
+                       }
+               }
+       }
+       tem_set("sort_by_$sort_by");
+       $listing_rows = db_get_assocs('cms_images', 'id,image,name,caption', 'order by ' . $sorts[$sort_by]);
        tem_set('listings', $listing_rows);
 }
 
index 815969e..27e29e7 100644 (file)
@@ -4,5 +4,5 @@ create table cms_images (
     image varchar(240) not null default "",
     name varchar(200) not null default "",
     caption varchar(200) not null default "",
-    sizes text not null default ""
+    created_at int not null default 0
 );
index 382ff5c..768b47d 100644 (file)
@@ -75,7 +75,7 @@ function admin_pages_main_delete($id) {
 # get all images from admin_images (for cms)
 function admin_pages_get_images() {
        $out = [];
-       $rows = db_get_assocs('cms_images', 'image,name,caption', 'order by name, caption, image');
+       $rows = db_get_assocs('cms_images', 'image,name,caption', "order by coalesce(nullif(name, ''), caption), created_at");
        if ($rows) {
                $id = -1;
                foreach($rows as &$row) { $id += 1;
index 88d0420..7e11c32 100644 (file)
@@ -421,3 +421,7 @@ table.evenodd
                display: block
                padding: 3px 10px 4px 17px
                font-size: font_size_large
+#admin_images_body .th_toggle_buttons
+       font-weight: normal
+       color: #777
+       space_evenly()