Mirador @ SUL
Installation
After cloning the repository, install the dependencies:
$ bundle install
Running the tests
$ bundle exec rake ci
Running the server
$ rails s
Stanford's official Mirador-as-a-service.
This may be a stub ticket to be linked to one or more SW tickets.
As a researcher I want to more easily find and open - Mirador - images that I find in SearchWorks so that I can more immediately start analyzing, comparing and annotating them for research and teaching.
This may be broken into a handful of stories, for example:
This would need design by @jvine
We need to pull in the font from gh-pages for the branding in the Rails app
Font: Yanone Kaffeesatz
Found in Google Fonts. https://fonts.google.com/specimen/Yanone+Kaffeesatz
E.g. <link href="http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz:300,200" rel="stylesheet" type="text/css">
Right now some views show the div#notice
while others don't. We need to make it available at the header and use it as well when saving the workspace to provide some user feedback.
Now we have a description field to show when not empty.
See design: #2
The deploys of master
are failing...
rake stderr: rake aborted!
Bundler::GemRequireError: There was an error while trying to load the gem 'bootstrap'.
Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
Backtrace for gem load error is:
/opt/app/mirador/mirador_sul/shared/bundle/ruby/2.4.0/gems/execjs-2.7.0/lib/execjs/runtimes.rb:58:in `autodetect'
As a faculty member I want to easily open my personal collection of images in Mirador fro cloud image hosting providers so that I can take full advantage of the power of Mirador on images that may not be in, or appropriate for the SDR.
it would be cool if, for demo purposes, we could have a small web app that allowed a user to point to a Box or Flickr folder and then open all images in Mirador.
Jack has raised the long-term sustainability challenge given that Shimmy downloads the files locally and we don't want to locally host someones 40,000 image flickr collection. Is this valuable as a short term or more protected demonstration of capability / pilot with faculty / grad students?
Note: We want to experiment with a max-width on the mirador load-window.
We should still address the questions in #12 but here's a proposal for implementing bookmarking:
saveController.currentConfig
and we can reinitialize Mirador from thatsetTimeout
with 1000
worked for me). We could either add a delay, or add an event in Mirador for when internationalization is done or around that (then subscribe to myMiradorInstance.eventEmitter.eventname
I think to add the click handler)update
route of the workspace to save the serialized state. When a user views that workspace, Mirador is initialized with the saved state as the initialConfig
Add a page that will list the collections for the current user.
From this page a user should be able to:
(note, this is a nice to have
for the April 12th demo)
See #79 (comment) for context
Is it only drag and drop + url pasting? Where does this happen? How do they make collections from items that are already somewhere in another collection on the same account?
This is opposed to creating a new "workspace" from a collection.
Possible behaviours (would like to hear @versae's views on this):
This is a view that allows basic CRUD operations on workspaces attached to a collection.
This could initially be done as a partial included in the single collection/collection management view.
This could be right justified near the Logout link.
Any opinion on My Collections
vs simply Collections
?
For the May event, we only need to support local logins.
The response I've been imagining, for the prototype phase at least, is that the underlying collection has that object added to it as well, and would be visible on the collection page, as well as any workspaces using that collection.
Any previously saved workspace for that collection would have that new manifest available to it through the item/manifest picker view, though all its other previously saved state would remain the same.
/collections
Are they:
I think there are tradeoffs here. In particular I think 3 creates a number of technical and user communication difficulties, especially when related to the question of what happens when a user adds an object to an open workspace through drag and drop. I think, mostly for technical but also for conceptual/design clarity reasons, that we settled on new workspaces only being able to be created "off of" an existing collection, since objects cannot be removed from the mirador workspace from inside mirador.
Noticing some style violations creep their way into the codebase. We should hook rubocop to fail the build so we don't continue to introduce more.
Currently the save function is wrapped in a timeout (to allow Mirador to load?).
In Mirador 2.4.0, an event was exposed that we can attach ourselves to in order to add the save button click behavior.
See the table of contents.
We will need to have some way to associate these objects with a particular user (given that we don't have public/private yet).
Second time is the charm.
@efahy has thought somewhat about this - needs more details.
When deleting a collection, we get a 500 server error. We may need to use the has_many ... dependent: ...
call in the collections model.
See below
[mirador_sul/production] ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: update or delete on table "collections" violates foreign key constraint "fk_rails_0f16b7366a" on table "workspaces"DETAIL: Key (id)=(1) is still referenced from table "workspaces".: DELETE FROM "collections" WHERE "collections"."id" = $1
line 49 of [PROJECT_ROOT]/app/controllers/collections_controller.rb: destroy
This will be a thin wrapper around the mirador instance/markup.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.