updated_at: {\r
type: 'datetime',\r
}\r
-- }\r
++ },\r
},\r
- GroundPicture: 'ground_picture',\r
- ground_picture: {\r
- class_name: 'GroundPicture',\r
- table_name: 'ground_pictures',\r
+ Picture: 'picture',\r
+ picture: {\r
+ class_name: 'Picture',\r
+ table_name: 'pictures',\r
+ associations: {\r
+ belongs_to: {\r
+ license: {\r
+ id_column: 'license_id'\r
+ }, \r
+ artist: {\r
+ id_column: 'artist_id'\r
+ }, \r
+ },\r
+ has_many: {\r
+ },\r
+ has_one: {\r
+ },\r
+ },\r
attributes: {\r
id: {\r
type: 'number',\r
end
end
- :item => @item, :roles => [@user, @admin]
++ def set_filer
++ @page = @@model.page_number params[:page]
++ @page_size = @@model.page_size params[:page_size]
++ list_method = 'list' || configurations['models'][@@model.to_s.underscore]['select']['method']
++ @items = @@model.__send__(list_method, @page, @page_size)
++ end
++
++ def format_filer format
++ format.html {
++ @paginate = @@model.list_paginate(@page, @page_size)
++ render :template => 'system/filer', :locals => {
++ :items => @items, :model => @@model,
++ :operators => @operators, :pager => @paginate
++ }
++ }
++ end
++
++ def set_filer_by_anybody
++ @page = @@model.page_number params[:page]
++ @page_size = @@model.page_size params[:page_size]
++ list_method = 'himlist' || configurations['models'][@@model.to_s.underscore]['select']['method']
++ @items = @@model.__send__(list_method, @operators, @page, @page_size)
++ end
++
++ def format_filer_by_anybody format
++ format.html {
++ @paginate = @@model.himlist_paginate(@operators, @page, @page_size)
++ render :template => 'system/filer', :locals => {
++ :items => @items, :model => @@model,
++ :operators => @operators, :pager => @paginate
++ }
++ }
++ end
++
+ def format_prof format
+ format.prof {
+ render :template => 'system/prof', :locals => {
++ :item => @item, :operators => @operators
+ }
+ }
+ end
+
def set_image(file)
if file.respond_to?(:read)
file.read
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = Artist
def index
- @page = Artist.page_number params[:page]
- @page = Artist.page params[:page]
-- @page_size = Artist.page_size params[:page_size]
-- @artists = Artist.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = Artist.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @artists, :model => Artist,
- :perator => @operators, :pager => @paginate
- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render :json => @artists.to_json(Artist.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @artist = Artist.show(params[:id], @operators)
- @item = Artist.show(params[:id], [@user, @admin, @demand_user])
++ @item = Artist.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render :json => @artist.to_json(Artist.show_json_opt) }
+ format.html {
+ @artist = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json(Artist.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = Author
def index
-- @page = Author.page params[:page]
-- @page_size = Author.page_size params[:page_size]
-- @authors = Author.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = Author.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @authors, :model => Author,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render :json => @authors.to_json(Author.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @au = Author.show(params[:id], [@user, @admin])
- @item = Author.show(params[:id], [@user, @admin])
++ @item = Author.show(params[:id], @operators)
respond_to do |format|
- format.html
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render :json => @au.to_json(Author.show_json_opt) }
+ format.html {
+ @author = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json(Author.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = Balloon
def index
-- @page = Balloon.page params[:page]
-- @page_size = Balloon.page_size params[:page_size]
-- @balloons = Balloon.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = Balloon.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @balloons, :model => Balloon,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render json: @balloons.to_json(Balloon.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @balloon = Balloon.show(params[:id], [@user, @admin])
- @item = Balloon.show(params[:id], [@user, @admin])
++ @item = Balloon.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @balloon.to_json(Balloon.show_json_opt) }
+ format.html {
+ @balloon = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(Balloon.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = Comic
def index
-- @page = Comic.page params[:page]
-- @page_size = Comic.page_size params[:page_size]
-- @comics = Comic.list(@page, @page_size)
++ set_filer
++
respond_to do |format|
-- format.html {
-- @paginate = Comic.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @comics, :model => Comic,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render json: @comics.to_json(Comic.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
format.atom
format.rss
end
end
def show
- @comic = Comic.show(params[:id], [@user, @admin])
-
- @item = Comic.show(params[:id], [@user, @admin])
++ @item = Comic.show(params[:id], @operators)
respond_to do |format|
- format.html
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @comic.to_json(Comic.show_json_opt) }
+ format.html {
+ @comic = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(Comic.show_json_opt) }
format.atom
format.rss
end
before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
end
++ @@model = GroundColor
def index
-- @page = GroundColor.page params[:page]
-- @page_size = GroundColor.page_size params[:page_size]
-- @ground_colors = GroundColor.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = GroundColor.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @ground_colors, :model => GroundColor,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render :json => @ground_colors.to_json(GroundColor.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @ground_color = GroundColor.show(params[:id], [@user, @admin])
- @item = GroundColor.show(params[:id], [@user, @admin])
++ @item = GroundColor.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @ground_color.to_json(GroundColor.show_json_opt) }
+ format.html {
+ @ground_color = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(GroundColor.show_json_opt) }
end
end
before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
end
++ @@model = GroundPicture
def index
-- @page = GroundPicture.page params[:page]
-- @page_size = GroundPicture.page_size params[:page_size]
-- @ground_pictures = GroundPicture.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = GroundPicture.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @ground_pictures, :model => GroundPicture,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render :json => @ground_pictures.to_json(GroundPicture.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @ground_picture = GroundPicture.show(params[:id], [@user, @admin])
- @item = GroundPicture.show(params[:id], [@user, @admin])
++ @item = GroundPicture.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @ground_picture.to_json(GroundPicture.show_json_opt) }
+ format.html {
+ @ground_picture = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(GroundPicture.show_json_opt) }
end
end
layout 'test' if MagicNumber['test_layout']
before_filter :authenticate_admin!, :only => [:list, :browse]
- # GET /license_groups
- # GET /license_groups.json
++ @@model = LicenseGroup
def index
-- @license_groups = LicenseGroup.list()
++ set_filer
respond_to do |format|
-- format.html {
-- render :template => 'system/filer', :locals => {
-- :items => @license_groups, :model => LicenseGroup,
-- :roles => [@user, @admin], :pager => nil
-- }
-- }
-- format.json { render json: @license_groups.to_json(LicenseGroup.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
- # GET /license_groups/1
- # GET /license_groups/1.json
def show
- @license_group = LicenseGroup.show(params[:id])
- @item = LicenseGroup.show(params[:id])
++ @item = LicenseGroup.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @license_group.to_json(LicenseGroup.show_json_opt) }
+ format.html {
+ @license_group = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(LicenseGroup.show_json_opt) }
end
end
layout 'test' if MagicNumber['test_layout']
before_filter :authenticate_admin!, :only => [:list, :browse]
- # GET /licenses
- # GET /licenses.json
++ @@model = License
def index
-- @licenses = License.list()
++ set_filer
respond_to do |format|
-- format.html {
-- render :template => 'system/filer', :locals => {
-- :items => @licenses, :model => License,
-- :roles => [@user, @admin], :pager => nil
-- }
-- }
-- format.json { render json: @licenses.to_json(License.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
- # GET /licenses/1
- # GET /licenses/1.json
def show
- @license = License.show(params[:id])
- @item = License.show(params[:id])
++ @item = License.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @license.to_json(License.show_json_opt) }
+ format.html {
+ @license = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(License.show_json_opt) }
end
end
before_filter :authenticate_artist, :only => [:index, :new, :edit, :create, :update, :destroy]
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = OriginalPicture
def index
-- @page = OriginalPicture.page params[:page]
-- @page_size = OriginalPicture.page_size params[:page_size]
-- @original_pictures = OriginalPicture.mylist(@artist, @page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = OriginalPicture.mylist_paginate(@artist, @page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @original_pictures, :model => OriginalPicture,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render json: @original_pictures.to_json(OriginalPicture.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @original_picture = OriginalPicture.show(params[:id], [@artist, @admin])
- @item = OriginalPicture.show(params[:id], [@artist, @admin])
++ @item = OriginalPicture.show(params[:id], @operators)
respond_to do |format|
- opt = {:type => @original_picture.mime_type, :disposition=>"inline"}
- format.png { send_data(@original_picture.restore, opt ) }
- format.gif { send_data(@original_picture.restore, opt ) }
- format.jpeg { send_data(@original_picture.restore, opt ) }
+ opt = {:type => @item.mime_type, :disposition=>"inline"}
+ format.png { send_data(@item.restore, opt ) }
+ format.gif { send_data(@item.restore, opt ) }
+ format.jpeg { send_data(@item.restore, opt ) }
format.html {
+ @original_picture = @item
#ライセンス付与のために原画ライセンスグループ作成準備
- @original_picture_license_group = OriginalPictureLicenseGroup.new :original_picture_id => @original_picture.id
+ @original_picture_license_group = OriginalPictureLicenseGroup.new :original_picture_id => @item.id
render
}
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt)}
+ format_prof format
+ format.json { render json: @item.to_json(OriginalPicture.show_json_opt)}
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = PanelPicture
def index
-- @page = PanelPicture.page params[:page]
-- @page_size = PanelPicture.page_size params[:page_size]
-- @panel_pictures = PanelPicture.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = PanelPicture.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @panel_pictures, :model => PanelPicture,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render :json => @panel_pictures.to_json(PanelPicture.list_json_opt) }
++ format_filer format
++ format.json { render :json => @items.to_json(@@model.list_json_opt) }
end
end
def show
- @panel_picture = PanelPicture.show(params[:id], [@user, @admin])
- @item = PanelPicture.show(params[:id], [@user, @admin])
++ @item = PanelPicture.show(params[:id], @operators)
respond_to do |format|
- format.html
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render :json => @panel_picture.to_json(PanelPicture.show_json_opt) }
+ format.html {
+ @panel_picture = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json(PanelPicture.show_json_opt) }
end
end
before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy, :catch]
end
before_filter :authenticate_admin!, :only => [:list, :browse]
--
-- public
++ @@model = Panel
def index
-- @page = Panel.page params[:page]
-- @page_size = Panel.page_size params[:page_size]
-- @panels = Panel.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = Panel.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @panels, :model => Panel,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.html {
-- }
-- format.json { render text: Panel.list_as_json_text(@panels) }
++ format_filer format
++ format.json { render text: @@model.list_as_json_text(@items) }
format.atom
format.rss { render :layout => false }
end
end
def show
- @panel = Panel.show(params[:id], [@user, @admin])
- @item = Panel.show(params[:id], [@user, @admin])
++ @item = Panel.show(params[:id], @operators)
respond_to do |format|
format.html {
- if @author
- @new_scrolls = Scroll.mylist(@author, 1, 5)
- @fresh_scrolls = ScrollPanel.mylist(@author, 1, 5).map {|sp| sp.scroll}
- @new_sheets = Sheet.mylist(@author, 1, 5)
- @fresh_sheets = SheetPanel.mylist(@author, 1, 5).map {|sp| sp.sheet}
+ @panel = @item
- if @author
- @new_scrolls = Scroll.mylist(@author, 1, 5)
- @fresh_scrolls = ScrollPanel.mylist(@author, 1, 5).map {|sp| sp.scroll}
- @new_sheets = Sheet.mylist(@author, 1, 5)
- @fresh_sheets = SheetPanel.mylist(@author, 1, 5).map {|sp| sp.sheet}
++ if @operators.author
++ @new_scrolls = Scroll.mylist(@operators.author, 1, 5)
++ @fresh_scrolls = ScrollPanel.mylist(@operators.author, 1, 5).map {|sp| sp.scroll}
++ @new_sheets = Sheet.mylist(@operators.author, 1, 5)
++ @fresh_sheets = SheetPanel.mylist(@operators.author, 1, 5).map {|sp| sp.sheet}
end
}
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @panel.panel_elements_as_json }
- format.jsonp {
- render :json => "callback(" + @panel.panel_elements_as_json + ");"
- }
+ format_prof format
+ format.json { render json: @item.panel_elements_as_json }
- format.jsonp {
- render :json => "callback(" + @item.panel_elements_as_json + ");"
- }
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
def show
- @picture = Picture.show(params[:id], [@user, @admin, @demand_user])
- @item = Picture.show(params[:id], [@user, @admin, @demand_user])
++ @item = Picture.show(params[:id], @operators)
respond_to do |format|
- opt = {:type => @picture.mime_type, :disposition=>"inline"}
- format.png { send_data(@picture.restore(params[:subdir]), opt ) }
- format.gif { send_data(@picture.restore(params[:subdir]), opt ) }
- format.jpeg { send_data(@picture.restore(params[:subdir]), opt ) }
- format.html
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render :json => @picture.to_json}
+ opt = {:type => @item.mime_type, :disposition=>"inline"}
+ format.png { send_data(@item.restore(params[:subdir]), opt ) }
+ format.gif { send_data(@item.restore(params[:subdir]), opt ) }
+ format.jpeg { send_data(@item.restore(params[:subdir]), opt ) }
+ format.html {
+ @picture = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json}
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = ResourcePicture
def index
-- @page = ResourcePicture.page params[:page]
-- @page_size = ResourcePicture.page_size params[:page_size]
-- @resource_pictures = ResourcePicture.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = ResourcePicture.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @resource_pictures, :model => ResourcePicture,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render :json => @resource_pictures.to_json(ResourcePicture.list_json_opt) }
++ format_filer format
++ format.json { render :json => @items.to_json(@@model.list_json_opt) }
end
end
def show
- @resource_picture = ResourcePicture.show(params[:id], [@user, @admin, @demand_user])
- @item = ResourcePicture.show(params[:id], [@user, @admin, @demand_user])
++ @item = ResourcePicture.show(params[:id], @operators)
respond_to do |format|
- opt = {:type => @resource_picture.mime_type, :disposition=>"inline"}
- format.png { send_data(@resource_picture.restore(params[:subdir]), opt ) }
- format.gif { send_data(@resource_picture.restore(params[:subdir]), opt ) }
- format.jpeg { send_data(@resource_picture.restore(params[:subdir]), opt ) }
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render :json => @resource_picture.to_json(ResourcePicture.show_json_opt)}
+ opt = {:type => @item.mime_type, :disposition=>"inline"}
+ format.png { send_data(@item.restore(params[:subdir]), opt ) }
+ format.gif { send_data(@item.restore(params[:subdir]), opt ) }
+ format.jpeg { send_data(@item.restore(params[:subdir]), opt ) }
+ format.html {
+ @resource_picture = @item
+ }
+ format_prof format
+ format.json { render :json => @item.to_json(ResourcePicture.show_json_opt)}
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = ScrollPanel
def index
-- @page = ScrollPanel.page params[:page]
-- @page_size = ScrollPanel.page_size params[:page_size]
-- @scroll_panels = ScrollPanel.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = ScrollPanel.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @scroll_panels, :model => ScrollPanel,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render :json => @scroll_panels.to_json(ScrollPanel.list_json_opt) }
++ format_filer format
++ format.json { render :json => @items.to_json(@@model.list_json_opt) }
end
end
def show
- @scroll_panel = ScrollPanel.show(params[:id], [@user, @admin])
- @item = ScrollPanel.show(params[:id], [@user, @admin])
++ @item = ScrollPanel.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @scroll_panel.scroll_panel_as_json(@author) }
+ format.html {
+ @scroll_panel = @item
+ }
+ format_prof format
- format.json { render json: @item.scroll_panel_as_json(@author) }
++ format.json { render json: @item.scroll_panel_as_json(@operators.author) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = Scroll
def index
-- @page = Scroll.page params[:page]
-- @page_size = Scroll.page_size params[:page_size]
-- @scrolls = Scroll.list(@page, @page_size)
++ set_filer
++
respond_to do |format|
-- format.html {
-- @paginate = Scroll.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @scrolls, :model => Scroll,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render json: @scrolls.to_json(Scroll.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
format.atom
format.rss
end
end
def show
- @scroll = Scroll.show(params[:id], [@user, @admin])
- @item = Scroll.show(params[:id], [@user, @admin])
++ @item = Scroll.show(params[:id], @operators)
respond_to do |format|
format.html {
- if @author
- @new_panels = Panel.mylist(@author, 1, 5)
+ @scroll = @item
- if @author
- @new_panels = Panel.mylist(@author, 1, 5)
++ if @operators.author
++ @new_panels = Panel.mylist(@operators.author, 1, 5)
end
}
- format.json { render json: @scroll.to_json(Scroll.show_json_opt) }
- format.prof { render :template => 'top/prof', :layout => true }
+ format.json { render json: @item.to_json(Scroll.show_json_opt) }
+ format_prof format
format.atom
format.rss
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = SheetPanel
def index
-- @page = SheetPanel.page params[:page]
-- @page_size = SheetPanel.page_size params[:page_size]
-- @sheet_panels = SheetPanel.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = SheetPanel.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @sheet_panels, :model => SheetPanel,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render :json => @sheet_panels.to_json(SheetPanel.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @sheet_panel = SheetPanel.show(params[:id], [@user, @admin])
- @item = SheetPanel.show(params[:id], [@user, @admin])
++ @item = SheetPanel.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @sheet_panel.sheet_panel_as_json(@author) }
+ format.html {
+ @sheet_panel = @item
+ }
+ format_prof format
+ format.json { render json: @item.sheet_panel_as_json(@author) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = Sheet
def index
-- @page = Sheet.page params[:page]
-- @page_size = Sheet.page_size params[:page_size]
-- @sheets = Sheet.list(@page, @page_size)
++ set_filer
++
respond_to do |format|
-- format.html {
-- @paginate = Sheet.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @sheets, :model => Sheet,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render json: @sheets.to_json(Sheet.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
format.atom
format.rss
end
end
def show
- @sheet = Sheet.show(params[:id], [@user, @admin])
- @item = Sheet.show(params[:id], [@user, @admin])
++ @item = Sheet.show(params[:id], @operators)
respond_to do |format|
format.html {
- if @author
- @new_panels = Panel.mylist(@author, 1, 5)
- @new_stories = Story.mylist(@author, 1, 5)
- @fresh_stories = StorySheet.mylist(@author, 1, 5).map {|ss| ss.story}
+ @sheet = @item
- if @author
- @new_panels = Panel.mylist(@author, 1, 5)
- @new_stories = Story.mylist(@author, 1, 5)
- @fresh_stories = StorySheet.mylist(@author, 1, 5).map {|ss| ss.story}
++ if @operators.author
++ @new_panels = Panel.mylist(@operators.author, 1, 5)
++ @new_stories = Story.mylist(@operators.author, 1, 5)
++ @fresh_stories = StorySheet.mylist(@operators.author, 1, 5).map {|ss| ss.story}
end
}
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @sheet.to_json(Sheet.show_json_opt) }
+ format_prof format
+ format.json { render json: @item.to_json(Sheet.show_json_opt) }
format.atom
format.rss
end
end
before_filter :authenticate_admin!, :only => [:list, :browse, :destroy]
++ @@model = SpeechBalloonTemplate
def index
-- @speech_balloon_templates = SpeechBalloonTemplate.enable_list
++ set_filer
respond_to do |format|
-- format.html {
-- render :template => 'system/filer', :locals => {
-- :items => @speech_balloon_templates, :model => SpeechBalloonTemplate,
-- :roles => [@user, @admin], :pager => nil
-- }
-- }
-- format.json { render json: @speech_balloon_templates.to_json(SpeechBalloonTemplate.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @speech_balloon_template = SpeechBalloonTemplate.show(params[:id], [@user, @admin])
- @item = SpeechBalloonTemplate.show(params[:id], [@user, @admin])
++ @item = SpeechBalloonTemplate.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json {
- render :json => @speech_balloon_template.to_json(SpeechBalloonTemplate.show_json_opt)
+ format.html {
+ @speech_balloon_template = @item
}
- format.jsonp {
- render :json => "callback(" + @speech_balloon_template.to_json() + ")"
+ format_prof format
+ format.json {
+ render :json => @item.to_json(SpeechBalloonTemplate.show_json_opt)
}
- format.jsonp {
- render :json => "callback(" + @item.to_json() + ")"
- }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = SpeechBalloon
def index
-- @page = SpeechBalloon.page params[:page]
-- @page_size = SpeechBalloon.page_size params[:page_size]
-- @speech_balloons = SpeechBalloon.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = SpeechBalloon.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @speech_balloons, :model => SpeechBalloon,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render json: @speech_balloons.to_json(SpeechBalloon.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @speech_balloon = SpeechBalloon.show(params[:id], [@user, @admin])
- @item = SpeechBalloon.show(params[:id], [@user, @admin])
++ @item = SpeechBalloon.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @speech_balloon.to_json(SpeechBalloon.show_json_opt) }
+ format.html {
+ @speech_balloon = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(SpeechBalloon.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = Speech
def index
-- @page = Speech.page params[:page]
-- @page_size = Speech.page_size params[:page_size]
-- @speeches = Speech.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = Speech.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @speeches, :model => Speech,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render json: @speeches.to_json(Speech.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @speech = Speech.show(params[:id], [@user, @admin])
- @item = Speech.show(params[:id], [@user, @admin])
++ @item = Speech.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @speech.to_json(Speech.show_json_opt) }
+ format.html {
+ @speech = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(Speech.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = Story
def index
-- @page = Story.page params[:page]
-- @page_size = Story.page_size params[:page_size]
-- @stories = Story.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = Story.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @stories, :model => Story,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render :json => @stories.to_json(Story.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @story = Story.show(params[:id], [@user, @admin])
- @item = Story.show(params[:id], [@user, @admin])
++ @item = Story.show(params[:id], @operators)
respond_to do |format|
format.html {
- if @author
- @new_sheets = Sheet.mylist(@author, 1, 5)
+ @story = @item
- if @author
- @new_sheets = Sheet.mylist(@author, 1, 5)
++ if @operators.author
++ @new_sheets = Sheet.mylist(@operators.author, 1, 5)
end
}
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @story.to_json(Story.show_json_opt) }
+ format_prof format
+ format.json { render json: @item.to_json(Story.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
++ @@model = StorySheet
def index
-- @page = StorySheet.page params[:page]
-- @page_size = StorySheet.page_size params[:page_size]
-- @story_sheets = StorySheet.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = StorySheet.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @story_sheets, :model => StorySheet,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render :json => @story_sheets.to_json(StorySheet.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @story_sheet = StorySheet.show(params[:id], [@user, @admin])
- @item = StorySheet.show(params[:id], [@user, @admin])
++ @item = StorySheet.show(params[:id], @operators)
respond_to do |format|
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @story_sheet.to_json(StorySheet.show_json_opt) }
+ format.html {
+ @story_sheet = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(StorySheet.show_json_opt) }
end
end
end
before_filter :authenticate_admin!, :only => [:list, :browse, :new, :create]
- # GET /system_pictures
- # GET /system_pictures.json
++ @@model = SystemPicture
def index
-- @page = SystemPicture.page params[:page]
-- @page_size = SystemPicture.page_size params[:page_size]
-- @system_pictures = SystemPicture.list(@page, @page_size)
++ set_filer
respond_to do |format|
-- format.html {
-- @paginate = SystemPicture.list_paginate(@page, @page_size)
-- render :template => 'system/filer', :locals => {
-- :items => @system_pictures, :model => SystemPicture,
-- :roles => [@user, @admin], :pager => @paginate
-- }
-- }
-- format.json { render json: @system_pictures.to_json(SystemPicture.list_json_opt) }
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
- # GET /system_pictures/1
- # GET /system_pictures/1.json
def show
- @system_picture = SystemPicture.show(params[:id], [@user, @admin, @demand_user])
- @item = SystemPicture.show(params[:id], [@user, @admin, @demand_user])
++ @item = SystemPicture.show(params[:id], @operators)
respond_to do |format|
- opt = {:type => @system_picture.mime_type, :disposition=>"inline"}
- format.png { send_data(@system_picture.restore, opt ) }
- format.gif { send_data(@system_picture.restore, opt ) }
- format.jpeg { send_data(@system_picture.restore, opt ) }
- format.html # show.html.erb
- format.prof { render :template => 'top/prof', :layout => true }
- format.json { render json: @system_picture.to_json(SystemPicture.show_json_opt)}
+ opt = {:type => @item.mime_type, :disposition=>"inline"}
+ format.png { send_data(@item.restore, opt ) }
+ format.gif { send_data(@item.restore, opt ) }
+ format.jpeg { send_data(@item.restore, opt ) }
+ format.html {
+ @system_picture = @item
+ }
+ format_prof format
+ format.json { render json: @item.to_json(SystemPicture.show_json_opt)}
end
end
class WritingFormatsController < ApplicationController
- @writing_formats = WritingFormat.enable_list
+ layout 'test' if MagicNumber['test_layout']
+ if MagicNumber['run_mode'] == 0
+ before_filter :authenticate_user, :only => []
+ else
+ before_filter :authenticate_reader, :only => [:index, :show]
+ before_filter :authenticate_user, :only => []
+ end
+ before_filter :authenticate_admin!, :only => [:list, :browse, :destroy]
+
++ @@model = WritingFormat
+ def index
- format.html {
- render :template => 'system/filer', :locals => {
- :items => @writing_formats, :model => WritingFormat,
- :roles => [@user, @admin], :pager => nil
- }
- }
- format.json { render json: @writing_formats.to_json(WritingFormat.list_json_opt) }
++ set_filer
+
+ respond_to do |format|
- @item = WritingFormat.show(params[:id], [@user, @admin])
++ format_filer format
++ format.json { render json: @items.to_json(@@model.list_json_opt) }
+ end
+ end
+
+ def show
- format.json {
- render :json => @item.to_json(WritingFormat.show_json_opt)
- }
- format.jsonp {
- render :json => "callback(" + @item.to_json() + ")"
- }
++ @item = WritingFormat.show(params[:id], @operators)
+
+ respond_to do |format|
+ format.html {
+ @writing_format = @item
+ }
+ format_prof format
++ format.json { render :json => @item.to_json(WritingFormat.show_json_opt) }
+ end
+ end
+
end
end
def self.list_opt
-- {:author => {} }
++ {:user => {:author => {}} }
end
def self.list_json_opt
-- {:include => {:author => {}} }
- end
-
- def self.show aid, au
- opt = {}
- opt.merge!(Artist.show_opt)
- res = Artist.find(aid, opt)
- raise ActiveRecord::Forbidden unless res.visible?(au)
- res
- end
-
- def self.edit sid, au
- opt = {}
- opt.merge!(Artist.show_opt)
- res = Artist.find sid, opt
- raise ActiveRecord::Forbidden unless res.own?(au)
- res
++ {:include => {:user => {:author => {}}} }
end
def self.show_opt
-- {:include => {:author => {}} }
++ {:include => {:user => {:author => {}}} }
end
def self.show_json_opt
-- {:include => {:author => {}} }
- end
-
- def self.visible_count
- Artist.count :conditions => ['artists.author_id is not null']
++ {:include => {:user => {:author => {}}} }
end
def self.export(dt = nil)
end
def self.list_opt
-- {:artist => {} }
++ {:user => {:artist => {}} }
end
def self.list_json_opt
-- {:include => {:artist => {}} }
- end
-
- def self.show aid, roles
- opt = {}
- opt.merge!(Author.show_opt)
- res = Author.find(aid, opt)
- raise ActiveRecord::Forbidden unless res.visible?(roles)
- res
++ {:include => {:user => {:artist => {}}} }
end
def self.show_opt
-- {:include => {:artist => {}} }
++ {:include => {:user => {:artist => {}}} }
end
def self.show_json_opt
-- {:include => {:artist => {}} }
- end
-
- def self.edit aid, au
- opt = {}
- opt.merge!(Author.show_opt)
- res = Author.find aid, opt
- raise ActiveRecord::Forbidden unless res.own?(au)
- res
++ {:include => {:user => {:artist => {}}} }
end
def self.default_scroll_page_size
'comics.visible > 0'
end
- def self.mylist_where au
- ['comics.author_id = ?', au.id]
- end
-
- def self.himlist_where au
- ['comics.author_id = ? and comics.visible > 0', au.id]
- end
-
- def self.list page = 1, page_size = self.default_page_size
- Comic.where(self.list_where()).includes(Comic.list_opt).order('comics.updated_at desc').offset((page -1) * page_size).limit(page_size)
- end
-
- def self.mylist au, page = 1, page_size = Author.default_comic_page_size
- Comic.where(self.mylist_where(au)).includes(Comic.list_opt).order('comics.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ def self.list_order
+ 'comics.updated_at desc'
end
- def self.himlist au, page = 1, page_size = Author.default_comic_page_size
- Comic.where(self.himlist_where(au)).includes(Comic.list_opt).order('comics.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ def self.mylist_where me
+ ['comics.author_id = ?', me.id]
end
- def self.list_paginate page = 1, page_size = self.default_page_size
- Kaminari.paginate_array(Array.new(Comic.where(self.list_where()).count, nil)).page(page).per(page_size)
+ def self.mylist_order
+ 'comics.updated_at desc'
end
- def self.mylist_paginate au, page = 1, page_size = Author.default_comic_page_size
- Kaminari.paginate_array(Array.new(Comic.where(self.mylist_where(au)).count, nil)).page(page).per(page_size)
+ def self.himlist_where anybody
+ ['comics.author_id = ? and comics.visible > 0', anybody.id]
end
- def self.himlist_paginate au, page = 1, page_size = Author.default_comic_page_size
- Kaminari.paginate_array(Array.new(Comic.where(self.himlist_where(au)).count, nil)).page(page).per(page_size)
+ def self.himlist_order
+ 'comics.updated_at desc'
end
+ def self.list_by_author_where author_id
+ ['comics.author_id = ?', author_id]
+ end
+
+ def self.list_by_author author_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_author_where(author_id)).includes(self.list_opt).order('comics.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:stories => {}, :author => {} }
end
--<% @page_title = t('.title') + ':' + @ar.name %>
++<% @page_title = t('.title') + ':' + @artist.name %>
<h1><%= t '.title' -%></h1>
<p id="notice"><%= notice %></p>
<p>
<b><%= t_m 'Artist.name' -%>:</b>
-- <%= h @ar.name %>
++ <%= h @artist.name %>
</p>
<p>
<b><%= t_m 'Artist.created_at' -%>:</b>
-- <%= l @ar.created_at %>
++ <%= l @artist.created_at %>
</p>
<p>
<b><%= t_m 'Artist.updated_at' -%>:</b>
-- <%= l @ar.updated_at %>
++ <%= l @artist.updated_at %>
</p>
<p>
-- <%= link_to t('artists.show.to_resource_pictures'), resource_pictures_artist_path(@ar) %>
++ <%= link_to t('artists.show.to_resource_pictures'), resource_pictures_artist_path(@artist) %>
</p>
--<% if @ar.own?(@artist) %>
-- <%= link_to t('link.edit'), edit_artist_path(@ar) %>
++<% if @artist.own?(@artist) %>
++ <%= link_to t('link.edit'), edit_artist_path(@artist) %>
<% end %>
--<% @page_title = t('.title') + ':' + @au.name %>
++<% @page_title = t('.title') + ':' + @author.name %>
<h1><%= t '.title' -%></h1>
<p id="notice"><%= notice %></p>
<p>
<b><%= t_m 'Author.name' -%>:</b>
-- <%= h @au.name %>
++ <%= h @author.name %>
</p>
<p>
<b><%= t_m 'Author.created_at' -%>:</b>
-- <%= l @au.created_at %>
++ <%= l @author.created_at %>
</p>
<p>
<b><%= t_m 'Author.updated_at' -%>:</b>
-- <%= l @au.updated_at %>
++ <%= l @author.updated_at %>
</p>
<p>
-- <%= link_to t('authors.show.to_scrolls'), scrolls_author_path(@au) %>
++ <%= link_to t('authors.show.to_scrolls'), scrolls_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_scroll_panels'), scroll_panels_author_path(@au) %>
++ <%= link_to t('authors.show.to_scroll_panels'), scroll_panels_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_comics'), comics_author_path(@au) %>
++ <%= link_to t('authors.show.to_comics'), comics_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_stories'), stories_author_path(@au) %>
++ <%= link_to t('authors.show.to_stories'), stories_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_story_sheets'), story_sheets_author_path(@au) %>
++ <%= link_to t('authors.show.to_story_sheets'), story_sheets_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_sheets'), sheets_author_path(@au) %>
++ <%= link_to t('authors.show.to_sheets'), sheets_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_sheet_panels'), sheet_panels_author_path(@au) %>
++ <%= link_to t('authors.show.to_sheet_panels'), sheet_panels_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_panels'), panels_author_path(@au) %>
++ <%= link_to t('authors.show.to_panels'), panels_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_panel_pictures'), panel_pictures_author_path(@au) %>
++ <%= link_to t('authors.show.to_panel_pictures'), panel_pictures_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_speech_balloons'), speech_balloons_author_path(@au) %>
++ <%= link_to t('authors.show.to_speech_balloons'), speech_balloons_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_ground_pictures'), ground_pictures_author_path(@au) %>
++ <%= link_to t('authors.show.to_ground_pictures'), ground_pictures_author_path(@author) %>
</p>
<p>
-- <%= link_to t('authors.show.to_ground_colors'), ground_colors_author_path(@au) %>
++ <%= link_to t('authors.show.to_ground_colors'), ground_colors_author_path(@author) %>
</p>
--<% if @au.own?(@author) %>
-- <%= link_to t('link.edit'), edit_author_path(@au) %>
++<% if @author.own?(@author) %>
++ <%= link_to t('link.edit'), edit_author_path(@author) %>
<% end %>
<h1><%= t '.title' -%></h1>
--<h2><%= link_to h(@author.name), main_app.author_path(@author) -%></h2>
++<h2><%= link_to h(@operators.author.name), main_app.author_path(@operators.author) -%></h2>
<h3><%= t('.updated_scroll') -%></h3>
<table>
<tr height="100px">
</td>
</tr>
</table>
--<% if @author.artist? -%>
-- <h2><%= link_to h(@artist.name), main_app.artist_path(@artist) -%></h2>
++<% if @operators.artist -%>
++ <h2><%= link_to h(@operators.artist.name), main_app.artist_path(@operators.artist) -%></h2>
<h3><%= t('.updated_picture') -%></h3>
<table>
<tr height="100px">
--- /dev/null
- def self.himlist_where anybody
+class Pettanr::Content < Pettanr::Item
+ self.abstract_class = true
+ # ClassMethods
+
+ def self.mylist_where me
+ ''
+ end
+
+ def self.mylist_order
+ ''
+ end
+
- def self.himlist anybody, page = 1, page_size = self.default_page_size
- self.where(self.himlist_where(anybody)).includes(self.list_opt).order(self.mylist_order).offset((page -1) * page_size).limit(page_size)
++ def self.himlist_where anyone
+ ''
+ end
+
+ def self.himlist_order
+ ''
+ end
+
+ def self.mylist me, page = 1, page_size = self.default_page_size
+ self.where(self.mylist_where(me)).includes(self.list_opt).order(self.mylist_order).offset((page -1) * page_size).limit(page_size)
+ end
+
- def self.himlist_paginate anybody, page = 1, page_size = self.default_page_size
++ def self.himlist anyone, operators, page = 1, page_size = self.default_page_size
++ where_str = if operators.admin?
++ self.list_where
++ else
++ self.himlist_where(anyone)
++ end
++ self.where(where_str).includes(self.list_opt).order(self.mylist_order).offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.mylist_paginate me, page = 1, page_size = self.default_page_size
+ Kaminari.paginate_array(
+ Array.new(self.where(self.mylist_where(me)
+ ).includes(self.list_opt).count, nil)).page(page).per(page_size)
+ end
+
- Array.new(self.where(self.himlist_where(anybody)
++ def self.himlist_paginate anyone, operators, page = 1, page_size = self.default_page_size
++ where_str = if operators.admin?
++ self.list_where
++ else
++ self.himlist_where(anyone)
++ end
+ Kaminari.paginate_array(
++ Array.new(self.where(where_str)
+ ).includes(self.list_opt).count, nil)).page(page).per(page_size)
+ end
+
+ def self.edit content_id, operators
+ content = self.find content_id, self.show_opt
+ raise ActiveRecord::Forbidden unless content.own?(operators)
+ content
+ end
+
+ #InstanceMethods
+
+ def visible? operators
+ super
+ return true if self.own?(operators)
+ true
+ end
+
+ def own? operators
+ return false unless operators.author
+ self.author_id == operators.author.id
+ end
+
+end
+
--- /dev/null
- def self.show item_id, au
+class Pettanr::Item < ActiveRecord::Base
+ self.abstract_class = true
+ # ClassMethods
+ # class_name
+ # table_name
+
+ before_validation :valid_encode
+
+ cattr_accessor :valid_encode_columns, :default_page_size, :max_page_size, :visible_count_options
+ @@valid_encode_columns = []
+ @@default_page_size = 25
+ @@max_page_size = 100
+ @@visible_count_options = {}
+ cattr_reader :singular, :plural
+ @@singular = 'Item'
+ @@plural = 'Items'
+
+ def self.item_name
+ self.singular.underscore
+ end
+
+ def self.path_name with_engine = false
+ self.plural.underscore
+ end
+
+ def self.page_number prm = nil
+ page = prm.to_i
+ page = 1 if page < 1
+ page
+ end
+
+ def self.page_size prm = self.default_page_size
+ page_size = prm.to_i
+ page_size = self.max_page_size if page_size > self.max_page_size
+ page_size = self.default_page_size if page_size < 1
+ page_size
+ end
+
+ def self.list_where
+ ''
+ end
+
+ def self.list_order
+ ''
+ end
+
+ def self.list page = 1, page_size = self.default_page_size
+ self.where(self.list_where()).includes(self.list_opt).order(self.list_order).offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_paginate page = 1, page_size = self.default_page_size
+ Kaminari.paginate_array(
+ Array.new(self.where(self.list_where()).includes(self.list_opt).count, nil)
+ ).page(page).per(page_size)
+ end
+
+ def self.list_opt
+ {}
+ end
+
+ def self.list_json_opt
+ {}
+ end
+
- raise ActiveRecord::Forbidden unless item.visible?(au)
++ def self.show item_id, operators
+ opt = {}
+ opt.merge!(self.show_opt)
+ item = self.find(item_id, opt)
++ raise ActiveRecord::Forbidden unless item.visible?(operators)
+ item
+ end
+
+ def self.show_opt
+ {}
+ end
+
+ def self.show_json_opt
+ {}
+ end
+
+ def self.visible_count
+ self.count self.visible_count_options
+ end
+
+ #InstanceMethods
+
+ def item_name
+ self.class.item_name
+ end
+
+ def valid_encode
+ self.class.valid_encode_columns.each do |a|
+ next if attributes[a] == nil
+ raise Pettanr::BadRequest unless attributes[a].valid_encoding?
+ end
+ end
+
+ def supply_default
+ end
+
+ def overwrite
+ end
+
+ def visible? operators
+ if MagicNumber['run_mode'] == 0
+ return false unless operators.guest?
+ else
+ return false unless operators.resource_reader?
+ end
+ true
+ end
+
+ def dom_id_item
+ self.new_record? ? '0' : self.id.to_s
+ end
+
+ def tag_item_id c = nil
+ self.item_name + self.item_id + c.to_s
+ end
+
+ def dom_id_item_field field_name
+ self.tag_item_id + field_name.to_s
+ end
+
+ def path_name with_engine = false
+ self.class.path_name(with_engine)
+ end
+
+ def form_template with_engine = false
+ self.path_name(with_engine) + '/form'
+ end
+
+ def tag_item_attributes column = nil, opt = {}
+ {
+ :id => self.field_tag_id(column), :panel_id => self.tag_panel_id,
+ :element_id => self.tag_element_id, :element_type => self.tag_element_type
+ }.merge(opt)
+ end
+
+ def field_tag_attributes column, no_attr, opt = {}
+ self.tag_attributes(column).merge(
+ {:column => column, :new_index => self.tag_new_index, :no_attr => no_attr}
+ ).merge(opt)
+ end
+
+ #render element by body
+ def any_tag_attributes name = nil, opt = {}
+ r = self.tag_attributes(name)
+ r.merge!(
+ {:new_index => self.tag_new_index}
+ ) if self.new_index
+ r.merge(opt)
+ end
+
+ def select_tag_attributes(selected, column, no_attr)
+ [
+ :last, :first,
+ {:html => {:selected => selected}},
+ self.field_tag_attributes(column, no_attr)
+ ]
+ end
+
+ def tag_attr column = nil, opt = {}
+ self.tag_attributes(column, opt).to_attr
+ end
+
+ def field_tag_attr column, no_attr, opt = {}
+ self.field_tag_attributes(column, no_attr, opt).to_attr
+ end
+
+ def any_tag_attr name = nil, opt = {}
+ self.any_tag_attributes(name, opt).to_attr
+ end
+
+end
+++ /dev/null
--require 'element'
+++ /dev/null
--=begin
--module ActiveRecord
-- class Base
-- module Element
-- def self.included(base)
-- base.extend(ClassMethods)
-- base.__send__ :include, InstanceMethods
-- end
--
-- module ClassMethods
-- end
--
-- module InstanceMethods
-- private
--
-- public
--
-- end
--
-- end
-- include Element
-- end
--end
-
--
--=end