diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/guff/views/panel.cr | 72 | ||||
-rw-r--r-- | src/guff/views/panes/admin/home.cr | 71 |
2 files changed, 134 insertions, 9 deletions
diff --git a/src/guff/views/panel.cr b/src/guff/views/panel.cr new file mode 100644 index 0000000..025cc13 --- /dev/null +++ b/src/guff/views/panel.cr @@ -0,0 +1,72 @@ +module Guff::Views::Panel + TEMPLATE = Template.new(%{ + <div + id='home-panel-%{id|h}' + class='panel %{panel_class|h}' + data-type='%{type|h}' + data-config='%{config|h}' + > + <div class='panel-heading dropup'> + <a + href='#' + class='btn btn-default btn-xs home-editing hidden' + title='Edit panel.' + data-toggle='dropdown' + > + <i class='fa fa-cog'></i> + <i class='fa fa-caret-down'></i> + </a> + + <ul class='dropdown-menu home-panel-edit'> + <li role='presentation'> + <a + href='#' + title='Configure this panel.' + data-id='edit' + > + <i class='fa fa-list-alt'></i> + Configure... + </a> + </li> + + <li role='presentation'> + <a + href='#' + title='Remove this panel.' + data-id='remove' + > + <i class='fa fa-trash'></i> + Remove + </a> + </li> + </ul> + + <b> + %{name|h} + </b> + </div><!-- panel-heading --> + + <div class='panel-body'> + %{body} + </div><!-- panel-body --> + </div> + }.strip) + + def self.make( + type : String, + id : String, + name : String, + body : String = "", + config : Hash(String, String) = {} of String => String, + panel_class : String = "panel-default", + ) + TEMPLATE.run({ + "type" => type, + "id" => id, + "name" => name, + "body" => body, + "config" => config.to_json, + "panel_class" => panel_class, + }) + end +end diff --git a/src/guff/views/panes/admin/home.cr b/src/guff/views/panes/admin/home.cr index 6010fd4..00bffed 100644 --- a/src/guff/views/panes/admin/home.cr +++ b/src/guff/views/panes/admin/home.cr @@ -28,20 +28,73 @@ class Guff::Views::Panes::Admin::Home < Guff::Views::Panes::Admin::Pane </a> </li> }.strip, + + "add-menu-category" => %{ + <li class='dropdown-header'> + %{name|h} + </li> + }.strip, + + "divider" => %{ + <li class='divider' role='separator'></li> + }.strip, }) - ADD_MENU_ITEMS = [{ - "id" => "test-1", - "name" => "Test 1", + ADD_MENU = [{ + "type" => "label", + "name" => "Content", + }, { + "id" => "pages", + "name" => "Pages", + }, { + "id" => "projects", + "name" => "Projects", + }, { + "id" => "quick-post", + "name" => "Quick Post", + }, { + "id" => "releases", + "name" => "Releases", + }, { + "type" => "divider", }, { - "id" => "test-2", - "name" => "Test 2", - }].map { |row| - TEMPLATES["add-menu-item"].run(row) - }.join + "type" => "label", + "name" => "Logs", + }, { + "id" => "activity", + "name" => "Activity", + }, { + "id" => "logins", + "name" => "Logins", + }, { + "id" => "traffic", + "name" => "Traffic", + }, { + "type" => "divider", + }, { + "type" => "label", + "name" => "Other", + }, { + "id" => "image-viewer", + "name" => "Image Viewer", + }, { + "id" => "tutorial", + "name" => "Tutorial", + }] private def add_menu - ADD_MENU_ITEMS + ADD_MENU.map { |row| + key = case row["type"]? + when "divider" + "divider" + when "label" + "add-menu-category" + else + "add-menu-item" + end + + TEMPLATES[key].run(row) + }.join end private def cols_menu |