aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/guff/views/panel.cr72
-rw-r--r--src/guff/views/panes/admin/home.cr71
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