tkh_illustrations 0.0.10 → 0.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
 
4
4
 
5
+ ## 0.1
6
+
7
+ * Added header graphic section
8
+
9
+
5
10
  ## 0.0.10
6
11
 
7
12
  * Added pagination to index method.
data/README.md CHANGED
@@ -29,11 +29,11 @@ And then execute:
29
29
 
30
30
  $ bundle
31
31
 
32
- Import migration
32
+ Import migrations
33
33
 
34
34
  $ rake tkh_illustrations:install
35
35
 
36
- Run the migration
36
+ Run the migrations
37
37
 
38
38
  $ rake db:migrate
39
39
 
@@ -44,9 +44,9 @@ And then of course restart your server!
44
44
 
45
45
  ## Upgrading
46
46
 
47
- If you are upgrading and think you might need to upgrade your migrations or your locale files, run again:
47
+ If you are upgrading and think you might need to upgrade your migrations or your locale files, run:
48
48
 
49
- $ rake tkh_illustrations:install
49
+ $ rake tkh_illustrations:update
50
50
 
51
51
  and
52
52
 
@@ -56,10 +56,14 @@ and
56
56
 
57
57
  ## Usage
58
58
 
59
- The section is located at:
59
+ The main section is located at:
60
60
 
61
61
  $ /illustrations
62
62
 
63
+ The optional header graphics section is at:
64
+
65
+ $ /headers
66
+
63
67
  ... and it should work out of the box
64
68
 
65
69
 
