From 45541938b947b5eff01d5a5c55e152634ba90c7d Mon Sep 17 00:00:00 2001 From: Torsten Date: Fri, 25 Nov 2022 13:10:11 +0200 Subject: [PATCH] cms base controller and namespace --- app/controllers/cms/cms_controller.rb | 6 +++ app/controllers/cms/image_controller.rb | 2 +- app/helpers/cms/cms_helper.rb | 2 + app/views/layouts/cms_layout.haml | 55 +++++++++++++++++++++++++ config/routes.rb | 1 + spec/helpers/cms/cms_helper_spec.rb | 15 +++++++ spec/requests/cms/cms_spec.rb | 7 ++++ 7 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 app/controllers/cms/cms_controller.rb create mode 100644 app/helpers/cms/cms_helper.rb create mode 100644 app/views/layouts/cms_layout.haml create mode 100644 spec/helpers/cms/cms_helper_spec.rb create mode 100644 spec/requests/cms/cms_spec.rb diff --git a/app/controllers/cms/cms_controller.rb b/app/controllers/cms/cms_controller.rb new file mode 100644 index 0000000..5fa1a59 --- /dev/null +++ b/app/controllers/cms/cms_controller.rb @@ -0,0 +1,6 @@ +module Cms + class CmsController < ApplicationController + layout 'cms_layout' + + end +end diff --git a/app/controllers/cms/image_controller.rb b/app/controllers/cms/image_controller.rb index ef35ee6..e58734a 100644 --- a/app/controllers/cms/image_controller.rb +++ b/app/controllers/cms/image_controller.rb @@ -1,6 +1,6 @@ module Cms - class ImageController < ApplicationController + class ImageController < CmsController @@root = "app/assets/images/cms/" @@files = Set.new Dir.new(Rails.root + @@root).children diff --git a/app/helpers/cms/cms_helper.rb b/app/helpers/cms/cms_helper.rb new file mode 100644 index 0000000..7c1091f --- /dev/null +++ b/app/helpers/cms/cms_helper.rb @@ -0,0 +1,2 @@ +module Cms::CmsHelper +end diff --git a/app/views/layouts/cms_layout.haml b/app/views/layouts/cms_layout.haml new file mode 100644 index 0000000..c05ac6d --- /dev/null +++ b/app/views/layouts/cms_layout.haml @@ -0,0 +1,55 @@ +!!! +%html + %head + %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/ + %title Gateway + %meta{:content => "width=device-width,initial-scale=1", :name => "viewport"}/ + = csrf_meta_tags + = csp_meta_tag + %link{:href => "https://cdn.jsdelivr.net/npm/tw-elements/dist/css/index.min.css", :rel => "stylesheet"} + = stylesheet_link_tag "application" + = stylesheet_link_tag "tailwind" + = javascript_importmap_tags + %body + %header.bg-white{"aria-label" => "Site Header"} + .mx-auto.max-w-screen-xl.px-4.sm:px-6.lg:px-8 + .flex.h-16.items-center.justify-between + .flex-1.md:flex.md:items-center.md:gap-12 + %a.block.text-teal-600{:href => "/"} + %span.sr-only Home + %svg.h-8{:fill => "none", :viewbox => "0 0 28 24", :xmlns => "http://www.w3.org/2000/svg"} + %path{:d => "M0.41 10.3847C1.14777 7.4194 2.85643 4.7861 5.2639 2.90424C7.6714 1.02234 10.6393 0 13.695 0C16.7507 0 19.7186 1.02234 22.1261 2.90424C24.5336 4.7861 26.2422 7.4194 26.98 10.3847H25.78C23.7557 10.3549 21.7729 10.9599 20.11 12.1147C20.014 12.1842 19.9138 12.2477 19.81 12.3047H19.67C19.5662 12.2477 19.466 12.1842 19.37 12.1147C17.6924 10.9866 15.7166 10.3841 13.695 10.3841C11.6734 10.3841 9.6976 10.9866 8.02 12.1147C7.924 12.1842 7.8238 12.2477 7.72 12.3047H7.58C7.4762 12.2477 7.376 12.1842 7.28 12.1147C5.6171 10.9599 3.6343 10.3549 1.61 10.3847H0.41ZM23.62 16.6547C24.236 16.175 24.9995 15.924 25.78 15.9447H27.39V12.7347H25.78C24.4052 12.7181 23.0619 13.146 21.95 13.9547C21.3243 14.416 20.5674 14.6649 19.79 14.6649C19.0126 14.6649 18.2557 14.416 17.63 13.9547C16.4899 13.1611 15.1341 12.7356 13.745 12.7356C12.3559 12.7356 11.0001 13.1611 9.86 13.9547C9.2343 14.416 8.4774 14.6649 7.7 14.6649C6.9226 14.6649 6.1657 14.416 5.54 13.9547C4.4144 13.1356 3.0518 12.7072 1.66 12.7347H0V15.9447H1.61C2.39051 15.924 3.154 16.175 3.77 16.6547C4.908 17.4489 6.2623 17.8747 7.65 17.8747C9.0377 17.8747 10.392 17.4489 11.53 16.6547C12.1468 16.1765 12.9097 15.9257 13.69 15.9447C14.4708 15.9223 15.2348 16.1735 15.85 16.6547C16.9901 17.4484 18.3459 17.8738 19.735 17.8738C21.1241 17.8738 22.4799 17.4484 23.62 16.6547ZM23.62 22.3947C24.236 21.915 24.9995 21.664 25.78 21.6847H27.39V18.4747H25.78C24.4052 18.4581 23.0619 18.886 21.95 19.6947C21.3243 20.156 20.5674 20.4049 19.79 20.4049C19.0126 20.4049 18.2557 20.156 17.63 19.6947C16.4899 18.9011 15.1341 18.4757 13.745 18.4757C12.3559 18.4757 11.0001 18.9011 9.86 19.6947C9.2343 20.156 8.4774 20.4049 7.7 20.4049C6.9226 20.4049 6.1657 20.156 5.54 19.6947C4.4144 18.8757 3.0518 18.4472 1.66 18.4747H0V21.6847H1.61C2.39051 21.664 3.154 21.915 3.77 22.3947C4.908 23.1889 6.2623 23.6147 7.65 23.6147C9.0377 23.6147 10.392 23.1889 11.53 22.3947C12.1468 21.9165 12.9097 21.6657 13.69 21.6847C14.4708 21.6623 15.2348 21.9135 15.85 22.3947C16.9901 23.1884 18.3459 23.6138 19.735 23.6138C21.1241 23.6138 22.4799 23.1884 23.62 22.3947Z", :fill => "currentColor"} + .md:flex.md:items-center.md:gap-12 + %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/"} + Pages + %li + %a.text-gray-500.transition{:class => "hover:text-gray-500/75", :href => "/cms/image/"} + Images + %li + %a.text-gray-500.transition{:class => "hover:text-gray-500/75", :href => "/"} + History + %li + %a.text-gray-500.transition{:class => "hover:text-gray-500/75", :href => "/"} + Services + %li + %a.text-gray-500.transition{:class => "hover:text-gray-500/75", :href => "/"} + Projects + %li + %a.text-gray-500.transition{:class => "hover:text-gray-500/75", :href => "/"} + Blog + .flex.items-center.gap-4 + .sm:flex.sm:gap-4 + %a.rounded-md.bg-teal-600.px-5.text-sm.font-medium.text-white.shadow{:class => "py-2.5", :href => "/"} + Login + .hidden.sm:flex + %a.rounded-md.bg-gray-100.px-5.text-sm.font-medium.text-teal-600{:class => "py-2.5", :href => "/"} + Register + .block.md:hidden + %button.rounded.bg-gray-100.p-2.text-gray-600.transition{:class => "hover:text-gray-600/75"} + %svg.h-5.w-5{:fill => "none", :stroke => "currentColor", "stroke-width" => "2", :viewbox => "0 0 24 24", :xmlns => "http://www.w3.org/2000/svg"} + %path{:d => "M4 6h16M4 12h16M4 18h16", "stroke-linecap" => "round", "stroke-linejoin" => "round"} + + = yield diff --git a/config/routes.rb b/config/routes.rb index 19897f1..62afd87 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,6 +2,7 @@ Rails.application.routes.draw do namespace :cms do resources :image + resources :page end get 'pages/:id' , to: 'high_voltage/pages#show', id: 'index' diff --git a/spec/helpers/cms/cms_helper_spec.rb b/spec/helpers/cms/cms_helper_spec.rb new file mode 100644 index 0000000..9d8a280 --- /dev/null +++ b/spec/helpers/cms/cms_helper_spec.rb @@ -0,0 +1,15 @@ +require 'rails_helper' + +# Specs in this file have access to a helper object that includes +# the Cms::CmsHelper. For example: +# +# describe Cms::CmsHelper do +# describe "string concat" do +# it "concats two strings with spaces" do +# expect(helper.concat_strings("this","that")).to eq("this that") +# end +# end +# end +RSpec.describe Cms::CmsHelper, type: :helper do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/requests/cms/cms_spec.rb b/spec/requests/cms/cms_spec.rb new file mode 100644 index 0000000..911b704 --- /dev/null +++ b/spec/requests/cms/cms_spec.rb @@ -0,0 +1,7 @@ +require 'rails_helper' + +RSpec.describe "Cms::Cms", type: :request do + describe "GET /index" do + pending "add some examples (or delete) #{__FILE__}" + end +end