make rights levels editable
This commit is contained in:
parent
ea52870db6
commit
a13c8b8545
3 changed files with 61 additions and 23 deletions
|
@ -14,6 +14,7 @@
|
|||
*/
|
||||
"capabilities": {
|
||||
"canDeleteItems": {"admin": true},
|
||||
"canDownloadVideo": {"guest": 0, "member": 0, "friend": 3, "staff": 4, "admin": 4},
|
||||
"canEditMetadata": {"staff": true, "admin": true},
|
||||
"canPlayClips": {"guest": 2, "member": 2, "friend": 3, "staff": 4, "admin": 4},
|
||||
"canPlayVideo": {"guest": 1, "member": 1, "friend": 3, "staff": 4, "admin": 4},
|
||||
|
@ -527,11 +528,11 @@
|
|||
],
|
||||
"rightsLevel": {"member": 5, "staff": 4, "admin": 3},
|
||||
"rightsLevels": [
|
||||
{"name": "Public", "color": [128, 255, 128], "description": "Everyone can see and play."},
|
||||
{"name": "Relaxed", "color": [192, 255, 128], "description": "Guests can't play video."},
|
||||
{"name": "Regular", "color": [255, 255, 128], "description": "Guests can't play clips, members can't play video."},
|
||||
{"name": "Restricted", "color": [255, 192, 128], "description": "Only friend, staff and admin can see and play."},
|
||||
{"name": "Private", "color": [255, 128, 128], "description": "Only staff and admin can see and play."}
|
||||
{"name": "Public", "color": [128, 255, 128], "description": "Everyone can play and download."},
|
||||
{"name": "Relaxed", "color": [192, 255, 128], "description": "Only friends, staff and admins can download."},
|
||||
{"name": "Regular", "color": [255, 255, 128], "description": "Only friends, staff and admins can play video."},
|
||||
{"name": "Restricted", "color": [255, 192, 128], "description": "Only friends, staff and admins can play clips."},
|
||||
{"name": "Private", "color": [255, 128, 128], "description": "Only staff and admins can see."}
|
||||
],
|
||||
"sendReferrer": false,
|
||||
"site": {
|
||||
|
|
|
@ -59,6 +59,9 @@ pandora.UI = (function() {
|
|||
add['lists.' + that.encode(list)] = {};
|
||||
}
|
||||
if (list != self.previousUI._list) {
|
||||
if (!pandora.user.ui.lists[list]) {
|
||||
add['lists.' + that.encode(list)] = {};
|
||||
}
|
||||
Ox.forEach(listSettings, function(listSetting, setting) {
|
||||
if (!pandora.user.ui.lists[list]) {
|
||||
// add default list setting and copy to settings
|
||||
|
|
|
@ -351,30 +351,54 @@ pandora.ui.infoView = function(data) {
|
|||
|
||||
$('<div>').css({height: '8px'}).appendTo($text);
|
||||
|
||||
['hue', 'saturation', 'lightness'].forEach(function(key) {
|
||||
['hue', 'saturation', 'lightness', 'volume'].forEach(function(key) {
|
||||
$('<div>')
|
||||
.css({marginBottom: '4px'})
|
||||
.append(formatKey(key, true))
|
||||
.append(Ox.formatColor(data[key] || 0, key))
|
||||
.appendTo($statistics);
|
||||
.css({marginBottom: '4px'})
|
||||
.append(formatKey(key, true))
|
||||
.append(Ox.formatColor(data[key] || 0, key == 'volume' ? 'lightness' : key))
|
||||
.appendTo($statistics);
|
||||
});
|
||||
|
||||
var rightsLevel = pandora.site.rightsLevels[data['rightsLevel']];
|
||||
var rightsLevelCSS = getRightsLevelCSS(data.rightsLevel),
|
||||
$rightsLevel, $rightsLevelSelect, $rightsLevelDescription;
|
||||
if (canEdit) {
|
||||
$rightsLevel = $('<div>');
|
||||
$rightsLevelSelect = Ox.Select({
|
||||
items: pandora.site.rightsLevels.map(function(rightsLevel, i) {
|
||||
return {id: i, title: rightsLevel.name, checked: i == data.rightsLevel};
|
||||
}),
|
||||
width: 128
|
||||
})
|
||||
.css(Ox.extend({
|
||||
marginBottom: '4px'
|
||||
}, rightsLevelCSS))
|
||||
.bindEvent({
|
||||
change: function(event) {
|
||||
var rightsLevel = event.selected[0].id;
|
||||
$rightsLevelSelect.css(getRightsLevelCSS(rightsLevel));
|
||||
$rightsLevelDescription.html(pandora.site.rightsLevels[rightsLevel].description);
|
||||
pandora.api.edit({id: data.id, rightsLevel: rightsLevel}, function(result) {
|
||||
// ...
|
||||
});
|
||||
}
|
||||
})
|
||||
.appendTo($rightsLevel);
|
||||
$rightsLevelDescription = $('<div>')
|
||||
.css({})
|
||||
.html(pandora.site.rightsLevels[data.rightsLevel].description)
|
||||
.appendTo($rightsLevel)
|
||||
} else {
|
||||
$rightsLevel = $('<div>')
|
||||
.css(Ox.extend({
|
||||
paddingLeft: '3px',
|
||||
borderRadius: '4px'
|
||||
}, rightsLevelCSS))
|
||||
.html(pandora.site.rightsLevels[data.rightsLevel].name);
|
||||
}
|
||||
$('<div>')
|
||||
.css({marginBottom: '4px'})
|
||||
.append(formatKey('Rights Level', true))
|
||||
.append(
|
||||
$('<div>')
|
||||
.css({
|
||||
paddingLeft: '3px',
|
||||
borderRadius: '4px',
|
||||
backgroundColor: 'rgb(' + rightsLevel.color.map(function(value) {
|
||||
return value - 128;
|
||||
}).join(', ') + ')',
|
||||
color: 'rgb(' + rightsLevel.color.join(', ') + ')'
|
||||
})
|
||||
.html(rightsLevel.name)
|
||||
)
|
||||
.append($rightsLevel)
|
||||
.appendTo($statistics);
|
||||
|
||||
if (canEdit) {
|
||||
|
@ -407,6 +431,16 @@ pandora.ui.infoView = function(data) {
|
|||
}).join(', ');
|
||||
}
|
||||
|
||||
function getRightsLevelCSS(rightsLevel) {
|
||||
rightsLevel = pandora.site.rightsLevels[rightsLevel];
|
||||
return {
|
||||
background: 'rgb(' + rightsLevel.color.map(function(value) {
|
||||
return value - 128;
|
||||
}).join(', ') + ')',
|
||||
color: 'rgb(' + rightsLevel.color.join(', ') + ')'
|
||||
};
|
||||
}
|
||||
|
||||
pandora.createLinks($text);
|
||||
|
||||
function renderList() {
|
||||
|
|
Loading…
Reference in a new issue