column_name: 'title',\r
},\r
},\r
+ link: {\r
+ type: 'action'\r
+ args: {\r
+ action_name: 'play',\r
+ },\r
+ },\r
},\r
},\r
summary: {\r
:filer => @filer
}
}
- format.json { render json: @items.to_json(@my_model_class.list_json_opt) }
+ format.json { render json: @items.to_json }
format.atom
format.rss
end
@list = Locmare::ListGroup.list @my_action.item_name, @my_action.list_name
end
+ def play_list
+ @options = {:id => params[:id], :my_play => @item.own?(@operators),
+ :offset => params[:offset], :count => params[:count],
+ :page => params[:page], :page_size => params[:page_size]
+ }
+ list_result = @list.open(@operators, @options)
+ @items = list_result.items
+ @count = list_result.count
+ @pager = list_result.paginate
+ end
+
def set_show
set_model
@item = @my_model_class.show(params[:id], @operators)
:form => @form
}
}
- format.json { render json: @item.to_json(@my_model_class.show_json_opt) }
+ format.json { render json: @item.to_json }
end
end
list_result.items
end
- def assist_filer item_name, items
- filer_manager = Pettanr::Application::manifest.filer_managers[item_name]
- filer_manager.open(item_name, items, @operators, nil)
- end
-
def set_image(file)
if file.respond_to?(:read)
file.read
respond_to do |format|
if @comic_story.store @operators
flash[:notice] = I18n.t('flash.notice.created', :model => ComicStory.model_name.human)
- format.html { redirect_to comic_path(@comic) }
+ format.html { redirect_to play_comic_path(@comic) }
format.json { render json: @comic_story.comic_story_as_json(@operators.author) }
else
flash[:notice] = I18n.t('flash.notice.not_created', :model => ComicStory.model_name.human)
respond_to do |format|
if @comic_story.store @operators, ot
flash[:notice] = I18n.t('flash.notice.updated', :model => ComicStory.model_name.human)
- format.html { redirect_to comic_path(@comic) }
+ format.html { redirect_to play_comic_path(@comic) }
format.json { head :ok }
else
flash[:notice] = I18n.t('flash.notice.not_updated', :model => ComicStory.model_name.human)
before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [:index, :show, :by_story, :by_author, :count, :count_by_story, :count_by_author]
+ before_filter :authenticate_reader, :only => [
+ :index, :show, :play, :by_story, :by_author, :count, :count_by_story, :count_by_author
+ ]
before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
end
def show_html_format format
format.html {
- @comic = @item
- action = Manifest.manifest.controllers['comics'].actions['play']
- list = Locmare::ListGroup.list action.item_name, action.list_name
- list_result = list.open(@operators,
- {:id => params[:id], :page => params[:page], :page_size => params[:page_size]}
+ play_list = Locmare::ListGroup.list 'comic_story', 'play'
+ @play_count = play_list.count(@operators,
+ {:id => @item.id, :my_play => @item.own?(@operators)}
)
- @comic_stories = list_result.items
- if @operators.author
- @new_story_items = assist_items('story', 'private')
- #@new_story_filer = assist_filer 'story', @new_story_items
- end
}
end
end
end
+ def play
+ @item = self.class.model.show(params[:id], @operators)
+ set_play
+ @items = @list.items(@operators,
+ {:id => params[:id], :my_play => @item.own?(@operators)},
+ 0, -1 # no limit
+ )
+ @count = @items.count
+ # no pager
+ respond_to do |format|
+ format.html {
+ if @item.own? @operators
+ @new_story_items = assist_items('story', 'private')
+ end
+ }
+ format.json { render json: @items.to_json }
+ end
+ end
+
def count
list_count
end
before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [:top, :index, :show, :play, :by_author, :by_panel]
+ before_filter :authenticate_reader, :only => [
+ :top, :index, :show, :play, :by_panel, :by_author, :count, :count_by_panel, :count_by_author
+ ]
before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
end
def show_html_format format
format.html {
- @scroll = @item
- if @operators.author
- @new_panel_items = assist_items('panel', 'private')
- #@new_panel_filer = assist_filer 'panel', @new_panel_items
- end
+ play_list = Locmare::ListGroup.list 'scroll_panel', 'play'
+ @play_count = play_list.count(@operators,
+ {:id => @item.id, :my_play => @item.own?(@operators)}
+ )
}
end
def play
@item = self.class.model.show(params[:id], @operators)
set_play
- list_result = @list.open(@operators,
- {:id => params[:id], :offset => params[:offset], :count => params[:count]}
- )
- @items = list_result.items
+ play_list
respond_to do |format|
format.html {
- #@count = @action.list.count @item
- #@prev_offset = @action.list.prev_offset @item
- #@next_offset = @action.list.next_offset @item
- if @operators.author
+ if @item.own? @operators
+ @fresh_panel_items = assist_items('panel', 'public')
@new_panel_items = assist_items('panel', 'private')
- #@new_panel_filer = assist_filer 'panel', @new_panel_items
end
}
- format.json { render json: @items.to_json(self.class.model.list_json_opt) }
+ format.json { render json: @items.to_json }
end
end
def show_html_format format
format.html {
play_list = Locmare::ListGroup.list 'story_sheet', 'play'
- @play_count = play_list.count(@operators, {:id => @item.id, :my_play => @item.own?(@operators)})
- if @operators.author
- @new_comic_items = assist_items('comic', 'private')
- end
+ @play_count = play_list.count(@operators,
+ {:id => @item.id, :my_play => @item.own?(@operators)}
+ )
}
end
end
def play
+ params[:offset] = nil
+ params[:count] = nil
+ params[:page] ||= 1
+ params[:page_size] = 1
@item = self.class.model.show(params[:id], @operators)
- @story = @item
set_play
- @options = {:id => params[:id], :offset => params[:offset], :count => 1}
- list_result = @list.open(@operators, @options)
- @items = list_result.items
- @count = @list.count(@operators, @options)
- @pager = Kaminari.paginate_array(Array.new(@count, nil)).page(params[:offset]).per(1)
+ play_list
+ p @items
@sort_items = @list.items(@operators,
{:id => params[:id], :my_play => @item.own?(@operators)},
- 0, -1
+ 0, -1 # no limit
)
respond_to do |format|
format.html {
- #@count = @action.list.count @item
- #@prev_offset = @action.list.prev_offset @item
- #@next_offset = @action.list.next_offset @item
- if @operators.author
+ if @item.own? @operators
@new_sheet_items = assist_items('sheet', 'private')
end
}
- format.json { render json: @items.to_json(self.class.model.list_json_opt) }
+ format.json { render json: @items.to_json }
end
end
validates :user_id, :numericality => true, :existence => {:both => false}
validates :provider_id, :numericality => {:allow_nil => true}
- def self.visible_count_options
- {:conditions => ['artists.author_id is not null']}
- end
-
def supply_default
self.name = 'no name' if self.name.blank?
end
validates :visible, :presence => true, :numericality => true, :inclusion => {:in => 0..1}
validates :author_id, :presence => true, :numericality => true, :existence => {:both => false}
- def self.visible_count_options
- {:conditions => 'visible > 0'}
- end
-
def supply_default
self.visible = 0 if self.visible.blank?
end
'comics.updated_at desc'
end
- def self.list_opt
- {:comic_stories => {:story => {}}, :author => {} }
- end
-
- def self.list_json_opt
- {:include => {:comic_stories => {:include => {:story => {}}}, :author => {}}}
- end
-
def self.show_opt
{:include => {:comic_stories => {:story => {}}, :author => {}}}
end
self.disp_t_by_text + ':' + self.story.title
end
- def self.public_list_order
- 'comic_stories.updated_at desc'
- end
-
- def self.list_where
+ def self.public_list_where
'comics.visible > 0'
end
- def self.by_author_list_includes
- {
- :comic => {
- :author => {}
- }
- }
- end
-
- def self.play_list_where cid
- ['comic_stories.comic_id = ?', cid]
- end
-
- def self.play_list scroll, author, offset = 0, limit = ScrollPanel.default_panel_size
- ScrollPanel.where(self.play_list_where(scroll.id)).includes(ScrollPanel.list_opt).order('scroll_panels.t').offset(offset).limit(limit)
- end
-
def self.list_opt
{
:comic => {
ScrollPanel.where(['scroll_panels.scroll_id = ?', self.id]).count
end
- def self.public_list_order
- 'scrolls.updated_at desc'
- end
-
- def self.list_where
+ def self.public_list_where
'scrolls.visible > 0'
end
- def self.list_opt
- {:scroll_panels => {:panel => {}}, :author => {} }
- end
-
- def self.list_json_opt
- {:include => {:scroll_panels => {:include => {:panel => {}}}, :author => {}}}
- end
-
def self.show_opt
{:include => {:scroll_panels => {:panel => {}}, :author => {}}}
end
'scroll_panels.updated_at desc'
end
- def self.list_where
+ def self.public_list_where
'scrolls.visible > 0'
end
- def self.by_author_list_includes
- {
- :scroll => {
- :author => {}
- }
- }
- end
-
- def self.play_list_where cid
- ['scroll_panels.scroll_id = ?', cid]
- end
-
- def self.play_list scroll, author, offset = 0, limit = ScrollPanel.default_panel_size
- ScrollPanel.where(self.play_list_where(scroll.id)).includes(ScrollPanel.list_opt).order('scroll_panels.t').offset(offset).limit(limit)
- end
-
def self.list_opt
{
:author => {},
}}
end
- def elements
- self.panel.elements
- end
-
- def scroll_panel_as_json au
- panel_include = if self.panel and self.panel.visible?(au)
- {:include => {:author => {}}, :methods => :elements}
- else
- {:include => {:author => {}}}
- end
- self.to_json({:include => {:scroll => {:include => {:author => {}}}, :author => {}, :panel => panel_include}})
- end
-
- def self.list_as_json_text ary, au
- '[' + ary.map {|i| i.scroll_panel_as_json(au) }.join(',') + ']'
- end
-
def self.licensed_pictures scroll_panels
r = {}
scroll_panels.each do |scroll_panel|
load_manifest
has_many :comic_stories
has_many :story_sheets
- has_many :sheets, :through => :story_sheets
- has_many :play_story_sheets, :class_name => 'StorySheet', :order => 't'
- has_many :play_sheets, :source => 'Sheet', :through => :play_story_sheets
belongs_to :author
validates :title, :presence => true, :length => {:maximum => 100}
end
end
- def story_sheets_count
- StorySheet.where(['story_sheets.story_id = ?', self.id]).count
- end
-
def self.public_list_where
'stories.visible > 0'
end
- def self.list_opt
- {:comic_stories => {:comic => {}}, :author => {} }
- end
-
- def self.list_json_opt
- {:include => {:comic_stories => {:include => {:comic => {}}}, :author => {}}}
- end
-
def self.show_opt
{:include => {:comic_stories => {:comic => {}}, :author => {}}}
end
'stories.visible > 0'
end
- def self.list_order
- 'story_sheets.updated_at desc'
- end
-
- def self.play_sheet_where sid
- ['story_sheets.story_id = ?', sid]
- end
-
- def self.page prm = nil
- page = prm.to_i
- page = 1 if page < 1
- page
- end
- def self.play_sheet story, operators, page = 1
- ss = StorySheet.where(self.play_sheet_where(story.id)).includes(StorySheet.list_opt).order('story_sheets.t').offset(page -1).limit(1).first
- if ss
- if ss.sheet
- Sheet.show(ss.sheet.id, operators)
- else
- nil
- end
- else
- nil
- end
- end
-
- def self.play_paginate story, page
- Kaminari.paginate_array(Array.new(StorySheet.where(self.play_sheet_where(story.id)).includes(StorySheet.list_opt).count, nil)).page(page).per(1)
- end
-
- def self.by_author_list_includes
- {
- :story => {
- :comic => {
- :author => {}
- }
- }
- }
- end
-
def self.list_opt
{
:author => {},
}}
end
- def elements
- self.panel.elements
- end
-
- def story_sheet_as_json au
- panel_include = if self.panel and self.panel.visible?(au)
- {:include => {:author => {}}, :methods => :elements}
- else
- {:include => {:author => {}}}
- end
- self.to_json({:include => {:scroll => {:include => {:author => {}}}, :author => {}, :panel => panel_include}})
- end
-
- def self.list_as_json_text ary, au
- '[' + ary.map {|i| i.story_sheet_as_json(au) }.join(',') + ']'
- end
-
- def self.top_sheet story, author
- StorySheet.play_list(story, author).first
- end
-
def allow? operators
return nil if self.story_id == nil or self.sheet_id == nil
self.story.own?(operators) and self.sheet.usable?(operators)
<% @comic_story = ComicStory.new :comic_id => comic.id, :story_id => story.id -%>
<%= form_for(@comic_story) do |f| %>
<%= f.hidden_field :comic_id %>
- <%= f.hidden_field :t %>
+ <%# f.hidden_field :t %>
<%= f.hidden_field :story_id %>
<%= f.submit t('comic_stories.append.story') %>
<% end %>
-<%= form_for(scroll_panel) do |f| %>
+<%= form_for(comic_story) do |f| %>
<table class="no-border">
<tr>
<td>
No.
<%= f.number_field :t, :size => 3 %>
- <%= f.hidden_field :panel_id %>
- <%= f.hidden_field :scroll_id %>
+ <%= f.hidden_field :comic_id %>
+ <%= f.hidden_field :story_id %>
+ <%= t_selected_item('comic_visible_items', comic_story.story.visible) %>
</td>
<td>
- <%= f.submit t 'scroll_panels.move' %>
+ <%= f.submit t 'comic_stories.move' %>
</td>
</tr>
</table>
--- /dev/null
+<% @page_caption = @item.title %>
+<h1>
+ <%= link_to icon_tag('Comic'), comic_path(@item) %>
+ <%= link_to h(@item.title), play_comic_path(@item) %>
+ <%= link_to icon_tag('Prof'), comic_path(@item, :format => :prof) %>
+</h1>
+
+<p>
+ <b><%= t_m 'Comic.author_id' -%>:</b>
+ <%= link_to h(@item.author.name), author_path(@item.author) %>
+</p>
+
+<% if @items.empty? -%>
+ <h2><%= t('comics.play.empty') %></h2>
+<% else %>
+ <% @items.each do |comic_story| %>
+ <% if comic_story.story and comic_story.story.visible?(@operators) -%>
+ <%= link_to comic_story.title, play_story_path(comic_story.story) %>
+ <% if @item.own? @operators -%>
+ <%= render 'comic_stories/order', :comic_story => comic_story, :operators => @operators %>
+ <% end %>
+ <% else %>
+ story is hidden or deleted
+ <% end %>
+ <% end %>
+<% end %>
+
+<% if @item.own? @operators -%>
+ <h3 id="editor"><%= t('editor') -%></h3>
+ <p id="notice"><%= notice %></p>
+
+ <h3><%= t('comic_stories.append.new_stories') -%></h3>
+ <table>
+ <% @new_story_items.each do |story| %>
+ <%= render 'comic_stories/append_story', :comic => @item, :story => story, :operators => @operators %>
+ <% end %>
+ </table>
+<% end %>
<% @page_title = t('.title') + ':' + @item.title %>
-<h1><%= @item.title %></h1>
+<h1>
+ <%= link_to icon_tag('Comic'), comic_path(@item) %>
+ <%= link_to h(@item.title), play_comic_path(@item) %>
+ <%= link_to icon_tag('Prof'), comic_path(@item, :format => :prof) %>
+</h1>
+
<p>
<b><%= t_m 'Comic.author_id' -%>:</b>
<%= link_to h(@item.author.name), author_path(@item.author) %>
- <b><%= t_m 'Comic.updated_at' -%>:</b>
- <%= l @item.updated_at %>
</p>
-<p id="notice"><%= notice %></p>
-
-<p>
+<div>
<b><%= t_m 'Comic.description' -%>:</b>
<%= h(@item.description) %>
-</p>
+</div>
<div>
- <% @comic_stories.each do |comic_story| %>
- <% if comic_story.story -%>
- <%= link_to comic_story.title, play_story_path(comic_story.story) %>
- <% end %>
- <% end %>
+ <p>
+ <b><%= t_m 'Comic.created_at' -%>:</b>
+ <%= l @item.created_at %>
+ </p>
+ <p>
+ <b><%= t_m 'Comic.updated_at' -%>:</b>
+ <%= l @item.updated_at %>
+ </p>
+ <p>
+ <b>pages:</b>
+ <%= @play_count %>
+ </p>
</div>
<% if @item.own? @operators -%>
-<p>
- <b><%= t_m 'Comic.visible' -%>:</b>
- <%= t_selected_item('comic_visible_items', @item.visible) %>
-</p>
-
- <%= link_to t('link.edit'), edit_comic_path(@item) %>
- <%= link_to t('link.destroy'), comic_path(@item), :method => :delete %>
- <h3><%= t('comic_stories.append.new_stories') -%></h3>
- <table>
- <% @new_story_items.each do |story| %>
- <%= render 'comic_stories/append_story', :story => story, :comic => @item, :operators => @operators %>
- <% end %>
- </table>
+ <h3><%= t('editor') -%></h3>
+ <p id="notice"><%= notice %></p>
+
+ <p>
+ <b><%= t_m 'Comic.visible' -%>:</b>
+ <%= t_selected_item('comic_visible_items', @item.visible) %>
+ </p>
+ <p>
+ <%= link_to t('link.edit'), edit_comic_path(@item) %>
+ <%= link_to t('link.destroy'), comic_path(@item), :method => :delete %>
+ </p>
+
+ <div>
+ <%= link_to t('comics.show.leaf'), play_comic_path(@item, :anchor => :editor) %>
+ </div>
<% end %>
<% @scroll_panel = ScrollPanel.new :scroll_id => scroll.id, :panel_id => panel.id -%>
<%= form_for(@scroll_panel) do |f| %>
<%= f.hidden_field :scroll_id %>
- <%= f.hidden_field :t %>
+ <%# f.hidden_field :t %>
<%= f.hidden_field :panel_id %>
<%= f.submit t('scroll_panels.append.panel') %>
<% end %>
<% @page_title = @item.title %>
-<h1><%= t '.title' -%></h1>
+<h1>
+ <%= link_to icon_tag('Scroll'), scroll_path(@item) %>
+ <%= link_to h(@item.title), play_scroll_path(@item) %>
+ <%= link_to icon_tag('Prof'), scroll_path(@item, :format => :prof) %>
+</h1>
<p id="notice"><%= notice %></p>
<% if @items.empty? -%>
<h2><%= t('scrolls.play.empty') %></h2>
<% else %>
+ <%= paginate(@pager) %>
<% @items.each do |scroll_panel| %>
<% if scroll_panel.panel -%>
<%= render 'panels/body', :panel => scroll_panel.panel, :operators => @operators, :spot => nil %>
<%= render 'scroll_panels/footer', :scroll_panel => scroll_panel, :operators => @operators %>
<% end %>
<%= render 'scroll_panels/licensed_pictures', :licensed_pictures => ScrollPanel.licensed_pictures(@items) %>
-
- <% if @prev_offset -%>
- <%= link_to h('<<prev'), play_scroll_path(@scroll, {:offset => @prev_offset, :count => @count}) %>
- <% end %>
-
- <% if @next_offset -%>
- <%= link_to h('next>>'), play_scroll_path(@scroll, {:offset => @next_offset, :count => @count}) %>
- <% end %>
-
+ <%= paginate(@pager) %>
<% end %>
<% if @item.own? @operators -%>
+ <h3 id="editor"><%= t('editor') -%></h3>
+ <p id="notice"><%= notice %></p>
+
<h3><%= t('scroll_panels.append.new_panels') -%></h3>
<table>
<% @new_panel_items.each do |panel| %>
<%= render 'scroll_panels/append_panel', :panel => panel, :scroll => @item, :operators => @operators %>
<% end %>
</table>
+ <h3><%= t('scroll_panels.append.fresh_panels') -%></h3>
+ <table>
+ <% @fresh_panel_items.each do |panel| %>
+ <%= render 'scroll_panels/append_panel', :panel => panel, :scroll => @item, :operators => @operators %>
+ <% end %>
+ </table>
<% end %>
<% @page_title = t('.title') + ':' + @item.title %>
-<h1><%= t('.title') %></h1>
-<p id="notice"><%= notice %></p>
-
-<p>
- <b><%= t_m 'Scroll.title' -%>:</b>
+<h1>
+ <%= link_to icon_tag('Scroll'), scroll_path(@item) %>
<%= link_to h(@item.title), play_scroll_path(@item) %>
-</p>
-
-<p>
- <b><%= t_m 'Scroll.description' -%>:</b>
- <%= h(@item.description) %>
-</p>
-
-<p>
- <b><%= t_m 'Scroll.visible' -%>:</b>
- <%= t_selected_item('scroll_visible_items', @item.visible) %>
-</p>
+ <%= link_to icon_tag('Prof'), scroll_path(@item, :format => :prof) %>
+</h1>
<p>
<b><%= t_m 'Scroll.author_id' -%>:</b>
<%= link_to h(@item.author.name), author_path(@item.author) %>
</p>
-<p>
- <b><%= t_m 'Scroll.created_at' -%>:</b>
- <%= l @item.created_at %>
-</p>
+<div>
+ <b><%= t_m 'Scroll.description' -%>:</b>
+ <%= h(@item.description) %>
+</div>
-<p>
- <b><%= t_m 'Scroll.updated_at' -%>:</b>
- <%= l @item.updated_at %>
-</p>
+<div>
+ <p>
+ <b><%= t_m 'Scroll.created_at' -%>:</b>
+ <%= l @item.created_at %>
+ </p>
+ <p>
+ <b><%= t_m 'Scroll.updated_at' -%>:</b>
+ <%= l @item.updated_at %>
+ </p>
+ <p>
+ <b>pages:</b>
+ <%= @play_count %>
+ </p>
+</div>
<% if @item.own? @operators -%>
- <%= link_to t('link.edit'), edit_scroll_path(@item) %>
- <h3><%= t('scroll_panels.append.new_panels') -%></h3>
- <table>
- <% @new_panel_items.each do |panel| %>
- <%= render 'scroll_panels/append_panel', :panel => panel, :scroll => @item, :operators => @operators %>
- <% end %>
- </table>
+ <h3><%= t('editor') -%></h3>
+ <p id="notice"><%= notice %></p>
+
+ <p>
+ <b><%= t_m 'Scroll.visible' -%>:</b>
+ <%= t_selected_item('scroll_visible_items', @item.visible) %>
+ </p>
+ <p>
+ <%= link_to t('link.edit'), edit_scroll_path(@item) %>
+ <%= link_to t('link.destroy'), scroll_path(@item), :method => :delete %>
+ </p>
+
+ <div>
+ <%= link_to t('scrolls.show.leaf'), play_scroll_path(@item, :anchor => :editor) %>
+ </div>
<% end %>
<%= link_to icon_tag('Prof'), story_path(@item, :format => :prof) %>
</h1>
+<p>
+ <b><%= t_m 'Story.author_id' -%>:</b>
+ <%= link_to h(@item.author.name), author_path(@item.author) %>
+</p>
+
<% if @items.empty? -%>
<h2><%= t('stories.play.empty') %></h2>
<% else %>
- <%= paginate(@pager, :param_name => :offset) %>
+ <%= paginate(@pager) %>
<% @items.each do |story_sheet| %>
<% if story_sheet.sheet and story_sheet.sheet.visible?(@operators) -%>
<%= render 'sheets/standard', :sheet => story_sheet.sheet, :operators => @operators %>
+ <% else %>
+ sheet is hidden or deleted
<% end %>
<% end %>
- <%= paginate(@pager, :param_name => :offset) %>
+ <%= paginate(@pager) %>
<% end %>
<% if @item.own? @operators -%>
+ <h3 id="editor"><%= t('editor') -%></h3>
<p id="notice"><%= notice %></p>
<% @sort_items.each do |story_sheet| %>
<% if story_sheet.sheet -%>
<div>
- <%= link_to sheet_icon(:object => story_sheet.sheet, :size => 25), sheet_path(story_sheet.sheet) %>
- <%= link_to h(truncate(story_sheet.sheet.caption, :length => 40)), play_sheet_path(story_sheet.sheet) %>
- (<%= story_sheet.sheet.sheet_panels.size -%>)
+ <% @items.each do |ss| %>
+ <% if story_sheet.sheet.id == ss.id -%>
+ [*]
+ <% end %>
+ <% end %>
<%= render 'story_sheets/order', :story_sheet => story_sheet, :operators => @operators %>
</div>
+ <% else %>
+ sheet is hidden or deleted
+ <%= link_to t('link.destroy'), story_sheet_path(story_sheet), :method => :delete %>
<% end %>
<% end %>
<h3><%= t('story_sheets.append.new_sheets') -%></h3>
<%= link_to icon_tag('Prof'), story_path(@item, :format => :prof) %>
</h1>
+<p>
+ <b><%= t_m 'Story.author_id' -%>:</b>
+ <%= link_to h(@item.author.name), author_path(@item.author) %>
+</p>
+
<div>
<b><%= t_m 'Story.description' -%>:</b>
<%= h(@item.description) %>
<b><%= t_m 'Story.created_at' -%>:</b>
<%= l @item.created_at %>
</p>
-
<p>
<b><%= t_m 'Story.updated_at' -%>:</b>
<%= l @item.updated_at %>
</p>
-
<p>
<b>pages:</b>
<%= @play_count %>
</div>
<% if @item.own? @operators -%>
+ <h3><%= t('editor') -%></h3>
<p id="notice"><%= notice %></p>
<p>
<b><%= t_m 'Story.visible' -%>:</b>
<%= t_selected_item('story_visible_items', @item.visible) %>
</p>
-
- <%= link_to t('link.edit'), edit_story_path(@item) %>
- <%= link_to t('link.destroy'), story_path(@item), :method => :delete %>
-
- <h3><%= t('comic_stories.append.new_comics') -%></h3>
- <table>
- <% @new_comic_items.each do |comic| %>
- <%= render 'comic_stories/append_comic', :story => @item, :comic => comic, :operators => @operators %>
- <% end %>
- </table>
-
+ <p>
+ <%= link_to t('link.edit'), edit_story_path(@item) %>
+ <%= link_to t('link.destroy'), story_path(@item), :method => :delete %>
+ </p>
+ <div>
+ <%= link_to t('stories.show.leaf'), play_story_path(@item, :anchor => :editor) %>
+ </div>
<% end %>
<% @story_sheet.attributes = {:story_id => story.id, :sheet_id => sheet.id} -%>
<%= form_for(@story_sheet) do |f| %>
<%= f.hidden_field :story_id %>
- <%= f.hidden_field :t %>
+ <%# f.hidden_field :t %>
<%= f.hidden_field :sheet_id %>
<%= f.submit t('story_sheets.append.sheet') %>
<% end %>
<table class="no-border">
<tr>
<td>
+ <%= link_to sheet_icon(:object => story_sheet.sheet, :size => 25), sheet_path(story_sheet.sheet) %>
+ <%= link_to h(truncate(story_sheet.sheet.caption, :length => 40)), play_sheet_path(story_sheet.sheet) %>
+ </td>
+ <td>
No.
<%= f.number_field :t, :size => 3 %>
<%= f.hidden_field :story_id %>
<td>
<%= f.submit t 'story_sheets.move' %>
</td>
+ <td>
+ <%= link_to t('link.destroy'), story_sheet_path(story_sheet), :method => :delete %>
+ </td>
</tr>
</table>
<% end %>
new: 新刊
show:
title: スクロール詳細
+ leaf: コマの追加と並び替え
play:
title: スクロールを読む
- empty: スクコマはありません
+ empty: 閲覧できるスクコマはありません
by_author:
title: 作家のスクロール一覧
by_panel:
panel: このコマを追加する
scroll: このスクロールに追加する
new_panels: 最近作成したコマ
+ fresh_panels: 最近作成したコマ
new_scrolls: 最近作成したスクロール
fresh_scrolls: 最近更新したスクロール
comics:
title: 作家のコミック一覧
show:
title: コミック詳細
+ leaf: ストーリーの追加と並び替え
+ play:
+ title: コミックを読む
+ empty: 閲覧できるストーリーはありません
new:
title: 新刊作成
edit:
new: 新ストーリー
show:
title: ストーリー詳細
+ leaf: 用紙の追加と並び替え
play:
title: ストーリーを読む
- empty: 用紙はありません
+ empty: 閲覧できる用紙はありません
by_comic:
title: コミックのストーリー一覧
by_sheet:
inspire: インスパイヤ
play:
title: 用紙を読む
- empty: 紙コマはありません
+ empty: 閲覧できるコマはありません
by_story:
title: ストーリーの用紙一覧
by_panel:
back: 戻る
marker: ■
catch: 掴む
+ editor: 編集メニュー
tab:
creator:
home: 作る・見せる
get :by_story
get :by_panel
get :by_author
- get :story_sheets_count
- get :stories_count
- get :sheet_panels_count
- get :panels_count
get :count_by_story
get :count_by_panel
get :count_by_author
module ListGroupModule
class Base
class ListResult
- attr :list, :items, :paginate
+ attr :list, :items, :count, :paginate
- def initialize list, items, paginate, operators, options
+ def initialize list, items, count, paginate, operators, options
@list = list
@items = items
+ @count = count # total count
@paginate = paginate
@operators = operators
@options = options
count = self.count operators, options
pg = self.paginate count, page, page_size
self.boost items
- ListResult.new self, items, pg, operators, options
+ ListResult.new self, items, count, pg, operators, options
end
end
def open operators, options
count = self.count operators, options
- offset = self.offset count, options[:offset]
- limit = self.limit options[:count]
- items = self.items operators, options, offset, limit
+ if options[:offset]
+ offset = self.offset count, options[:offset]
+ page_size = self.limit options[:count]
+ pg = nil
+ else
+ page = self.page_number(options[:page])
+ page_size = self.page_size options[:page_size]
+ offset = (page -1) * page_size
+ pg = self.paginate count, page, page_size
+ end
+ items = self.items operators, options, offset, page_size
self.boost items
- ListResult.new self, items, nil, operators, options
+ ListResult.new self, items, count, pg, operators, options
end
end
self.my_peta.extend_column? column_name
end
- def self.visible_count_options
- nil
- end
-
def self.list_where
''
end
end
def self.play_list_order
- 'story_sheets.t'
+ self.table_name + '.t'
end
def self.play_list scroll, author, offset = 0, limit = ScrollPanel.default_panel_size
"args": {\r
"column_name": "title"\r
}\r
+ },\r
+ "link": {\r
+ "type": "action",\r
+ "args": {\r
+ "action_name": "play"\r
+ }\r
}\r
}\r
},\r
"parent_model_name": "panel"\r
}\r
},\r
- "original_picture": {},\r
+ "original_picture": {\r
+ "type": "content"\r
+ },\r
"picture": {\r
+ "type": "content",\r
"args": {\r
"boost": {\r
"license_group": {\r
}\r
},\r
"resource_picture": {\r
+ "type": "content",\r
"args": {\r
"boost": {\r
"license_group": {\r
"show": {\r
"type": "show"\r
},\r
+ "history": {\r
+ "type": "show"\r
+ },\r
"count": {\r
"type": "count",\r
"args": {\r
"list_name": "public"\r
}\r
+ },\r
+ "new": {\r
+ "type": "new"\r
+ },\r
+ "edit": {\r
+ "type": "edit"\r
}\r
}\r
},\r
"number": true\r
}\r
},\r
- "license_group_id": {\r
- "type": "number",\r
- "rules": {\r
- "required": true,\r
- "number": true\r
- }\r
- },\r
"license_id": {\r
"type": "number",\r
"rules": {\r