I have followed the steps to make a new bundle from a customized of Lens explained in the Github of elifesciences/lens, the extension made to the source code of Lens reader is a new panel for metrics data from a service, alongside with the default panels in the Lens. The files resulting of bundling process are the following:
Well I took this files and replaced them in the lensGalley plugin of OJS 3, which are in /ojs-install-place/plugins/generic/lensGalley/lib/lens/ for view if the customized Lens reader of the plugin can show the new panel; however only get a loading article message in the page and in the console of browser I have the following errors:
I dont know how to make working the customized lens reader with the plugin, can you help me?
It looks like a JSON response from the server was not valid JSON. Perhaps it contained PHP error messages – have you configured your PHP to direct error messages to your error log only? If not, I’d recommend doing so. In any case, you can inspect the JSON request/response using a tool like Firebug for Firefox; this will likely reveal the problem.
Regards,
Alec Smecher
Public Knowledge Project Team
First @asmecher I have configured the error log of my PHP however there aren’t any error messages. With respect to inspect the JSON request/response I have no clear how made that with Firebug, I usually use the console of Firefox for make debug. Can you explain me a little more?
Second @Vitaliy, Yes the repository where is the extended lens reader is called lens-starter I have cloned that repository and followed the steps to made the bundle, I have took this bundle to a apache server here where it works correctly, but when I try to integrate it to lensGalley plugin it doesn’t work, here is a NLM/JATS XML galley of an article of our journal.
The errors that I can see in the console of Firefox is that
Error: Router.history has already been started
and
SyntaxError: JSON.parse: unexpected character at line 2 column 1 of the JSON data[Saber más]
I hope you can check the links I have shared with you.
The version of code in this repository is the 2.0.0 version of Lens source code, I am secure that LensGallley can work with this version, because when I started to set up my journal in OJS 3 I replace the code of lensGalley/lib/lens/ with the version 2.0.0 for accomplish the correctly rendering of a NLM/JATS xml file galley in my journal.
I have the suspicious that some of the extended version of Lens conflicting with lensGalley, but I dont know what yet.
I achieved it, I have integrated a extended version of source code of lens, which add an extra panel for metrics to LensGalley plugin of OJS 3.
After much thinking I decided to create a non-minified version of lens.js to compare with the lens.js that come for default in the lensGalley plugin. My surprise was that I found a part of code in the lens.js file generated by gulp
// Little helper used to parse query strings from urls
// --------
//
var qs = function () {
var query_string = {};
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
// If first entry with this name
if (typeof query_string[pair[0]] === "undefined") {
query_string[pair[0]] = pair[1];
// If second entry with this name
} else if (typeof query_string[pair[0]] === "string") {
var arr = [ query_string[pair[0]], pair[1] ];
query_string[pair[0]] = arr;
// If third or later entry with this name
} else {
query_string[pair[0]].push(pair[1]);
}
}
return query_string;
} ();
// This document gets loaded by default
// --------
//var documentURL = "data/example.xml";
var documentURL = "https://s3.amazonaws.com/elife-cdn/elife-articles/00778/elife00778.xml";
$(function() {
// Create a new Lens app instance
// --------
//
// Injects itself into body
var app = new window.Lens({
document_url: qs.url ? decodeURIComponent(qs.url) : documentURL
});
app.start();
window.app = app;
});
which is in the index.html file in the lensGalley repository, that’s why I moved this code from the lens.js file to index.html file as it is in the lensGalley repository and works.
All this was made because I have been encouraged to add a new panel which should add a map visualizer made with (OpenLayers, GeoNode and Geoserver) to Lens, I think that would be a hard work but I hope achieve it, But this is another matter.