lolita-file-upload 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.6.0
@@ -25,7 +25,8 @@ class Lolita::UploadsController < ApplicationController
25
25
 
26
26
  def update
27
27
  authorization_proxy.can?(:update,@file.class)
28
- @file.update_attributes!(params[:file])
28
+ @file.update_attributes!(params[resource_param_name])
29
+ flash[:notice] = ::I18n.t("lolita.uploads_controller.update.notice")
29
30
  render_component *@tab.build("",:update,:file=>@file)
30
31
  end
31
32
 
@@ -39,7 +40,7 @@ class Lolita::UploadsController < ApplicationController
39
40
 
40
41
  def set_resource
41
42
  association_id = params["#{lolita_mapping.singular}_id"] || params[:upload]["#{lolita_mapping.singular}_id"] || params[:upload]["#{@tab.association.options[:as]}_id"]
42
- self.resource = resource_class.find_by_id(association_id)
43
+ self.resource = resource_class.find_by_id(association_id) || resource_class.new
43
44
  end
44
45
 
45
46
  def build_file
@@ -62,4 +63,8 @@ class Lolita::UploadsController < ApplicationController
62
63
  def tab_by_association name
63
64
  resource_class.lolita.tabs.detect{|tab| tab.type == :files && (tab.try(:association) && tab.association.name == name.to_sym)}
64
65
  end
66
+
67
+ def resource_param_name
68
+ @file.class.to_s.underscore.gsub("/","_")
69
+ end
65
70
  end
@@ -0,0 +1,2 @@
1
+ - tab.editable_fields.each do |field|
2
+ = render_component "lolita/configuration/field", :display, :field => field
@@ -0,0 +1,27 @@
1
+ - old_current_form = self.current_form
2
+ = form_for file, :url => send(:"lolita_#{resource_class.model_name.singular}_upload_path", "#{resource_class.model_name.singular}_id" => (resource.nil? || resource.new_record?) ? 0 : resource.id, :association => tab.association.name, :id=>file.id), :html => {:method=>:put,:remote=>true,:id=>"edit_#{tab.association.name}_#{file.id}", :class => "edit-file-form"} do |f|
3
+ - self.current_form = f
4
+ .file-editor
5
+ - unless flash[:notice].blank?
6
+ %p.notice= flash[:notice]
7
+ - unless flash[:error].blank?
8
+ %p.error= flash[:error]
9
+ - url = file.send(tab.uploader).normalized.blank? ? file.send(tab.uploader).url : file.send(tab.uploader).normalized.url
10
+ = image_tag url, :class => "editable-image"
11
+ - if file.class.respond_to?(:translations_configuration)
12
+ = render_component :"/lolita/configuration/tab/files", :language_switch, :tab => tab
13
+ .fields
14
+ - if file.class.respond_to?(:translations_configuration)
15
+ = render_component :"/lolita/configuration/tab/files", :translatable_fields, :tab => tab, :file => file
16
+ - else
17
+ = render_component :"/lolita/configuration/tab/files", :fields, :tab => tab, :file => file
18
+ %br
19
+ .action-links
20
+ .navigation
21
+ = link_to t("lolita.tabs.images.back"), send(:"lolita_#{tab.dbi.klass.model_name.singular}_uploads_path"), :remote => true, :class => "back"
22
+ - #= link_to t("lolita.tabs.images.previous"), "#", :class => "previous"
23
+ - #= link_to t("lolita.tabs.images.next"), "#", :class => "next"
24
+ .actions
25
+ = link_to t("lolita.tabs.images.delete"), send(:"lolita_#{tab.dbi.klass.model_name.singular}_upload_path", "#{tab.dbi.klass.model_name.singular}_id" => (resource.nil? || resource.new_record?) ? 0 : resource.id, :association => tab.association.name, :id=>file.id),:method=>:delete,:remote=>true,:confirm=>"Are you sure?", :class => "delete"
26
+ = link_to t("lolita.tabs.images.save"), "#", :class => "save"
27
+ - self.current_form = old_current_form
@@ -0,0 +1,3 @@
1
+ %ul{:class => "tab-language-switch", :id => "#{tab.name}_language_switch"}
2
+ - resource.translations_configuration.locales.by_resource_locale(resource).each do |locale|
3
+ %li{ :class => resource.original_locale.to_s == locale.name.to_s && "active" || "", :"data-locale" => locale.short_name, :"data-tab" => "file_edit_form", :"data-container" => ".edit-file-form"}= locale.humanized_short_name
@@ -0,0 +1,10 @@
1
+ .language-wrap{ :id => "#{file.original_locale}_for_file_edit_form", :class => "active"}
2
+ - tab.editable_fields.each do |field|
3
+ = render_component "lolita/configuration/field", :display, :field => field
4
+ - nested_form = tab.build_translations_nested_form(file)
5
+ - main_form = self.current_form
6
+ = self.current_form.fields_for nested_form.name, file.send(nested_form.build_method) do |n_form|
7
+ - self.current_form = n_form
8
+ .language-wrap{ :id => "#{n_form.object.locale}_for_file_edit_form"}
9
+ = render_component nested_form, :fields
10
+ - self.current_form = main_form
@@ -1,6 +1,4 @@
1
- <%= stylesheet_link_tag "lolita/upload/application_vendor.css" %>
2
- <%= javascript_include_tag "lolita/upload/application_vendor.js" %>
3
- <% unless ::I18n.locale.to_s.downcase=="en" %>
1
+ <% unless ::I18n.locale.to_s.downcase=="en" %>
4
2
  <%= javascript_include_tag "lolita/upload/I18n/#{Lolita.locale}.js"%>
