Add asset model and controller
This commit is contained in:
parent
d5c5200b71
commit
a19e0dba6c
|
@ -0,0 +1,51 @@
|
|||
class Admin::AssetsController < ApplicationController
|
||||
|
||||
layout "admin"
|
||||
|
||||
def show
|
||||
@asset = Asset.find(params[:id])
|
||||
send_data @asset.data.file.read, :filename => @asset.filename,
|
||||
:type => @asset.data.content_type,
|
||||
:disposition => 'inline' # or 'attachment'
|
||||
end
|
||||
|
||||
def index
|
||||
@assets = Asset.find(:all)
|
||||
end
|
||||
|
||||
def edit
|
||||
@asset = Asset.find(params[:id])
|
||||
end
|
||||
|
||||
def new
|
||||
@asset = Asset.new
|
||||
end
|
||||
|
||||
def create
|
||||
@asset = Asset.new(params[:asset])
|
||||
if @asset.save
|
||||
redirect_to admin_assets_url
|
||||
else
|
||||
render :action => :new
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def update
|
||||
@asset = Asset.find(params[:id])
|
||||
if @asset.update_attributes(params[:asset])
|
||||
redirect_to admin_assets_url
|
||||
else
|
||||
render :action => :edit
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def destroy
|
||||
@asset = Asset.find(params[:id])
|
||||
@asset.destroy
|
||||
|
||||
redirect_to admin_assets_url
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,21 @@
|
|||
class Asset
|
||||
|
||||
include MongoMapper::Document
|
||||
include Grip::HasAttachment
|
||||
|
||||
key :filename, String, :required => true
|
||||
key :description, String
|
||||
|
||||
has_grid_attachment :data, :required => true
|
||||
|
||||
before_validation :setup_filename
|
||||
|
||||
protected
|
||||
|
||||
def setup_filename
|
||||
if self.filename.blank? && self.data
|
||||
self.filename = self.data.file_name
|
||||
end
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,3 @@
|
|||
class AssetImage < Asset
|
||||
|
||||
end
|
|
@ -0,0 +1,3 @@
|
|||
class AssetJavascript < Asset
|
||||
|
||||
end
|
|
@ -0,0 +1,2 @@
|
|||
class AssetPdf < Asset
|
||||
end
|
|
@ -0,0 +1,3 @@
|
|||
class AssetStylesheet < Asset
|
||||
|
||||
end
|
|
@ -0,0 +1,16 @@
|
|||
<%= f.error_messages %>
|
||||
|
||||
<p>
|
||||
<%= f.label :filename, "FileName" %>
|
||||
<%= f.text_field :filename, :class => 'text' %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= f.label :description, "Description" %>
|
||||
<%= f.text_field :description, :class => 'text' %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= f.label :data, "Data" %>
|
||||
<%= f.file_field :data %>
|
||||
</p>
|
|
@ -0,0 +1,12 @@
|
|||
<h1>Editing assets</h1>
|
||||
|
||||
<% form_for @asset, :url => admin_asset_path(@asset), :html => { :multipart => true } do |f| %>
|
||||
<%= f.error_messages %>
|
||||
|
||||
<%= render :partial => "form", :locals => { :f => f } %>
|
||||
<p>
|
||||
<%= f.submit 'Update' %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<%= link_to 'Back', admin_assets_path %>
|
|
@ -0,0 +1,29 @@
|
|||
<h1>Listing assets</h1>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>檔案</th>
|
||||
<th>描述</th>
|
||||
<th>格式</th>
|
||||
<th>原上傳檔名</th>
|
||||
<th>檔案大小</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
<% @assets.each do |asset| %>
|
||||
<tr>
|
||||
<td><%= link_to asset.filename, admin_asset_path(asset) %></td>
|
||||
<td><%= asset.description %></td>
|
||||
<td><%= asset.data.content_type %></td>
|
||||
<td><%= asset.data.file_name %></td>
|
||||
<td><%= number_to_human_size(asset.data.file_size) %></td>
|
||||
<td><%= link_to t(:edit), edit_admin_asset_path(asset) %></td>
|
||||
<td><%= link_to t(:delete), admin_asset_path(asset), :confirm => 'Are you sure?', :method => :delete %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
||||
|
||||
<br />
|
||||
|
||||
<%= link_to t(:new_asset, :scope => :admin), new_admin_asset_path, :class => 'button positive' %>
|
|
@ -0,0 +1,11 @@
|
|||
<h1>New Asset</h1>
|
||||
|
||||
<% form_for :asset, :url => admin_assets_path, :html => { :multipart => true } do |f| %>
|
||||
<%= f.error_messages %>
|
||||
|
||||
<%= render :partial => "form", :locals => { :f => f } %>
|
||||
|
||||
<p>
|
||||
<%= f.submit 'Create' %>
|
||||
</p>
|
||||
<% end %>
|
|
@ -22,6 +22,7 @@
|
|||
<li><%= link_to t(:home, :scope => :admin), root_path %></li>
|
||||
<li><%= link_to t(:item, :scope => :admin), admin_items_path %></li>
|
||||
<li><%= link_to t(:layout, :scope => :admin), admin_layouts_path %></li>
|
||||
<li><%= link_to t(:asset, :scope => :admin), admin_assets_path %></li>
|
||||
<li><%= link_to t(:announcement, :scope => :admin), panel_announcements_path( :entry_name => 'news' ) %></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -22,7 +22,8 @@ Rails::Initializer.run do |config|
|
|||
|
||||
config.gem "liquid"
|
||||
config.gem "mongo_mapper"
|
||||
|
||||
config.gem 'grip'
|
||||
|
||||
# Only load the plugins named here, in the order given (default is alphabetical).
|
||||
# :all can be used as a placeholder for all plugins not explicitly named
|
||||
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
||||
|
|
|
@ -0,0 +1,132 @@
|
|||
# Chinese (Taiwan) translations for Ruby on Rails
|
||||
# by tsechingho (http://github.com/tsechingho)
|
||||
|
||||
:zh_tw:
|
||||
date:
|
||||
formats:
|
||||
default: "%Y-%m-%d"
|
||||
short: "%b%d日"
|
||||
long: "%Y年%b%d日"
|
||||
day_names: [星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
|
||||
abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
|
||||
month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
|
||||
abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
|
||||
order: [ :year, :month, :day ]
|
||||
|
||||
time:
|
||||
formats:
|
||||
default: "%Y年%b%d日 %A %H:%M:%S %Z"
|
||||
short: "%b%d日 %H:%M"
|
||||
long: "%Y年%b%d日 %H:%M"
|
||||
am: "上午"
|
||||
pm: "下午"
|
||||
|
||||
datetime:
|
||||
distance_in_words:
|
||||
half_a_minute: "半分鐘"
|
||||
less_than_x_seconds:
|
||||
one: "不到一秒"
|
||||
other: "不到 {{count}} 秒"
|
||||
x_seconds:
|
||||
one: "一秒"
|
||||
other: "{{count}} 秒"
|
||||
less_than_x_minutes:
|
||||
one: "不到一分鐘"
|
||||
other: "不到 {{count}} 分鐘"
|
||||
x_minutes:
|
||||
one: "一分鐘"
|
||||
other: "{{count}} 分鐘"
|
||||
about_x_hours:
|
||||
one: "大約一小時"
|
||||
other: "大約 {{count}} 小時"
|
||||
x_days:
|
||||
one: "一天"
|
||||
other: "{{count}} 天"
|
||||
about_x_months:
|
||||
one: "大約一個月"
|
||||
other: "大約 {{count}} 個月"
|
||||
x_months:
|
||||
one: "一個月"
|
||||
other: "{{count}} 個月"
|
||||
about_x_years:
|
||||
one: "大約一年"
|
||||
other: "大約 {{count}} 年"
|
||||
over_x_years:
|
||||
one: "一年多"
|
||||
other: "{{count}} 年多"
|
||||
prompts:
|
||||
year: "年"
|
||||
month: "月"
|
||||
day: "日"
|
||||
hour: "時"
|
||||
minute: "分"
|
||||
second: "秒"
|
||||
|
||||
number:
|
||||
format:
|
||||
separator: "."
|
||||
delimiter: ","
|
||||
precision: 3
|
||||
currency:
|
||||
format:
|
||||
format: "%u %n"
|
||||
unit: "NT$"
|
||||
separator: "."
|
||||
delimiter: ","
|
||||
precision: 2
|
||||
percentage:
|
||||
format:
|
||||
delimiter: ""
|
||||
precision:
|
||||
format:
|
||||
delimiter: ""
|
||||
human:
|
||||
format:
|
||||
delimiter: ""
|
||||
precision: 1
|
||||
storage_units:
|
||||
format: "%n %u"
|
||||
units:
|
||||
byte:
|
||||
one: "Byte"
|
||||
other: "Bytes"
|
||||
kb: "KB"
|
||||
mb: "MB"
|
||||
gb: "GB"
|
||||
tb: "TB"
|
||||
|
||||
support:
|
||||
array:
|
||||
words_connector: ", "
|
||||
two_words_connector: " 和 "
|
||||
last_word_connector: ", 和 "
|
||||
|
||||
activerecord:
|
||||
errors:
|
||||
template:
|
||||
header:
|
||||
one: "有 1 個錯誤發生使得「{{model}}」無法被儲存。"
|
||||
other: "有 {{count}} 個錯誤發生使得「{{model}}」無法被儲存。"
|
||||
body: "下面欄位有問題:"
|
||||
messages:
|
||||
inclusion: "沒有包含在列表中"
|
||||
exclusion: "是被保留的"
|
||||
invalid: "是無效的"
|
||||
confirmation: "不符合確認值"
|
||||
accepted: "必須是可被接受的"
|
||||
empty: "不能留空"
|
||||
blank: "不能是空白字元"
|
||||
too_long: "過長(最長是 {{count}} 個字)"
|
||||
too_short: "過短(最短是 {{count}} 個字)"
|
||||
wrong_length: "字數錯誤(必須是 {{count}} 個字)"
|
||||
taken: "已經被使用"
|
||||
not_a_number: "不是數字"
|
||||
greater_than: "必須大於 {{count}}"
|
||||
greater_than_or_equal_to: "必須大於或等於 {{count}}"
|
||||
equal_to: "必須等於 {{count}}"
|
||||
less_than: "必須小於 {{count}}"
|
||||
less_than_or_equal_to: "必須小於或等於 {{count}}"
|
||||
odd: "必須是奇數"
|
||||
even: "必須是偶數"
|
||||
|
||||
|
|
@ -13,4 +13,6 @@ zh_tw:
|
|||
new_link: 新增連結
|
||||
new_snippet: 新增片段
|
||||
new_layout: 新增樣板
|
||||
announcement: 公告管理
|
||||
announcement: 公告管理
|
||||
asset: 資產管理
|
||||
new_asset: 新增資產
|
|
@ -9,6 +9,7 @@ ActionController::Routing::Routes.draw do |map|
|
|||
admin.resources :components
|
||||
admin.resources :layouts
|
||||
admin.resources :snippets
|
||||
admin.resources :assets
|
||||
end
|
||||
|
||||
map.namespace :panel do |panel|
|
||||
|
|
Reference in New Issue