Adding pictures to resources
This commit is contained in:
parent
8a31655fd3
commit
8425aaecd2
|
@ -1,17 +1,27 @@
|
||||||
class Resource < ActiveRecord::Base
|
class Resource < ActiveRecord::Base
|
||||||
attr_accessible :supercategory, :user_id, :resource_category_id, :name, :serial, :specs, :status, :donatable, :picture, :picture_file_name, :picture_content_type, :picture_file_size, :picture_updated_at, :notes, :estimated_value, :disposed_at, :modified_by
|
attr_accessible :supercategory, :user_id, :resource_category_id, :name, :serial, :specs, :status, :donatable,
|
||||||
|
:picture, :picture_file_name, :picture_content_type, :picture_file_size, :picture_updated_at,
|
||||||
|
:picture2, :picture2_file_name, :picture2_content_type, :picture2_file_size, :picture2_updated_at,
|
||||||
|
:picture3, :picture3_file_name, :picture3_content_type, :picture3_file_size, :picture3_updated_at,
|
||||||
|
:picture4, :picture4_file_name, :picture4_content_type, :picture4_file_size, :picture4_updated_at,
|
||||||
|
:notes, :estimated_value, :disposed_at, :modified_by
|
||||||
|
|
||||||
belongs_to :owner, :class_name => "ToolshareUser" #TODO: remove owner
|
belongs_to :owner, :class_name => "ToolshareUser" #TODO: remove owner
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
belongs_to :resource_category
|
belongs_to :resource_category
|
||||||
has_attached_file :picture, #TODO: move to local storage
|
|
||||||
:styles => { :medium => "300x300>",
|
PICTURE_OPTIONS = { :styles => { :medium => "300x300>",
|
||||||
:thumb => "100x100>",
|
:thumb => "100x100>",
|
||||||
:tiny => "50x50>"},
|
:tiny => "50x50>"},
|
||||||
:storage => :s3,
|
:storage => :s3,
|
||||||
:s3_credentials => Rails.root.join('config', 's3.yml'),
|
:s3_credentials => Rails.root.join('config', 's3.yml'),
|
||||||
:path => ":attachment/:id/:style.:extension",
|
:path => ":attachment/:id/:style.:extension",
|
||||||
:bucket => 'Toolshare'
|
:bucket => 'Toolshare' }
|
||||||
|
|
||||||
|
has_attached_file :picture, PICTURE_OPTIONS #TODO: move to local storage
|
||||||
|
has_attached_file :picture2, PICTURE_OPTIONS
|
||||||
|
has_attached_file :picture3, PICTURE_OPTIONS
|
||||||
|
has_attached_file :picture4, PICTURE_OPTIONS
|
||||||
|
|
||||||
def resource_category_name
|
def resource_category_name
|
||||||
resource_category.name if resource_category
|
resource_category.name if resource_category
|
||||||
|
|
|
@ -12,9 +12,9 @@
|
||||||
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.thumbnail { height: 150px; position: relative; }
|
.resource .thumbnail { height: 150px; position: relative; }
|
||||||
.thumbnail .ownership,
|
.resource .thumbnail .ownership,
|
||||||
.thumbnail .disposed
|
.resource .thumbnail .disposed
|
||||||
{ position: absolute; top: 1px;
|
{ position: absolute; top: 1px;
|
||||||
text-shadow:
|
text-shadow:
|
||||||
-1px -1px 0 #fff,
|
-1px -1px 0 #fff,
|
||||||
|
@ -22,8 +22,8 @@
|
||||||
-1px 1px 0 #fff,
|
-1px 1px 0 #fff,
|
||||||
1px 1px 0 #fff;
|
1px 1px 0 #fff;
|
||||||
font-weight: bold; left: 10px; }
|
font-weight: bold; left: 10px; }
|
||||||
.thumbnail .disposed { color: red; }
|
.resource .thumbnail .disposed { color: red; }
|
||||||
.thumbnail h4 { position: absolute; bottom: 1px; margin-bottom: 1px; }
|
.resource .thumbnail h4 { position: absolute; bottom: 1px; margin-bottom: 1px; }
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<%= form_for @resource, :html => { :multipart => true } do |f| %>
|
<%= form_for @resource, :html => { :multipart => true, class: "col-sm-6" } do |f| %>
|
||||||
<% if @resource.errors.any? %>
|
<% if @resource.errors.any? %>
|
||||||
<div id="error_explanation">
|
<div id="error_explanation">
|
||||||
<h2><%= pluralize(@resource.errors.count, "error") %> prohibited this resource from being saved:</h2>
|
<h2><%= pluralize(@resource.errors.count, "error") %> prohibited this resource from being saved:</h2>
|
||||||
|
@ -13,26 +13,26 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<%= f.label :resource_category_id, "Category" %><br />
|
<%= f.label :resource_category_id, "Category" %><br />
|
||||||
<%= select(:resource, :resource_category_id, options_from_collection_for_select(ResourceCategory.all.sort_by(&:name), :id, :name, @resource.resource_category_id ) ) %>
|
<%= select(:resource, :resource_category_id, options_from_collection_for_select(ResourceCategory.all.sort_by(&:name), :id, :name, @resource.resource_category_id ), {}, {class: "form-control"} ) %>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<%= f.label :name %><br />
|
<%= f.label :name %><br />
|
||||||
<%= f.text_field :name %>
|
<%= f.text_field :name, class: "form-control" %>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<%= f.label :serial, "Serial" %>
|
<%= f.label :serial, "Serial" %>
|
||||||
<br />
|
<br />
|
||||||
<%= f.text_field :serial %>
|
<%= f.text_field :serial, class: "form-control" %>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<%= f.label :specs, "Specs" %>
|
<%= f.label :specs, "Specs" %>
|
||||||
<br/>
|
<br/>
|
||||||
<%= f.text_field :specs %>
|
<%= f.text_field :specs, class: "form-control" %>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<%= f.label :status, "Status/Location" %>
|
<%= f.label :status, "Status/Location" %>
|
||||||
<br/>
|
<br/>
|
||||||
<%= f.text_field :status %>
|
<%= f.text_field :status, class: "form-control" %>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
<p>
|
<p>
|
||||||
<%= f.label :user_id, "Owner" %>
|
<%= f.label :user_id, "Owner" %>
|
||||||
<br />
|
<br />
|
||||||
<%= select(:resource, :user_id, options_from_collection_for_select(@users, :id, :name, @resource.user_id), include_blank: true) %>
|
<%= select(:resource, :user_id, options_from_collection_for_select(@users, :id, :name, @resource.user_id), {include_blank: true}, {class: "form-control"}) %>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -53,21 +53,27 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<%= f.label :estimated_value, "Estimated Value" %><br />
|
<%= f.label :estimated_value, "Estimated Value" %><br />
|
||||||
<%= f.text_field :estimated_value %>
|
<%= f.text_field :estimated_value, class: "form-control" %>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<% [:picture, :picture2, :picture3, :picture4].each do |p| %>
|
||||||
<%= f.label :picture %><br />
|
<p class="row">
|
||||||
<%= f.file_field :picture %>
|
<span class="col-sm-3">
|
||||||
<%= link_to image_tag(@resource.picture.url(:tiny)), @resource.picture.url, :popup => ['form_image_preview', 'height=300,width=400'] if @resource.picture? %>
|
<%= f.label p %><br />
|
||||||
</p>
|
<%= f.file_field p %>
|
||||||
<p>
|
</span>
|
||||||
<%= f.label :notes %><br />
|
<span class="col-sm-2">
|
||||||
<%= f.text_area :notes %>
|
<%= link_to image_tag(@resource.send(p).url(:tiny)), @resource.send(p).url unless @resource.send(p).blank? %>
|
||||||
</p>
|
</span>
|
||||||
<p>
|
</p>
|
||||||
<%= f.submit %>
|
<% end %>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<%= f.label :notes %><br />
|
||||||
|
<%= f.text_area :notes, class: "form-control" %>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<%= f.submit nil, class: "btn btn-primary" %>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= link_to 'Back', resources_path %>
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="col-sm-2">
|
<div class="resource">
|
||||||
<div class="thumbnail">
|
<div class="thumbnail">
|
||||||
<%= link_to(resource) do %>
|
<%= link_to(resource) do %>
|
||||||
<% if resource.user %>
|
<% if resource.user %>
|
||||||
|
|
|
@ -1,2 +1,4 @@
|
||||||
<h1>Edit Resource</h1>
|
<h1>Edit Resource
|
||||||
|
<%= link_to 'Back', resources_path, class: "btn btn-default" %>
|
||||||
|
</h1>
|
||||||
<%= render 'form' %>
|
<%= render 'form' %>
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
<h1 class="col-sm-4">Lab Resources
|
<h1 class="col-sm-6">Lab Resources
|
||||||
<%= link_to 'Add Resource', new_resource_path, :class => "btn btn-success" if can? :create, Resource %>
|
<%= link_to 'Add Resource', new_resource_path, :class => "btn btn-success" if can? :create, Resource %>
|
||||||
<%= link_to 'Categories', resource_categories_path, :class => "btn btn-primary" if can? :read, ResourceCategory %>
|
<%= link_to 'Categories', resource_categories_path, :class => "btn btn-primary" if can? :read, ResourceCategory %>
|
||||||
|
<a class="btn btn-default" onclick="$('#accordion .collapse').collapse('toggle')" />Expand/Collapse All</a>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<h3 class="col-sm-2">Featured item:</h3>
|
<span class="col-sm-2">
|
||||||
|
<h3>Featured item:</h3>
|
||||||
<%= render @featured_resource %>
|
<%= render @featured_resource %>
|
||||||
|
</span>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<% unless @resources.blank? %>
|
<% unless @resources.blank? %>
|
||||||
|
@ -18,7 +21,11 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="collapse_cat_<%= resource_category.id %>" class="panel-collapse collapse">
|
<div id="collapse_cat_<%= resource_category.id %>" class="panel-collapse collapse">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<%= render resources %>
|
<% resources.each do |resource| %>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<%= render resource %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,2 +1,4 @@
|
||||||
<h1>New Resource</h1>
|
<h1>New Resource
|
||||||
|
<%= link_to 'Back', resources_path, class: "btn btn-default" %>
|
||||||
|
</h1>
|
||||||
<%= render 'form' %>
|
<%= render 'form' %>
|
||||||
|
|
|
@ -1,4 +1,21 @@
|
||||||
<%= link_to image_tag(@resource.picture.url(:medium)), @resource.picture.url, :popup => ['show_image_preview', 'height=300,width=400'] if @resource.picture? %>
|
<div class="row">
|
||||||
|
<div class="thumbnail" style="width: 300px">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<%= link_to image_tag(@resource.picture.url(:medium), height: 300, width: 300), @resource.picture.url if @resource.picture? %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<% [:picture2, :picture3, :picture4].each do |p| %>
|
||||||
|
<% unless @resource.send(p).blank? %>
|
||||||
|
<div class="col-xs-4">
|
||||||
|
<%= link_to image_tag(@resource.send(p).url(:thumb)), @resource.send(p).url %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h2><%=h @resource.name %>
|
<h2><%=h @resource.name %>
|
||||||
<%= link_to 'Back', resources_path, class: "btn btn-default" %>
|
<%= link_to 'Back', resources_path, class: "btn btn-default" %>
|
||||||
|
@ -47,9 +64,11 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<b>Notes:</b>
|
<b>Notes:</b>
|
||||||
<%=h @resource.notes %>
|
<div class="row">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<%= simple_format @resource.notes %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<%= link_to 'Delete', resource_path(@resource), {:confirm => 'Are you sure you want to delete this forever?', :method => :delete, :class => "btn btn-danger"} if can? :destroy, @resource %>
|
<%= link_to 'Delete', resource_path(@resource), {:confirm => 'Are you sure you want to delete this forever?', :method => :delete, :class => "btn btn-danger"} if can? :destroy, @resource %>
|
||||||
|
|
16
db/migrate/20140214070420_add_more_pictures_to_resources.rb
Normal file
16
db/migrate/20140214070420_add_more_pictures_to_resources.rb
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
class AddMorePicturesToResources < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :resources, :picture2_file_name, :string
|
||||||
|
add_column :resources, :picture2_content_type, :string
|
||||||
|
add_column :resources, :picture2_file_size, :integer
|
||||||
|
add_column :resources, :picture2_updated_at, :datetime
|
||||||
|
add_column :resources, :picture3_file_name, :string
|
||||||
|
add_column :resources, :picture3_content_type, :string
|
||||||
|
add_column :resources, :picture3_file_size, :integer
|
||||||
|
add_column :resources, :picture3_updated_at, :datetime
|
||||||
|
add_column :resources, :picture4_file_name, :string
|
||||||
|
add_column :resources, :picture4_content_type, :string
|
||||||
|
add_column :resources, :picture4_file_size, :integer
|
||||||
|
add_column :resources, :picture4_updated_at, :datetime
|
||||||
|
end
|
||||||
|
end
|
14
db/schema.rb
14
db/schema.rb
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended to check this file into your version control system.
|
# It's strongly recommended to check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20140214055051) do
|
ActiveRecord::Schema.define(:version => 20140214070420) do
|
||||||
|
|
||||||
create_table "cards", :force => true do |t|
|
create_table "cards", :force => true do |t|
|
||||||
t.string "card_number"
|
t.string "card_number"
|
||||||
|
@ -143,6 +143,18 @@ ActiveRecord::Schema.define(:version => 20140214055051) do
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.datetime "disposed_at"
|
t.datetime "disposed_at"
|
||||||
t.integer "modified_by"
|
t.integer "modified_by"
|
||||||
|
t.string "picture2_file_name"
|
||||||
|
t.string "picture2_content_type"
|
||||||
|
t.integer "picture2_file_size"
|
||||||
|
t.datetime "picture2_updated_at"
|
||||||
|
t.string "picture3_file_name"
|
||||||
|
t.string "picture3_content_type"
|
||||||
|
t.integer "picture3_file_size"
|
||||||
|
t.datetime "picture3_updated_at"
|
||||||
|
t.string "picture4_file_name"
|
||||||
|
t.string "picture4_content_type"
|
||||||
|
t.integer "picture4_file_size"
|
||||||
|
t.datetime "picture4_updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "settings", :force => true do |t|
|
create_table "settings", :force => true do |t|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user