From beaae6cb32f45f2d9bb502a2c0fec67013d070bc Mon Sep 17 00:00:00 2001 From: Torsten Date: Fri, 25 Nov 2022 14:46:49 +0200 Subject: [PATCH] page model and starting resource --- ...age_controller.rb => images_controller.rb} | 2 +- app/models/cms/page.rb | 27 ++++++++++++++++++- app/views/cms/{image => images}/index.haml | 0 app/views/cms/{image => images}/new.haml | 0 app/views/cms/pages/_form.html.haml | 10 +++++++ app/views/cms/pages/edit.html.haml | 7 +++++ app/views/cms/pages/index.html.haml | 21 +++++++++++++++ app/views/cms/pages/new.html.haml | 5 ++++ app/views/cms/pages/show.html.haml | 6 +++++ app/views/layouts/cms_layout.haml | 4 +-- config/routes.rb | 3 +-- 11 files changed, 79 insertions(+), 6 deletions(-) rename app/controllers/cms/{image_controller.rb => images_controller.rb} (93%) rename app/views/cms/{image => images}/index.haml (100%) rename app/views/cms/{image => images}/new.haml (100%) create mode 100644 app/views/cms/pages/_form.html.haml create mode 100644 app/views/cms/pages/edit.html.haml create mode 100644 app/views/cms/pages/index.html.haml create mode 100644 app/views/cms/pages/new.html.haml create mode 100644 app/views/cms/pages/show.html.haml diff --git a/app/controllers/cms/image_controller.rb b/app/controllers/cms/images_controller.rb similarity index 93% rename from app/controllers/cms/image_controller.rb rename to app/controllers/cms/images_controller.rb index e58734a..778ab07 100644 --- a/app/controllers/cms/image_controller.rb +++ b/app/controllers/cms/images_controller.rb @@ -1,6 +1,6 @@ module Cms - class ImageController < CmsController + class ImagesController < CmsController @@root = "app/assets/images/cms/" @@files = Set.new Dir.new(Rails.root + @@root).children diff --git a/app/models/cms/page.rb b/app/models/cms/page.rb index fe6d1eb..287a2a0 100644 --- a/app/models/cms/page.rb +++ b/app/models/cms/page.rb @@ -1,2 +1,27 @@ -class Cms::Page < ActiveModel +module Cms + class Page + include ActiveModel::API + include ActiveModel::Conversion + + @@files = Set.new Dir.new(Rails.root.join("cms")).children + + attr_reader :name + + def id + @name + end + + def persisted? + false + end + + def initialize file_name + @name = file_name.split(".").first + @content = YAML.load_file(Rails.root.join("cms" , file_name)) + end + + def self.all + @@files.collect{ |file| Page.new(file) } + end + end end diff --git a/app/views/cms/image/index.haml b/app/views/cms/images/index.haml similarity index 100% rename from app/views/cms/image/index.haml rename to app/views/cms/images/index.haml diff --git a/app/views/cms/image/new.haml b/app/views/cms/images/new.haml similarity index 100% rename from app/views/cms/image/new.haml rename to app/views/cms/images/new.haml diff --git a/app/views/cms/pages/_form.html.haml b/app/views/cms/pages/_form.html.haml new file mode 100644 index 0000000..1d23a23 --- /dev/null +++ b/app/views/cms/pages/_form.html.haml @@ -0,0 +1,10 @@ += form_for @cms_page do |f| + - if @cms_page.errors.any? + #error_explanation + %h2= "#{pluralize(@cms_page.errors.count, "error")} prohibited this cms_page from being saved:" + %ul + - @cms_page.errors.full_messages.each do |message| + %li= message + + .actions + = f.submit 'Save' diff --git a/app/views/cms/pages/edit.html.haml b/app/views/cms/pages/edit.html.haml new file mode 100644 index 0000000..ad8c69d --- /dev/null +++ b/app/views/cms/pages/edit.html.haml @@ -0,0 +1,7 @@ +%h1 Editing cms_page + += render 'form' + += link_to 'Show', @cms_page +\| += link_to 'Back', cms_pages_path diff --git a/app/views/cms/pages/index.html.haml b/app/views/cms/pages/index.html.haml new file mode 100644 index 0000000..3d8c54d --- /dev/null +++ b/app/views/cms/pages/index.html.haml @@ -0,0 +1,21 @@ +%h1 Listing cms_pages + +%table + %thead + %tr + %th + %th + %th + + %tbody + - @cms_pages.each do |cms_page| + %tr + =cms_page.id + %tr + %td= link_to 'Show', cms_page + %td= #link_to 'Edit', edit_cms_page_path(cms_page) + %td= link_to 'Destroy', cms_page, method: :delete, data: { confirm: 'Are you sure?' } + +%br + += link_to 'New Page', new_cms_page_path diff --git a/app/views/cms/pages/new.html.haml b/app/views/cms/pages/new.html.haml new file mode 100644 index 0000000..399492d --- /dev/null +++ b/app/views/cms/pages/new.html.haml @@ -0,0 +1,5 @@ +%h1 New cms_page + += render 'form' + += link_to 'Back', cms_pages_path diff --git a/app/views/cms/pages/show.html.haml b/app/views/cms/pages/show.html.haml new file mode 100644 index 0000000..16985f5 --- /dev/null +++ b/app/views/cms/pages/show.html.haml @@ -0,0 +1,6 @@ +%p#notice= notice + + += link_to 'Edit', edit_cms_page_path(@cms_page) +\| += link_to 'Back', cms_pages_path diff --git a/app/views/layouts/cms_layout.haml b/app/views/layouts/cms_layout.haml index c05ac6d..467fd65 100644 --- a/app/views/layouts/cms_layout.haml +++ b/app/views/layouts/cms_layout.haml @@ -23,10 +23,10 @@ %nav.hidden.md:block{"aria-label" => "Site Nav"} %ul.flex.items-center.gap-6.text-sm %li - %a.text-gray-500.transition{:class => "hover:text-gray-500/75", :href => "/cms/page/"} + %a.text-gray-500.transition{:class => "hover:text-gray-500/75", :href => cms_pages_path} Pages %li - %a.text-gray-500.transition{:class => "hover:text-gray-500/75", :href => "/cms/image/"} + %a.text-gray-500.transition{:class => "hover:text-gray-500/75", :href => cms_images_path} Images %li %a.text-gray-500.transition{:class => "hover:text-gray-500/75", :href => "/"} diff --git a/config/routes.rb b/config/routes.rb index 08ef3ff..66b5cbc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,8 +2,7 @@ Rails.application.routes.draw do namespace :cms do resources :pages - resources :image - resources :page + resources :images end get 'pages/:id' , to: 'high_voltage/pages#show', id: 'index'