enju_library 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +47 -0
  4. data/app/controllers/bookstores_controller.rb +17 -0
  5. data/app/controllers/budget_types_controller.rb +13 -0
  6. data/app/controllers/libraries_controller.rb +125 -0
  7. data/app/controllers/library_groups_controller.rb +46 -0
  8. data/app/controllers/request_status_types_controller.rb +13 -0
  9. data/app/controllers/request_types_controller.rb +13 -0
  10. data/app/controllers/search_engines_controller.rb +17 -0
  11. data/app/controllers/shelves_controller.rb +138 -0
  12. data/app/controllers/subscribes_controller.rb +82 -0
  13. data/app/controllers/subscriptions_controller.rb +87 -0
  14. data/app/helpers/shelves_helper.rb +13 -0
  15. data/app/models/bookstore.rb +37 -0
  16. data/app/models/budget_type.rb +19 -0
  17. data/app/models/library.rb +131 -0
  18. data/app/models/library_group.rb +86 -0
  19. data/app/models/library_group_sweeper.rb +12 -0
  20. data/app/models/request_status_type.rb +20 -0
  21. data/app/models/request_type.rb +19 -0
  22. data/app/models/search_engine.rb +52 -0
  23. data/app/models/shelf.rb +66 -0
  24. data/app/models/subscribe.rb +23 -0
  25. data/app/models/subscription.rb +44 -0
  26. data/app/views/accepts/_form.html.erb +11 -0
  27. data/app/views/accepts/_list.html.erb +31 -0
  28. data/app/views/accepts/edit.html.erb +13 -0
  29. data/app/views/accepts/index.csv.erb +4 -0
  30. data/app/views/accepts/index.html.erb +49 -0
  31. data/app/views/accepts/index.js.erb +1 -0
  32. data/app/views/accepts/new.html.erb +14 -0
  33. data/app/views/accepts/show.html.erb +31 -0
  34. data/app/views/bookstores/_form.html.erb +42 -0
  35. data/app/views/bookstores/edit.html.erb +13 -0
  36. data/app/views/bookstores/index.html.erb +49 -0
  37. data/app/views/bookstores/new.html.erb +12 -0
  38. data/app/views/bookstores/show.html.erb +52 -0
  39. data/app/views/budget_types/_form.html.erb +19 -0
  40. data/app/views/budget_types/edit.html.erb +13 -0
  41. data/app/views/budget_types/index.html.erb +43 -0
  42. data/app/views/budget_types/new.html.erb +12 -0
  43. data/app/views/budget_types/show.html.erb +29 -0
  44. data/app/views/libraries/_calendar.html.erb +13 -0
  45. data/app/views/libraries/_form.html.erb +90 -0
  46. data/app/views/libraries/_map.html.erb +25 -0
  47. data/app/views/libraries/_map.mobile.erb +25 -0
  48. data/app/views/libraries/edit.html.erb +13 -0
  49. data/app/views/libraries/index.html.erb +75 -0
  50. data/app/views/libraries/new.html.erb +12 -0
  51. data/app/views/libraries/show.html.erb +131 -0
  52. data/app/views/libraries/show.mobile.erb +26 -0
  53. data/app/views/library_groups/_form.html.erb +59 -0
  54. data/app/views/library_groups/edit.html.erb +12 -0
  55. data/app/views/library_groups/index.html.erb +30 -0
  56. data/app/views/library_groups/new.html.erb +12 -0
  57. data/app/views/library_groups/show.html.erb +66 -0
  58. data/app/views/request_status_types/_form.html.erb +19 -0
  59. data/app/views/request_status_types/edit.html.erb +13 -0
  60. data/app/views/request_status_types/index.html.erb +40 -0
  61. data/app/views/request_status_types/new.html.erb +12 -0
  62. data/app/views/request_status_types/show.html.erb +29 -0
  63. data/app/views/request_types/_form.html.erb +19 -0
  64. data/app/views/request_types/edit.html.erb +13 -0
  65. data/app/views/request_types/index.html.erb +40 -0
  66. data/app/views/request_types/new.html.erb +12 -0
  67. data/app/views/request_types/show.html.erb +29 -0
  68. data/app/views/search_engines/_form.html.erb +44 -0
  69. data/app/views/search_engines/edit.html.erb +13 -0
  70. data/app/views/search_engines/index.html.erb +44 -0
  71. data/app/views/search_engines/new.html.erb +12 -0
  72. data/app/views/search_engines/show.html.erb +49 -0
  73. data/app/views/shelves/_form.html.erb +37 -0
  74. data/app/views/shelves/_library_facet.html.erb +12 -0
  75. data/app/views/shelves/_select_form.html.erb +1 -0
  76. data/app/views/shelves/edit.html.erb +13 -0
  77. data/app/views/shelves/index.html.erb +73 -0
  78. data/app/views/shelves/new.html.erb +18 -0
  79. data/app/views/shelves/show.html.erb +65 -0
  80. data/app/views/subscribes/edit.html.erb +37 -0
  81. data/app/views/subscribes/index.html.erb +31 -0
  82. data/app/views/subscribes/new.html.erb +48 -0
  83. data/app/views/subscribes/show.html.erb +34 -0
  84. data/app/views/subscriptions/edit.html.erb +29 -0
  85. data/app/views/subscriptions/index.html.erb +39 -0
  86. data/app/views/subscriptions/new.html.erb +28 -0
  87. data/app/views/subscriptions/show.html.erb +40 -0
  88. data/config/routes.rb +17 -0
  89. data/db/migrate/059_create_libraries.rb +28 -0
  90. data/db/migrate/069_create_shelves.rb +15 -0
  91. data/db/migrate/080_create_library_groups.rb +20 -0
  92. data/db/migrate/124_create_bookstores.rb +17 -0
  93. data/db/migrate/130_create_request_status_types.rb +12 -0
  94. data/db/migrate/131_create_request_types.rb +12 -0
  95. data/db/migrate/20081006090811_create_subscriptions.rb +17 -0
  96. data/db/migrate/20081006093246_create_subscribes.rb +14 -0
  97. data/db/migrate/20081023092436_create_search_engines.rb +17 -0
  98. data/db/migrate/20110222073537_add_url_to_library_group.rb +9 -0
  99. data/db/migrate/20110620173525_add_bookstore_id_to_item.rb +11 -0
  100. data/db/migrate/20110627122938_add_number_of_day_to_notify_overdue_to_user_group.rb +13 -0
  101. data/db/migrate/20120105074911_add_isil_to_library.rb +5 -0
  102. data/db/migrate/20120129014038_create_budget_types.rb +12 -0
  103. data/db/migrate/20120510140958_add_closed_to_shelf.rb +5 -0
  104. data/lib/enju_library/engine.rb +16 -0
  105. data/lib/enju_library/master_model.rb +19 -0
  106. data/lib/enju_library/url_validator.rb +10 -0
  107. data/lib/enju_library/version.rb +3 -0
  108. data/lib/enju_library.rb +49 -0
  109. data/lib/tasks/enju_library_tasks.rake +4 -0
  110. data/test/dummy/README.rdoc +261 -0
  111. data/test/dummy/Rakefile +7 -0
  112. data/test/dummy/app/assets/javascripts/application.js +15 -0
  113. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  114. data/test/dummy/app/controllers/application_controller.rb +3 -0
  115. data/test/dummy/app/helpers/application_helper.rb +2 -0
  116. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  117. data/test/dummy/config/application.rb +56 -0
  118. data/test/dummy/config/boot.rb +10 -0
  119. data/test/dummy/config/database.yml +25 -0
  120. data/test/dummy/config/environment.rb +5 -0
  121. data/test/dummy/config/environments/development.rb +37 -0
  122. data/test/dummy/config/environments/production.rb +67 -0
  123. data/test/dummy/config/environments/test.rb +37 -0
  124. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  125. data/test/dummy/config/initializers/inflections.rb +15 -0
  126. data/test/dummy/config/initializers/mime_types.rb +5 -0
  127. data/test/dummy/config/initializers/secret_token.rb +7 -0
  128. data/test/dummy/config/initializers/session_store.rb +8 -0
  129. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  130. data/test/dummy/config/locales/en.yml +5 -0
  131. data/test/dummy/config/routes.rb +58 -0
  132. data/test/dummy/config.ru +4 -0
  133. data/test/dummy/db/development.sqlite3 +0 -0
  134. data/test/dummy/db/test.sqlite3 +0 -0
  135. data/test/dummy/log/development.log +0 -0
  136. data/test/dummy/log/test.log +0 -0
  137. data/test/dummy/public/404.html +26 -0
  138. data/test/dummy/public/422.html +26 -0
  139. data/test/dummy/public/500.html +25 -0
  140. data/test/dummy/public/favicon.ico +0 -0
  141. data/test/dummy/script/rails +6 -0
  142. data/test/enju_library_test.rb +7 -0
  143. data/test/integration/navigation_test.rb +10 -0
  144. data/test/test_helper.rb +15 -0
  145. metadata +576 -0
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2012 Kosuke Tanabe
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,3 @@
1
+ = EnjuLibrary
2
+
3
+ This project rocks and uses MIT-LICENSE.
data/Rakefile ADDED
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'EnjuLibrary'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
24
+ load 'rails/tasks/engine.rake'
25
+
26
+
27
+
28
+ Bundler::GemHelper.install_tasks
29
+
30
+ require 'rake/testtask'
31
+
32
+ Rake::TestTask.new(:test) do |t|
33
+ t.libs << 'lib'
34
+ t.libs << 'test'
35
+ t.pattern = 'test/**/*_test.rb'
36
+ t.verbose = false
37
+ end
38
+
39
+ require 'rspec/core'
40
+ require 'rspec/core/rake_task'
41
+
42
+ RSpec::Core::RakeTask.new(:spec) do |spec|
43
+ spec.pattern = FileList['spec/**/*_spec.rb']
44
+ end
45
+
46
+
47
+ task :default => :spec
@@ -0,0 +1,17 @@
1
+ class BookstoresController < InheritedResources::Base
2
+ respond_to :html, :json
3
+ load_and_authorize_resource
4
+
5
+ def update
6
+ @bookstore = Bookstore.find(params[:id])
7
+ if params[:move]
8
+ move_position(@bookstore, params[:move])
9
+ return
10
+ end
11
+ update!
12
+ end
13
+
14
+ def index
15
+ @bookstores = Bookstore.page(params[:page])
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ class BudgetTypesController < InheritedResources::Base
2
+ respond_to :html, :json
3
+ load_and_authorize_resource
4
+
5
+ def update
6
+ @budget_type = BudgetType.find(params[:id])
7
+ if params[:move]
8
+ move_position(@budget_type, params[:move])
9
+ return
10
+ end
11
+ update!
12
+ end
13
+ end
@@ -0,0 +1,125 @@
1
+ # -*- encoding: utf-8 -*-
2
+ class LibrariesController < ApplicationController
3
+ load_and_authorize_resource
4
+ after_filter :solr_commit, :only => [:create, :update, :destroy]
5
+
6
+ # GET /libraries
7
+ # GET /libraries.json
8
+ def index
9
+ sort = {:sort_by => 'position', :order => 'asc'}
10
+ case params[:sort_by]
11
+ when 'name'
12
+ sort[:sort_by] = 'name'
13
+ end
14
+ sort[:order] = 'desc' if params[:order] == 'desc'
15
+
16
+ query = @query = params[:query].to_s.strip
17
+ page = params[:page] || 1
18
+
19
+ @libraries = Library.search(:include => [:shelves]) do
20
+ fulltext query if query.present?
21
+ paginate :page => page.to_i, :per_page => Library.per_page
22
+ order_by sort[:sort_by], sort[:order]
23
+ end.results
24
+
25
+ respond_to do |format|
26
+ format.html # index.html.erb
27
+ format.json { render :json => @libraries }
28
+ end
29
+ end
30
+
31
+ # GET /libraries/1
32
+ # GET /libraries/1.json
33
+ def show
34
+ if defined?(EnjuEvent)
35
+ search = Sunspot.new_search(Event)
36
+ library = @library.dup
37
+ search.build do
38
+ with(:library_id).equal_to library.id
39
+ order_by(:start_at, :desc)
40
+ end
41
+ page = params[:event_page] || 1
42
+ search.query.paginate(page.to_i, Event.per_page)
43
+ @events = search.execute!.results
44
+ end
45
+
46
+ respond_to do |format|
47
+ format.html # show.html.erb
48
+ format.json { render :json => @library }
49
+ format.js
50
+ end
51
+ end
52
+
53
+ # GET /libraries/new
54
+ def new
55
+ @library = Library.new
56
+ @library.country = LibraryGroup.site_config.country
57
+ prepare_options
58
+
59
+ respond_to do |format|
60
+ format.html # new.html.erb
61
+ format.json { render :json => @library }
62
+ end
63
+ end
64
+
65
+ # GET /libraries/1/edit
66
+ def edit
67
+ prepare_options
68
+ end
69
+
70
+ # POST /libraries
71
+ # POST /libraries.json
72
+ def create
73
+ #patron = Patron.create(:name => params[:library][:name], :patron_type => 'CorporateBody')
74
+ @library = Library.new(params[:library])
75
+
76
+ respond_to do |format|
77
+ if @library.save
78
+ format.html { redirect_to @library, :notice => t('controller.successfully_created', :model => t('activerecord.models.library')) }
79
+ format.json { render :json => @library, :status => :created }
80
+ else
81
+ prepare_options
82
+ format.html { render :action => "new" }
83
+ format.json { render :json => @library.errors, :status => :unprocessable_entity }
84
+ end
85
+ end
86
+ end
87
+
88
+ # PUT /libraries/1
89
+ # PUT /libraries/1.json
90
+ def update
91
+ if params[:move]
92
+ move_position(@library, params[:move])
93
+ return
94
+ end
95
+
96
+ respond_to do |format|
97
+ if @library.update_attributes(params[:library])
98
+ format.html { redirect_to @library, :notice => t('controller.successfully_updated', :model => t('activerecord.models.library')) }
99
+ format.json { head :no_content }
100
+ else
101
+ @library.name = @library.name_was
102
+ prepare_options
103
+ format.html { render :action => "edit" }
104
+ format.json { render :json => @library.errors, :status => :unprocessable_entity }
105
+ end
106
+ end
107
+ end
108
+
109
+ # DELETE /libraries/1
110
+ # DELETE /libraries/1.json
111
+ def destroy
112
+ @library.destroy
113
+
114
+ respond_to do |format|
115
+ format.html { redirect_to libraries_url }
116
+ format.json { head :no_content }
117
+ end
118
+ end
119
+
120
+ private
121
+ def prepare_options
122
+ @library_groups = LibraryGroup.all
123
+ @countries = Country.all_cache
124
+ end
125
+ end
@@ -0,0 +1,46 @@
1
+ # -*- encoding: utf-8 -*-
2
+ class LibraryGroupsController < ApplicationController
3
+ load_and_authorize_resource
4
+ cache_sweeper :library_group_sweeper, :only => [:update]
5
+
6
+ # GET /library_groups
7
+ # GET /library_groups.json
8
+ def index
9
+ @library_groups = LibraryGroup.all
10
+
11
+ respond_to do |format|
12
+ format.html # index.html.erb
13
+ format.json { render :json => @library_groups }
14
+ end
15
+ end
16
+
17
+ # GET /library_groups/1
18
+ # GET /library_groups/1.json
19
+ def show
20
+ respond_to do |format|
21
+ format.html # show.html.erb
22
+ format.json { render :json => @library_group }
23
+ end
24
+ end
25
+
26
+ # GET /library_groups/1/edit
27
+ def edit
28
+ @countries = Country.all
29
+ end
30
+
31
+ # PUT /library_groups/1
32
+ # PUT /library_groups/1.json
33
+ def update
34
+ respond_to do |format|
35
+ if @library_group.update_attributes(params[:library_group])
36
+ expire_page '/page/opensearch'
37
+ format.html { redirect_to @library_group, :notice => t('controller.successfully_updated', :model => t('activerecord.models.library_group')) }
38
+ format.json { head :no_content }
39
+ else
40
+ @countries = Country.all
41
+ format.html { render :action => "edit" }
42
+ format.json { render :json => @library_group.errors, :status => :unprocessable_entity }
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,13 @@
1
+ class RequestStatusTypesController < InheritedResources::Base
2
+ respond_to :html, :json
3
+ load_and_authorize_resource
4
+
5
+ def update
6
+ @request_status_type = RequestStatusType.find(params[:id])
7
+ if params[:move]
8
+ move_position(@request_status_type, params[:move])
9
+ return
10
+ end
11
+ update!
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class RequestTypesController < InheritedResources::Base
2
+ respond_to :html, :json
3
+ load_and_authorize_resource
4
+
5
+ def update
6
+ @request_type = RequestType.find(params[:id])
7
+ if params[:move]
8
+ move_position(@request_type, params[:move])
9
+ return
10
+ end
11
+ update!
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ class SearchEnginesController < InheritedResources::Base
2
+ respond_to :html, :json
3
+ load_and_authorize_resource
4
+
5
+ def update
6
+ @search_engine = SearchEngine.find(params[:id])
7
+ if params[:move]
8
+ move_position(@search_engine, params[:move])
9
+ return
10
+ end
11
+ update!
12
+ end
13
+
14
+ def index
15
+ @search_engines = @search_engines.page(params[:page])
16
+ end
17
+ end
@@ -0,0 +1,138 @@
1
+ class ShelvesController < ApplicationController
2
+ load_and_authorize_resource
3
+ before_filter :get_library
4
+ before_filter :get_libraries, :only => [:new, :edit, :create, :update]
5
+
6
+ # GET /shelves
7
+ # GET /shelves.json
8
+ def index
9
+ if params[:mode] == 'select'
10
+ if @library
11
+ @shelves = @library.shelves
12
+ else
13
+ @shelves = Shelf.real
14
+ end
15
+ render :partial => 'select_form'
16
+ return
17
+ else
18
+ sort = {:sort_by => 'name', :order => 'asc'}
19
+ #case params[:sort_by]
20
+ #when 'name'
21
+ # sort[:sort_by] = 'name'
22
+ #end
23
+ sort[:order] = 'desc' if params[:order] == 'desc'
24
+
25
+ query = @query = params[:query].to_s.strip
26
+ page = params[:page] || 1
27
+ library = @library if @library
28
+
29
+ search = Shelf.search(:include => [:library]) do
30
+ fulltext query if query.present?
31
+ paginate :page => page.to_i, :per_page => Shelf.per_page
32
+ if library
33
+ with(:library).equal_to library.name
34
+ order_by :position, :asc
35
+ end
36
+ order_by sort[:sort_by], sort[:order]
37
+ facet :library
38
+ end
39
+ @shelves = search.results
40
+ @library_facet = search.facet(:library).rows
41
+ @library_names = Library.select(:name).collect(&:name)
42
+ end
43
+
44
+ respond_to do |format|
45
+ format.html # index.html.erb
46
+ format.json { render :json => @shelves }
47
+ end
48
+ end
49
+
50
+ # GET /shelves/1
51
+ # GET /shelves/1.json
52
+ def show
53
+ @shelf = Shelf.find(params[:id], :include => :library)
54
+
55
+ respond_to do |format|
56
+ format.html # show.html.erb
57
+ format.json { render :json => @shelf }
58
+ end
59
+ end
60
+
61
+ # GET /shelves/new
62
+ # GET /shelves/new.json
63
+ def new
64
+ @library = Library.web if @library.nil?
65
+ @shelf = Shelf.new
66
+ @shelf.library = @library
67
+ #@shelf.user = current_user
68
+
69
+ respond_to do |format|
70
+ format.html # new.html.erb
71
+ format.json { render :json => @shelf }
72
+ end
73
+ end
74
+
75
+ # GET /shelves/1/edit
76
+ def edit
77
+ @shelf = Shelf.find(params[:id], :include => :library)
78
+ end
79
+
80
+ # POST /shelves
81
+ # POST /shelves.json
82
+ def create
83
+ @shelf = Shelf.new(params[:shelf])
84
+ if @library
85
+ @shelf.library = @library
86
+ else
87
+ @shelf.library = Library.web #unless current_user.has_role?('Librarian')
88
+ end
89
+
90
+ respond_to do |format|
91
+ if @shelf.save
92
+ format.html { redirect_to @shelf, :notice => t('controller.successfully_created', :model => t('activerecord.models.shelf')) }
93
+ format.json { render :json => @shelf, :status => :created, :location => @shelf }
94
+ else
95
+ @library = Library.first if @shelf.library.nil?
96
+ format.html { render :action => "new" }
97
+ format.json { render :json => @shelf.errors, :status => :unprocessable_entity }
98
+ end
99
+ end
100
+ end
101
+
102
+ # PUT /shelves/1
103
+ # PUT /shelves/1.json
104
+ def update
105
+ @shelf.library = @library if @library
106
+
107
+ if params[:move]
108
+ move_position(@shelf, params[:move], false)
109
+ redirect_to library_shelves_url(@shelf.library)
110
+ return
111
+ end
112
+
113
+ respond_to do |format|
114
+ if @shelf.update_attributes(params[:shelf])
115
+ format.html { redirect_to @shelf, :notice => t('controller.successfully_updated', :model => t('activerecord.models.shelf')) }
116
+ format.json { head :no_content }
117
+ else
118
+ @library = Library.first if @library.nil?
119
+ format.html { render :action => "edit" }
120
+ format.json { render :json => @shelf.errors, :status => :unprocessable_entity }
121
+ end
122
+ end
123
+ end
124
+
125
+ # DELETE /shelves/1
126
+ # DELETE /shelves/1.json
127
+ def destroy
128
+ if @shelf.id == 1
129
+ access_denied; return
130
+ end
131
+ @shelf.destroy
132
+
133
+ respond_to do |format|
134
+ format.html { redirect_to shelves_url }
135
+ format.json { head :no_content }
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,82 @@
1
+ class SubscribesController < ApplicationController
2
+ load_and_authorize_resource
3
+ before_filter :get_subscription, :get_work
4
+
5
+ # GET /subscribes
6
+ # GET /subscribes.json
7
+ def index
8
+ @subscribes = Subscribe.page(params[:page])
9
+
10
+ respond_to do |format|
11
+ format.html # index.html.erb
12
+ format.json { render :json => @subscribes }
13
+ end
14
+ end
15
+
16
+ # GET /subscribes/1
17
+ # GET /subscribes/1.json
18
+ def show
19
+ respond_to do |format|
20
+ format.html # show.html.erb
21
+ format.json { render :json => @subscribe }
22
+ end
23
+ end
24
+
25
+ # GET /subscribes/new
26
+ # GET /subscribes/new.json
27
+ def new
28
+ @subscribe = Subscribe.new
29
+ @subscribe.subscription = @subscription if @subscription
30
+ @subscribe.work = @work if @work
31
+
32
+ respond_to do |format|
33
+ format.html # new.html.erb
34
+ format.json { render :json => @subscribe }
35
+ end
36
+ end
37
+
38
+ # GET /subscribes/1/edit
39
+ def edit
40
+ end
41
+
42
+ # POST /subscribes
43
+ # POST /subscribes.json
44
+ def create
45
+ @subscribe = Subscribe.new(params[:subscribe])
46
+
47
+ respond_to do |format|
48
+ if @subscribe.save
49
+ format.html { redirect_to @subscribe, :notice => t('controller.successfully_created', :model => t('activerecord.models.subscribe')) }
50
+ format.json { render :json => @subscribe, :status => :created, :location => @subscribe }
51
+ else
52
+ format.html { render :action => "new" }
53
+ format.json { render :json => @subscribe.errors, :status => :unprocessable_entity }
54
+ end
55
+ end
56
+ end
57
+
58
+ # PUT /subscribes/1
59
+ # PUT /subscribes/1.json
60
+ def update
61
+ respond_to do |format|
62
+ if @subscribe.update_attributes(params[:subscribe])
63
+ format.html { redirect_to @subscribe, :notice => t('controller.successfully_updated', :model => t('activerecord.models.subscribe')) }
64
+ format.json { head :no_content }
65
+ else
66
+ format.html { render :action => "edit" }
67
+ format.json { render :json => @subscribe.errors, :status => :unprocessable_entity }
68
+ end
69
+ end
70
+ end
71
+
72
+ # DELETE /subscribes/1
73
+ # DELETE /subscribes/1.json
74
+ def destroy
75
+ @subscribe.destroy
76
+
77
+ respond_to do |format|
78
+ format.html { redirect_to subscribes_url }
79
+ format.json { head :no_content }
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,87 @@
1
+ class SubscriptionsController < ApplicationController
2
+ load_and_authorize_resource
3
+ before_filter :get_work
4
+ after_filter :solr_commit, :only => [:create, :update, :destroy]
5
+
6
+ # GET /subscriptions
7
+ # GET /subscriptions.json
8
+ def index
9
+ if @work
10
+ @subscriptions = @work.subscriptions.page(params[:page])
11
+ else
12
+ @subscriptions = Subscription.page(params[:page])
13
+ end
14
+
15
+ respond_to do |format|
16
+ format.html # index.html.erb
17
+ format.json { render :json => @subscriptions }
18
+ end
19
+ end
20
+
21
+ # GET /subscriptions/1
22
+ # GET /subscriptions/1.json
23
+ def show
24
+ respond_to do |format|
25
+ format.html # show.html.erb
26
+ format.json { render :json => @subscription }
27
+ end
28
+ end
29
+
30
+ # GET /subscriptions/new
31
+ # GET /subscriptions/new.json
32
+ def new
33
+ @subscription = Subscription.new
34
+
35
+ respond_to do |format|
36
+ format.html # new.html.erb
37
+ format.json { render :json => @subscription }
38
+ end
39
+ end
40
+
41
+ # GET /subscriptions/1/edit
42
+ def edit
43
+ end
44
+
45
+ # POST /subscriptions
46
+ # POST /subscriptions.json
47
+ def create
48
+ @subscription = Subscription.new(params[:subscription])
49
+ @subscription.user = current_user
50
+
51
+ respond_to do |format|
52
+ if @subscription.save
53
+ format.html { redirect_to @subscription, :notice => t('controller.successfully_created', :model => t('activerecord.models.subscription')) }
54
+ format.json { render :json => @subscription, :status => :created, :location => @subscription }
55
+ else
56
+ format.html { render :action => "new" }
57
+ format.json { render :json => @subscription.errors, :status => :unprocessable_entity }
58
+ end
59
+ end
60
+ end
61
+
62
+ # PUT /subscriptions/1
63
+ # PUT /subscriptions/1.json
64
+ def update
65
+ @subscription.assign_attributes(params[:subscription])
66
+ respond_to do |format|
67
+ if @subscription.save
68
+ format.html { redirect_to @subscription, :notice => t('controller.successfully_updated', :model => t('activerecord.models.subscription')) }
69
+ format.json { head :no_content }
70
+ else
71
+ format.html { render :action => "edit" }
72
+ format.json { render :json => @subscription.errors, :status => :unprocessable_entity }
73
+ end
74
+ end
75
+ end
76
+
77
+ # DELETE /subscriptions/1
78
+ # DELETE /subscriptions/1.json
79
+ def destroy
80
+ @subscription.destroy
81
+
82
+ respond_to do |format|
83
+ format.html { redirect_to subscriptions_url }
84
+ format.json { head :no_content }
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,13 @@
1
+ module ShelvesHelper
2
+ def library_shelf_facet(library, current_library, facet)
3
+ string = ''
4
+ current = true if current_library.try(:name) == library.name
5
+ if current
6
+ content_tag :strong do
7
+ link_to("#{library.display_name.localize} (" + facet.count.to_s + ")", url_for(params.merge(:page => nil, :library_id => library.name, :only_path => true)))
8
+ end
9
+ else
10
+ link_to("#{library.display_name.localize} (" + facet.count.to_s + ")", url_for(params.merge(:page => nil, :library_id => library.name, :only_path => true)))
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,37 @@
1
+ class Bookstore < ActiveRecord::Base
2
+ attr_accessible :name, :zip_code, :address, :note, :telephone_number,
3
+ :fax_number, :url
4
+ default_scope :order => "bookstores.position"
5
+ has_many :items
6
+
7
+ acts_as_list
8
+ validates_presence_of :name
9
+ validates :url, :url => true, :allow_blank => true, :length => {:maximum => 255}
10
+
11
+ def self.per_page
12
+ 10
13
+ end
14
+
15
+ if defined?(EnjuPurchaseRequest)
16
+ has_many :order_lists
17
+ end
18
+ end
19
+
20
+ # == Schema Information
21
+ #
22
+ # Table name: bookstores
23
+ #
24
+ # id :integer not null, primary key
25
+ # name :text not null
26
+ # zip_code :string(255)
27
+ # address :text
28
+ # note :text
29
+ # telephone_number :string(255)
30
+ # fax_number :string(255)
31
+ # url :string(255)
32
+ # position :integer
33
+ # deleted_at :datetime
34
+ # created_at :datetime
35
+ # updated_at :datetime
36
+ #
37
+