'use strict'; pandora.cleanupDate = function(value) { if (/\d{2}-\d{2}-\d{4}/.test(value)) { value = Ox.reverse(value.split('-')).join('-') } if (/\d{4}i\/\d{2}\/\d{d}/.test(value)) { value = value.split('/').join('-') } if (/\d{2}\/\d{2}\/\d{4}/.test(value)) { value = Ox.reverse(value.split('/')).join('-') } return value }; pandora.renderRightsLevel = function(that, $rightsLevel, data, isMixed, isMultiple, canEdit) { var ui = pandora.user.ui, rightsLevels = pandora.site.rightsLevels.map(function(rightsLevel) { return rightsLevel.name; }).concat(isMultiple ? ['Mixed'] : []), rightsLevel = isMixed.rightslevel ? rightsLevels.length - 1 : data.rightslevel, $capabilities, $rightsLevelElement = getRightsLevelElement(rightsLevel), $rightsLevelSelect; $rightsLevel.empty(); if (canEdit) { $rightsLevelSelect = Ox.Select({ items: pandora.site.rightsLevels.map(function(rightsLevel, i) { return {id: i, title: Ox._(rightsLevel.name)}; }).concat(isMultiple ? [ {id: rightsLevels.length - 1, title: Ox._('Mixed'), disabled: true} ] : []), width: 128, value: rightsLevel }) .addClass('OxColor OxColorGradient') .css({ marginBottom: '4px', background: $rightsLevelElement.css('background') }) .data({OxColor: $rightsLevelElement.data('OxColor')}) .bindEvent({ change: function(event) { var rightsLevel = event.value; $rightsLevelElement = getRightsLevelElement(rightsLevel); $rightsLevelSelect .css({background: $rightsLevelElement.css('background')}) .data({OxColor: $rightsLevelElement.data('OxColor')}) if (rightsLevel < pandora.site.rightsLevels.length) { renderCapabilities(rightsLevel); var edit = { id: isMultiple ? ui.listSelection : data.id, rightslevel: rightsLevel }; pandora.api.edit(edit, function(result) { that.triggerEvent('change', Ox.extend({}, 'rightslevel', rightsLevel)); }); } } }) .appendTo($rightsLevel); } else { $rightsLevelElement .css({ marginBottom: '4px' }) .appendTo($rightsLevel); } $capabilities = $('
').appendTo($rightsLevel); !isMixed.rightslevel && renderCapabilities(data.rightslevel); function getRightsLevelElement(rightsLevel) { return Ox.Theme.formatColorLevel(rightsLevel, rightsLevels) } function renderCapabilities(rightsLevel) { var capabilities = [].concat( canEdit ? [{name: 'canSeeItem', symbol: 'Find'}] : [], [ {name: 'canPlayClips', symbol: 'PlayInToOut'}, {name: 'canPlayVideo', symbol: 'Play'}, {name: 'canDownloadVideo', symbol: 'Download'} ] ), userLevels = canEdit ? pandora.site.userLevels : [pandora.user.level]; $capabilities.empty(); userLevels.forEach(function(userLevel, i) { var $element, $line = $('
') .css({ height: '16px', marginBottom: '4px' }) .appendTo($capabilities); if (canEdit) { $element = Ox.Theme.formatColorLevel(i, userLevels.map(function(userLevel) { return Ox.toTitleCase(userLevel); }), [0, 240]); Ox.Label({ textAlign: 'center', title: Ox._(Ox.toTitleCase(userLevel)), width: 60 }) .addClass('OxColor OxColorGradient') .css({ float: 'left', height: '12px', paddingTop: '2px', background: $element.css('background'), fontSize: '8px', color: $element.css('color') }) .data({OxColor: $element.data('OxColor')}) .appendTo($line); } capabilities.forEach(function(capability) { var hasCapability = pandora.hasCapability(capability.name, userLevel) >= rightsLevel, $element = Ox.Theme.formatColorLevel(hasCapability, ['', '']); Ox.Button({ tooltip: Ox._('{0} ' + (hasCapability ? 'can' : 'can\'t') + ' ' + Ox.toSlashes(capability.name) .split('/').slice(1).join(' ') .toLowerCase() .replace('see item', 'see the item') .replace('play video', 'play the full video') .replace('download video', 'download the video'), [canEdit ? Ox._(Ox.toTitleCase(userLevel)) : Ox._('You')]), title: capability.symbol, type: 'image' }) .addClass('OxColor OxColorGradient') .css({background: $element.css('background')}) .css('margin' + (canEdit ? 'Left' : 'Right'), '4px') .data({OxColor: $element.data('OxColor')}) .appendTo($line); }); if (!canEdit && Ox.getObjectById(pandora.site.sitePages, 'rights')) { Ox.Button({ title: Ox._('Help'), tooltip: Ox._('About Rights'), type: 'image' }) .css({marginLeft: '52px'}) .bindEvent({ click: function() { pandora.UI.set({page: 'rights'}); } }) .appendTo($line); } }); } }