source 'https://rubygems.org'
-gem 'rails', '~> 3.2.0'
+gem 'rails', '~> 4.1.0'
gem 'devise'
-# gem 'devise_token_auth'
+gem 'omniauth'
gem 'rest-client'
gem 'underscore-rails'
# gem 'backbone-rails'
gem 'kaminari'
gem 'sanitize'
gem 'aws-s3'
-gem 'awesome_nested_set', '~> 2.0'
+gem 'aws-sdk', '< 2.0'
+gem 'awesome_nested_set', '~> 3.0'
gem 'validates_existence'
gem "validate_url"
gem "pettanr_creative_commons_v30_licenses"
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'i18n-js'
+gem 'nokogiri'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
- gem 'sass-rails', '~> 3.0'
- gem 'coffee-rails', '~> 3.0'
- gem 'uglifier', '>= 1.0.3'
+ gem 'sass-rails', '~> 4.0'
+ gem 'coffee-rails', '~> 4.0'
+ gem 'uglifier', '>= 1.3.0'
# http://qiita.com/scivola/items/ec7625118fcf6de5203a
gem 'coffee-script-source', '~> 1.8.0'
end
gem 'factory_girl'
end
+gem 'tzinfo-data'
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
+//= require jquery
//= require_directory ./work
//= require system
\r
set_list: () ->\r
@set_model()\r
- @my_list_model = Manifest.manifest().models[@my_action.item_name]\r
- @my_list_model_class = @my_list_model.classify()\r
- @list = Locmare.ListGroup.list(\r
- @my_action.path_name(), @my_action.name, @params\r
- )\r
+ @list = @my_action.find(@params)\r
\r
set_show: (render_func) ->\r
@set_model()\r
\r
set_play: (render_func) ->\r
@set_list()\r
- @binder_action = @my_action.original\r
- @binder_controller = @binder_action.controller()\r
- @binder_model = Manifest.manifest().models[@binder_action.item_name]\r
- @binder_model_class = @binder_model.classify()\r
- @binder_model_class.retrieve(@params['id'], this, {success: render_func})\r
+ @my_model_class.retrieve(@params['id'], this, {success: render_func})\r
\r
show_prof: () ->\r
@item.boosts 'post'\r
@trigger('title', @params, @item.get('title'))\r
show = new Pettanr.Views.Comic.Play({\r
item: @item,\r
- list: items,\r
+ list: @list,\r
})\r
show.render()\r
@trigger('ready', show)\r
@trigger('title', @params, @item.get('caption'))\r
show = new Pettanr.Views.Sheet.Play({\r
item: @item,\r
- list: items,\r
+ list: @list,\r
})\r
show.render()\r
@trigger('ready', show)\r
@trigger('title', @params, @item.get('title'))\r
show = new Pettanr.Views.Story.Play({\r
item: @item,\r
- list: items,\r
+ list: @list,\r
})\r
show.render()\r
@trigger('ready', show)\r
method_name: () ->\r
@my_manifest.method_name\r
\r
- ready_symbol: (symbol) ->\r
- \r
{id: filter_id}\r
else\r
{}\r
- list = Locmare.ListGroup.list(resource_controller_name, resource_action_name, params)\r
+ controller = Manifest.manifest().controllers[resource_controller_name]\r
+ action = controller.actions[resource_action_name]\r
+ list = action.find(params)\r
list.open(this, {\r
success: (page_status) ->\r
members = _.map list.models, (member) ->\r
@filer = null\r
controller = Manifest.manifest().controllers[@has_many_manifest.controller_name]\r
action = controller.actions[@has_many_manifest.action_name]\r
- @list = Locmare.ListGroup.list(\r
- action.path_name(), action.name, \r
- {id: @item().get('id'), page: 1, page_size: 3}\r
- )\r
+ @list = action.find({id: @item().get('id'), page: 1, page_size: 3})\r
@pager = new Locmare.ListGroupModule.LibModule.PagerModule.More({\r
params: {controller: action.path_name(), action: action.name, id: @item().get('id')}\r
})\r
@filer = null\r
controller = Manifest.manifest().controllers[@has_one_manifest.controller_name]\r
action = controller.actions[@has_one_manifest.action_name]\r
- @list = Locmare.ListGroup.list(\r
- action.path_name(), action.name, \r
- {id: @item().get('id')}\r
- )\r
+ @list = action.find({id: @item().get('id')})\r
\r
clear: () ->\r
this.$el.html('')\r
@direction = @args.direction\r
@default_page_size = @args.default_page_size\r
@max_page_size = @args.max_page_size\r
+ @return_item_name = @args.return_item_name || @item_name\r
\r
a_arg_names: () ->\r
_.union(super(), ['order', 'direction', 'default_page_size', 'max_page_size'])\r
\r
+ find: (params = {}) ->\r
+ new Pettanr.Finder(this, params)\r
+ \r
symbol: ['system_picture']\r
}\r
\r
- caption_with_group: () ->\r
+ caption_with_group: (context, options) ->\r
@get_parent('license_group', this, {\r
success: (license_group) => \r
caption = license_group.escape('caption') + '/' + @escape('caption')\r
- @trigger('ready:caption', caption)\r
+ options.success.call(context, caption)\r
})\r
\r
is_own: () ->\r
''\r
\r
get_association: (routes, context, options) ->\r
- console.log 'get_association'\r
routes = [routes] if _.isString(routes)\r
- console.log routes\r
route = routes.shift()\r
if _.isEmpty(routes)\r
# fetching terminate association. callback\r
- console.log 'fetching terminate association'\r
cxt = options.context || context\r
@fetch_association(route, cxt, {\r
success: (association_item, options) =>\r
- console.log 'success'\r
- console.log association_item\r
- console.log options\r
options.success.call(context, association_item)\r
context: context,\r
options: options\r
})\r
else\r
# fetching through associations\r
- console.log 'fetching through associations'\r
@fetch_association(route, this, {\r
success: (association_item, options) =>\r
- console.log 'success'\r
- console.log association_item\r
- console.log options\r
association_item.get_association(routes, this, options)\r
context: context,\r
options: options\r
})\r
\r
fetch_association: (name, context, options) =>\r
- console.log context\r
- console.log options\r
a = @my_class().my_manifest().associations\r
fetch_options = {\r
success: (association_item) =>\r
options.success.call(context, association_item, options.options)\r
}\r
if a.belongs_to[name]\r
- console.log 'belongs_to'\r
- console.log name\r
@get_parent(name, context, fetch_options)\r
else if a.has_many[name]\r
- console.log 'has_many'\r
- console.log name\r
@get_children(name, context, fetch_options)\r
else if a.has_one[name]\r
- console.log 'has_one'\r
- console.log name\r
@get_child(name, context, fetch_options)\r
else\r
console.error('association does not exist in model manifest')\r
cached_item # merge?\r
else\r
@data[item.cache_key()] = item\r
- @refresh(return_items)\r
+ # @refresh(return_items)\r
return_items\r
\r
restore: (key) ->\r
--- /dev/null
+class Pettanr.Finder extends Backbone.Collection\r
+ \r
+ initialize: (@action_manifest, @params) ->\r
+ @return_model = Manifest.item_name_to_model @action_manifest.return_item_name\r
+ \r
+ parse: (res) ->\r
+ @page_status = res.page_status\r
+ res.list\r
+ \r
+ items: () ->\r
+ _.map @models, (model) =>\r
+ item = new @return_model(model.attributes)\r
+ Pettanr.cache.store(item)\r
+ \r
+ open: (context, options) ->\r
+ @url = '/' + @action_manifest.url(@params)\r
+ @fetch().done =>\r
+ # @boost(items)\r
+ options.success.call(context, @items())\r
+ \r
+ to_filer: (context, options) ->\r
+ @open(context, {\r
+ success: (items) => \r
+ pager = Locmare.ListGroupModule.LibModule.Pager.factory(@page_status, @params)\r
+ filer = new Locmare.Filer({\r
+ item_name: @action_manifest.return_item_name, \r
+ items: items, \r
+ pager: pager\r
+ })\r
+ options.success.call(context, filer)\r
+ })\r
+ \r
+++ /dev/null
-class Pettanr.Remover\r
- \r
- constructor: (options) ->\r
- _.extend(this, Backbone.Events)\r
- @item = options.item\r
- \r
controller: 'resource_pictures', action: 'by_artist', id: @item.get('id'),\r
page_size: 5\r
}\r
- @list = Locmare.ListGroup.list(\r
- params['controller'], params['action'], params\r
- )\r
- @list.open(this, {\r
- success: (items) => \r
+ controller = Manifest.manifest().controllers[params['controller']]\r
+ action = controller.actions[params['action']]\r
+ @list = action.find(params)\r
+ @list.to_filer(this, {\r
+ success: (filer) => \r
pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, params)\r
- filer = new Locmare.Filer({\r
- item_name: @list.item_name, \r
- items: items, \r
- pager: pager\r
- })\r
@listenTo(filer, 'http_get', @http_get)\r
this.$el.append(filer.render().el)\r
})\r
controller: 'scrolls', action: 'by_author', id: @item.get('id'),\r
page_size: 5\r
}\r
- @list = Locmare.ListGroup.list(\r
- params['controller'], params['action'], params\r
- )\r
- @list.open(this, {\r
- success: (items) => \r
+ controller = Manifest.manifest().controllers[params['controller']]\r
+ action = controller.actions[params['action']]\r
+ @list = action.find(params)\r
+ @list.to_filer(this, {\r
+ success: (filer) => \r
pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, params)\r
- filer = new Locmare.Filer({\r
- item_name: @list.item_name, \r
- items: items, \r
- pager: pager\r
- })\r
@listenTo(filer, 'http_get', @http_get)\r
this.$el.append(filer.render().el)\r
})\r
@load()\r
\r
load: () ->\r
- @picture = @item.picture()\r
- @picture.fetch({cache: true}).done =>\r
- @credit = @picture.credit_view(false)\r
- @trigger('ready')\r
+ @item.get_parent('picture', this, {\r
+ success: (@picture) =>\r
+ @credit = @picture.credit_view(false)\r
+ @trigger('ready')\r
+ })\r
\r
render: () ->\r
this.$el.html('')\r
render: () ->\r
this.$el.html('')\r
# paginate(@pager)\r
- credits = new Pettanr.Views.Sheet.PlayModule.Credits({parent: this})\r
+ credits = new Pettanr.Views.Common.Credits({parent: this})\r
panels = new Pettanr.Views.Sheet.PlayModule.Panels({\r
parent: this,\r
items: @items,\r
\r
render: () ->\r
this.$el.html('')\r
- body = new Pettanr.Views.Sheet.PlayModule.Body({\r
- parent: this,\r
- list: [], # list of sheets/by_story/1\r
+ @sheet.get_children('panel', this, {\r
+ success: (panels) => \r
+ body = new Pettanr.Views.Sheet.PlayModule.Body({\r
+ parent: this,\r
+ list: [], # list of sheets/by_story/1\r
+ })\r
+ this.$el.append(body.render().el)\r
})\r
- this.$el.append(body.render().el)\r
this\r
\r
class Pettanr.Views.Story.PlayModule.Sheets extends Pettanr.View\r
play: {\r
type: 'list',\r
args: {\r
- alias: 'scroll_panels.by_scroll',\r
+ return_item_name: 'scroll_panel',\r
order: 't',\r
direction: 1\r
},\r
play: {\r
type: 'list',\r
args: {\r
- alias: 'comic_stories.by_comic',\r
+ return_item_name: 'comic_story',\r
max_page_size: -1,\r
order: 't',\r
direction: 1\r
play: {\r
type: 'list',\r
args: {\r
- alias: 'story_sheets.by_story',\r
+ return_item_name: 'story_sheet',\r
max_page_size: -1,\r
order: 't',\r
direction: 1\r
play: {\r
type: 'list',\r
args: {\r
- alias: 'sheet_panels.by_sheet',\r
+ return_item_name: 'sheet_panel',\r
order: 't',\r
direction: 1\r
},\r
scrolls: {\r
type: 'list',\r
args: {\r
- alias: 'scrolls.index',\r
+ item_name: 'scroll',\r
},\r
},\r
scroll_panels: {\r
type: 'list',\r
args: {\r
- alias: 'scroll_panels.index',\r
+ item_name: 'scroll_panel',\r
},\r
},\r
comics: {\r
type: 'list',\r
args: {\r
- alias: 'comics.index',\r
+ item_name: 'comic',\r
},\r
},\r
comic_stories: {\r
type: 'list',\r
args: {\r
- alias: 'comic_stories.index',\r
+ item_name: 'comic_story',\r
},\r
},\r
stories: {\r
type: 'list',\r
args: {\r
- alias: 'stories.index',\r
+ item_name: 'story',\r
},\r
},\r
story_sheets: {\r
type: 'list',\r
args: {\r
- alias: 'story_sheets.index',\r
+ item_name: 'story_sheet',\r
},\r
},\r
sheets: {\r
type: 'list',\r
args: {\r
- alias: 'sheets.index',\r
+ item_name: 'sheet',\r
},\r
},\r
sheet_panels: {\r
type: 'list',\r
args: {\r
- alias: 'sheet_panels.index',\r
+ item_name: 'sheet_panel',\r
},\r
},\r
panels: {\r
type: 'list',\r
args: {\r
- alias: 'panels.index',\r
+ item_name: 'panel',\r
},\r
},\r
panel_pictures: {\r
type: 'list',\r
args: {\r
- alias: 'panel_pictures.index',\r
+ item_name: 'panel_picture',\r
},\r
},\r
speech_balloons: {\r
type: 'list',\r
args: {\r
- alias: 'speech_balloons.index',\r
+ item_name: 'speech_balloon',\r
},\r
},\r
speeches: {\r
type: 'list',\r
args: {\r
- alias: 'speeches.index',\r
+ item_name: 'speech',\r
},\r
},\r
balloons: {\r
type: 'list',\r
args: {\r
- alias: 'balloons.index',\r
+ item_name: 'balloon',\r
},\r
},\r
ground_pictures: {\r
type: 'list',\r
args: {\r
- alias: 'ground_pictures.index',\r
+ item_name: 'ground_picture',\r
},\r
},\r
ground_colors: {\r
type: 'list',\r
args: {\r
- alias: 'ground_colors.index',\r
+ item_name: 'ground_color',\r
},\r
},\r
original_pictures: {\r
type: 'list',\r
args: {\r
- alias: 'original_pictures.index',\r
+ item_name: 'original_picture',\r
},\r
},\r
resource_pictures: {\r
type: 'list',\r
args: {\r
- alias: 'resource_pictures.index',\r
+ item_name: 'resource_picture',\r
},\r
},\r
},\r
//= require ./pettanr/proxy
//= require ./pettanr/cache
//= require ./pettanr/inspire
+//= require ./pettanr/finder
//= require ./backbone.fetch-cache
//= require main
class ApplicationController < ActionController::Base
protect_from_forgery
+ protect_from_forgery with: :null_session, if: Proc.new {|c| c.request.format == 'application/json'}
layout :devise_layout
- before_filter :bf
+ before_action :bf
+ before_action :authenticate_user_from_token!, if: -> {params[:email].present?}
def devise_layout
if devise_controller?
@operators = Operator.new [user, author, artist, admin, demand_user]
end
+ def authenticate_user_from_token!
+ user = User.find_by(email: params[:email])
+ if Devise.secure_compare(user.try(:authentication_token), params[:auth_token])
+ sign_in user, store: false
+ self.bf
+ end
+ end
+
def authenticate_reader
authenticate_user! unless @operators.reader?
end
@my_model_class = @my_model.classify
end
- def set_list
+ def set_list options = {}
set_model
- @my_list_model = Manifest.manifest.models[@my_action.item_name]
- @my_list_model_class = @my_list_model.classify
- @list = Locmare::ListGroup.list @my_action.controller.name, @my_action.action_name, @operators, params
+ # params merge to options
+ options[:page] ||= params[:page]
+ options[:page_size] ||= params[:page_size]
+ options[:order] ||= params[:order]
+ options[:direction] ||= params[:direction]
+ @finder = @my_action.find options
end
- def filer_list
- set_list
- @items = @list.items
+ def filer_list options = {}
+ set_list options
respond_to do |format|
format.html {
- @filer = Locmare::Filer.new @list.item_name, @items, @list.page_status, @operators
+ @filer = Locmare::Filer.new @my_action.return_item_name, @finder, @finder, @operators
render @filer.template_name, :locals => {
:filer => @filer
}
}
- list_json_format @list, format
+ list_json_format @finder, format
format.atom
format.rss
end
def list_json_format list, format
format.json {
res = {
- :page_status => list.page_status.to_hash,
+ :page_status => {
+ :type => :default, :total => @finder.total_count, :total_page => @finder.total_pages,
+ :page => @finder.page, :page_size => @finder.limit_value,
+ :item_name => @my_action.return_item_name
+ },
# rails3.2 has problem
# y method defined as private
# attribute y conflict at PanelPicture, balloon ..etc
# use i.attributes[name]
- :list => list.items.map{|i| i.attributes}
- # :list => @items.to_json
+ :list => list.map{|i| i.attributes}
+ # :list => @finder.to_json
}
render json: res.to_json
}
end
def set_play
- set_list
- @binder_action = @my_action.original
- @binder_controller = @binder_action.controller
- @binder_model = Manifest.manifest.models[@binder_action.item_name]
- @binder_model_class = @binder_model.classify
- @item = @binder_model_class.show(params[:id], @operators)
+ set_model
+ @item = @my_model_class.show(params[:id], @operators)
+ options = if @item.own?(@operators)
+ {finder: :find_private_play, param: [params[:id], @operators]}
+ else
+ {finder: :find_play, param: params[:id]}
+ end
+ set_list options
end
def play_list
- @items = @list.items #.map {|sp| sp.root }
- @count = @list.total
- @pager = @list.page_status.pager
+ @items = @finder #.map {|sp| sp.root }
+ @count = @finder.total_count
+ @pager = @finder
end
def set_show
}
end
- def assist_items controller_name, action_name
- list = Locmare::ListGroup.list controller_name, action_name, @operators, {:id => @item.id, :page => 1, :page_size => 5}
- list.items
+ def assist_items controller_name, action_name, options = {}
+ controller = Manifest.manifest.controllers[controller_name]
+ action = controller.actions[action_name]
+ options[:page] = 1
+ options[:page_size] = 5
+ finder = action.find options
+ finder
end
def set_image(file)
class ArtistsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_artist, :only => [:edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_artist, :only => [:edit, :update, :destroy]
else
- before_filter :authenticate_resource_reader, :only => [
+ before_action :authenticate_resource_reader, :only => [
:index, :show
]
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_artist, :only => [:edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_artist, :only => [:edit, :update, :destroy]
end
def index
set_model
@item = @my_model_class.new
@item.supply_default
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
render_create root_path
end
def update
set_edit
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
render_update '/home/configure'
end
class AuthorsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update]
- before_filter :authenticate_author, :only => [:edit, :update]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update]
+ before_action :authenticate_author, :only => [:edit, :update]
else
- before_filter :authenticate_reader, :only => [:index, :show]
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update]
- before_filter :authenticate_author, :only => [:edit, :update]
+ before_action :authenticate_reader, :only => [:index, :show]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update]
+ before_action :authenticate_author, :only => [:edit, :update]
end
def index
set_model
@item = @my_model_class.new
@item.supply_default
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
render_create root_path
end
def update
set_edit
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
render_update '/home/configure'
end
class BalloonsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show,
:by_author, :by_speech_balloon, :by_speech_balloon_template, :by_system_picture
]
- before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
end
def index
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def by_speech_balloon
- filer_list
+ filer_list param: params[:id]
end
def by_speech_balloon_template
- filer_list
+ filer_list param: params[:id]
end
def by_system_picture
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
class ComicStoriesController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :by_story, :by_comic, :by_author
]
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
end
def index
end
def by_story
- filer_list
+ filer_list param: params[:id]
end
def by_comic
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def show
set_model
@item = @my_model_class.new
@item.supply_default
- @item.attributes = params[@item.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
@binder = @my_model_class.binder_model.edit(@item.binder_id, @operators) if @item.binder_id
@panel = @my_model_class.destination_model.show(@item.destination_id, @operators) if @item.destination_id
set_model
@item = @my_model_class.edit(params[:id], @operators)
ot = @item.t
- @item.attributes = params[@item.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
@binder = @my_model_class.binder_model.edit(@item.binder_id, @operators) if @item.binder_id
# no check permission for destination
class ComicsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :play, :by_story, :by_author
]
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
end
def index
end
def by_story
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
def play
set_play
- @list.options.merge!({'page_size' => -1}) # no limit no pager
- @list.reset
+ @finder.per(-1) # no limit no pager
play_list
respond_to do |format|
format.html {
if @item.own? @operators
- @new_story_items = assist_items('home', 'stories')
+ @new_story_items = assist_items('home', 'stories', finder: :find_private, param: @operators)
end
}
- list_json_format @list, format
+ list_json_format @finder, format
end
end
@item = @my_model_class.new
@item.supply_default
@my_model_class.fold_extend_settings params[@my_model_class.item_name]
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
render_create
end
def update
set_edit
@my_model_class.fold_extend_settings params[@my_model_class.item_name]
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
render_update
end
class DemanderStatusesController < ApplicationController
- before_filter :authenticate_admin!, :only => [:index, :show, :edit, :update, :destroy]
+ before_action :authenticate_admin!, :only => [:index, :show, :edit, :update, :destroy]
def index
@page = DemanderStatus.page params[:page]
class DemandersController < ApplicationController
- before_filter :authenticate_demand_user!, :only => [:index, :show, :new, :create, :edit, :update, :destroy, :req, :licenses_export, :artists_export, :original_pictures_export, :pictures_export, :export]
+ before_action :authenticate_demand_user!, :only => [:index, :show, :new, :create, :edit, :update, :destroy, :req, :licenses_export, :artists_export, :original_pictures_export, :pictures_export, :export]
def index
@demander = @demand_user.demander
class FoldersController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [:root, :index, :show, :watch]
- before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_reader, :only => [:root, :index, :show, :watch]
+ before_action :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
end
def root
class GroundColorsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :by_panel, :by_author
]
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
end
def index
end
def by_panel
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
class GroundPicturesController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :by_panel, :by_author
]
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
end
def index
end
def by_panel
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
class HomeController < ApplicationController
- before_filter :authenticate_user, :only => [
+ before_action :authenticate_user, :only => [
:index, :show, :profile, :configure, :create_token, :delete_token,
:scrolls, :scroll_panels, :comics, :comic_stories, :stories, :story_sheets,
:sheets, :sheet_panels,
:panels, :panel_pictures, :speech_balloons, :balloons, :speeches, :ground_pictures, :ground_colors
]
- before_filter :authenticate_author, :only => [
+ before_action :authenticate_author, :only => [
:scrolls, :scroll_panels, :comics, :comic_stories, :stories, :story_sheets,
:sheets, :sheet_panels,
:panels, :panel_pictures, :speech_balloons, :balloons, :speeches, :ground_pictures, :ground_colors
]
- before_filter :authenticate_artist, :only => [:resource_pictures]
+ before_action :authenticate_artist, :only => [:resource_pictures]
def index
end
end
def scrolls
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def scroll_panels
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def comics
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def comic_stories
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def stories
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def story_sheets
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def sheets
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def sheet_panels
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def panels
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def panel_pictures
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def speech_balloons
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def balloons
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def speeches
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def ground_pictures
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def ground_colors
- filer_list
+ filer_list finder: :find_private, param: @operators
end
def resource_pictures
- filer_list
+ filer_list finder: :find_private, param: @operators
end
end
class LicenseGroupsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:by_resource_picture
]
end
- before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
def index
filer_list
end
def by_resource_picture
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
@item = @my_model_class.new
@item.supply_default
@my_model_class.fold_extend_settings params[@my_model_class.item_name]
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite
render_create
end
def update
set_edit
@my_model_class.fold_extend_settings params[@my_model_class.item_name]
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite
render_update
end
class LicensesController < ApplicationController
- before_filter :authenticate_resource_reader, :only => [
+ before_action :authenticate_resource_reader, :only => [
:by_license_group, :by_system_picture
]
- before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
def index
filer_list
end
def by_license_group
- filer_list
+ filer_list param: params[:id]
end
def by_system_picture
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
show_json_format format
end
end
-
+
def search
@licenses = License.list_by_name(params[:name])
@item = @my_model_class.new
@item.supply_default
@my_model_class.fold_extend_settings params[@my_model_class.item_name]
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite
render_create
end
def update
set_edit
@my_model_class.fold_extend_settings params[@my_model_class.item_name]
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite
render_update
end
class OriginalPictureLicenseGroupsController < ApplicationController
- before_filter :authenticate_user, :only => [:new, :create]
- before_filter :authenticate_artist, :only => [:new, :create]
+ before_action :authenticate_user, :only => [:new, :create]
+ before_action :authenticate_artist, :only => [:new, :create]
def new
@original_picture = OriginalPicture.show params[:original_picture_id], @operators
@item = @my_model_class.new
@my_model_class.fold_extend_settings params[@my_model_class.item_name]
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite
@original_picture = OriginalPicture.show @item.original_picture, @operators
class OriginalPictureLicensesController < ApplicationController
- before_filter :authenticate_user, :only => [:new, :create]
- before_filter :authenticate_artist, :only => [:new, :create]
+ before_action :authenticate_user, :only => [:new, :create]
+ before_action :authenticate_artist, :only => [:new, :create]
def new
# use @item, @original_picture, @form
@item = @my_model_class.new
@my_model_class.fold_extend_settings params[@my_model_class.item_name]
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite
@item.boosts 'post'
@original_picture = OriginalPicture.show @item.original_picture, @operators
if @item.valid?
# switch my_model_class
- @item = OriginalPictureLicense.build_resource_picture @item, @original_picture, params[@my_model_class.item_name]
+ @item = OriginalPictureLicense.build_resource_picture @item, @original_picture, @item.permit_params(params)
respond_to do |format|
format.html {
render main_app.new_resource_picture_path
#原画
class OriginalPicturesController < ApplicationController
- before_filter :authenticate_reader, :only => [:show, :history]
- before_filter :authenticate_user, :only => [:index, :new, :edit, :create, :update, :destroy]
- before_filter :authenticate_artist, :only => [:index, :new, :edit, :create, :update, :destroy]
+ before_action :authenticate_reader, :only => [:show, :history]
+ before_action :authenticate_user, :only => [:index, :new, :edit, :create, :update, :destroy]
+ before_action :authenticate_artist, :only => [:index, :new, :edit, :create, :update, :destroy]
def index
- filer_list
+ filer_list param: @operators
end
def show_html_format format
class PanelPicturesController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :by_panel, :by_author
]
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
end
def index
end
def by_panel
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
class PanelsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :by_scroll, :by_sheet, :by_author, :by_speech_balloon_template
]
- before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
end
private
def panel_list
set_list
- @items = @list.items
- @pager = @list.page_status.pager
+ @items = @finder
+ @pager = @finder
respond_to do |format|
format.html
- list_json_format @list, format
+ list_json_format @finder, format
format.atom
format.rss
end
end
def by_scroll
- filer_list
+ filer_list param: params[:id]
end
def by_sheet
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def by_speech_balloon_template
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
jsn = JSON.parse_no_except(params[:json])
end
@prm = if params[:panel] == nil or params[:panel].empty?
- jsn
+ jsn
else
- params[:panel]
+ @item.permit_params(params)
end
@item.class.fold_extend_settings @prm
#@item.refresh
if params[:json]
jsn = JSON.parse(params[:json])
end
- @prm = params[:panel] || jsn
+ @prm = if params[:panel] == nil or params[:panel].empty?
+ jsn
+ else
+ @item.permit_params(params)
+ end
@item.class.fold_extend_settings @prm
# @item.refresh
respond_to do |format|
class PicturesController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
else
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_resource_reader, :only => [
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_resource_reader, :only => [
:show, :credit, :search
]
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_author, :only => []
end
- before_filter :authenticate_admin, :only => [:index, :by_artist ]
+ before_action :authenticate_admin, :only => [:index, :by_artist ]
def index
filer_list
end
def by_artist
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
class ProviderSourcesController < ApplicationController
- before_filter :authenticate_admin!, :only => [:index, :import]
+ before_action :authenticate_admin!, :only => [:index, :import]
def index
@urls = MagicNumber['provider_sources']
class ProviderStatusesController < ApplicationController
- before_filter :authenticate_admin!, :only => [:index, :show, :edit, :update, :destroy, :licenses_import, :artists_import, :original_pictures_import, :import, :import_all]
+ before_action :authenticate_admin!, :only => [:index, :show, :edit, :update, :destroy, :licenses_import, :artists_import, :original_pictures_import, :import, :import_all]
def index
@page = ProviderStatus.page params[:page]
class ProvidersController < ApplicationController
- before_filter :authenticate_admin!, :only => [:index, :show, :destroy]
+ before_action :authenticate_admin!, :only => [:index, :show, :destroy]
def index
@page = Provider.page params[:page]
class ResourcePicturePicturesController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [:index, :show, :by_original_picture, :by_resource_picture, :by_picture]
- before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_reader, :only => [:index, :show, :by_original_picture, :by_resource_picture, :by_picture]
+ before_action :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
end
def index
end
def by_original_picture
- filer_list
+ filer_list param: params[:id]
end
def by_resource_picture
- filer_list
+ filer_list param: params[:id]
end
def by_picture
- filer_list
+ filer_list param: params[:id]
end
def show
class ResourcePicturesController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :update, :destroy]
- before_filter :authenticate_artist, :only => [:new, :create, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :update, :destroy]
+ before_action :authenticate_artist, :only => [:new, :create, :update, :destroy]
else
- before_filter :authenticate_resource_reader, :only => [
+ before_action :authenticate_resource_reader, :only => [
:index, :show, :credit,
:by_original_picture, :by_license_group, :by_license, :by_artist
]
- before_filter :authenticate_user, :only => [:new, :create, :update, :destroy]
- before_filter :authenticate_artist, :only => [:new, :create, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :update, :destroy]
+ before_action :authenticate_artist, :only => [:new, :create, :update, :destroy]
end
def index
end
def by_original_picture
- filer_list
+ filer_list param: params[:id]
end
def by_license_group
- filer_list
+ filer_list param: params[:id]
end
def by_license
- filer_list
+ filer_list param: params[:id]
end
def by_artist
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
if params[:json]
jsn = JSON.parse_no_except(params[:json])
end
+ @item = @original_picture.resource_picture || ResourcePicture.new
@prm = if params[:resource_picture] == nil or params[:resource_picture].empty?
- jsn
+ jsn
else
- params[:resource_picture]
+ @item.permit_params(params)
end
- @item = @original_picture.resource_picture || ResourcePicture.new
@item.attributes = @prm
@item.overwrite @original_picture
@item.boosts 'post'
class ScrollPanelsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :by_panel, :by_scroll, :by_author
]
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
end
def index
end
def by_panel
- filer_list
+ filer_list param: params[:id]
end
def by_scroll
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def show
set_model
@item = @my_model_class.new
@item.supply_default
- @item.attributes = params[@item.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
@binder = @my_model_class.binder_model.edit(@item.binder_id, @operators) if @item.binder_id
@panel = @my_model_class.destination_model.show(@item.destination_id, @operators) if @item.destination_id
set_model
@item = @my_model_class.edit(params[:id], @operators)
ot = @item.t
- @item.attributes = params[@item.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
@binder = @my_model_class.binder_model.edit(@item.binder_id, @operators) if @item.binder_id
# no check permission for destination
class ScrollsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:top, :index, :show, :play, :by_panel, :by_author
]
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
end
def index
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def by_panel
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
format.html {
if @item.own? @operators
@fresh_panel_items = assist_items('panels', 'index')
- @new_panel_items = assist_items('home', 'panels')
+ @new_panel_items = assist_items('home', 'panels', finder: :find_private, param: @operators)
end
}
- list_json_format @list, format
+ list_json_format @finder, format
end
end
set_model
@item = @my_model_class.new
@item.supply_default
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
render_create
end
def update
set_edit
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
render_update
end
class SheetPanelsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :by_sheet, :by_panel, :by_author
]
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
end
def index
end
def by_sheet
- filer_list
+ filer_list param: params[:id]
end
def by_panel
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def show
class SheetsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :play, :by_story, :by_panel, :by_author
]
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
end
def index
end
def by_story
- filer_list
+ filer_list param: params[:id]
end
def by_panel
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
def play
set_play
- @list.options.merge!({'page_size' => -1}) # no limit no pager
- @list.reset
+ @finder.per(-1) # no limit no pager
play_list
respond_to do |format|
format.html {
- if @operators.author
- @new_panel_items = assist_items('home', 'panels')
+ if @item.own? @operators
+ @new_panel_items = assist_items('home', 'panels', finder: :find_private, param: @operators)
end
}
- list_json_format @list, format
+ list_json_format @finder, format
end
end
set_model
@item = @my_model_class.new
@item.supply_default
- jsn = nil
- if params[:json]
- jsn = JSON.parse_no_except(params[:json])
+ @prm = if params[:json]
+ JSON.parse_no_except(params[:json])
+ else
+ @item.permit_params params
end
- @prm = params[:sheet] || jsn
respond_to do |format|
if @item.store @prm, @operators
def update
set_edit
jsn = nil
- if params[:json]
- jsn = JSON.parse(params[:json])
+ @prm = if params[:json]
+ JSON.parse(params[:json])
+ else
+ @item.permit_params params
end
- @prm = params[:sheet] || jsn
respond_to do |format|
if @item.store @prm, @operators
updated_html_format format
class SpeechBalloonTemplatesController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => []
+ before_action :authenticate_user, :only => []
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :by_panel, :by_system_picture
]
- before_filter :authenticate_user, :only => []
+ before_action :authenticate_user, :only => []
end
- before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
def index
filer_list
class SpeechBalloonsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :by_panel, :by_author, :by_speech_balloon_template
]
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
end
def index
end
def by_panel
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def by_speech_balloon_template
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
class SpeechesController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show,
:by_author, :by_speech_balloon, :by_speech_balloon_template, :by_writing_format
]
- before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
end
- before_filter :authenticate_admin!, :only => []
+ before_action :authenticate_admin!, :only => []
def index
filer_list
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def by_speech_balloon
- filer_list
+ filer_list param: params[:id]
end
def by_speech_balloon_template
- filer_list
+ filer_list param: params[:id]
end
def by_writing_format
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
class StoriesController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :play, :by_comic, :by_sheet, :by_author
]
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
end
def index
end
def by_comic
- filer_list
+ filer_list param: params[:id]
end
def by_sheet
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
def play
set_play
- @list.options.merge!({'per_page' => 1}) # show one sheet
- @list.reset
+ @finder.per( 1) # show one sheet
play_list
respond_to do |format|
format.html {
- @pager = @list.page_status.pager
+ @pager = @finder
if @item.own? @operators
- @new_sheet_items = assist_items('home', 'sheets')
+ @new_sheet_items = assist_items('home', 'sheets', finder: :find_private, param: @operators)
end
}
- list_json_format @list, format
+ list_json_format @finder, format
end
end
@story = @item
@item = @my_model_class.new
@item.supply_default
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
render_create
end
def update
set_edit
@story = @item
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
render_update
end
class StorySheetsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :show, :by_story, :by_sheet, :by_author
]
- before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
- before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
end
def index
end
def by_story
- filer_list
+ filer_list param: params[:id]
end
def by_sheet
- filer_list
+ filer_list param: params[:id]
end
def by_author
- filer_list
+ filer_list param: params[:id]
end
def show
set_model
@item = @my_model_class.new
@item.supply_default
- @item.attributes = params[@item.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
@binder = @my_model_class.binder_model.edit(@item.binder_id, @operators) if @item.binder_id
@panel = @my_model_class.destination_model.show(@item.destination_id, @operators) if @item.destination_id
set_model
@item = @my_model_class.edit(params[:id], @operators)
ot = @item.t
- @item.attributes = params[@item.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite @operators
@binder = @my_model_class.binder_model.edit(@item.binder_id, @operators) if @item.binder_id
# no check permission for destination
class SystemController < ApplicationController
- before_filter :authenticate_admin!, :except => [:start]
+ before_action :authenticate_admin!, :except => [:start]
#layout :system
end
def waiting_list
- @waits = Admin.find(:all, :conditions => ['approve = 0'])
+ @waits = Admin.where(approve: 0)
end
def accept_admin
class SystemPicturesController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
else
- before_filter :authenticate_resource_reader, :only => [:index, :show]
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_resource_reader, :only => [:index, :show]
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
end
- before_filter :authenticate_admin!, :only => []
+ before_action :authenticate_admin!, :only => []
def index
filer_list
class TopController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
else
- before_filter :authenticate_reader, :only => []#[:index]
- before_filter :authenticate_user, :only => []
- before_filter :authenticate_author, :only => []
+ before_action :authenticate_reader, :only => []#[:index]
+ before_action :authenticate_user, :only => []
+ before_action :authenticate_author, :only => []
end
def index
class UserSessionsController < Devise::SessionsController
- prepend_before_filter :require_no_authentication, :only => [:create ]
+ prepend_before_action :require_no_authentication, :only => [:create ]
respond_to :json
-
+ skip_before_filter :verify_authenticity_token, only: [:create]
+
def create
if request.xhr?
- resource = warden.authenticate!(scope: resource_name, recall: "#{controller_path}#failure")
- sign_in(resource_name, resource)
+ resource = warden.authenticate!(scope: resource_name, recall: "#{controller_path}#xhr_failure")
return render :json => current_user.to_json({:include => {:author => {}, :artist => {}} })
else
super
class WritingFormatsController < ApplicationController
if Manifest.manifest.magic_numbers['run_mode'] == 0
- before_filter :authenticate_user, :only => []
+ before_action :authenticate_user, :only => []
else
- before_filter :authenticate_reader, :only => [
+ before_action :authenticate_reader, :only => [
:index, :by_system_picture, :show
]
- before_filter :authenticate_user, :only => []
+ before_action :authenticate_user, :only => []
end
- before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
+ before_action :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
def index
filer_list
end
def by_system_picture
- filer_list
+ filer_list param: params[:id]
end
def show_html_format format
@item = @my_model_class.new
@item.supply_default
@my_model_class.fold_extend_settings params[@my_model_class.item_name]
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite
render_create
end
def update
set_edit
@my_model_class.fold_extend_settings params[@my_model_class.item_name]
- @item.attributes = params[@my_model_class.item_name]
+ @item.attributes = @item.permit_params params
@item.overwrite
render_update
end
# , :encryptable, :lockable, :timeoutable and :omniauthable, :confirmable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
-
- # Setup accessible (or protected) attributes for your model
- attr_accessible :email, :password, :password_confirmation, :remember_me
def active_for_authentication?
super && (self.approve == 1)
end
def self.start(email, passwd)
- a = Admin.find(:first, :conditions => ['email = ?', email])
- if a
- a.password = passwd
- a.password_confirmation = passwd
- else
- a = Admin.create! :email => email, :password => passwd, :password_confirmation => passwd
- end
+ a = Admin.find_or_initialize_by(email: email)
+ a.password = passwd
+ a.password_confirmation = passwd
a.approve = 1
a.save!
end
+ private
+ def admin_params
+ params.require(:admin).permit(:email, :password, :password_confirmation, :remember_me, :authentication_token)
+ end
+
end
validates :user_id, :numericality => true, :existence => {:both => false}
validates :provider_id, :numericality => {:allow_nil => true}
+ scope :find_index, -> do
+ self
+ end
+
def supply_default
self.name = 'no name' if self.name.blank?
self.user_id = nil
end
def self.find_by_author author
- Artist.find( :first, :conditions => ['author_id = ?', author.id])
+ Artist.where(author_id: author.id).first
end
def self.index_list_where list
end
def self.export(dt = nil)
- opt = {}
- cond = if dt
- ['artists.artists.provider = 0 and artists.updated_at >= ?', dt]
- else
- 'artists.artists.provider = 0'
- end
- opt.merge!({:conditions => cond})
- opt.merge!({:order => 'id'})
- Artist.find(:all, opt)
+ artists = Artist.where('artists.provider = 0')
+ artists = artists.where(['artists.updated_at >= ?', dt]) if dt
+ artists.order(:id)
end
end
validates :name, :presence => true, :length => {:maximum => 30}
validates :user_id, :numericality => true, :existence => {:both => false}
+ scope :find_index, -> do
+ self
+ end
+
def supply_default
self.name = 'no name' if self.name.blank?
self.user_id = nil
# validates :caption, :presence => true
validates :speech_balloon_template_settings, :boost => {:boost_name => :speech_balloon_template}
+ scope :with_panel, -> do
+ includes(speech_balloon: :panel)
+ end
+
+ scope :with_speech_balloon_template, -> do
+ includes(:speech_balloon_template)
+ end
+
+ scope :find_index, -> do
+ with_panel.where(Panel.arel_table[:publish].gt 0).references(:panel)
+ end
+
+ scope :find_private, -> (operators) do
+ with_panel.where(Panel.arel_table[:author_id].eq operators.author.id).references(:panel)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ find_index.where(panel_id: panel_id).references(:panel)
+ end
+
+ scope :find_by_speech_balloon, -> (speech_balloon_id) do
+ find_index.where(speech_balloon_id: speech_balloon_id).references(:panel)
+ end
+
+ scope :find_by_speech_balloon_template, -> (speech_balloon_template_id) do
+ find_index.where(speech_balloon_template_id: speech_balloon_template_id).references(:panel)
+ end
+
+ scope :find_by_system_picture, -> (system_picture_id) do
+ find_index.where(system_picture_id: system_picture_id).references(:panel)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(Panel.arel_table[:author_id].eq author_id).references(:panel)
+ end
+
def y
self.attributes['y']
end
validates :visible, :presence => true, :numericality => true, :inclusion => {:in => 0..1}
validates :author_id, :presence => true, :numericality => true, :existence => {:both => false}
+ scope :find_index, -> do
+ where(arel_table[:visible].gt 0)
+ end
+
+ scope :find_private, -> (operators) do
+ where(author_id: operators.author.id)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(author_id: author_id)
+ end
+
+ scope :with_stories, -> do
+ includes(comic_stories: :story)
+ end
+
+ scope :find_by_story, -> (story_id) do
+ with_stories.find_index.where(Story.arel_table[:id].eq story_id).references(:story)
+ end
+
+ # scope of find_play
+ def self.find_play(id)
+ ComicStory.find_play(id)
+ end
+
+ # scope of find_private_play
+ def self.find_private_play(id, operators)
+ ComicStory.find_private_play(id, operators)
+ end
+
def supply_default
self.visible = 0 if self.visible.blank?
self.author_id = nil
validates :story_id, :presence => true, :numericality => true, :existence => {:both => false}
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
+ scope :with_comic, -> do
+ includes(:comic)
+ end
+
+ scope :find_index, -> do
+ with_comic.where(Comic.arel_table[:visible].gt 0).references(:comic)
+ end
+
+ scope :find_private, -> (operators) do
+ with_comic.where(Comic.arel_table[:author_id].eq operators.author.id).references(:comic)
+ end
+
+ scope :by_comic, -> (comic_id) do
+ where(comic_id: comic_id)
+ end
+
+ scope :find_by_comic, -> (comic_id) do
+ find_index.by_comic(comic_id)
+ end
+
+ scope :find_by_story, -> (story_id) do
+ find_index.where(story_id: story_id).references(:comic)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(Comic.arel_table[:author_id].eq author_id).references(:comic)
+ end
+
+ scope :find_play, -> (comic_id) do
+ find_by_comic(comic_id)
+ end
+
+ scope :find_private_play, -> (comic_id, operators) do
+ find_private(operators).by_comic(comic_id)
+ end
+
def supply_default
self.comic_id = nil
self.story_id = nil
# :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
- # Setup accessible (or protected) attributes for your model
- attr_accessible :email, :password, :password_confirmation, :remember_me
def create_token
self.ensure_authentication_token
self.save
end
+ private
+ def demand_user_params
+ params.require(:demand_user).permit(:email, :password, :password_confirmation, :remember_me, :authentication_token)
+ end
+
end
validates :category_id, :presence => true, :numericality => true
validates :t, :presence => true, :numericality => true
+ scope :find_index, -> do
+ self
+ end
+
#remove last dir name
def dir
r = name.split('/')
attr = {
:name => key, :category_id => 0, :t => 0
}
- if i = self.find_by_name(key)
+ if i = self.find_by(name: key)
i.attributes = attr
i.save
else
:controller_name => (controller_name || name),
:action_name => action_name
}
- if i = self.find_by_name(key)
+ if i = self.find_by(name: key)
i.attributes = attr
i.save
else
end
def self.generate
- if r = self.find_by_name('/')
+ if r = self.find_by(name: '/')
else
r = self.create :name => '/', :category_id => 0, :t => 0
end
validates :z, :presence => true, :numericality => {:greater_than => 0}
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
+ scope :with_panel, -> do
+ includes(:panel)
+ end
+
+ scope :find_index, -> do
+ with_panel.where(Panel.arel_table[:publish].gt 0).references(:panel)
+ end
+
+ scope :find_private, -> (operators) do
+ with_panel.where(Panel.arel_table[:author_id].eq operators.author.id).references(:panel)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ find_index.where(panel_id: panel_id).references(:panel)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(Panel.arel_table[:author_id].eq author_id).references(:panel)
+ end
+
def self.by_author_list_includes
{
:panel => {
validates :z, :presence => true, :numericality => {:greater_than => 0}
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
+ scope :with_panel, -> do
+ includes(:panel)
+ end
+
+ scope :find_index, -> do
+ with_panel.where(Panel.arel_table[:publish].gt 0).references(:panel)
+ end
+
+ scope :find_private, -> (operators) do
+ with_panel.where(Panel.arel_table[:author_id].eq operators.author.id).references(:panel)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ find_index.where(panel_id: panel_id).references(:panel)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(Panel.arel_table[:author_id].eq author_id).references(:panel)
+ end
+
@@repeat_texts = ['repeat', 'repeat-x', 'repeat-y', 'no-repeat']
def self.pickup_item_name
validates :license_group_settings, :boost => {:boost_name => :license_group}
validates :credit_picture_settings, :boost => {:boost_name => :credit_picture}
+ scope :find_index, -> do
+ self.all
+ end
+
+ scope :find_by_license_group, -> (license_group_id) do
+ where(license_group_id: license_group_id)
+ end
+
+ scope :find_by_system_picture, -> (system_picture_id) do
+ where(system_picture_id: system_picture_id)
+ end
+
def overwrite
end
end
def self.list_by_name name
- License.find :all, :conditions => ['licenses.name = ?', name], :order => 'licenses.updated_at desc'
+ License.where(name: name).order(updated_at: :desc)
end
def self.store name, attr
end
def self.export(dt = nil)
- opt = {}
- opt.merge!({:conditions => ['updated_at >= ?', dt]}) if dt
-# opt.merge!({:order => 'name'})
- License.find(:all, opt)
+ licenses = License.all
+ licenses = licenses.where(['licenses.updated_at >= ?', dt]) if dt
+ licenses.order(:id)
end
end
validates :caption, :presence => true, :length => {:maximum => 30}
validates :url, :presence => true, :length => {:maximum => 200}, :url => {:message => I18n.t('errors.messages.url')}
+ scope :find_index, -> do
+ self.all
+ end
+
def supply_default
end
validates :artist_id, :presence => true, :numericality => true, :existence => {:both => false}
validates :md5, :presence => true, :length => {:minimum => 32, :maximum => 32}
+ scope :find_index, -> (operators) do
+ where(artist_id: operators.artist.id)
+ end
+
def supply_default
self.artist_id = nil
end
end
def history
- Picture.find(:all, {:conditions => ['pictures.original_picture_id = ?', self.id], :order => 'pictures.revision desc'} )
+ Picture.where(original_picture_id: self.id).order(revision: :desc)
end
def self.show_opt
end
def self.export(dt = nil)
- opt = {}
- cond = if dt
- ['artists.author_id is not null and original_pictures.updated_at >= ?', dt]
- else
- 'artists.author_id is not null'
- end
- opt.merge!({:conditions => cond})
- opt.merge!({:include => {:resource_picture => {}, :artist => {}}, :order => 'original_pictures.id'})
- OriginalPicture.find(:all, opt)
+ original_pictures = OriginalPicture.includes(:resource_picture, :artist).where('artists.author_id is not null')
+ original_pictures = original_pictures.where(['original_pictures.updated_at >= ?', dt]) if dt
+ original_pictures.order('original_pictures.id').references(:artist)
end
def list_as_json_with_resource_picture
end
def self.publish oid, lsname, attr
- l = License.find_by_name lsname
+ l = License.find_by(name: lsname)
op = OriginalPicture.find oid
lg = l.license_group
attr[:license_id] = l.id
validates :author_id, :presence => true, :numericality => true, :existence => {:both => false}
validates :publish, :presence => true, :numericality => true
+ scope :find_index, -> do
+ where(arel_table[:publish].gt 0)
+ end
+
+ scope :find_private, -> (operators) do
+ where(author_id: operators.author.id)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(author_id: author_id)
+ end
+
+ scope :with_scrolls, -> do
+ includes(scroll_panels: :scroll)
+ end
+
+ scope :find_by_scroll, -> (scroll_id) do
+ with_scrolls.find_index.where(Scroll.arel_table[:id].eq scroll_id).references(:scroll)
+ end
+
+ scope :with_sheets, -> do
+ includes(sheet_panels: :sheet)
+ end
+
+ scope :find_by_sheet, -> (sheet_id) do
+ with_sheets.find_index.where(Sheet.arel_table[:id].eq sheet_id).references(:sheet)
+ end
+
+ scope :with_speech_balloons, -> do
+ includes(:speech_balloons)
+ end
+
+ scope :find_by_speech_balloon_template, -> (speech_balloon_template_id) do
+ with_speech_balloons.find_index.where(SpeechBalloon.arel_table[:speech_balloon_template_id].eq speech_balloon_template_id).references(:speech_balloon)
+ end
+
def supply_default
self.border = 2
self.publish = 0
validates :z, :presence => true, :numericality => {:greater_than => 0}
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
+ scope :with_panel, -> do
+ includes(:panel)
+ end
+
+ scope :find_index, -> do
+ with_panel.where(Panel.arel_table[:publish].gt 0).references(:panel)
+ end
+
+ scope :find_private, -> (operators) do
+ with_panel.where(Panel.arel_table[:author_id].eq operators.author.id).references(:panel)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ find_index.where(panel_id: panel_id).references(:panel)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(Panel.arel_table[:author_id].eq author_id).references(:panel)
+ end
+
def self.pickup_item_name
Picture.item_name
end
validates :artist_id, :presence => true, :numericality => true, :existence => {:both => false}
validates :license_group_module_name, :presence => true, :length => {:maximum => 50}
+ scope :find_index, -> do
+ self
+ end
+
+ scope :find_by_artist, -> (artist_id) do
+ find_index.where(artist_id: artist_id)
+ end
+
def supply_default
end
end
def new_revision
- Picture.maximum(:revision, :conditions => ['original_picture_id = ?', self.original_picture_id]).to_i + 1
+ Picture.where(original_picture_id: self.original_picture_id).maximum(:revision).to_i + 1
end
def enable?
end
def self.head opid
- Picture.find(:first, :conditions => ['original_picture_id = ?', opid], :order => 'pictures.revision desc')
+ Picture.where(original_picture_id: opid).order('pictures.revision desc').first
end
def head
end
def self.find_by_md5 md5
- r = Picture.find :all, :conditions => ['pictures.md5 = ?', md5], :order => 'pictures.updated_at desc'
+ r = Picture.where(md5: md5).order(updated_at: :desc)
end
def self.list_by_md5 md5, opid = nil
cond = if opid.blank?
- ['pictures.md5 = ?', md5]
+ {md5: md5}
else
- ['pictures.md5 = ? and pictures.original_picture_id <> ?', md5, opid]
+ ['md5 = :md5 and original_picture_id <> :opid', {md5: md5, opid: opid}]
end
- r = Picture.find :all, :conditions => cond, :order => 'pictures.updated_at desc'
+ r = Picture.where(cond).order(updated_at: :desc)
end
def self.exist_by_md5 md5, opid
end
def self.export(dt = nil)
- opt = {}
- cond = if dt
- ['artists.author_id is not null and pictures.updated_at >= ?', dt]
- else
- 'artists.author_id is not null'
- end
- opt.merge!({:conditions => cond})
- opt.merge!({:include => {:artist => {}}, :order => 'pictures.updated_at desc'})
- Picture.find(:all, opt)
+ pictures = Picture.includes(:artist).where('artists.author_id is not null')
+ pictures = pictures.where(['pictures.updated_at >= ?', dt]) if dt
+ pictures.order('pictures.updated_at desc').references(:artist)
end
def self.list_as_json_text ary
validates :license_group_settings, :boost => {:boost_name => :license_group}
validates :credit_picture_settings, :boost => {:boost_name => :credit_picture}
+ scope :find_index, -> do
+ self.all
+ end
+
+ scope :find_private, -> (operators) do
+ where(artist_id: operators.artist.id)
+ end
+
+ scope :find_by_original_picture, -> (original_picture_id) do
+ find_index.where(original_picture_id: original_picture_id)
+ end
+
+ scope :find_by_license_group, -> (license_group_id) do
+ find_index.where(license_group_id: license_group_id)
+ end
+
+ scope :find_by_license, -> (license_id) do
+ find_index.where(license_id: license_id)
+ end
+
+ scope :find_by_artist, -> (artist_id) do
+ find_index.where(artist_id: artist_id)
+ end
+
def self.pickup_item_name
Picture.item_name
end
end
def self.remake_all
- ResourcePicture.find(:all).each do |resource_picture|
+ ResourcePicture.find_each do |resource_picture|
resource_picture.boosts 'post'
full = resource_picture.restore 'full'
imager = PettanImager.load full
belongs_to :resource_picture
belongs_to :picture
+ scope :find_index, -> do
+ self
+ end
+
+ scope :find_by_original_picture, -> (original_picture_id) do
+ find_index.where(original_picture_id: original_picture_id)
+ end
+
+ scope :find_by_resource_picture, -> (resource_picture_id) do
+ find_index.where(resource_picture_id: resource_picture_id)
+ end
+
+ scope :find_by_picture, -> (picture_id) do
+ find_index.where(picture_id: picture_id)
+ end
+
def symbol_option
self.picture.tmb_opt_img_tag
end
has_many :scroll_panels
belongs_to :author
+ has_many :panels, :through => :scroll_panels
+
validates :title, :presence => true, :length => {:maximum => 100}
validates :visible, :presence => true, :numericality => true, :inclusion => {:in => 0..1}
validates :author_id, :presence => true, :numericality => true, :existence => {:both => false}
+ scope :find_index, -> do
+ where(arel_table[:visible].gt 0)
+ end
+
+ scope :find_private, -> (operators) do
+ where(author_id: operators.author.id)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(author_id: author_id)
+ end
+
+ scope :with_panels, -> do
+ includes(scroll_panels: :panel)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ with_panels.find_index.where(Panel.arel_table[:id].eq panel_id).references(:panel)
+ end
+
+ # scope of find_play
+ def self.find_play(id)
+ ScrollPanel.find_play(id)
+ end
+
+ # scope of find_private_play
+ def self.find_private_play(id, operators)
+ ScrollPanel.find_private_play(id, operators)
+ end
+
def supply_default
self.visible = 0 if self.visible.blank?
self.author_id = nil
validates :panel_id, :presence => true, :numericality => true, :existence => {:both => false}
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
+ scope :with_scroll, -> do
+ includes(:scroll)
+ end
+
+ scope :find_index, -> do
+ with_scroll.where(Scroll.arel_table[:visible].gt 0).references(:scroll)
+ end
+
+ scope :find_private, -> (operators) do
+ with_scroll.where(Scroll.arel_table[:author_id].eq operators.author.id).references(:scroll)
+ end
+
+ scope :by_scroll, -> (scroll_id) do
+ where(scroll_id: scroll_id)
+ end
+
+ scope :find_by_scroll, -> (scroll_id) do
+ find_index.by_scroll(scroll_id).references(:scroll)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ find_index.where(panel_id: panel_id).references(:scroll)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(Scroll.arel_table[:author_id].eq author_id).references(:scroll)
+ end
+
+ scope :find_play, -> (scroll_id) do
+ find_by_scroll(scroll_id)
+ end
+
+ scope :find_private_play, -> (scroll_id, operators) do
+ find_private(operators).by_scroll(scroll_id)
+ end
+
def supply_default
self.scroll_id = nil
self.panel_id = nil
end
def self.by_author_list_includes
- {
- :scroll => {
- :author => {}
- }
- }
+ [:scroll => :author]
end
def self.show_opt
validates :visible, :presence => true, :numericality => true, :inclusion => {:in => 0..1}
accepts_nested_attributes_for :sheet_panels, :allow_destroy => true
+ scope :find_index, -> do
+ where(arel_table[:visible].gt 0)
+ end
+
+ scope :find_private, -> (operators) do
+ where(author_id: operators.author.id)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(author_id: author_id)
+ end
+
+ scope :with_panels, -> do
+ includes(sheet_panels: :panel)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ with_panels.find_index.where(Panel.arel_table[:id].eq panel_id).references(:panel)
+ end
+
+ scope :with_stories, -> do
+ includes(story_sheets: :story)
+ end
+
+ scope :find_by_story, -> (story_id) do
+ with_stories.find_index.where(Story.arel_table[:id].eq story_id).references(:story)
+ end
+
+ # scope of find_play
+ def self.find_play(id)
+ SheetPanel.find_play(id)
+ end
+
+ # scope of find_private_play
+ def self.find_private_play(id, operators)
+ SheetPanel.find_private_play(id, operators)
+ end
+
def supply_default
self.visible = 0 if self.visible.blank?
self.author_id = nil
validates :z, :presence => true, :numericality => {:greater_than => 0}
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
+ scope :with_sheet, -> do
+ includes(:sheet)
+ end
+
+ scope :find_index, -> do
+ with_sheet.where(Sheet.arel_table[:visible].gt 0).references(:sheet)
+ end
+
+ scope :find_private, -> (operators) do
+ with_sheet.where(Sheet.arel_table[:author_id].eq operators.author.id).references(:sheet)
+ end
+
+ scope :by_sheet, -> (sheet_id) do
+ where(sheet_id: sheet_id)
+ end
+
+ scope :find_by_sheet, -> (sheet_id) do
+ find_index.by_sheet(sheet_id).references(:sheet)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ find_index.where(panel_id: panel_id).references(:sheet)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(Sheet.arel_table[:author_id].eq author_id).references(:sheet)
+ end
+
+ scope :find_play, -> (sheet_id) do
+ find_by_sheet(sheet_id)
+ end
+
+ scope :find_private_play, -> (sheet_id, operators) do
+ find_private(operators).by_sheet(sheet_id)
+ end
+
def y
self.attributes['y']
end
validates :speech_balloon_template_settings, :boost => {:boost_name => :speech_balloon_template}
#validates :writing_format_settings
+ scope :with_panel, -> do
+ includes(speech_balloon: :panel)
+ end
+
+ scope :with_speech_balloon_template, -> do
+ includes(:speech_balloon_template)
+ end
+
+ scope :find_index, -> do
+ with_panel.where(Panel.arel_table[:publish].gt 0).references(:panel)
+ end
+
+ scope :find_private, -> (operators) do
+ with_panel.where(Panel.arel_table[:author_id].eq operators.author.id).references(:panel)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ find_index.where(panel_id: panel_id).references(:panel)
+ end
+
+ scope :find_by_speech_balloon, -> (speech_balloon_id) do
+ find_index.where(speech_balloon_id: speech_balloon_id).references(:panel)
+ end
+
+ scope :find_by_speech_balloon_template, -> (speech_balloon_template_id) do
+ find_index.where(speech_balloon_template_id: speech_balloon_template_id).references(:panel)
+ end
+
+ scope :find_by_writing_format, -> (writing_format_id) do
+ find_index.where(writing_format_id: writing_format_id).references(:panel)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(Panel.arel_table[:author_id].eq author_id).references(:panel)
+ end
+
@@text_align_texts = ['left', 'left', 'right', 'center']
def y
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
validates :speech_balloon_template_settings, :boost => {:boost_name => :speech_balloon_template}
+ scope :with_panel, -> do
+ includes(:panel)
+ end
+
+ scope :with_speech_balloon_template, -> do
+ includes(:speech_balloon_template)
+ end
+
+ scope :find_index, -> do
+ with_panel.where(Panel.arel_table[:publish].gt 0).references(:panel)
+ end
+
+ scope :find_private, -> (operators) do
+ with_panel.where(Panel.arel_table[:author_id].eq operators.author.id).references(:panel)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ find_index.where(panel_id: panel_id).references(:panel)
+ end
+
+ scope :find_by_speech_balloon_template, -> (speech_balloon_template_id) do
+ find_index.where(speech_balloon_template_id: speech_balloon_template_id).references(:panel)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(Panel.arel_table[:author_id].eq author_id).references(:panel)
+ end
+
def self.by_author_list_includes
{
:panel => {
validates :system_picture_id, :presence => true, :numericality => true, :existence => {:both => false}
validates :settings, :presence => true
+ scope :find_index, -> do
+ self
+ end
+
+ scope :find_by_original_picture, -> (original_picture_id) do
+ find_index.where(original_picture_id: original_picture_id)
+ end
+
+ scope :with_panels, -> do
+ includes(speech_balloons: panel)
+ end
+
+ scope :find_by_panel, -> (panel_id) do
+ with_panels.where(Panel.arel_table[:id].eq panel_id).references(:panel)
+ end
+
+ scope :find_by_system_picture, -> (system_picture_id) do
+ find_index.where(system_picture_id: system_picture_id)
+ end
+
def supply_default
end
validates :visible, :presence => true, :numericality => true, :inclusion => {:in => 0..1}
validates :author_id, :presence => true, :numericality => true, :existence => {:both => false}
+ scope :find_index, -> do
+ where(arel_table[:visible].gt 0)
+ end
+
+ scope :find_private, -> (operators) do
+ where(author_id: operators.author.id)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(author_id: author_id)
+ end
+
+ scope :with_comics, -> do
+ includes(comic_stories: :comic)
+ end
+
+ scope :find_by_comic, -> (comic_id) do
+ with_comics.find_index.where(Comic.arel_table[:id].eq comic_id).references(:comic)
+ end
+
+ scope :with_sheets, -> do
+ includes(story_sheets: :sheet)
+ end
+
+ scope :find_by_sheet, -> (sheet_id) do
+ with_sheets.find_index.where(Sheet.arel_table[:id].eq sheet_id).references(:sheet)
+ end
+
+ # scope of find_play
+ def self.find_play(id)
+ StorySheet.find_play(id)
+ end
+
+ # scope of find_private_play
+ def self.find_private_play(id, operators)
+ StorySheet.find_private_play(id, operators)
+ end
+
def supply_default
self.visible = 0 if self.visible.blank?
self.author_id = nil
validates :sheet_id, :presence => true, :numericality => true, :existence => {:both => false}
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
+ scope :with_story, -> do
+ includes(:story)
+ end
+
+ scope :find_index, -> do
+ with_story.where(Story.arel_table[:visible].gt 0).references(:story)
+ end
+
+ scope :find_private, -> (operators) do
+ with_story.where(Story.arel_table[:author_id].eq operators.author.id).references(:story)
+ end
+
+ scope :by_story, -> (story_id) do
+ where(story_id: story_id)
+ end
+
+ scope :find_by_story, -> (story_id) do
+ find_index.by_story(story_id)
+ end
+
+ scope :find_by_sheet, -> (sheet_id) do
+ find_index.where(sheet_id: sheet_id).references(:story)
+ end
+
+ scope :find_by_author, -> (author_id) do
+ find_index.where(Story.arel_table[:author_id].eq author_id).references(:story)
+ end
+
+ scope :find_play, -> (story_id) do
+ find_by_story(story_id)
+ end
+
+ scope :find_private_play, -> (story_id, operators) do
+ find_private(operators).by_story(story_id)
+ end
+
def supply_default
self.story_id = nil
self.sheet_id = nil
before_destroy :destroy_with_file
+ scope :find_index, -> do
+ self
+ end
+
def destroy_with_file
PictureIO.system_picture_io.delete self.filename
end
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
- :recoverable, :rememberable, :trackable, :validatable#, :confirmable
-
- # Setup accessible (or protected) attributes for your model
- attr_accessible :id, :name, :password, :password_confirmation, :remember_me , :email
+ :recoverable, :rememberable, :trackable, :validatable,
+ :omniauthable#, :confirmable
def create_token
- self.ensure_authentication_token
+ loop do
+ token = Devise.friendly_token
+ if token_suitable?(token)
+ self.authentication_token = token
+ break
+ end
+ end
self.save
end
+
+ def token_suitable?(token)
+ !self.class.exists?(authentication_token: token)
+ end
def delete_token
self.authentication_token = nil
res
end
+ private
+ def user_params
+ params.require(:user).permit(:email, :password, :password_confirmation, :remember_me, :authentication_token)
+ end
+
end
validates :system_picture_id, :presence => true, :numericality => true, :existence => {:both => false}
validates :settings, :presence => true
+ scope :find_index, -> do
+ self
+ end
+
+ scope :find_by_system_picture, -> (system_picture_id) do
+ find_index.where(system_picture_id: system_picture_id)
+ end
+
def supply_default
end
end
def self.enable_list include_available = false
- r = WritingFormat.find(:all)
+ r = WritingFormat.all
unless include_available
r.delete_if {|wf|
wf.enable? == false
- <%= h(manifest.magic_numbers['profile']['users']['caption']) %>\r
</title>\r
<%= stylesheet_link_tag "test" %>\r
- <%= javascript_include_tag "application" %>\r
+ <%= javascript_include_tag "admin" %>\r
<%= csrf_meta_tags %>\r
</head>\r
<body>\r
<!DOCTYPE html>
<html>
<head>
- <title><%= h(Manifest.manifest.magic_numbers['profile']['admins']['caption']) %></title>
+ <title><%= Manifest.manifest.magic_numbers['profile']['admins']['caption'] %></title>
<%= stylesheet_link_tag "application" %>
- <%= javascript_include_tag "application" %>
+ <%# javascript_include_tag "application" %>
<%= javascript_include_tag "admin" %>
<%= raw panel_editor_javascript_include_tags %>
<%= csrf_meta_tags %>
<% if @items.empty? -%>
<h2><%= t('stories.play.empty') %></h2>
<% else %>
- <%= render @pager.template_name, :pager => @pager %>
+ <%= 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 %>
sheet is hidden or deleted
<% end %>
<% end %>
- <%= render @pager.template_name, :pager => @pager %>
+ <%= paginate @pager %>
<% end %>
<% if @item.own? @operators -%>
<div class="filer">
<%= render filer.header.template_name, :header => filer.header %>
<%= render filer.body.template_name, :body => filer.body %>
- <% if filer.page_status and filer.page_status.pageable? %>
- <% pager = filer.page_status.pager %>
- <%= render pager.template_name, :pager => pager %>
+ <% if filer.page_status %>
+ <%= paginate filer.page_status %>
<% end %>
</div>
--- /dev/null
+#!/usr/bin/env ruby.exe
+ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
+load Gem.bin_path('bundler', 'bundle')
--- /dev/null
+#!/usr/bin/env ruby.exe
+APP_PATH = File.expand_path('../../config/application', __FILE__)
+require_relative '../config/boot'
+require 'rails/commands'
--- /dev/null
+#!/usr/bin/env ruby.exe
+require_relative '../config/boot'
+require 'rake'
+Rake.application.run
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
-require "active_resource/railtie"
require "sprockets/railtie"
# require "rails/test_unit/railtie"
require 'digest/md5'
-require 'rubygems'
-
-# Set up gems listed in the Gemfile.
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
-require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
+require 'bundler/setup' # Set up gems listed in the Gemfile.
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
- # Log error messages when you accidentally call methods on nil.
- config.whiny_nils = true
-
# Show full error reports and disable caching
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Print deprecation notices to the Rails logger
config.active_support.deprecation = :log
- # Only use best-standards-support built into browsers
- config.action_dispatch.best_standards_support = :builtin
-
# Do not compress assets
config.assets.compress = false
# config.assets.digest = true
# config.static_cache_control = "public, max-age=1"
+config.eager_load = false
+config.active_record.migration_error = :page_load
end
# Send deprecation notices to registered listeners
config.active_support.deprecation = :notify
+config.eager_load = true
+config.active_record.migration_error = :page_load
end
require 'aws/s3'
require 'yaml'
config.serve_static_assets = true
config.static_cache_control = "public, max-age=3600"
- # Log error messages when you accidentally call methods on nil
- config.whiny_nils = true
-
# Show full error reports and disable caching
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Print deprecation notices to the stderr
config.active_support.deprecation = :stderr
+config.eager_load = false
+config.active_record.migration_error = :page_load
end
module Pettanr
Pettanr::Application.routes.draw do
-
devise_for :users, controllers: {sessions: 'user_sessions'}
devise_for :admins
devise_for :demand_users
# match 'resource_pictures/full/:id(.:format)/' => 'resource_pictures#show'
# match 'pictures/:subdir/:id(.:format)/' => 'pictures#show'
#match 'scroll_panels/scroll/:id(.:format)' => 'scroll_panels#scroll'
- match 'top/(:action)', :controller => 'top'
- match 'home/(:action)', :controller => 'home'
- match 'system/(:action)', :controller => 'system'
+ match 'top/(:action)', :controller => 'top', via: [:get]
+ match 'home/(:action)', :controller => 'home', via: [:get]
+ match 'system/(:action)', :controller => 'system', via: [:get, :post]
#match 'authors/(:action(/:id))', :controller => 'authors'
# Sample of named route:
# This is a legacy wild controller route that's not recommended for RESTful applications.
# Note: This route will make all actions in every controller accessible via GET requests.
- match ':controller(/:action(/:id(.:format)))'
+ match ':controller(/:action(/:id(.:format)))', via: [:get, :post]
end
--- /dev/null
+development:\r
+ secret_key_base: 6809ff947425908bae66f4c4b2d9a88366d900609d88034914d5719ddf434123772c9cd26fd9d0a15fa080164c6fef77d74033a05de57f0694df0d52dad4e37a\r
+\r
+test:\r
+ secret_key_base: 6809ff947425908bae66f4c4b2d9a88366d900609d88034914d5719ddf434123772c9cd26fd9d0a15fa080164c6fef77d74033a05de57f0694df0d52dad4e37a\r
+\r
+production:\r
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>\r
class ConnectStory < ActiveRecord::Migration
def up
- pn = Panel.find :all
- pn.each do |i|
+ pn = Panel.find_each do |i|
c = i.comic_id
t = i.t
a = i.author_id
s = i.id
- st = Story.find(:first, :conditions => ['comic_id = ? and panel_id = ? and t = ?', c, s, t])
+ st = Story.where(['comic_id = ? and panel_id = ? and t = ?', c, s, t]).first
st = Story.new(:comic_id => c, :panel_id => s, :t => t) unless st
st.author_id = a
st.save!
add_column :panels, :comic_id, :integer, :null => false, :default => 0
add_column :panels, :t, :integer, :null => false, :default => 0
remove_column :panels, :publish
- st = Story.find :all
- st.each do |i|
+ st = Story.find_each do |i|
c = i.comic_id
t = i.t
pn = Panel.find(i.panel_id)
require Rails.root + 'config/environment'
class CopyToScroll < ActiveRecord::Migration
def up
- ::Comic.find(:all).each do |i|
+ ::Comic.find_each do |i|
attr = i.attributes
attr.delete 'id'
::Scroll.create! attr
end
- ::Story.find(:all).each do |i|
+ ::Story.find_each do |i|
attr = i.attributes
attr.delete 'id'
attr.delete 'x'
class ArtistBelongsToUserData < ActiveRecord::Migration
def up
- Artist.find(:all).each do |artist|
+ Artist.find_each do |artist|
if artist.author_id
artist.user_id = Author.find(artist.author_id).user_id
else
class FixExtendSystemData < ActiveRecord::Migration
def up
- Balloon.find(:all).each do |balloon|
+ Balloon.find_each do |balloon|
sbt = balloon.speech_balloon.speech_balloon_template
if balloon.speech_balloon_template_classname == 'noname'
balloon.speech_balloon_template_id = sbt.id
end
balloon.save!
end
- Speech.find(:all).each do |speech|
+ Speech.find_each do |speech|
sbt = speech.speech_balloon.speech_balloon_template
if speech.speech_balloon_template_classname == 'noname'
speech.speech_balloon_template_id = sbt.id
speech.boosts 'post'
speech.save!
end
- License.find(:all).each do |license|
+ License.find_each do |license|
lg = license.license_group
if license.license_group_classname == 'noname'
license.license_group_classname = lg.classname
class FixExtSysPictData < ActiveRecord::Migration
def up
- ResourcePicture.find(:all).each do |resource_picture|
+ ResourcePicture.find_each do |resource_picture|
license = resource_picture.license
resource_picture.credit_picture_settings = license.credit_picture_settings
resource_picture.save!
end
- Picture.find(:all).each do |picture|
+ Picture.find_each do |picture|
license = picture.license
picture.credit_picture_settings = license.credit_picture_settings
picture.save!
class GenResourcePicturePictures < ActiveRecord::Migration
def up
- Picture.find(:all).each do |picture|
- resource_picture_picture = ResourcePicturePicture.find(:first, {:conditions => ['picture_id = ?', picture.id]})
+ Picture.find_each do |picture|
+ resource_picture_picture = ResourcePicturePicture.where(['picture_id = ?', picture.id]}).first
opid = picture.original_picture ? picture.original_picture.id : nil
rpid = picture.original_picture.resource_picture ? picture.original_picture.resource_picture.id : nil
if resource_picture_picture
--- /dev/null
+class AddTOnLicenseGroups < ActiveRecord::Migration
+ def change
+ add_column :license_groups, :t, :integer, :null => false, :default => 0
+ end
+end
module Locmare
class Booster
- attr :boost
+ attr :boost, :manifest
def initialize manifest, item
@manifest = manifest
def to_hash
{
:type => :default, :total => @total, :total_page => self.total_page,
- :page => self.page, :page_size => self.limit
+ :page => self.page, :page_size => self.limit, :item_name => @list.item_name
}
end
class Base
attr_accessor :list_group_name, :list_name, :operators, :options, :item_name,
:controller_manifest, :action_manifest, :list_manifest, :model, :table_name,
- :page_status, :item_wheres, :list_wheres
+ :page_status, :item_wheres, :list_wheres, :wheres
def initialize list_group_name, list_name, operators, options = {}
@list_group_name = list_group_name
def arel
r = @model
- @wheres.each do |key|
- n = key + '_list_where'
- r = r.where(@model.respond_to?(n) ? @model.__send__(n, self) : self.__send__(n))
- end
- r.includes(
- self.include_hash
- )
+ return @model.__send__('find_' + @action_name)
end
def items
r
end
+ def arel
+ r = @model
+ return @model.__send__('find_' + @action_name, self.filter_id)
+ end
+
end
end
@parent
end
+ def has_param
+ @param_id != 'none'
+ end
+
+ def has_alias_action
+ @alias.any?
+ end
+
def alias_action
s = @alias.split('.')
c = ::Manifest.manifest.controllers[s[0]]
module ControllerModule
module ActionModule
class ActionList < Base
- attr :order, :direction, :default_page_size, :max_page_size
+ attr :order, :direction, :default_page_size, :max_page_size, :return_item_name
def set_default
super
@direction = @args['direction'].to_i
@default_page_size = @args['default_page_size']
@max_page_size = @args['max_page_size']
+ @return_item_name = @args['return_item_name'] || @item_name
end
def a_arg_names
super + ['order', 'direction', 'default_page_size', 'max_page_size']
end
+ def find options = {}
+ self.finder(options).order(
+ self.order_sql(options[:order], options[:direction])
+ ).page(options[:page]).per(options[:page_size])
+ end
+
+ def finder options = {}
+ finder_name = options[:finder] || 'find_' + @name
+ finder = if args = options[:param]
+ args = [args] unless options[:param].is_a?(Array) # param to array
+ self.finder_model.__send__(finder_name, *args)
+ else
+ self.finder_model.__send__(finder_name)
+ end
+ end
+
+ def finder_model
+ Manifest.manifest.models[@item_name].classify
+ end
+
+ def return_model
+ Manifest.manifest.models[@return_item_name].classify
+ end
+
+ def order_sql order, direction
+ order ||= self.order
+ direction ||= (self.direction < 0 ? :desc : :asc)
+ self.return_model.arel_table[order].__send__(direction)
+ end
+
+ def page page
+ page.to_i
+ page = 1 if page < 1
+ page
+ end
+
+ def page_size page_size
+ page_size ||= self.default_page_size
+ page_size = -1 if page_size < 0
+ page_size = self.max_page_size if page_size > self.max_page_size
+ page_size
+ end
+
+ def limited?
+ self.max_page_size > 0
+ end
+
+ def unlimited?
+ !self.limited?
+ end
+
end
end
end
def self.edit content_id, operators
- content = self.find content_id, self.show_opt
+ content = self.find content_id
raise ActiveRecord::Forbidden unless content.own?(operators)
content
end
def self.show item_id, operators = nil
opt = {}
opt.merge!(self.show_opt)
- item = self.find(item_id, opt)
+ item = self.find(item_id)
item.boosts 'read'
raise ActiveRecord::Forbidden if operators and item.visible?(operators) == false
item
#InstanceMethods
+ def my_manifest
+ self.class.my_manifest
+ end
+
def singular
self.class.singular
end
true
end
+ def permit_params params
+ attrs = self.class.permit_attributes
+ params.require(self.item_name.to_sym).permit(attrs)
+ end
+
+ def self.permit_attributes
+ attrs = self.my_manifest.attributes.keys
+ self.child_models.each do |element_model|
+ name = self.my_manifest.associations.child_element_name(element_model) + '_attributes'
+ child_attrs = {}
+ child_attrs[name] = element_model.permit_attributes
+ attrs.push child_attrs
+ end
+ attrs
+ end
+
def editize?
self.respond_to? :editor
end
end
def self.max_t binder_id
- self.maximum(:t, :conditions => [self.binder_key + ' = ?', binder_id])
+ self.where([self.binder_key + ' = ?', binder_id]).maximum(:t)
end
def self.find_t binder_id, t
- self.find(:first, :conditions => [self.binder_key + ' = ? and t = ?', binder_id, t])
+ self.where([self.binder_key + ' = ? and t = ?', binder_id, t]).first
end
def self.collect_t binder_id
- r = self.find(:all, :conditions => [self.binder_key + ' = ?', binder_id], :order => 't')
+ r = self.where([self.binder_key + ' = ?', binder_id]).order('t')
r.map {|sp| sp.t}
end
# ClassMethods
def self.edit system_resource_id, operators
- system_resource = self.find system_resource_id, self.show_opt
+ system_resource = self.find system_resource_id
raise ActiveRecord::Forbidden unless system_resource.own?(operators)
system_resource
end
# ClassMethods
def self.enable_list
- self.find(:all).delete_if {|i|
+ self.all.delete_if {|i|
i.enable? == false
}
end
"play": {\r
"type": "list",\r
"args": {\r
- "alias": "scroll_panels.by_scroll",\r
+ "return_item_name": "scroll_panel",\r
"order": "t",\r
"direction": 1\r
}\r
"play": {\r
"type": "list",\r
"args": {\r
- "alias": "comic_stories.by_comic",\r
+ "return_item_name": "comic_story",\r
"max_page_size": -1,\r
"order": "t",\r
"direction": 1\r
"play": {\r
"type": "list",\r
"args": {\r
- "alias": "story_sheets.by_story",\r
+ "return_item_name": "story_sheet",\r
"max_page_size": -1,\r
"order": "t",\r
"direction": 1\r
"play": {\r
"type": "list",\r
"args": {\r
- "alias": "sheet_panels.by_sheet",\r
+ "return_item_name": "sheet_panel",\r
"order": "t",\r
"direction": 1\r
}\r
"scrolls": {\r
"type": "list",\r
"args": {\r
- "alias": "scrolls.index"\r
+ "item_name": "scroll"\r
}\r
},\r
"scroll_panels": {\r
"type": "list",\r
"args": {\r
- "alias": "scroll_panels.index"\r
+ "item_name": "scroll_panel"\r
}\r
},\r
"comics": {\r
"type": "list",\r
"args": {\r
- "alias": "comics.index"\r
+ "item_name": "comic"\r
}\r
},\r
"comic_stories": {\r
"type": "list",\r
"args": {\r
- "alias": "comic_stories.index"\r
+ "item_name": "comic_story"\r
}\r
},\r
"stories": {\r
"type": "list",\r
"args": {\r
- "alias": "stories.index"\r
+ "item_name": "story"\r
}\r
},\r
"story_sheets": {\r
"type": "list",\r
"args": {\r
- "alias": "story_sheets.index"\r
+ "item_name": "story_sheet"\r
}\r
},\r
"sheets": {\r
"type": "list",\r
"args": {\r
- "alias": "sheets.index"\r
+ "item_name": "sheet"\r
}\r
},\r
"sheet_panels": {\r
"type": "list",\r
"args": {\r
- "alias": "sheet_panels.index"\r
+ "item_name": "sheet_panel"\r
}\r
},\r
"panels": {\r
"type": "list",\r
"args": {\r
- "alias": "panels.index"\r
+ "item_name": "panel"\r
}\r
},\r
"panel_pictures": {\r
"type": "list",\r
"args": {\r
- "alias": "panel_pictures.index"\r
+ "item_name": "panel_picture"\r
}\r
},\r
"speech_balloons": {\r
"type": "list",\r
"args": {\r
- "alias": "speech_balloons.index"\r
+ "item_name": "speech_balloon"\r
}\r
},\r
"speeches": {\r
"type": "list",\r
"args": {\r
- "alias": "speeches.index"\r
+ "item_name": "speech"\r
}\r
},\r
"balloons": {\r
"type": "list",\r
"args": {\r
- "alias": "balloons.index"\r
+ "item_name": "balloon"\r
}\r
},\r
"ground_pictures": {\r
"type": "list",\r
"args": {\r
- "alias": "ground_pictures.index"\r
+ "item_name": "ground_picture"\r
}\r
},\r
"ground_colors": {\r
"type": "list",\r
"args": {\r
- "alias": "ground_colors.index"\r
+ "item_name": "ground_color"\r
}\r
},\r
"original_pictures": {\r
"type": "list",\r
"args": {\r
- "alias": "original_pictures.index"\r
+ "item_name": "original_picture"\r
}\r
},\r
"resource_pictures": {\r
"type": "list",\r
"args": {\r
- "alias": "resource_pictures.index"\r
+ "item_name": "resource_picture"\r
}\r
}\r
}\r
+++ /dev/null
-#!/usr/bin/env ruby
-
-vendored_cucumber_bin = Dir["#{File.dirname(__FILE__)}/../vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
-if vendored_cucumber_bin
- load File.expand_path(vendored_cucumber_bin)
-else
- require 'rubygems' unless ENV['NO_RUBYGEMS']
- require 'cucumber'
- load Cucumber::BINARY
-end
+++ /dev/null
-#!/usr/bin/env ruby.exe
-# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
-
-APP_PATH = File.expand_path('../../config/application', __FILE__)
-require File.expand_path('../../config/boot', __FILE__)
-require 'rails/commands'