geoblacklight_admin
GeoBlacklight Admin is a GeoBlacklight plugin, built on Kithe, that provides a complex web-form for editing documents and an CSV-based import/export workflow for OpenGeoMetadata's Aardvark schema. GBL Admin is based on the Big Ten Academic Alliance's production workflow tool GEOMG.
Requirements
- Rails v6.1 (not v7 yet)
- Blacklight v7 (not v8)
- GeoBlacklight v4 (not v3)
- Solr v8.4+
- PostgreSQL (not MySQL-based DBs)
- Redis (for Sidekiq)
- OpenGeoMetadata's Aardvark Schema
Installation
PostgreSQL
You need a PostgreSQL database to use this project.
- Homebrew: https://wiki.postgresql.org/wiki/Homebrew
- Docker: https://www.docker.com/blog/how-to-use-the-postgres-docker-official-image/
Install Template
Use Ruby v3.2 and Rails v6.1.7.4 to bootstrap a new GeoBlacklight + GBL Admin application using the template script:
rails _6.1.7.4_ new gbl_admin -m https://raw.githubusercontent.com/geobtaa/geoblacklight_admin/develop/template.rb
cd gbl_admin
bundle exec rake gbl_admin:server
You have now generated the .internal_test_app and populated the Elements / FormElements tables for OMG Aardvark support.
View App in Browser
- Visit http://localhost:3000/admin
- Click on the "Sign in" link
- Enter email: admin@geoblacklight.org and password: 123456
- Click on the "GBL Admin" link
- Import some CSV (test/fixtures/files/btaa_sample_records.csv)
Run Project for Local Development
Drop and recreate databases (or engine_cart:generate will fail)
Drop/Create application PG database
psql postgres
DROP DATABASE geoblacklight_development;
CREATE DATABASE geoblacklight_development;
cd project root
bundle install
bundle exec rake engine_cart:regenerate
Run Solr
bin/rails geoblacklight:solr
Run App
cd .internal_test_app
bundle exec rails server
Lint App
standardrb .
Test App
RAILS_ENV=test bundle exec rails test
TODOs
SolrWrapper - Add persist optionBlacklightApi returns not auth'd message (not requiring auth for now (not sensitive data))Facet links need /admin nestingImports#new -- undefined method `imports_path'Elements#index -- undefined method `element_path'Imports#new -- cannot upload filesImport#run -- doesn't fireDocuments - JS actions not workingGBL needs to honor publication stateAdd GBL Admin link to navRoutes - Get devise userNo route matches [GET] "/users/sign_out"Bookmarks need to be Admin::BookmarksGitHub Actions / CI integrationPort the GEOMG test suiteProject gem dependency injection redundancy...- DRY up Engine routing
- Remove legacy GEOMG / B1G everywhere...
- Send GBLADMIN JavaScript pack to NPM like Blacklight
- Likely some more polish to be uncovered...