From c5da1e620c07697c2b7b5d4b51db73ef0fc143e4 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Tue, 24 May 2016 21:14:13 -0400 Subject: add state filter and dropdown.js --- src/guff.cr | 28 ++++++++++++++-------------- src/views/admin-page.ecr | 41 +++++++++++++++++++++++++++++++++++++++-- src/views/dropdown/menu.ecr | 2 +- 3 files changed, 54 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/guff.cr b/src/guff.cr index 121f150..d3817d0 100644 --- a/src/guff.cr +++ b/src/guff.cr @@ -460,11 +460,11 @@ module Guff LIMIT = 50 def get_posts( - site_id : Int64? = nil, - post_type : String? = nil, - state : String? = nil, - q : String? = nil, - page : Int32 = 1, + site_id : Int64? = nil, + type : String? = nil, + state : String? = nil, + q : String? = nil, + page : Int32 = 1, ) filters = %w{1} args = [] of String @@ -478,9 +478,9 @@ module Guff args << site_id.to_s end - if post_type + if type # add type filter - filters << case post_type + filters << case type when "blog" "x.post_id IS NOT NULL" when "page" @@ -491,11 +491,11 @@ module Guff # allow "all" "1" else - raise "unknown post type: #{post_type}" + raise "unknown post type: #{type}" end end - if state + if state && state != "default" # add state filter filters << "b.state = ?" args << state @@ -1450,11 +1450,11 @@ module Guff module PostAPI def do_post_get_posts(params : HTTP::Params) @context.models.post.get_posts( - site_id: params["site_id"]? ? params["site_id"].to_i64 : nil, - state: params["state"]?, - post_type: params["post_type"]?, - q: params["q"]?, - page: params["page"].to_i32, + site_id: params["site_id"]? ? params["site_id"].to_i64 : nil, + state: params["state"]?, + type: params["type"]?, + q: params["q"]?, + page: params["page"].to_i32, ) end end diff --git a/src/views/admin-page.ecr b/src/views/admin-page.ecr index eedc41c..ad8d429 100644 --- a/src/views/admin-page.ecr +++ b/src/views/admin-page.ecr @@ -87,11 +87,14 @@
<%= dropdown( id: "posts-filter-type", - name: "Type", css: "posts-filter-menu", - text: "Filter by type.", + + name: "Type", + text: "Filter posts by type.", + icon: "", default: "all", + items: [{ id: "all", name: "All", @@ -114,6 +117,39 @@ ) %>
+
<%= + dropdown( + id: "posts-filter-state", + css: "posts-filter-menu", + + name: "State", + text: "Filter by post state.", + + icon: "", + default: "default", + + items: [{ + id: "default", + name: "Default", + text: "Show drafts and posted items.", + }, { + type: "divider", + }, { + id: "draft", + name: "Draft", + text: "Show draft items.", + }, { + id: "posted", + name: "Posted", + text: "Show posted items.", + }, { + id: "deleted", + name: "Deleted", + text: "Show deleted items.", + }], + ) + %>
+
<%= items -- cgit v1.2.3