123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- /*------------------------------------------------------------------------------------------------------------------------
- @package: Arkiwi Upload
- @author: cek
- @www: arkiwi.org
- @copyright: COPYRIGHT 25 cek
- @license: MIT
- =============================================================================
- Filename: main.js
- =============================================================================
- /*------------------------------------------------------------------------------------------------------------------------*/
- var arkiwi;
- var documentType;
- var documentValue;
- function supportAjaxUploadWithProgress() {
- return supportFileAPI() && supportAjaxUploadProgressEvents();
- function supportFileAPI() {
- var fi = document.createElement('INPUT');
- fi.type = 'file';
- return 'files' in fi;
- };
- function supportAjaxUploadProgressEvents() {
- var xhr = new XMLHttpRequest();
- return !!(xhr && ('upload' in xhr) && ('onprogress' in xhr.upload));
- };
- }
- function initializeUpload(endpoint) {
- if (!supportAjaxUploadWithProgress()) {
- var body = $('body');
- body.empty();
- body.append('<p>HTML 5 upload NOT supported by your browser</p>');
- } else {
- arkiwi = new ARKIWI.Uploader(endpoint);
- documentType = $('#document-type').val();
- documentValue = $('#document-value').val();
- }
- $('input[id=hiddenfileinput]').bind('change', function () {
- fileInputUpdate(this.files);
- });
- };
- function initializeEdit(endpoint) {
- arkiwi = new ARKIWI.Uploader(endpoint);
- documentType = $('#document-type').val();
- documentValue = $('#document-value').val();
- arkiwi.listMetadata(documentValue, function (result) {
- var metadataContainer = $('#metadata_container');
- for (let i = 0; i < result.length; i++) {
- var metadata = result[i];
- metadataContainer.append('<div class="metadata"><span class="metadata_name">' + metadata.name + '</span><input class="metadata_value" value="' + metadata.value + '"/><button type="button" id="rem-button" onclick="$(this).parent().remove();">X</button></div>');
- }
- //activate buttons
- $('#confirm-button').prop("disabled", false);
- $('#confirm-button').bind('click', function (e) {
- $('#confirm-button').prop("disabled", true);
- $('#add-button').prop("disabled", true);
- uploadMetadata();
- e.preventDefault();
- });
- $('#add-button').prop("disabled", false);
- $('#add-button').bind('click', function (e) {
- metadataContainer.append('<div class="metadata"><input class="metadata_name"/><input class="metadata_value"/><button type="button" id="rem-button" onclick="$(this).parent().remove();">X</button></div>');
- e.preventDefault();
- });
- })
- };
- function initializeCreateDirectory(endpoint) {
- arkiwi = new ARKIWI.Uploader(endpoint);
- $('#confirm-button').click(function(e) {
- createDirectory();
- e.preventDefault();
- });
- $('#confirm-button').prop("disabled", false);
- };
- function createDirectory() {
- documentType = $('#document-type').val();
- documentValue = $('#document-value').val();
- newDirectory = $('#mkdirInput').val();
- arkiwi.createDirectory(documentValue, newDirectory, function (result) {
- if (result == 'true') {
- $('#file-form').detach();
- $('body').append('<span>messaggio di grande complimentazione o redirect alla pagina di arkiwi con la cartella appena creata, CRI vedi tu quando fai grafica. Probabilmente serve che io ti dia i mezzi per costriure l\'url</span>')
- }
- else {
- $('#file-form').detach();
- $('body').append('<span>messaggio di grande cordoglio, CRI vedi tu quando fai grafica</span>')
- }
- });
- };
- function uploadMetadata() {
- var metadataArray = Array();
- var metadataList = $('.metadata');
- for (let i = 0; i < metadataList.length; i++) {
- var metadataObj = {};
- var metadata = metadataList[i];
- metadataObj.name = $(metadata).find('.metadata_name').val() || $(metadata).find('.metadata_name').text();
- metadataObj.value = $(metadata).find('.metadata_value').val();
- metadataArray.push(metadataObj);
- }
- var jsonString = JSON.stringify(metadataArray);
- arkiwi.modifyMetadata(documentValue, jsonString, function (result) {
- var metadataContainer = $('#metadata_container');
- var buttonsContainer = $('#buttons_container');
- metadataContainer.empty();
- buttonsContainer.empty();
- metadataContainer.append('<div>done</div>')
- });
- }
- function selectFile(e) {
- $('input[id=hiddenfileinput]').click();
- e.preventDefault();
- };
- function fileInputUpdate(files) {
- //Gestiamo solo un file, non molteplici
- var file = files[0];
- $('#file-name').text(file.name);
- $('#upload-button').prop("disabled", false);
- var loaded = 0;
- var total = file.size;
- var callbacks = {
- load: function (evt) {
- var response = JSON.parse(evt.target.response);
- if (response.success) {
- var item64 = response.item64;
- var redirect = window.location.protocol + "//" + window.location.host + "/arav_up_client/item64/" + item64 + "/edit"
- window.location.href = redirect;
- }
- },
- error: function (evt) {
- },
- progress: function (evt) {
- if (evt.lengthComputable) {
- var progress = Math.ceil(((loaded + evt.loaded) / total) * 100);
- progress = (progress > 100)? 100 : progress;
- $("#dvProgressPrcent").html(progress + "%");
- }
- }
- };
- $('#upload-button').bind('click', function (e) {
- switch (documentType) {
- case 'item64':
- arkiwi.upload(file, documentValue, callbacks);
- break;
- case 'item':
- alert('"item" not implemented.')
- break;
- case 'path':
- alert('"path" not implemented.')
- break;
- case 'path64':
- alert('"path64" not implemented.')
- break;
- }
- e.preventDefault();
- });
- };
|