summaryrefslogtreecommitdiffabout
path: root/content/fireflix.js
Side-by-side diff
Diffstat (limited to 'content/fireflix.js') (more/less context) (ignore whitespace changes)
-rw-r--r--content/fireflix.js2
1 files changed, 2 insertions, 0 deletions
diff --git a/content/fireflix.js b/content/fireflix.js
index 82c7b0c..daf4929 100644
--- a/content/fireflix.js
+++ b/content/fireflix.js
@@ -1,136 +1,138 @@
function splitascii(s) {
var rv='';
for(var i=0;i<s.length;++i) {
var w = s.charCodeAt(i);
rv += String.fromCharCode(
w&0xff, (w>>8)&0xff );
}
return rv;
}
var fireflix = {
flickr: new Flickr(),
init: function() {
this.cmd_auth_auth = document.getElementById('cmd_auth_auth');
this.cmd_auth_done = document.getElementById('cmd_auth_done');
this.cmd_auth_unauth = document.getElementById('cmd_auth_unauth');
this.menu_auth_done = document.getElementById('menu_auth_done');
this.b_auth = document.getElementById('b_auth');
this.b_auth_done = document.getElementById('b_auth_done');
this.auth_info = document.getElementById('auth_info');
this.loc_strings = document.getElementById('loc_strings');
this.build_menus();
this.cmd_set_props = document.getElementById('cmd_set_props');
this.foundphotos.init(this);
this.photosets.init(this);
this.photoset.init(this);
this.uploads.init(this);
this.uploadObserver.init(this);
this.flickr.api_key = '9c43cd66947a57e6f29db1a9da3f72e3';
this.flickr.api_shs = '9c33c9e2f0f0cfd5';
this.flickr.prefs_root = 'net.klever.kin.fireflix';
this.flickr.load_token();
document.getElementById('setslist').view = this.photosets;
document.getElementById('setphotos').view = this.photoset;
document.getElementById('uploadlist').view = this.uploads;
this.no_auth_info_label = this.auth_info.value;
this.set_auth_state(this.flickr.token,false);
if(this.flickr.token) {
this.refresh_stuff();
+ }else{
+ this.on_cmd_auth();
}
},
set_auth_state: function(au,inp) { /* authorized, in progress */
this.cmd_auth_unauth.disabled = !au;
this.b_auth.hidden = au || inp;
this.b_auth_done.hidden = !inp;
this.menu_auth_done.hidden = !inp;
this.cmd_auth_done.setAttribute('disabled',!inp);
this.auth_info.disabled = !au;
if(au) {
this.auth_info.value = this.flickr.user.fullname+' ['+this.flickr.user.username+']'; /* TODO: move to locale */
}else{
this.auth_info.value = this.no_auth_info_label;
}
},
on_cmd_auth: function() {
var _this = this;
this.flickr.authorize_0(
function() {
_this.set_auth_state(_this.flickr.token,true);
}, function(x,s,c,m) {
_this.flickr_failure(x,s,c,m);
}
);
},
on_cmd_auth_done: function() {
this.set_auth_state(this.flickr.token,false);
var _this = this;
this.flickr.authorize_1(
function() {
_this.flickr.save_token();
_this.refresh_stuff();
_this.set_auth_state(_this.flickr.token,false);
_this.auth_info.value =
_this.flickr.user.fullname+' ['+_this.flickr.user.username+']';
}, function(x,s,c,m) {
_this.set_auth_state(_this.flickr.token,false); /* XXX: no reset token? */
_this.flickr_failure(x,s,c,m);
}
);
},
on_cmd_auth_unauth: function() {
this.flickr.reset_token();
this.set_auth_state(false,false);
},
refresh_sets: function() { this.photosets.refresh_sets(); },
refresh_stuff: function() {
this.refresh_sets();
this.refresh_user_tags();
},
/* photoset treeview */
photoset: {
photos: new Array(),
fireflix: null,
init: function(f) {
this.fireflix = f;
},
rowCount: 0,
getCellText: function(r,c) {
var p = this.photos[r];
if(c.id=='sp_title') return p.title;
if(c.id=='sp_taken') return p.datetaken;
if(c.id=='sp_upload') return p.dateupload; /* TODO: unixtime conversion */
return c.id;
},
setTree: function(t) { this.tree = t },
isContainer: function(r) { return false; },
isSeparator: function(r) { return false; },
isSorted: function(r) { return false; },
getLevel: function(r) { return 0; },
getImageSrc: function(r,c) { return null },
getRowProperties: function(r,p) {},
getCellProperties: function(cid,cel,p) {},
getColumnProperties: function(cid,cel,p) { },
cycleHeader: function(cid,e) { },
getParentIndex: function(r) { return -1; },
drop: function(r,o) { },
canDropBeforeAfter: function(r,b) { return false },
importXPR: function(xp) {
this.tree.beginUpdateBatch();
this.photos = new Array();
var n; while(n=xp.iterateNext()) {
this.photos.push(new Photo(n));
}
this.rowCount = this.photos.length;
this.tree.endUpdateBatch();
},
load_photos: function(psid) {
var _this = this;
this.fireflix.flickr.api_call(
{
method: 'flickr.photosets.getPhotos',
auth_token: 'default',