merrycms 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/app/controllers/admin/base_controller.rb +1 -0
  2. data/app/controllers/admin/categories_controller.rb +1 -1
  3. data/app/controllers/admin/documents_controller.rb +49 -0
  4. data/app/controllers/admin/images_controller.rb +49 -0
  5. data/app/controllers/admin/pages_controller.rb +0 -1
  6. data/app/controllers/admin/translations_controller.rb +1 -1
  7. data/app/controllers/admin/videos_controller.rb +56 -0
  8. data/app/helpers/admin/base_helper.rb +15 -0
  9. data/app/helpers/admin/categories_helper.rb +3 -7
  10. data/app/helpers/admin/documents_helper.rb +4 -0
  11. data/app/helpers/admin/images_helper.rb +14 -0
  12. data/app/helpers/admin/videos_helper.rb +53 -0
  13. data/app/models/document.rb +7 -0
  14. data/app/models/image.rb +9 -0
  15. data/app/models/source.rb +8 -0
  16. data/app/models/video.rb +7 -0
  17. data/app/views/admin/categories/index.html.erb +1 -1
  18. data/app/views/admin/documents/_form.erb +22 -0
  19. data/app/views/admin/documents/_search.erb +15 -0
  20. data/app/views/admin/documents/_subnav.erb +7 -0
  21. data/app/views/admin/documents/edit.html.erb +7 -0
  22. data/app/views/admin/documents/index.html.erb +24 -0
  23. data/app/views/admin/documents/new.html.erb +3 -0
  24. data/app/views/admin/images/_form.erb +22 -0
  25. data/app/views/admin/images/_search.erb +15 -0
  26. data/app/views/admin/images/_subnav.erb +7 -0
  27. data/app/views/admin/images/edit.html.erb +7 -0
  28. data/app/views/admin/images/index.html.erb +26 -0
  29. data/app/views/admin/images/new.html.erb +3 -0
  30. data/app/views/admin/pages/index.html.erb +6 -12
  31. data/app/views/admin/shared/_nav.erb +11 -0
  32. data/app/views/admin/shared/_subnav.erb +0 -0
  33. data/app/views/{shared/_toplinks.html.erb → admin/shared/_toplinks.erb} +4 -4
  34. data/app/views/admin/videos/_form.erb +38 -0
  35. data/app/views/admin/videos/_head_info.erb +13 -0
  36. data/app/views/admin/videos/_search.erb +15 -0
  37. data/app/views/admin/videos/_subnav.erb +7 -0
  38. data/app/views/admin/videos/edit.html.erb +3 -0
  39. data/app/views/admin/videos/index.html.erb +24 -0
  40. data/app/views/admin/videos/new.html.erb +3 -0
  41. data/app/views/admin/videos/show.html.erb +8 -0
  42. data/app/views/layouts/admin.html.erb +8 -6
  43. data/config/locales/de/de.yml +193 -0
  44. data/config/locales/en/en-US.yml +182 -0
  45. data/config/locales/fr/admin/admin.fr.yml +11 -3
  46. data/config/locales/fr/admin/documents.fr.yml +38 -0
  47. data/config/locales/fr/admin/images.fr.yml +54 -0
  48. data/config/locales/fr/admin/toplinks.fr.yml +7 -8
  49. data/config/locales/fr/admin/videos.fr.yml +42 -0
  50. data/config/locales/fr/fr.yml +182 -0
  51. data/lib/generators/merrycms/install_documents_generator.rb +26 -0
  52. data/lib/generators/merrycms/install_images_generator.rb +30 -0
  53. data/lib/generators/merrycms/install_videos_generator.rb +26 -0
  54. data/lib/generators/merrycms/templates/create_documents_migration.rb +16 -0
  55. data/lib/generators/merrycms/templates/create_images_migration.rb +16 -0
  56. data/lib/generators/merrycms/templates/create_videos_migration.rb +25 -0
  57. data/lib/generators/merrycms/templates/paperclip_initializer.rb +6 -0
  58. data/lib/merrycms/engine.rb +6 -0
  59. data/lib/merrycms/rails/routes.rb +5 -0
  60. data/lib/merrycms/railties/merrycms_tasks.rake +3 -0
  61. data/lib/merrycms/validates_as_image.rb +20 -0
  62. data/lib/merrycms.rb +2 -1
  63. data/lib/paperclip_processors/poster.rb +38 -0
  64. data/lib/paperclip_processors/video_thumbnail.rb +42 -0
  65. metadata +92 -5
  66. data/app/views/admin/_nav.html.erb +0 -10
