diff options
-rw-r--r-- | src/guff.cr | 247 | ||||
-rw-r--r-- | src/views/admin-page.ecr | 56 |
2 files changed, 154 insertions, 149 deletions
diff --git a/src/guff.cr b/src/guff.cr index bb46980..64c3b0e 100644 --- a/src/guff.cr +++ b/src/guff.cr @@ -182,18 +182,18 @@ module Guff module MimeType TYPES = { - ".js": "text/javascript; charset=utf-8", - ".css": "text/css; charset=utf-8", - ".html": "text/html; charset=utf-8", - ".png": "image/png", - ".jpeg": "image/jpeg", - ".jpg": "image/jpeg", - ".otf": "application/vnd.ms-opentype", - ".eot": "application/vnd.ms-fontobject", - ".svg": "image/svg+xml", - ".ttf": "application/x-font-ttf", - ".woff": "application/font-woff", - ".woff2": "application/font-woff", + ".js" => "text/javascript; charset=utf-8", + ".css" => "text/css; charset=utf-8", + ".html" => "text/html; charset=utf-8", + ".png" => "image/png", + ".jpeg" => "image/jpeg", + ".jpg" => "image/jpeg", + ".otf" => "application/vnd.ms-opentype", + ".eot" => "application/vnd.ms-fontobject", + ".svg" => "image/svg+xml", + ".ttf" => "application/x-font-ttf", + ".woff" => "application/font-woff", + ".woff2" => "application/font-woff", } def self.from_path(path : String) : String @@ -560,8 +560,8 @@ module Guff ((page - 1) * LIMIT).to_s, ])) do |row| # append row to result - rows << row.reduce({} of String => String) do |r, k, v| - r[k] = v.to_s + rows << row.reduce({} of String => String) do |r, kv| + r[kv[0]] = kv[1].to_s r end end @@ -1158,8 +1158,8 @@ module Guff @context.dbs.ro.all(SQL[:get_users]) do |row| # append row to result - rows << row.reduce({} of String => String) do |r, k, v| - r[k] = v.to_s + rows << row.reduce({} of String => String) do |r, kv| + r[kv[0]] = kv[1].to_s r end end @@ -1171,8 +1171,8 @@ module Guff row = @context.dbs.ro.row(SQL[:get], [user_id.to_s]) raise "unknown user: #{user_id}" unless row - row.reduce({} of String => String) do |r, k, v| - r[k] = v.to_s + row.reduce({} of String => String) do |r, kv| + r[kv[0]] = kv[1].to_s r end end @@ -1303,8 +1303,8 @@ module Guff rows = [] of Hash(String, String) @context.dbs.ro.all(SQL[:get_states]) do |row| - rows << row.reduce({} of String => String) do |r, k, v| - r[k] = v.to_s + rows << row.reduce({} of String => String) do |r, kv| + r[kv[0]] = kv[1].to_s r end end @@ -1376,8 +1376,8 @@ module Guff rows = [] of Hash(String, String) @context.dbs.ro.all(SQL[:get_sites]) do |row| - rows << row.reduce({} of String => String) do |r, k, v| - r[k] = v.to_s + rows << row.reduce({} of String => String) do |r, kv| + r[kv[0]] = kv[1].to_s r end end @@ -1402,7 +1402,10 @@ module Guff r = [] of Hash(String, String) @context.dbs.ro.all(SQL[:get_roles]) do |row| - r << { "role": row["role"] as String, "name": row["name"] as String } + r << { + "role" => row["role"] as String, + "name" => row["name"] as String, + } end r @@ -1603,8 +1606,8 @@ module Guff def do_page_get(params : HTTP::Params) @context.models.page.get( post_id: params["post_id"].to_i64 - ).reduce({} of String => String) do |r, k, v| - r[k] = v.to_s + ).reduce({} of String => String) do |r, kv| + r[kv[0]] = kv[1].to_s r end end @@ -1648,8 +1651,8 @@ module Guff def do_project_get(params : HTTP::Params) @context.models.project.get( post_id: params["post_id"].to_i64 - ).reduce({} of String => String) do |r, k, v| - r[k] = v.to_s + ).reduce({} of String => String) do |r, kv| + r[kv[0]] = kv[1].to_s r end end @@ -1691,8 +1694,8 @@ module Guff def do_blog_get(params : HTTP::Params) @context.models.blog.get( post_id: params["post_id"].to_i64 - ).reduce({} of String => String) do |r, k, v| - r[k] = v.to_s + ).reduce({} of String => String) do |r, kv| + r[kv[0]] = kv[1].to_s r end end @@ -1893,77 +1896,77 @@ module Guff TITLE = "Guff Admin" TABS = { - "admin": [{ - id: "home", - css: "active", - icon: "fa-home", - name: "Home", - text: "View home tab.", + "admin" => [{ + :id => "home", + :css => "active", + :icon => "fa-home", + :name => "Home", + :text => "View home tab.", }, { - id: "posts", - css: "", - icon: "fa-cubes", - name: "Posts", - text: "Manage blog, pages, and projects.", + :id => "posts", + :css => "", + :icon => "fa-cubes", + :name => "Posts", + :text => "Manage blog, pages, and projects.", }, { - id: "files", - css: "", - icon: "fa-files-o", - name: "Files", - text: "Manage files.", + :id => "files", + :css => "", + :icon => "fa-files-o", + :name => "Files", + :text => "Manage files.", }, { - id: "settings", - css: "", - icon: "fa-cogs", - name: "Settings", - text: "Configure settings.", + :id => "settings", + :css => "", + :icon => "fa-cogs", + :name => "Settings", + :text => "Configure settings.", }], - "settings": [{ - id: "general", - css: "active", - icon: "fa-cog", - name: "General", - text: "Manage general settings.", + "settings" => [{ + :id => "general", + :css => "active", + :icon => "fa-cog", + :name => "General", + :text => "Manage general settings.", }, { - id: "backups", - css: "", - icon: "fa-archive", - name: "Backups", - text: "Manage backups.", + :id => "backups", + :css => "", + :icon => "fa-archive", + :name => "Backups", + :text => "Manage backups.", }, { - id: "import", - css: "", - icon: "fa-upload", - name: "Import / Export", - text: "Import and export posts.", + :id => "import", + :css => "", + :icon => "fa-upload", + :name => "Import / Export", + :text => "Import and export posts.", }, { - id: "sites", - css: "", - icon: "fa-sitemap", - name: "Sites", - text: "Manage sites and domains.", + :id => "sites", + :css => "", + :icon => "fa-sitemap", + :name => "Sites", + :text => "Manage sites and domains.", }, { - id: "themes", - css: "", - icon: "fa-eye", - name: "Themes", - text: "Manage themes.", + :id => "themes", + :css => "", + :icon => "fa-eye", + :name => "Themes", + :text => "Manage themes.", }, { - id: "users", - css: "", - icon: "fa-users", - name: "Users", - text: "Manage users and permissions.", + :id => "users", + :css => "", + :icon => "fa-users", + :name => "Users", + :text => "Manage users and permissions.", }], } TEMPLATES = { - option: " + :option => " <option value='%s'>%s</option> ", - new_post_button: " + :new_post_button => " <a href='#' class='btn btn-primary' @@ -2014,7 +2017,7 @@ module Guff </ul> ", - state_button: " + :state_button => " <a href='#' class='btn btn-default' @@ -2059,9 +2062,9 @@ module Guff private def authors_menu_items @context.models.user.get_users.map do |row| { - id: row["user_id"], - name: row["name"], - text: "Show author \"%s\"." % [row["name"]], + :id => row["user_id"], + :name => row["name"], + :text => "Show author \"%s\"." % [row["name"]], } end end @@ -2069,9 +2072,9 @@ module Guff private def sites_menu_items @context.models.site.get_sites.map do |row| { - id: row["site_id"], - name: row["name"], - text: "Show site \"%s\"." % [row["name"]], + :id => row["site_id"], + :name => row["name"], + :text => "Show site \"%s\"." % [row["name"]], } end end @@ -2079,10 +2082,10 @@ module Guff private def states_menu_items @context.models.state.get_states.map do |row| { - id: row["state"], - name: row["name"], - icon: row["icon"], - text: "Show state \"%s\"." % [row["name"]], + :id => row["state"], + :name => row["name"], + :icon => row["icon"], + :text => "Show state \"%s\"." % [row["name"]], } end end @@ -2238,7 +2241,9 @@ module Guff if context.request.method == "GET" # send body for GET requests File.open(abs_path) do |fh| + STDERR.puts "sending #{abs_path}" IO.copy(fh, context.response) + STDERR.puts "done sending #{abs_path}" end end end @@ -2319,7 +2324,7 @@ module Guff # create session session_id = @context.session.create({ - "user_id": login(context.request.body).to_s, + "user_id" => login(context.request.body).to_s, }) # add cookie @@ -2590,44 +2595,44 @@ module Guff end HANDLERS = [{ - dev: true, - id: :error, + :dev => true, + :id => :error, }, { - dev: false, - id: :log, + :dev => false, + :id => :log, }, { - dev: false, - id: :deflate, + :dev => false, + :id => :deflate, }, { - dev: false, - id: :assets, + :dev => false, + :id => :assets, }, { - dev: false, - id: :page, + :dev => false, + :id => :page, }, { - dev: false, - id: :project, + :dev => false, + :id => :project, }, { - dev: false, - id: :blog_post, + :dev => false, + :id => :blog_post, }, { - dev: false, - id: :blog_list, + :dev => false, + :id => :blog_list, }, { - dev: false, - id: :login, + :dev => false, + :id => :login, }, { - dev: false, - id: :session, + :dev => false, + :id => :session, }, { - dev: false, - id: :api, + :dev => false, + :id => :api, }, { - dev: false, - id: :admin, + :dev => false, + :id => :admin, }, { - dev: false, - id: :logout, + :dev => false, + :id => :logout, }] def self.get(context : Context) : Array(HTTP::Handler) diff --git a/src/views/admin-page.ecr b/src/views/admin-page.ecr index feada44..ba7dcaf 100644 --- a/src/views/admin-page.ecr +++ b/src/views/admin-page.ecr @@ -101,26 +101,26 @@ default: "all", items: [{ - id: "all", - name: "All", - text: "Show all types.", + :id => "all", + :name => "All", + :text => "Show all types.", }, { - type: "divider", + :type => "divider", }, { - id: "blog", - name: "Blog Post", - icon: "fa-sticky-note-o", - text: "Show blog posts.", + :id => "blog", + :name => "Blog Post", + :icon => "fa-sticky-note-o", + :text => "Show blog posts.", }, { - id: "page", - name: "Page", - icon: "fa-bookmark-o", - text: "Show pages.", + :id => "page", + :name => "Page", + :icon => "fa-bookmark-o", + :text => "Show pages.", }, { - id: "project", - name: "Project", - icon: "fa-cube", - text: "Show projects.", + :id => "project", + :name => "Project", + :icon => "fa-cube", + :text => "Show projects.", }], ) %></div><!-- btn-group --> @@ -137,11 +137,11 @@ default: "default", items: [{ - id: "default", - name: "Default", - text: "Show drafts and posted items.", + :id => "default", + :name => "Default", + :text => "Show drafts and posted items.", }, { - type: "divider", + :type => "divider", }].concat(states_menu_items), ) %></div><!-- btn-group --> @@ -158,11 +158,11 @@ default: "all", items: [{ - id: "all", - name: "All", - text: "Show all sites.", + :id => "all", + :name => "All", + :text => "Show all sites.", }, { - type: "divider", + :type => "divider", }].concat(sites_menu_items), ) %></div><!-- btn-group --> @@ -179,11 +179,11 @@ default: "all", items: [{ - id: "all", - name: "All", - text: "Show all authors.", + :id => "all", + :name => "All", + :text => "Show all authors.", }, { - type: "divider", + :type => "divider", }].concat(authors_menu_items), ) %></div><!-- btn-group --> |