5
3
  <% end %>
6
4
  <script type="text/javascript">
@@ -1,5 +1,9 @@
1
1
  en:
2
2
  lolita:
3
+ uploads_controller:
4
+ update:
5
+ notice: "File information successfuly saved"
6
+ error: "File information not saved"
3
7
  upload:
4
8
  errors:
5
9
  "file too big": "file too big (max %{value} %{unit})"
@@ -1,5 +1,23 @@
1
1
  lv:
2
2
  lolita:
3
+ uploads_controller:
4
+ update:
5
+ notice: "Faila informācija veiksmīgi saglabāta"
6
+ error: "Faila informācija netika saglabāta"
7
+ support:
8
+ bytes:
9
+ byte:
10
+ one: baits
11
+ other: baiti
12
+ kilobyte:
13
+ one: kilobaits
14
+ other: kilobaiti
15
+ megabyte:
16
+ one: megabaits
17
+ other: megabaiti
18
+ gigabyte:
19
+ one: gigabaits
20
+ other: gigabaiti
3
21
  upload:
4
22
  errors:
5
23
  "file too big": "fails par lielu (maksimums %{value} %{unit})"
@@ -48,6 +48,11 @@ if defined?(Rails)
48
48
  require "lolita-file-upload/rails"
49
49
  end
50
50
 
51
+ Lolita.after_setup do
52
+ Lolita.application.assets << "lolita/upload/application_vendor.css"
53
+ Lolita.application.assets << "lolita/upload/application_vendor.js"
54
+ end
55
+
51
56
  # How to connect multimedia engine with lolita resources
52
57
  # Detecting from tabs will not be very good idea because it will load many thing
53
58
  # There should be the way to connect it on demand when realy multimedia tab is used for resource like
@@ -7,7 +7,7 @@ module Lolita
7
7
  class Files < Lolita::Configuration::Tab::Base
8
8
 
9
9
  lolita_accessor :extensions, :maxfilesize, :filters
10
- attr_reader :association, :uploader, :association_type, :editable_fields
10
+ attr_reader :association, :uploader, :association_type
11
11
 
12
12
  # As any other Lolita::Configuration::Tab this should receive _dbi_ object.
13
13
  # Additional _args_ that may represent methods, for details see Lolita::Configuration::Tab.
@@ -17,7 +17,6 @@ module Lolita
17
17
  @dissociate = true
18
18
  @filters=[]
19
19
  @dbi=dbi
20
- @editable_fields=[]
21
20
  set_default_association
22
21
  super
23
22
  end
