Merge branch 'master' of lattuga.net:kiki/arkiwi_boilerplate

This commit is contained in:
cri 2015-09-13 02:07:28 +02:00
commit 9d9df3c449
4 changed files with 166 additions and 47 deletions

View file

@ -25,16 +25,6 @@
<link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.css">
<link rel="stylesheet" href="styles/main.css">
<!-- endbuild -->
<!-- Latest compiled and minified CSS -->
<!--<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">-->
<!-- Optional theme -->
<!--<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">-->
<!-- Latest compiled and minified JavaScript -->
<!--<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>-->
</head>
<body>

View file

@ -15,10 +15,35 @@
var ARKIWI = ARKIWI || {};
ARKIWI.Arkiwi = function (aggregator, assetStore, defaultParameters, formName, sessionUploadProgressName) {
this.assetStore = assetStore;
ARKIWI.Aggregator = function (aggregator, defaultParameters) {
this.aggregator = aggregator;
this.defaultParameters = defaultParameters || '';
};
ARKIWI.Aggregator.constructor = ARKIWI.Aggregator;
/* Esegue un ricerca sull'aggregatore */
ARKIWI.Aggregator.prototype.search = function (query, callback, jailFolder) {
var sanitizedQuery = query;
if (jailFolder) {
//FIXME non c'è controllo sul contenuto di jailFolder
sanitizedQuery = '+file:' + jailFolder + '* AND ' + query;
}
sanitizedQuery = window.btoa(sanitizedQuery); //convert to Base64
$.getJSON(this.aggregator + '/search64/' + sanitizedQuery + '/json/?' + this.defaultParameters, function (result) {
if (callback != undefined)
callback(result);
}).fail(function (error) {
throw 'Arkiwi.search(): status ' + status + ' error ' + error.responseText;
});
};
ARKIWI.AssetStore = function (assetStore, defaultParameters, formName, sessionUploadProgressName) {
this.assetStore = assetStore;
this.defaultParameters = defaultParameters || '';
this.formName = formName || 'arkiwiUploadForm';
this.sessionUploadProgressName = sessionUploadProgressName || 'PHP_SESSION_UPLOAD_PROGRESS';
@ -28,10 +53,10 @@ ARKIWI.Arkiwi = function (aggregator, assetStore, defaultParameters, formName, s
$(document.body).append('<iframe id="arkiwi_hidden_iframe" name="arkiwi_hidden_iframe" src="about:blank" style="visibility: hidden;"></iframe>');
};
ARKIWI.Arkiwi.constructor = ARKIWI.Arkiwi;
ARKIWI.AssetStore.constructor = ARKIWI.AssetStore;
/* Inizializza la sessione di dialogo con l'asset store. */
ARKIWI.Arkiwi.prototype.create = function (callbacks) {
ARKIWI.AssetStore.prototype.create = function (callbacks) {
$.ajax({
url: this.assetStore + '/create/?' + this.defaultParameters,
type: 'GET',
@ -58,7 +83,7 @@ ARKIWI.Arkiwi.prototype.create = function (callbacks) {
};
/* Invia un file all'asset store. */
ARKIWI.Arkiwi.prototype.upload = function (form, destinationFolderBase64, callbacks) {
ARKIWI.AssetStore.prototype.upload = function (form, destinationFolderBase64, callbacks) {
form = $(form);
form.attr('method', 'POST');
@ -90,7 +115,7 @@ ARKIWI.Arkiwi.prototype.upload = function (form, destinationFolderBase64, callba
};
/* Aggiunge o sovrascrive i metadati di un file. */
ARKIWI.Arkiwi.prototype.metadata = function (jsonKVString, callback) {
ARKIWI.AssetStore.prototype.metadata = function (jsonKVString, callback) {
$.ajax({
url: this.assetStore + '/metadata/' + this.sessionId + '/?' + this.defaultParameters,
type: 'POST',
@ -111,7 +136,7 @@ ARKIWI.Arkiwi.prototype.metadata = function (jsonKVString, callback) {
};
/* Cancella un metadato da un file */
ARKIWI.Arkiwi.prototype.removeMetadata = function (jsonKVString, callback) {
ARKIWI.AssetStore.prototype.removeMetadata = function (jsonKVString, callback) {
$.ajax({
url: this.assetStore + '/removemetadata/' + this.sessionId + '/?' + this.defaultParameters,
type: 'POST',
@ -132,7 +157,7 @@ ARKIWI.Arkiwi.prototype.removeMetadata = function (jsonKVString, callback) {
};
/* Chiude la sessione con l'asset store */
ARKIWI.Arkiwi.prototype.close = function (callback) {
ARKIWI.AssetStore.prototype.close = function (callback) {
$.ajax({
url: this.assetStore + '/close/' + this.sessionId + '/?' + this.defaultParameters,
type: 'GET',
@ -151,32 +176,3 @@ ARKIWI.Arkiwi.prototype.close = function (callback) {
complete: function (xhr, status) {}
});
};
/* Chiede all'aggregatore i metadati su una cartella o un file. */
ARKIWI.Arkiwi.prototype.path = function (path, callback, notBase64) {
var pathType = notBase64 ? 'path' : 'path64';
$.getJSON(this.aggregator + '/' + pathType + '/' + path + '/json/?' + this.defaultParameters, function (result) {
if (callback != undefined)
callback(result);
}).fail(function (error) {
throw 'Arkiwi.path(): status ' + status + ' error ' + error.responseText;
});
};
/* Esegue un ricerca sull'aggregatore */
ARKIWI.Arkiwi.prototype.search = function (query, callback, jailFolder) {
var sanitizedQuery = query;
if (jailFolder) {
sanitizedQuery = '+file:' + jailFolder + '* AND ' + query;
}
sanitizedQuery = window.btoa(sanitizedQuery); //convert to Base64
$.getJSON(this.aggregator + '/search64/' + sanitizedQuery + '/json/?' + this.defaultParameters, function (result) {
if (callback != undefined)
callback(result);
}).fail(function (error) {
throw 'Arkiwi.search(): status ' + status + ' error ' + error.responseText;
});
};

61
app/scripts/upload.js Normal file
View file

@ -0,0 +1,61 @@
/*------------------------------------------------------------------------------------------------------------------------
@package: arkiwiJsBoilerplate
@author: cek
@www: arkiwi.oeg
@copyright: COPYRIGHT 18 cek
@license: MIT
=============================================================================
Filename: upload.js
=============================================================================
This file is the main entry point for js on the arkiwiJsBoilerplate app.
--------------------------------------------------------------------------------------------------------------------- */
/* MODIFICARE CON GLI URL DESIDERATI */
var ASSETSTORE = 'http://upload.arkiwi.org/arav_up_api';
var AGGREGATOR = 'http://www.arkiwi.org';
/*************************************/
var arkiwi = {};
var currentFileName = '';
$(document).ready(function () {
arkiwi = new ARKIWI.Arkiwi(AGGREGATOR, ASSETSTORE);
//prepara le cose per il finto input file
$('#displayedbrowsebutton').click(function () {
$('input[id=hiddenfileinput]').click();
});
$('input[id=hiddenfileinput]').change(function() {
$('#displayedfileinput').val($(this).val());
//this.files[0].size gets the size of your file.
$('#fileuploadtotal').text(this.files[0].size + ' bytes.');
currentFileName = this.files[0].name;
});
$('#uploadbutton').click(function() {
upload();
});
var callbacks = {
success: function(id) {
//$('#status').html('Session id ' + id);
console.log('DEBUG: Session id ' + id);
},
unauthorized: function() {
arkiwi.create(callbacks);
},
};
arkiwi.create(callbacks);
});
function upload() {
if ($('input[id=hiddenfileinput]').val() == '') {
alert('Select a file to upload.\n (KIKI non vuoi sostituirmi con qualcosa di meglio di un alert?)');
return false;
}
};

72
app/upload.html Normal file
View file

@ -0,0 +1,72 @@
<!doctype html>
<!--[if lt IE 7]>
<html class = "no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>
<html class = "no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>
<html class = "no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js">
<!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>arkiwiJsBoilerplate</title>
<meta name="description" content="Arkiwi JS Boilerplate">
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
<!-- build:css styles/vendor.css -->
<!-- bower:css -->
<!-- endbower -->
<!-- endbuild -->
<!-- build:css(.tmp) styles/main.css -->
<link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.css">
<link rel="stylesheet" href="styles/main.css">
<!-- endbuild -->
</head>
<body>
<!--[if lt IE 10]>
<p class = "browsehappy">You are using an <strong>outdated</strong> browser. Please
<a href = "http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
<div class="container">
<header>
</header>
<form target="arkiwi_hidden_iframe" id="arkiwifile" class="form-inline">
<input type="file" id="hiddenfileinput" style="position: absolute; top: -1000px;">
<input type="text" id="displayedfileinput"/>
<button type="button" class="btn" id="displayedbrowsebutton">Browse</button>
<!--<div class="input-xxlarge" style="margin: 0 auto; display: none;" id="fileprogressbar">
<div class="progress progress-striped">
<div class="bar" id="fileprogressbarinternal"></div>
</div>
<div>
<span id="fileuploadpart">0</span><span> of </span><span id="fileuploadtotal"></span>
</div>
</div>-->
<span class="help-block" id="instructions">Select a file to upload to Arkiwi asset store.</span>
<button type="button" class="btn" id="uploadbutton" title="Upload to Arkiwi asset store">Upload</button>
</form>
</div>
<!-- build:js scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/mustache/mustache.js"></script>
<script src="bower_components/bower-parseuri/parseuri.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
<!-- endbower -->
<!-- endbuild -->
<script src="scripts/arkiwi.js" type="text/javascript"></script>
<script src="scripts/upload.js" type="text/javascript"></script>
</body>
</html>