From b853a1201b68b746c0b0f4dee753f749bad4d85d Mon Sep 17 00:00:00 2001 From: Torsten Date: Thu, 24 Nov 2022 22:28:56 +0200 Subject: [PATCH] first upload working (wip) --- app/controllers/cms/image_controller.rb | 16 +++++++++++++++- app/views/cms/image/index.haml | 6 +++++- app/views/cms/image/new.haml | 4 ++++ spec/helpers/image_helper_spec.rb | 15 +++++++++++++++ spec/requests/image_spec.rb | 7 +++++++ 5 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 app/views/cms/image/new.haml create mode 100644 spec/helpers/image_helper_spec.rb create mode 100644 spec/requests/image_spec.rb diff --git a/app/controllers/cms/image_controller.rb b/app/controllers/cms/image_controller.rb index 81470bf..ef35ee6 100644 --- a/app/controllers/cms/image_controller.rb +++ b/app/controllers/cms/image_controller.rb @@ -3,12 +3,26 @@ module Cms class ImageController < ApplicationController @@root = "app/assets/images/cms/" - @@files = Dir.new(Rails.root + @@root).children + @@files = Set.new Dir.new(Rails.root + @@root).children def index @files = files end + def new + end + + def create + io = params['image_file'] + ending = io.original_filename.split("/").last.split(".").last + filename = params['filename'] + "." + ending + File.open(Rails.root.join('app/assets/images/cms', filename), "wb") do |f| + f.write io.read + end + @@files << filename + redirect_to cms_image_index_path + end + private def files diff --git a/app/views/cms/image/index.haml b/app/views/cms/image/index.haml index 8cf6d9a..766ea56 100644 --- a/app/views/cms/image/index.haml +++ b/app/views/cms/image/index.haml @@ -1,3 +1,7 @@ +%section + %a.inline-block.rounded.border.border-indigo-600.bg-indigo-600.px-12.py-3.text-sm.font-medium.text-white.hover:bg-transparent.hover:text-indigo-600.focus:outline-none.focus:ring.active:text-indigo-500{:href => new_cms_image_path} + Add Image + .grid.grid-cols-6.gap-4.m-8 -@files.each do |file| .relative.block.border.border-gray-100 @@ -9,7 +13,7 @@ .p-6 %strong.inline-block.bg-yellow-400.px-3.py-1.text-xs.font-medium New - %h3.mt-4.text-lg.font-bold= file + %h3.mt-4.text-lg.font-bold= file.split(".").first %p.mt-2.text-sm.text-gray-700 $14.99 %button.mt-4.block.w-full.rounded-sm.bg-yellow-500.p-4.text-sm.font-medium{:type => "button"} Add to Cart diff --git a/app/views/cms/image/new.haml b/app/views/cms/image/new.haml new file mode 100644 index 0000000..2638c3d --- /dev/null +++ b/app/views/cms/image/new.haml @@ -0,0 +1,4 @@ += form_tag({action: :create}, multipart: true) do + = text_field_tag 'filename' + = file_field_tag 'image_file' + = submit_tag 'Submit' diff --git a/spec/helpers/image_helper_spec.rb b/spec/helpers/image_helper_spec.rb new file mode 100644 index 0000000..d8f3a93 --- /dev/null +++ b/spec/helpers/image_helper_spec.rb @@ -0,0 +1,15 @@ +require 'rails_helper' + +# Specs in this file have access to a helper object that includes +# the ImageHelper. For example: +# +# describe ImageHelper 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 ImageHelper, type: :helper do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/requests/image_spec.rb b/spec/requests/image_spec.rb new file mode 100644 index 0000000..090d0f0 --- /dev/null +++ b/spec/requests/image_spec.rb @@ -0,0 +1,7 @@ +require 'rails_helper' + +RSpec.describe "Images", type: :request do + describe "GET /index" do + pending "add some examples (or delete) #{__FILE__}" + end +end