@@ -59,9 +58,27 @@ module Lolita
59
58
  Lolita::DBI::Base.new self.association.klass
60
59
  end
61
60
 
62
- def editable_fields *names
63
- @editable_fields = names unless names.empty?
64
- @editable_fields.empty? ? all_text_fields : @editable_fields
61
+ def field *args, &block
62
+ if association
63
+ field = Lolita::Configuration::Factory::Field.add(association_dbi,*args,&block)
64
+ @fields << field
65
+ field
66
+ end
67
+ end
68
+
69
+ def default_fields
70
+ if association
71
+ association_dbi.fields.each{|db_field|
72
+ self.field(:name => db_field.name, :type => db_field.type, :dbi_field => db_field) if db_field.content?
73
+ }
74
+ end
75
+ end
76
+
77
+ def editable_fields
78
+ if association
79
+ self.default_fields if self.fields.empty?
80
+ self.fields
81
+ end
65
82
  end
66
83
 
67
84
  def extension_white_list
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "lolita-file-upload"
8
- s.version = "0.5.0"
8
+ s.version = "0.6.0"
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-08-29"
12
+ s.date = "2012-09-03"
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 = [
@@ -40,14 +40,17 @@ Gem::Specification.new do |s|
40
40
  "app/views/components/lolita/configuration/tab/files/_destroy.js.erb",
41
41
  "app/views/components/lolita/configuration/tab/files/_display.html.erb",
42
42
  "app/views/components/lolita/configuration/tab/files/_edit.js.erb",
43
+ "app/views/components/lolita/configuration/tab/files/_fields.html.haml",
43
44
  "app/views/components/lolita/configuration/tab/files/_file.html.erb",
44
45
  "app/views/components/lolita/configuration/tab/files/_fixed_gallery.html.haml",
45
- "app/views/components/lolita/configuration/tab/files/_form.html.erb",
46
+ "app/views/components/lolita/configuration/tab/files/_form.html.haml",
46
47
  "app/views/components/lolita/configuration/tab/files/_image.html.erb",
48
+ "app/views/components/lolita/configuration/tab/files/_language_switch.html.haml",
47
49
  "app/views/components/lolita/configuration/tab/files/_list.html.erb",
48
50
  "app/views/components/lolita/configuration/tab/files/_list.js.erb",
49
51
  "app/views/components/lolita/configuration/tab/files/_list_form.html.erb",
50
52
  "app/views/components/lolita/configuration/tab/files/_row.html.erb",
53
+ "app/views/components/lolita/configuration/tab/files/_translatable_fields.html.haml",
51
54
  "app/views/components/lolita/configuration/tab/files/_update.js.erb",
52
55
  "app/views/components/lolita/configuration/tab/files/_upload_script.html.erb",
53
56
  "config/locales/en.yml",
@@ -1,13 +1,12 @@
1
1
  //= require jquery-ui
2
2
  //= require lolita/upload/plupload.full
3
3
  //= require lolita/upload/jquery.ui.plupload
4
- //= require_self
5
4
 
6
- // $("#filelist .file-item .window").height(function(index, height){
7
- // return ($("#content").width() - 10) * 0.3;
8
- // })
9
- //
10
- $(".file-editor .save").live("click", function() {
11
- $(this).closest("form").submit();
12
- return false;
13
- })
5
+ alert(1)
6
+ $(document).ready(function(){
7
+ $(document).on("click", ".file-editor a.save", function(event) {
8
+ $(this).closest("form").submit();
9
+ return false;
10
+ });
11
+ });
12
+
@@ -41,6 +41,8 @@
41
41
  -moz-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25);
42
42
  -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25);
43
43
  }
44
+ #main #content .box .edit-file-form .file-editor .notice {text-align: right; margin-bottom: 10px; color: green}
45
+ #main #content .box .edit-file-form .file-editor .error {text-align: right; margin-bottom: 10px; color: red}
44
46
  #main #content .box .edit-file-form .file-editor .editable-image {width: 35%; float: left;}
45
47
  #main #content .box .edit-file-form .file-editor .fields {width: 60%; float: right;}
