add some comments to 0xdb.jsonc

This commit is contained in:
rolux 2011-10-13 17:35:33 +00:00
parent d7092ad856
commit c84c5371fa
2 changed files with 38 additions and 6 deletions

View file

@ -6,8 +6,11 @@
{ {
/* /*
Capabilities are per user level. Capabilities are per user level.
They can either be general (true/false) They can either be general:
or related to items (max. item rights level) {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": { "capabilities": {
"canDeleteItems": {"admin": true}, "canDeleteItems": {"admin": true},
@ -19,15 +22,20 @@
"canSeeItem": {"guest": 2, "member": 2, "friend": 3, "staff": 4, "admin": 4}, "canSeeItem": {"guest": 2, "member": 2, "friend": 3, "staff": 4, "admin": 4},
"canSeeExtraItemViews": {"friend": true, "staff": true, "admin": true} "canSeeExtraItemViews": {"friend": 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": [ "clipKeys": [
{"id": "text", "title": "Text", "type": "string"}, {"id": "text", "title": "Text", "type": "string"},
{"id": "position", "title": "Position", "type": "float", "sortOperator": "-"}, {"id": "position", "title": "Position", "type": "float", "sortOperator": "+"},
{"id": "duration", "title": "Duration", "type": "float"}, {"id": "duration", "title": "Duration", "type": "float"},
{"id": "hue", "title": "Hue", "type": "float", "sortOperator": "-"}, {"id": "hue", "title": "Hue", "type": "float", "sortOperator": "+"},
{"id": "saturation", "title": "Saturation", "type": "float"}, {"id": "saturation", "title": "Saturation", "type": "float"},
{"id": "lightness", "title": "Lightness", "type": "float"}, {"id": "lightness", "title": "Lightness", "type": "float"},
{"id": "volume", "title": "Volume", "type": "float"} {"id": "volume", "title": "Volume", "type": "float"}
], ],
// fixme: either this, or group: true in itemKeys, but not both
"groups": [ "groups": [
{"id": "director", "title": "Director", "type": "string"}, {"id": "director", "title": "Director", "type": "string"},
{"id": "country", "title": "Country", "type": "string"}, {"id": "country", "title": "Country", "type": "string"},
@ -41,6 +49,27 @@
{"id": "actor", "title": "Actor", "type": "string"}, {"id": "actor", "title": "Actor", "type": "string"},
{"id": "keyword", "title": "Keyword", "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
format: {type: "...", args: [...]}, for special formatting
(Ox.formatType(args) will be called)
group: if true, one can group results by this key
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": [ "itemKeys": [
{ {
"id": "*", "id": "*",
@ -82,7 +111,7 @@
{ {
"id": "year", "id": "year",
"title": "Year", "title": "Year",
"type": "year", "type": "year", // fixme: do we need this?
"autocomplete": true, "autocomplete": true,
"columnWidth": 60, "columnWidth": 60,
"find": true, "find": true,
@ -447,6 +476,10 @@
"value": "capability" "value": "capability"
} }
], ],
/*
itemName specifies how items are being referred to.
Anything excessively long may cause layout errors.
*/
"itemName": { "itemName": {
"singular": "Movie", "singular": "Movie",
"plural": "Movies" "plural": "Movies"

View file

@ -90,7 +90,6 @@ pandora.UI = (function() {
} }
}); });
[args, add].forEach(function(obj, isAdd) { [args, add].forEach(function(obj, isAdd) {
Ox.print('UUU', obj)
Ox.forEach(obj, function(val, key) { Ox.forEach(obj, function(val, key) {
// make sure to not split at escaped dots ('\.') // make sure to not split at escaped dots ('\.')
var keys = key.replace(/\\\./g, '\n').split('.').map(function(key) { var keys = key.replace(/\\\./g, '\n').split('.').map(function(key) {