refinerycms-images 1.0.11 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/refinery/admin/images_controller.rb +110 -0
- data/app/helpers/refinery/admin/images_helper.rb +24 -0
- data/app/models/refinery/image.rb +96 -0
- data/app/views/refinery/admin/images/_actions.html.erb +15 -0
- data/app/views/{admin → refinery/admin}/images/_existing_image.html.erb +13 -26
- data/app/views/{admin → refinery/admin}/images/_form.html.erb +11 -15
- data/app/views/{admin → refinery/admin}/images/_grid_view.html.erb +7 -5
- data/app/views/refinery/admin/images/_images.html.erb +2 -0
- data/app/views/{admin → refinery/admin}/images/_list_view.html.erb +0 -0
- data/app/views/{admin → refinery/admin}/images/_list_view_image.html.erb +7 -5
- data/app/views/refinery/admin/images/_records.html.erb +18 -0
- data/app/views/refinery/admin/images/edit.html.erb +1 -0
- data/app/views/refinery/admin/images/index.html.erb +6 -0
- data/app/views/{admin → refinery/admin}/images/insert.html.erb +10 -13
- data/app/views/refinery/admin/images/new.html.erb +1 -0
- data/config/locales/bg.yml +37 -36
- data/config/locales/cs.yml +37 -36
- data/config/locales/da.yml +37 -36
- data/config/locales/de.yml +37 -36
- data/config/locales/el.yml +37 -36
- data/config/locales/en.yml +37 -36
- data/config/locales/es.yml +38 -37
- data/config/locales/fi.yml +37 -36
- data/config/locales/fr.yml +37 -36
- data/config/locales/it.yml +47 -45
- data/config/locales/ja.yml +44 -0
- data/config/locales/ko.yml +44 -0
- data/config/locales/lt.yml +37 -36
- data/config/locales/lv.yml +37 -36
- data/config/locales/nb.yml +37 -37
- data/config/locales/nl.yml +36 -35
- data/config/locales/pl.yml +38 -37
- data/config/locales/pt-BR.yml +38 -37
- data/config/locales/rs.yml +37 -37
- data/config/locales/ru.yml +37 -36
- data/config/locales/sk.yml +37 -36
- data/config/locales/sl.yml +36 -35
- data/config/locales/sv.yml +37 -36
- data/config/locales/vi.yml +37 -36
- data/config/locales/zh-CN.yml +37 -36
- data/config/locales/zh-TW.yml +37 -36
- data/config/routes.rb +4 -7
- data/db/migrate/20100913234707_create_refinerycms_images_schema.rb +10 -18
- data/lib/generators/refinery/images/images_generator.rb +10 -0
- data/lib/generators/refinery/images/templates/config/initializers/refinery/images.rb.erb +41 -0
- data/lib/refinery/images.rb +25 -0
- data/lib/refinery/images/configuration.rb +54 -0
- data/lib/refinery/images/dragonfly.rb +54 -0
- data/lib/refinery/images/engine.rb +38 -0
- data/lib/refinery/images/validators.rb +7 -0
- data/lib/refinery/images/validators/image_size_validator.rb +19 -0
- data/lib/refinerycms-images.rb +1 -76
- data/refinerycms-images.gemspec +14 -91
- data/spec/factories/image.rb +5 -0
- data/{features/uploads → spec/fixtures}/beach.jpeg +0 -0
- data/spec/fixtures/fathead.png +0 -0
- data/spec/fixtures/image-with-dashes.jpg +0 -0
- data/spec/lib/generators/refinery/images/images_generator_spec.rb +29 -0
- data/spec/models/refinery/image_spec.rb +158 -0
- data/spec/requests/refinery/admin/images_spec.rb +103 -0
- metadata +116 -106
- data/app/controllers/admin/images_controller.rb +0 -106
- data/app/helpers/admin/images_helper.rb +0 -27
- data/app/models/image.rb +0 -116
- data/app/views/admin/images/_actions.html.erb +0 -16
- data/app/views/admin/images/_images.html.erb +0 -2
- data/app/views/admin/images/_records.html.erb +0 -18
- data/app/views/admin/images/edit.html.erb +0 -1
- data/app/views/admin/images/index.html.erb +0 -6
- data/app/views/admin/images/new.html.erb +0 -1
- data/config/locales/jp.yml +0 -43
- data/config/locales/lolcat.yml +0 -43
- data/features/manage_images.feature +0 -49
- data/features/step_definitions/image_steps.rb +0 -40
- data/features/support/factories.rb +0 -7
- data/features/support/paths.rb +0 -17
- data/features/uploads/id-rather-be-here.jpg +0 -0
- data/features/uploads/refinery_is_awesome.txt +0 -1
- data/lib/gemspec.rb +0 -38
- data/lib/generators/refinerycms_images_generator.rb +0 -8
- data/spec/models/image_spec.rb +0 -115
- data/spec/uploads/beach.jpeg +0 -0
@@ -0,0 +1,110 @@
|
|
1
|
+
module ::Refinery
|
2
|
+
module Admin
|
3
|
+
class ImagesController < ::Refinery::AdminController
|
4
|
+
|
5
|
+
crudify :'refinery/image',
|
6
|
+
:order => "created_at DESC",
|
7
|
+
:sortable => false,
|
8
|
+
:xhr_paging => true
|
9
|
+
|
10
|
+
before_filter :change_list_mode_if_specified, :init_dialog
|
11
|
+
|
12
|
+
def new
|
13
|
+
@image = ::Refinery::Image.new if @image.nil?
|
14
|
+
|
15
|
+
@url_override = refinery.admin_images_path(:dialog => from_dialog?)
|
16
|
+
end
|
17
|
+
|
18
|
+
# This renders the image insert dialog
|
19
|
+
def insert
|
20
|
+
self.new if @image.nil?
|
21
|
+
|
22
|
+
@url_override = refinery.admin_images_path(request.query_parameters.merge(:insert => true))
|
23
|
+
|
24
|
+
if params[:conditions].present?
|
25
|
+
extra_condition = params[:conditions].split(',')
|
26
|
+
|
27
|
+
extra_condition[1] = true if extra_condition[1] == "true"
|
28
|
+
extra_condition[1] = false if extra_condition[1] == "false"
|
29
|
+
extra_condition[1] = nil if extra_condition[1] == "nil"
|
30
|
+
end
|
31
|
+
|
32
|
+
find_all_images(({extra_condition[0].to_sym => extra_condition[1]} if extra_condition.present?))
|
33
|
+
search_all_images if searching?
|
34
|
+
|
35
|
+
paginate_images
|
36
|
+
|
37
|
+
render :action => "insert"
|
38
|
+
end
|
39
|
+
|
40
|
+
def create
|
41
|
+
@images = []
|
42
|
+
begin
|
43
|
+
unless params[:image].present? and params[:image][:image].is_a?(Array)
|
44
|
+
@images << (@image = ::Refinery::Image.create(params[:image]))
|
45
|
+
else
|
46
|
+
params[:image][:image].each do |image|
|
47
|
+
@images << (@image = ::Refinery::Image.create(:image => image))
|
48
|
+
end
|
49
|
+
end
|
50
|
+
rescue Dragonfly::FunctionManager::UnableToHandle
|
51
|
+
logger.warn($!.message)
|
52
|
+
@image = ::Refinery::Image.new
|
53
|
+
end
|
54
|
+
|
55
|
+
unless params[:insert]
|
56
|
+
if @images.all?(&:valid?)
|
57
|
+
flash.notice = t('created', :scope => 'refinery.crudify', :what => "'#{@images.map(&:title).join("', '")}'")
|
58
|
+
if from_dialog?
|
59
|
+
@dialog_successful = true
|
60
|
+
render :nothing => true, :layout => true
|
61
|
+
else
|
62
|
+
redirect_to refinery.admin_images_path
|
63
|
+
end
|
64
|
+
else
|
65
|
+
self.new # important for dialogs
|
66
|
+
render :action => 'new'
|
67
|
+
end
|
68
|
+
else
|
69
|
+
# if all uploaded images are ok redirect page back to dialog, else show current page with error
|
70
|
+
if @images.all?(&:valid?)
|
71
|
+
@image_id = @image.id if @image.persisted?
|
72
|
+
@image = nil
|
73
|
+
|
74
|
+
self.insert
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
protected
|
80
|
+
|
81
|
+
def init_dialog
|
82
|
+
@app_dialog = params[:app_dialog].present?
|
83
|
+
@field = params[:field]
|
84
|
+
@update_image = params[:update_image]
|
85
|
+
@thumbnail = params[:thumbnail]
|
86
|
+
@callback = params[:callback]
|
87
|
+
@conditions = params[:conditions]
|
88
|
+
end
|
89
|
+
|
90
|
+
def change_list_mode_if_specified
|
91
|
+
if action_name == 'index' && params[:view].present? && Refinery::Images.image_views.include?(params[:view].to_sym)
|
92
|
+
Refinery::Images.preferred_image_view = params[:view]
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def paginate_images
|
97
|
+
@images = @images.paginate(:page => params[:page], :per_page => Image.per_page(from_dialog?, !@app_dialog))
|
98
|
+
end
|
99
|
+
|
100
|
+
def restrict_controller
|
101
|
+
super unless action_name == 'insert'
|
102
|
+
end
|
103
|
+
|
104
|
+
def store_current_location!
|
105
|
+
super unless action_name == 'insert' or from_dialog?
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Admin
|
3
|
+
module ImagesHelper
|
4
|
+
def other_image_views
|
5
|
+
Refinery::Images.image_views.reject { |image_view|
|
6
|
+
image_view.to_s == Refinery::Images.preferred_image_view.to_s
|
7
|
+
}
|
8
|
+
end
|
9
|
+
|
10
|
+
def thumbnail_urls(image)
|
11
|
+
thumbnail_urls = {
|
12
|
+
:"data-original" => asset_paths.compute_public_path(image.url, ''),
|
13
|
+
:"data-grid" => asset_paths.compute_public_path(image.thumbnail('135x135#c').url, '')
|
14
|
+
}
|
15
|
+
|
16
|
+
Refinery::Images.user_image_sizes.sort_by{|key,geometry| geometry}.each do |size, pixels|
|
17
|
+
thumbnail_urls[:"data-#{size.to_s.parameterize}"] = asset_paths.compute_public_path(image.thumbnail(pixels).url, '')
|
18
|
+
end
|
19
|
+
|
20
|
+
thumbnail_urls
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
module Refinery
|
2
|
+
class Image < Refinery::Core::BaseModel
|
3
|
+
include Images::Validators
|
4
|
+
|
5
|
+
image_accessor :image
|
6
|
+
|
7
|
+
validates :image, :presence => true
|
8
|
+
validates_with ImageSizeValidator
|
9
|
+
validates_property :mime_type, :of => :image, :in => %w(image/jpeg image/png image/gif image/tiff),
|
10
|
+
:message => :incorrect_format
|
11
|
+
|
12
|
+
# Docs for acts_as_indexed http://github.com/dougal/acts_as_indexed
|
13
|
+
acts_as_indexed :fields => [:title]
|
14
|
+
|
15
|
+
# allows Mass-Assignment
|
16
|
+
attr_accessible :id, :image, :image_size
|
17
|
+
|
18
|
+
delegate :size, :mime_type, :url, :width, :height, :to => :image
|
19
|
+
|
20
|
+
class << self
|
21
|
+
# How many images per page should be displayed?
|
22
|
+
def per_page(dialog = false, has_size_options = false)
|
23
|
+
if dialog
|
24
|
+
unless has_size_options
|
25
|
+
Images.pages_per_dialog
|
26
|
+
else
|
27
|
+
Images.pages_per_dialog_that_have_size_options
|
28
|
+
end
|
29
|
+
else
|
30
|
+
Images.pages_per_admin_index
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Get a thumbnail job object given a geometry.
|
36
|
+
def thumbnail(geometry = nil)
|
37
|
+
if geometry.is_a?(Symbol) and Refinery::Images.user_image_sizes.keys.include?(geometry)
|
38
|
+
geometry = Refinery::Images.user_image_sizes[geometry]
|
39
|
+
end
|
40
|
+
|
41
|
+
if geometry.present? && !geometry.is_a?(Symbol)
|
42
|
+
image.thumb(geometry)
|
43
|
+
else
|
44
|
+
image
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# Intelligently works out dimensions for a thumbnail of this image based on the Dragonfly geometry string.
|
49
|
+
def thumbnail_dimensions(geometry)
|
50
|
+
geometry = geometry.to_s
|
51
|
+
width = original_width = self.image_width.to_f
|
52
|
+
height = original_height = self.image_height.to_f
|
53
|
+
geometry_width, geometry_height = geometry.to_s.split(%r{\#{1,2}|\+|>|!|x}im)[0..1].map(&:to_f)
|
54
|
+
if (original_width * original_height > 0) && geometry =~ ::Dragonfly::ImageMagick::Processor::THUMB_GEOMETRY
|
55
|
+
if geometry =~ ::Dragonfly::ImageMagick::Processor::RESIZE_GEOMETRY
|
56
|
+
if geometry !~ %r{\d+x\d+>} || (geometry =~ %r{\d+x\d+>} && (width > geometry_width.to_f || height > geometry_height.to_f))
|
57
|
+
# Try scaling with width factor first. (wf = width factor)
|
58
|
+
wf_width = (original_width * (geometry_width / width)).ceil
|
59
|
+
wf_height = (original_height * (geometry_width / width)).ceil
|
60
|
+
|
61
|
+
# Scale with height factor (hf = height factor)
|
62
|
+
hf_width = (original_width * (geometry_height / height)).ceil
|
63
|
+
hf_height = (original_height * (geometry_height / height)).ceil
|
64
|
+
|
65
|
+
# Take the highest value that doesn't exceed either axis limit.
|
66
|
+
use_wf = wf_width <= geometry_width && wf_height <= geometry_height
|
67
|
+
if use_wf && hf_width <= geometry_width && hf_height <= geometry_height
|
68
|
+
use_wf = wf_width * wf_height > hf_width * hf_height
|
69
|
+
end
|
70
|
+
|
71
|
+
if use_wf
|
72
|
+
width = wf_width
|
73
|
+
height = wf_height
|
74
|
+
else
|
75
|
+
width = hf_width
|
76
|
+
height = hf_height
|
77
|
+
end
|
78
|
+
end
|
79
|
+
else
|
80
|
+
# cropping
|
81
|
+
width = geometry_width
|
82
|
+
height = geometry_height
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
{ :width => width.to_i, :height => height.to_i }
|
87
|
+
end
|
88
|
+
|
89
|
+
# Returns a titleized version of the filename
|
90
|
+
# my_file.jpg returns My File
|
91
|
+
def title
|
92
|
+
CGI::unescape(image_name.to_s).gsub(/\.\w+$/, '').titleize
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<ul>
|
2
|
+
<li>
|
3
|
+
<%= render '/refinery/admin/search', :url => refinery.admin_images_path %>
|
4
|
+
</li>
|
5
|
+
<li>
|
6
|
+
<%= link_to t('.create_new_image'), refinery.new_admin_image_path(:dialog => true), :class => "add_icon" %>
|
7
|
+
</li>
|
8
|
+
<% other_image_views.each do |image_view| %>
|
9
|
+
<li>
|
10
|
+
<%= link_to t('switch_to', :scope => 'refinery.admin.images.index.view', :view_name => t("#{image_view}", :scope => 'refinery.admin.images.index.view')),
|
11
|
+
refinery.admin_images_path(:view => image_view, :page => params[:page]),
|
12
|
+
:class => "reorder_icon" %>
|
13
|
+
</li>
|
14
|
+
<% end %>
|
15
|
+
</ul>
|
@@ -1,36 +1,26 @@
|
|
1
1
|
<div id='existing_image_area' class='dialog_area' <%= "style='display:none;'" if @image.errors.any? %>>
|
2
|
-
<%= render
|
3
|
-
:locals => {:url => insert_admin_images_path(params.dup.delete(:image))} %>
|
2
|
+
<%= render '/refinery/admin/search', :url => refinery.insert_admin_images_path(params.dup.except('image')) %>
|
4
3
|
<input type='hidden' name='selected_image' id='selected_image' />
|
5
4
|
<div id='existing_image_area_content' class='clearfix'>
|
6
5
|
<% if @images.any? %>
|
7
6
|
<ul>
|
8
|
-
<%
|
9
|
-
@images.each do |image|
|
10
|
-
thumbnail_urls = {
|
11
|
-
:"data-original" => compute_public_path(image.url, ''),
|
12
|
-
:"data-grid" => compute_public_path(image.thumbnail('135x135#c').url, '')
|
13
|
-
}
|
14
|
-
::Image.user_image_sizes.sort_by{|key,geometry| geometry}.each do |size, pixels|
|
15
|
-
thumbnail_urls[:"data-#{size.to_s.parameterize}"] = compute_public_path(image.thumbnail(pixels).url, '')
|
16
|
-
end
|
17
|
-
-%>
|
7
|
+
<% @images.each do |image| -%>
|
18
8
|
<li<%= " class='selected'" if @image_id == image.id %>>
|
19
9
|
<%= image_fu(image, '106x106#c', {
|
20
10
|
:alt => image.title,
|
21
11
|
:title => image.title,
|
22
12
|
:id => "image_#{image.id}",
|
23
13
|
:'data-id' => image.id
|
24
|
-
}.merge(thumbnail_urls)) -%>
|
14
|
+
}.merge(thumbnail_urls(image))) -%>
|
25
15
|
</li>
|
26
16
|
<% end -%>
|
27
17
|
</ul>
|
28
18
|
<% elsif searching? %>
|
29
|
-
<%= t('no_results', :scope => '
|
19
|
+
<%= t('no_results', :scope => 'refinery.admin.search') %>
|
30
20
|
<% end %>
|
31
21
|
</div>
|
32
22
|
|
33
|
-
<%=
|
23
|
+
<%= will_paginate @images, :params => params.dup %>
|
34
24
|
|
35
25
|
<% unless @app_dialog or @images.empty? %>
|
36
26
|
<div id='existing_image_size_area' class='clearfix'>
|
@@ -43,7 +33,7 @@
|
|
43
33
|
</p>
|
44
34
|
<ul>
|
45
35
|
<%
|
46
|
-
::
|
36
|
+
Refinery::Images.user_image_sizes.sort_by { |key, geometry| geometry }.each_with_index do |(size, pixels), index|
|
47
37
|
safe_pixels = pixels.to_s.gsub(/[<>=]/, '')
|
48
38
|
# (parndt): ' selected' if size.to_s == 'medium' is not very generic, but I
|
49
39
|
# can't think of a decent way of making it so for even sets (e.g. 2,4,6,8,etc image sizes).
|
@@ -60,14 +50,11 @@
|
|
60
50
|
</div>
|
61
51
|
<% end %>
|
62
52
|
|
63
|
-
<%= render
|
64
|
-
:
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
:hide_delete => true,
|
71
|
-
:cancel_title => nil
|
72
|
-
} if @app_dialog or @images.any? or searching? %>
|
53
|
+
<%= render '/refinery/admin/form_actions', :f => nil,
|
54
|
+
:cancel_url => '',
|
55
|
+
:submit_button_text => t('.button_text'),
|
56
|
+
:hide_submit => @images.empty?,
|
57
|
+
:hide_cancel => false,
|
58
|
+
:hide_delete => true,
|
59
|
+
:cancel_title => nil if @app_dialog or @images.any? or searching? %>
|
73
60
|
</div>
|
@@ -1,10 +1,9 @@
|
|
1
|
-
<%= form_for
|
1
|
+
<%= form_for @image, :url => (@url_override or @image.persisted? ? refinery.admin_image_path(@image) : refinery.admin_images_path),
|
2
|
+
:html => { :multipart => true } do |f| %>
|
2
3
|
|
3
|
-
<%= render
|
4
|
-
:
|
5
|
-
|
6
|
-
:include_object_name => false
|
7
|
-
} %>
|
4
|
+
<%= render '/refinery/admin/error_messages',
|
5
|
+
:object => @image,
|
6
|
+
:include_object_name => false %>
|
8
7
|
|
9
8
|
<div class='field'>
|
10
9
|
<% if action_name =~ /(edit)|(update)/ %>
|
@@ -22,19 +21,16 @@
|
|
22
21
|
</div>
|
23
22
|
|
24
23
|
<div class='field'>
|
25
|
-
<label><%= t('.maximum_image_size', :
|
24
|
+
<label><%= t('.maximum_image_size', :bytes => number_to_human_size(Refinery::Images.max_image_size)) %></label>
|
26
25
|
</div>
|
27
26
|
|
28
27
|
<input type='hidden' name='wymeditor' value='<%= params[:wymeditor] %>'>
|
29
28
|
|
30
|
-
<%= render
|
31
|
-
:
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
:delete_title => t('delete', :scope => 'admin.images'),
|
36
|
-
:delete_confirmation => t('message', :scope => 'shared.admin.delete', :title => @image.image_name)
|
37
|
-
} -%>
|
29
|
+
<%= render '/refinery/admin/form_actions', :f => f,
|
30
|
+
:continue_editing => false,
|
31
|
+
:hide_cancel => (@app_dialog or action_name == "insert" or from_dialog?),
|
32
|
+
:delete_title => t('delete', :scope => 'refinery.admin.images'),
|
33
|
+
:delete_confirmation => t('message', :scope => 'refinery.admin.delete', :title => @image.image_name) -%>
|
38
34
|
|
39
35
|
<% if @app_dialog %>
|
40
36
|
<input type='hidden' name='app_dialog' value='<%= @app_dialog %>' />
|
@@ -6,12 +6,14 @@
|
|
6
6
|
<%= link_to refinery_icon_tag('eye.png'), image.url,
|
7
7
|
:target => "_blank",
|
8
8
|
:title => t('.view_live_html') %>
|
9
|
-
<%= link_to refinery_icon_tag('application_edit.png'),
|
10
|
-
|
11
|
-
|
9
|
+
<%= link_to refinery_icon_tag('application_edit.png'),
|
10
|
+
refinery.edit_admin_image_path(image),
|
11
|
+
:title => t('edit', :scope => 'refinery.admin.images') %>
|
12
|
+
<%= link_to refinery_icon_tag('delete.png'),
|
13
|
+
refinery.admin_image_path(image),
|
12
14
|
:class => "cancel confirm-delete",
|
13
|
-
:title => t('delete', :scope => 'admin.images'),
|
14
|
-
:confirm => t('message', :scope => '
|
15
|
+
:title => t('delete', :scope => 'refinery.admin.images'),
|
16
|
+
:confirm => t('message', :scope => 'refinery.admin.delete', :title => image.title),
|
15
17
|
:method => :delete %>
|
16
18
|
</span>
|
17
19
|
</li>
|
File without changes
|
@@ -6,12 +6,14 @@
|
|
6
6
|
<%= link_to refinery_icon_tag('eye.png'), list_view_image.url,
|
7
7
|
:target => "_blank",
|
8
8
|
:title => "#{image_fu list_view_image, '96x96#c', :size => '96x96'}" %>
|
9
|
-
<%= link_to refinery_icon_tag('application_edit.png'),
|
10
|
-
|
11
|
-
|
9
|
+
<%= link_to refinery_icon_tag('application_edit.png'),
|
10
|
+
refinery.edit_admin_image_path(list_view_image),
|
11
|
+
:title => t('edit', :scope => 'refinery.admin.images') %>
|
12
|
+
<%= link_to refinery_icon_tag('delete.png'),
|
13
|
+
refinery.admin_image_path(list_view_image),
|
12
14
|
:class => "cancel confirm-delete",
|
13
|
-
:title => t('delete', :scope => 'admin.images'),
|
14
|
-
:confirm => t('message', :scope => '
|
15
|
+
:title => t('delete', :scope => 'refinery.admin.images'),
|
16
|
+
:confirm => t('message', :scope => 'refinery.admin.delete', :title => list_view_image.title),
|
15
17
|
:method => :delete %>
|
16
18
|
</span>
|
17
19
|
</li>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% if searching? %>
|
2
|
+
<h2><%= t('results_for', :scope => 'refinery.admin.search', :query => params[:search]) %></h2>
|
3
|
+
<% end %>
|
4
|
+
<div class='pagination_container'>
|
5
|
+
<% if @images.any? %>
|
6
|
+
<%= render 'images' %>
|
7
|
+
<% else %>
|
8
|
+
<p>
|
9
|
+
<% unless searching? %>
|
10
|
+
<strong>
|
11
|
+
<%= t('.no_images_yet') %>
|
12
|
+
</strong>
|
13
|
+
<% else %>
|
14
|
+
<%= t('no_results', :scope => 'refinery.admin.search') %>
|
15
|
+
<% end %>
|
16
|
+
</p>
|
17
|
+
<% end %>
|
18
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render 'form' %>
|
@@ -16,25 +16,22 @@
|
|
16
16
|
|
17
17
|
<div id='dialog_main'>
|
18
18
|
<% if any_images or user_can_modify_images %>
|
19
|
-
<%= render
|
19
|
+
<%= render 'existing_image' if any_images or searching? %>
|
20
20
|
|
21
21
|
<% if user_can_modify_images %>
|
22
22
|
<div id='upload_image_area' class='dialog_area'<%= " style='display:none;'" if any_images and (no_errors or searching?) %>>
|
23
|
-
<%= render
|
23
|
+
<%= render 'form', :insert => true %>
|
24
24
|
</div>
|
25
25
|
<% end %>
|
26
26
|
<% else %>
|
27
|
-
<% flash.now[:error] = t('no_images_yet', :scope => 'admin.images.records').split('.').first.html_safe + "." %>
|
28
|
-
<%= render
|
29
|
-
:
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
:cancel_button_text => t('close', :scope => 'shared.admin.form_actions'),
|
36
|
-
:cancel_title => nil
|
37
|
-
} %>
|
27
|
+
<% flash.now[:error] = t('no_images_yet', :scope => 'refinery.admin.images.records').split('.').first.html_safe + "." %>
|
28
|
+
<%= render '/refinery/admin/form_actions', :f => nil,
|
29
|
+
:cancel_url => '',
|
30
|
+
:hide_cancel => false,
|
31
|
+
:hide_delete => true,
|
32
|
+
:hide_submit => true,
|
33
|
+
:cancel_button_text => t('close', :scope => 'refinery.admin.form_actions'),
|
34
|
+
:cancel_title => nil %>
|
38
35
|
<% end %>
|
39
36
|
</div>
|
40
37
|
|