refinerycms-photo-gallery 0.0.1.dev

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 (166) hide show
  1. data/Gemfile +26 -0
  2. data/LICENSE.md +8 -0
  3. data/README.md +224 -0
  4. data/app/assets/images/refinery/photo_gallery/admin/chosen-sprite.png +0 -0
  5. data/app/assets/images/refinery/photo_gallery/admin/icons/album.png +0 -0
  6. data/app/assets/images/refinery/photo_gallery/admin/icons/album_add.png +0 -0
  7. data/app/assets/images/refinery/photo_gallery/admin/icons/album_edit.png +0 -0
  8. data/app/assets/images/refinery/photo_gallery/admin/icons/cog.png +0 -0
  9. data/app/assets/images/refinery/photo_gallery/admin/icons/down.gif +0 -0
  10. data/app/assets/images/refinery/photo_gallery/admin/icons/folder.png +0 -0
  11. data/app/assets/images/refinery/photo_gallery/admin/icons/folder_add.png +0 -0
  12. data/app/assets/images/refinery/photo_gallery/admin/icons/folder_edit.png +0 -0
  13. data/app/assets/images/refinery/photo_gallery/admin/icons/loading.gif +0 -0
  14. data/app/assets/images/refinery/photo_gallery/admin/icons/page_copy.png +0 -0
  15. data/app/assets/images/refinery/photo_gallery/admin/icons/photo.png +0 -0
  16. data/app/assets/images/refinery/photo_gallery/admin/icons/photo_add.png +0 -0
  17. data/app/assets/images/refinery/photo_gallery/admin/icons/photo_edit.png +0 -0
  18. data/app/assets/images/refinery/photo_gallery/admin/icons/up.gif +0 -0
  19. data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/backgrounds.gif +0 -0
  20. data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/buttons-disabled.png +0 -0
  21. data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/buttons.png +0 -0
  22. data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/delete.gif +0 -0
  23. data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/done.gif +0 -0
  24. data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/error.gif +0 -0
  25. data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/throbber.gif +0 -0
  26. data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.plupload.queue/transp50.png +0 -0
  27. data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.ui.plupload/plupload-bw.png +0 -0
  28. data/app/assets/images/refinery/photo_gallery/admin/plupload/jquery.ui.plupload/plupload.png +0 -0
  29. data/app/assets/images/refinery/photo_gallery/admin/rss-feed.png +0 -0
  30. data/app/assets/images/refinery/photo_gallery/fancybox/blank.gif +0 -0
  31. data/app/assets/images/refinery/photo_gallery/fancybox/fancybox_loading.gif +0 -0
  32. data/app/assets/images/refinery/photo_gallery/fancybox/fancybox_sprite.png +0 -0
  33. data/app/assets/images/refinery/photo_gallery/fancybox/helpers/fancybox_buttons.png +0 -0
  34. data/app/assets/javascripts/refinery/photo_gallery/admin/jquery.chosen.min.js +10 -0
  35. data/app/assets/javascripts/refinery/photo_gallery/admin/photo_gallery.js +28 -0
  36. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/changelog.txt +218 -0
  37. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/cs.js +14 -0
  38. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/da.js +12 -0
  39. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/de.js +24 -0
  40. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/el.js +14 -0
  41. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/es.js +25 -0
  42. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/et.js +33 -0
  43. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/fa.js +37 -0
  44. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/fi.js +33 -0
  45. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/fr-ca.js +35 -0
  46. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/fr.js +25 -0
  47. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/hr.js +25 -0
  48. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/hu.js +33 -0
  49. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/it.js +24 -0
  50. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/ja.js +37 -0
  51. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/ko.js +36 -0
  52. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/lv.js +33 -0
  53. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/nl.js +21 -0
  54. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/pl.js +24 -0
  55. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/pt-br.js +35 -0
  56. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/ro.js +24 -0
  57. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/ru.js +21 -0
  58. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/sk.js +37 -0
  59. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/sr.js +14 -0
  60. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/i18n/sv.js +12 -0
  61. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/jquery.plupload.queue.js +195 -0
  62. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/jquery.ui.plupload.js +383 -0
  63. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/license.txt +339 -0
  64. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.browserplus.js +1 -0
  65. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.flash.js +226 -0
  66. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.flash.swf +0 -0
  67. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.full.js +2525 -0
  68. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.full.js.default +2525 -0
  69. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.gears.js +1 -0
  70. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.html4.js +1 -0
  71. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.html5.js +765 -0
  72. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.html5.js.default +765 -0
  73. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.js +618 -0
  74. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.silverlight.js +1 -0
  75. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.silverlight.xap +0 -0
  76. data/app/assets/javascripts/refinery/photo_gallery/admin/plupload/readme.md +46 -0
  77. data/app/assets/javascripts/refinery/photo_gallery/fancybox/CHANGELOG.md +68 -0
  78. data/app/assets/javascripts/refinery/photo_gallery/fancybox/README.md +212 -0
  79. data/app/assets/javascripts/refinery/photo_gallery/fancybox/helpers/jquery.fancybox-buttons.js +115 -0
  80. data/app/assets/javascripts/refinery/photo_gallery/fancybox/helpers/jquery.fancybox-media.js +85 -0
  81. data/app/assets/javascripts/refinery/photo_gallery/fancybox/helpers/jquery.fancybox-thumbs.js +157 -0
  82. data/app/assets/javascripts/refinery/photo_gallery/fancybox/jquery.fancybox.js +1463 -0
  83. data/app/assets/javascripts/refinery/photo_gallery/fancybox/jquery.fancybox.pack.js +35 -0
  84. data/app/assets/javascripts/refinery/photo_gallery/fancybox/lib/jquery.mousewheel-3.0.6.pack.js +13 -0
  85. data/app/assets/stylesheets/refinery/photo_gallery/admin/chosen.css.scss +396 -0
  86. data/app/assets/stylesheets/refinery/photo_gallery/admin/photo_gallery.css.scss +109 -0
  87. data/app/assets/stylesheets/refinery/photo_gallery/admin/plupload/jquery.plupload.queue.css.scss +177 -0
  88. data/app/assets/stylesheets/refinery/photo_gallery/admin/plupload/jquery.ui.plupload.css.scss +147 -0
  89. data/app/assets/stylesheets/refinery/photo_gallery/fancybox/helpers/jquery.fancybox-buttons.css.scss +85 -0
  90. data/app/assets/stylesheets/refinery/photo_gallery/fancybox/helpers/jquery.fancybox-thumbs.css +54 -0
  91. data/app/assets/stylesheets/refinery/photo_gallery/fancybox/jquery.fancybox.css.scss +234 -0
  92. data/app/controllers/refinery/photo_gallery/admin/albums_controller.rb +23 -0
  93. data/app/controllers/refinery/photo_gallery/admin/collections_controller.rb +10 -0
  94. data/app/controllers/refinery/photo_gallery/admin/photos_controller.rb +67 -0
  95. data/app/controllers/refinery/photo_gallery/albums_controller.rb +21 -0
  96. data/app/controllers/refinery/photo_gallery/collections_controller.rb +28 -0
  97. data/app/helpers/refinery/photo_gallery/admin/photos_helper.rb +10 -0
  98. data/app/helpers/refinery/photo_gallery/albums_helper.rb +11 -0
  99. data/app/helpers/refinery/photo_gallery/photo_gallery_helper.rb +58 -0
  100. data/app/middleware/refinery/photo_gallery/admin/flash_session_cookie_middleware.rb +27 -0
  101. data/app/models/refinery/photo_gallery/album.rb +60 -0
  102. data/app/models/refinery/photo_gallery/collection.rb +29 -0
  103. data/app/models/refinery/photo_gallery/collection_album.rb +8 -0
  104. data/app/models/refinery/photo_gallery/photo.rb +54 -0
  105. data/app/uploaders/refinery/photo_gallery/admin/file_uploader.rb +121 -0
  106. data/app/views/refinery/photo_gallery/admin/_submenu.html.erb +44 -0
  107. data/app/views/refinery/photo_gallery/admin/albums/_album.html.erb +31 -0
  108. data/app/views/refinery/photo_gallery/admin/albums/_form.html.erb +78 -0
  109. data/app/views/refinery/photo_gallery/admin/albums/_sortable_list.html.erb +7 -0
  110. data/app/views/refinery/photo_gallery/admin/albums/edit.html.erb +2 -0
  111. data/app/views/refinery/photo_gallery/admin/albums/index.html.erb +28 -0
  112. data/app/views/refinery/photo_gallery/admin/albums/new.html.erb +2 -0
  113. data/app/views/refinery/photo_gallery/admin/collections/_collection.html.erb +23 -0
  114. data/app/views/refinery/photo_gallery/admin/collections/_form.html.erb +32 -0
  115. data/app/views/refinery/photo_gallery/admin/collections/_sortable_list.html.erb +7 -0
  116. data/app/views/refinery/photo_gallery/admin/collections/edit.html.erb +2 -0
  117. data/app/views/refinery/photo_gallery/admin/collections/index.html.erb +28 -0
  118. data/app/views/refinery/photo_gallery/admin/collections/new.html.erb +2 -0
  119. data/app/views/refinery/photo_gallery/admin/collections/test.html.erb +39 -0
  120. data/app/views/refinery/photo_gallery/admin/photos/_destroy.js.erb +15 -0
  121. data/app/views/refinery/photo_gallery/admin/photos/_form.html.erb +7 -0
  122. data/app/views/refinery/photo_gallery/admin/photos/_form_actions.html.erb +6 -0
  123. data/app/views/refinery/photo_gallery/admin/photos/_form_fields.html.erb +31 -0
  124. data/app/views/refinery/photo_gallery/admin/photos/_form_fields_actions.html.erb +15 -0
  125. data/app/views/refinery/photo_gallery/admin/photos/edit_multiple.html.erb +9 -0
  126. data/app/views/refinery/photo_gallery/admin/photos/upload.html.erb +87 -0
  127. data/app/views/refinery/photo_gallery/albums/show.html.erb +26 -0
  128. data/app/views/refinery/photo_gallery/collections/index.html.erb +9 -0
  129. data/app/views/refinery/photo_gallery/collections/show.html.erb +19 -0
  130. data/app/views/refinery/photo_gallery/shared/_layout.html.erb +22 -0
  131. data/app/views/refinery/photo_gallery/shared/_submenu.html.erb +4 -0
  132. data/config/initializers/carrierwave.rb +7 -0
  133. data/config/initializers/form_builder.rb +26 -0
  134. data/config/initializers/refinery/core.rb +10 -0
  135. data/config/initializers/s3.rb +13 -0
  136. data/config/initializers/session_store.rb +10 -0
  137. data/config/locales/en.yml +95 -0
  138. data/config/locales/sk.yml +94 -0
  139. data/config/routes.rb +37 -0
  140. data/db/migrate/20120804063842_create_albums.rb +18 -0
  141. data/db/migrate/20120805131321_create_collections.rb +14 -0
  142. data/db/migrate/20120805131547_create_collection_albums.rb +12 -0
  143. data/db/migrate/20120805165238_create_photos.rb +19 -0
  144. data/db/migrate/20120805222125_add_indexes.rb +24 -0
  145. data/db/seeds.rb +21 -0
  146. data/lib/generators/refinery/photo_gallery_generator.rb +25 -0
  147. data/lib/generators/refinery/templates/config/initializers/refinery/photo_gallery.rb.erb +40 -0
  148. data/lib/refinery/photo_gallery.rb +30 -0
  149. data/lib/refinery/photo_gallery/configuration.rb +33 -0
  150. data/lib/refinery/photo_gallery/engine.rb +33 -0
  151. data/lib/refinery/photo_gallery/version.rb +17 -0
  152. data/lib/refinerycms-photo-gallery.rb +1 -0
  153. data/refinerycms-balder-photo-gallery.gemspec +30 -0
  154. data/screenshots/01_collections#index.png +0 -0
  155. data/screenshots/02_albums#create.png +0 -0
  156. data/screenshots/03_photos#upload.png +0 -0
  157. data/screenshots/04_photos#upload- chooser.png +0 -0
  158. data/screenshots/05_photo#upoad-queue.png +0 -0
  159. data/screenshots/06_photos#upload-uploading.png +0 -0
  160. data/screenshots/07_photos#upload-uploading_2.png +0 -0
  161. data/screenshots/08_photos#edit_multiple.png +0 -0
  162. data/screenshots/09_albums#index.png +0 -0
  163. data/screenshots/10_albums_EXIF_reading.png +0 -0
  164. data/screenshots/11_frontend_show.png +0 -0
  165. data/screenshots/12_show_photo_using_fancybox.png +0 -0
  166. metadata +323 -0