@@ -0,0 +1,182 @@
1
+ # French translations for Ruby on Rails
2
+ # by Christian Lescuyer (christian@flyingcoders.com)
3
+ # contributors:
4
+ # - Sebastien Grosjean - ZenCocoon.com
5
+ # - Bruno Michel - http://github.com/nono
6
+ # - Tsutomu Kuroda - http://github.com/kuroda (t-kuroda@oiax.jp)
7
+
8
+ fr:
9
+ date:
10
+ formats:
11
+ default: "%d/%m/%Y"
12
+ short: "%e %b"
13
+ long: "%e %B %Y"
14
+ day_names: [dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi]
15
+ abbr_day_names: [dim, lun, mar, mer, jeu, ven, sam]
16
+ month_names: [~, janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre]
17
+ abbr_month_names: [~, jan., fév., mar., avr., mai, juin, juil., août, sept., oct., nov., déc.]
18
+ order:
19
+ - :day
20
+ - :month
21
+ - :year
22
+
23
+ time:
24
+ formats:
25
+ default: "%d %B %Y %H:%M:%S"
26
+ short: "%d %b %H:%M"
27
+ long: "%A %d %B %Y %H:%M"
28
+ am: 'am'
29
+ pm: 'pm'
30
+
31
+ datetime:
32
+ distance_in_words:
33
+ half_a_minute: "une demi-minute"
34
+ less_than_x_seconds:
35
+ zero: "moins d'une seconde"
36
+ one: "moins d'une seconde"
37
+ other: "moins de %{count} secondes"
38
+ x_seconds:
39
+ one: "1 seconde"
40
+ other: "%{count} secondes"
41
+ less_than_x_minutes:
42
+ zero: "moins d'une minute"
43
+ one: "moins d'une minute"
44
+ other: "moins de %{count} minutes"
45
+ x_minutes:
46
+ one: "1 minute"
47
+ other: "%{count} minutes"
48
+ about_x_hours:
49
+ one: "environ une heure"
50
+ other: "environ %{count} heures"
51
+ x_days:
52
+ one: "1 jour"
53
+ other: "%{count} jours"
54
+ about_x_months:
55
+ one: "environ un mois"
56
+ other: "environ %{count} mois"
57
+ x_months:
58
+ one: "1 mois"
59
+ other: "%{count} mois"
60
+ about_x_years:
61
+ one: "environ un an"
62
+ other: "environ %{count} ans"
63
+ over_x_years:
64
+ one: "plus d'un an"
65
+ other: "plus de %{count} ans"
66
+ almost_x_years:
67
+ one: "presqu'un an"
68
+ other: "presque %{count} ans"
69
+ prompts:
70
+ year: "Année"
71
+ month: "Mois"
72
+ day: "Jour"
73
+ hour: "Heure"
74
+ minute: "Minute"
75
+ second: "Seconde"
76
+
77
+ number:
78
+ format:
79
+ separator: ","
80
+ delimiter: " "
81
+ precision: 3
82
+ significant: false
83
+ strip_insignificant_zeros: false
84
+ currency:
85
+ format:
86
+ format: "%n %u"
87
+ unit: "€"
88
+ separator: ","
89
+ delimiter: " "
90
+ precision: 2
91
+ significant: false
92
+ strip_insignificant_zeros: false
93
+ percentage:
94
+ format:
95
+ delimiter: ""
96
+ precision:
97
+ format:
98
+ delimiter: ""
99
+ human:
100
+ format:
101
+ delimiter: ""
102
+ precision: 2
103
+ significant: true
104
+ strip_insignificant_zeros: true
105
+ storage_units:
106
+ format: "%n %u"
107
+ units:
108
+ byte:
109
+ one: "octet"
110
+ other: "octets"
111
+ kb: "ko"
112
+ mb: "Mo"
113
+ gb: "Go"
114
+ tb: "To"
115
+ decimal_units:
116
+ format: "%n %u"
117
+ units:
118
+ unit: ""
119
+ thousand: "millier"
120
+ million: "million"
121
+ billion: "milliard"
122
+ trillion: "billion"
123
+ quadrillion: "million de milliards"
124
+
125
+ support:
126
+ array:
127
+ words_connector: ", "
128
+ two_words_connector: " et "
129
+ last_word_connector: " et "
130
+ select:
131
+ prompt: "Veuillez sélectionner"
132
+
133
+ helpers:
134
+ select:
135
+ prompt: "Veuillez sélectionner"
136
+ submit:
137
+ create: "Créer un %{model}"
138
+ update: "Modifier ce %{model}"
139
+ submit: "Enregistrer ce %{model}"
140
+
141
+ attributes:
142
+ created_at: "Créé le"
143
+ updated_at: "Modifié le"
144
+
145
+ errors:
146
+ format: "Le %{attribute} %{message}"
147
+ messages: &errors_messages
148
+ inclusion: "n'est pas inclus(e) dans la liste"
149
+ exclusion: "n'est pas disponible"
150
+ invalid: "n'est pas valide"
151
+ confirmation: "ne concorde pas avec la confirmation"
152
+ accepted: "doit être accepté(e)"
153
+ empty: "doit être rempli(e)"
154
+ blank: "doit être rempli(e)"
155
+ too_long: "est trop long (pas plus de %{count} caractères)"
156
+ too_short: "est trop court (au moins %{count} caractères)"
157
+ wrong_length: "ne fait pas la bonne longueur (doit comporter %{count} caractères)"
158
+ not_a_number: "n'est pas un nombre"
159
+ not_an_integer: "doit être un nombre entier"
160
+ greater_than: "doit être supérieur à %{count}"
161
+ greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
162
+ equal_to: "doit être égal à %{count}"
163
+ less_than: "doit être inférieur à %{count}"
164
+ less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
165
+ odd: "doit être impair"
166
+ even: "doit être pair"
167
+ template: &errors_template
168
+ header:
169
+ one: "Impossible d'enregistrer ce %{model} : 1 erreur"
170
+ other: "Impossible d'enregistrer ce %{model} : %{count} erreurs"
171
+ body: "Veuillez vérifier les champs suivants : "
172
+
173
+ activerecord:
174
+ errors:
175
+ messages:
176
+ taken: "n'est pas disponible"
177
+ record_invalid: "La validation a échoué : %{errors}"
178
+ <<: *errors_messages
179
+ template:
180
+ <<: *errors_template
181
+ full_messages:
182
+ format: "%{attribute} %{message}"
@@ -0,0 +1,26 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+
4
+ module Merrycms
5
+ class InstallDocumentsGenerator < Rails::Generators::Base
6
+ include Rails::Generators::Migration
7
+
8
+ def self.source_root
9
+ @source_root ||= File.join(File.dirname(__FILE__), 'templates')
10
+ end
11
+
12
+ def self.next_migration_number(dirname)
13
+ if ActiveRecord::Base.timestamped_migrations
14
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
15
+ else
16
+ "%.3d" % (current_migration_number(dirname) + 1)
17
+ end
18
+ end
19
+
20
+ def create_translations_migration_files
21
+ migration_template 'create_documents_migration.rb', 'db/migrate/create_documents.rb'
22
+ sleep 1
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,30 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+
4
+ module Merrycms
5
+ class InstallImagesGenerator < Rails::Generators::Base
6
+ include Rails::Generators::Migration
7
+
8
+ def self.source_root
9
+ @source_root ||= File.join(File.dirname(__FILE__), 'templates')
10
+ end
11
+
12
+ def self.next_migration_number(dirname)
13
+ if ActiveRecord::Base.timestamped_migrations
14
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
15
+ else
16
+ "%.3d" % (current_migration_number(dirname) + 1)
17
+ end
18
+ end
19
+
20
+ def create_translations_migration_files
21
+ migration_template 'create_images_migration.rb', 'db/migrate/create_images.rb'
22
+ sleep 1
23
+ end
24
+
25
+ def copy_locale_initializer
26
+ copy_file 'paperclip_initializer.rb', 'config/initializers/paperclip.rb'
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,26 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+
4
+ module Merrycms
5
+ class InstallVideosGenerator < Rails::Generators::Base
6
+ include Rails::Generators::Migration
7
+
8
+ def self.source_root
9
+ @source_root ||= File.join(File.dirname(__FILE__), 'templates')
10
+ end
11
+
12
+ def self.next_migration_number(dirname)
13
+ if ActiveRecord::Base.timestamped_migrations
14
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
15
+ else
16
+ "%.3d" % (current_migration_number(dirname) + 1)
17
+ end
18
+ end
19
+
20
+ def create_translations_migration_files
21
+ migration_template 'create_videos_migration.rb', 'db/migrate/create_videos.rb'
22
+ sleep 1
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ class CreateDocuments < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :documents do |t|
4
+ t.string :title
5
+ t.string :doc_file_name
6
+ t.string :doc_content_type
7
+ t.integer :doc_file_size
8
+ t.datetime :doc_updated_at
9
+ t.timestamps
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table :documents
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ class CreateImages < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :images do |t|
4
+ t.string :title
5
+ t.string :image_file_name
6
+ t.string :image_content_type
7
+ t.integer :image_file_size
8
+ t.datetime :image_updated_at
9
+ t.timestamps
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table :images
15
+ end
16
+ end
@@ -0,0 +1,25 @@
1
+ class CreateVideos < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :videos do |t|
4
+ t.string :title
5
+ t.timestamps
6
+ end
7
+
8
+ create_table :sources do |t|
9
+ t.integer :video_id
10
+ t.string :width
11
+ t.string :height
12
+ t.string :container_type
13
+ t.string :video_file_name
14
+ t.string :video_content_type
15
+ t.integer :video_file_size
16
+ t.datetime :video_updated_at
17
+ end
18
+
19
+ end
20
+
21
+ def self.down
22
+ drop_table :videos
23
+ drop_table :sources
24
+ end
25
+ end
@@ -0,0 +1,6 @@
1
+ #if RAILS_ENV == 'development' || RAILS_ENV == 'test' || RAILS_ENV == 'production'
2
+ if Rails.env == 'development' || Rails.env == 'test'
3
+ Paperclip.options[:command_path] = "/opt/local/bin/"
4
+ else
5
+ Paperclip.options[:command_path] = "/usr/local/bin/"
6
+ end
@@ -11,12 +11,18 @@ require 'i18n/active_record'
11
11
  require 'merrycms/rails/routes'
