geoblacklight_admin 0.0.1 → 0.2.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.
- checksums.yaml +4 -4
- data/README.md +59 -36
- data/Rakefile +47 -14
- data/app/assets/javascripts/geoblacklight_admin.js +2 -1
- data/app/assets/stylesheets/geoblacklight_admin/_core.scss +5 -0
- data/app/assets/stylesheets/geoblacklight_admin/modules/_chosen.scss +425 -0
- data/app/assets/stylesheets/geoblacklight_admin/modules/_forms.scss +108 -0
- data/app/controllers/admin/admin_controller.rb +4 -2
- data/app/controllers/admin/advanced_search_controller.rb +123 -103
- data/app/controllers/admin/api_controller.rb +123 -108
- data/app/controllers/admin/bookmarks_controller.rb +4 -4
- data/app/controllers/admin/bulk_actions_controller.rb +9 -4
- data/app/controllers/admin/concerns/upload_util.rb +2 -0
- data/app/controllers/admin/document_accesses_controller.rb +10 -4
- data/app/controllers/admin/document_assets_controller.rb +14 -11
- data/app/controllers/admin/document_downloads_controller.rb +12 -10
- data/app/controllers/admin/documents_controller.rb +32 -15
- data/app/controllers/admin/elements_controller.rb +6 -5
- data/app/controllers/admin/form_elements_controller.rb +4 -4
- data/app/controllers/admin/ids_controller.rb +107 -87
- data/app/controllers/admin/import_documents_controller.rb +1 -1
- data/app/controllers/admin/imports_controller.rb +7 -3
- data/app/controllers/admin/mappings_controller.rb +6 -4
- data/app/controllers/admin/notifications_controller.rb +1 -1
- data/app/controllers/admin/search_controller.rb +3 -2
- data/app/controllers/admin/users_controller.rb +2 -2
- data/app/helpers/form_input_helper.rb +4 -4
- data/app/helpers/geoblacklight_admin_helper.rb +1 -1
- data/app/indexers/document_indexer.rb +1 -1
- data/app/jobs/export_job.rb +9 -6
- data/app/jobs/export_json_bulk_job.rb +95 -0
- data/app/jobs/export_json_job.rb +14 -12
- data/app/models/admin/bookmark.rb +18 -0
- data/app/models/api_search_builder.rb +3 -1
- data/app/models/blacklight_api.rb +6 -6
- data/app/models/blacklight_api_facets.rb +7 -2
- data/app/models/blacklight_api_ids.rb +3 -4
- data/app/models/bulk_action.rb +1 -1
- data/app/models/document/bbox_validator.rb +9 -5
- data/app/models/document/date_range_validator.rb +13 -10
- data/app/models/document/geom_validator.rb +4 -2
- data/app/models/document.rb +15 -7
- data/app/models/element.rb +9 -7
- data/app/models/form_control.rb +2 -0
- data/app/models/form_element.rb +2 -0
- data/app/models/form_feature.rb +2 -0
- data/app/models/form_group.rb +2 -0
- data/app/models/form_header.rb +2 -0
- data/app/models/geoblacklight_admin/schema.rb +5 -2
- data/app/models/geoblacklight_admin.rb +2 -0
- data/app/models/import/csv_duplicates_validator.rb +2 -1
- data/app/models/import/csv_header_validator.rb +2 -1
- data/app/models/import.rb +4 -7
- data/app/models/user.rb +1 -1
- data/app/services/export_csv_service.rb +5 -1
- data/app/views/admin/advanced_search/facets.json.jbuilder +9 -8
- data/app/views/admin/advanced_search/index.json.jbuilder +8 -7
- data/app/views/admin/api/_field.json.jbuilder +1 -1
- data/app/views/admin/api/fetch.json.jbuilder +8 -7
- data/app/views/admin/api/index.json.jbuilder +8 -7
- data/app/views/admin/bookmarks/index.html.erb +2 -2
- data/app/views/admin/bulk_actions/index.html.erb +3 -3
- data/app/views/admin/bulk_actions/show.html.erb +1 -1
- data/app/views/admin/document_accesses/_form.html.erb +1 -1
- data/app/views/admin/document_accesses/destroy_all.html.erb +3 -3
- data/app/views/admin/document_accesses/edit.html.erb +1 -1
- data/app/views/admin/document_accesses/import.html.erb +2 -2
- data/app/views/admin/document_accesses/index.html.erb +9 -9
- data/app/views/admin/document_accesses/new.html.erb +1 -1
- data/app/views/admin/document_downloads/_form.html.erb +1 -1
- data/app/views/admin/document_downloads/destroy_all.html.erb +2 -2
- data/app/views/admin/document_downloads/edit.html.erb +2 -3
- data/app/views/admin/document_downloads/import.html.erb +1 -1
- data/app/views/admin/document_downloads/index.html.erb +9 -9
- data/app/views/admin/document_downloads/new.html.erb +1 -1
- data/app/views/admin/document_downloads/show.html.erb +2 -2
- data/app/views/admin/documents/_document_bookmark.html.erb +1 -1
- data/app/views/admin/documents/_form_nav.html.erb +3 -1
- data/app/views/admin/documents/_json_btaa_aardvark.jbuilder +1 -3
- data/app/views/admin/documents/_json_file.jbuilder +14 -0
- data/app/views/admin/documents/_result_selected_options.html.erb +3 -1
- data/app/views/admin/documents/edit.html.erb +1 -1
- data/app/views/admin/documents/features/_multiple_download_links.html.erb +2 -2
- data/app/views/admin/documents/fetch.json_file.jbuilder +9 -0
- data/app/views/admin/documents/index.html.erb +2 -4
- data/app/views/admin/documents/index.json_file.jbuilder +9 -0
- data/app/views/admin/documents/versions.html.erb +1 -1
- data/app/views/admin/elements/_element.json.jbuilder +4 -1
- data/app/views/admin/elements/_form.html.erb +1 -1
- data/app/views/admin/elements/edit.html.erb +2 -2
- data/app/views/admin/elements/index.html.erb +4 -4
- data/app/views/admin/elements/index.json.jbuilder +2 -0
- data/app/views/admin/elements/new.html.erb +1 -1
- data/app/views/admin/elements/show.html.erb +6 -6
- data/app/views/admin/elements/show.json.jbuilder +2 -0
- data/app/views/admin/form_elements/_form.html.erb +1 -1
- data/app/views/admin/form_elements/_form_element.json.jbuilder +2 -0
- data/app/views/admin/form_elements/edit.html.erb +2 -2
- data/app/views/admin/form_elements/index.html.erb +2 -2
- data/app/views/admin/form_elements/index.json.jbuilder +2 -0
- data/app/views/admin/form_elements/new.html.erb +1 -1
- data/app/views/admin/form_elements/show.html.erb +2 -2
- data/app/views/admin/form_elements/show.json.jbuilder +2 -0
- data/app/views/admin/ids/fetch.json.jbuilder +8 -7
- data/app/views/admin/ids/index.json.jbuilder +3 -2
- data/app/views/admin/import_documents/show.html.haml +1 -1
- data/app/views/admin/imports/_import.json.jbuilder +2 -1
- data/app/views/admin/imports/_show_failed_tab.html.erb +2 -2
- data/app/views/admin/imports/_show_success_tab.html.erb +1 -1
- data/app/views/admin/imports/edit.html.erb +3 -3
- data/app/views/admin/imports/index.html.erb +3 -3
- data/app/views/admin/layouts/application.html.erb +4 -4
- data/app/views/admin/mappings/_form.html.erb +1 -1
- data/app/views/admin/mappings/_mapping.json.jbuilder +2 -1
- data/app/views/admin/mappings/edit.html.erb +2 -2
- data/app/views/admin/mappings/new.html.erb +1 -1
- data/app/views/admin/mappings/show.html.erb +2 -2
- data/app/views/admin/notifications/index.html.erb +3 -3
- data/app/views/admin/search/index.html.erb +2 -2
- data/app/views/admin/shared/_navbar.html.erb +11 -6
- data/app/views/admin/shared/_toast.html.erb +1 -1
- data/app/views/admin/users/index.html.erb +1 -1
- data/app/views/catalog/_show_gbl_admin.html.erb +3 -0
- data/config/locales/documents.en.yml +3 -0
- data/config/routes.rb +37 -33
- data/db/migrate/20230316183001_add_geoblacklight_admin_gem.rb +409 -0
- data/db/seeds.rb +7 -6
- data/db/seeds_elements.csv +56 -55
- data/db/seeds_elements.numbers +0 -0
- data/db/seeds_form_elements.csv +65 -64
- data/db/seeds_form_elements.numbers +0 -0
- data/lib/generators/geoblacklight_admin/config_generator.rb +61 -94
- data/lib/generators/geoblacklight_admin/install_generator.rb +3 -12
- data/lib/generators/geoblacklight_admin/jobs_generator.rb +3 -2
- data/lib/generators/geoblacklight_admin/models_generator.rb +0 -1
- data/lib/generators/geoblacklight_admin/templates/_show_sidebar.html.erb +19 -0
- data/lib/generators/geoblacklight_admin/templates/_user_util_links.html.erb +1 -1
- data/lib/generators/geoblacklight_admin/templates/config/database.yml +9 -5
- data/lib/generators/geoblacklight_admin/templates/config/geomg_aardvark_schema.json +12 -6
- data/lib/generators/geoblacklight_admin/templates/config/initializers/devise.rb +315 -0
- data/lib/generators/geoblacklight_admin/templates/config/initializers/geoblacklight_admin.rb +1 -2
- data/lib/generators/geoblacklight_admin/templates/config/initializers/kithe.rb +2 -0
- data/lib/generators/geoblacklight_admin/templates/config/initializers/mime_types.rb +15 -0
- data/lib/generators/geoblacklight_admin/templates/config/initializers/pagy.rb +152 -68
- data/lib/generators/geoblacklight_admin/templates/config/initializers/simple_form.rb +178 -0
- data/lib/generators/geoblacklight_admin/templates/config/initializers/simple_form_bootstrap.rb +365 -0
- data/lib/generators/geoblacklight_admin/templates/config/settings.yml +293 -0
- data/lib/generators/geoblacklight_admin/templates/javascript/controllers/results_controller.js +10 -0
- data/lib/generators/geoblacklight_admin/templates/package.json +3 -0
- data/lib/generators/geoblacklight_admin/templates/solr/conf/schema.xml +3 -3
- data/lib/generators/geoblacklight_admin/views_generator.rb +2 -3
- data/lib/geoblacklight_admin/engine.rb +5 -6
- data/lib/geoblacklight_admin/version.rb +1 -1
- data/lib/geoblacklight_admin.rb +1 -1
- data/lib/tasks/geoblacklight_admin.rake +15 -11
- metadata +101 -63
- data/.editorconfig +0 -18
- data/.gitignore +0 -75
- data/.standard.yml +0 -4
- data/Gemfile +0 -59
- data/LICENSE +0 -21
- data/app/assets/images/.keep +0 -0
- data/app/controllers/admin/concerns/.keep +0 -0
- data/app/models/bookmark.rb +0 -17
- data/app/models/concerns/.keep +0 -0
- data/db/migrate/20230316183001_add_geoblacklight_admin.rb +0 -399
- data/geoblacklight_admin.gemspec +0 -67
- data/lib/generators/geoblacklight_admin/example_docs_generator.rb +0 -18
- data/lib/generators/geoblacklight_admin/templates/.env.development.example +0 -28
- data/lib/generators/geoblacklight_admin/templates/.solr_wrapper.yml +0 -7
- data/lib/generators/geoblacklight_admin/templates/solr/snapshots/.keep +0 -0
- data/lib/tasks/.keep +0 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -35
- data/template.rb +0 -16
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/confirmations/new.html.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/invitations/edit.html.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/invitations/new.html.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/mailer/invitation_instructions.html.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/mailer/invitation_instructions.text.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/passwords/edit.html.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/passwords/new.html.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/registrations/edit.html.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/registrations/new.html.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/sessions/new.html.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/shared/_links.html.erb +0 -0
- /data/{app/views/admin → lib/generators/geoblacklight_admin/templates}/devise/unlocks/new.html.erb +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f18e2477b4c86505e2db4f96deecdd1cb1c7a3da7e6a5ec914d62cb03d96462f
|
|
4
|
+
data.tar.gz: 65686ca5de9a294a3232e87c9639b0ee4dec85e2eb6f4d858f0dd47da81b3e97
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9a55943084756c68c07211e72de617cf1440f7128912bac6549ffcc95ac51733d2e3d21c165fb8f24acd6dda315c9a316056bda088e5eae65081552c9e6ce302
|
|
7
|
+
data.tar.gz: '090b8cdcac146e2fc720004f923dc73e4cedb3a00c75ea13d90f1ec0c3786b57be9ae65a9d29858e09dea66eb43bfcfbf68b3e0288c5414ff3b0b04bbe41cc92'
|
data/README.md
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
# geoblacklight_admin
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+

