plugin formtastic qi_image_select

This commit is contained in:
Nicolas Bally 2011-07-08 17:33:53 +02:00
parent aec1b53c84
commit a6d45ed58b
6 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1 @@
Copyright (c) 2011 Nicolas Bally

11
vendor/plugins/qi_select_image/Rakefile vendored Normal file
View File

@ -0,0 +1,11 @@
require 'rake'
require 'spec/rake/spectask'
desc 'Default: run all specs.'
task :default => :spec
desc 'Run all specs'
Spec::Rake::SpecTask.new(:spec) do |t|
t.spec_opts = ['--colour --format progress --loadby mtime --reverse']
t.spec_files = FileList['spec/**/*_spec.rb']
end

View File

@ -0,0 +1,6 @@
# -*- encoding : utf-8 -*-
if Object.const_defined?("Formtastic")
require 'qi_image_select'
Formtastic::SemanticFormBuilder.send(:include, Formtastic::QiImageSelect)
end

View File

@ -0,0 +1,54 @@
module Formtastic
module QiImageSelect
def self.included(base)
base.send(:extend, ClassMethods)
end
module ClassMethods
@@image_preview_sizes = [ :preview, :thumbnail, :thumb, :small ]
def image_preview_sizes
@@image_preview_sizes
end
def image_preview_sizes=(value)
@@image_preview_sizes = value
end
end
protected
def qi_image_select_input(method, options)
r = rand(1000000000000000000000000000)
html_options = options.delete(:input_html) || {}
self.label(method, options_for_label(options)) +
template.content_tag(:fieldset, self.manager_select_link(method, options, r) + template.tag(:br) + self.image_preview(method, options, r) + self.send(:hidden_field, method, html_options.merge!(:id => "input_"+r.to_s)))
end
def manager_select_link(method, options, r)
template.content_tag(:a, "Modifier cette image", :href => "#", :onclick => "select_image_from_manager('"+r.to_s+"');return false;")
end
def image_preview(method, options,r)
if object.send("#{method}?")
template.content_tag(:span, template.image_tag(object.image_file.file.large.medium.small.thumb.url, :id => "img_"+r.to_s), :class => "preview ")
else
template.content_tag(:span, template.image_tag("", :id => "img_"+r.to_s), :class => "preview ")
end
end
end
end

View File

@ -0,0 +1,7 @@
# -*- encoding : utf-8 -*-
begin
require File.dirname(__FILE__) + '/../../../../spec/spec_helper'
rescue LoadError
puts "You need to install rspec in your base app"
exit
end

View File

@ -0,0 +1,2 @@
# -*- encoding : utf-8 -*-
require File.dirname(__FILE__) + '/spec_helper.rb'