12
12
  require 'kaminari'
13
13
  require 'meta_search'
14
+ require 'open4'
15
+ require 'rvideo'
16
+ require 'paperclip'
17
+ require 'paperclip_processors/video_thumbnail'
18
+ require 'paperclip_processors/poster'
14
19
 
15
20
  module Merrycms
16
21
  class Engine < Rails::Engine
17
22
 
18
23
  # I18n config
19
24
  #config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*', '*.{rb,yml}').to_s]
25
+ config.i18n.load_path += Dir[File.join(File.dirname(__FILE__), '../../config/locales/*/*.{rb,yml}')]
20
26
  config.i18n.load_path += Dir[File.join(File.dirname(__FILE__), '../../config/locales/*/admin/*.{rb,yml}')]
21
27
  config.i18n.default_locale = :fr
22
28
 
@@ -32,6 +32,11 @@ module ActionDispatch::Routing
32
32
  match 'translations/pending/:language' => 'translations#pending', :as => 'pending_translations'
33
33
  match 'translations/all/:language' => 'translations#all', :as => 'all_translations'
34
34
 
35
+ resources :images
36
+ resources :documents
37
+ resources :videos
38
+
39
+
35
40
  root :to => 'pages#index'
36
41
  end
37
42
  end
@@ -5,6 +5,9 @@ namespace :merrycms do
5
5
  system("rails generate merrycms:install_auth")
