umlaut 3.0.0alpha3 → 3.0.0alpha4
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.
- data/README.md +1 -0
- data/app/assets/stylesheets/umlaut.css +3 -2
- data/app/controllers/resolve_controller.rb +1 -1
- data/app/controllers/umlaut/controller_logic.rb +2 -2
- data/app/helpers/resolve_helper.rb +1 -5
- data/app/helpers/umlaut/footer_helper.rb +11 -2
- data/app/helpers/umlaut/html_head_helper.rb +5 -0
- data/app/views/layouts/umlaut.html.erb +6 -9
- data/lib/section_renderer.rb +0 -28
- data/lib/tasks/umlaut.rake +1 -2
- data/lib/tasks/umlaut_migrate_permalinks.rake +31 -29
- data/lib/umlaut/version.rb +1 -1
- data/lib/umlaut_configurable.rb +28 -2
- metadata +4 -8
- data/app/controllers/application_controller.rb +0 -14
- data/app/helpers/application_helper.rb +0 -4
- data/test/dummy/log/development.log +0 -0
data/README.md
CHANGED
@@ -13,6 +13,7 @@ knowledge base. But it's actually quite a bit more than that.
|
|
13
13
|
It could also be described as: a just-in-time aggregator of "last mile"
|
14
14
|
specific-citation services, taking input as OpenURL, and providing both an
|
15
15
|
HTML UI and an api suite for embedding Umlaut services in other products.
|
16
|
+
[What do you mean by this?](https://github.com/team-umlaut/umlaut/wiki/What-is-Umlaut-anyway)
|
16
17
|
|
17
18
|
Umlaut is distributed as a ruby Rails engine gem. It's a very heavyweight engine,
|
18
19
|
the point of distro'ing as a gem is to make it easy to keep local
|
@@ -105,10 +105,11 @@ h4 {
|
|
105
105
|
border: 1px solid #FCF1D4;
|
106
106
|
}
|
107
107
|
|
108
|
-
.
|
108
|
+
.permalink_bar {
|
109
109
|
border-bottom: 1px solid #eeb211;
|
110
110
|
background-color: #FCF1D4;
|
111
|
-
padding: .25em;
|
111
|
+
padding: .25em;
|
112
|
+
text-align: right;
|
112
113
|
}
|
113
114
|
.header {
|
114
115
|
background-color: #FFFDEA;
|
@@ -48,7 +48,7 @@ class ResolveController < UmlautController
|
|
48
48
|
# to view actual response.
|
49
49
|
headers["x-umlaut-request_id"] = @user_request.id
|
50
50
|
headers["x-umlaut-resolve_url"] = url_for( :controller => 'resolve', 'umlaut.request_id'.to_sym => @user_request.id )
|
51
|
-
headers["x-umlaut-permalink_url"] =
|
51
|
+
headers["x-umlaut-permalink_url"] = current_permalink_url()
|
52
52
|
|
53
53
|
# Return empty body. Once we have the xml response done,
|
54
54
|
# this really ought to return an xml response, but with
|
@@ -6,7 +6,7 @@ module Umlaut::ControllerLogic
|
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
8
|
included do
|
9
|
-
|
9
|
+
helper_method :escape_xml, :url_for_with_co, :current_permalink_url, :with_format
|
10
10
|
end
|
11
11
|
|
12
12
|
protected
|
@@ -62,7 +62,7 @@ module Umlaut::ControllerLogic
|
|
62
62
|
# helper method we need available in controllers too
|
63
63
|
# Absolute URL for permalink for given request.
|
64
64
|
# Have to supply rails request and umlaut request.
|
65
|
-
def
|
65
|
+
def current_permalink_url(rails_request=request, umlaut_request=@user_request, options = {})
|
66
66
|
# if we don't have everything, we can't make a permalink.
|
67
67
|
unless (umlaut_request && umlaut_request.referent &&
|
68
68
|
umlaut_request.referent.permalinks &&
|
@@ -170,11 +170,7 @@ module ResolveHelper
|
|
170
170
|
end
|
171
171
|
|
172
172
|
|
173
|
-
|
174
|
-
javascript = " jQuery('.debug_info').toggle();"
|
175
|
-
|
176
|
-
return link_to_function(name, javascript, options)
|
177
|
-
end
|
173
|
+
|
178
174
|
|
179
175
|
##
|
180
176
|
# Methods to grab SectionRenderer definitions from config. Caching in
|
@@ -48,7 +48,7 @@ module Umlaut::FooterHelper
|
|
48
48
|
url += @user_request.to_context_object.kev
|
49
49
|
url += "&sfx.ignore_date_threshold=1" if respond_to?(:title_level_request) && title_level_request?
|
50
50
|
|
51
|
-
link_to "[S]", url
|
51
|
+
link_to "[S]", url, :title => "View in SFX"
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -57,8 +57,17 @@ module Umlaut::FooterHelper
|
|
57
57
|
# debugging.
|
58
58
|
def link_to_test_resolve
|
59
59
|
if (test_base = umlaut_config.lookup!("test_resolve_base")) && @user_request
|
60
|
-
link_to "[T]", test_base.chomp("?") + "?" + @user_request.to_context_object.kev
|
60
|
+
link_to "[T]", test_base.chomp("?") + "?" + @user_request.to_context_object.kev, :title => "View in Test #{umlaut_config.app_name}"
|
61
61
|
end
|
62
62
|
end
|
63
|
+
|
64
|
+
def link_to_toggle_debug_info(options = {})
|
65
|
+
options = {:text => "[D]", :title => "Toggle on-screen debug info"}.merge(options)
|
66
|
+
|
67
|
+
text = options.delete(:text)
|
68
|
+
javascript = " jQuery('.debug_info').toggle();"
|
69
|
+
|
70
|
+
return link_to_function(text, javascript, options)
|
71
|
+
end
|
63
72
|
|
64
73
|
end
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<%= javascript_include_tag 'application' %>
|
10
10
|
|
11
11
|
<title>
|
12
|
-
<%=
|
12
|
+
<%= umlaut_title_text %>
|
13
13
|
</title>
|
14
14
|
|
15
15
|
<%= render_umlaut_head_content %>
|
@@ -19,18 +19,15 @@
|
|
19
19
|
|
20
20
|
<div class="umlaut container">
|
21
21
|
|
22
|
-
<div class="header">
|
22
|
+
<div id="header" class="header">
|
23
23
|
<h1><%= umlaut_config.app_name %></h1>
|
24
24
|
</div>
|
25
25
|
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
<%= link_to url, url %>
|
32
|
-
</div>
|
33
|
-
</div>
|
27
|
+
<% if permalink = current_permalink_url() %>
|
28
|
+
<div class="permalink_bar">
|
29
|
+
URL: <%= link_to current_permalink_url, current_permalink_url %>
|
30
|
+
</div>
|
34
31
|
<% end %>
|
35
32
|
|
36
33
|
|
data/lib/section_renderer.rb
CHANGED
@@ -422,34 +422,6 @@ class SectionRenderer
|
|
422
422
|
end
|
423
423
|
|
424
424
|
|
425
|
-
# Convenience method for re-ordering sections in local resolve_views
|
426
|
-
# initializer.
|
427
|
-
# Swaps elements if necessary to ensure they are in the specified order.
|
428
|
-
# For example, make sure holding comes before document_delivery:
|
429
|
-
# SectionRenderer.ensureOrder("holding", "document_delivery")
|
430
|
-
# Maybe in the future we'll expand this to take variable arguments.
|
431
|
-
def self.swap_if_needed!(first, second)
|
432
|
-
|
433
|
-
list = AppConfig.param("resolve_sections")
|
434
|
-
return unless list
|
435
|
-
|
436
|
-
index1 = find_index(list) {|s| s[:div_id] == first}
|
437
|
-
index2 = find_index(list) {|s| s[:div_id] == second}
|
438
|
-
|
439
|
-
(list[index1], list[index2] = list[index2], list[index1]) if index1 && index2 && (index1 > index2)
|
440
|
-
|
441
|
-
list
|
442
|
-
end
|
443
|
-
|
444
|
-
# helper for swap_if_needed! and ensure_order!
|
445
|
-
def self.find_index(array, &block)
|
446
|
-
array.each_with_index do |value, index|
|
447
|
-
return index if block.call(value)
|
448
|
-
end
|
449
|
-
return nil
|
450
|
-
end
|
451
|
-
|
452
|
-
|
453
425
|
protected
|
454
426
|
|
455
427
|
def construct_options(arguments)
|
data/lib/tasks/umlaut.rake
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
namespace :umlaut do
|
3
2
|
desc "Perform nightly maintenance. Set up in cron."
|
4
3
|
task :nightly_maintenance => [:load_sfx_urls, :expire_sessions, :expire_old_data]
|
@@ -44,7 +43,7 @@ namespace :umlaut do
|
|
44
43
|
hosts.each {|h| SfxUrl.new({:url => h}).save! unless ignore_urls.find {|ignore| ignore === h }}
|
45
44
|
end
|
46
45
|
else
|
47
|
-
puts "Skipping load of SFXURLs via direct access to SFX db. No direct access is configured. Configure in config/
|
46
|
+
puts "Skipping load of SFXURLs via direct access to SFX db. No direct access is configured. Configure in config/database.yml sfx_db"
|
48
47
|
end
|
49
48
|
end
|
50
49
|
|
@@ -12,8 +12,8 @@ namespace :umlaut do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
# Turn off all caching we can think of with AR, cause it's gonna
|
15
|
-
# take too much memory!
|
16
|
-
IdentityMap.enabled = false
|
15
|
+
# take too much memory! I _think_ this will do that.
|
16
|
+
ActiveRecord::IdentityMap.enabled = false
|
17
17
|
|
18
18
|
|
19
19
|
unless ActiveRecord::Base.configurations[old_connection_name]
|
@@ -55,37 +55,39 @@ namespace :umlaut do
|
|
55
55
|
}
|
56
56
|
bulk_queue = []
|
57
57
|
i = 0
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
if old_p.context_obj_serialized.blank?
|
62
|
-
could_not_migrate[:count] += 1
|
63
|
-
count_not_migrate[:highest_id] = [count_not_migrate[:highest_id], old_p.id].max
|
64
|
-
could_not_migrate[:latest_date] = [could_not_migrate[:latest_date], old_p.created_on].max
|
65
|
-
else
|
66
|
-
new_p = Permalink.new
|
67
|
-
new_p.id = old_p.id # keep the id the same!
|
68
|
-
new_p.created_on = old_p.created_on # why not keep it the same?
|
69
|
-
new_p.orig_rfr_id = old_p.orig_rfr_id # why not
|
58
|
+
ActiveRecord::Base.uncached do
|
59
|
+
OldPermalink.find_each(:batch_size => 20000) do |old_p|
|
60
|
+
i += 1
|
70
61
|
|
71
|
-
|
72
|
-
|
62
|
+
if old_p.context_obj_serialized.blank?
|
63
|
+
could_not_migrate[:count] += 1
|
64
|
+
count_not_migrate[:highest_id] = [count_not_migrate[:highest_id], old_p.id].max
|
65
|
+
could_not_migrate[:latest_date] = [could_not_migrate[:latest_date], old_p.created_on].max
|
66
|
+
else
|
67
|
+
new_p = Permalink.new
|
68
|
+
new_p.id = old_p.id # keep the id the same!
|
69
|
+
new_p.created_on = old_p.created_on # why not keep it the same?
|
70
|
+
new_p.orig_rfr_id = old_p.orig_rfr_id # why not
|
71
|
+
|
72
|
+
# the important thing to be able to actually resolve it
|
73
|
+
new_p.context_obj_serialized = old_p.context_obj_serialized
|
74
|
+
|
75
|
+
if ar_import
|
76
|
+
bulk_queue << new_p
|
77
|
+
else
|
78
|
+
new_p.save!
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
print(".") if i % 1000 == 0
|
73
83
|
|
74
|
-
if ar_import
|
75
|
-
|
76
|
-
|
77
|
-
|
84
|
+
if ar_import && i % 10000 == 0
|
85
|
+
print "+"
|
86
|
+
Permalink.import(bulk_queue, :validate => false, :timestamps => false)
|
87
|
+
bulk_queue.clear
|
78
88
|
end
|
89
|
+
|
79
90
|
end
|
80
|
-
|
81
|
-
print(".") if i % 1000 == 0
|
82
|
-
|
83
|
-
if ar_import && i % 10000 == 0
|
84
|
-
print "+"
|
85
|
-
Permalink.import(bulk_queue, :validate => false, :timestamps => false)
|
86
|
-
bulk_queue.clear
|
87
|
-
end
|
88
|
-
|
89
91
|
end
|
90
92
|
|
91
93
|
unless bulk_queue.empty?
|
data/lib/umlaut/version.rb
CHANGED
data/lib/umlaut_configurable.rb
CHANGED
@@ -14,9 +14,12 @@ module UmlautConfigurable
|
|
14
14
|
class_attribute :umlaut_config
|
15
15
|
helper_method :umlaut_config
|
16
16
|
self.umlaut_config = Confstruct::Configuration.new
|
17
|
+
|
18
|
+
|
17
19
|
end
|
18
20
|
|
19
|
-
|
21
|
+
|
22
|
+
|
20
23
|
|
21
24
|
# Call as UmlautConfigurable.set_default_configuration!(confstruct_obj)
|
22
25
|
# to initialize
|
@@ -211,6 +214,29 @@ module UmlautConfigurable
|
|
211
214
|
#
|
212
215
|
# Look in comments at top of SectionRenderer class for what the keys
|
213
216
|
# in each entry mean.
|
217
|
+
|
218
|
+
|
219
|
+
# We add a custom method into the resolve_sections array,
|
220
|
+
# ensure_order!.
|
221
|
+
resolve_sections [].extend Module.new do
|
222
|
+
# Convenience method for re-ordering sections
|
223
|
+
# Swaps elements if necessary to ensure they are in the specified order.
|
224
|
+
# For example, make sure holding comes before document_delivery:
|
225
|
+
# resolve_sections.ensure_order!("holding", "document_delivery")
|
226
|
+
# Maybe in the future we'll expand this to take variable arguments.
|
227
|
+
def self.ensure_order!(first, second)
|
228
|
+
|
229
|
+
list = self
|
230
|
+
|
231
|
+
index1 = list.index {|s| s[:div_id].to_s == first.to_s}
|
232
|
+
index2 = list.index {|s| s[:div_id].to_s == second.to_s}
|
233
|
+
|
234
|
+
(list[index1], list[index2] = list[index2], list[index1]) if index1 && index2 && (index1 > index2)
|
235
|
+
|
236
|
+
list
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
214
240
|
add_resolve_sections! do
|
215
241
|
div_id "cover_image"
|
216
242
|
partial "cover_image"
|
@@ -250,7 +276,7 @@ module UmlautConfigurable
|
|
250
276
|
end
|
251
277
|
|
252
278
|
add_resolve_sections! do
|
253
|
-
div_id
|
279
|
+
div_id "holding"
|
254
280
|
section_title ServiceTypeValue[:holding].display_name_pluralize
|
255
281
|
html_area :main
|
256
282
|
partial 'holding'
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: umlaut
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: -
|
4
|
+
hash: -3702664396
|
5
5
|
prerelease: 5
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 0
|
9
9
|
- 0
|
10
10
|
- alpha
|
11
|
-
-
|
12
|
-
version: 3.0.
|
11
|
+
- 4
|
12
|
+
version: 3.0.0alpha4
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Jonathan Rochkind, et al
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date:
|
20
|
+
date: 2012-01-03 00:00:00 Z
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
@@ -176,7 +176,6 @@ files:
|
|
176
176
|
- app/controllers/umlaut/controller_behavior.rb
|
177
177
|
- app/controllers/resource_controller.rb
|
178
178
|
- app/controllers/resolve_controller.rb
|
179
|
-
- app/controllers/application_controller.rb
|
180
179
|
- app/controllers/umlaut_controller.rb
|
181
180
|
- app/controllers/search_controller.rb
|
182
181
|
- app/assets/images/jhu_findit.gif
|
@@ -278,7 +277,6 @@ files:
|
|
278
277
|
- app/views/umlaut/README
|
279
278
|
- app/views/layouts/umlaut.html.erb
|
280
279
|
- app/helpers/emailer_helper.rb
|
281
|
-
- app/helpers/application_helper.rb
|
282
280
|
- app/helpers/export_email_helper.rb
|
283
281
|
- app/helpers/umlaut/html_head_helper.rb
|
284
282
|
- app/helpers/umlaut/footer_helper.rb
|
@@ -399,7 +397,6 @@ files:
|
|
399
397
|
- ./test/dummy/db/schema.rb
|
400
398
|
- ./test/dummy/db/migrate/20111228211210_umlaut_init.rb
|
401
399
|
- ./test/dummy/log/production.log
|
402
|
-
- ./test/dummy/log/development.log
|
403
400
|
- ./test/performance/browsing_test.rb
|
404
401
|
- ./test/unit/aleph_record_benchmarks.rb
|
405
402
|
- ./test/unit/aws_product_sign_test.rb
|
@@ -490,7 +487,6 @@ test_files:
|
|
490
487
|
- ./test/dummy/db/schema.rb
|
491
488
|
- ./test/dummy/db/migrate/20111228211210_umlaut_init.rb
|
492
489
|
- ./test/dummy/log/production.log
|
493
|
-
- ./test/dummy/log/development.log
|
494
490
|
- ./test/performance/browsing_test.rb
|
495
491
|
- ./test/unit/aleph_record_benchmarks.rb
|
496
492
|
- ./test/unit/aws_product_sign_test.rb
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# Filters added to this controller apply to all controllers in the application.
|
2
|
-
# Likewise, all the methods added will be available for all controllers.
|
3
|
-
|
4
|
-
class ApplicationController < ActionController::Base
|
5
|
-
|
6
|
-
|
7
|
-
protect_from_forgery
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
|
File without changes
|