enju_library 0.1.0.pre36 → 0.1.0.pre37
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/accepts_controller.rb +3 -3
- data/app/controllers/libraries_controller.rb +5 -4
- data/app/controllers/library_groups_controller.rb +0 -1
- data/app/controllers/shelves_controller.rb +4 -4
- data/app/helpers/shelves_helper.rb +3 -4
- data/app/models/accept.rb +1 -1
- data/app/models/basket.rb +2 -2
- data/app/models/bookstore.rb +2 -2
- data/app/models/budget_type.rb +7 -1
- data/app/models/color.rb +22 -0
- data/app/models/enju_library/ability.rb +3 -3
- data/app/models/library.rb +20 -17
- data/app/models/library_group.rb +10 -4
- data/app/models/request_status_type.rb +7 -1
- data/app/models/request_type.rb +7 -1
- data/app/models/search_engine.rb +7 -7
- data/app/models/shelf.rb +5 -5
- data/app/models/subscription.rb +1 -1
- data/app/views/baskets/show.html.erb +2 -2
- data/app/views/libraries/_calendar.html.erb +6 -2
- data/app/views/libraries/show.html.erb +4 -4
- data/app/views/libraries/show.js.erb +1 -0
- data/app/views/library_groups/_form.html.erb +14 -5
- data/app/views/library_groups/show.html.erb +13 -0
- data/app/views/search_engines/index.html.erb +0 -1
- data/config/locales/translation_en.yml +1 -0
- data/config/locales/translation_ja.yml +1 -0
- data/db/migrate/20140821151023_create_colors.rb +14 -0
- data/lib/enju_library.rb +1 -1
- data/lib/enju_library/engine.rb +1 -0
- data/lib/enju_library/item.rb +3 -3
- data/lib/enju_library/version.rb +1 -1
- data/lib/generators/enju_library/setup/setup_generator.rb +2 -0
- data/lib/generators/enju_library/setup/templates/db/fixtures/colors.yml +25 -0
- data/lib/generators/enju_library/setup/templates/db/fixtures/request_types.yml +2 -0
- data/lib/tasks/color.rb +12 -0
- data/lib/tasks/enju_library_tasks.rake +10 -0
- data/spec/controllers/search_engines_controller_spec.rb +2 -2
- data/spec/controllers/subscribes_controller_spec.rb +2 -2
- data/spec/dummy/config/boot.rb +2 -2
- data/spec/dummy/config/initializers/friendly_id.rb +90 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/005_create_manifestations.rb +0 -1
- data/spec/dummy/db/migrate/20110627035057_create_series_statement_merges.rb +1 -1
- data/spec/dummy/db/migrate/20140813182425_add_publication_place_to_manifestation.rb +5 -0
- data/spec/dummy/db/migrate/20140822114527_add_error_message_to_resource_import_result.rb +5 -0
- data/spec/dummy/db/migrate/20140823083524_add_extent_to_manifestation.rb +5 -0
- data/spec/dummy/db/migrate/20140823094847_add_dimensions_to_manifestation.rb +5 -0
- data/spec/dummy/db/migrate/20140823095740_rename_manifestation_periodical_to_serial.rb +9 -0
- data/spec/dummy/db/schema.rb +18 -4
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/solr/default/data/index/_21e.fdt +0 -0
- data/spec/dummy/solr/default/data/index/{_1we.fdx → _21e.fdx} +0 -0
- data/spec/dummy/solr/default/data/index/{_1we.fnm → _21e.fnm} +0 -0
- data/spec/dummy/solr/default/data/index/{_1we.nvd → _21e.nvd} +0 -0
- data/spec/dummy/solr/default/data/index/{_1we.nvm → _21e.nvm} +0 -0
- data/spec/dummy/solr/default/data/index/{_1we.si → _21e.si} +0 -0
- data/spec/dummy/solr/default/data/index/{_1we_Lucene41_0.doc → _21e_Lucene41_0.doc} +0 -0
- data/spec/dummy/solr/default/data/index/{_1we_Lucene41_0.pos → _21e_Lucene41_0.pos} +0 -0
- data/spec/dummy/solr/default/data/index/_21e_Lucene41_0.tim +0 -0
- data/spec/dummy/solr/default/data/index/{_1we_Lucene41_0.tip → _21e_Lucene41_0.tip} +0 -0
- data/spec/dummy/solr/default/data/index/segments.gen +0 -0
- data/spec/dummy/solr/default/data/index/segments_3j2 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004563 +0 -0
- data/spec/dummy/solr/default/data/tlog/{tlog.0000000000000004156 → tlog.0000000000000004564} +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004565 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004566 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004567 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004568 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004569 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004570 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004571 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004572 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/116f3db2d9d60864a0e9bf0e9eea12c1 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/1f84f73be56154eba5c29f8ef2ac2177 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/9858160e3e612357dced457d860640d7 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/b561c7bed91703077a14b29a73432edc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/ebc83b1f2325c61a70d933aa7a17df5a +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/f10609df7ed708c7c5c0efb7f12402f8 +0 -0
- data/spec/fixtures/colors.yml +38 -0
- data/spec/fixtures/manifestations.yml +0 -1
- data/spec/fixtures/users.yml +1 -1
- data/spec/support/vcr.rb +3 -3
- metadata +90 -73
- data/spec/dummy/solr/default/data/index/_1we.fdt +0 -0
- data/spec/dummy/solr/default/data/index/_1we_Lucene41_0.tim +0 -0
- data/spec/dummy/solr/default/data/index/segments_37q +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004155 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004157 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004158 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004159 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004160 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004161 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004162 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004163 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000004164 +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3abe64373ec9eb8255947166b0601bd8bd27ed6
|
4
|
+
data.tar.gz: 9ed1ae62421c5cc69ce9bd9f1fa86e4075e154f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9feb46a901187ef69f835f5306e7c8aff4bb46e8b51a7b745ff7ec3bd8afe05a4341bab5869a9fd673196afa7a0f93a42ea018530d6af231628ecf71d5c21f65
|
7
|
+
data.tar.gz: 2c1ebb03bc329f2cf47339c276ef5effd56177757270cd1e9674445879677ac885a01c648f635d7aedc8a2987b7a2b9a21715a219acf7fcb2dad42d797c3fcc5
|
@@ -11,11 +11,11 @@ class AcceptsController < ApplicationController
|
|
11
11
|
else
|
12
12
|
if params[:accept]
|
13
13
|
@query = params[:accept][:item_identifier].to_s.strip
|
14
|
-
item = Item.where(:
|
14
|
+
item = Item.where(item_identifier: @query).first if @query.present?
|
15
15
|
end
|
16
16
|
|
17
17
|
if item
|
18
|
-
@accepts = Accept.order('accepts.created_at DESC').where(:
|
18
|
+
@accepts = Accept.order('accepts.created_at DESC').where(item_id: item.id).page(params[:page])
|
19
19
|
else
|
20
20
|
if @basket
|
21
21
|
@accepts = @basket.accepts.page(params[:page])
|
@@ -75,7 +75,7 @@ class AcceptsController < ApplicationController
|
|
75
75
|
if @accept.item_identifier.blank?
|
76
76
|
flash[:message] << t('accept.enter_item_identifier') if @accept.item_identifier.blank?
|
77
77
|
else
|
78
|
-
item = Item.where(:
|
78
|
+
item = Item.where(item_identifier: @accept.item_identifier.to_s.strip).first
|
79
79
|
end
|
80
80
|
@accept.item = item
|
81
81
|
|
@@ -6,7 +6,7 @@ class LibrariesController < ApplicationController
|
|
6
6
|
# GET /libraries
|
7
7
|
# GET /libraries.json
|
8
8
|
def index
|
9
|
-
sort = {:
|
9
|
+
sort = {sort_by: 'position', order: 'asc'}
|
10
10
|
case params[:sort_by]
|
11
11
|
when 'name'
|
12
12
|
sort[:sort_by] = 'name'
|
@@ -18,7 +18,7 @@ class LibrariesController < ApplicationController
|
|
18
18
|
|
19
19
|
@libraries = Library.search(include: [:shelves]) do
|
20
20
|
fulltext query if query.present?
|
21
|
-
paginate :
|
21
|
+
paginate page: page.to_i, per_page: Library.default_per_page
|
22
22
|
order_by sort[:sort_by], sort[:order]
|
23
23
|
end.results
|
24
24
|
|
@@ -33,9 +33,9 @@ class LibrariesController < ApplicationController
|
|
33
33
|
def show
|
34
34
|
if defined?(EnjuEvent)
|
35
35
|
search = Sunspot.new_search(Event)
|
36
|
-
|
36
|
+
library_id = @library.id
|
37
37
|
search.build do
|
38
|
-
with(:library_id).equal_to
|
38
|
+
with(:library_id).equal_to library_id
|
39
39
|
order_by(:start_at, :desc)
|
40
40
|
end
|
41
41
|
page = params[:event_page] || 1
|
@@ -117,6 +117,7 @@ class LibrariesController < ApplicationController
|
|
117
117
|
end
|
118
118
|
|
119
119
|
private
|
120
|
+
|
120
121
|
def prepare_options
|
121
122
|
@library_groups = LibraryGroup.all
|
122
123
|
@countries = Country.all_cache
|
@@ -32,7 +32,6 @@ class LibraryGroupsController < ApplicationController
|
|
32
32
|
def update
|
33
33
|
respond_to do |format|
|
34
34
|
if @library_group.update_attributes(params[:library_group])
|
35
|
-
expire_page '/page/opensearch'
|
36
35
|
format.html { redirect_to @library_group, notice: t('controller.successfully_updated', model: t('activerecord.models.library_group')) }
|
37
36
|
format.json { head :no_content }
|
38
37
|
else
|
@@ -15,7 +15,7 @@ class ShelvesController < ApplicationController
|
|
15
15
|
render partial: 'select_form'
|
16
16
|
return
|
17
17
|
else
|
18
|
-
sort = {:
|
18
|
+
sort = {sort_by: 'name', order: 'asc'}
|
19
19
|
#case params[:sort_by]
|
20
20
|
#when 'name'
|
21
21
|
# sort[:sort_by] = 'name'
|
@@ -28,7 +28,7 @@ class ShelvesController < ApplicationController
|
|
28
28
|
|
29
29
|
search = Shelf.search(include: [:library]) do
|
30
30
|
fulltext query if query.present?
|
31
|
-
paginate :
|
31
|
+
paginate page: page.to_i, per_page: Shelf.default_per_page
|
32
32
|
if library
|
33
33
|
with(:library).equal_to library.name
|
34
34
|
order_by :position, :asc
|
@@ -50,7 +50,7 @@ class ShelvesController < ApplicationController
|
|
50
50
|
# GET /shelves/1
|
51
51
|
# GET /shelves/1.json
|
52
52
|
def show
|
53
|
-
@shelf = Shelf.find(params[:id]
|
53
|
+
@shelf = Shelf.includes(:library).find(params[:id])
|
54
54
|
|
55
55
|
respond_to do |format|
|
56
56
|
format.html # show.html.erb
|
@@ -75,7 +75,7 @@ class ShelvesController < ApplicationController
|
|
75
75
|
|
76
76
|
# GET /shelves/1/edit
|
77
77
|
def edit
|
78
|
-
@shelf = Shelf.find(params[:id]
|
78
|
+
@shelf = Shelf.includes(:library).find(params[:id])
|
79
79
|
end
|
80
80
|
|
81
81
|
# POST /shelves
|
@@ -1,16 +1,15 @@
|
|
1
1
|
module ShelvesHelper
|
2
2
|
def library_shelf_facet(current_library, facet)
|
3
|
-
library = Library.where(:
|
3
|
+
library = Library.where(name: facet.value).select([:name, :display_name]).first
|
4
4
|
return nil unless library
|
5
|
-
string = ''
|
6
5
|
current = true if current_library.try(:name) == library.name
|
7
6
|
content_tag :li do
|
8
7
|
if current
|
9
8
|
content_tag :strong do
|
10
|
-
link_to("#{library.display_name.localize} (" + facet.count.to_s + ")", url_for(params.merge(:
|
9
|
+
link_to("#{library.display_name.localize} (" + facet.count.to_s + ")", url_for(params.merge(page: nil, library_id: library.name, only_path: true)))
|
11
10
|
end
|
12
11
|
else
|
13
|
-
link_to("#{library.display_name.localize} (" + facet.count.to_s + ")", url_for(params.merge(:
|
12
|
+
link_to("#{library.display_name.localize} (" + facet.count.to_s + ")", url_for(params.merge(page: nil, library_id: library.name, only_path: true)))
|
14
13
|
end
|
15
14
|
end
|
16
15
|
end
|
data/app/models/accept.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class Accept < ActiveRecord::Base
|
2
2
|
attr_accessible :item_identifier, :librarian_id, :item_id
|
3
|
-
default_scope order
|
3
|
+
default_scope { order('accepts.id DESC') }
|
4
4
|
belongs_to :basket
|
5
5
|
belongs_to :item, touch: true
|
6
6
|
belongs_to :librarian, class_name: 'User'
|
data/app/models/basket.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
class Basket < ActiveRecord::Base
|
2
2
|
attr_accessible :note, :user_number
|
3
|
-
default_scope order
|
4
|
-
scope :will_expire, lambda {|date|
|
3
|
+
default_scope { order('baskets.id DESC') }
|
4
|
+
scope :will_expire, lambda {|date| where('created_at < ?', date)}
|
5
5
|
belongs_to :user, validate: true
|
6
6
|
has_many :accepts
|
7
7
|
|
data/app/models/bookstore.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
class Bookstore < ActiveRecord::Base
|
2
2
|
attr_accessible :name, :zip_code, :address, :note, :telephone_number,
|
3
3
|
:fax_number, :url
|
4
|
-
default_scope order
|
4
|
+
default_scope { order('bookstores.position') }
|
5
5
|
has_many :items
|
6
6
|
|
7
7
|
acts_as_list
|
8
8
|
validates_presence_of :name
|
9
|
-
validates :url, url: true, allow_blank: true, length: {:
|
9
|
+
validates :url, url: true, allow_blank: true, length: { maximum: 255 }
|
10
10
|
|
11
11
|
paginates_per 10
|
12
12
|
|
data/app/models/budget_type.rb
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
class BudgetType < ActiveRecord::Base
|
2
2
|
attr_accessible :name, :display_name, :note, :position
|
3
3
|
include MasterModel
|
4
|
-
|
4
|
+
validates :name, presence: true, format: { with: /\A[0-9A-Za-z][0-9A-Za-z_\-\s,]*[0-9a-z]\Z/ }
|
5
|
+
default_scope { order('budget_types.position') }
|
5
6
|
has_many :items
|
7
|
+
|
8
|
+
private
|
9
|
+
def valid_name?
|
10
|
+
true
|
11
|
+
end
|
6
12
|
end
|
7
13
|
|
8
14
|
# == Schema Information
|
data/app/models/color.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
class Color < ActiveRecord::Base
|
2
|
+
attr_accessible :code, :property
|
3
|
+
|
4
|
+
belongs_to :library_group
|
5
|
+
validates :code, presence: true, format: /\A[A-Fa-f0-9]{6}\Z/
|
6
|
+
validates :property, presence: true, uniqueness: true, format: /\A[a-z][0-9a-z_]*[0-9a-z]\Z/
|
7
|
+
|
8
|
+
acts_as_list
|
9
|
+
end
|
10
|
+
|
11
|
+
# == Schema Information
|
12
|
+
#
|
13
|
+
# Table name: colors
|
14
|
+
#
|
15
|
+
# id :integer not null, primary key
|
16
|
+
# library_group_id :integer
|
17
|
+
# property :string(255)
|
18
|
+
# code :string(255)
|
19
|
+
# position :integer
|
20
|
+
# created_at :datetime not null
|
21
|
+
# updated_at :datetime not null
|
22
|
+
#
|
@@ -11,11 +11,11 @@ module EnjuLibrary
|
|
11
11
|
end
|
12
12
|
can [:read, :create, :update], Library
|
13
13
|
can [:delete, :destroy], Library do |library|
|
14
|
-
library.shelves.empty?
|
14
|
+
library.shelves.empty? && !library.web?
|
15
15
|
end
|
16
16
|
can [:read, :create, :update], Shelf
|
17
17
|
can [:delete, :destroy], Shelf do |shelf|
|
18
|
-
shelf.items.empty?
|
18
|
+
shelf.items.empty? && !shelf.web_shelf?
|
19
19
|
end
|
20
20
|
can :manage, [
|
21
21
|
Accept,
|
@@ -28,7 +28,7 @@ module EnjuLibrary
|
|
28
28
|
LibraryGroup,
|
29
29
|
RequestStatusType,
|
30
30
|
RequestType
|
31
|
-
] if LibraryGroup.site_config.network_access_allowed?(ip_address, :
|
31
|
+
] if LibraryGroup.site_config.network_access_allowed?(ip_address, network_type: :admin)
|
32
32
|
can :read, [
|
33
33
|
LibraryGroup,
|
34
34
|
RequestStatusType,
|
data/app/models/library.rb
CHANGED
@@ -6,11 +6,11 @@ class Library < ActiveRecord::Base
|
|
6
6
|
:country_id, :opening_hour, :isil, :position
|
7
7
|
|
8
8
|
include MasterModel
|
9
|
-
default_scope order
|
10
|
-
scope :real, where('id != 1')
|
11
|
-
has_many :shelves
|
9
|
+
default_scope { order('libraries.position') }
|
10
|
+
scope :real, -> { where('id != 1') }
|
11
|
+
has_many :shelves
|
12
12
|
belongs_to :library_group, validate: true
|
13
|
-
has_many :
|
13
|
+
has_many :profiles
|
14
14
|
belongs_to :country
|
15
15
|
|
16
16
|
extend FriendlyId
|
@@ -25,13 +25,14 @@ class Library < ActiveRecord::Base
|
|
25
25
|
end
|
26
26
|
|
27
27
|
validates_associated :library_group
|
28
|
-
|
29
|
-
|
28
|
+
validates :short_display_name, presence: true
|
29
|
+
validates :library_group, presence: true
|
30
|
+
validates_uniqueness_of :short_display_name, case_sensitive: false
|
30
31
|
validates_uniqueness_of :isil, allow_blank: true
|
31
32
|
validates :display_name, uniqueness: true
|
32
|
-
validates :name, format: {with: /\A[a-z][0-9a-z\-_]{1,253}[0-9a-z]\Z/}
|
33
|
-
validates :isil, format: {with: /\A[A-Za-z]{1,4}-[A-Za-z0-9\/:\-]{2,11}\z/}, allow_blank: true
|
34
|
-
after_validation :geocode, :
|
33
|
+
validates :name, format: { with: /\A[a-z][0-9a-z\-_]{1,253}[0-9a-z]\Z/ }
|
34
|
+
validates :isil, format: { with: /\A[A-Za-z]{1,4}-[A-Za-z0-9\/:\-]{2,11}\z/ }, allow_blank: true
|
35
|
+
after_validation :geocode, if: :address_changed?
|
35
36
|
after_create :create_shelf
|
36
37
|
after_save :clear_all_cache
|
37
38
|
after_destroy :clear_all_cache
|
@@ -40,7 +41,7 @@ class Library < ActiveRecord::Base
|
|
40
41
|
|
41
42
|
def self.all_cache
|
42
43
|
if Rails.env == 'production'
|
43
|
-
Rails.cache.fetch('library_all'){Library.all}
|
44
|
+
Rails.cache.fetch('library_all'){ Library.all }
|
44
45
|
else
|
45
46
|
Library.all
|
46
47
|
end
|
@@ -52,13 +53,13 @@ class Library < ActiveRecord::Base
|
|
52
53
|
|
53
54
|
def create_shelf
|
54
55
|
shelf = Shelf.new
|
55
|
-
shelf.name = "#{
|
56
|
+
shelf.name = "#{name}_default"
|
56
57
|
shelf.library = self
|
57
58
|
shelf.save!
|
58
59
|
end
|
59
60
|
|
60
61
|
def web?
|
61
|
-
return true if
|
62
|
+
return true if id == 1
|
62
63
|
false
|
63
64
|
end
|
64
65
|
|
@@ -69,24 +70,26 @@ class Library < ActiveRecord::Base
|
|
69
70
|
def address(locale = I18n.locale)
|
70
71
|
case locale.to_sym
|
71
72
|
when :ja
|
72
|
-
"#{
|
73
|
+
"#{region.to_s.localize(locale)}#{locality.to_s.localize(locale)}#{street.to_s.localize(locale)}"
|
73
74
|
else
|
74
|
-
"#{
|
75
|
+
"#{street.to_s.localize(locale)} #{locality.to_s.localize(locale)} #{region.to_s.localize(locale)}"
|
75
76
|
end
|
76
77
|
rescue
|
77
78
|
nil
|
78
79
|
end
|
79
80
|
|
80
81
|
def address_changed?
|
81
|
-
return true if region_changed?
|
82
|
+
return true if region_changed? || locality_changed? || street_changed?
|
82
83
|
false
|
83
84
|
end
|
84
85
|
|
85
86
|
if defined?(EnjuEvent)
|
86
|
-
has_many :events
|
87
|
+
has_many :events
|
87
88
|
|
88
89
|
def closed?(date)
|
89
|
-
events.closing_days.
|
90
|
+
events.closing_days.map{ |c|
|
91
|
+
c.start_at.beginning_of_day
|
92
|
+
}.include?(date.beginning_of_day)
|
90
93
|
end
|
91
94
|
end
|
92
95
|
|
data/app/models/library_group.rb
CHANGED
@@ -1,15 +1,21 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
class LibraryGroup < ActiveRecord::Base
|
3
3
|
attr_accessible :name, :display_name, :short_name, :my_networks,
|
4
|
-
:login_banner, :note, :country_id, :admin_networks, :url
|
4
|
+
:login_banner, :note, :country_id, :admin_networks, :url,
|
5
|
+
:colors_attributes
|
6
|
+
if defined?(EnjuBookmark)
|
7
|
+
attr_accessible :allow_bookmark_external_url
|
8
|
+
end
|
5
9
|
|
6
10
|
#include Singleton
|
7
11
|
include MasterModel
|
8
12
|
|
9
13
|
has_many :libraries
|
14
|
+
has_many :colors
|
10
15
|
belongs_to :country
|
11
16
|
|
12
17
|
validates :url, presence: true, url: true
|
18
|
+
accepts_nested_attributes_for :colors, update_only: true
|
13
19
|
|
14
20
|
def self.site_config
|
15
21
|
LibraryGroup.find(1)
|
@@ -29,13 +35,13 @@ class LibraryGroup < ActiveRecord::Base
|
|
29
35
|
end
|
30
36
|
|
31
37
|
def network_access_allowed?(ip_address, options = {})
|
32
|
-
options = {:
|
38
|
+
options = { network_type: :lan }.merge(options)
|
33
39
|
client_ip = IPAddr.new(ip_address)
|
34
40
|
case options[:network_type]
|
35
41
|
when :admin
|
36
|
-
allowed_networks =
|
42
|
+
allowed_networks = admin_networks.to_s.split
|
37
43
|
else
|
38
|
-
allowed_networks =
|
44
|
+
allowed_networks = my_networks.to_s.split
|
39
45
|
end
|
40
46
|
allowed_networks.each do |allowed_network|
|
41
47
|
begin
|
@@ -1,8 +1,14 @@
|
|
1
1
|
class RequestStatusType < ActiveRecord::Base
|
2
2
|
attr_accessible :name, :display_name, :note
|
3
3
|
include MasterModel
|
4
|
-
|
4
|
+
validates :name, presence: true, format: { with: /\A[0-9A-Za-z][0-9A-Za-z_\-\s,]*[0-9a-z]\Z/ }
|
5
|
+
default_scope { order('request_status_types.position') }
|
5
6
|
has_many :reserves
|
7
|
+
|
8
|
+
private
|
9
|
+
def valid_name?
|
10
|
+
true
|
11
|
+
end
|
6
12
|
end
|
7
13
|
|
8
14
|
# == Schema Information
|
data/app/models/request_type.rb
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
class RequestType < ActiveRecord::Base
|
2
2
|
attr_accessible :name, :display_name, :note
|
3
3
|
include MasterModel
|
4
|
-
|
4
|
+
validates :name, presence: true, format: { with: /\A[0-9A-Za-z][0-9A-Za-z_\-\s,]*[0-9a-z]\Z/ }
|
5
|
+
default_scope { order('request_types.position') }
|
6
|
+
|
7
|
+
private
|
8
|
+
def valid_name?
|
9
|
+
true
|
10
|
+
end
|
5
11
|
end
|
6
12
|
|
7
13
|
# == Schema Information
|
data/app/models/search_engine.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
class SearchEngine < ActiveRecord::Base
|
2
2
|
attr_accessible :name, :display_name, :url, :base_url, :http_method,
|
3
3
|
:query_param, :additional_param, :note
|
4
|
-
default_scope order
|
4
|
+
default_scope { order('search_engines.position') }
|
5
5
|
acts_as_list
|
6
6
|
|
7
7
|
validates :name, presence: true
|
8
8
|
validates :query_param, presence: true
|
9
|
-
validates :http_method, presence: true, :
|
10
|
-
validates :url, presence: true, url: true, length: {:
|
11
|
-
validates :base_url, presence: true, url: true, length: {:
|
9
|
+
validates :http_method, presence: true, inclusion: %w(get post)
|
10
|
+
validates :url, presence: true, url: true, length: { maximum: 255 }
|
11
|
+
validates :base_url, presence: true, url: true, length: { maximum: 255 }
|
12
12
|
after_save :clear_all_cache
|
13
13
|
after_destroy :clear_all_cache
|
14
14
|
|
@@ -20,9 +20,9 @@ class SearchEngine < ActiveRecord::Base
|
|
20
20
|
|
21
21
|
def search_params(query)
|
22
22
|
params = {}
|
23
|
-
if
|
24
|
-
|
25
|
-
p = param.split(
|
23
|
+
if additional_param
|
24
|
+
additional_param.gsub('{query}', query).to_s.split.each do |param|
|
25
|
+
p = param.split('=')
|
26
26
|
params[p[0].to_sym] = p[1]
|
27
27
|
end
|
28
28
|
return params
|
data/app/models/shelf.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
class Shelf < ActiveRecord::Base
|
2
2
|
attr_accessible :name, :display_name, :note, :library_id, :closed
|
3
3
|
include MasterModel
|
4
|
-
scope :real, where('library_id != 1')
|
4
|
+
scope :real, -> { where('library_id != 1') }
|
5
5
|
belongs_to :library, validate: true
|
6
|
-
has_many :items
|
6
|
+
has_many :items
|
7
7
|
has_many :picture_files, as: :picture_attachable, dependent: :destroy
|
8
8
|
|
9
9
|
validates_associated :library
|
10
|
-
|
10
|
+
validates :library, presence: true
|
11
11
|
validates_uniqueness_of :display_name, scope: :library_id
|
12
|
-
validates :name, format: {with: /\A[a-z][0-9a-z\-_]{1,253}[0-9a-z]\Z/}
|
12
|
+
validates :name, format: { with: /\A[a-z][0-9a-z\-_]{1,253}[0-9a-z]\Z/ }
|
13
13
|
|
14
14
|
acts_as_list scope: :library
|
15
15
|
|
@@ -27,7 +27,7 @@ class Shelf < ActiveRecord::Base
|
|
27
27
|
paginates_per 10
|
28
28
|
|
29
29
|
def web_shelf?
|
30
|
-
return true if
|
30
|
+
return true if id == 1
|
31
31
|
false
|
32
32
|
end
|
33
33
|
|