'use strict'; // FIXME: remove! pandora.ui.videoView = function(isEmbed) { var ui = pandora.user.ui, itemsQuery, query, that = Ox.Element().css({ width: '100%', hegiht: '100%', }).update({ sort: function() { //fixme just update player items loadPlayer(); } }), range = [0, 500], clips = [], player; if (!ui.item) { itemsQuery = ui.find; query = {conditions: [], operator: '&'}; // if the item query contains a layer condition, // then this condition is added to the clip query itemsQuery.conditions.forEach(function(condition) { if ( condition.key == 'annotations' || Ox.getIndexById(pandora.site.layers, condition.key) > -1 ) { query.conditions.push(condition); } }); } else { itemsQuery = { conditions:[{key: 'id', value: ui.item, operator: '=='}], operator: '&' }; query = { conditions: ui.itemFind === '' ? [] : [{ key: 'annotations', value: ui.itemFind, operator: '=' }], operator: '&' }; } loadPlayer(); function loadPlayer() { pandora.api.findClips({ query: query, itemsQuery: itemsQuery, keys: ['id', 'in', 'out', 'durations', 'parts', 'streams'], range: range, sort: pandora.user.ui.listSort }, function(result) { pandora.$ui.statusbar && pandora.$ui.statusbar.set('total', { items: result.data.items.length }); player && player.remove(); player = Ox.VideoPlayer({ controlsBottom: ['play', 'previous', 'next', 'volume'], controlsTop: (isEmbed ? [] : ['fullscreen']).concat(['scale']), enableMouse: true, height: getHeight(), paused: true, position: 0, video: Ox.flatten(result.data.items.map(function(clip) { clip.item = clip.id.split('/')[0]; return pandora.getClipVideos(clip); })), width: getWidth() }).appendTo(that); }); } function getHeight() { return isEmbed ? window.innerHeight : that.height(); } function getWidth() { return isEmbed ? window.innerWidth : that.width(); } that.reloadList = function() { loadPlayer(); }; that.size = function() { player && player.options({ height: getHeight(), width: getWidth(), }) } return that; };