updated_at: {\r
type: 'datetime',\r
}\r
- }\r
+ },\r
},\r
Picture: 'picture',\r
picture: {\r
redirect_to :controller => '/system', :action => 'start'
end
else
- if user_signed_in?
- @user = current_user
- @author = @user.author
- @artist = if @author and @author.artist?
- @author.artist
- else
- nil
- end
+ user = if user_signed_in?
+ current_user
+ else
+ nil
+ end
+ author = if user
+ user.author
+ else
+ nil
end
- @admin = if admin_signed_in?
+ artist = if user
+ user.artist
+ else
+ nil
+ end
+ admin = if admin_signed_in?
current_admin
else
nil
end
- @demand_user = if demand_user_signed_in?
+ demand_user = if demand_user_signed_in?
current_demand_user
else
nil
end
+ @operators = Operator.new [user, author, artist, admin, demand_user]
end
end
def authenticate_reader
- authenticate_user! unless (@user || @admin)
+ authenticate_user! unless @operators.reader?
end
def authenticate_user
- authenticate_user! unless (@user)
+ authenticate_user! unless @operators.user?
end
def authenticate_resource_reader
- authenticate_user! unless (@user || @admin || @demand_user)
+ authenticate_user! unless @operators.resource_reader?
end
def authenticate_author
- if @author
+ if @operators.author
true
else
respond_to do |format|
end
def authenticate_artist
- if @artist
+ if @operators.artist
true
else
respond_to do |format|
end
end
+ 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, :roles => [@user, @admin]
+ :item => @item, :operators => @operators
}
}
end
end
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@model = Artist
def index
- @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,
- :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
- @item = Artist.show(params[:id], [@user, @admin, @demand_user])
+ @item = Artist.show(params[:id], @operators)
respond_to do |format|
format.html {
end
def resource_pictures
- @ar = Artist.show(params[:id], [@user, @admin, @demand_user])
+ @artist = Artist.show(params[:id], @operators)
@page = Author.page params[:page]
@page_size = Author.resource_picture_page_size params[:page_size]
- @resource_pictures = ResourcePicture.himlist(@ar, @page, @page_size)
+ @resource_pictures = ResourcePicture.himlist(@artist, @page, @page_size)
respond_to do |format|
format.html {
- @paginate = ResourcePicture.himlist_paginate(@ar, @page, @page_size)
+ @paginate = ResourcePicture.himlist_paginate(@artist, @page, @page_size)
}
format.json { render json: @resource_pictures.to_json(ResourcePicture.list_json_opt) }
end
end
def count
- @ar = {:count => Artist.visible_count}
+ @artist = {:count => Artist.visible_count}
respond_to do |format|
- format.json { render json: @ar.to_json }
+ format.json { render json: @artist.to_json }
end
end
end
def browse
- @ar = Artist.find(params[:id])
+ @artist = Artist.find(params[:id])
respond_to do |format|
format.html { render layout: 'system' }
- format.json { render json: @ar }
+ format.json { render json: @artist }
end
end
- # GET /artists/new
- # GET /artists/new.json
def new
- @ar = Artist.new
- @ar.supply_default
+ @artist = Artist.new
+ @artist.supply_default
respond_to do |format|
format.html # new.html.erb
format.js
- format.json { render json: @ar.to_json(Artist.show_json_opt) }
+ format.json { render json: @artist.to_json(Artist.show_json_opt) }
end
end
- # GET /artists/1/edit
def edit
- @ar = Artist.edit(params[:id], @author)
+ @artist = Artist.edit(params[:id], @operators)
respond_to do |format|
format.html
format.js
end
end
- # POST /artists
- # POST /artists.json
def create
- @ar = Artist.new()
- @ar.supply_default
- @ar.attributes = params[:artist]
- @ar.overwrite @author
+ @artist = Artist.new()
+ @artist.supply_default
+ @artist.attributes = params[:artist]
+ @artist.overwrite @operators
respond_to do |format|
- if @ar.save
+ if @artist.save
flash[:notice] = I18n.t('flash.notice.created', :model => Artist.model_name.human)
format.html { redirect_to root_path }
- format.json { render json: @ar.to_json(Artist.show_json_opt), status: :created, location: @artist }
+ format.json { render json: @artist.to_json(Artist.show_json_opt), status: :created, location: @artist }
else
flash[:notice] = I18n.t('flash.notice.not_created', :model => Artist.model_name.human)
format.html { render action: "new" }
- format.json { render json: @ar.errors, status: :unprocessable_entity }
+ format.json { render json: @artist.errors, status: :unprocessable_entity }
end
end
end
- # PUT /artists/1
- # PUT /artists/1.json
def update
- @ar = Artist.edit(params[:id], @author)
- @ar.attributes = params[:artist]
- @ar.overwrite @author
+ @artist = Artist.edit(params[:id], @operators)
+ @artist.attributes = params[:artist]
+ @artist.overwrite @operators
respond_to do |format|
- if @ar.save
+ if @artist.save
flash[:notice] = I18n.t('flash.notice.updated', :model => Artist.model_name.human)
format.html { redirect_to '/home/configure' }
format.json { head :ok }
else
flash[:notice] = I18n.t('flash.notice.not_updated', :model => Artist.model_name.human)
format.html { render action: "edit" }
- format.json { render json: @ar.errors, status: :unprocessable_entity }
+ format.json { render json: @artist.errors, status: :unprocessable_entity }
end
end
end
- # DELETE /artists/1
- # DELETE /artists/1.json
def destroy
- @ar = Artist.edit(params[:id], @author)
- @ar.destroy
+ @artist = Artist.edit(params[:id], @operators)
+ @artist.destroy
respond_to do |format|
format.html { redirect_to artists_url }
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
- @item = Author.show(params[:id], [@user, @admin])
+ @item = Author.show(params[:id], @operators)
respond_to do |format|
format.html {
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
- @item = Balloon.show(params[:id], [@user, @admin])
+ @item = Balloon.show(params[:id], @operators)
respond_to do |format|
format.html {
@balloon = @item
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
- @item = Comic.show(params[:id], [@user, @admin])
+ @item = Comic.show(params[:id], @operators)
respond_to do |format|
format.html {
@comic = @item
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
- @item = GroundColor.show(params[:id], [@user, @admin])
+ @item = GroundColor.show(params[:id], @operators)
respond_to do |format|
format.html {
@ground_color = @item
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
- @item = GroundPicture.show(params[:id], [@user, @admin])
+ @item = GroundPicture.show(params[:id], @operators)
respond_to do |format|
format.html {
@ground_picture = @item
layout 'test' if MagicNumber['test_layout']
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@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
def show
- @item = LicenseGroup.show(params[:id])
+ @item = LicenseGroup.show(params[:id], @operators)
respond_to do |format|
format.html {
@license_group = @item
layout 'test' if MagicNumber['test_layout']
before_filter :authenticate_admin!, :only => [:list, :browse]
+ @@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
def show
- @item = License.show(params[:id])
+ @item = License.show(params[:id], @operators)
respond_to do |format|
format.html {
@license = @item
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
- @item = OriginalPicture.show(params[:id], [@artist, @admin])
+ @item = OriginalPicture.show(params[:id], @operators)
respond_to do |format|
opt = {:type => @item.mime_type, :disposition=>"inline"}
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
- @item = PanelPicture.show(params[:id], [@user, @admin])
+ @item = PanelPicture.show(params[:id], @operators)
respond_to do |format|
format.html {
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
- @item = Panel.show(params[:id], [@user, @admin])
+ @item = Panel.show(params[:id], @operators)
respond_to do |format|
format.html {
@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 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
- @item = Picture.show(params[:id], [@user, @admin, @demand_user])
+ @item = Picture.show(params[:id], @operators)
respond_to do |format|
opt = {:type => @item.mime_type, :disposition=>"inline"}
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
- @item = ResourcePicture.show(params[:id], [@user, @admin, @demand_user])
+ @item = ResourcePicture.show(params[:id], @operators)
respond_to do |format|
opt = {:type => @item.mime_type, :disposition=>"inline"}
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
- @item = ScrollPanel.show(params[:id], [@user, @admin])
+ @item = ScrollPanel.show(params[:id], @operators)
respond_to do |format|
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
- @item = Scroll.show(params[:id], [@user, @admin])
+ @item = Scroll.show(params[:id], @operators)
respond_to do |format|
format.html {
@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: @item.to_json(Scroll.show_json_opt) }
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
- @item = SheetPanel.show(params[:id], [@user, @admin])
+ @item = SheetPanel.show(params[:id], @operators)
respond_to do |format|
format.html {
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
- @item = Sheet.show(params[:id], [@user, @admin])
+ @item = Sheet.show(params[:id], @operators)
respond_to do |format|
format.html {
@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 format
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
- @item = SpeechBalloonTemplate.show(params[:id], [@user, @admin])
+ @item = SpeechBalloonTemplate.show(params[:id], @operators)
respond_to do |format|
format.html {
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
- @item = SpeechBalloon.show(params[:id], [@user, @admin])
+ @item = SpeechBalloon.show(params[:id], @operators)
respond_to do |format|
format.html {
@speech_balloon = @item
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
- @item = Speech.show(params[:id], [@user, @admin])
+ @item = Speech.show(params[:id], @operators)
respond_to do |format|
format.html {
@speech = @item
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
- @item = Story.show(params[:id], [@user, @admin])
+ @item = Story.show(params[:id], @operators)
respond_to do |format|
format.html {
@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 format
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
- @item = StorySheet.show(params[:id], [@user, @admin])
+ @item = StorySheet.show(params[:id], @operators)
respond_to do |format|
format.html {
end
before_filter :authenticate_admin!, :only => [:list, :browse, :new, :create]
+ @@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
def show
- @item = SystemPicture.show(params[:id], [@user, @admin, @demand_user])
+ @item = SystemPicture.show(params[:id], @operators)
respond_to do |format|
opt = {:type => @item.mime_type, :disposition=>"inline"}
end
before_filter :authenticate_admin!, :only => [:list, :browse, :destroy]
+ @@model = WritingFormat
def index
- @writing_formats = WritingFormat.enable_list
+ set_filer
respond_to do |format|
- 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) }
+ format_filer format
+ format.json { render json: @items.to_json(@@model.list_json_opt) }
end
end
def show
- @item = WritingFormat.show(params[:id], [@user, @admin])
+ @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)
- }
- format.jsonp {
- render :json => "callback(" + @item.to_json() + ")"
- }
+ format.json { render :json => @item.to_json(WritingFormat.show_json_opt) }
end
end
-class Artist < ActiveRecord::Base
- belongs_to :author
+class Artist < Pettanr::Owner
+ belongs_to :user
has_many :original_pictures
has_many :pictures
has_many :resource_pictures
validates :name, :presence => true, :length => {:maximum => 30}
- validates :author_id, :numericality => {:allow_blank => true}
+ validates :user_id, :numericality => true, :existence => {:both => false}
+ validates :provider, :numericality => true
- before_validation :valid_encode
-
- def valid_encode
- ['name'].each do |a|
- next if attributes[a] == nil
- raise Pettanr::BadRequest unless attributes[a].valid_encoding?
- end
- end
+ @@valid_encode_columns += ['name']
+ @@visible_count_options = {:conditions => ['artists.author_id is not null']}
def supply_default
self.name = 'no name' if self.name.blank?
end
- def overwrite au
- return false unless au
- self.author_id = au.id
- end
-
- def own? roles
- roles = [roles] unless roles.respond_to?(:each)
- au = Artist.get_author_from_roles roles
- return false unless au
- self.author_id == au.id
- end
-
- def visible? roles
- if MagicNumber['run_mode'] == 0
- return false unless guest_role_check(roles)
- else
- return false unless resource_reader_role_check(roles)
- end
- true
- end
-
def self.find_by_author author
Artist.find( :first, :conditions => ['author_id = ?', author.id])
end
- def self.default_page_size
- 25
- end
-
- def self.max_page_size
- 100
- end
-
- def self.page 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.offset cnt, prm = nil
- offset = prm.to_i
- offset = cnt - 1 if offset >= cnt
- offset = cnt - offset.abs if offset < 0
- offset = 0 if offset < 0
- offset
- end
-
def self.list_where
- 'artists.author_id is not null'
- end
-
- def self.list page = 1, page_size = self.default_page_size
- Artist.where(self.list_where()).includes(Artist.list_opt).order('artists.created_at desc').offset((page -1) * page_size).limit(page_size)
+ 'artists.provider = 0'
end
- def self.list_paginate page = 1, page_size = self.default_page_size
- Kaminari.paginate_array(Array.new(Artist.where(self.list_where()).count, nil)).page(page).per(page_size)
+ def self.list_order
+ 'artists.created_at desc'
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)
opt = {}
cond = if dt
- ['artists.author_id is not null and artists.updated_at >= ?', dt]
+ ['artists.artists.provider = 0 and artists.updated_at >= ?', dt]
else
- 'artists.author_id is not null'
+ 'artists.artists.provider = 0'
end
opt.merge!({:conditions => cond})
opt.merge!({:order => 'id'})
-class Author < ActiveRecord::Base
- has_one :artist
+class Author < Pettanr::Owner
belongs_to :user
has_many :scrolls
has_many :comics
validates :working_panel_id, :numericality => {:allow_nil => true}
validates :user_id, :numericality => true, :existence => {:both => false}
- before_validation :valid_encode
-
- def valid_encode
- ['name'].each do |a|
- next if attributes[a] == nil
- raise Pettanr::BadRequest unless attributes[a].valid_encoding?
- end
- end
+ @@valid_encode_columns += ['name']
+ # @@visible_count_options = {}
def supply_default
self.name = 'no name' if self.name.blank?
end
- def overwrite uid
- self.user_id = uid
- end
-
- def own? roles
- roles = [roles] unless roles.respond_to?(:each)
- au = Author.get_author_from_roles roles
- return false unless au
- self.id == au.id
- end
-
- def visible? roles
- if MagicNumber['run_mode'] == 0
- return false unless guest_role_check(roles)
- else
- return false unless reader_role_check(roles)
- end
- return true
- end
-
- def artist?
- Artist.find_by_author(self) != nil
- end
-
def working?
self.working_panel_id and self.working_panel
end
- def step2 n
- self.name = n
- self.save
- end
-
- def self.default_page_size
- 25
- end
-
- def self.max_page_size
- 100
- end
-
- def self.page 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
+ def self.list_where
+ ''
end
- def self.list page = 1, page_size = self.default_page_size
- Author.includes(Author.list_opt).order('authors.created_at desc').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(Author.count, nil)).page(page).per(page_size)
+ def self.list_order
+ 'authors.created_at desc'
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
page_size
end
- def self.visible_count
- Author.count
- end
-
end
#コミック
-class Comic < ActiveRecord::Base
+class Comic < Pettanr::Content
has_many :stories, :order => 't'
belongs_to :author
validates :visible, :presence => true, :numericality => true, :inclusion => {:in => 0..1}
validates :author_id, :presence => true, :numericality => true, :existence => {:both => false}
- before_validation :valid_encode
-
- def valid_encode
- ['title', 'description'].each do |a|
- next if attributes[a] == nil
- raise Pettanr::BadRequest unless attributes[a].valid_encoding?
- end
- end
+ @@valid_encode_columns += ['title', 'description']
+ @@visible_count_options = {:conditions => 'visible > 0'}
def supply_default
self.visible = 0 if self.visible.blank?
self.author_id = au.id
end
- def own? roles
- roles = [roles] unless roles.respond_to?(:each)
- au = Comic.get_author_from_roles roles
- return false unless au
- self.author_id == au.id
- end
-
- def visible? roles
- if MagicNumber['run_mode'] == 0
- return false unless guest_role_check(roles)
- else
- return false unless reader_role_check(roles)
- end
- return true if self.own?(roles)
+ def visible? operators
+ super
self.visible > 0
end
def symbol_filename
end
- def self.default_page_size
- 25
- end
-
- def self.max_page_size
- 100
- end
-
- def self.default_panel_size
- 30
- end
-
- def self.max_panel_size
- 200
- end
-
- def self.page 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
'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
{:include => {:stories => {}, :author => {}} }
end
- def self.show cid, roles
- opt = {}
- opt.merge!(Comic.show_opt)
- res = Comic.find(cid, opt)
- raise ActiveRecord::Forbidden unless res.visible?(roles)
- res
- end
-
- def self.edit cid, au
- opt = {}
- opt.merge!(Comic.show_opt)
- res = Comic.find(cid, opt)
- raise ActiveRecord::Forbidden unless res.own?(au)
- res
- end
-
def self.show_opt
{:include => {:stories => {}, :author => {}} }
end
{:include => {:stories => {}, :author => {}} }
end
- def self.visible_count
- Comic.count 'visible > 0'
- end
-
def destroy_with_story
res = false
Comic.transaction do
self.field_tag_attributes(column, no_attr, opt).to_attr
end
+ def render_count
+ @render_count ||= 1
+ end
+
+ def rendered
+ @render_count = render_count + 1
+ end
+
def self.default_page_size
25
end
self.speech_balloon_template.symbol_option
end
- def new_sballoon
+ def new_balloon
@new_balloon
end
class User < ActiveRecord::Base
has_one :author
+ has_one :artist
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
self.author.panels.each do |panel|
raise ActiveRecord::Rollback unless panel.destroy_with_elements
end
- if self.author.artist
- self.author.artist.original_pictures.each do |original_picture|
+ if self.artist
+ self.artist.original_pictures.each do |original_picture|
raise ActiveRecord::Rollback unless original_picture.destroy_with_resource_picture
end
- raise ActiveRecord::Rollback unless self.author.artist.destroy
+ raise ActiveRecord::Rollback unless self.artist.destroy
end
raise ActiveRecord::Rollback unless self.author.destroy
raise ActiveRecord::Rollback unless super
-<% @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">
<div>
<% if user_signed_in? %>
<%= link_to t('home.index.title'), '/home' %>
- <%= link_to t('home.scrolls.title'), '/home/scroll' %>
- <%= link_to t('home.panels.title'), '/home/panel' %>
- <%= link_to t('home.panel_pictures.title'), '/home/panel_picture' %>
- <%= link_to h(truncate(@author.name, :length => 12)), main_app.author_path(@author) %>
- <% if @artist %>
+ <% if @operators.author %>
+ <%= link_to t('home.scrolls.title'), '/home/scroll' %>
+ <%= link_to t('home.panels.title'), '/home/panel' %>
+ <%= link_to t('home.panel_pictures.title'), '/home/panel_picture' %>
+ <%= link_to h(truncate(@operators.author.name, :length => 12)), main_app.author_path(@operators.author) %>
+ <% end %>
+ <% if @operators.artist %>
<%= link_to t('home.pictures.title'), main_app.original_pictures_path %>
- <%= link_to h(truncate(@artist.name, :length => 12)), main_app.artist_path(@artist) %>
+ <%= link_to h(truncate(@operators.artist.name, :length => 12)), main_app.artist_path(@operators.artist) %>
<% end %>
<%= link_to t('home.configure.title'), '/home/configure' %>
<%= link_to t('home.sign_out.title'), main_app.destroy_user_session_path, :method => :delete %>
</td>\r
<td>\r
<div>\r
- <% if @author %>\r
- <%= link_to h(truncate(@author.name, :length => 12)), main_app.author_path(@author) %>\r
+ <% if @operators.author %>\r
+ <%= link_to h(truncate(@operators.author.name, :length => 12)), main_app.author_path(@operators.author) %>\r
<% end %>\r
</div>\r
<div>\r
- <% if @artist %>\r
- <%= link_to h(truncate(@artist.name, :length => 12)), main_app.artist_path(@artist) %>\r
+ <% if @operators.artist %>\r
+ <%= link_to h(truncate(@operators.artist.name, :length => 12)), main_app.artist_path(@operators.artist) %>\r
<% end %>\r
</div>\r
</td>\r
<%= link_to t_m('Author'), main_app.authors_path %>\r
<%= link_to t_m('Artist'), main_app.artists_path %>\r
</div>\r
-<% if @author %>\r
- <div width="100%" style="background-color: #fadddd; padding: 5px;">\r
- <%= link_to t('tab.creator.home'), '/home' %>\r
+<div width="100%" style="background-color: #fadddd; padding: 5px;">\r
+ <%= link_to t('tab.creator.home'), '/home' %>\r
+ <% if @operators.author %>\r
<%= link_to t('tab.creator.comic'), '/home/comics' %>\r
<%= link_to t('*'), main_app.new_comic_path %>\r
<%= link_to t('tab.creator.story'), '/home/stories' %>\r
<%= link_to t('*'), main_app.new_scroll_path %>\r
<%= link_to t('tab.creator.panel'), '/home/panels' %>\r
<%= link_to t('*'), main_app.new_panel_path %>\r
- <% if @artist %>\r
- <%= link_to t('tab.creator.original_picture'), main_app.original_pictures_path %>\r
- <%= link_to t('*'), main_app.new_original_picture_path %>\r
- <%= link_to t('tab.creator.resource_picture'), '/home/resource_pictures' %>\r
- <% end %>\r
- <% if @author and @author.working? -%>\r
- <%= link_to t('tab.creator..catch'), main_app.panel_path(@author.working_panel) %>\r
- <% end -%>\r
- </div>\r
-<% end %>\r
+ <% end -%>\r
+ <% if @operators.artist %>\r
+ <%= link_to t('tab.creator.original_picture'), main_app.original_pictures_path %>\r
+ <%= link_to t('*'), main_app.new_original_picture_path %>\r
+ <%= link_to t('tab.creator.resource_picture'), '/home/resource_pictures' %>\r
+ <% end %>\r
+ <% if @operators.author and @operators.author.working? -%>\r
+ <%= link_to t('tab.creator..catch'), main_app.panel_path(@operators.author.working_panel) %>\r
+ <% end %>\r
+</div>\r
<%= yield %>\r
<div width="100%" style="background-color: #faddfa; padding: 5px;">\r
<%= link_to t('tab.demander.title'), main_app.demanders_path %>\r
<% elm.boost %>
<% end %>
<% end %>
-<div id="<%= panel.tag_id -%>" panel_id="<%= panel.tag_panel_id -%>" class="pettanr-comic-panel" style="width:<%= panel.width %>px;height:<%= panel.height %>px;border-style: solid;border-width: <%= panel.border %>px;border-color:black; background-color:white;">
+<%= content_tag :div, :id => panel.tag_id, :panel_id => panel.tag_panel_id, :class => "pettanr-comic-panel", :style => "width: #{panel.width}px; height: #{panel.height}px; border-style: solid; border-width: #{panel.border}px; border-color: black; background-color: white;" do %>
<% if panel.visible? author -%>
<% panel.panel_elements.each do |elm| %>
<%= render elm.class.to_s.tableize + '/element', :elm => elm, :spot => spot %>
<% else %>
<h2><%= t('panels.hidden') %></h2>
<% end %>
-</div>
+<% end %>
+<% panel.rendered %>
require 'picture_io'
require 'pettan_imager'
require 'ar_helper'
+require 'operator'
require 'import_result'
require 'common'
+require 'item'
+require 'owner'
+require 'content'
require 'element'
require 'element_part'
# Initialize the rails application
--- /dev/null
+class ArtistBelongsToUser < ActiveRecord::Migration
+ def up
+ add_column :artists, :user_id, :integer, :null => false, :default => 0
+ add_column :artists, :provider, :integer, :null => false, :default => 0
+ Artist.find(:all).each do |artist|
+ if artist.author_id
+ artist.user_id = Author.find(artist.author_id).user_id
+ else
+ artist.provider = 1
+ end
+ artist.save!
+ end
+ end
+
+ def down
+ remove_column :artists, :author_id
+ end
+end
--- /dev/null
+class Pettanr::Content < Pettanr::Item
+ self.abstract_class = true
+ # ClassMethods
+
+ def self.mylist_where me
+ ''
+ end
+
+ def self.mylist_order
+ ''
+ end
+
+ 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 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
+
+ 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
+
end
end
+ def element_index
+ @element_index ||= self.t
+ end
+
+ def parent
+ @parent ||= self.panel
+ end
+
+ def parent= content
+ @parent = content
+ end
+
def new_index
@new_index
end
--- /dev/null
+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
+
+ 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
+class Operator
+
+ def initialize operators
+ @operators = operators
+ @operators = [@operators] unless @operators.respond_to?(:each)
+ @operators.compact!
+ end
+
+ #InstanceMethods
+ def find_author
+ @operators.each do |operator|
+ return operator if operator.is_a?(Author)
+ return operator.author if operator.is_a?(User)
+ return operator.user.author if operator.is_a?(Artist) and operator.user.author
+ end
+ nil
+ end
+
+ def find_artist
+ @operators.each do |operator|
+ return operator.user.artist if operator.is_a?(Author) and operator.user.artist
+ return operator.artist if operator.is_a?(User)
+ return operator if operator.is_a?(Artist)
+ end
+ nil
+ end
+
+ def find_admin
+ @operators.each do |operator|
+ return operator if operator.is_a?(Admin)
+ end
+ nil
+ end
+
+ def author
+ return @author if @author
+ @author = find_author
+ end
+
+ def artist
+ return @artist if @artist
+ @artist = find_artist
+ end
+
+ def admin
+ return @admin if @admin
+ @admin = find_admin
+ end
+
+ def guest?
+ true
+ end
+
+ def reader?
+ @operators.each do |operator|
+ return true if operator.is_a?(Author) or operator.is_a?(Artist) or operator.is_a?(Admin) or operator.is_a?(User)
+ end
+ false
+ end
+
+ def user?
+ @operators.each do |operator|
+ return true if operator.is_a?(Author) or operator.is_a?(Artist) or operator.is_a?(User)
+ end
+ false
+ end
+
+ def resource_reader?
+ @operators.each do |operator|
+ return true if operator.is_a?(Author) or operator.is_a?(Artist) or operator.is_a?(Admin) or operator.is_a?(User) or operator.is_a?(DemandUser)
+ end
+ false
+ end
+
+ def admin?
+ @operators.each do |operator|
+ return true if operator.is_a?(Admin)
+ end
+ false
+ end
+
+end
--- /dev/null
+class Pettanr::Owner < Pettanr::Item
+ self.abstract_class = true
+ # ClassMethods
+
+ def self.edit owner_id, operators
+ owner = self.find owner_id, self.show_opt
+ raise ActiveRecord::Forbidden unless owner.own?(operators)
+ owner
+ end
+
+ #InstanceMethods
+
+ def overwrite operators
+ self.user_id = operators.user.id
+ end
+
+ def own? operators
+ return false unless operators.user
+ self.user_id == operators.user.id
+ end
+
+end
+
--- /dev/null
+# -*- encoding: utf-8 -*-
+#管理者
+require 'spec_helper'
+
+describe Pettanr::Item do
+ before do
+ SpeechBalloonTemplate.delete_all
+ @admin = FactoryGirl.create :admin
+ @user = FactoryGirl.create( :user_yas)
+ @author = FactoryGirl.create :author, :user_id => @user.id
+ @artist = FactoryGirl.create :artist_yas, :author_id => @author.id
+ @other_user = FactoryGirl.create( :user_yas)
+ @other_author = FactoryGirl.create :author, :user_id => @other_user.id
+ @other_artist = FactoryGirl.create :artist_yas, :author_id => @other_author.id
+ @sp = FactoryGirl.create :system_picture
+ @lg = FactoryGirl.create :license_group
+ @license = FactoryGirl.create :license, :license_group_id => @lg.id, :system_picture_id => @sp.id
+ end
+
+ describe '検証に於いて' do
+ before do
+ end
+
+ context 'オーソドックスなデータのとき' do
+=begin
+ it 'nullなら失敗する' do
+ @gc = User.singular
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.plural
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.item_name
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.path_name
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.default_page_size
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.max_page_size
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.page_number
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.page_size
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.list_where
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.list
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.list_paginate
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.list_opt
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.list_json_opt
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.show 1, 1
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.show_opt
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = User.show_json_opt
+ @gc.should be_nil
+ end
+=end
+ end
+
+ context 'オーソドックスなデータのとき' do
+ before do
+ end
+=begin
+ it 'nullなら失敗する' do
+ @user.item_name
+ end
+ it 'nullなら失敗する' do
+ @user.dom_id_item
+ end
+ it 'nullなら失敗する' do
+ @user.tag_item_id
+ end
+ it 'nullなら失敗する' do
+ @user.dom_id_item_field ''
+ end
+ it 'nullなら失敗する' do
+ @user.path_name
+ end
+ it 'nullなら失敗する' do
+ @user.form_template
+ end
+ it 'nullなら失敗する' do
+ @user.tag_item_attributes
+ end
+ it 'nullなら失敗する' do
+ @user.field_tag_attributes
+ end
+ it 'nullなら失敗する' do
+ @user.any_tag_attributes
+ end
+ it 'nullなら失敗する' do
+ @user.select_tag_attributes
+ end
+ it 'nullなら失敗する' do
+ @user.tag_attr
+ end
+ it 'nullなら失敗する' do
+ @user.field_tag_attr
+ end
+ it 'nullなら失敗する' do
+ @user.any_tag_attr
+ end
+=end
+ end
+
+ context 'オーソドックスなデータのとき' do
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.singular
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.plural
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.item_name
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.path_name
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.default_page_size
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.max_page_size
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.page
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.page_size
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.list_where
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.list
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.list_paginate
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.list_opt
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.list_json_opt
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.show 1, 1
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.show_opt
+ @gc.should be_nil
+ end
+ it 'nullなら失敗する' do
+ @gc = Pettanr::Item.show_json_opt
+ @gc.should be_nil
+ end
+ end
+ end
+end
+++ /dev/null
-require 'content'
+++ /dev/null
-=begin
-module ActiveRecord
- class Base
- module Content
- def self.included(base)
- base.extend(ClassMethods)
- base.__send__ :include, InstanceMethods
- end
-
- module ClassMethods
-
- def self.mylist_where au
- ['panels.author_id = ?', au.id]
- end
-
- def self.himlist_where au
- ['panels.author_id = ? and panels.publish > 0', au.id]
- end
-
- def self.mylist au, page = 1, page_size = Author.default_panel_picture_page_size
- PanelPicture.where(self.mylist_where(au)).includes(PanelPicture.list_opt).order('panel_pictures.updated_at desc').offset((page -1) * page_size).limit(page_size)
- end
-
- def self.himlist au, page = 1, page_size = Author.default_panel_picture_page_size
- PanelPicture.where(self.himlist_where(au)).includes(PanelPicture.list_opt).order('panel_pictures.updated_at desc').offset((page -1) * page_size).limit(page_size)
- end
-
- def self.mylist_paginate au, page = 1, page_size = Author.default_panel_picture_page_size
- Kaminari.paginate_array(Array.new(PanelPicture.where(self.mylist_where(au)).includes(PanelPicture.list_opt).count, nil)).page(page).per(page_size)
- end
-
- def self.himlist_paginate au, page = 1, page_size = Author.default_panel_picture_page_size
- Kaminari.paginate_array(Array.new(PanelPicture.where(self.himlist_where(au)).includes(PanelPicture.list_opt).count, nil)).page(page).per(page_size)
- end
-
- end
-
- module InstanceMethods
- private
-
- public
-
- def visible? roles
- if MagicNumber['run_mode'] == 0
- return false unless guest_role_check(roles)
- else
- return false unless reader_role_check(roles)
- end
- return true if self.panel.own?(roles)
- self.panel.visible? roles
- end
-
- def supply_default
- self.x = 0
- self.y = 0
- if self.picture
- self.width = self.picture.width
- self.height = self.picture.height
- end
- if self.panel
- self.t = self.panel.new_t
- self.z = self.panel.new_z
- end
- end
-
- def overwrite pid
- self.panel_id = pid
- end
-
- end
-
- end
- include Content
- end
-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
+++ /dev/null
-require 'item'
+++ /dev/null
-=begin
-module ActiveRecord
- class Base
- module Item
- def self.included(base)
- base.extend(ClassMethods)
- base.__send__ :include, InstanceMethods
- end
-
- module ClassMethods
- # class_name
- # table_name
-
- def singular
- end
-
- def plural
- end
-
- def item_name
- end
-
- def path_name
- end
-
- def self.default_page_size
- 25
- end
-
- def self.max_page_size
- 100
- end
-
- def self.page 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
- 'panels.publish > 0'
- end
-
- def self.list page = 1, page_size = self.default_page_size
- PanelPicture.where(self.list_where()).includes(PanelPicture.list_opt).order('panel_pictures.updated_at desc').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(PanelPicture.where(self.list_where()).includes(PanelPicture.list_opt).count, nil)).page(page).per(page_size)
- end
-
- def self.list_opt
- {:panel => {:author => {}}, :picture => {:artist => {}, :license => {}} }
- end
-
- def self.list_json_opt
- {:include => {:panel => {:include => {:author => {}}}, :picture => {:include => {:artist => {}, :license => {}}} }}
- end
-
- def self.show cid, au
- opt = {}
- opt.merge!(PanelPicture.show_opt)
- res = PanelPicture.find(cid, opt)
- raise ActiveRecord::Forbidden unless res.visible?(au)
- res
- end
-
- def self.show_opt
- {:include => {:panel => {:author => {}}, :picture => {:artist => {}, :license => {}}}}
- end
-
- def self.show_json_opt
- {:include => {:panel => {:include => {:author => {}}}, :picture => {:include => {:artist => {}, :license => {}}} }}
- end
-
- end
-
- module InstanceMethods
- private
-
- public
-
- def item_name
- end
-
- def item_id
- 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 tag_item_field_id 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
-
- end
- include Item
- end
-end
-
-=end