@@ -0,0 +1,49 @@
1
+ class HeadersController < ApplicationController
2
+
3
+ before_filter :authenticate
4
+ before_filter :authenticate_with_admin
5
+
6
+ def index
7
+ @headers = Header.by_recent.paginate(:page => params[:page], :per_page => 25)
8
+ switch_to_admin_layout
9
+ end
10
+
11
+ def show
12
+ @header = Header.find(params[:id])
13
+ switch_to_admin_layout
14
+ end
15
+
16
+ def new
17
+ @header = Header.new
18
+ switch_to_admin_layout
19
+ end
20
+
21
+ def edit
22
+ @header = Header.find(params[:id])
23
+ switch_to_admin_layout
24
+ end
25
+
26
+ def create
27
+ @header = Header.new(params[:header])
28
+ if @header.save
29
+ redirect_to @header, notice: 'Header was successfully created.'
30
+ else
31
+ render action: "new", layout: 'admin'
32
+ end
33
+ end
34
+
35
+ def update
36
+ @header = Header.find(params[:id])
37
+ if @header.update_attributes(params[:header])
38
+ redirect_to @header, notice: 'Header was successfully updated.'
39
+ else
40
+ render action: "edit", layout: 'admin'
41
+ end
42
+ end
43
+
44
+ def destroy
45
+ @header = Header.find(params[:id])
46
+ @header.destroy
47
+ redirect_to headers_url
48
+ end
49
+ end
@@ -0,0 +1,21 @@
1
+ # this is needed for now to make mass assignment security compatible with the translation of globalize3
2
+ Globalize::ActiveRecord::Translation.class_eval do
3
+ attr_accessible :locale
4
+ end
5
+
6
+ class Header < ActiveRecord::Base
7
+
8
+ attr_accessible :photo, :name
9
+
10
+ validates_presence_of :name
11
+
12
+ translates :name
13
+
14
+ mount_uploader :photo, PhotoUploader
15
+
16
+ def to_param
17
+ name ? "#{id}-#{name.to_url}" : id
18
+ end
19
+
20
+ scope :by_recent, :order => 'updated_at desc'
21
+ end
@@ -0,0 +1,68 @@
1
+ # encoding: utf-8
2
+
3
+ class PhotoUploader < CarrierWave::Uploader::Base
4
+
5
+ # Include RMagick or MiniMagick support:
6
+ include CarrierWave::RMagick
7
+ # include CarrierWave::MiniMagick
8
+
9
+ # Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
10
+ # include Sprockets::Helpers::RailsHelper
11
+ # include Sprockets::Helpers::IsolatedHelper
12
+
13
+ # Choose what kind of storage to use for this uploader:
14
+ storage :file
15
+ # storage :fog
16
+
17
+ # Override the directory where uploaded files will be stored.
18
+ # This is a sensible default for uploaders that are meant to be mounted:
19
+ def store_dir
20
+ # "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" --- that was the suggested one
21
+ "system/photos/#{model.class.to_s.underscore}/#{model.id}"
22
+ end
23
+
24
+ # Provide a default URL as a default if there hasn't been a file uploaded:
25
+ # def default_url
26
+ # # For Rails 3.1+ asset pipeline compatibility:
27
+ # # asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
28
+ #
29
+ # "/photos/fallback/" + [version_name, "default.png"].compact.join('_')
30
+ # end
31
+
32
+ # Process files as they are uploaded:
33
+ # process :scale => [200, 300]
34
+ #
35
+ # def scale(width, height)
36
+ # # do something
37
+ # end
38
+
39
+ # Create different versions of your uploaded files:
40
+ # version :thumb do
41
+ # process :scale => [50, 50]
42
+ # end
43
+ # version :thumbnail do
44
+ # process :resize_to_limit => [125, 125]
45
+ # end
46
+ version(:thumbnail) { process :resize_to_limit => [125, 125] }
47
+ version(:large) { process :resize_to_limit => [1170, 1170] }
48
+
49
+ # Add a white list of extensions which are allowed to be uploaded.
50
+ # For photos you might use something like this:
51
+ def extension_white_list
52
+ %w(jpg jpeg png)
53
+ end
54
+
55
+ # Override the filename of the uploaded files:
56
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
57
+ # def filename
58
+ # "something.jpg" if original_filename
59
+ # end
60
+
61
+ # got this from http://stackoverflow.com/questions/9561641/carrierwave-temp-directory-set-to-uploads-tmp-folder
62
+ # without this all tmp files would go to /public/uploads/tmp which is not cool at all.
63
+ def cache_dir
64
+ # should return path to cache dir
65
+ Rails.root.join 'tmp/uploads'
66
+ end
67
+
68
+ end
@@ -0,0 +1,13 @@
1
+ <%= simple_form_for @header, :html => { multipart: true, class: 'form-horizontal' } do |f| %>
2
+ <%= f.error_notification %>
3
+
4
+ <div class="form-inputs">
5
+ <%= f.input :photo, hint: "Ideally all header photos should have the following characteristics: 72 dpi; a width of at least 1,170 pixels; a ratio of 1170X273" %>
6
+ <%= f.input :name %>
7
+ </div>
8
+
9
+ <div class="form-actions">
10
+ <%= f.button :submit, :class => 'btn btn-primary' %>
11
+ <%= link_to 'Cancel & Show all Headers', headers_path, :class => 'btn' %>
12
+ </div>
13
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <%= render 'form' %>
2
+ <%= render 'shared/admin_sidebar' %>
@@ -0,0 +1,32 @@
1
+ <h1>Site Header Graphics</h1>
2
+
3
+ <table class='table table-striped'>
4
+ <thead>
5
+ <tr>
6
+ <th>Photo</th>
7
+ <th>Name & Paths</th>
8
+ <th>Actions</th>
9
+ </tr>
10
+ </thead>
11
+
12
+ <tbody>
13
+ <% @headers.each do |header| %>
14
+ <tr>
15
+ <td><%= link_to image_tag(header.photo.thumbnail), header %></td>
16
+ <td>
17
+ <h3><%= header.name %> | <%= link_to(' See all resolutions', header) %></h3>
18
+ <b>Thumbnail</b> path: <%= header.photo.thumbnail %><br />
19
+ <b>Large</b> path: <%= header.photo.large %><br />
20
+ </td>
21
+ <td><%= link_to 'Edit', edit_header_path(header), class: 'btn btn-mini' %>
22
+ <%= link_to 'Destroy', header, method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn btn-mini btn-danger' %></td>
23
+ </tr>
24
+ <% end %>
25
+ </tbody>
26
+ </table>
27
+
28
+ <%= will_paginate @headers %>
29
+
30
+ <%= link_to 'Create New Header Graphic', new_header_path, class: 'btn btn-primary' %>
31
+
32
+ <%= render 'shared/admin_sidebar' %>
@@ -0,0 +1,2 @@
1
+ <%= render 'form' %>
2
+ <%= render 'shared/admin_sidebar' %>
@@ -0,0 +1,16 @@
1
+ <% content_for :meta_title, @header.name %>
2
+ <% content_for :meta_description, @header.name %>
3
+
4
+ <h1>View a Header Graphic</h1>
5
+
6
+ <h3>Name: <%= @header.name %></h3>
7
+ <p>
8
+ <%= image_tag @header.photo.thumbnail %><br /><%= @header.photo.thumbnail %><br /><br />
9
+ <%= image_tag @header.photo.large %><br /><%= @header.photo.large %>
10
+ </p>
11
+
12
+ <%= link_to 'edit', edit_header_path(@header), :class => 'btn btn-mini' %>
13
+ <%= link_to 'all header graphics', headers_path, class: 'btn btn-mini' %>
14
+ <%= link_to 'upload new header grahpic', new_header_path, class: 'btn btn-mini' %>
15
+
16
+ <%= render 'shared/admin_sidebar' %>
data/config/routes.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  Rails.application.routes.draw do
2
2
  scope "(:locale)", locale: /#{I18n.available_locales.join("|")}/ do
3
3
  resources :illustrations
4
+ resources :headers
4
5
  end
5
6
  end
@@ -5,3 +5,6 @@ de:
5
5
  illustration:
6
6
  image: 'Bild'
7
7
  name: "Name"
8
+ header:
9
+ photo: 'photo_de'
10
+ name: "Name"
@@ -1,8 +1,11 @@
1
1
  en:
2
2
 
