lolita-file-upload 0.7.1 → 0.7.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 (42) hide show
  1. data/VERSION +1 -1
  2. data/app/assets/images/lolita/file-icons/asf.png +0 -0
  3. data/app/assets/images/lolita/file-icons/avi.png +0 -0
  4. data/app/assets/images/lolita/file-icons/bin.png +0 -0
  5. data/app/assets/images/lolita/file-icons/doc.png +0 -0
  6. data/app/assets/images/lolita/file-icons/docx.png +0 -0
  7. data/app/assets/images/lolita/file-icons/dvd.png +0 -0
  8. data/app/assets/images/lolita/file-icons/fon.png +0 -0
  9. data/app/assets/images/lolita/file-icons/html.png +0 -0
  10. data/app/assets/images/lolita/file-icons/ini.png +0 -0
  11. data/app/assets/images/lolita/file-icons/m4a.png +0 -0
  12. data/app/assets/images/lolita/file-icons/mov.png +0 -0
  13. data/app/assets/images/lolita/file-icons/mp2.png +0 -0
  14. data/app/assets/images/lolita/file-icons/mp3.png +0 -0
  15. data/app/assets/images/lolita/file-icons/mp4.png +0 -0
  16. data/app/assets/images/lolita/file-icons/mpeg.png +0 -0
  17. data/app/assets/images/lolita/file-icons/pdf.png +0 -0
  18. data/app/assets/images/lolita/file-icons/ppt.png +0 -0
  19. data/app/assets/images/lolita/file-icons/pptx.png +0 -0
  20. data/app/assets/images/lolita/file-icons/psd.png +0 -0
  21. data/app/assets/images/lolita/file-icons/rar.png +0 -0
  22. data/app/assets/images/lolita/file-icons/rtf.png +0 -0
  23. data/app/assets/images/lolita/file-icons/torrent.png +0 -0
  24. data/app/assets/images/lolita/file-icons/ttf.png +0 -0
  25. data/app/assets/images/lolita/file-icons/txt.png +0 -0
  26. data/app/assets/images/lolita/file-icons/unknown.png +0 -0
  27. data/app/assets/images/lolita/file-icons/wma.png +0 -0
  28. data/app/assets/images/lolita/file-icons/wmv.png +0 -0
  29. data/app/assets/images/lolita/file-icons/wri.png +0 -0
  30. data/app/assets/images/lolita/file-icons/xls.png +0 -0
  31. data/app/assets/images/lolita/file-icons/xlsx.png +0 -0
  32. data/app/assets/images/lolita/file-icons/xml.png +0 -0
  33. data/app/assets/images/lolita/file-icons/xsl.png +0 -0
  34. data/app/assets/images/lolita/file-icons/zip.png +0 -0
  35. data/app/assets/javascripts/lolita/file-upload/gallery.js.coffee +51 -14
  36. data/app/models/lolita/upload/file.rb +1 -1
  37. data/app/views/components/lolita/configuration/tab/files/_fixed_gallery.html.haml +5 -6
  38. data/app/views/components/lolita/configuration/tab/files/_image.html.erb +1 -3
  39. data/app/views/components/lolita/configuration/tab/files/_row.html.erb +1 -3
  40. data/lib/lolita-file-upload.rb +12 -0
  41. data/lolita-file-upload.gemspec +35 -2
  42. metadata +36 -3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.1
1
+ 0.7.2
@@ -5,12 +5,14 @@ class LolitaFileUploadGallery
5
5
 
6
6
  @buttonTitle = ""
7
7
  @buttonImage = ""
8
+ @availableFileIcons = {}
8
9
 
9
10
  GALLERY_SELECTOR = "#fixed-gallery"
10
11
  SLIDER_SELECTOR = "#fixed-gallery .slider"
11
12
  CLOSE_BUTTON_SELECTOR = "#fixed-gallery .close"
12
13
  TAPE_SELECTOR = "#fixed-gallery .slider ul"
13
- IMAGE_SELECTOR = "#fixed-gallery .slider li img"
14
+ IMAGE_SELECTOR = "#fixed-gallery .slider li .image img"
15
+ FILE_ICON_SELECTOR = "#fixed-gallery .slider li .file img"
14
16
 
15
17
  @get: ->
16
18
  if not @_instance?
@@ -31,11 +33,13 @@ class LolitaFileUploadGallery
31
33
 
32
34
  add: (filePath, originalFilePath) ->
33
35
  if @_isImagePath(filePath)
34
- $imageContainer = @_imageContainer(filePath, originalFilePath)
35
- if @._initialized
36
- @_addToDOM($imageContainer)
37
- else
38
- @_addToQueue($imageContainer)
36
+ $fileContainer = @_imageContainer(filePath, originalFilePath)
37
+ else
38
+ $fileContainer = @_fileContainer(filePath, originalFilePath)
39
+ if @._initialized
40
+ @_addToDOM($fileContainer)
41
+ else
42
+ @_addToQueue($fileContainer)
39
43
 