6
6
  system("rails generate merrycms:install_pages")
7
7
  system("rails generate merrycms:install_translations")
8
+ system("rails generate merrycms:install_images")
9
+ system("rails generate merrycms:install_documents")
10
+ system("rails generate merrycms:install_videos")
8
11
  system("rails generate jquery:install")
9
12
 
10
13
  Rake::Task['merrycms:import_assets'].invoke
@@ -0,0 +1,20 @@
1
+ module ValidatesAsImage
2
+
3
+ def self.included receiver
4
+ receiver.extend ClassMethods
5
+ end
6
+
7
+ module ClassMethods
8
+ def validates_as_image fields
9
+
10
+ validates_each fields do |record, attr, value|
11
+ if !value.queued_for_write.empty? and value.to_file
12
+ `identify "#{value.to_file.path}"`
13
+ record.errors.add attr, I18n.t("activerecord.errors.models.#{record.class.table_name.singularize}.attributes.#{attr}.wrong_format") unless $? == 0
14
+ end
15
+ end
16
+
17
+ end
18
+ end
19
+
20
+ end
data/lib/merrycms.rb CHANGED
@@ -1 +1,2 @@
1
- require 'merrycms/engine' if defined?(Rails) && Rails::VERSION::MAJOR == 3
1
+ require 'merrycms/engine' if defined?(Rails) && Rails::VERSION::MAJOR == 3
2
+ require 'merrycms/validates_as_image'
@@ -0,0 +1,38 @@
1
+ require 'rvideo'
2
+ require 'logger'
3
+
4
+ module Paperclip
5
+ class Poster < Processor
6
+
7
+ attr_accessor :time_offset, :geometry, :whiny
8
+
9
+ def initialize(file, options = {}, attachment = nil)
10
+ super
11
+ @time_offset = options[:time_offset] || '-4'
12
+ @instance = attachment.instance
13
+
14
+ @video = RVideo::Inspector.new(:file => file.path)
15
+ @instance.width = @video.width
16
+ @instance.height = @video.height
17
+
18
+ @whiny = options[:whiny].nil? ? true : options[:whiny]
19
+ @basename = File.basename(file.path, File.extname(file.path))
20
+ end
21
+
22
+ def make
23
+ dst = Tempfile.new([ @basename, 'jpg' ].compact.join("."))
24
+ dst.binmode
25
+
26
+ cmd = %Q[-itsoffset #{time_offset} -i "#{File.expand_path(file.path)}" -y -vcodec mjpeg -vframes 1 -an -f rawvideo ]
27
+ cmd << "-s #{@video.resolution} " if @video && @video.resolution
28
+ cmd << %Q["#{File.expand_path(dst.path)}"]
29
+
30
+ begin
31
+ success = Paperclip.run('ffmpeg', cmd)
32
+ rescue PaperclipCommandLineError
33
+ raise PaperclipError, "There was an error processing the thumbnail for #{@basename}" if whiny
34
+ end
35
+ dst
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,42 @@
1
+ require 'rvideo'
2
+ require 'logger'
3
+
4
+ module Paperclip
5
+ class VideoThumbnail < Processor
6
+
7
+ attr_accessor :time_offset, :geometry, :whiny
8
+
9
+ def initialize(file, options = {}, attachment = nil)
10
+ super
11
+ @time_offset = options[:time_offset] || '-4'
12
+
13
+ logger = Logger.new(STDOUT)
14
+
15
+ logger.debug("FILE : #{file.inspect}")
16
+ logger.debug("FILE PATH : #{file.path}")
17
+
18
+ video = RVideo::Inspector.new(:file => file.path)
19
+ logger.debug("VIDEO : #{video.inspect}")
20
+ logger.debug("VIDEO WIDTH : #{video.width}")
21
+
22
+ @whiny = options[:whiny].nil? ? true : options[:whiny]
23
+ @basename = File.basename(file.path, File.extname(file.path))
24
+ end
25
+
26
+ def make
27
+ dst = Tempfile.new([ @basename, 'jpg' ].compact.join("."))
28
+ dst.binmode
29
+
30
+ cmd = %Q[-itsoffset #{time_offset} -i "#{File.expand_path(file.path)}" -y -vcodec mjpeg -vframes 1 -an -f rawvideo ]
31
+ cmd << "-s #{video.resolution} " if video && video.resolution
32
+ cmd << %Q["#{File.expand_path(dst.path)}"]
33
+
34
+ begin
35
+ success = Paperclip.run('ffmpeg', cmd)
36
+ rescue PaperclipCommandLineError
37
+ raise PaperclipError, "There was an error processing the thumbnail for #{@basename}" if whiny
38
+ end
39
+ dst
40
+ end
41
+ end
42
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 2
9
- version: 0.1.2
8
+ - 4
9
+ version: 0.1.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Franck D'agostini
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-03-23 00:00:00 +01:00
17
+ date: 2011-03-31 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -151,6 +151,45 @@ dependencies:
151
151
  version: "0"
152
152
  type: :runtime
153
153
  version_requirements: *id010
154
+ - !ruby/object:Gem::Dependency
155
+ name: paperclip
156
+ prerelease: false
157
+ requirement: &id011 !ruby/object:Gem::Requirement
158
+ none: false
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ segments:
163
+ - 0
164
+ version: "0"
165
+ type: :runtime
166
+ version_requirements: *id011
167
+ - !ruby/object:Gem::Dependency
168
+ name: open4
169
+ prerelease: false
170
+ requirement: &id012 !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ segments:
176
+ - 0
177
+ version: "0"
178
+ type: :runtime
179
+ version_requirements: *id012
180
+ - !ruby/object:Gem::Dependency
181
+ name: newbamboo-rvideo
182
+ prerelease: false
183
+ requirement: &id013 !ruby/object:Gem::Requirement
184
+ none: false
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ segments:
189
+ - 0
190
+ version: "0"
191
+ type: :runtime
192
+ version_requirements: *id013
154
193
  description: "Admin panel for rails3 app : user management, pages, categories"
155
194
  email: franck.dagostini@gmail.com
156
195
  executables: []
@@ -162,29 +201,54 @@ extra_rdoc_files:
162
201
  files:
163
202
  - app/controllers/admin/base_controller.rb
164
203
  - app/controllers/admin/categories_controller.rb
204
+ - app/controllers/admin/documents_controller.rb
205
+ - app/controllers/admin/images_controller.rb
165
206
  - app/controllers/admin/pages_controller.rb
166
207
  - app/controllers/admin/translations_controller.rb
167
208
  - app/controllers/admin/users_controller.rb
209
+ - app/controllers/admin/videos_controller.rb
210
+ - app/helpers/admin/base_helper.rb
168
211
  - app/helpers/admin/categories_helper.rb
212
+ - app/helpers/admin/documents_helper.rb
213
+ - app/helpers/admin/images_helper.rb
169
214
  - app/helpers/admin/pages_helper.rb
170
215
  - app/helpers/admin/translations_helper.rb
171
216
  - app/helpers/admin/users_helper.rb
217
+ - app/helpers/admin/videos_helper.rb
172
218
  - app/models/category.rb
219
+ - app/models/document.rb
220
+ - app/models/image.rb
173
221
  - app/models/page.rb
174
222
  - app/models/role.rb
223
+ - app/models/source.rb
175
224
  - app/models/translation.rb
176
225
  - app/models/user.rb
177
- - app/views/admin/_nav.html.erb
226
+ - app/models/video.rb
178
227
  - app/views/admin/categories/_form.erb
179
228
  - app/views/admin/categories/edit.html.erb
180
229
  - app/views/admin/categories/index.html.erb
181
230
  - app/views/admin/categories/new.html.erb
182
231
  - app/views/admin/categories/sort.html.erb
232
+ - app/views/admin/documents/_form.erb
233
+ - app/views/admin/documents/_search.erb
234
+ - app/views/admin/documents/_subnav.erb
235
+ - app/views/admin/documents/edit.html.erb
236
+ - app/views/admin/documents/index.html.erb
237
+ - app/views/admin/documents/new.html.erb
238
+ - app/views/admin/images/_form.erb
239
+ - app/views/admin/images/_search.erb
240
+ - app/views/admin/images/_subnav.erb
241
+ - app/views/admin/images/edit.html.erb
242
+ - app/views/admin/images/index.html.erb
243
+ - app/views/admin/images/new.html.erb
183
244
  - app/views/admin/pages/_form.html.erb
184
245
  - app/views/admin/pages/_search.erb
185
246
  - app/views/admin/pages/edit.html.erb
186
247
  - app/views/admin/pages/index.html.erb
187
248
  - app/views/admin/pages/new.html.erb
249
+ - app/views/admin/shared/_nav.erb
250
+ - app/views/admin/shared/_subnav.erb
251
+ - app/views/admin/shared/_toplinks.erb
188
252
  - app/views/admin/translations/_edit_javascript.erb
189
253
  - app/views/admin/translations/_filter.html.erb
190
254
  - app/views/admin/translations/_form.erb
@@ -196,6 +260,14 @@ files:
196
260
  - app/views/admin/users/edit.html.erb
197
261
  - app/views/admin/users/index.html.erb
198
262
  - app/views/admin/users/new.html.erb
263
+ - app/views/admin/videos/_form.erb
264
+ - app/views/admin/videos/_head_info.erb
265
+ - app/views/admin/videos/_search.erb
266
+ - app/views/admin/videos/_subnav.erb
267
+ - app/views/admin/videos/edit.html.erb
268
+ - app/views/admin/videos/index.html.erb
269
+ - app/views/admin/videos/new.html.erb
270
+ - app/views/admin/videos/show.html.erb
199
271
  - app/views/devise/confirmations/new.html.erb
200
272
  - app/views/devise/mailer/confirmation_instructions.html.erb
201
273
  - app/views/devise/mailer/reset_password_instructions.html.erb
@@ -211,11 +283,14 @@ files:
211
283
  - app/views/layouts/login.html.erb
212
284
  - app/views/shared/_error_messages.html.erb
213
285
  - app/views/shared/_flashbox.html.erb
214
- - app/views/shared/_toplinks.html.erb
286
+ - config/locales/de/de.yml
215
287
  - config/locales/en/admin/missing.yml
288
+ - config/locales/en/en-US.yml
216
289
  - config/locales/fr/admin/admin.fr.yml
217
290
  - config/locales/fr/admin/category.fr.yml
218
291
  - config/locales/fr/admin/devise.fr.yml
292
+ - config/locales/fr/admin/documents.fr.yml
293
+ - config/locales/fr/admin/images.fr.yml
219
294
  - config/locales/fr/admin/merrycms.fr.yml
220
295
  - config/locales/fr/admin/missing.yml
221
296
  - config/locales/fr/admin/pages.fr.yml
@@ -223,21 +298,33 @@ files:
223
298
  - config/locales/fr/admin/toplinks.fr.yml
224
299
  - config/locales/fr/admin/translations.fr.yml
225
300
  - config/locales/fr/admin/users.fr.yml
301
+ - config/locales/fr/admin/videos.fr.yml
302
+ - config/locales/fr/fr.yml
226
303
  - lib/generators/merrycms/install_auth_generator.rb
304
+ - lib/generators/merrycms/install_documents_generator.rb
305
+ - lib/generators/merrycms/install_images_generator.rb
227
306
  - lib/generators/merrycms/install_pages_generator.rb
228
307
  - lib/generators/merrycms/install_translations_generator.rb
308
+ - lib/generators/merrycms/install_videos_generator.rb
309
+ - lib/generators/merrycms/templates/create_documents_migration.rb
310
+ - lib/generators/merrycms/templates/create_images_migration.rb
229
311
  - lib/generators/merrycms/templates/create_pages_and_categories_migration.rb
230
312
  - lib/generators/merrycms/templates/create_roles_migration.rb
231
313
  - lib/generators/merrycms/templates/create_translations_migration.rb
314
+ - lib/generators/merrycms/templates/create_videos_migration.rb
232
315
  - lib/generators/merrycms/templates/devise_create_users_migration.rb
233
316
  - lib/generators/merrycms/templates/devise_initializer.rb
234
317
  - lib/generators/merrycms/templates/locale_initializer.rb
318
+ - lib/generators/merrycms/templates/paperclip_initializer.rb
235
319
  - lib/generators/merrycms/templates/roles_users_migration.rb
236
320
  - lib/generators/merrycms/views_generator.rb
237
321
  - lib/merrycms.rb
238
322
  - lib/merrycms/engine.rb
239
323
  - lib/merrycms/rails/routes.rb
240
324
  - lib/merrycms/railties/merrycms_tasks.rake
325
+ - lib/merrycms/validates_as_image.rb
326
+ - lib/paperclip_processors/poster.rb
327
+ - lib/paperclip_processors/video_thumbnail.rb
241
328
  - README
242
329
  has_rdoc: true
243
330
  homepage: https://github.com/franck/merrycms
@@ -1,10 +0,0 @@
1
- <div id="nav">
2
- <ul id="left">
3
- <li><%= link_to t('.pages'), admin_pages_path %></li>
4
- <li><%= link_to t('.categories'), admin_categories_path %></li>
5
- <li><%= link_to t('.translations'), admin_translations_path %></li>
6
- </ul>
7
- <ul id="right">
8
- <li><%= link_to t('.users'), admin_users_path %></li>
9
- </ul>
10
- </div>