3
3
  activerecord:
4
- attributes:
5
- illustration:
6
- image: 'image'
7
- name: "name"
4
+ attributes:
5
+ illustration:
6
+ image: 'image'
7
+ name: "name"
8
+ header:
9
+ photo: 'photo'
10
+ name: "name"
8
11
 
@@ -1,7 +1,10 @@
1
1
  es:
2
2
 
3
3
  activerecord:
4
- attributes:
5
- illustration:
6
- image: 'imagen'
7
- name: "nombre"
4
+ attributes:
5
+ illustration:
6
+ image: 'imagen'
7
+ name: "nombre"
8
+ header:
9
+ photo: 'photo_es'
10
+ name: "nombre"
@@ -4,4 +4,7 @@ fr:
4
4
  attributes:
5
5
  illustration:
6
6
  image: 'image'
7
+ name: "nom"
8
+ header:
9
+ photo: 'photo'
7
10
  name: "nom"
@@ -20,6 +20,8 @@ module TkhIllustrations
20
20
  migration_template "create_illustrations.rb", "db/migrate/create_illustrations.rb"
21
21
  puts 'Adding translation of name attribute for Globalize3'
22
22
  migration_template "add_translation_of_name_to_illustrations.rb", "db/migrate/add_translation_of_name_to_illustrations.rb"
23
+ puts 'Creating the headers table'
24
+ migration_template "create_headers.rb", "db/migrate/create_headers.rb"
23
25
  end
24
26
 
25
27
  end
@@ -0,0 +1,15 @@
1
+ class CreateHeaders < ActiveRecord::Migration
2
+ def up
3
+ create_table :headers do |t|
4
+ t.string :name
5
+ t.string :photo
6
+ t.timestamps
7
+ end
8
+ Header.create_translation_table!({ name: :string })
9
+ end
10
+
11
+ def down
12
+ drop_table :headers
13
+ Header.drop_translation_table!
14
+ end
15
+ end
@@ -2,6 +2,12 @@ namespace :tkh_illustrations do
2
2
 
3
3
  desc "Create migration and locale files"
4
4
  task :install do
5
+ system 'rails g tkh_illustrations:create_or_update_migrations'
6
+ system 'rails g tkh_illustrations:create_or_update_locales -f'
7
+ end
8
+
9
+ desc "Update files. Skip existing migrations. Force overwrite locales"
10
+ task :update do
5
11
  system 'rails g tkh_illustrations:create_or_update_migrations -s'
6
12
  system 'rails g tkh_illustrations:create_or_update_locales -f'
7
13
  end
@@ -1,3 +1,3 @@
1
1
  module TkhIllustrations
2
- VERSION = "0.0.10"
2
+ VERSION = "0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tkh_illustrations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: '0.1'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-18 00:00:00.000000000 Z
12
+ date: 2012-11-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -146,9 +146,17 @@ executables: []
146
146
  extensions: []
147
147
  extra_rdoc_files: []
148
148
  files:
149
+ - app/controllers/headers_controller.rb
149
150
  - app/controllers/illustrations_controller.rb
151
+ - app/models/header.rb
150
152
  - app/models/illustration.rb
151
153
  - app/uploaders/image_uploader.rb
154
+ - app/uploaders/photo_uploader.rb
155
+ - app/views/headers/_form.html.erb
156
+ - app/views/headers/edit.html.erb
157
+ - app/views/headers/index.html.erb
158
+ - app/views/headers/new.html.erb
159
+ - app/views/headers/show.html.erb
152
160
  - app/views/illustrations/_form.html.erb
153
161
  - app/views/illustrations/edit.html.erb
154
162
  - app/views/illustrations/index.html.erb
@@ -162,6 +170,7 @@ files:
162
170
  - lib/generators/tkh_illustrations/create_or_update_locales/templates/fr.yml
163
171
  - lib/generators/tkh_illustrations/create_or_update_migrations/create_or_update_migrations_generator.rb
164
172
  - lib/generators/tkh_illustrations/create_or_update_migrations/templates/add_translation_of_name_to_illustrations.rb
173
+ - lib/generators/tkh_illustrations/create_or_update_migrations/templates/create_headers.rb
165
174
  - lib/generators/tkh_illustrations/create_or_update_migrations/templates/create_illustrations.rb
166
175
  - lib/tasks/tkh_illustrations_tasks.rake
167
176
  - lib/tkh_illustrations/version.rb
@@ -214,7 +223,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
214
223
  version: '0'
215
224
  segments:
216
225
  - 0
217
- hash: -655874375888328692
226
+ hash: -1324274835237882850
218
227
  required_rubygems_version: !ruby/object:Gem::Requirement
219
228
  none: false
220
229
  requirements:
@@ -223,7 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
232
  version: '0'
224
233
  segments:
225
234
  - 0
226
- hash: -655874375888328692
235
+ hash: -1324274835237882850
227
236
  requirements: []
228
237
  rubyforge_project:
229
238
  rubygems_version: 1.8.23