40
44
  _observeImageDropping: ->
41
45
  tinyMCE.onAddEditor.add( (mgr, editor) =>
@@ -50,8 +54,8 @@ class LolitaFileUploadGallery
50
54
  })
51
55
 
52
56
  _makeImagesDraggable: ->
53
- $(IMAGE_SELECTOR).draggable("destroy")
54
- $(IMAGE_SELECTOR).draggable({
57
+ $(IMAGE_SELECTOR + ',' + FILE_ICON_SELECTOR).draggable("destroy")
58
+ $(IMAGE_SELECTOR + ',' + FILE_ICON_SELECTOR).draggable({
55
59
  appendTo: "body"
56
60
  zIndex: 20000
57
61
  helper: "clone"
@@ -91,14 +95,39 @@ class LolitaFileUploadGallery
91
95
  _isImagePath: (filePath) ->
92
96
  filePath.match(/\.(jpg|jpeg|gif|png|ico)$/)
93
97
 
98
+ _getFileExtension: (filePath) ->
99
+ filePath.substr(filePath.lastIndexOf('.') + 1)
100
+
101
+ _getFileIcon: (filePath) ->
102
+ extension = @_getFileExtension(filePath)
103
+ if LolitaFileUploadGallery.availableFileIcons[extension]
104
+ LolitaFileUploadGallery.availableFileIcons[extension]
105
+ else
106
+ LolitaFileUploadGallery.availableFileIcons['unknown']
107
+
108
+ _getFileBasename: (filePath) ->
109
+ return filePath.replace(/\\/g,'/').replace( /.*\//, '' );
110
+
94
111
  _tape: ->
95
112
  $(TAPE_SELECTOR)
96
113
 
97
114
  _imageContainer: (imagePath, originalImagePath) ->
98
- $("<li><a href='#'>" + @_imageTag(imagePath, originalImagePath) + "</a></li>")
115
+ $('<li>').html(
116
+ $('<a>').attr('href','#').addClass('image').html(
117
+ @_imageTag(imagePath, originalImagePath)
118
+ )
119
+ )
99
120
 
100
121
  _imageTag: (imagePath, originalImagePath) ->
101
- "<img src='"+ imagePath + "' alt='" + imagePath + "' data-original-url='" + originalImagePath + "' />"
122
+ $('<img>').attr({src: imagePath, alt: imagePath}).data('original-url', originalImagePath)
123
+
124
+ _fileContainer: (filePath, originalFilePath) ->
125
+ $('<li>').html(
126
+ $('<a>').attr('href', '#').addClass('file').html(
127
+ $('<img>').attr({src: @_getFileIcon(originalFilePath), title: @_getFileBasename(originalFilePath)})
128
+ .data('original-url', originalFilePath)
129
+ )
130
+ )
102
131
 
103
132
  _addToDOM: ($imageContainer) ->
104
133
  @_tape().append($imageContainer)
@@ -114,16 +143,24 @@ class LolitaFileUploadGallery
114
143
  $(editor.contentDocument).ready ->
115
144
  self._editorContainer(editor).droppable({
116
145
  drop: (event, ui) =>
117
- editor.selection.setContent(self._insertableImageTag(ui.draggable))
146
+ editor.selection.setContent(self._insertableTag(ui.draggable))
118
147
  })
119
148
  )
120
149
 
121
150
  _editorContainer: (editor) ->
122
151
  $("#" + editor.editorContainer).find(".mceIframeContainer")
123
152
 
124
- _insertableImageTag: (draggableImage) ->
125
- imageSrc = draggableImage.data("original-url")
126
- "<img src='" + imageSrc + "' alt='" + imageSrc + "' />"
153
+ _insertableTag: (draggable) ->
154
+ filePath = draggable.data("original-url")
155
+ if @_isImagePath(filePath)
156
+ @_insertableImageTag(filePath)
157
+ else
158
+ @_insertableFileTag(filePath)
127
159
 
160
+ _insertableImageTag: (imagePath) ->
161
+ "<img src='" + imagePath + "' alt='" + imagePath + "' />"
162
+
163
+ _insertableFileTag: (filePath) ->
164
+ "<a class='file-icon' href='" + filePath + "'><img src='" + @_getFileIcon(filePath) + "' /><span>" + @_getFileBasename(filePath) + "</span></a>"
128
165
 
129
166
  window.LolitaFileUploadGallery = LolitaFileUploadGallery
@@ -9,7 +9,7 @@ module Lolita
9
9
  #validate :size_limit FIXME to work with more than one tab
10
10
  before_save :set_metadata
11
11
  #before_create :singularize_files
12
-
12
+
13
13
 
14
14
  private
15
15
 
@@ -4,11 +4,10 @@
4
4
  %ul
5
5
  %div.close.ui-state-default.ui-corner-all
6
6
  %span.ui-icon.ui-icon-closethick
7
-
7
+
8
8
  :javascript
9
- $(function(){
10
- LolitaFileUploadGallery.buttonTitle = '#{t('lolita.tinymce.gallery')}'
11
- LolitaFileUploadGallery.buttonImage = '#{asset_path('lolita/tinymce_gallery.png')}'
12
- LolitaFileUploadGallery.get().init()
13
- })
9
+ LolitaFileUploadGallery.availableFileIcons = #{Lolita::FileUpload.get_available_file_icons.to_json}
10
+ LolitaFileUploadGallery.buttonTitle = '#{t('lolita.tinymce.gallery')}'
11
+ LolitaFileUploadGallery.buttonImage = '#{asset_path('lolita/tinymce_gallery.png')}'
12
+ LolitaFileUploadGallery.get().init()
14
13
 
@@ -16,9 +16,7 @@
16
16
  <p><%= File.basename(file.send(tab.uploader).url) %></p>
17
17
  </div>
18
18
  <script>
19
- <% if file.send(tab.uploader).preview %>
20
- LolitaFileUploadGallery.get().add('<%= file.send(tab.uploader).preview.url %>', '<%= file.send(tab.uploader).url %>')
21
- <% end %>
19
+ LolitaFileUploadGallery.get().add('<%= file.send(tab.uploader).preview ? file.send(tab.uploader).preview.url : '' %>', '<%= file.send(tab.uploader).url %>')
22
20
  <% if tab.association_type == :many
23
21
  ids = "#{resource_name}[#{tab.association.name.to_s.singularize}_ids][]"
24
22
  else
@@ -1,8 +1,6 @@
1
1
  <tr id="upload_<%=tab.association.name%>_row_<%=file.id%>" data-<%=tab.association.name%>-id="<%=file.id%>">
2
2
  <%= render_component *tab.build("",:cells,:file=>file) %>
3
3
  <script>
4
- <% if file.send(tab.uploader).preview %>
5
- LolitaFileUploadGallery.get().add('<%= file.send(tab.uploader).preview.url %>', '<%= file.send(tab.uploader).url %>)
6
- <% end %>
4
+ LolitaFileUploadGallery.get().add('<%= file.send(tab.uploader).preview ? file.send(tab.uploader).preview.url : '' %>', '<%= file.send(tab.uploader).url %>)
7
5
  </script>
8
6
  </tr>
@@ -9,6 +9,18 @@ I18n.load_path += Dir[File.expand_path("config/locales")+"/**/*.yml"] if defined
9
9
 
10
10
  module Lolita
11
11
  module FileUpload
12
+ class << self
13
+ def get_available_file_icons
14
+ @available_file_icons ||= {}.tap do |results|
15
+ Dir.entries(::File.dirname(__FILE__) + "/../app/assets/images/lolita/file-icons").each do |item|
16
+ if ::File.extname(item) == '.png'
17
+ results[::File.basename(item, '.png')] =
18
+ ActionController::Base.helpers.asset_path(::File.join('lolita/file-icons', ::File.basename(item)))
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
12
24
  end
13
25
  module Support
14
26
  autoload :Bytes, "support/bytes"
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "lolita-file-upload"
8
- s.version = "0.7.1"
8
+ s.version = "0.7.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["ITHouse", "Arturs Meisters"]
12
- s.date = "2012-10-04"
12
+ s.date = "2012-11-12"
13
13
  s.description = "File upload gem for Lolita with with fulll integration - models, controller, views"
14
14
  s.email = "support@ithouse.lv"
15
15
  s.extra_rdoc_files = [
@@ -24,6 +24,39 @@ Gem::Specification.new do |s|
24
24
  "README.rdoc",
25
25
  "Rakefile",
26
26
  "VERSION",
27
+ "app/assets/images/lolita/file-icons/asf.png",
28
+ "app/assets/images/lolita/file-icons/avi.png",
29
+ "app/assets/images/lolita/file-icons/bin.png",
30
+ "app/assets/images/lolita/file-icons/doc.png",
31
+ "app/assets/images/lolita/file-icons/docx.png",
32
+ "app/assets/images/lolita/file-icons/dvd.png",
33
+ "app/assets/images/lolita/file-icons/fon.png",
34
+ "app/assets/images/lolita/file-icons/html.png",
35
+ "app/assets/images/lolita/file-icons/ini.png",
36
+ "app/assets/images/lolita/file-icons/m4a.png",
37
+ "app/assets/images/lolita/file-icons/mov.png",
38
+ "app/assets/images/lolita/file-icons/mp2.png",
39
+ "app/assets/images/lolita/file-icons/mp3.png",
40
+ "app/assets/images/lolita/file-icons/mp4.png",
41
+ "app/assets/images/lolita/file-icons/mpeg.png",
42
+ "app/assets/images/lolita/file-icons/pdf.png",
43
+ "app/assets/images/lolita/file-icons/ppt.png",
44
+ "app/assets/images/lolita/file-icons/pptx.png",
45
+ "app/assets/images/lolita/file-icons/psd.png",
46
+ "app/assets/images/lolita/file-icons/rar.png",
47
+ "app/assets/images/lolita/file-icons/rtf.png",
48
+ "app/assets/images/lolita/file-icons/torrent.png",
49
+ "app/assets/images/lolita/file-icons/ttf.png",
50
+ "app/assets/images/lolita/file-icons/txt.png",
51
+ "app/assets/images/lolita/file-icons/unknown.png",
52
+ "app/assets/images/lolita/file-icons/wma.png",
53
+ "app/assets/images/lolita/file-icons/wmv.png",
54
+ "app/assets/images/lolita/file-icons/wri.png",
55
+ "app/assets/images/lolita/file-icons/xls.png",
56
+ "app/assets/images/lolita/file-icons/xlsx.png",
57
+ "app/assets/images/lolita/file-icons/xml.png",
58
+ "app/assets/images/lolita/file-icons/xsl.png",
59
+ "app/assets/images/lolita/file-icons/zip.png",
27
60
  "app/assets/images/lolita/file-upload/back.png",
28
61
  "app/assets/images/lolita/file-upload/delete.png",
29
62
  "app/assets/images/lolita/file-upload/edit.png",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lolita-file-upload
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-04 00:00:00.000000000 Z
13
+ date: 2012-11-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: lolita
@@ -156,6 +156,39 @@ files:
156
156
  - README.rdoc
157
157
  - Rakefile
158
158
  - VERSION
159
+ - app/assets/images/lolita/file-icons/asf.png
160
+ - app/assets/images/lolita/file-icons/avi.png
161
+ - app/assets/images/lolita/file-icons/bin.png
162
+ - app/assets/images/lolita/file-icons/doc.png
163
+ - app/assets/images/lolita/file-icons/docx.png
164
+ - app/assets/images/lolita/file-icons/dvd.png
165
+ - app/assets/images/lolita/file-icons/fon.png
166
+ - app/assets/images/lolita/file-icons/html.png
167
+ - app/assets/images/lolita/file-icons/ini.png
168
+ - app/assets/images/lolita/file-icons/m4a.png
169
+ - app/assets/images/lolita/file-icons/mov.png
170
+ - app/assets/images/lolita/file-icons/mp2.png
171
+ - app/assets/images/lolita/file-icons/mp3.png
172
+ - app/assets/images/lolita/file-icons/mp4.png
173
+ - app/assets/images/lolita/file-icons/mpeg.png
174
+ - app/assets/images/lolita/file-icons/pdf.png
175
+ - app/assets/images/lolita/file-icons/ppt.png
176
+ - app/assets/images/lolita/file-icons/pptx.png
177
+ - app/assets/images/lolita/file-icons/psd.png
178
+ - app/assets/images/lolita/file-icons/rar.png
179
+ - app/assets/images/lolita/file-icons/rtf.png
180
+ - app/assets/images/lolita/file-icons/torrent.png
181
+ - app/assets/images/lolita/file-icons/ttf.png
182
+ - app/assets/images/lolita/file-icons/txt.png
183
+ - app/assets/images/lolita/file-icons/unknown.png
184
+ - app/assets/images/lolita/file-icons/wma.png
185
+ - app/assets/images/lolita/file-icons/wmv.png
186
+ - app/assets/images/lolita/file-icons/wri.png
187
+ - app/assets/images/lolita/file-icons/xls.png
188
+ - app/assets/images/lolita/file-icons/xlsx.png
189
+ - app/assets/images/lolita/file-icons/xml.png
190
+ - app/assets/images/lolita/file-icons/xsl.png
191
+ - app/assets/images/lolita/file-icons/zip.png
159
192
  - app/assets/images/lolita/file-upload/back.png
160
193
  - app/assets/images/lolita/file-upload/delete.png
161
194
  - app/assets/images/lolita/file-upload/edit.png
@@ -273,7 +306,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
273
306
  version: '0'
274
307
  segments:
275
308
  - 0
276
- hash: 926110708312602261
309
+ hash: 4195418244213689896
277
310
  required_rubygems_version: !ruby/object:Gem::Requirement
278
311
  none: false
279
312
  requirements: