update test, needs to run on to of pan.do/ra instance now
This commit is contained in:
parent
3a57ac389f
commit
05a922defb
1 changed files with 111 additions and 5 deletions
116
test/import.html
116
test/import.html
|
@ -2,6 +2,65 @@
|
|||
<html>
|
||||
<head>
|
||||
<script src="http://oxjs.org/js/jquery-1.4.2.min.js"></script>
|
||||
<script type="text/javascript" src="/static/oxjs/build/js/ox.js"></script>
|
||||
<script>
|
||||
pandora = {};
|
||||
pandora.request_url = '/api/';
|
||||
|
||||
pandora.request = function(fn, data, callback) {
|
||||
data = JSON.stringify(data);
|
||||
return jQuery.ajax({
|
||||
type: "POST",
|
||||
url: this.request_url,
|
||||
dataType: "json",
|
||||
data: {"action": fn, data: data},
|
||||
success: function(response) {
|
||||
if (typeof callback != "undefined")
|
||||
callback(response);
|
||||
console.log(response);
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError){
|
||||
var response = {};
|
||||
response.status = {code:xhr.status, text:xhr.statusText};
|
||||
|
||||
//FIXME: this should only happen if debugging/admin
|
||||
error = jQuery('<iframe>').css({width:'99%', height: '99%'});
|
||||
var debug = new Ox.Dialog({
|
||||
title: "API Request failed: " + fn,
|
||||
buttons: [
|
||||
new Ox.Button({value:'Close'})
|
||||
.click(function() {
|
||||
debug.close();
|
||||
})
|
||||
],
|
||||
width: 1000,
|
||||
height: 310
|
||||
}).append(error).open();
|
||||
|
||||
//write error response from server into iframe
|
||||
//this might be required instead
|
||||
/*
|
||||
var ifrm = error[0];
|
||||
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
|
||||
var ifrm = error[0].contentWindow;
|
||||
ifrm.document.open();
|
||||
ifrm.document.write(xhr.responseText);
|
||||
ifrm.document.close();
|
||||
*/
|
||||
|
||||
var doc = error[0].contentDocument || error[0].contentWindow.document;
|
||||
doc.open();
|
||||
doc.write(xhr.responseText);
|
||||
doc.close();
|
||||
|
||||
if (typeof callback != "undefined")
|
||||
callback(response);
|
||||
console.log(response);
|
||||
|
||||
}
|
||||
});
|
||||
};
|
||||
</script>
|
||||
<script>
|
||||
|
||||
var _ids = new Array();
|
||||
|
@ -47,7 +106,53 @@ function for_each_sorted(elements, callback) {
|
|||
|
||||
function update() {
|
||||
var updating = true;
|
||||
ox.update(function(result) { updating = false });
|
||||
ox.update(function(result) {
|
||||
updating = false;
|
||||
ox.volumes(function(result) {
|
||||
var volumes = JSON.parse(result);
|
||||
for(volume in volumes) {
|
||||
ox.files(volume, function(result) {
|
||||
var _files = [];
|
||||
var _info = {};
|
||||
var data = JSON.parse(result);
|
||||
$.each(data, function(folder, files) {
|
||||
$.each(files, function(f, info) {
|
||||
var f = {
|
||||
oshash: info.oshash,
|
||||
name: f,
|
||||
folder: folder,
|
||||
ctime: info.ctime, atime: info.atime, mtime: info.mtime
|
||||
};
|
||||
_files.push(f);
|
||||
_info[info.oshash] = info;
|
||||
});
|
||||
});
|
||||
pandora.request('update', {
|
||||
'volume': volume, 'files': _files
|
||||
}, function(result) {
|
||||
var data = {'info': {}};
|
||||
if (result.data.info.length>0) {
|
||||
$.each(_info, function(oshash, info) {
|
||||
if($.inArray(oshash, result.data.info) >= 0) {
|
||||
data.info[oshash] = info;
|
||||
}
|
||||
});
|
||||
pandora.request('update', data, function(result) {
|
||||
console.log(result);
|
||||
});
|
||||
}
|
||||
$.each(result.data.data, function(i, oshash) {
|
||||
$('#' + oshash).css('background', 'red');
|
||||
$('#' + oshash).parent().css('background', 'orange');
|
||||
});
|
||||
$.each(result.data.file, function(i, oshash) {
|
||||
$('#' + oshash).css('background', 'blue');
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
var getFiles = function() {
|
||||
ox.volumes(function(result) {
|
||||
var volumes = JSON.parse(result);
|
||||
|
@ -62,6 +167,7 @@ function update() {
|
|||
$('#files').append($volume);
|
||||
ox.files(volume, function(result) {
|
||||
var data = JSON.parse(result);
|
||||
var _files = [];
|
||||
$.each(data, function(folder, files) {
|
||||
if(!folder) folder = "rootfolder";
|
||||
var folderId = 'folder_'+safe_id(folder);
|
||||
|
@ -72,7 +178,7 @@ function update() {
|
|||
$volume.append($folder);
|
||||
}
|
||||
for_each_sorted(files, function(f, info) {
|
||||
var fileId = "file_"+safe_id(f);
|
||||
var fileId = info.oshash;
|
||||
var $file = $('#'+fileId);
|
||||
if($file.length==0) {
|
||||
$file = $('<div>').attr('id', fileId).html(f).hide();
|
||||
|
@ -91,13 +197,13 @@ function update() {
|
|||
getFiles();
|
||||
}
|
||||
|
||||
function addVolume() {
|
||||
console.log(ox.addVolume())
|
||||
function setLocation(name) {
|
||||
console.log(ox.setLocation(name))
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<input type="button" onClick="addVolume()" value="Add Volume">
|
||||
<input type="button" onClick="setLocation('test')" value="Set Location">
|
||||
<input type="button" onClick="update()" value="Update">
|
||||
<div id="files">
|
||||
|
||||
|
|
Loading…
Reference in a new issue