dust_albums 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. data/Gemfile +13 -0
  2. data/Gemfile.lock +36 -0
  3. data/LICENSE.txt +20 -0
  4. data/README.rdoc +19 -0
  5. data/Rakefile +59 -0
  6. data/app/controllers/albums_controller.rb +50 -0
  7. data/app/controllers/photos_controller.rb +92 -0
  8. data/app/controllers/view_albums_controller.rb +18 -0
  9. data/app/helpers/albums_helper.rb +2 -0
  10. data/app/helpers/photos_helper.rb +2 -0
  11. data/app/helpers/view_albums_helper.rb +2 -0
  12. data/app/models/album.rb +48 -0
  13. data/app/models/photo.rb +18 -0
  14. data/app/views/albums/_form.html.erb +22 -0
  15. data/app/views/albums/_search.html.erb +6 -0
  16. data/app/views/albums/_upload_script.html.erb +39 -0
  17. data/app/views/albums/edit.html.erb +5 -0
  18. data/app/views/albums/index.html.erb +61 -0
  19. data/app/views/albums/new.html.erb +6 -0
  20. data/app/views/albums/show.html.erb +44 -0
  21. data/app/views/albums/show.js.erb +0 -0
  22. data/app/views/photos/_form.html.erb +22 -0
  23. data/app/views/photos/_photo.html.erb +23 -0
  24. data/app/views/photos/edit.html.erb +28 -0
  25. data/app/views/photos/index.html.erb +80 -0
  26. data/app/views/photos/new.html.erb +7 -0
  27. data/app/views/photos/show.html.erb +26 -0
  28. data/app/views/photos/show.js.erb +9 -0
  29. data/app/views/view_albums/index.html.erb +20 -0
  30. data/app/views/view_albums/show.html.erb +20 -0
  31. data/config/routes.rb +10 -0
  32. data/lib/dust_albums.rb +5 -0
  33. data/lib/dust_albums/engine.rb +13 -0
  34. data/lib/dust_albums/middleware.rb +19 -0
  35. data/lib/dust_albums/version.rb +11 -0
  36. data/lib/generators/dust_album/USAGE +8 -0
  37. data/lib/generators/dust_album/dust_album_generator.rb +39 -0
  38. data/lib/generators/dust_album/templates/albums_migration.rb +18 -0
  39. data/lib/generators/dust_album/templates/dust_album.css +11 -0
  40. data/lib/generators/dust_album/templates/images/browse.png +0 -0
  41. data/lib/generators/dust_album/templates/images/cancel.png +0 -0
  42. data/lib/generators/dust_album/templates/images/upload.png +0 -0
  43. data/lib/generators/dust_album/templates/initializers/flash_session_cookie_middleware.rb +19 -0
  44. data/lib/generators/dust_album/templates/initializers/session_store_middleware.rb +5 -0
  45. data/lib/generators/dust_album/templates/jquery-1.4.2.js +6240 -0
  46. data/lib/generators/dust_album/templates/photos_migration.rb +20 -0
  47. data/lib/generators/dust_album/templates/uploadify.css +84 -0
  48. data/lib/generators/dust_album/templates/uploadify/jquery.uploadify.v2.1.0.js +258 -0
  49. data/lib/generators/dust_album/templates/uploadify/swfobject.js +4 -0
  50. data/lib/generators/dust_album/templates/uploadify/uploadify.swf +0 -0
  51. data/test/helper.rb +18 -0
  52. data/test/test_dust_albums.rb +7 -0
  53. metadata +173 -0
