This tool is a standalone tool from the BUDA platform that allows users to reorder images from a volume and indicate sections and pagination.
See
To run locally, first install the dependencies if not done:
yarn install
then
yarn start
BUDA volume manifest editing tool
This tool is a standalone tool from the BUDA platform that allows users to reorder images from a volume and indicate sections and pagination.
See
To run locally, first install the dependencies if not done:
yarn install
then
yarn start
when selecting simple pagination (not folio) for a volume, setting a pagination to 1 and trying to predict the subsequent ones doesn't work, with an error in the console
On larger screens, the UI block that gets stretched is the one with the tags, but it should be the preview instead. Or perhaps it should just be larger by default, perhaps something like 500px instead of 300
with https://addyosmani.com/blog/react-window/ or something similar
When the bdrcscanrequest tag is selected, "hide" should also be selected (it can be deselected manually). Also, when looking at the data of the volume, the tool should detect scan request images automatically and tag them by default (and thus also hide them)
instead of the 2 types of duplicates that the bvmt can handle, it would be useful to have the following 4:
This is a major feature for the UI of v2. The idea is that pages can be grouped by either:
In both grouped cases, the grouping is horizontal in the UI, two cards are displayed on the same line. There are two purposes to this:
This means that for drag and drop and for automatic reordering of pages, the whole group should be considered instead of individual pages.
This feature is an "insert missing before" button that would appear at each place where there is a gap in the pagination. It would appear in the form of a red box asking users to select one of the following:
In the first two cases it adds all the missing images with the relevant tag (either missing from tag or from artefact tag) and automatically fills the pagination.
In the third case it doesn't add anything in the image list, but marks the error as resolved (in a box that becomes green instead of red). In that case the information should be kept in appData
of the manifest, so that the error doesn't appear the next time.
Once the pagination of an image has been validated, the preview doesn't need to appear anymore by default (but it should still be available when clicking on a button)
Now that the main features work well (thanks!), here's a list of less critical improvements:
validate()
for each type of pagination already in the prediction js file)I think it shouldn't be in the normal list of tags in the json file because it has a special feature: there can be only one per volume. Other than than it can be with the other tags in the UI. I think the behavior should be that if there's already a thumbnail and the user tags an image as being the thumbnail, it removes the first tag (silently).
I just got an epiphany: for areas with very low bandwidth (which is an important part of the target audience), it would be nice to have a button (in the little viewer box) to use grayscale images, so that the images load faster (there's a iiif option to request grayscale).
Note that it shouldn't be the default because we also have a lot of binary images that would be much bigger in grayscale. If there's an easy way to detect images that are color images and have the button only appear in that case (and be the default) that's perfect, but it's probably more dev...
There should be a way to indicate that a color should be:
The best would be a little icon that would default to bitonal and that when clicked would have:
It would be represented in the data as a new tag for each image (just like the other tags), and for the volume with a new volume-default-quality
tag in the appdata
.
The set default for volume would change all following un-reviewed images
Here's a list of changes in the data structure (exemplified in the manifest-simple.js
file) that I think make it more coherent and easier to work with:
viewing-direction
with 3 values: top-to-bottom
(default), left-to-right
and right-to-left
status
with 3 values: editing
(default), released
and withdrawn
@value
and @language
), and almost all string fields (except the section titles I think) must be arrays, even if there's just one string. Because each string must have a language, it would be nice to have a dropdown list of languages that the user can choose from (it can be just English and Tibetan for now) on each string field.duplicate-of
, etc. fields, the various types of duplicate, details, etc. are now tags, and there's just one of
field. The tags that necessitate an of
field are indicated in the tags.json
filepagination
object has changed but is more simple nowpagination
field in the image list also changed, but should be easier to work with, its keys are the id
s of the main pagination
objectappData
object that's not checked by the APIname
s and image info indication
s) can be kept in the appData
(and should be Tibetan by default)type
field of the main pagination object should be one of the values of the pagination_types
object in pagination-predictions.js
(there are just two values for now)The API should now be working (some checks are commented to ease testing), you can send it any test data you need, I'll remove it later.
The main feature that is missing other than the new data organization is the automatic reordering which should be relatively easy with the new code. Don't hesitate to ask any question!
Right now UI seems to lag a bit with longer lists. Look to use Pure Components, etc
This is the biggest change for v2: the app should be installable locally. The changes when the app is local are:
bvm.json
file in the folderSupport for Windows 10 Home edition is ok
it's only relevant when there's a modification that's being made, but it's very important that it's highlighted in these cases, otherwise users won't understand they need to click it
There's no notion of ID in the manifests (it was envisionned at some point but then abandonned). I don't know if the ids are necessary for the UI but in any case, they should be regenerated when opening an existing manifest
The app should be able to write a json file with user preferences in the user directory of the machine. The information should have:
{
"for-bvmt-version": "0.1.0",
"user": {
"gender": "F/M",
"younger-than-18": false,
"DPE": "any string",
"FR": "any string"
},
"default-program-info": {
"context of discovery": "any string",
"digitization-setting": "any string",
"region digitized": "Central/Kham/Amdo",
"digitized-location-address": "any string",
"context-of-discovery": "any string"
},
"recently-opened-folders": [
"/path/to/folder1",
"/path/to/folder2"
]
}
and any other info necessary. See issue about bibliosheet for more on these values.
The app should read a URL (to be determined) that is a json file having some information about the latest version of the app. If it doesn't match with the current version, the app should point the user to the download page of the latest version. It might be that the github API is enough for this feature.
We should show all file names, even if they aren't rendered to the screen yet. This is a problem after implementing infinite scroll
This is a feature that would be present both online and locally. What I call "image list" is:
This feature is that an action (a button or just every time a manifest is open) triggers the app to fetch the image list (through an API online or by scanning the files locally). The the app compares the images present in the manifest with the images present in the image list. Then:
"error": "not-in-image-list"
We could have some improvements on the top part:
Let's make the following changes for the screencast demo:
there should be a new field in all the image cards, called rotation. This should have a few constraints:
!
, followed by an integer between 0 and 360once a value is selected, the preview of the image on the left should be adjusted (perhaps?)
There should be two new buttons in the preview menu (the three dots in the corner of the image):
When clicked, the preview is split (with a little white space between the two parts). The two parts are independent and have their own set of buttons.
If the "set preview" button is clicked, then all the other previews are done in the same way (split or not, with the same coordinate for the preview parts)
The idea of this feature is that we want to be able to indicate areas of images in the manifest. There are two use cases:
Both would be recorded in the manifest in new properties inspired by iiif selectors:
{
... root of the manifest
"thumbnail-selector" :{
"on": "I09870012.jpg",
"region": "100,100,300,100",
"rotation": "0"
},
"shad-selector": ... same format
}
The constraint is that the thumbnail shouldn't stretch more than 1:3 or 3:1 (no constraint for the shad).
In the desktop version, there should be an error if the user doesn't select the shad. In both online and desktop version, there should be an error if the user doesn't select a thumbnail.
For thumbnail, there should be a "select area as volume thumbnail" in the menu of each card. At the beginning of the volume, there should be a card that looks a bit differently that the others and should just be named "volume thumbnail". The preview displayed in the card should be "read only" (it shouldn't have any option, and shouldn't respond to the mouse or have any button.
For the typical character selector, the system should be exactly the same, changing "thumbnail" with "typical shad".
We don't often have this kind of case, but we recently stumbled upon an interesting one for which I am unsure what the best UX would be, here's the case: in volume bdr:V4CZ45315_I2KG209220
:
I2KG2092200098.jpg
through I2KG2092200407.jpg
are 1b
to 124a
I2KG2092200003.jpg
through I2KG2092200097.jpg
are 124b
to 181a
So ideally we would in a way select the 97 first pages, and move them at the end... I think one way to do that in terms of ux would be to allow the selection of some images (using a checkbox), and them when drag&dropping one of them, all of them would move... not sure how realistic or ideal that is but is it a big development?
The app should have help buttons in the shape of a white question mark in a red disc. When clicked, the app should display a popup with some information that's contained in MarkDown files. The files are not written yet but would have the following characteristics:
general.en.md
, and the one corresponding to the current UI language would be selecteddoc/help/
folder at the root of the git repo (this can be changed if some locations are easier)doc/help/assets/
folderThis is more a clarification than just an issue. In the specs I was using "hide" in two contexts, but I think it needs to be clarified. Here are some new concepts that we could use:
A folded image could look like
with perhaps an indication of the pagination and a button to unfold it.
The two buttons at the top of the interface could be renamed into the now self-obvious:
When opening a manifest, the app should scroll down the list to the first unchecked image
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.