@@ -0,0 +1,234 @@
1
+ /*! fancyBox v2.0.6 fancyapps.com | fancyapps.com/fancybox/#license */
2
+ .fancybox-tmp iframe, .fancybox-tmp object {
3
+ vertical-align: top;
4
+ padding: 0;
5
+ margin: 0;
6
+ }
7
+
8
+ .fancybox-wrap {
9
+ position: absolute;
10
+ top: 0;
11
+ left: 0;
12
+ z-index: 8020;
13
+ }
14
+
15
+ .fancybox-skin {
16
+ position: relative;
17
+ padding: 0;
18
+ margin: 0;
19
+ background: #f9f9f9;
20
+ color: #444;
21
+ text-shadow: none;
22
+ -webkit-border-radius: 4px;
23
+ -moz-border-radius: 4px;
24
+ border-radius: 4px;
25
+ }
26
+
27
+ .fancybox-opened {
28
+ z-index: 8030;
29
+ }
30
+
31
+ .fancybox-opened .fancybox-skin {
32
+ -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
33
+ -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
34
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
35
+ }
36
+
37
+ .fancybox-outer, .fancybox-inner {
38
+ padding: 0;
39
+ margin: 0;
40
+ position: relative;
41
+ outline: none;
42
+ }
43
+
44
+ .fancybox-inner {
45
+ overflow: hidden;
46
+ }
47
+
48
+ .fancybox-type-iframe .fancybox-inner {
49
+ -webkit-overflow-scrolling: touch;
50
+ }
51
+
52
+ .fancybox-error {
53
+ color: #444;
54
+ font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
55
+ margin: 0;
56
+ padding: 10px;
57
+ }
58
+
59
+ .fancybox-image, .fancybox-iframe {
60
+ display: block;
61
+ width: 100%;
62
+ height: 100%;
63
+ border: 0;
64
+ padding: 0;
65
+ margin: 0;
66
+ vertical-align: top;
67
+ }
68
+
69
+ .fancybox-image {
70
+ max-width: 100%;
71
+ max-height: 100%;
72
+ }
73
+
74
+ #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
75
+ background-image: image-url('refinery/photo_gallery/fancybox/fancybox_sprite.png');
76
+ }
77
+
78
+ #fancybox-loading {
79
+ position: fixed;
80
+ top: 50%;
81
+ left: 50%;
82
+ margin-top: -22px;
83
+ margin-left: -22px;
84
+ background-position: 0 -108px;
85
+ opacity: 0.8;
86
+ cursor: pointer;
87
+ z-index: 8020;
88
+ }
89
+
90
+ #fancybox-loading div {
91
+ width: 44px;
92
+ height: 44px;
93
+ background: image-url('refinery/photo_gallery/fancybox/fancybox_loading.gif') center center no-repeat;
94
+ }
95
+
96
+ .fancybox-close {
97
+ position: absolute;
98
+ top: -18px;
99
+ right: -18px;
100
+ width: 36px;
101
+ height: 36px;
102
+ cursor: pointer;
103
+ z-index: 8040;
104
+ }
105
+
106
+ .fancybox-nav {
107
+ position: absolute;
108
+ top: 0;
109
+ width: 40%;
110
+ height: 100%;
111
+ cursor: pointer;
112
+ background: transparent image-url('refinery/photo_gallery/fancybox/blank.gif'); /* helps IE */
113
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
114
+ z-index: 8040;
115
+ }
116
+
117
+ .fancybox-prev {
118
+ left: 0;
119
+ }
120
+
121
+ .fancybox-next {
122
+ right: 0;
123
+ }
124
+
125
+ .fancybox-nav span {
126
+ position: absolute;
127
+ top: 50%;
128
+ width: 36px;
129
+ height: 34px;
130
+ margin-top: -18px;
131
+ cursor: pointer;
132
+ z-index: 8040;
133
+ visibility: hidden;
134
+ }
135
+
136
+ .fancybox-prev span {
137
+ left: 20px;
138
+ background-position: 0 -36px;
139
+ }
140
+
141
+ .fancybox-next span {
142
+ right: 20px;
143
+ background-position: 0 -72px;
144
+ }
145
+
146
+ .fancybox-nav:hover span {
147
+ visibility: visible;
148
+ }
149
+
150
+ .fancybox-tmp {
151
+ position: absolute;
152
+ top: -9999px;
153
+ left: -9999px;
154
+ padding: 0;
155
+ overflow: visible;
156
+ visibility: hidden;
157
+ }
158
+
159
+ /* Overlay helper */
160
+
161
+ #fancybox-overlay {
162
+ position: absolute;
163
+ top: 0;
164
+ left: 0;
165
+ overflow: hidden;
166
+ display: none;
167
+ z-index: 8010;
168
+ background: #000;
169
+ }
170
+
171
+ #fancybox-overlay.overlay-fixed {
172
+ position: fixed;
173
+ bottom: 0;
174
+ right: 0;
175
+ }
176
+
177
+ /* Title helper */
178
+
179
+ .fancybox-title {
180
+ visibility: hidden;
181
+ font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
182
+ position: relative;
183
+ text-shadow: none;
184
+ z-index: 8050;
185
+ }
186
+
187
+ .fancybox-opened .fancybox-title {
188
+ visibility: visible;
189
+ }
190
+
191
+ .fancybox-title-float-wrap {
192
+ position: absolute;
193
+ bottom: 0;
194
+ right: 50%;
195
+ margin-bottom: -35px;
196
+ z-index: 8030;
197
+ text-align: center;
198
+ }
199
+
200
+ .fancybox-title-float-wrap .child {
201
+ display: inline-block;
202
+ margin-right: -100%;
203
+ padding: 2px 20px;
204
+ background: transparent; /* Fallback for web browsers that doesn't support RGBa */
205
+ background: rgba(0, 0, 0, 0.8);
206
+ -webkit-border-radius: 15px;
207
+ -moz-border-radius: 15px;
208
+ border-radius: 15px;
209
+ text-shadow: 0 1px 2px #222;
210
+ color: #FFF;
211
+ font-weight: bold;
212
+ line-height: 24px;
213
+ white-space: nowrap;
214
+ }
215
+
216
+ .fancybox-title-outside-wrap {
217
+ position: relative;
218
+ margin-top: 10px;
219
+ color: #fff;
220
+ }
221
+
222
+ .fancybox-title-inside-wrap {
223
+ margin-top: 10px;
224
+ }
225
+
226
+ .fancybox-title-over-wrap {
227
+ position: absolute;
228
+ bottom: 0;
229
+ left: 0;
230
+ color: #fff;
231
+ padding: 10px;
232
+ background: #000;
233
+ background: rgba(0, 0, 0, .8);
234
+ }
@@ -0,0 +1,23 @@
1
+ module Refinery
2
+ module PhotoGallery
3
+ module Admin
4
+ class AlbumsController < ::Refinery::AdminController
5
+
6
+ crudify :'refinery/photo_gallery/album', :order => "created_at DESC" , :xhr_paging => true
7
+
8
+ def create
9
+ @album = Album.new(params[:album])
10
+
11
+ if @album.save(params[:album])
12
+ flash[:notice]= t('refinery.crudify.created',:what => "'#{@album.title}'" )
13
+
14
+ redirect_to refinery.upload_photo_gallery_admin_album_photos_path(@album)
15
+ else
16
+ render "new"
17
+ end
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,10 @@
1
+ module Refinery
2
+ module PhotoGallery
3
+ module Admin
4
+ class CollectionsController < ::Refinery::AdminController
5
+
6
+ crudify :'refinery/photo_gallery/collection', :order => "created_at DESC" , :xhr_paging => true
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,67 @@
1
+ # encoding: UTF-8
2
+
3
+ module Refinery
4
+ module PhotoGallery
5
+ module Admin
6
+ class PhotosController < ::Refinery::AdminController
7
+ include PhotosHelper
8
+ helper :"refinery/photo_gallery/admin/photos"
9
+
10
+ #TODO delete update method from routes
11
+ #TODO delete edit action from routes
12
+
13
+ #TODO after destroying album, delete empty folders
14
+
15
+ def upload
16
+ @album = Album.find( params[:album_id])
17
+ end
18
+
19
+ def create
20
+ @photo = Photo.new(params[:photo])
21
+ @photo.file = params[:file]
22
+
23
+ if @photo.save!
24
+ render :partial=> 'form_fields', :locals => {:photo => @photo }
25
+ else
26
+ render :text => @photo.errors.full_messages.join(" "), :status=> 500
27
+ end
28
+ end
29
+
30
+ def edit_multiple
31
+ @album = Album.find( params[:album_id] )
32
+ @photos = @album.photos.order("created_at DESC")
33
+ end
34
+
35
+
36
+ def update_multiple
37
+ photo_ids = params[:photos][:photo].map{ |key, hash| key }
38
+
39
+ @photos = Photo.find(photo_ids)
40
+ @photos.each do |photo|
41
+ photo.update_attributes(params[:photos][:photo][photo.id.to_s]) #TODO use ! method and validate exceptions
42
+ end
43
+
44
+ flash[:notice] = t('updated', :scope=> 'refinery.photo_gallery.admin.photos')
45
+ redirect_to refinery.photo_gallery_admin_albums_path
46
+ end
47
+
48
+
49
+ def destroy
50
+ @photo = Photo.find( params[:id])
51
+
52
+ if @photo.destroy
53
+ respond_to do |format|
54
+ format.js {
55
+ render :partial=> "destroy", :locals => {:photo => @photo}
56
+ }
57
+ end
58
+ else
59
+ render :text => "Error" , :status=> 500
60
+ end
61
+ end
62
+
63
+
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,21 @@
1
+ module Refinery
2
+ module PhotoGallery
3
+ class AlbumsController < ::ApplicationController
4
+ include PhotoGalleryHelper, AlbumsHelper
5
+ helper :'refinery/photo_gallery/photo_gallery'
6
+
7
+
8
+ def show
9
+ @collections = Collection.has_albums
10
+
11
+ @albums = Album.find_by_collection_id(params[:collection_id])
12
+
13
+ @photos = Photo.where("album_id = ? ", params[:id]).paginate(:page => params[:page])
14
+
15
+ respond_to do |format|
16
+ format.html
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,28 @@
1
+ module Refinery
2
+ module PhotoGallery
3
+ class CollectionsController < ::ApplicationController
4
+ include PhotoGalleryHelper
5
+ helper :'refinery/photo_gallery/photo_gallery'
6
+
7
+ def index
8
+ @collections = Collection.has_albums
9
+
10
+ respond_to do |format|
11
+ format.html
12
+ end
13
+ end
14
+
15
+ def show
16
+ @collections = Collection.has_albums
17
+
18
+ @albums = Album.find_by_collection_id(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ end
23
+ end
24
+
25
+
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,10 @@
1
+ module Refinery
2
+ module PhotoGallery
3
+ module Admin
4
+ module PhotosHelper
5
+
6
+
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module Refinery
2
+ module PhotoGallery
3
+ module AlbumsHelper
4
+
5
+ def photo_description(photo, photos, index)
6
+ t('.image') + ' ' + (index + 1 ).to_s + '/' + photos.length.to_s + ' ' + photo.title + '<br/><br/>' + photo.description
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,58 @@
1
+ module Refinery
2
+ module PhotoGallery
3
+ module PhotoGalleryHelper
4
+
5
+ def message_albums_length_is_zero
6
+ if @albums.length == 0
7
+ t('.no_albums')
8
+ end
9
+ end
10
+
11
+ def message_photos_length_is_zero
12
+ if @photos.length == 0
13
+ t('.no_photos')
14
+ end
15
+ end
16
+
17
+ def message_collections_length_is_zero
18
+ if @collections.length == 0
19
+ t('.no_collections')
20
+ end
21
+ end
22
+
23
+
24
+
25
+ def generate_photo_gallery_menu( collections, albums, options = {} )
26
+ content_tag(:ul, {}, options[:ul] ) do
27
+ collections.each do |collection|
28
+
29
+ if params[:collection_id].present? && params[:id].present? # in albums controller
30
+ collection_id = params[:collection_id]
31
+ elsif params[:id].present? #in collection controller
32
+ collection_id = params[:id]
33
+ else
34
+ collection_id = 0 #only ensure initialization
35
+ end
36
+
37
+ concat(content_tag(:li, {}, options[:li]) do
38
+ concat(link_to collection.title, refinery.photo_gallery_collection_path(collection))
39
+
40
+ # display albums of active collection
41
+ concat(content_tag(:ul, {}, options[:ul] ) do
42
+ if collection_id == collection.id.to_s
43
+ albums.each do |album|
44
+ concat(content_tag(:li, {}, options[:li]) do
45
+ link_to album.title, refinery.photo_gallery_collection_album_path({:id=> album.id, :collection_id => collection_id})
46
+ end )
47
+ end
48
+ end
49
+ end )
50
+
51
+
52
+ end)
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end