46
48
  #main #content .box .edit-file-form .file-editor .fields label {width: 20%; display: inline-block;}
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.5.0
4
+ version: 0.6.0
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-08-29 00:00:00.000000000 Z
13
+ date: 2012-09-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: lolita
@@ -172,14 +172,17 @@ files:
172
172
  - app/views/components/lolita/configuration/tab/files/_destroy.js.erb
173
173
  - app/views/components/lolita/configuration/tab/files/_display.html.erb
174
174
  - app/views/components/lolita/configuration/tab/files/_edit.js.erb
175
+ - app/views/components/lolita/configuration/tab/files/_fields.html.haml
175
176
  - app/views/components/lolita/configuration/tab/files/_file.html.erb
176
177
  - app/views/components/lolita/configuration/tab/files/_fixed_gallery.html.haml
177
- - app/views/components/lolita/configuration/tab/files/_form.html.erb
178
+ - app/views/components/lolita/configuration/tab/files/_form.html.haml
178
179
  - app/views/components/lolita/configuration/tab/files/_image.html.erb
180
+ - app/views/components/lolita/configuration/tab/files/_language_switch.html.haml
179
181
  - app/views/components/lolita/configuration/tab/files/_list.html.erb
180
182
  - app/views/components/lolita/configuration/tab/files/_list.js.erb
181
183
  - app/views/components/lolita/configuration/tab/files/_list_form.html.erb
182
184
  - app/views/components/lolita/configuration/tab/files/_row.html.erb
185
+ - app/views/components/lolita/configuration/tab/files/_translatable_fields.html.haml
183
186
  - app/views/components/lolita/configuration/tab/files/_update.js.erb
184
187
  - app/views/components/lolita/configuration/tab/files/_upload_script.html.erb
185
188
  - config/locales/en.yml
@@ -262,7 +265,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
262
265
  version: '0'
263
266
  segments:
264
267
  - 0
265
- hash: 864699551639809361
268
+ hash: 843105153938331671
266
269
  required_rubygems_version: !ruby/object:Gem::Requirement
267
270
  none: false
268
271
  requirements:
@@ -1,24 +0,0 @@
1
- <%= form_tag send(:"lolita_#{resource_class.model_name.singular}_upload_path", "#{resource_class.model_name.singular}_id" => resource.id, :association => tab.association.name, :id=>file.id),:method=>:put,:remote=>true,:id=>"edit_#{tab.association.name}_#{file.id}", :class => "edit-file-form" do %>
2
- <div class="file-editor">
3
- <% url = file.send(tab.uploader).normalized.blank? ? file.send(tab.uploader).url : file.send(tab.uploader).normalized.url %>
4
- <%= image_tag url, :class => "editable-image" %>
5
- <div class="fields">
6
- <% tab.editable_fields.each do |name| %>
7
- <%= label_tag "file[#{name}]", file.class.human_attribute_name(name) %>
8
- <%= text_field_tag "file[#{name}]",file.send(name) %>
9
- <br />
10
- <% end %>
11
- </div>
12
- <div class="action-links">
13
- <div class="navigation">
14
- <%= link_to t("lolita.tabs.images.back"), send(:"lolita_#{tab.dbi.klass.model_name.singular}_uploads_path"), :remote => true, :class => "back" %>
15
- <%#= link_to t("lolita.tabs.images.previous"), "#", :class => "previous" %>
16
- <%#= link_to t("lolita.tabs.images.next"), "#", :class => "next" %>
17
- </div>
18
- <div class="actions">
19
- <%= link_to t("lolita.tabs.images.delete"), send(:"lolita_#{tab.dbi.klass.model_name.singular}_upload_path", "#{tab.dbi.klass.model_name.singular}_id" => (resource.nil? || resource.new_record?) ? 0 : resource.id, :association => tab.association.name, :id=>file.id),:method=>:delete,:remote=>true,:confirm=>"Are you sure?", :class => "delete" %>
20
- <%= link_to t("lolita.tabs.images.save"), "#", :class => "save" %>
21
- </div>
22
- </div>
23
- </div>
24
- <% end %>