diff --git a/app/controllers/admin/assets_controller.rb b/app/controllers/admin/assets_controller.rb index fb4865a2..58f4a746 100644 --- a/app/controllers/admin/assets_controller.rb +++ b/app/controllers/admin/assets_controller.rb @@ -30,7 +30,7 @@ class Admin::AssetsController < OrbitBackendController def create @asset = Asset.new(params[:asset]) - @asset.filename = @asset.i18n_variable[I18n.locale] rescue nil + @asset.filename = @asset.title[I18n.locale] rescue nil if @asset.filename && @asset.save respond_to do |format| format.js { diff --git a/app/models/asset.rb b/app/models/asset.rb index 34ba57e5..22c4ae2d 100644 --- a/app/models/asset.rb +++ b/app/models/asset.rb @@ -7,17 +7,39 @@ class Asset field :filename field :description + + has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy + has_one :description, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy - has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy - - validates_presence_of :filename, :data, :asset_category_id + validates_presence_of :title, :data, :description belongs_to :asset_category belongs_to :assetable, polymorphic: true has_and_belongs_to_many :tags, :class_name => "AssetTag" + before_save :set_key + + def title + @title ||= I18nVariable.first(:conditions => {:key => 'title', :language_value_id => self.id, :language_value_type => self.class}) rescue nil + end + + def description + @description ||= I18nVariable.first(:conditions => {:key => 'description', :language_value_id => self.id, :language_value_type => self.class}) rescue nil + end + def sorted_tags tags.order_by(I18n.locale, :asc) end + + protected + + def set_key + if title.new_record? + title.key = 'title' + end + if description.new_record? + description.key = 'description' + end + end end diff --git a/app/views/admin/assets/file_upload.html.erb b/app/views/admin/assets/file_upload.html.erb index 9d0c7fb0..ec546667 100644 --- a/app/views/admin/assets/file_upload.html.erb +++ b/app/views/admin/assets/file_upload.html.erb @@ -11,7 +11,7 @@