var queryParams = null; var datasetUrl = null; var version = null; var fileDownloadUrl = null; var lrsUrl=null; var previewMode = null; var locale=null; function startPreview(retrieveFile) { // Retrieve tool launch parameters from URL queryParams = new URLSearchParams(window.location.search.substring(1)); var fileUrl = queryParams.get("siteUrl") + "/api/access/datafile/" + queryParams.get("fileid") + "?gbrecs=true"; fileDownloadUrl = queryParams.get("siteUrl") + "/api/access/datafile/" + queryParams.get("fileid") + "?gbrecs=false"; lrsUrl="https://switchboard.clarin.eu/#/dataverse/"+encodeURIComponent(queryParams.get("siteUrl") + "/api/access/datafile/" + queryParams.get("fileid")+ "?gbrecs=false" )+"/"+cType+"/en";//"/text%2fplain/en"; var versionUrl = queryParams.get("siteUrl") + "/api/datasets/" + queryParams.get("datasetid") + "/versions/" + queryParams.get("datasetversion"); var apiKey = queryParams.get("key"); // Hide header and citation to embed on Dataverse file landing page. previewMode = queryParams.get("preview"); locale = queryParams.get("locale"); if(locale== null) { locale='en'; } var i18n = $.i18n(); i18n.locale=locale; i18n.load( 'i18n/' + i18n.locale + '.json', i18n.locale ).done( function() { //Call previewer-specific translation code translateBaseHtmlPage(); } ); if (apiKey != null) { fileUrl = fileUrl + "&key=" + apiKey; versionUrl = versionUrl + "?key=" + apiKey; } // Get metadata for dataset/version/file $ .ajax({ dataType : "json", url : versionUrl, // headers: { 'X-Dataverse-key': apiKey }, crossite : true, success : function(json, status) { var mdFields = json.data.metadataBlocks.citation.fields; var title = ""; var authors = ""; datasetUrl = json.data.storageIdentifier; datasetUrl = datasetUrl .substring(datasetUrl.indexOf("//") + 2); version = queryParams.get("datasetversion"); if (version === ":draft") { version = "DRAFT"; } for ( var field in mdFields) { if (mdFields[field].typeName === "title") { title = mdFields[field].value; } if (mdFields[field].typeName === "author") { var authorFields = mdFields[field].value; for ( var author in authorFields) { if (authors.length > 0) { authors = authors + "; "; } authors = authors + authorFields[author].authorName.value; } } } var datafiles = json.data.files; var fileIndex = 0; for ( var entry in datafiles) { if (JSON.stringify(datafiles[entry].dataFile.id) === queryParams .get("fileid")) { fileIndex = entry; if (retrieveFile) { $.ajax({ type : 'GET', dataType : 'text', // headers: { 'X-Dataverse-key': apiKey}, crosssite : true, url : fileUrl, success : function(data, status) { writeContentAndData(data, fileUrl, datafiles[fileIndex].dataFile, title, authors); }, error : function(request, status, error) { reportFailure( "Unable to retrieve file.", status); } }); } else { writeContent(fileUrl, datafiles[entry].dataFile, title, authors); } } } }, error : function(jqXHR, textStatus, errorThrown) { //alert (jqXHR + " "+ errorThrown); reportFailure("Unable to retrieve metadata: ", textStatus); } }); } var filePageUrl = null; function addStandardPreviewHeader(file, title, authors) { if (previewMode !== 'true') { // Add favicon from source Dataverse $('head') .append( $('') .attr('type', 'image/png') .attr('rel', 'icon') .attr( 'href', queryParams.get("siteUrl") + '/javax.faces.resource/images/favicondataverse.png.xhtml')); // Add logo from source Dataverse or use a local one, unless we are in preview mode $('#logo') .attr('src', queryParams.get("siteUrl") + '/logos/preview_logo.png') .attr( 'onerror', 'this.onerror=null;this.src="/previewers/images/logo_placeholder.png";'); } //Footer var footer = $.i18n( "footer" ); $('body').append($('
').html(footer).attr('id','footer')); if (previewMode !== 'true') { options = {"stripIgnoreTag":true, "stripIgnoreTagBody":['script','head']}; // Custom rules //Translated text used in the preview header var filenameText = $.i18n( "filenameText" ); var inText = $.i18n( "inText" ); var byText = $.i18n( "byText" ); var uploadedOnText = $.i18n("uploadedOnText"); var downloadFileText = $.i18n( "downloadFileText" ); var closePreviewText = $.i18n( "closePreviewText" ); var versionText = $.i18n( "versionText" ); var descriptionText = $.i18n( "descriptionText" ); var lrsText= $.i18n("LRSText"); filePageUrl = queryParams.get("siteUrl") + "/file.xhtml?"; if (file.persistentId.length == 0) { filePageUrl = filePageUrl + "fileId=" + file.id; } else { filePageUrl = filePageUrl + "persistentId=" + file.persistentId; } filePageUrl = filePageUrl + "&version=" + version; var header = $('.preview-header').append($('
')); header.append($("
").append($("").text(filenameText)).append( $('').attr('href', filePageUrl).text(file.filename)).attr('id', 'filename')); if ((file.description != null) && (file.description.length > 0)) { header.append($('
').html(filterXSS("" + descriptionText + "" + file.description), options)); } header.append($('
').append($("").text(inText)).append( $('').attr('id', 'dataset').append( $('').attr( 'href', queryParams.get("siteUrl") + "/dataset.xhtml?persistentId=doi:" + datasetUrl + "&version=" + version).text( title))).append( $('').html(" (" + versionText + " " + version + ")").attr('id', 'version')).append( $('').text(byText)).append( $('').text(authors).attr('id', 'authors'))); header.append($("
").addClass("btn btn-default").html( "" + downloadFileText + "")); header.append($("
").addClass("btn btn-default").html( " " + lrsText + ""));//added header.append($("
").addClass("btn btn-default").html( "" + closePreviewText + "")); if(file.creationDate != null) { header.append($("
").addClass("preview-note").text( uploadedOnText + file.creationDate)); } } if (previewMode === 'true') { $('#logo').hide(); $('.page-title').hide(); var lrsText= $.i18n("LRSText"); options = {"stripIgnoreTag":true, "stripIgnoreTagBody":['script','head']}; // Custom rules //Translated text used in the preview header //var header = $('.preview-header').append($('
')); var header = $('.preview-header'); header.append($("
").addClass("btn btn-default").html( " " + lrsText + "")); // //Cesare //$('.preview-header').hide(); } } function reportFailure(msg, statusCode) { var preview = $(".preview"); preview.addClass("alert alert-danger"); var errorText = $.i18n( "errorText" ); preview .text(msg + errorText + statusCode); }