666 lines
22 KiB
Text
666 lines
22 KiB
Text
/*
|
|
Pan.do/ra Settings
|
|
|
|
You can edit this file.
|
|
*/
|
|
{
|
|
/*
|
|
Capabilities are per user level.
|
|
They can either be general:
|
|
{level: true} means a user of that level has the capability)
|
|
or related to items:
|
|
{level: x} means a user of that level has the capability
|
|
for items of a rights level up to and including x
|
|
*/
|
|
"capabilities": {
|
|
// "canClickMap": {"friend": true, "staff": true, "admin": true},
|
|
"canDeleteItems": {"admin": true},
|
|
"canDownloadVideo": {"guest": 0, "member": 0, "friend": 4, "staff": 4, "admin": 4},
|
|
"canEditFeaturedLists": {"staff": true, "admin": true},
|
|
"canEditMetadata": {"staff": true, "admin": true},
|
|
"canEditSitePages": {"staff": true, "admin": true},
|
|
"canEditUsers": {"admin": true},
|
|
"canPlayClips": {"guest": 2, "member": 2, "friend": 4, "staff": 4, "admin": 4},
|
|
"canPlayVideo": {"guest": 1, "member": 1, "friend": 4, "staff": 4, "admin": 4},
|
|
"canSeeDebugMenu": {"staff": true, "admin": true},
|
|
"canSeeFiles": {"staff": true, "admin": true},
|
|
"canSeeItem": {"guest": 3, "member": 3, "friend": 4, "staff": 4, "admin": 4},
|
|
"canSeeExtraItemViews": {"friend": true, "staff": true, "admin": true},
|
|
"canSendMail": {"staff": true, "admin": true}
|
|
},
|
|
/*
|
|
clipKeys are the properties that clips can by sorted by.
|
|
If sortOperator is not specified, it will be + for strings and - for numbers.
|
|
*/
|
|
"clipKeys": [
|
|
{"id": "text", "title": "Text", "type": "string"},
|
|
{"id": "position", "title": "Position", "type": "float", "sortOperator": "+"},
|
|
{"id": "duration", "title": "Duration", "type": "float"},
|
|
{"id": "hue", "title": "Hue", "type": "float", "sortOperator": "+"},
|
|
{"id": "saturation", "title": "Saturation", "type": "float"},
|
|
{"id": "lightness", "title": "Lightness", "type": "float"},
|
|
{"id": "volume", "title": "Volume", "type": "float"}
|
|
],
|
|
// fixme: either this, or filter: true in itemKeys, but not both
|
|
"filters": [
|
|
{"id": "director", "title": "Director", "type": "string"},
|
|
{"id": "country", "title": "Country", "type": "string"},
|
|
{"id": "year", "title": "Year", "type": "integer"},
|
|
{"id": "language", "title": "Language", "type": "string"},
|
|
{"id": "genre", "title": "Genre", "type": "string"},
|
|
{"id": "writer", "title": "Writer", "type": "string"},
|
|
{"id": "producer", "title": "Producer", "type": "string"},
|
|
{"id": "cinematographer", "title": "Cinematographer", "type": "string"},
|
|
{"id": "editor", "title": "Editor", "type": "string"},
|
|
{"id": "actor", "title": "Actor", "type": "string"},
|
|
{"id": "keyword", "title": "Keyword", "type": "string"}
|
|
],
|
|
/*
|
|
An itemKey must have the following properties:
|
|
id: The id of the key (as known by the server)
|
|
title: The title of the key (as displayed by the client)
|
|
type: text, string, float, integer, or array of any of these
|
|
and can have any of the following properties:
|
|
autocomplete: If true, find element will autocomplete
|
|
autocompleteSortKey: The key that suggestions will be sorted by
|
|
capability: A capability required to see this key
|
|
columnRequired: If true, the column can't be removed
|
|
columnWidth: Default column width in px
|
|
find: If true, will appear as a find option
|
|
filter: if true, one can filter results by this key
|
|
format: {type: "...", args: [...]}, for special formatting
|
|
(Ox.formatType(args) will be called)
|
|
sort: special sort rule (title, person)
|
|
sortOperator: sort operator (+, -), in case it differs from the
|
|
default for the key's type (+ for strings, - for numbers)
|
|
value: {key: "...", type: "..."}, for keys that are derived
|
|
from other keys (like number of actors), or "capability"
|
|
*/
|
|
"itemKeys": [
|
|
{
|
|
"id": "*",
|
|
"title": "All",
|
|
"type": "text",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "title",
|
|
"title": "Title",
|
|
"type": "string",
|
|
"autocomplete": true,
|
|
"autocompleteSortKey": "votes",
|
|
"columnRequired": true,
|
|
"columnWidth": 180,
|
|
"find": true,
|
|
"sort": "title"
|
|
},
|
|
{
|
|
"id": "director",
|
|
"title": "Director",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnRequired": true,
|
|
"columnWidth": 180,
|
|
"filter": true,
|
|
"find": true,
|
|
"sort": "person"
|
|
},
|
|
{
|
|
"id": "country",
|
|
"title": "Country",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnWidth": 120,
|
|
"filter": true,
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "year",
|
|
"title": "Year",
|
|
"type": "year",
|
|
"autocomplete": true,
|
|
"columnWidth": 60,
|
|
"filter": true,
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "language",
|
|
"title": "Language",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnWidth": 120,
|
|
"find": true,
|
|
"filter": true
|
|
},
|
|
{
|
|
"id": "runtime",
|
|
"title": "Runtime",
|
|
"type": "time",
|
|
"columnWidth": 60,
|
|
"format": {"type": "duration", "args": [0, "short"]}
|
|
},
|
|
{
|
|
"id": "writer",
|
|
"title": "Writer",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnWidth": 180,
|
|
"filter": true,
|
|
"find": true,
|
|
"sort": "person"
|
|
},
|
|
{
|
|
"id": "producer",
|
|
"title": "Producer",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnWidth": 180,
|
|
"filter": true,
|
|
"find": true,
|
|
"sort": "person"
|
|
},
|
|
{
|
|
"id": "cinematographer",
|
|
"title": "Cinematographer",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnWidth": 180,
|
|
"filter": true,
|
|
"find": true,
|
|
"sort": "person"
|
|
},
|
|
{
|
|
"id": "editor",
|
|
"title": "Editor",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnWidth": 180,
|
|
"filter": true,
|
|
"find": true,
|
|
"sort": "person"
|
|
},
|
|
{
|
|
"id": "actor",
|
|
"title": "Actor",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"filter": true,
|
|
"find": true,
|
|
"sort": "person"
|
|
},
|
|
{
|
|
"id": "numberofactors",
|
|
"title": "Number of Actors",
|
|
"type": "integer",
|
|
"columnWidth": 60,
|
|
"value": {"key": "actor", "type": "length"}
|
|
},
|
|
{
|
|
"id": "character",
|
|
"title": "Character",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"find": true,
|
|
"sort": "string"
|
|
},
|
|
{
|
|
"id": "name",
|
|
"title": "Name",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "series",
|
|
"title": "TV Series",
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"id": "genre",
|
|
"title": "Genre",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnWidth": 120,
|
|
"filter": true,
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "keyword",
|
|
"title": "Keyword",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"filter": true,
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "summary",
|
|
"title": "Summary",
|
|
"type": "text",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "trivia",
|
|
"title": "Trivia",
|
|
"type": ["text"]
|
|
},
|
|
{
|
|
"id": "releasedate",
|
|
"title": "Release Date",
|
|
"type": "date",
|
|
"columnWidth": 120,
|
|
"format": {"type": "date", "args": ["%a, %b %e, %Y"]}
|
|
},
|
|
{
|
|
"id": "budget",
|
|
"title": "Budget",
|
|
"type": "integer",
|
|
"columnWidth": 90,
|
|
"format": {"type": "unit", "args": ["$"]}
|
|
},
|
|
{
|
|
"id": "gross",
|
|
"title": "Gross",
|
|
"type": "integer",
|
|
"columnWidth": 90,
|
|
"format": {"type": "unit", "args": ["$"]}
|
|
},
|
|
{
|
|
"id": "profit",
|
|
"title": "Profit",
|
|
"type": "integer",
|
|
"columnWidth": 90,
|
|
"format": {"type": "unit", "args": ["$"]}
|
|
},
|
|
{
|
|
"id": "rating",
|
|
"title": "Rating",
|
|
"type": "float",
|
|
"columnWidth": 60,
|
|
"format": {"type": "unit", "args": ["%", 0]}
|
|
},
|
|
{
|
|
"id": "votes",
|
|
"title": "Votes",
|
|
"type": "float",
|
|
"columnWidth": 60,
|
|
"format": {"type": "unit", "args": ["%", 2]}
|
|
},
|
|
{
|
|
"id": "id",
|
|
"title": "ID",
|
|
"type": "string",
|
|
"columnWidth": 90
|
|
},
|
|
{
|
|
"id": "subtitles",
|
|
"title": "Subtitles",
|
|
"type": "layer",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "duration",
|
|
"title": "Duration",
|
|
"type": "float",
|
|
"columnWidth": 90,
|
|
"format": {"type": "duration", "args": []}
|
|
},
|
|
{
|
|
"id": "resolution",
|
|
"title": "Resolution",
|
|
"type": ["integer"],
|
|
"capability": "canSeeFiles",
|
|
"columnWidth": 90,
|
|
"format": {"type": "resolution", "args": ["px"]}
|
|
},
|
|
{
|
|
"id": "aspectratio",
|
|
"title": "Aspect Ratio",
|
|
"type": "float",
|
|
"columnWidth": 90,
|
|
"format": {"type": "unit", "args": [":1"]}
|
|
},
|
|
{
|
|
"id": "pixels",
|
|
"title": "Pixels",
|
|
"type": "integer",
|
|
"capability": "canSeeFiles",
|
|
"columnWidth": 90,
|
|
"format": {"type": "value", "args": ["px"]}
|
|
},
|
|
{
|
|
"id": "hue",
|
|
"title": "Hue",
|
|
"type": "float",
|
|
"columnWidth": 90,
|
|
"format": {"type": "color", "args": ["hue"]},
|
|
"sortOperator": "+"
|
|
},
|
|
{
|
|
"id": "saturation",
|
|
"title": "Saturation",
|
|
"type": "float",
|
|
"columnWidth": 90,
|
|
"format": {"type": "color", "args": ["saturation"]}
|
|
},
|
|
{
|
|
"id": "lightness",
|
|
"title": "Lightness",
|
|
"type": "float",
|
|
"columnWidth": 90,
|
|
"format": {"type": "color", "args": ["lightness"]}
|
|
},
|
|
{
|
|
"id": "volume",
|
|
"title": "Volume",
|
|
"type": "float",
|
|
"columnWidth": 60
|
|
},
|
|
{
|
|
"id": "numberofcuts",
|
|
"title": "Number of Cuts",
|
|
"type": "integer",
|
|
"columnWidth": 60,
|
|
"value": {"key": "cuts", "type": "length"}
|
|
},
|
|
{
|
|
"id": "cutsperminute",
|
|
"title": "Cuts per Minute",
|
|
"type": "float",
|
|
"columnWidth": 60,
|
|
"value": {"key": "cuts", "type": "lengthperminute"}
|
|
},
|
|
{
|
|
"id": "words",
|
|
"title": "Words",
|
|
"type": "integer",
|
|
"columnWidth": 60,
|
|
"value": {"layer": "subtitles", "type": "words"}
|
|
},
|
|
{
|
|
"id": "wordsperminute",
|
|
"title": "Words per Minute",
|
|
"type": "float",
|
|
"columnWidth": 60,
|
|
"format": {"type": "unit", "args": ["wpm"]},
|
|
"value": {"layer": "subtitles", "type": "wordsperminute"}
|
|
},
|
|
{
|
|
"id": "size",
|
|
"title": "Size",
|
|
"type": "integer",
|
|
"capability": "canSeeFiles",
|
|
"columnWidth": 60,
|
|
"format": {"type": "value", "args": ["B"]}
|
|
},
|
|
{
|
|
"id": "bitrate",
|
|
"title": "Bitrate",
|
|
"type": "integer",
|
|
"capability": "canSeeFiles",
|
|
"columnWidth": 60,
|
|
"format": {"type": "unit", "args": ["kbps", 0, 0.001]}
|
|
},
|
|
{
|
|
"id": "parts",
|
|
"title": "Parts",
|
|
"type": "integer",
|
|
"capability": "canSeeFiles",
|
|
"columnWidth": 60
|
|
},
|
|
{
|
|
"id": "numberoffiles",
|
|
"title": "Number of Files",
|
|
"type": "integer",
|
|
"capability": "canSeeFiles",
|
|
"columnWidth": 60,
|
|
"value": {"key": "files", "type": "length"}
|
|
},
|
|
{
|
|
"id": "filename",
|
|
"title": "Filename",
|
|
"type": ["string"],
|
|
"capability": "canSeeFiles",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "created",
|
|
"title": "Date Created",
|
|
"type": "date",
|
|
"columnWidth": 150,
|
|
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]}
|
|
},
|
|
{
|
|
"id": "modified",
|
|
"title": "Last Modified",
|
|
"type": "date",
|
|
"columnWidth": 150,
|
|
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]}
|
|
},
|
|
{
|
|
"id": "accessed",
|
|
"title": "Last Accessed",
|
|
"type": "date",
|
|
"columnWidth": 150,
|
|
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]}
|
|
},
|
|
{
|
|
"id": "timesaccessed",
|
|
"title": "Times Accessed",
|
|
"type": "integer",
|
|
"columnWidth": 60
|
|
},
|
|
{
|
|
"id": "rightslevel",
|
|
"title": "Rights Level",
|
|
"type": "enum",
|
|
"columnWidth": 90,
|
|
"format": {"type": "ColorLevel", "args": [
|
|
["Public", "Relaxed", "Regular", "Restricted", "Private"]
|
|
]},
|
|
"sortOperator": "+",
|
|
"values": ["Public", "Relaxed", "Regular", "Restricted", "Private", "Unknown"]
|
|
},
|
|
{
|
|
"id": "canplayvideo",
|
|
"title": "Can Play Video",
|
|
"type": "boolean",
|
|
"value": "capability"
|
|
},
|
|
{
|
|
"id": "canplayclips",
|
|
"title": "Can Play Clips",
|
|
"type": "boolean",
|
|
"value": "capability"
|
|
}
|
|
],
|
|
/*
|
|
itemName specifies how items are being referred to.
|
|
Anything excessively long may cause layout errors.
|
|
*/
|
|
"itemName": {
|
|
"singular": "Movie",
|
|
"plural": "Movies"
|
|
},
|
|
"itemViews": [
|
|
{"id": "info", "title": "Info"},
|
|
{"id": "clips", "title": "Clips"},
|
|
{"id": "video", "title": "Video"},
|
|
{"id": "timeline", "title": "Timeline"},
|
|
{"id": "map", "title": "Map"},
|
|
{"id": "calendar", "title": "Calendar"},
|
|
{"id": "data", "title": "Data"},
|
|
{"id": "files", "title": "Files"}
|
|
],
|
|
// fixme: should be renamed to annotationLayers
|
|
"layers": [
|
|
{
|
|
"id": "privatenotes",
|
|
"title": "Private Notes",
|
|
"type": "text",
|
|
"overlap": true,
|
|
"private": true
|
|
},
|
|
{
|
|
"id": "publicnotes",
|
|
"title": "Public Notes",
|
|
"overlap": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"id": "subtitles",
|
|
"title": "Subtitles",
|
|
"type": "text",
|
|
"overlay": true,
|
|
"sort": [
|
|
{"id": "words", "title": "Words", "type": "words"},
|
|
{"id": "wordsperminute", "title": "Words per Minute", "type": "wordsperminute"}
|
|
]
|
|
}
|
|
],
|
|
"listViews": [
|
|
{"id": "list", "title": "as List"},
|
|
{"id": "grid", "title": "as Grid"},
|
|
//{"id": "info", "title": "with Info"},
|
|
{"id": "clips", "title": "with Clips"},
|
|
{"id": "timelines", "title": "with Timelines"},
|
|
//{"id": "maps", "title": "with Maps"},
|
|
//{"id": "calendars", "title": "with Calendars"},
|
|
{"id": "clip", "title": "as Clips"},
|
|
//{"id": "video", "title": "as Video"},
|
|
{"id": "map", "title": "on Map"},
|
|
{"id": "calendar", "title": "on Calendar"}
|
|
],
|
|
"media": {
|
|
"importMoviePosters": true,
|
|
"importPosterFrames": true
|
|
},
|
|
"personalLists": [
|
|
{"title": "Favorites"},
|
|
{"title": "1960s", "query": {"conditions": [{"key": "year", "value": ["1960", "1970"], "operator": "="}], "operator": "&"}}
|
|
//{"title": "Movies with Video", "query": {"conditions": [{"key": "canplayvideo", "value": "true", "operator": "="}], "operator": "&"}},
|
|
//{"title": "Movies with Clips", "query": {"conditions": [{"key": "canplayclips", "value": "true", "operator": "="}], "operator": "&"}}
|
|
],
|
|
"rightsLevel": {"member": 4, "staff": 3, "admin": 2},
|
|
"rightsLevels": [
|
|
{"name": "Public", "color": [128, 255, 128]},
|
|
{"name": "Relaxed", "color": [192, 255, 128]},
|
|
{"name": "Regular", "color": [255, 255, 128]},
|
|
{"name": "Restricted", "color": [255, 192, 128]},
|
|
{"name": "Private", "color": [255, 128, 128]}
|
|
],
|
|
"sendReferrer": false,
|
|
"site": {
|
|
// FIXME: "from" and "to" would be more intuitive as keys here
|
|
"email": {
|
|
// E-mail address in contact form (to)
|
|
"contact": "0xdb@0xdb.org",
|
|
"footer": "-- \n0xDB - http://0xdb.org",
|
|
"prefix": "0xDB Newsletter -",
|
|
// E-mail address uses by the system (from)
|
|
"system": "0xdb@0xdb.org"
|
|
},
|
|
"id": "oxdb",
|
|
"name": "0xDB",
|
|
"url": "0xdb.org",
|
|
"videoprefix": ""
|
|
},
|
|
"sitePages": [
|
|
{"id": "about", "title": "About"},
|
|
{"id": "news", "title": "News"},
|
|
// {"id": "tour", "title": "Take a Tour"},
|
|
{"id": "faq", "title": "Frequently Asked Questions"},
|
|
{"id": "terms", "title": "Terms of Service"},
|
|
{"id": "rights", "title": "Rights Management"},
|
|
{"id": "contact", "title": "Contact"}
|
|
],
|
|
"totals": [
|
|
{"id": "items"},
|
|
{"id": "runtime"},
|
|
{"id": "files", "admin": true},
|
|
{"id": "duration", "admin": true},
|
|
{"id": "size", "admin": true},
|
|
{"id": "pixels"}
|
|
],
|
|
"tv": {
|
|
"showLogo": false
|
|
},
|
|
"user": {
|
|
"level": "guest",
|
|
"newsletter": true,
|
|
"ui": {
|
|
"annotationsSize": 256,
|
|
"clipsColumns": 2,
|
|
"columns": {
|
|
"Colors": {
|
|
"columns": ["title", "director", "country", "year", "hue", "saturation", "brightness"],
|
|
"columnWidth": {}
|
|
}
|
|
},
|
|
"filters": [
|
|
{"id": "director", "sort": [{"key": "items", "operator": "-"}]},
|
|
{"id": "country", "sort": [{"key": "items", "operator": "-"}]},
|
|
{"id": "year", "sort": [{"key": "name", "operator": "-"}]},
|
|
{"id": "language", "sort": [{"key": "items", "operator": "-"}]},
|
|
{"id": "genre", "sort": [{"key": "items", "operator": "-"}]}
|
|
],
|
|
"filtersSize": 176,
|
|
"find": {"conditions": [], "operator": "&"},
|
|
"icons": "posters",
|
|
"infoIconSize": 256,
|
|
"item": "",
|
|
"itemFind": {"conditions": [], "operator": "&"},
|
|
"itemSort": [{"key": "position", "operator": "+"}],
|
|
"itemView": "info",
|
|
"listColumns": ["title", "director", "country", "year", "language", "runtime", "genre"],
|
|
"listColumnWidth": {},
|
|
"listSelection": [],
|
|
"listSort": [{"key": "director", "operator": "+"}],
|
|
"listView": "grid",
|
|
"lists": {},
|
|
"mapFind": "",
|
|
"mapSelection": "",
|
|
"page": "",
|
|
"section": "items",
|
|
"showAnnotations": true,
|
|
"showBrowser": true,
|
|
"showCalendarControls": true, // fixme: should be false
|
|
"showFilters": true,
|
|
"showFlags": true,
|
|
"showHome": true,
|
|
"showIconBrowser": false,
|
|
"showInfo": true,
|
|
"showMapControls": false,
|
|
"showMapLabels": false,
|
|
"showFolder": {
|
|
"items": {
|
|
"personal": true,
|
|
"favorite": true,
|
|
"featured": true,
|
|
"volumes": true
|
|
}
|
|
},
|
|
"showSidebar": true,
|
|
"showSitePosters": false,
|
|
"showTimeline": true,
|
|
"sidebarSize": 256,
|
|
"theme": "modern",
|
|
"videoPoints": {},
|
|
"videoResolution": 96,
|
|
"videoScale": "fit",
|
|
"videoMuted": false,
|
|
"videoSize": "small",
|
|
"videoSubtitles": true,
|
|
"videoView": "video",
|
|
"videoVolume": 1
|
|
},
|
|
"username": "",
|
|
"volumes": []
|
|
},
|
|
// fixme: this should include colors
|
|
"userLevels": ["guest", "member", "friend", "staff", "admin"],
|
|
"video": {
|
|
"download": false,
|
|
"formats": ["webm", "mp4"],
|
|
"resolutions": [96]
|
|
}
|
|
}
|