690 lines
22 KiB
Text
690 lines
22 KiB
Text
/*
|
|
Pan.do/ra Settings
|
|
|
|
You can edit this file.
|
|
*/
|
|
{
|
|
"additionalSort": [
|
|
{"key": "title", "operator": "+"}
|
|
],
|
|
"annotations": {
|
|
"showUsers": true
|
|
},
|
|
/*
|
|
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": {
|
|
"canDeleteItems": {"admin": true},
|
|
"canDownloadVideo": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
|
"canEditAnnotations": {"staff": true, "admin": true},
|
|
"canEditEvents": {"staff": true, "admin": true},
|
|
"canEditFeaturedLists": {"staff": true, "admin": true},
|
|
"canEditMetadata": {"staff": true, "admin": true},
|
|
"canEditPlaces": {"staff": true, "admin": true},
|
|
"canEditSitePages": {"staff": true, "admin": true},
|
|
"canEditUsers": {"admin": true},
|
|
"canImportAnnotations": {"member": true, "staff": true, "admin": true},
|
|
"canManageTitlesAndNames": {"member": true, "staff": true, "admin": true},
|
|
"canManagePlacesAndEvents": {"member": true, "staff": true, "admin": true},
|
|
"canManageUsers": {"staff": true, "admin": true},
|
|
"canPlayClips": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
|
"canPlayVideo": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
|
"canSeeAccessed": {"staff": true, "admin": true},
|
|
"canSeeDebugMenu": {"staff": true, "admin": true},
|
|
"canSeeExtraItemViews": {"staff": true, "admin": true},
|
|
"canSeeFiles": {"staff": true, "admin": true},
|
|
"canSeeItem": {"guest": 1, "member": 1, "staff": 4, "admin": 4},
|
|
"canSeeSize": {"staff": true, "admin": true},
|
|
"canSendMail": {"staff": true, "admin": true},
|
|
"canUploadVideo": {"guest": false, "member": true, "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"}
|
|
],
|
|
/*
|
|
clipLayers is the ordered list of public layers that will appear as the
|
|
text of clips. Excluding a layer from this list means it will not be
|
|
included in find annotations. // FIXME: the last bit is not implemented.
|
|
*/
|
|
"clipLayers": ["transcripts", "keywords", "places", "events", "descriptions"],
|
|
// fixme: either this, or filter: true in itemKeys, but not both
|
|
"filters": [
|
|
{"id": "source", "title": "Sources", "type": "string"},
|
|
{"id": "project", "title": "Projects", "type": "string"},
|
|
{"id": "topic", "title": "Topics", "type": "string"},
|
|
{"id": "name", "title": "People", "type": "string"},
|
|
{"id": "language", "title": "Languages", "type": "string"},
|
|
{"id": "license", "title": "License", "type": "string"},
|
|
{"id": "places", "title": "Places", "type": "string"},
|
|
{"id": "events", "title": "Events", "type": "string"},
|
|
{"id": "keywords", "title": "Keywords", "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
|
|
filter: if true, one can filter results by this key
|
|
find: If true, this key will appear as a find option
|
|
format: {type: "...", args: [...]}, for special formatting
|
|
(Ox.formatType(args) will be called)
|
|
sort: If true, one can sort results by this key
|
|
sortOperator: sort operator (+, -), in case it differs from the
|
|
default for the key's type (+ for strings, - for numbers)
|
|
sortType: special sort type (title, person)
|
|
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": "timesaccessed",
|
|
"columnRequired": true,
|
|
"columnWidth": 180,
|
|
"find": true,
|
|
"sort": true,
|
|
"sortType": "title"
|
|
},
|
|
{
|
|
"id": "source",
|
|
"title": "Source",
|
|
"type": "string",
|
|
"autocomplete": true,
|
|
"description": true,
|
|
"columnWidth": 180,
|
|
"filter": true,
|
|
"find": true,
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "project",
|
|
"title": "Project",
|
|
"type": "string",
|
|
"autocomplete": true,
|
|
"description": true,
|
|
"columnWidth": 120,
|
|
"filter": true,
|
|
"find": true,
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "topic",
|
|
"title": "Topic",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnWidth": 180,
|
|
"filter": true,
|
|
"find": true,
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "name",
|
|
"title": "People",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "director",
|
|
"title": "Director",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnRequired": true,
|
|
"columnWidth": 180,
|
|
"sort": true,
|
|
"sortType": "person"
|
|
},
|
|
{
|
|
"id": "cinematographer",
|
|
"title": "Cinematographer",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnWidth": 180,
|
|
"sort": true,
|
|
"sortType": "person"
|
|
},
|
|
{
|
|
"id": "featuring",
|
|
"title": "Featuring",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnRequired": true,
|
|
"columnWidth": 180,
|
|
"filter": true,
|
|
"sort": true,
|
|
"sortType": "person"
|
|
},
|
|
{
|
|
"id": "language",
|
|
"title": "Language",
|
|
"type": ["string"],
|
|
"autocomplete": true,
|
|
"columnWidth": 120,
|
|
"filter": true,
|
|
"find": true,
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "location",
|
|
"title": "Location",
|
|
"type": "string",
|
|
"autocomplete": true,
|
|
"columnWidth": 180,
|
|
"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": "summary",
|
|
"title": "Summary",
|
|
"type": "text",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "id",
|
|
"title": "ID",
|
|
"type": "string",
|
|
"columnWidth": 90,
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "annotations",
|
|
"title": "Annotations",
|
|
"type": "string",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "places",
|
|
"title": "Places",
|
|
"type": "layer",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "events",
|
|
"title": "Events",
|
|
"type": "layer",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "keywords",
|
|
"title": "Keywords",
|
|
"type": "layer",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "descriptions",
|
|
"title": "Descriptions",
|
|
"type": "layer",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "transcripts",
|
|
"title": "Transcripts",
|
|
"type": "layer",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "numberofannotations",
|
|
"title": "Annotations",
|
|
"type": "integer",
|
|
"columnWidth": 60,
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "duration",
|
|
"title": "Duration",
|
|
"type": "float",
|
|
"columnWidth": 90,
|
|
"format": {"type": "duration", "args": [0, "short"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "resolution",
|
|
"title": "Resolution",
|
|
"type": ["integer"],
|
|
"columnWidth": 90,
|
|
"format": {"type": "resolution", "args": ["px"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "aspectratio",
|
|
"title": "Aspect Ratio",
|
|
"type": "float",
|
|
"columnWidth": 90,
|
|
"format": {"type": "unit", "args": [":1"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "pixels",
|
|
"title": "Pixels",
|
|
"type": "integer",
|
|
"columnWidth": 90,
|
|
"format": {"type": "value", "args": ["px"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "hue",
|
|
"title": "Hue",
|
|
"type": "hue",
|
|
"columnWidth": 90,
|
|
"format": {"type": "color", "args": ["hue"]},
|
|
"sort": true,
|
|
"sortOperator": "+"
|
|
},
|
|
{
|
|
"id": "saturation",
|
|
"title": "Saturation",
|
|
"type": "float",
|
|
"columnWidth": 90,
|
|
"format": {"type": "color", "args": ["saturation"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "lightness",
|
|
"title": "Lightness",
|
|
"type": "float",
|
|
"columnWidth": 90,
|
|
"format": {"type": "color", "args": ["lightness"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "volume",
|
|
"title": "Volume",
|
|
"type": "float",
|
|
"columnWidth": 60,
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "numberofcuts",
|
|
"title": "Number of Cuts",
|
|
"type": "integer",
|
|
"columnWidth": 60,
|
|
"format": {"type": "number", "args": []},
|
|
"sort": true,
|
|
"value": {"key": "cuts", "type": "length"}
|
|
},
|
|
{
|
|
"id": "cutsperminute",
|
|
"title": "Cuts per Minute",
|
|
"type": "float",
|
|
"columnWidth": 60,
|
|
"format": {"type": "number", "args": [3]},
|
|
"sort": true,
|
|
"value": {"key": "cuts", "type": "lengthperminute"}
|
|
},
|
|
{
|
|
"id": "words",
|
|
"title": "Number of Words",
|
|
"type": "integer",
|
|
"columnWidth": 60,
|
|
"format": {"type": "number", "args": []},
|
|
"sort": true,
|
|
"value": {"layer": "subtitles", "type": "words"}
|
|
},
|
|
{
|
|
"id": "wordsperminute",
|
|
"title": "Words per Minute",
|
|
"type": "float",
|
|
"columnWidth": 60,
|
|
"format": {"type": "number", "args": [3]},
|
|
"sort": true,
|
|
"value": {"layer": "subtitles", "type": "wordsperminute"}
|
|
},
|
|
{
|
|
"id": "size",
|
|
"title": "Size",
|
|
"type": "integer",
|
|
"capability": "canSeeFiles",
|
|
"columnWidth": 60,
|
|
"format": {"type": "value", "args": ["B"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "bitrate",
|
|
"title": "Bitrate",
|
|
"type": "integer",
|
|
"columnWidth": 60,
|
|
"format": {"type": "unit", "args": ["kbps"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "numberoffiles",
|
|
"title": "Number of Files",
|
|
"type": "integer",
|
|
"capability": "canSeeFiles",
|
|
"columnWidth": 60,
|
|
"sort": true,
|
|
"value": {"key": "files", "type": "length"}
|
|
},
|
|
{
|
|
"id": "user",
|
|
"title": "User",
|
|
"type": "string",
|
|
"capability": "canSeeFiles",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "filename",
|
|
"title": "Filename",
|
|
"type": ["string"],
|
|
"capability": "canSeeFiles",
|
|
"find": true
|
|
},
|
|
{
|
|
"id": "created",
|
|
"title": "Date Created",
|
|
"type": "date",
|
|
"columnWidth": 120,
|
|
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "modified",
|
|
"title": "Last Modified",
|
|
"type": "date",
|
|
"columnWidth": 90,
|
|
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "accessed",
|
|
"title": "Last Accessed",
|
|
"type": "date",
|
|
"capability": "canSeeAccessed",
|
|
"columnWidth": 90,
|
|
"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": "date", "args": ["%Y-%m-%d %H:%M:%S"]},
|
|
"sort": true
|
|
},
|
|
{
|
|
"id": "license",
|
|
"title": "License",
|
|
"type": ["string"],
|
|
"columnWidth": 120,
|
|
"filter": true,
|
|
"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"]
|
|
},
|
|
{
|
|
"id": "random",
|
|
"title": "Random",
|
|
"type": "integer",
|
|
"sort": true
|
|
}
|
|
],
|
|
"itemName": {
|
|
"singular": "Video",
|
|
"plural": "Videos"
|
|
},
|
|
"itemViews": [
|
|
{"id": "info", "title": "Info"},
|
|
{"id": "player", "title": "Player"},
|
|
{"id": "editor", "title": "Editor"},
|
|
{"id": "timeline", "title": "Timeline"},
|
|
{"id": "clips", "title": "Clips"},
|
|
{"id": "map", "title": "Map"},
|
|
{"id": "calendar", "title": "Calendar"},
|
|
{"id": "data", "title": "Data"},
|
|
{"id": "files", "title": "Files"}
|
|
],
|
|
"layers": [
|
|
{
|
|
"id": "places",
|
|
"title": "Places",
|
|
"canAddAnnotations": {"member": true, "staff": true, "admin": true},
|
|
"item": "Place",
|
|
"overlap": true,
|
|
"type": "place"
|
|
},
|
|
{
|
|
"id": "events",
|
|
"title": "Events",
|
|
"canAddAnnotations": {"member": true, "staff": true, "admin": true},
|
|
"item": "Event",
|
|
"overlap": true,
|
|
"type": "event"
|
|
},
|
|
{
|
|
"id": "keywords",
|
|
"title": "Keywords",
|
|
"canAddAnnotations": {"member": true, "staff": true, "admin": true},
|
|
"item": "Keyword",
|
|
"overlap": true,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"id": "descriptions",
|
|
"title": "Descriptions",
|
|
"canAddAnnotations": {"member": true, "staff": true, "admin": true},
|
|
"item": "Description",
|
|
"showInfo": true,
|
|
"type": "text"
|
|
},
|
|
{
|
|
"id": "transcripts",
|
|
"title": "Transcripts",
|
|
"canAddAnnotations": {"member": true, "staff": true, "admin": true},
|
|
"item": "Transcript",
|
|
"showInfo": true,
|
|
"type": "text"
|
|
}
|
|
],
|
|
"listViews": [
|
|
{"id": "list", "title": "as List"},
|
|
{"id": "grid", "title": "as Grid"},
|
|
//{"id": "info", "title": "with Info"},
|
|
{"id": "timelines", "title": "with Timelines"},
|
|
{"id": "clips", "title": "with Clips"},
|
|
//{"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": {
|
|
"importPosters": false,
|
|
"importFrames": false
|
|
},
|
|
"personalLists": [
|
|
{"title": "Favorites"}
|
|
],
|
|
"rightsLevel": {"member": 2, "staff": 2, "admin": 2},
|
|
"rightsLevels": [
|
|
{"name": "Public", "color": [128, 255, 128]},
|
|
{"name": "Restricted", "color": [255, 192, 128]},
|
|
{"name": "Private", "color": [255, 128, 128]}
|
|
],
|
|
"sendReferrer": true,
|
|
"site": {
|
|
"description": "Pad.ma is an online archive of densely text-annotated video material, primarily footage and not finished films. The entire collection is searchable and viewable online, and is free to download for non-commercial use.",
|
|
"email": {
|
|
// E-mail address in contact form (to)
|
|
"contact": "pad.ma@pad.ma",
|
|
"footer": "-- \nPad.ma - http://pad.ma",
|
|
"prefix": "Pad.ma News -",
|
|
// E-mail address uses by the system (from)
|
|
"system": "system@pad.ma"
|
|
},
|
|
"id": "padma",
|
|
"name": "Pad.ma",
|
|
"url": "pad.ma",
|
|
"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": "license", "title": "License"},
|
|
{"id": "contact", "title": "Contact"}
|
|
],
|
|
"timelines": [
|
|
{"id": "antialias", "title": "Anti-Alias"},
|
|
{"id": "slitscan", "title": "Slit-Scan"},
|
|
{"id": "keyframes", "title": "Key Frames"},
|
|
{"id": "audio", "title": "Audio"}
|
|
],
|
|
"totals": [
|
|
{"id": "items"},
|
|
{"id": "files", "admin": true},
|
|
{"id": "duration", "admin": true},
|
|
{"id": "size", "admin": true},
|
|
{"id": "pixels"}
|
|
],
|
|
"tv": {
|
|
"showLogo": false
|
|
},
|
|
"user": {
|
|
"level": "guest",
|
|
"ui": {
|
|
"annotationsCalendarSize": 128,
|
|
"annotationsFont": "small",
|
|
"annotationsMapSize": 128,
|
|
"annotationsRange": "position",
|
|
"annotationsSize": 256,
|
|
"annotationsSort": "position",
|
|
"clipsColumns": 2,
|
|
"columns": {
|
|
"Colors": {
|
|
"columns": ["title", "source", "project", "language", "hue", "saturation", "brightness"],
|
|
"columnWidth": {}
|
|
}
|
|
},
|
|
"filters": [
|
|
{"id": "source", "sort": [{"key": "name", "operator": "+"}]},
|
|
{"id": "project", "sort": [{"key": "name", "operator": "+"}]},
|
|
{"id": "topic", "sort": [{"key": "items", "operator": "-"}]},
|
|
{"id": "name", "sort": [{"key": "items", "operator": "-"}]},
|
|
{"id": "keywords", "sort": [{"key": "items", "operator": "-"}]},
|
|
{"id": "places", "sort": [{"key": "items", "operator": "-"}]}
|
|
],
|
|
"filtersSize": 176,
|
|
"find": {"conditions": [], "operator": "&"},
|
|
"followPlayer": true,
|
|
"icons": "frames",
|
|
"infoIconSize": 256,
|
|
"item": "",
|
|
"itemFind": "",
|
|
"itemSort": [{"key": "position", "operator": "+"}],
|
|
"itemView": "info",
|
|
"listColumns": ["title", "source", "project", "topic", "language", "duration"],
|
|
"listColumnWidth": {},
|
|
"listSelection": [],
|
|
"listSort": [{"key": "title", "operator": "+"}],
|
|
"listView": "grid",
|
|
"lists": {},
|
|
"mapFind": "",
|
|
"mapSelection": "",
|
|
"page": "",
|
|
"section": "items",
|
|
"showAnnotations": true,
|
|
"showAnnotationsCalendar": true,
|
|
"showAnnotationsMap": true,
|
|
"showBrowser": true,
|
|
"showCalendarControls": true, // fixme: should be false
|
|
"showFilters": true,
|
|
"showFlags": false,
|
|
"showHome": true,
|
|
"showIconBrowser": false,
|
|
"showInfo": true,
|
|
"showLayers": {
|
|
"places": false,
|
|
"events": false,
|
|
"keywords": true,
|
|
"descriptions": true,
|
|
"transcripts": true
|
|
},
|
|
"showMapControls": false,
|
|
"showMapLabels": false,
|
|
"showFolder": {
|
|
"items": {
|
|
"personal": true,
|
|
"favorite": true,
|
|
"featured": true,
|
|
"volumes": true
|
|
}
|
|
},
|
|
"showSidebar": true,
|
|
"showSitePosters": false,
|
|
"showTimeline": true,
|
|
"sidebarSize": 256,
|
|
"theme": "classic",
|
|
"videoMuted": false,
|
|
"videoPoints": {},
|
|
"videoResolution": 240,
|
|
"videoScale": "fit",
|
|
"videoSize": "large",
|
|
"videoTimeline": "antialias",
|
|
"videoView": "player",
|
|
"videoVolume": 1
|
|
},
|
|
"username": "",
|
|
"volumes": []
|
|
},
|
|
"userLevels": ["guest", "member", "staff", "admin"],
|
|
"video": {
|
|
"download": true,
|
|
"formats": ["webm", "mp4"],
|
|
"previewRatio": 1.3333333333,
|
|
"resolutions": [480, 240, 96]
|
|
}
|
|
}
|