|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
GeoBlacklight Admin is a [GeoBlacklight](https://github.com/geoblacklight/geoblacklight) plugin, built on [Kithe](https://github.com/sciencehistory/kithe), that provides a complex web-form for editing documents and an CSV-based import/export workflow for OpenGeoMetadata's [Aardvark schema](https://opengeometadata.org/ogm-aardvark/). GBL Admin is based on the Big Ten Academic Alliance's production workflow tool [GEOMG](https://github.com/geobtaa/geomg).
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
[](https://youtu.be/lWjcr-Ow228 "GeoBlacklight Admin")
|
|
8
8
|
|
|
9
9
|
## Requirements
|
|
10
10
|
|
|
11
|
+
* Rails v6.1 (not v7 yet)
|
|
11
12
|
* Blacklight v7 (not v8)
|
|
12
13
|
* GeoBlacklight v4 (not v3)
|
|
13
14
|
* Solr v8.4+
|
|
@@ -15,38 +16,26 @@ GeoBlacklight Admin is a [GeoBlacklight](https://github.com/geoblacklight/geobla
|
|
|
15
16
|
* Redis (for Sidekiq)
|
|
16
17
|
* OpenGeoMetadata's Aardvark Schema
|
|
17
18
|
|
|
18
|
-
##
|
|
19
|
+
## Installation
|
|
19
20
|
|
|
20
|
-
###
|
|
21
|
-
```bash
|
|
22
|
-
psql postgres
|
|
23
|
-
DROP DATABASE geoblacklight_development;
|
|
24
|
-
CREATE DATABASE geoblacklight_development;
|
|
25
|
-
```
|
|
21
|
+
### PostgreSQL
|
|
26
22
|
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
bundle install
|
|
30
|
-
bundle exec rake engine_cart:generate
|
|
31
|
-
```
|
|
23
|
+
You need a PostgreSQL database to use this project.
|
|
32
24
|
|
|
33
|
-
|
|
25
|
+
* Homebrew: https://wiki.postgresql.org/wiki/Homebrew
|
|
26
|
+
* Docker: https://www.docker.com/blog/how-to-use-the-postgres-docker-official-image/
|
|
34
27
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# Uncomment after app is generated to fix view errors
|
|
39
|
-
# include ::Pagy::Frontend
|
|
40
|
-
```
|
|
28
|
+
### Install Template
|
|
29
|
+
|
|
30
|
+
Use Ruby v3.2 and Rails v6.1.7.4 to bootstrap a new GeoBlacklight + GBL Admin application using the template script:
|
|
41
31
|
|
|
42
|
-
### Terminal 2 - Seed and spin up server
|
|
43
32
|
```bash
|
|
44
|
-
|
|
45
|
-
|
|
33
|
+
rails _6.1.7.4_ new gbl_admin -m https://raw.githubusercontent.com/geobtaa/geoblacklight_admin/develop/template.rb
|
|
34
|
+
cd gbl_admin
|
|
46
35
|
bundle exec rake gbl_admin:server
|
|
47
36
|
```
|
|
48
37
|
|
|
49
|
-
You
|
|
38
|
+
You have now generated the .internal_test_app and populated the Elements / FormElements tables for OMG Aardvark support.
|
|
50
39
|
|
|
51
40
|
### View App in Browser
|
|
52
41
|
|
|
@@ -54,12 +43,48 @@ You're now done generating the test app and populating the Elements / FormElemen
|
|
|
54
43
|
2. Click on the "Sign in" link
|
|
55
44
|
3. Enter email: admin@geoblacklight.org and password: 123456
|
|
56
45
|
4. Click on the "GBL Admin" link
|
|
57
|
-
5. Import some CSV
|
|
46
|
+
5. Import some CSV (test/fixtures/files/btaa_sample_records.csv)
|
|
58
47
|
|
|
59
48
|
-----
|
|
60
49
|
|
|
61
|
-
|
|
50
|
+
## Run Project for Local Development
|
|
51
|
+
Drop and recreate databases (or engine_cart:generate will fail)
|
|
52
|
+
|
|
53
|
+
### Drop/Create application PG database
|
|
54
|
+
```bash
|
|
55
|
+
psql postgres
|
|
56
|
+
DROP DATABASE geoblacklight_development;
|
|
57
|
+
CREATE DATABASE geoblacklight_development;
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
cd project root
|
|
62
|
+
bundle install
|
|
63
|
+
bundle exec rake engine_cart:regenerate
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Run Solr
|
|
67
|
+
```bash
|
|
68
|
+
bin/rails geoblacklight:solr
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Run App
|
|
72
|
+
```bash
|
|
73
|
+
cd .internal_test_app
|
|
74
|
+
bundle exec rails server
|
|
75
|
+
```
|
|
62
76
|
|
|
77
|
+
### Lint App
|
|
78
|
+
```bash
|
|
79
|
+
standardrb .
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Test App
|
|
83
|
+
```bash
|
|
84
|
+
RAILS_ENV=test bundle exec rails test
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## TODOs
|
|
63
88
|
* ~~SolrWrapper - Add persist option~~
|
|
64
89
|
* ~~BlacklightApi returns not auth'd message (not requiring auth for now (not sensitive data))~~
|
|
65
90
|
* ~~Facet links need /admin nesting~~
|
|
@@ -72,13 +97,11 @@ You're now done generating the test app and populating the Elements / FormElemen
|
|
|
72
97
|
* ~~Add GBL Admin link to nav~~
|
|
73
98
|
* ~~Routes - Get devise user~~
|
|
74
99
|
* ~~No route matches [GET] "/users/sign_out"~~
|
|
75
|
-
* Bookmarks need to be Admin::Bookmarks
|
|
100
|
+
* ~~Bookmarks need to be Admin::Bookmarks~~
|
|
101
|
+
* ~~GitHub Actions / CI integration~~
|
|
102
|
+
* ~~Port the GEOMG test suite~~
|
|
103
|
+
* ~~Project gem dependency injection redundancy...~~
|
|
104
|
+
* DRY up Engine routing
|
|
76
105
|
* Remove legacy GEOMG / B1G everywhere...
|
|
77
106
|
* Send GBLADMIN JavaScript pack to NPM like Blacklight
|
|
78
|
-
*
|
|
79
|
-
* GitHub Actions / CI integration
|
|
80
|
-
* Project gem dependency injection redundancy...
|
|
81
|
-
* Likely a lot more polish to be uncovered...
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
107
|
+
* Likely some more polish to be uncovered...
|
data/Rakefile
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "rubygems"
|
|
3
4
|
require "rails"
|
|
4
|
-
begin
|
|
5
|
-
require "bundler/setup"
|
|
6
|
-
require "bundler/gem_tasks"
|
|
7
|
-
rescue LoadError
|
|
8
|
-
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
|
9
|
-
end
|
|
10
5
|
|
|
11
|
-
|
|
6
|
+
require "bundler/setup"
|
|
7
|
+
|
|
8
|
+
# Not using test/dummy app; using engine_cart
|
|
9
|
+
# APP_RAKEFILE = File.expand_path(".internal_test_app/Rakefile", __dir__) if
|
|
10
|
+
# load "rails/tasks/engine.rake"
|
|
11
|
+
|
|
12
|
+
load "rails/tasks/statistics.rake"
|
|
13
|
+
|
|
14
|
+
require "bundler/gem_tasks"
|
|
12
15
|
|
|
13
16
|
require "solr_wrapper"
|
|
14
17
|
|
|
@@ -21,20 +24,48 @@ RuboCop::RakeTask.new(:rubocop)
|
|
|
21
24
|
require "solr_wrapper/rake_task"
|
|
22
25
|
require "engine_cart/rake_task"
|
|
23
26
|
require "geoblacklight_admin/version"
|
|
27
|
+
require "rake/testtask"
|
|
28
|
+
|
|
29
|
+
# Searches for files ending in _test.rb in the test directory
|
|
30
|
+
Rake::TestTask.new do |t|
|
|
31
|
+
t.libs << "lib"
|
|
32
|
+
t.libs << "test"
|
|
33
|
+
t.pattern = "test/**/*_test.rb"
|
|
34
|
+
t.verbose = true
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Will use test as defaut task if rake is run by itself
|
|
38
|
+
task default: :test
|
|
24
39
|
|
|
25
40
|
desc "Run test suite"
|
|
26
|
-
task ci: ["
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
41
|
+
task ci: ["geoblacklight:generate"] do
|
|
42
|
+
within_test_app do
|
|
43
|
+
system "RAILS_ENV=test bin/rails db:migrate"
|
|
44
|
+
system "RAILS_ENV=test rake db:seed"
|
|
45
|
+
system "RAILS_ENV=test rails webpacker:compile"
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Run RSpec tests with Coverage
|
|
49
|
+
Rake::Task["geoblacklight:coverage"].invoke
|
|
30
50
|
end
|
|
31
51
|
|
|
32
52
|
namespace :geoblacklight do
|
|
53
|
+
desc "Run tests with coverage"
|
|
54
|
+
task :coverage do
|
|
55
|
+
ENV["COVERAGE"] = "true"
|
|
56
|
+
# Rake::Task["spec"].invoke
|
|
57
|
+
Rake::Task["test"].invoke
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
desc "Create the test rails app"
|
|
61
|
+
task generate: ["engine_cart:generate"] do
|
|
62
|
+
# Intentionally Empty Block
|
|
63
|
+
end
|
|
64
|
+
|
|
33
65
|
namespace :internal do
|
|
34
66
|
task seed: ["engine_cart:generate"] do
|
|
35
67
|
within_test_app do
|
|
36
|
-
|
|
37
|
-
# system "bundle exec rake gbl_admin:seed"
|
|
68
|
+
system "bundle exec rake db:seed"
|
|
38
69
|
system "bundle exec rake geoblacklight:downloads:mkdir"
|
|
39
70
|
end
|
|
40
71
|
end
|
|
@@ -51,7 +82,9 @@ namespace :geoblacklight do
|
|
|
51
82
|
end
|
|
52
83
|
|
|
53
84
|
SolrWrapper.wrap(port: "8983") do |solr|
|
|
54
|
-
solr.with_collection(name: "blacklight-core",
|
|
85
|
+
solr.with_collection(name: "blacklight-core",
|
|
86
|
+
dir: File.join(File.expand_path(".", File.dirname(__FILE__)),
|
|
87
|
+
"solr", "conf")) do
|
|
55
88
|
Rake::Task["geoblacklight:internal:seed"].invoke
|
|
56
89
|
|
|
57
90
|
within_test_app do
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
// Modules
|
|
20
20
|
@import "modules/autocomplete";
|
|
21
21
|
@import "modules/blazer";
|
|
22
|
+
@import "modules/chosen";
|
|
22
23
|
@import "modules/code";
|
|
23
24
|
@import "modules/datepicker";
|
|
24
25
|
@import "modules/elements";
|
|
@@ -44,4 +45,8 @@ footer {
|
|
|
44
45
|
|
|
45
46
|
div.container-fluid {
|
|
46
47
|
margin-top: 5rem;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.navbar-brand.gbl-admin {
|
|
51
|
+
background: none;
|
|
47
52
|
}
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
$chosen-sprite: image-url('chosen-sprite.png') !default;
|
|
2
|
+
$chosen-sprite-retina: image-url('chosen-sprite@2x.png') !default;
|
|
3
|
+
|
|
4
|
+
/* @group Base */
|
|
5
|
+
.chosen-container {
|
|
6
|
+
position: relative;
|
|
7
|
+
display: inline-block;
|
|
8
|
+
vertical-align: middle;
|
|
9
|
+
font-size: 13px;
|
|
10
|
+
user-select: none;
|
|
11
|
+
* {
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
}
|
|
14
|
+
.chosen-drop {
|
|
15
|
+
position: absolute;
|
|
16
|
+
top: 100%;
|
|
17
|
+
z-index: 1010;
|
|
18
|
+
width: 100%;
|
|
19
|
+
border: 1px solid #aaa;
|
|
20
|
+
border-top: 0;
|
|
21
|
+
background: #fff;
|
|
22
|
+
box-shadow: 0 4px 5px rgba(#000,.15);
|
|
23
|
+
clip: rect(0,0,0,0);
|
|
24
|
+
clip-path: inset(100% 100%);
|
|
25
|
+
}
|
|
26
|
+
&.chosen-with-drop .chosen-drop {
|
|
27
|
+
clip: auto;
|
|
28
|
+
clip-path: none;
|
|
29
|
+
}
|
|
30
|
+
a{
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.search-choice, .chosen-single{
|
|
35
|
+
.group-name{
|
|
36
|
+
margin-right: 4px;
|
|
37
|
+
overflow: hidden;
|
|
38
|
+
white-space: nowrap;
|
|
39
|
+
text-overflow: ellipsis;
|
|
40
|
+
font-weight: normal;
|
|
41
|
+
color: #999999;
|
|
42
|
+
&:after {
|
|
43
|
+
content: ":";
|
|
44
|
+
padding-left: 2px;
|
|
45
|
+
vertical-align: top;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/* @end */
|
|
51
|
+
|
|
52
|
+
/* @group Single Chosen */
|
|
53
|
+
.chosen-container-single{
|
|
54
|
+
.chosen-single {
|
|
55
|
+
position: relative;
|
|
56
|
+
display: block;
|
|
57
|
+
overflow: hidden;
|
|
58
|
+
padding: 0 0 0 8px;
|
|
59
|
+
height: 25px;
|
|
60
|
+
border: 1px solid #aaa;
|
|
61
|
+
border-radius: 5px;
|
|
62
|
+
background-color: #fff;
|
|
63
|
+
background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
|
|
64
|
+
background-clip: padding-box;
|
|
65
|
+
box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(#000,.1);
|
|
66
|
+
color: #444;
|
|
67
|
+
text-decoration: none;
|
|
68
|
+
white-space: nowrap;
|
|
69
|
+
line-height: 24px;
|
|
70
|
+
}
|
|
71
|
+
.chosen-default {
|
|
72
|
+
color: #999;
|
|
73
|
+
}
|
|
74
|
+
.chosen-single span {
|
|
75
|
+
display: block;
|
|
76
|
+
overflow: hidden;
|
|
77
|
+
margin-right: 26px;
|
|
78
|
+
text-overflow: ellipsis;
|
|
79
|
+
white-space: nowrap;
|
|
80
|
+
}
|
|
81
|
+
.chosen-single-with-deselect span {
|
|
82
|
+
margin-right: 38px;
|
|
83
|
+
}
|
|
84
|
+
.chosen-single abbr {
|
|
85
|
+
position: absolute;
|
|
86
|
+
top: 6px;
|
|
87
|
+
right: 26px;
|
|
88
|
+
display: block;
|
|
89
|
+
width: 12px;
|
|
90
|
+
height: 12px;
|
|
91
|
+
background: $chosen-sprite -42px 1px no-repeat;
|
|
92
|
+
font-size: 1px;
|
|
93
|
+
&:hover {
|
|
94
|
+
background-position: -42px -10px;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
&.chosen-disabled .chosen-single abbr:hover {
|
|
98
|
+
background-position: -42px -10px;
|
|
99
|
+
}
|
|
100
|
+
.chosen-single div {
|
|
101
|
+
position: absolute;
|
|
102
|
+
top: 0;
|
|
103
|
+
right: 0;
|
|
104
|
+
display: block;
|
|
105
|
+
width: 18px;
|
|
106
|
+
height: 100%;
|
|
107
|
+
b {
|
|
108
|
+
display: block;
|
|
109
|
+
width: 100%;
|
|
110
|
+
height: 100%;
|
|
111
|
+
background: $chosen-sprite no-repeat 0px 2px;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
.chosen-search {
|
|
115
|
+
position: relative;
|
|
116
|
+
z-index: 1010;
|
|
117
|
+
margin: 0;
|
|
118
|
+
padding: 3px 4px;
|
|
119
|
+
white-space: nowrap;
|
|
120
|
+
|
|
121
|
+
input[type="text"] {
|
|
122
|
+
margin: 1px 0;
|
|
123
|
+
padding: 4px 20px 4px 5px;
|
|
124
|
+
width: 100%;
|
|
125
|
+
height: auto;
|
|
126
|
+
outline: 0;
|
|
127
|
+
border: 1px solid #aaa;
|
|
128
|
+
background: $chosen-sprite no-repeat 100% -20px;
|
|
129
|
+
font-size: 1em;
|
|
130
|
+
font-family: sans-serif;
|
|
131
|
+
line-height: normal;
|
|
132
|
+
border-radius: 0;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
.chosen-drop {
|
|
136
|
+
margin-top: -1px;
|
|
137
|
+
border-radius: 0 0 4px 4px;
|
|
138
|
+
background-clip: padding-box;
|
|
139
|
+
}
|
|
140
|
+
&.chosen-container-single-nosearch .chosen-search {
|
|
141
|
+
position: absolute;
|
|
142
|
+
clip: rect(0,0,0,0);
|
|
143
|
+
clip-path: inset(100% 100%);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/* @end */
|
|
147
|
+
|
|
148
|
+
/* @group Results */
|
|
149
|
+
.chosen-container .chosen-results {
|
|
150
|
+
color: #444;
|
|
151
|
+
position: relative;
|
|
152
|
+
overflow-x: hidden;
|
|
153
|
+
overflow-y: auto;
|
|
154
|
+
margin: 0 4px 4px 0;
|
|
155
|
+
padding: 0 0 0 4px;
|
|
156
|
+
max-height: 240px;
|
|
157
|
+
-webkit-overflow-scrolling: touch;
|
|
158
|
+
li {
|
|
159
|
+
display: none;
|
|
160
|
+
margin: 0;
|
|
161
|
+
padding: 5px 6px;
|
|
162
|
+
list-style: none;
|
|
163
|
+
line-height: 15px;
|
|
164
|
+
word-wrap: break-word;
|
|
165
|
+
-webkit-touch-callout: none;
|
|
166
|
+
&.active-result {
|
|
167
|
+
display: list-item;
|
|
168
|
+
cursor: pointer;
|
|
169
|
+
}
|
|
170
|
+
&.disabled-result {
|
|
171
|
+
display: list-item;
|
|
172
|
+
color: #ccc;
|
|
173
|
+
cursor: default;
|
|
174
|
+
}
|
|
175
|
+
&.highlighted {
|
|
176
|
+
background-color: #3875d7;
|
|
177
|
+
background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
|
|
178
|
+
color: #fff;
|
|
179
|
+
}
|
|
180
|
+
&.no-results {
|
|
181
|
+
color: #777;
|
|
182
|
+
display: list-item;
|
|
183
|
+
background: #f4f4f4;
|
|
184
|
+
}
|
|
185
|
+
&.group-result {
|
|
186
|
+
display: list-item;
|
|
187
|
+
font-weight: bold;
|
|
188
|
+
cursor: default;
|
|
189
|
+
}
|
|
190
|
+
&.group-option {
|
|
191
|
+
padding-left: 15px;
|
|
192
|
+
}
|
|
193
|
+
em {
|
|
194
|
+
font-style: normal;
|
|
195
|
+
text-decoration: underline;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/* @end */
|
|
200
|
+
|
|
201
|
+
/* @group Multi Chosen */
|
|
202
|
+
.chosen-container-multi{
|
|
203
|
+
.chosen-choices {
|
|
204
|
+
position: relative;
|
|
205
|
+
overflow: hidden;
|
|
206
|
+
margin: 0;
|
|
207
|
+
padding: 0 5px;
|
|
208
|
+
width: 100%;
|
|
209
|
+
height: auto;
|
|
210
|
+
border: 1px solid #aaa;
|
|
211
|
+
background-color: #fff;
|
|
212
|
+
background-image: linear-gradient(#eee 1%, #fff 15%);
|
|
213
|
+
cursor: text;
|
|
214
|
+
}
|
|
215
|
+
.chosen-choices li {
|
|
216
|
+
float: left;
|
|
217
|
+
list-style: none;
|
|
218
|
+
&.search-field {
|
|
219
|
+
margin: 0;
|
|
220
|
+
padding: 0;
|
|
221
|
+
white-space: nowrap;
|
|
222
|
+
input[type="text"] {
|
|
223
|
+
margin: 1px 0;
|
|
224
|
+
padding: 0;
|
|
225
|
+
height: 25px;
|
|
226
|
+
outline: 0;
|
|
227
|
+
border: 0 !important;
|
|
228
|
+
background: transparent !important;
|
|
229
|
+
box-shadow: none;
|
|
230
|
+
color: #999;
|
|
231
|
+
font-size: 100%;
|
|
232
|
+
font-family: sans-serif;
|
|
233
|
+
line-height: normal;
|
|
234
|
+
border-radius: 0;
|
|
235
|
+
width: 25px;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
&.search-choice {
|
|
239
|
+
position: relative;
|
|
240
|
+
margin: 3px 5px 3px 0;
|
|
241
|
+
padding: 3px 20px 3px 5px;
|
|
242
|
+
border: 1px solid #aaa;
|
|
243
|
+
max-width: 100%;
|
|
244
|
+
border-radius: 3px;
|
|
245
|
+
background-color: #eeeeee;
|
|
246
|
+
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
|
|
247
|
+
background-size: 100% 19px;
|
|
248
|
+
background-repeat: repeat-x;
|
|
249
|
+
background-clip: padding-box;
|
|
250
|
+
box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(#000,.05);
|
|
251
|
+
color: #333;
|
|
252
|
+
line-height: 13px;
|
|
253
|
+
cursor: default;
|
|
254
|
+
span {
|
|
255
|
+
word-wrap: break-word;
|
|
256
|
+
}
|
|
257
|
+
.search-choice-close {
|
|
258
|
+
position: absolute;
|
|
259
|
+
top: 4px;
|
|
260
|
+
right: 3px;
|
|
261
|
+
display: block;
|
|
262
|
+
width: 12px;
|
|
263
|
+
height: 12px;
|
|
264
|
+
background: $chosen-sprite -42px 1px no-repeat;
|
|
265
|
+
font-size: 1px;
|
|
266
|
+
&:hover {
|
|
267
|
+
background-position: -42px -10px;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
&.search-choice-disabled {
|
|
272
|
+
padding-right: 5px;
|
|
273
|
+
border: 1px solid #ccc;
|
|
274
|
+
background-color: #e4e4e4;
|
|
275
|
+
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
|
|
276
|
+
color: #666;
|
|
277
|
+
}
|
|
278
|
+
&.search-choice-focus {
|
|
279
|
+
background: #d4d4d4;
|
|
280
|
+
.search-choice-close {
|
|
281
|
+
background-position: -42px -10px;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
.chosen-results {
|
|
286
|
+
margin: 0;
|
|
287
|
+
padding: 0;
|
|
288
|
+
}
|
|
289
|
+
.chosen-drop .result-selected {
|
|
290
|
+
display: list-item;
|
|
291
|
+
color: #ccc;
|
|
292
|
+
cursor: default;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/* @end */
|
|
296
|
+
|
|
297
|
+
/* @group Active */
|
|
298
|
+
.chosen-container-active{
|
|
299
|
+
.chosen-single {
|
|
300
|
+
border: 1px solid #5897fb;
|
|
301
|
+
box-shadow: 0 0 5px rgba(#000,.3);
|
|
302
|
+
}
|
|
303
|
+
&.chosen-with-drop{
|
|
304
|
+
.chosen-single {
|
|
305
|
+
border: 1px solid #aaa;
|
|
306
|
+
-moz-border-radius-bottomright: 0;
|
|
307
|
+
border-bottom-right-radius: 0;
|
|
308
|
+
-moz-border-radius-bottomleft: 0;
|
|
309
|
+
border-bottom-left-radius: 0;
|
|
310
|
+
background-image: linear-gradient(#eee 20%, #fff 80%);
|
|
311
|
+
box-shadow: 0 1px 0 #fff inset;
|
|
312
|
+
}
|
|
313
|
+
.chosen-single div {
|
|
314
|
+
border-left: none;
|
|
315
|
+
background: transparent;
|
|
316
|
+
b {
|
|
317
|
+
background-position: -18px 2px;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
.chosen-choices {
|
|
322
|
+
border: 1px solid #5897fb;
|
|
323
|
+
box-shadow: 0 0 5px rgba(#000,.3);
|
|
324
|
+
li.search-field input[type="text"] {
|
|
325
|
+
color: #222 !important;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
/* @end */
|
|
330
|
+
|
|
331
|
+
/* @group Disabled Support */
|
|
332
|
+
.chosen-disabled {
|
|
333
|
+
opacity: 0.5 !important;
|
|
334
|
+
cursor: default;
|
|
335
|
+
.chosen-single {
|
|
336
|
+
cursor: default;
|
|
337
|
+
}
|
|
338
|
+
.chosen-choices .search-choice .search-choice-close {
|
|
339
|
+
cursor: default;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/* @end */
|
|
343
|
+
|
|
344
|
+
/* @group Right to Left */
|
|
345
|
+
.chosen-rtl {
|
|
346
|
+
text-align: right;
|
|
347
|
+
.chosen-single {
|
|
348
|
+
overflow: visible;
|
|
349
|
+
padding: 0 8px 0 0;
|
|
350
|
+
}
|
|
351
|
+
.chosen-single span {
|
|
352
|
+
margin-right: 0;
|
|
353
|
+
margin-left: 26px;
|
|
354
|
+
direction: rtl;
|
|
355
|
+
}
|
|
356
|
+
.chosen-single-with-deselect span {
|
|
357
|
+
margin-left: 38px;
|
|
358
|
+
}
|
|
359
|
+
.chosen-single div {
|
|
360
|
+
right: auto;
|
|
361
|
+
left: 3px;
|
|
362
|
+
}
|
|
363
|
+
.chosen-single abbr {
|
|
364
|
+
right: auto;
|
|
365
|
+
left: 26px;
|
|
366
|
+
}
|
|
367
|
+
.chosen-choices li {
|
|
368
|
+
float: right;
|
|
369
|
+
&.search-field input[type="text"] {
|
|
370
|
+
direction: rtl;
|
|
371
|
+
}
|
|
372
|
+
&.search-choice {
|
|
373
|
+
margin: 3px 5px 3px 0;
|
|
374
|
+
padding: 3px 5px 3px 19px;
|
|
375
|
+
.search-choice-close {
|
|
376
|
+
right: auto;
|
|
377
|
+
left: 4px;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
&.chosen-container-single .chosen-results {
|
|
382
|
+
margin: 0 0 4px 4px;
|
|
383
|
+
padding: 0 4px 0 0;
|
|
384
|
+
}
|
|
385
|
+
.chosen-results li.group-option {
|
|
386
|
+
padding-right: 15px;
|
|
387
|
+
padding-left: 0;
|
|
388
|
+
}
|
|
389
|
+
&.chosen-container-active.chosen-with-drop .chosen-single div {
|
|
390
|
+
border-right: none;
|
|
391
|
+
}
|
|
392
|
+
.chosen-search input[type="text"] {
|
|
393
|
+
padding: 4px 5px 4px 20px;
|
|
394
|
+
background: $chosen-sprite no-repeat -30px -20px;
|
|
395
|
+
direction: rtl;
|
|
396
|
+
}
|
|
397
|
+
&.chosen-container-single{
|
|
398
|
+
.chosen-single div b {
|
|
399
|
+
background-position: 6px 2px;
|
|
400
|
+
}
|
|
401
|
+
&.chosen-with-drop{
|
|
402
|
+
.chosen-single div b {
|
|
403
|
+
background-position: -12px 2px;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/* @end */
|
|
410
|
+
|
|
411
|
+
/* @group Retina compatibility */
|
|
412
|
+
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) {
|
|
413
|
+
.chosen-rtl .chosen-search input[type="text"],
|
|
414
|
+
.chosen-container-single .chosen-single abbr,
|
|
415
|
+
.chosen-container-single .chosen-single div b,
|
|
416
|
+
.chosen-container-single .chosen-search input[type="text"],
|
|
417
|
+
.chosen-container-multi .chosen-choices .search-choice .search-choice-close,
|
|
418
|
+
.chosen-container .chosen-results-scroll-down span,
|
|
419
|
+
.chosen-container .chosen-results-scroll-up span {
|
|
420
|
+
background-image: $chosen-sprite-retina !important;
|
|
421
|
+
background-size: 52px 37px !important;
|
|
422
|
+
background-repeat: no-repeat !important;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
/* @end */
|