OSDN Git Service

temp
authoryasushiito <yas@pen-chan.jp>
Mon, 25 Nov 2013 23:45:23 +0000 (08:45 +0900)
committeryasushiito <yas@pen-chan.jp>
Mon, 25 Nov 2013 23:45:23 +0000 (08:45 +0900)
38 files changed:
1  2 
app/assets/javascripts/configurations.js.coffee.erb
app/controllers/application_controller.rb
app/controllers/artists_controller.rb
app/controllers/authors_controller.rb
app/controllers/balloons_controller.rb
app/controllers/comics_controller.rb
app/controllers/ground_colors_controller.rb
app/controllers/ground_pictures_controller.rb
app/controllers/license_groups_controller.rb
app/controllers/licenses_controller.rb
app/controllers/original_pictures_controller.rb
app/controllers/panel_pictures_controller.rb
app/controllers/panels_controller.rb
app/controllers/pictures_controller.rb
app/controllers/resource_pictures_controller.rb
app/controllers/scroll_panels_controller.rb
app/controllers/scrolls_controller.rb
app/controllers/sheet_panels_controller.rb
app/controllers/sheets_controller.rb
app/controllers/speech_balloon_templates_controller.rb
app/controllers/speech_balloons_controller.rb
app/controllers/speeches_controller.rb
app/controllers/stories_controller.rb
app/controllers/story_sheets_controller.rb
app/controllers/system_pictures_controller.rb
app/controllers/writing_formats_controller.rb
app/models/artist.rb
app/models/author.rb
app/models/comic.rb
app/models/panel.rb
app/models/speech_balloon.rb
app/views/artists/show.html.erb
app/views/authors/show.html.erb
app/views/home/index.html.erb
lib/content.rb
lib/item.rb
vendor/plugins/element/init.rb
vendor/plugins/element/lib/element.rb

          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
@@@ -100,6 -93,14 +100,48 @@@ class ApplicationController < ActionCon
      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
@@@ -10,30 -10,32 +10,25 @@@ class ArtistsController < ApplicationCo
    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
  
@@@ -10,30 -10,32 +10,25 @@@ class AuthorsController < ApplicationCo
    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
  
@@@ -10,29 -10,31 +10,24 @@@ class BalloonsController < ApplicationC
    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
    
@@@ -10,31 -10,32 +10,26 @@@ class ComicsController < ApplicationCon
    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
@@@ -9,29 -9,31 +9,24 @@@ class GroundColorsController < Applicat
      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
    
@@@ -9,29 -9,31 +9,24 @@@ class GroundPicturesController < Applic
      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
    
@@@ -2,30 -2,28 +2,24 @@@ class LicenseGroupsController < Applica
    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
  
@@@ -2,30 -2,28 +2,24 @@@ class LicensesController < ApplicationC
    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
  
@@@ -6,38 -6,39 +6,32 @@@ class OriginalPicturesController < Appl
    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
  
@@@ -10,30 -10,32 +10,25 @@@ class PanelPicturesController < Applica
    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
  
@@@ -9,47 -9,48 +9,34 @@@ class PanelsController < ApplicationCon
      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
  
@@@ -11,16 -11,18 +11,18 @@@ class PicturesController < ApplicationC
    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
    
@@@ -10,34 -10,36 +10,29 @@@ class ResourcePicturesController < Appl
    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
    
@@@ -10,30 -10,32 +10,25 @@@ class ScrollPanelsController < Applicat
    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
    
@@@ -10,35 -10,36 +10,30 @@@ class ScrollsController < ApplicationCo
    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
@@@ -10,30 -10,32 +10,25 @@@ class SheetPanelsController < Applicati
    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
    
@@@ -10,37 -10,38 +10,32 @@@ class SheetsController < ApplicationCon
    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
@@@ -8,32 -8,34 +8,27 @@@ class SpeechBalloonTemplatesController 
    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
  
@@@ -10,30 -10,31 +10,24 @@@ class SpeechBalloonsController < Applic
    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
    
@@@ -10,29 -10,31 +10,24 @@@ class SpeechesController < ApplicationC
    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
    
@@@ -10,34 -10,35 +10,28 @@@ class StoriesController < ApplicationCo
    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
    
@@@ -10,30 -10,32 +10,25 @@@ class StorySheetsController < Applicati
    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
    
@@@ -10,38 -10,36 +10,29 @@@ class SystemPicturesController < Applic
    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
  
@@@ -1,2 -1,42 +1,33 @@@
  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
@@@ -28,19 -87,39 +28,19 @@@ class Artist < Pettanr::Owne
    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)
@@@ -31,19 -88,35 +31,19 @@@ class Author < Pettanr::Owne
    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
@@@ -35,26 -82,46 +35,34 @@@ class Comic < Pettanr::Conten
      '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
Simple merge
Simple merge
@@@ -1,26 -1,26 +1,26 @@@
--<% @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 %>
@@@ -1,70 -1,70 +1,70 @@@
--<% @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 %>
@@@ -1,5 -1,5 +1,5 @@@
  <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">
@@@ -58,8 -58,8 +58,8 @@@
      </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">
diff --cc lib/content.rb
index 83f00ac,0000000..9f34832
mode 100644,000000..100644
--- /dev/null
@@@ -1,61 -1,0 +1,71 @@@
-   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
 +
diff --cc lib/item.rb
index 32f6958,0000000..b5af83b
mode 100644,000000..100644
--- /dev/null
@@@ -1,175 -1,0 +1,175 @@@
-   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
diff --cc vendor/plugins/element/init.rb
index 6c58bcb,6c58bcb..0000000
deleted file mode 100644,100644
+++ /dev/null
@@@ -1,1 -1,1 +1,0 @@@
--require 'element'
diff --cc vendor/plugins/element/lib/element.rb
index d210ed3,20f3fb7..0000000
deleted file mode 100644,100644
+++ /dev/null
@@@ -1,25 -1,26 +1,0 @@@
--=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