@@ -0,0 +1,5 @@
1
+ <% title "Edit Album" %>
2
+
3
+ <%= stylesheet( 'dust_album','uploadify') %>
4
+
5
+ <%= render :partial => 'form' %>
@@ -0,0 +1,61 @@
1
+ <% title "Albums" %>
2
+ <% heading "Albums" %>
3
+
4
+ <%= stylesheet 'dust_album', 'uploadify' %>
5
+
6
+ <div class="button_bar">
7
+ <%= render :partial => 'albums/search' %>
8
+ <%=link_to 'new page', new_album_path, :class => 'newfile tip', :title => "New Album" %>
9
+ </div>
10
+
11
+ <div class='photolist'>
12
+
13
+ <%= will_paginate @albums %>
14
+
15
+ <table class="photos">
16
+ <tr style='color:#222;'>
17
+ <th></th>
18
+ <th>
19
+ Album Title
20
+ </th>
21
+ <th>
22
+ Created At
23
+ </th>
24
+ <th></th>
25
+ </tr>
26
+ <% @albums.each do |album| %>
27
+ <tr class='<%= cycle('odd', 'even')%>'>
28
+
29
+ <td>
30
+ <% if album.photos.empty? %>
31
+ <%= link_to "add photos to #{album.title}", album %>
32
+ <% else %>
33
+ <% @photo = album.photos.find(:first) %>
34
+ <%= link_to image_tag(@photo.file.url(:thumb)), album %>
35
+ <% end -%>
36
+ </td>
37
+ <td>
38
+ <%= album.title%>
39
+ </td>
40
+ <td>
41
+ <%= album.created_at.to_s(:m_d_y) %>
42
+ </td>
43
+ <td>
44
+ <div style='float:right'>
45
+ <%=link_to '', edit_album_path(album), :class => 'edit' %>
46
+ <%=link_to "", album, :confirm => 'Are you sure?', :method => :delete, :class => 'destroy' %>
47
+ </div>
48
+ </td>
49
+ </tr>
50
+ <% end %>
51
+
52
+ </table>
53
+
54
+
55
+ </div>
56
+
57
+ <div class="clear"></div>
58
+
59
+ <%= will_paginate @albums %>
60
+
61
+
@@ -0,0 +1,6 @@
1
+ <% title "New Album" %>
2
+
3
+ <%= stylesheet( 'dust_album','uploadify') %>
4
+
5
+ <%= render :partial => 'form' %>
6
+
@@ -0,0 +1,44 @@
1
+ <% title h(@album.title) %>
2
+ <% heading h(@album.title.titleize) %>
3
+
4
+ <%= stylesheet( 'dust_album','uploadify') %>
5
+
6
+ <%= render :partial => "upload_script" %>
7
+
8
+ <div class="item">
9
+
10
+ <div class='manage'>
11
+ <%= link_to "", edit_album_path(@album), :class => 'edit' %>
12
+ <%= link_to "", @album, :confirm => 'Are you sure?', :method => :delete, :class => 'destroy' %>
13
+ </div>
14
+
15
+ <%= simple_format(h(@album.desc)) %>
16
+ </div>
17
+
18
+ <div class="item">
19
+
20
+ <h3 id="photos_count"><%= pluralize(@album.photos.size, "Photo")%> <% unless @album.photos.empty? %> | <%= link_to "Manage Photos", photos_path %> <% end %></h3>
21
+ <div id="uploads">
22
+ <%= render @album.photos %>
23
+ </div>
24
+
25
+ <div class="clear"></div>
26
+
27
+ </div>
28
+
29
+ <% content_for :left do -%>
30
+
31
+ <div id="uploadify">
32
+ <h3>Add Photos to <%= @album.title.titleize %></h3>
33
+ <% form_for @new_photo, :html => {:multipart => true} do |f| %>
34
+
35
+ <%= f.hidden_field :album_id, "value" => @album.id %>
36
+ <div class="uploadifyButtons">
37
+ <%= image_submit_tag "Upload.png", :id => "photo_submit", :name => 'commit' %> <%= f.file_field :file %>
38
+ <div class='clear'></div>
39
+ </div>
40
+ <% end %>
41
+ </div>
42
+
43
+ <% end -%>
44
+
File without changes
@@ -0,0 +1,22 @@
1
+ <%= stylesheet( 'dust_album','uploadify') %>
2
+
3
+ <% form_for @photo, :validations => true do |f| %>
4
+ <%= f.error_messages %>
5
+ <p>
6
+ <%= f.label :title %><br />
7
+ <%= f.text_field :title %>
8
+ </p>
9
+ <p>
10
+ <%= f.label :desc %><br />
11
+ <%= f.text_area :desc %>
12
+ </p>
13
+ <p>
14
+ <%= f.label :date_shot %><br />
15
+ <%= f.date_select :date_shot %>
16
+ </p>
17
+ <p>
18
+ <%= f.label :location %><br />
19
+ <%= f.text_field :location %>
20
+ </p>
21
+ <p><%= f.submit %></p>
22
+ <% end %>
@@ -0,0 +1,23 @@
1
+ <div class="photo">
2
+ <script type="text/javascript" charset="utf-8">
3
+ $("a.settings").fancybox({
4
+ 'showCloseButton' : false,
5
+ 'transitionIn' : 'elastic',
6
+ 'transitionOut' : 'elastic',
7
+ 'speedIn' : 400,
8
+ 'speedOut' : 200,
9
+ 'hideOnContentClick': false,
10
+ 'overlayOpacity' : 0.6,
11
+ 'overlayColor' : '#000',
12
+ 'opacity' : 'true'
13
+ });
14
+ </script>
15
+ <%= image_tag photo.file.url(:thumb), :height => '50' %>
16
+ <p>
17
+ <%= photo.title %> <br />
18
+ <% unless photo.date_shot.blank? %>
19
+ (<%= photo.date_shot %>)
20
+ <% end -%>
21
+ <%= link_to "Edit Photo", edit_photo_path(photo, :format => :html, :edit => 'photo'), :class => "settings", :title => "Photo Settings" %>
22
+ </p>
23
+ </div>
@@ -0,0 +1,28 @@
1
+ <% title "Edit Photo" %>
2
+
3
+ <% if params[:edit] == 'photo' %>
4
+ <script type="text/javascript" charset="utf-8">
5
+
6
+ var options = {
7
+ success: showFlash,
8
+ data: {format: 'js'},
9
+ clearForm: true
10
+ };
11
+
12
+ $('.edit_photo').ajaxForm(options);
13
+
14
+ $("#photo_submit").click(function () {
15
+ $("#fancybox-inner").fadeTo("slow", 0.1);
16
+ $.fancybox.showActivity();
17
+ });
18
+
19
+ function showFlash() {
20
+ $("#status").html("Success, Your settings have been saved");
21
+ $('#status').fadeIn().delay(2000).slideUp('slow');
22
+ $.fancybox.close();
23
+ $("#fancybox-inner").fadeTo("slow", 1);
24
+ }
25
+ </script>
26
+ <% end -%>
27
+
28
+ <%= render :partial => 'form' %>
@@ -0,0 +1,80 @@
1
+ <% title "Photos" %>
2
+
3
+ <%= stylesheet( 'dust_album','uploadify') %>
4
+ <%= javascript( 'uploadify/jquery.uploadify.v2.1.0' ) %>
5
+
6
+ <script type="text/javascript" charset="utf-8">
7
+ $(document).ready(function() {
8
+ $(function () { // this line makes sure this code runs on page load
9
+ $('.checkall').click(function () {
10
+ $(this).parents('form:eq(0)').find(':checkbox').attr('checked', this.checked);
11
+ });
12
+ });
13
+ });
14
+ </script>
15
+
16
+ <%= will_paginate @photos %>
17
+
18
+ <% @photo_albums.sort.each do |title, photos| %>
19
+ <div class='photolist'>
20
+ <h1><%= link_to title, album_path(photos.first.album) %></h1>
21
+
22
+ <%= form_for(:photo, :url => delete_photos_path) do %>
23
+
24
+ <table class='photos'>
25
+ <tr style='color:#222;'>
26
+ <th>
27
+
28
+ </th>
29
+ <th></th>
30
+ <th>
31
+ File Name
32
+ </th>
33
+ <th>
34
+ File Size
35
+ </th>
36
+ <th>
37
+ Created At
38
+ </th>
39
+ </tr>
40
+ <% for photo in photos %>
41
+ <%= hidden_field_tag :album_id, photo.album.id %>
42
+ <tr class='<%= cycle('odd', 'even')%>'>
43
+ <td>
44
+ <%= check_box_tag "photo_ids[]", photo.id %>
45
+ </td>
46
+ <td>
47
+ <%= link_to image_tag(photo.file.url(:thumb), :height => "30"), photo.file.url(:original), :rel => title, :id => 'single_image' %>
48
+
49
+ <div style="display:none"><div id="<%=photo.id%>"><%= image_tag(photo.file.url(:original)) %></div></div>
50
+ </td>
51
+ <td>
52
+ <%= photo.file_file_name %>
53
+ </td>
54
+ <td>
55
+ <%= number_to_human_size(photo.file_file_size) %>
56
+ </td>
57
+ <td>
58
+ <%= photo.created_at.to_s(:m_d_y) %>
59
+ </td>
60
+ </tr>
61
+ <% end %>
62
+ <tr class='odd'>
63
+ <td colspan='5'>
64
+ <input type="checkbox" class="checkall"> Check all
65
+ <%= submit_tag "Delete checked" %>
66
+ </td>
67
+ </tr>
68
+ </table>
69
+
70
+
71
+ <% end -%>
72
+
73
+ </div>
74
+
75
+
76
+
77
+ <% end %>
78
+
79
+ <%= will_paginate @photos %>
80
+
@@ -0,0 +1,7 @@
1
+ <% title "New Photo" %>
2
+
3
+ <%= stylesheet( 'dust_album','uploadify') %>
4
+
5
+ <%= render :partial => 'form' %>
6
+
7
+ <p><%= link_to "Back to List", photos_path %></p>
@@ -0,0 +1,26 @@
1
+ <% title "Photo" %>
2
+
3
+ <%= stylesheet( 'dust_album','uploadify') %>
4
+
5
+ <p>
6
+ <strong>Title:</strong>
7
+ <%=h @photo.title %>
8
+ </p>
9
+ <p>
10
+ <strong>Desc:</strong>
11
+ <%=h @photo.desc %>
12
+ </p>
13
+ <p>
14
+ <strong>Date Shot:</strong>
15
+ <%=h @photo.date_shot %>
16
+ </p>
17
+ <p>
18
+ <strong>Location:</strong>
19
+ <%=h @photo.location %>
20
+ </p>
21
+
22
+ <p>
23
+ <%= link_to "Edit", edit_photo_path(@photo) %> |
24
+ <%= link_to "Destroy", @photo, :confirm => 'Are you sure?', :method => :delete %> |
25
+ <%= link_to "View All", photos_path %>
26
+ </p>
@@ -0,0 +1,9 @@
1
+ $('#photos_count').html('<%= pluralize(@total_uploads.count, "Photo") %> | <%= link_to "Manage Photos", photos_path %>');
2
+ $('#uploads').append("<%= escape_javascript(render(:partial => "photos/photo", :locals => {:photo => @photo})) %>");
3
+ $("a#inline").fancybox({
4
+ 'transitionIn' : 'elastic',
5
+ 'transitionOut' : 'elastic',
6
+ 'speedIn' : 200,
7
+ 'speedOut' : 200,
8
+ 'hideOnContentClick': false
9
+ });
@@ -0,0 +1,20 @@
1
+ <% title "All Albums" %>
2
+ <% heading "All Albums" %>
3
+
4
+ <% content_for :head do -%>
5
+ <%= stylesheet_link_tag 'dust_album' %>
6
+ <% end -%>
7
+
8
+ <%= will_paginate @albums %>
9
+
10
+ <% @albums.each do |album| %>
11
+ <div class="photo">
12
+ <% unless album.photos.empty? %>
13
+ <% @photo = album.photos.find(:first) %>
14
+ <%= link_to image_tag(@photo.file.url(:thumb)), view_album_path(album.filename) %>
15
+ <% end -%>
16
+ </div>
17
+ <% end -%>
18
+ <div class="clear"></div>
19
+
20
+ <%= will_paginate @albums %>
@@ -0,0 +1,20 @@
1
+ <% title @album.title %>
2
+ <% heading @album.title %>
3
+ <%= @album.desc %>
4
+
5
+ <% content_for :head do -%>
6
+ <%= stylesheet_link_tag 'dust_album' %>
7
+ <% end -%>
8
+
9
+ <%= will_paginate @photos %>
10
+
11
+ <div id="uploads">
12
+ <% @photos.each do |photo| %>
13
+ <div class="photo">
14
+ <%= link_to image_tag(photo.file.url(:thumb), :alt => photo.title), photo.file.url(:original), :id => 'single_image' %>
15
+ </div>
16
+ <% end -%>
17
+ </div>
18
+ <div class="clear"></div>
19
+
20
+ <%= will_paginate @photos %>
@@ -0,0 +1,10 @@
1
+ Rails.application.routes.draw do
2
+
3
+ resources :photos
4
+
5
+ resources :albums
6
+
7
+ match 'all/albums' => 'view_albums#index', :as => :view_albums
8
+ match 'photos-for/:filename' => 'view_albums#show', :as => :view_album
9
+ match 'photos/destroy' => 'photos#destroy', :as => :delete_photos
10
+ end
@@ -0,0 +1,5 @@
1
+ module DustAlbums
2
+
3
+ end
4
+
5
+ require 'dust_albums/engine'
@@ -0,0 +1,13 @@
1
+ require 'dust_albums'
2
+ require "rails"
3
+
4
+ module DustAlbums
5
+ class Engine < Rails::Engine
6
+ #initializer "dust_albums_engine.add_middleware" do |app|
7
+ # app.middleware.insert_before(
8
+ # ActionDispatch::Cookies,
9
+ # "DustAlbums::Middleware",
10
+ # app.config.send(:session_options)[:key])
11
+ #end
12
+ end
13
+ end
@@ -0,0 +1,19 @@
1
+ require 'rack/utils'
2
+
3
+ class FlashSessionCookieMiddleware
4
+ def initialize(app, session_key = '_session_id')
5
+ @app = app
6
+ @session_key = session_key
7
+ end
8
+
9
+ def call(env)
10
+ if env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/
11
+ req = Rack::Request.new(env)
12
+ env['HTTP_COOKIE'] = [ @session_key,
13
+ req.params[@session_key] ].join('=').freeze unless req.params[@session_key].nil?
14
+ env['HTTP_ACCEPT'] = "#{req.params['_http_accept']}".freeze unless req.params['_http_accept'].nil?
15
+ end
16
+
17
+ @app.call(env)
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ module DustAlbums
2
+ module Version
3
+ MAJOR = 0
4
+ MINOR = 0
5
+ RELEASE = 2
6
+
7
+ def self.dup
8
+ "#{MAJOR}.#{MINOR}.#{RELEASE}"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Explain the generator
3
+
4
+ Example:
5
+ rails generate install Thing
6
+
7
+ This will create:
8
+ what/will/it/create