new config
This commit is contained in:
parent
0b4468ef06
commit
5c50c3c593
1 changed files with 300 additions and 1 deletions
301
config.jsonc
301
config.jsonc
|
@ -22,11 +22,13 @@
|
||||||
*/
|
*/
|
||||||
"capabilities": {
|
"capabilities": {
|
||||||
"canAddItems": {"member": true, "staff": true, "admin": true},
|
"canAddItems": {"member": true, "staff": true, "admin": true},
|
||||||
|
"canAddDocuments": {"member": true, "staff": true, "admin": true},
|
||||||
"canDownloadVideo": {"guest": 0, "member": 0, "staff": 4, "admin": 4},
|
"canDownloadVideo": {"guest": 0, "member": 0, "staff": 4, "admin": 4},
|
||||||
"canEditAnnotations": {"staff": true, "admin": true},
|
"canEditAnnotations": {"staff": true, "admin": true},
|
||||||
"canEditDocuments": {"staff": true, "admin": true},
|
"canEditDocuments": {"staff": true, "admin": true},
|
||||||
"canEditEntities": {"staff": true, "admin": true},
|
"canEditEntities": {"staff": true, "admin": true},
|
||||||
"canEditEvents": {"staff": true, "admin": true},
|
"canEditEvents": {"staff": true, "admin": true},
|
||||||
|
"canEditFeaturedCollections": {"staff": true, "admin": true},
|
||||||
"canEditFeaturedEdits": {"staff": true, "admin": true},
|
"canEditFeaturedEdits": {"staff": true, "admin": true},
|
||||||
"canEditFeaturedLists": {"staff": true, "admin": true},
|
"canEditFeaturedLists": {"staff": true, "admin": true},
|
||||||
"canEditFeaturedTexts": {"staff": true, "admin": true},
|
"canEditFeaturedTexts": {"staff": true, "admin": true},
|
||||||
|
@ -38,8 +40,10 @@
|
||||||
"canEditUsers": {"admin": true},
|
"canEditUsers": {"admin": true},
|
||||||
"canExportAnnotations": {"member": true, "staff": true, "admin": true},
|
"canExportAnnotations": {"member": true, "staff": true, "admin": true},
|
||||||
"canImportAnnotations": {"member": true, "staff": true, "admin": true},
|
"canImportAnnotations": {"member": true, "staff": true, "admin": true},
|
||||||
|
"canImportItems": {"member": false, "staff": true, "admin": true},
|
||||||
"canManageDocuments": {"member": true, "staff": true, "admin": true},
|
"canManageDocuments": {"member": true, "staff": true, "admin": true},
|
||||||
"canManageEntities": {"member": true, "staff": true, "admin": true},
|
"canManageEntities": {"member": true, "staff": true, "admin": true},
|
||||||
|
"canManageHome": {"staff": true, "admin": true},
|
||||||
"canManagePlacesAndEvents": {"member": true, "staff": true, "admin": true},
|
"canManagePlacesAndEvents": {"member": true, "staff": true, "admin": true},
|
||||||
"canManageTitlesAndNames": {"member": true, "staff": true, "admin": true},
|
"canManageTitlesAndNames": {"member": true, "staff": true, "admin": true},
|
||||||
"canManageUsers": {"staff": true, "admin": true},
|
"canManageUsers": {"staff": true, "admin": true},
|
||||||
|
@ -47,10 +51,13 @@
|
||||||
"canPlayVideo": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
"canPlayVideo": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
||||||
"canReadText": {"guest": 0, "member": 0, "staff": 1, "admin": 1},
|
"canReadText": {"guest": 0, "member": 0, "staff": 1, "admin": 1},
|
||||||
"canRemoveItems": {"admin": true},
|
"canRemoveItems": {"admin": true},
|
||||||
|
"canRemoveDocuments": {"staff": true, "admin": true},
|
||||||
"canSeeAccessed": {"staff": true, "admin": true},
|
"canSeeAccessed": {"staff": true, "admin": true},
|
||||||
|
"canSeeAllTasks": {"staff": true, "admin": true},
|
||||||
"canSeeDebugMenu": {"staff": true, "admin": true},
|
"canSeeDebugMenu": {"staff": true, "admin": true},
|
||||||
"canSeeExtraItemViews": {"staff": true, "admin": true},
|
"canSeeExtraItemViews": {"staff": true, "admin": true},
|
||||||
"canSeeMedia": {"staff": true, "admin": true},
|
"canSeeMedia": {"staff": true, "admin": true},
|
||||||
|
"canSeeDocument": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
||||||
"canSeeItem": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
"canSeeItem": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
||||||
"canSeeSize": {"staff": true, "admin": true},
|
"canSeeSize": {"staff": true, "admin": true},
|
||||||
"canSeeSoftwareVersion": {"staff": true, "admin": true},
|
"canSeeSoftwareVersion": {"staff": true, "admin": true},
|
||||||
|
@ -75,6 +82,271 @@
|
||||||
included in find annotations. // FIXME: the last bit is not implemented.
|
included in find annotations. // FIXME: the last bit is not implemented.
|
||||||
*/
|
*/
|
||||||
"clipLayers": ["subtitles", "keywords", "notes"],
|
"clipLayers": ["subtitles", "keywords", "notes"],
|
||||||
|
/*
|
||||||
|
"documentKeys" defines the metadata associated with each document. Required keys
|
||||||
|
are "*", "id" and "title".
|
||||||
|
A documentKey must have the following properties:
|
||||||
|
"id": The unique id of the key (as used by the server)
|
||||||
|
"title": The title of the key (as displayed by the client)
|
||||||
|
"type": Can be "boolean", "date", "enum", "float", "hue", "integer",
|
||||||
|
"layer", "string", "text", "time" or ["..."] (list of values of
|
||||||
|
this type). If type is "layer", this is a reference to the
|
||||||
|
annotations layer with the same id.
|
||||||
|
and can have any of the following properties:
|
||||||
|
"additionalSort": Ordered list of {key, operator} objects, where key is
|
||||||
|
another itemKey and operator is "+" or "-". This can be used to
|
||||||
|
override user.ui.listSort when results are sorted by this key.
|
||||||
|
"autocomplete": If true, the find element will provide autocomplete
|
||||||
|
"autocompleteSort": Sort order of autocomplete suggestions
|
||||||
|
"capability": A capability required to see data for this key
|
||||||
|
"columnRequired": If true, the column can't be removed from list view
|
||||||
|
"columnWidth": Default column width in px. If absent, no column for
|
||||||
|
this key can be added in list view.
|
||||||
|
"filter": If true, one can filter results by this key
|
||||||
|
"find": If true, this key will appear as an option in the find element
|
||||||
|
"flag": Can be "country" or "language". If set (and filter is true), a
|
||||||
|
flag icon corresponding to the field's value will be displayed.
|
||||||
|
"format": {type: string, args: [value, value, ...]}, used for special
|
||||||
|
formatting. This will invoke Ox.formatType(args). For details, see
|
||||||
|
https://oxjs.org/#doc/Ox.formatArea etc.
|
||||||
|
"secondaryId": If true, loading the URL "/value" will redirect to the
|
||||||
|
corresponding item, in case there is an exact match for this key
|
||||||
|
"sort": If true, one can sort results by this key
|
||||||
|
"sortOperator": Sort order ("+" or "-"), in case it differs from the
|
||||||
|
default for the key's type ("+" for strings, "-" for numbers)
|
||||||
|
"sortType": Special sort type ("person" or "title") which can be
|
||||||
|
further configured in "Manage Names" or "Manage Titles"
|
||||||
|
"value": {key: string, type: string} or {layer: string, type: string},
|
||||||
|
for keys whose value is derived from other keys or layers (like
|
||||||
|
"number of actors" or "words per minute"). Possible values for type
|
||||||
|
are "length", "lengthperminute", "words", and "wordsperminute".
|
||||||
|
Alternatively, "value" can be set to the string "capability", which
|
||||||
|
results in an itemKey whose boolean value indicates the presence or
|
||||||
|
absence of a userLevel-dependent capability. This can be used to
|
||||||
|
create queries and lists like "all items this user can play" etc.
|
||||||
|
"values": [value, value, ...] Ordered list of values, in case "type" is
|
||||||
|
"enum"
|
||||||
|
*/
|
||||||
|
"documentKeys": [
|
||||||
|
{
|
||||||
|
"id": "*",
|
||||||
|
"title": "All",
|
||||||
|
"type": "text",
|
||||||
|
"find": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "title",
|
||||||
|
"operator": "+",
|
||||||
|
"title": "Title",
|
||||||
|
"type": "string",
|
||||||
|
"find": true,
|
||||||
|
"sort": true,
|
||||||
|
"sortType": "title",
|
||||||
|
"autocomplete": true,
|
||||||
|
"columnWidth": 256
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "type",
|
||||||
|
"operator": "+",
|
||||||
|
"title": "Type",
|
||||||
|
"type": "string",
|
||||||
|
"filter": true,
|
||||||
|
"find": true,
|
||||||
|
"sort": true,
|
||||||
|
"autocomplete": true,
|
||||||
|
"columnWidth": 128
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "author",
|
||||||
|
"operator": "+",
|
||||||
|
"title": "Author",
|
||||||
|
"type": ["string"],
|
||||||
|
"filter": true,
|
||||||
|
"find": true,
|
||||||
|
"sort": true,
|
||||||
|
"sortType": "person",
|
||||||
|
"autocomplete": true,
|
||||||
|
"columnWidth": 256
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "publisher",
|
||||||
|
"operator": "+",
|
||||||
|
"title": "Publisher",
|
||||||
|
"type": "string",
|
||||||
|
"filter": true,
|
||||||
|
"find": true,
|
||||||
|
"sort": true,
|
||||||
|
"autocomplete": true,
|
||||||
|
"columnWidth": 256
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "place",
|
||||||
|
"title": "Place",
|
||||||
|
"type": ["string"],
|
||||||
|
"columnWidth": 128,
|
||||||
|
"filter": true,
|
||||||
|
"find": true,
|
||||||
|
"sort": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "date",
|
||||||
|
"title": "Date",
|
||||||
|
"type": "string",
|
||||||
|
"columnWidth": 120,
|
||||||
|
//"format": {"type": "date", "args": ["%a, %b %e, %Y"]},
|
||||||
|
"sort": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "series",
|
||||||
|
"title": "Series",
|
||||||
|
"type": "string",
|
||||||
|
"columnWidth": 128,
|
||||||
|
"find": true,
|
||||||
|
"sort": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "edition",
|
||||||
|
"title": "Edition",
|
||||||
|
"type": "string",
|
||||||
|
"columnWidth": 128,
|
||||||
|
"find": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "language",
|
||||||
|
"title": "Language",
|
||||||
|
"type": ["string"],
|
||||||
|
"columnWidth": 128,
|
||||||
|
"filter": true,
|
||||||
|
"find": true,
|
||||||
|
"sort": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "id",
|
||||||
|
"operator": "+",
|
||||||
|
"title": "ID",
|
||||||
|
"type": "string",
|
||||||
|
"sort": true,
|
||||||
|
"columnWidth": 64
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "extension",
|
||||||
|
"operator": "+",
|
||||||
|
"title": "Extension",
|
||||||
|
"type": "string",
|
||||||
|
"filter": true,
|
||||||
|
"find": true,
|
||||||
|
"sort": true,
|
||||||
|
"autocomplete": true,
|
||||||
|
"columnWidth": 64
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "dimensions",
|
||||||
|
"operator": "-",
|
||||||
|
"title": "Dimensions",
|
||||||
|
"type": "integer",
|
||||||
|
"sort": true,
|
||||||
|
"columnWidth": 128
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "size",
|
||||||
|
"operator": "-",
|
||||||
|
"title": "Size",
|
||||||
|
"type": "integer",
|
||||||
|
"sort": true,
|
||||||
|
"format": {"type": "value", "args": ["B"]},
|
||||||
|
"columnWidth": 64
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "description",
|
||||||
|
"operator": "+",
|
||||||
|
"title": "Description",
|
||||||
|
"type": "text",
|
||||||
|
"find": true,
|
||||||
|
"sort": true,
|
||||||
|
"columnWidth": 256
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "matches",
|
||||||
|
"operator": "-",
|
||||||
|
"title": "Matches",
|
||||||
|
"type": "integer",
|
||||||
|
"sort": true,
|
||||||
|
"columnWidth": 64
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "user",
|
||||||
|
"operator": "+",
|
||||||
|
"title": "User",
|
||||||
|
"type": "string",
|
||||||
|
"filter": true,
|
||||||
|
"find": true,
|
||||||
|
"sort": true,
|
||||||
|
"autocomplete": true,
|
||||||
|
"columnWidth": 128
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "created",
|
||||||
|
"operator": "-",
|
||||||
|
"title": "Created",
|
||||||
|
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]},
|
||||||
|
"type": "date",
|
||||||
|
"sort": true,
|
||||||
|
"columnWidth": 144
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "modified",
|
||||||
|
"operator": "-",
|
||||||
|
"title": "Modified",
|
||||||
|
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]},
|
||||||
|
"type": "date",
|
||||||
|
"sort": true,
|
||||||
|
"columnWidth": 144
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "accessed",
|
||||||
|
"title": "Last Accessed",
|
||||||
|
"type": "date",
|
||||||
|
"capability": "canSeeAccessed",
|
||||||
|
"columnWidth": 150,
|
||||||
|
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]},
|
||||||
|
"sort": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "timesaccessed",
|
||||||
|
"title": "Times Accessed",
|
||||||
|
"type": "integer",
|
||||||
|
"capability": "canSeeAccessed",
|
||||||
|
"columnWidth": 60,
|
||||||
|
"format": {"type": "number", "args": []},
|
||||||
|
"sort": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "rightslevel",
|
||||||
|
"title": "Rights Level",
|
||||||
|
"type": "enum",
|
||||||
|
"columnWidth": 90,
|
||||||
|
"format": {"type": "ColorLevel", "args": [
|
||||||
|
["Public", "Restricted", "Private"]
|
||||||
|
]},
|
||||||
|
"sort": true,
|
||||||
|
"sortOperator": "+",
|
||||||
|
"values": ["Public", "Restricted", "Private", "Unknown"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
/*
|
||||||
|
"documentRightsLevel" defines which initial rights level will be assigned to documents
|
||||||
|
created by users of these user levels.
|
||||||
|
*/
|
||||||
|
"documentRightsLevel": {"member": 0, "staff": 0, "admin": 0},
|
||||||
|
/*
|
||||||
|
"documentRightsLevels" is an ordered list of rights levels, one of which will be
|
||||||
|
assigned to each document.
|
||||||
|
*/
|
||||||
|
"documentRightsLevels": [
|
||||||
|
{"name": "Public", "color": [128, 255, 128]},
|
||||||
|
{"name": "Restricted", "color": [255, 212, 128]},
|
||||||
|
{"name": "Private", "color": [255, 128, 128]}
|
||||||
|
],
|
||||||
"flags": false,
|
"flags": false,
|
||||||
"help": [
|
"help": [
|
||||||
{"id": "help", "title": "Help"},
|
{"id": "help", "title": "Help"},
|
||||||
|
@ -95,6 +367,20 @@
|
||||||
{"id": "texts", "title": "Texts"},
|
{"id": "texts", "title": "Texts"},
|
||||||
{"id": "embeds", "title": "Embeds"}
|
{"id": "embeds", "title": "Embeds"}
|
||||||
],
|
],
|
||||||
|
/*
|
||||||
|
"importMetadata" defines what fields (as defined in "itemKeys") will get
|
||||||
|
populated with imported metadata. There is metadata for "title",
|
||||||
|
"description", "uploader", "date", "tags", "id", "url", and the value must
|
||||||
|
be a format string (like "{title} ({id})"). The type of the itemKeys must
|
||||||
|
be "string", ["string"], "text", "date" or "year". The last two only work
|
||||||
|
with "{date}".
|
||||||
|
*/
|
||||||
|
"importMetadata": {
|
||||||
|
"date": "{date}",
|
||||||
|
"topic": "{tags}",
|
||||||
|
"summary": "{description}",
|
||||||
|
"title": "{title}"
|
||||||
|
},
|
||||||
/*
|
/*
|
||||||
An itemKey must have the following properties:
|
An itemKey must have the following properties:
|
||||||
id: The id of the key (as known by the server)
|
id: The id of the key (as known by the server)
|
||||||
|
@ -594,6 +880,16 @@
|
||||||
"calendarFind": "",
|
"calendarFind": "",
|
||||||
"calendarSelection": "",
|
"calendarSelection": "",
|
||||||
"clipColumns": 2,
|
"clipColumns": 2,
|
||||||
|
"clipSize": 416,
|
||||||
|
"collectionColumns": ["title", "id", "extension", "dimensions", "size", "description", "matches", "user", "created", "modified"],
|
||||||
|
"collectionColumnWidth": {},
|
||||||
|
"collectionSelection": [],
|
||||||
|
"collectionSort": [
|
||||||
|
{"key": "title", "operator": "+"},
|
||||||
|
{"key": "extension", "operator": "+"}
|
||||||
|
],
|
||||||
|
"collectionView": "grid",
|
||||||
|
"collections": {},
|
||||||
"columns": {
|
"columns": {
|
||||||
"Colors": {
|
"Colors": {
|
||||||
"columns": ["title", "date", "location", "language", "hue", "saturation", "brightness"],
|
"columns": ["title", "date", "location", "language", "hue", "saturation", "brightness"],
|
||||||
|
@ -603,6 +899,7 @@
|
||||||
"document": "",
|
"document": "",
|
||||||
"documents": {},
|
"documents": {},
|
||||||
"documentSize": 256,
|
"documentSize": 256,
|
||||||
|
"documentView": "view",
|
||||||
"documentsSelection": {},
|
"documentsSelection": {},
|
||||||
"documentsSort": [{"key": "name", "operator": "+"}],
|
"documentsSort": [{"key": "name", "operator": "+"}],
|
||||||
"documentsView": "grid",
|
"documentsView": "grid",
|
||||||
|
@ -630,6 +927,7 @@
|
||||||
],
|
],
|
||||||
"filtersSize": 176,
|
"filtersSize": 176,
|
||||||
"find": {"conditions": [], "operator": "&"},
|
"find": {"conditions": [], "operator": "&"},
|
||||||
|
"findDocuments": {"conditions": [], "operator": "&"},
|
||||||
"followPlayer": true,
|
"followPlayer": true,
|
||||||
"help": "",
|
"help": "",
|
||||||
"icons": "frames",
|
"icons": "frames",
|
||||||
|
@ -651,6 +949,7 @@
|
||||||
"page": "",
|
"page": "",
|
||||||
"part": {
|
"part": {
|
||||||
"api": "",
|
"api": "",
|
||||||
|
"document": "",
|
||||||
"documents": "",
|
"documents": "",
|
||||||
"entities": "",
|
"entities": "",
|
||||||
"faq": "",
|
"faq": "",
|
||||||
|
@ -693,7 +992,7 @@
|
||||||
"featured": true,
|
"featured": true,
|
||||||
"volumes": true
|
"volumes": true
|
||||||
},
|
},
|
||||||
"texts": {
|
"documents": {
|
||||||
"personal": true,
|
"personal": true,
|
||||||
"favorite": true,
|
"favorite": true,
|
||||||
"featured": true
|
"featured": true
|
||||||
|
|
Loading…
Reference in a new issue