image copying
This commit is contained in:
parent
ee157a18d1
commit
3e9667470d
@ -1,8 +1,8 @@
|
||||
require "mini_magick"
|
||||
|
||||
module Merged
|
||||
|
||||
class ImagesController < MergedController
|
||||
before_action :set_image, only: %i[ update destroy show copy ]
|
||||
|
||||
def index
|
||||
@images = Image.all
|
||||
@ -19,13 +19,11 @@ module Merged
|
||||
end
|
||||
|
||||
def destroy
|
||||
@image = Image.find(params[:id])
|
||||
@image.destroy
|
||||
redirect_to :images , notice: "Image #{@image.name} deleted"
|
||||
end
|
||||
|
||||
def update
|
||||
@image = Image.find(params[:id])
|
||||
mini = MiniMagick::Image.new( @image.full_filename)
|
||||
if(params[:scale])
|
||||
message = "Image was scaled"
|
||||
@ -39,14 +37,20 @@ module Merged
|
||||
@image.init_file_data
|
||||
redirect_to image_path , notice: message
|
||||
end
|
||||
|
||||
def show
|
||||
@image = Image.find(params[:id])
|
||||
@sections = Section.where(image_id: params[:id].to_i)
|
||||
@cards = Card.where(image_id: params[:id].to_i)
|
||||
@used = ((@cards.length > 0) || (@sections.length > 0))
|
||||
@image_data = @image.attributes
|
||||
end
|
||||
|
||||
def copy
|
||||
image = @image.copy
|
||||
image.add_save(current_member.email)
|
||||
redirect_to image_path(image.id) , notice: "Image copied"
|
||||
end
|
||||
|
||||
def create
|
||||
image = Image.create_new(params['filename'] ,params['tags'], params['image_file'])
|
||||
image.add_save current_member.email
|
||||
@ -56,6 +60,9 @@ module Merged
|
||||
|
||||
private
|
||||
|
||||
def set_image
|
||||
@image = Image.find(params[:id] || params[:image_id])
|
||||
end
|
||||
def determine_redirect(image)
|
||||
if(params[:section_id])
|
||||
view_context.section_set_image_url(params[:section_id],image_id: image.id )
|
||||
|
@ -1,7 +1,6 @@
|
||||
module Merged
|
||||
class SectionsController < MergedController
|
||||
before_action :set_section , except: [:index ,:new]
|
||||
#, only: %i[ show edit update destroy set_image select_image]
|
||||
|
||||
def index
|
||||
@page = Page.find(params[:page_id])
|
||||
|
@ -1,4 +1,5 @@
|
||||
require "mini_magick"
|
||||
require "mini_magick"
|
||||
require "fileutils"
|
||||
|
||||
module Merged
|
||||
class Image < ActiveBase
|
||||
@ -15,13 +16,21 @@ module Merged
|
||||
ratio = self.ratio
|
||||
ratios = (1..9).collect{ |i| ((ratio * i) - (ratio * i).round(0)).abs }
|
||||
min , min_index = ratios.each_with_index.min
|
||||
[(ratio * (min_index + 1) ).to_i , (min_index + 1) ]
|
||||
[(ratio * (min_index + 1) ).round(0).to_i , (min_index + 1) ]
|
||||
end
|
||||
|
||||
def ratio
|
||||
self.width.to_f / self.height
|
||||
end
|
||||
|
||||
def copy()
|
||||
image = Image.new name: "#{name}_copy" , type: type , tags: (tags || "")
|
||||
Image.insert(image) # assigns next id
|
||||
FileUtils.cp full_filename , image.full_filename
|
||||
image.init_file_data
|
||||
image
|
||||
end
|
||||
|
||||
#save an io as new image. The filename is the id, type taken from io
|
||||
def self.create_new(name , tags, io)
|
||||
original , ending = io.original_filename.split("/").last.split(".")
|
||||
|
@ -9,7 +9,6 @@ Merged::Engine.routes.draw do
|
||||
|
||||
resources :pages , except: [:edit , :new] , shallow: true do
|
||||
resources :sections do
|
||||
get :select_image
|
||||
get :set_image
|
||||
get :select_template
|
||||
get :set_template
|
||||
@ -17,11 +16,12 @@ Merged::Engine.routes.draw do
|
||||
get :set_card_template
|
||||
get :move
|
||||
resources :cards do
|
||||
get :select_image
|
||||
get :set_image
|
||||
get :move
|
||||
end
|
||||
end
|
||||
end
|
||||
resources :images
|
||||
resources :images do
|
||||
get :copy
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user