From 47d059d17cf346a4e031ef89ddd386a6f0c220f4 Mon Sep 17 00:00:00 2001
From: j <0x006A@0x2620.org>
Date: Tue, 8 Feb 2011 17:37:05 +0530
Subject: [PATCH] basic flipbook embed
---
static/js/pandora.embed.js | 65 +++++++++++++++++++++++++++++++-------
1 file changed, 53 insertions(+), 12 deletions(-)
diff --git a/static/js/pandora.embed.js b/static/js/pandora.embed.js
index 844d4198..5693924b 100755
--- a/static/js/pandora.embed.js
+++ b/static/js/pandora.embed.js
@@ -4,17 +4,58 @@
var pandora = new Ox.App({
apiURL: '/api/',
- config: '/site.json',
- init: 'hello',
}).launch(function(data) {
- var d = $('
').html('Pan.do/ra embed')
- .css({'position': 'absolute',
- 'padding-top': $(window).height()/4,
- 'padding-left':$(window).width()/4});
- $(document.body).append(d);
- var d = $('
').html('here be unicorns')
- .css({'position': 'absolute',
- 'padding-top': $(window).height()/2,
- 'padding-left':$(window).width()/2});
- $(document.body).append(d);
+ var ui = {};
+ var app = {
+ info: function(item) {
+ var that = new Ox.Element()
+ .append(
+ ui.infoTimeline = new Ox.Element('img')
+ .css({
+ position: 'absolute',
+ left: 0,
+ bottom: 0,
+ height: '16px',
+ })
+ .attr('src', '/' + item + '/timeline.16.png')
+ )
+ .append(
+ ui.infoStill = new app.flipbook(item)
+ .css({
+ position: 'absolute',
+ left: 0,
+ width: '100%',
+ height: $(document).height()-16 + 'px',
+ })
+ )
+ return that;
+ },
+ flipbook: function(item) {
+ var that = new Ox.Flipbook({
+ }).bindEvent('click', function(event, data) {
+ var item_url = document.location.origin + '/' + item;
+ window.top.location.href = item_url + '/timeline#t=' + data.position;
+ });
+ pandora.api.getItem(item, function(result) {
+ var duration = result.data.item.duration,
+ posterFrame = result.data.item.posterFrame || parseInt(duration/2),
+ steps = 24,
+ framePrefix = '/' + item + '/frame/' + that.width() + '/',
+ frames = {};
+ Ox.range(0, duration, duration/steps).forEach(function(position) {
+ position = parseInt(position);
+ frames[position] = framePrefix + position + '.jpg';
+ });
+ that.options({
+ frames: frames,
+ icon: framePrefix + posterFrame + '.jpg',
+ duration: duration
+ });
+ });
+ return that;
+ }
+ };
+ var item = document.location.pathname.split('/')[1];
+ ui.info= new app.info(item)
+ .appendTo(document.body);
});