Commit b2122fc4

mo k <mo@mokhan.ca>
2012-10-16 15:08:17
add photos#new action to upload photos from.
1 parent 9530a7f
app/controllers/creations_controller.rb
@@ -26,7 +26,7 @@ class CreationsController < ApplicationController
   def create
     @creation = current_user.creations.create(params[:creation])
     @creation.category_ids = params[:creation][:category_ids] ||= []
-    @creation.photos.build({:is_primary => true, :image => params[:creation][:image]})
+    #@creation.photos.build({:is_primary => true, :image => params[:creation][:image]})
 
     if @creation.save
       redirect_to(creations_url, :notice => 'Thank you for sharing your creation. It will appear in the main timeline shortly.') 
app/controllers/photos_controller.rb
@@ -3,6 +3,11 @@ class PhotosController < ApplicationController
   before_filter :find_creation
   before_filter :find_or_build_photo
 
+  def new
+    @photo = Photo.new
+    @creation = Creation.find(params[:creation_id])
+  end
+
   def create
     if @photo.save
       redirect_to(@creation, :notice => 'A new photo was added to the album.') 
app/views/creations/_form.html.erb
@@ -20,12 +20,6 @@
         <a class="tooltip-item" data-placement="right" rel="tooltip" href="#" data-original-title="Add your name or company to the uploaded image" data-animation="true"><i class="icon-question-sign"></i></a>
       </div>
     </div>
-    <div class="control-group">
-      <%= f.label :image, "Upload Main Image", :class => "control-label" %>
-      <div class="controls">
-        <%= f.file_field :image, :class => "input-file" %>
-      </div>
-    </div>
     <div class="control-group">
       <%= f.label :story, "Description", :class=> "control-label" %>
       <div class="controls">
app/views/photos/_form.html.erb
@@ -0,0 +1,19 @@
+<% content_for :javascript do %>
+  <script type="text/javascript" charset="utf-8">
+    $(function(){ });
+  </script>
+<% end %>
+<%= form_for(@photo, :html => {:multipart => true, :class => "form-horizontal"}) do |f| %>
+  <fieldset>
+    <div class="control-group">
+      <%= f.label :image, "Upload Main Image", :class => "control-label" %>
+      <div class="controls">
+        <%= f.file_field :image, :class => "input-file" %>
+      </div>
+    </div>
+    <div class="form-actions">
+      <button type="submit" class="btn btn-primary">Save changes</button>
+      <a href="<%= url_for @creation %>" class="btn">Cancel</a>
+    </div>
+  </fieldset>
+<% end %>
app/views/photos/new.html.erb
@@ -0,0 +1,30 @@
+<% provide(:title, "upload photo") -%>
+<% content_for :page_header do -%>
+  <h1>Share a new creation</h1>
+<% end -%>
+<div class="row">
+  <div class="span3">
+    <div class="thumbnail">
+      <%= avatar_for(current_user) %>
+      <div class="caption">
+        <h5><%= current_user.name %></h5>
+      </div>
+    </div>
+    <div style="padding: 8px 0;" class="well">
+      <ul class="nav nav-list">
+        <li class="nav-header">Creations</li>
+        <li><a href="<%= url_for root_path %>"><i class="icon-white icon-home"></i> Home</a></li>
+        <li><a href="<%= url_for profiles_favorites_path -%>"><i class="icon-book"></i> My Favorites</a></li>
+        <li class="active"><a href="<%= new_creation_path %>"><i class="icon-pencil"></i> Add Creation</a></li>
+        <li class="nav-header">Account</li>
+        <li><a href="<%= url_for profiles_mine_path %>"><i class="icon-user"></i> Profile</a></li>
+        <li><a href="<%= url_for edit_user_registration_path %>"><i class="icon-cog"></i> Settings</a></li>
+        <li class="divider"></li>
+        <li><a href="http://cakeside.uservoice.com/"><i class="icon-flag"></i> Help</a></li>
+      </ul>
+    </div>
+  </div>
+  <div class="span6">
+    <%= render 'form' %>
+  </div>
+</div>
config/routes.rb
@@ -14,7 +14,7 @@ Cake::Application.routes.draw do
 
   # /creations
   resources :creations do
-    resources :photos, :only => [:create, :destroy]
+    resources :photos, :only => [:new, :create, :destroy]
     resources :favorites, :only => [:index, :create]
     resources :comments, :only => [:index, :new, :create]
   end