[xwiki-devs] Xwiki+Simile Exhibit integration // request for help w/ portability issue
Although I was previously able to do a hack integration with Simile's Exhibit and Xwiki, it was too heinous to actually live with. A cleaner solution, using Xwiki's "skin extensions" for stylesheets and javascript now works. The "clean" solution required hosting my own copy of Exhibit based on checking out from the trunk the latest copy of "Exhibit." Hosting my own copy of Exhibit seems to be problematic, as the version of Exhibit I checked out from svn/trunk has issues such as (1) a non-working minified jquery that needed to be replaced w/ original, and (2) portability issue on IE (see below) on which I need help/advice. Here's my example of Xwiki/Exhibit integration: http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents Here's the original example from which above was derived: http://simile-widgets.org/exhibit/examples/presidents/presidents.html Xwiki Source Code: Presidents<http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents?viewer=code> Data used by example: PresidentsSchemaJSON<http://nielsmayer.com/xwiki/bin/view/Exhibit/PresidentsSchemaJSON?xpage=plain>, PresidentsJSON<http://nielsmayer.com/xwiki/bin/view/Exhibit/PresidentsJSON?xpage=plain> Attached, because there's no easy way to view these, the contents of XWiki.StyleSheetExtension[0] and XWiki.JavaScriptExtension[0] -- these are objects attached to the underlying Xwiki document http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents which cause the appropriate magic to happen in the header via calls to $xwiki.ssx.use("$doc.fullName") and $xwiki.jsx.use("$doc.fullName"). It's all explained in the preamble for http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents?viewer=code :
## Note that to get this whole thing working requires jquery NOT FROM EXHIBIT SVN TRUNK ##( http://nielsmayer.com/js/exhibit/api/scripts/jquery-1.3.2.min.js ) ## Instead, preload http://nielsmayer.com/xwiki/resources/js/exhibit/api/scripts/jquery-1.3.2.mi... ## for details see http://nielsmayer.com/xwiki/resources/js/exhibit/api/scripts/jquery-1.3.2.mi... $xwiki.jsfx.use("js/exhibit/api/scripts/jquery-1.3.2.min.js")## ## Note that http://nielsmayer.com/xwiki/resources/js/exhibit/api/exhibit-api.jsdifferent ## to trunk http://nielsmayer.com/js/exhibit/api/exhibit-api.js $xwiki.jsfx.use("js/exhibit/api/exhibit-api.js")## ## though http://nielsmayer.com/xwiki/resources/js/Simile/Exhibit/webapp/styles.csswor... the line below does not: ##$xwiki.ssfx.use("js/simile/Exhibit/webapp/styles.css")##same loaded from XWiki.StyleSheetExtension[0] via ssx.use. $xwiki.ssx.use("$doc.fullName")## $xwiki.jsx.use("$doc.fullName")##
------------ ISSUE AND REQUEST FOR HELP: In IE, after the simile busy-spinner has popped up indicating a successful load of Exhibit, the following errors happen, causing three successive dialog boxes: (1) "Caught exception: ColorCoder: Error processing configuration of coder Details: 'firstChild.nodeValue' is null or not an object (2) Caught exception: undefined Details: 'firstChild.nodeValue' is null or not an object (3) IE error: Line 1831, char 52, Error: object expected Suggestions on which version of "Exhibit" or "Simile-Ajax-API" to use in order to get rid of this error would be appreciated. It is interesting to note that the "trunk" version of the same example http://trunk.simile-widgets.org/exhibit/examples/presidents/presidents.htmlw... fine in IE. Is this the same issue noted previously: http://www.mail-archive.com/[email protected]/msg00385.html http://www.mail-archive.com/[email protected]/msg00391.html http://www.mail-archive.com/[email protected]/msg00846.html??? ---------- TODO: One last remaining hack is that I put the following in the headers
<link rel="exhibit/data" type="application/json" href="$xwiki.getURL("Exhibit.PresidentsSchemaJSON","view","xpage=plain")" /> <link rel="exhibit/data" type="application/json" href="$xwiki.getURL("Exhibit.PresidentsJSON","view","xpage=plain")" />
via the "Exhibit" space's "HTTP Meta Information" administration setting ( http://nielsmayer.com/xwiki/bin/admin/Exhibit/WebPreferences?editor=spaceadm...). I would like to figure out a way to set these values directly in javascript inside the document itself (or inside additional instances of XWiki.JavaScriptExtension) rather than having them read as external json files, e.g. http://www.mail-archive.com/[email protected]/msg02434.html http://www.nabble.com/JSON-created-locally-td17507332.html http://www.patrickgmj.net/node/161 -- Niels. http://nielsmayer.com
I've taken a few minutes looking a bit more deeply at simile and it sounds cool! Nice idea to integrate that in XWiki :) Pascal On Wed, May 6, 2009 at 8:25 PM, Niels Mayer <[email protected]> wrote:
Although I was previously able to do a hack integration with Simile's Exhibit and Xwiki, it was too heinous to actually live with. A cleaner solution, using Xwiki's "skin extensions" for stylesheets and javascript now works. The "clean" solution required hosting my own copy of Exhibit based on checking out from the trunk the latest copy of "Exhibit." Hosting my own copy of Exhibit seems to be problematic, as the version of Exhibit I checked out from svn/trunk has issues such as (1) a non-working minified jquery that needed to be replaced w/ original, and (2) portability issue on IE (see below) on which I need help/advice.
Here's my example of Xwiki/Exhibit integration: http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents Here's the original example from which above was derived: http://simile-widgets.org/exhibit/examples/presidents/presidents.html
Xwiki Source Code: Presidents< http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents?viewer=code> Data used by example: PresidentsSchemaJSON< http://nielsmayer.com/xwiki/bin/view/Exhibit/PresidentsSchemaJSON?xpage=plai...
, PresidentsJSON< http://nielsmayer.com/xwiki/bin/view/Exhibit/PresidentsJSON?xpage=plain>
Attached, because there's no easy way to view these, the contents of XWiki.StyleSheetExtension[0] and XWiki.JavaScriptExtension[0] -- these are objects attached to the underlying Xwiki document http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents which cause the appropriate magic to happen in the header via calls to $xwiki.ssx.use("$doc.fullName") and $xwiki.jsx.use("$doc.fullName").
It's all explained in the preamble for http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents?viewer=code :
## Note that to get this whole thing working requires jquery NOT FROM EXHIBIT SVN TRUNK ##( http://nielsmayer.com/js/exhibit/api/scripts/jquery-1.3.2.min.js ) ## Instead, preload
http://nielsmayer.com/xwiki/resources/js/exhibit/api/scripts/jquery-1.3.2.mi...
## for details see
http://nielsmayer.com/xwiki/resources/js/exhibit/api/scripts/jquery-1.3.2.mi...
$xwiki.jsfx.use("js/exhibit/api/scripts/jquery-1.3.2.min.js")## ## Note that
http://nielsmayer.com/xwiki/resources/js/exhibit/api/exhibit-api.jsdifferent
## to trunk http://nielsmayer.com/js/exhibit/api/exhibit-api.js $xwiki.jsfx.use("js/exhibit/api/exhibit-api.js")## ## though
http://nielsmayer.com/xwiki/resources/js/Simile/Exhibit/webapp/styles.csswor... line below does not:
##$xwiki.ssfx.use("js/simile/Exhibit/webapp/styles.css")##same loaded from XWiki.StyleSheetExtension[0] via ssx.use. $xwiki.ssx.use("$doc.fullName")## $xwiki.jsx.use("$doc.fullName")##
------------
ISSUE AND REQUEST FOR HELP:
In IE, after the simile busy-spinner has popped up indicating a successful load of Exhibit, the following errors happen, causing three successive dialog boxes:
(1) "Caught exception: ColorCoder: Error processing configuration of coder Details: 'firstChild.nodeValue' is null or not an object
(2) Caught exception: undefined Details: 'firstChild.nodeValue' is null or not an object
(3) IE error: Line 1831, char 52, Error: object expected
Suggestions on which version of "Exhibit" or "Simile-Ajax-API" to use in order to get rid of this error would be appreciated. It is interesting to note that the "trunk" version of the same example
http://trunk.simile-widgets.org/exhibit/examples/presidents/presidents.htmlw... fine in IE.
Is this the same issue noted previously: http://www.mail-archive.com/[email protected]/msg00385.html http://www.mail-archive.com/[email protected]/msg00391.html http://www.mail-archive.com/[email protected]/msg00846.html? ?? ----------
TODO:
One last remaining hack is that I put the following in the headers
<link rel="exhibit/data" type="application/json" href="$xwiki.getURL("Exhibit.PresidentsSchemaJSON","view","xpage=plain")" /> <link rel="exhibit/data" type="application/json" href="$xwiki.getURL("Exhibit.PresidentsJSON","view","xpage=plain")" />
via the "Exhibit" space's "HTTP Meta Information" administration setting (
http://nielsmayer.com/xwiki/bin/admin/Exhibit/WebPreferences?editor=spaceadm... ). I would like to figure out a way to set these values directly in javascript inside the document itself (or inside additional instances of XWiki.JavaScriptExtension) rather than having them read as external json files, e.g. http://www.mail-archive.com/[email protected]/msg02434.html http://www.nabble.com/JSON-created-locally-td17507332.html http://www.patrickgmj.net/node/161
-- Niels. http://nielsmayer.com
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
On Wed, May 6, 2009 at 11:25 AM, Niels Mayer <[email protected]> wrote<http://n2.nabble.com/Xwiki%2BSimile-Exhibit-integration----request-for-help-w--portability-issue-td2823091.html> :
Here's my example of Xwiki/Exhibit integration: http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents
I now have an improved version http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents2 The main advantage of this version is that it should function "standalone" without installing the Simile widgets locally. Unlike "Presidents" which uses a local, modified copy of the Exhibit trunk, "Presidents2" loads from api.simile-widgets.org . *Attached, *the 35K Xar (Zip/Jar format) containing the standalone demo, comprising three documents: Exhibit.Presidents2 and data-files Exhibit.PresidentsSchemaJSON and Exhibit.PresidentsJSON. You should be able to import these into your xwiki installation and get a working demo of Exhibit. (note that since the javascript in Exhibit.Presidents2's object XWiki.JavaScriptExtension[2] loads external javascript, the server and the clients accessing must be connected to the network for this to work). *Resolved*, one issue:
One last remaining hack is that I put the following in the headers
<link rel="exhibit/data" type="application/json" href="$xwiki.getURL("Exhibit.PresidentsSchemaJSON","view","xpage=plain")" /> <link rel="exhibit/data" type="application/json" href="$xwiki.getURL("Exhibit.PresidentsJSON","view","xpage=plain")" />
via the "Exhibit" space's "HTTP Meta Information" administration setting ...
This is replaced with some JavaScript residing in XWiki.JavaScriptExtension[0]: insertExhibitDataLink(window.document, "/xwiki/bin/view/Exhibit/PresidentsSchemaJSON?xpage=plain"); insertExhibitDataLink(window.document, "/xwiki/bin/view/Exhibit/PresidentsJSON?xpage=plain"); (Next version, Presidents3, will replace loading these two extra javascript files and instead put the javascript data directly into XWiki.JavaScriptExtension[0], replacing insertExhibitDataLink() calls.) *Unresolved*, the IE portability issue, an Exhibit bug? Help?? In IE, after the simile busy-spinner has popped up indicating a successful
load of Exhibit, the following errors happen, causing three successive dialog boxes: (1) "Caught exception: ColorCoder: Error processing configuration of coder Details: 'firstChild.nodeValue' is null or not an object (2) Caught exception: undefined Details: 'firstChild.nodeValue' is null or not an object (3) IE error: Line 1831, char 52, Error: object expected
Note that this issue is independent of "trunk" versus "stable" versions of Exhibit. http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents uses a local copy of "trunk" http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents2 uses api.simile-widgets.org Both have the same problem with a null dereference from " node.firstChild.nodeValue.trim()", which occurs in api/scripts/ui/coders/color-coder.js functionExhibit.ColorCoder.createFromDOM():
try { var node = configElmt.firstChild; while (node != null) { if (node.nodeType == 1) { coder._addEntry( Exhibit.getAttribute(node, "case"), node.firstChild.nodeValue.trim(), Exhibit.getAttribute(node, "color")); } node = node.nextSibling; } } catch (e) { SimileAjax.Debug.exception(e, "ColorCoder: Error processing configuration of coder"); }
Niels http://nielsmayer.com
participants (2)
-
Niels Mayer -
Pascal Voitot