Javascript issue making Flot plugin

Hi, I am currently looking in to making a Flot,
http://code.google.com/p/flot/, plugin for RT. ATM it uses the GD rules
for searches, but clicking the graph button remders a Flot plot instead
of a GD image. I’m still working out a few display issues before it’s
worth judging it’s real worth.

I’ve hit a problem though :frowning: When I add the Flot javascript files to the
HTML header I get a couple of errors in the RT javascript files and some
functions, like the handy calendar pop-up, break :frowning:

As a simple test I am using the Modify Dates page to see if the calendar
pop-up is rendered, rt3/Ticket/ModifyDates.html, which funnily enough
doesn’t have a graph on it, but demonstrates the problem well.

This is the diff of the HTML output with and without the extra java script:

$ diff -uBb test1.html test2.html
— test1.html 2010-04-15 10:51:22.855382000 +1000
+++ test2.html 2010-04-15 10:51:50.246659000 +1000
@@ -26,8 +26,6 @@
–>

-
-

And here are the two java script errors generated:

Error: element.dispatchEvent is not a function
Source File: https://…/rt3/NoAuth/js/prototype/prototype.js
Line: 4071

Error: $(link).observe is not a function
Source File: https://…/rt3/NoAuth/js/util.js
Line: 159

Any pointers on where to look in to this is much appreciated.

FWIW I have put the source up [1] in case anyone wants to play with it.

CAUTION should be used though, currently it breaks stuff :slight_smile: Also
currently it just replaces the GD images, if I can get it working
properly then I’d look in to letting the user pick how they want it
rendered.

I find the usual RT plugin install process difficult to package as an
RPM, so I wrote my own Build.PL file instead of using that. It defaults
to /usr/local/lib/rt3/plugins/RT-Flot, which I believe is the standard
RT path, you will need to override it if your RT plugin directory is in
a different place.

e.g.

perl Build.PL --install_path plugins=/opt/foo/bar/rt3/plugins/RT-Flot
./Build
./Build install

If you use the supplied RPM spec file and are using the RT RPM from
Fedora, you will probably need to be running RT 3.8.7 and set PluginPath
in RT_SiteConfig.pm. Or you will need to edit the RT3_PLUGIN define in
the spec file.

e.g

Set($PluginPath,"/usr/share/rt3/plugins");

Cheers, Jeff.

[1] http://jfearn.fedorapeople.org/files/RT-Flot-0.6.tar.gz

Jeff Fearn jfearn@redhat.com
Software Engineer
Engineering Operations
Red Hat, Inc
Freedom … courage … Commitment … ACCOUNTABILITY

Hi Jeffrey

The problem is caused by the collsion of Prototype and jQuery.
To work around it, you need to use jQuery’s noConflict mode.
i.e. call jQuery.noConflict() after you load jquery.js,
and when you mean the jQuery’s $() function, use jQuery() instead.

best wishes
sunnavyOn 10-04-15 12:15, Jeffrey Fearn wrote:

Hi, I am currently looking in to making a Flot,
http://code.google.com/p/flot/, plugin for RT. ATM it uses the GD
rules for searches, but clicking the graph button remders a Flot
plot instead of a GD image. I’m still working out a few display
issues before it’s worth judging it’s real worth.

I’ve hit a problem though :frowning: When I add the Flot javascript files to
the HTML header I get a couple of errors in the RT javascript files
and some functions, like the handy calendar pop-up, break :frowning:

As a simple test I am using the Modify Dates page to see if the
calendar pop-up is rendered, rt3/Ticket/ModifyDates.html, which
funnily enough doesn’t have a graph on it, but demonstrates the
problem well.

This is the diff of the HTML output with and without the extra java script:

$ diff -uBb test1.html test2.html
— test1.html 2010-04-15 10:51:22.855382000 +1000
+++ test2.html 2010-04-15 10:51:50.246659000 +1000
@@ -26,8 +26,6 @@
–>

-
-

And here are the two java script errors generated:

Error: element.dispatchEvent is not a function
Source File: https://…/rt3/NoAuth/js/prototype/prototype.js
Line: 4071

Error: $(link).observe is not a function
Source File: https://…/rt3/NoAuth/js/util.js
Line: 159

Any pointers on where to look in to this is much appreciated.

FWIW I have put the source up [1] in case anyone wants to play with it.

CAUTION should be used though, currently it breaks stuff :slight_smile: Also
currently it just replaces the GD images, if I can get it working
properly then I’d look in to letting the user pick how they want it
rendered.

I find the usual RT plugin install process difficult to package as
an RPM, so I wrote my own Build.PL file instead of using that. It
defaults to /usr/local/lib/rt3/plugins/RT-Flot, which I believe is
the standard RT path, you will need to override it if your RT plugin
directory is in a different place.

e.g.

perl Build.PL --install_path plugins=/opt/foo/bar/rt3/plugins/RT-Flot
./Build
./Build install

If you use the supplied RPM spec file and are using the RT RPM from
Fedora, you will probably need to be running RT 3.8.7 and set
PluginPath in RT_SiteConfig.pm. Or you will need to edit the
RT3_PLUGIN define in the spec file.

e.g

Set($PluginPath,"/usr/share/rt3/plugins");

Cheers, Jeff.

[1] http://jfearn.fedorapeople.org/files/RT-Flot-0.6.tar.gz


Jeff Fearn jfearn@redhat.com
Software Engineer
Engineering Operations
Red Hat, Inc
Freedom … courage … Commitment … ACCOUNTABILITY


List info: http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-devel

Hi, this worked great, thanks sunnavy!

Cheers, Jeff.On Thu, 2010-04-15 at 17:24 +0800, sunnavy wrote:

Hi Jeffrey

The problem is caused by the collsion of Prototype and jQuery.
To work around it, you need to use jQuery’s noConflict mode.
i.e. call jQuery.noConflict() after you load jquery.js,
and when you mean the jQuery’s $() function, use jQuery() instead.

best wishes
sunnavy

On 10-04-15 12:15, Jeffrey Fearn wrote:

Hi, I am currently looking in to making a Flot,
http://code.google.com/p/flot/, plugin for RT. ATM it uses the GD
rules for searches, but clicking the graph button remders a Flot
plot instead of a GD image. I’m still working out a few display
issues before it’s worth judging it’s real worth.

I’ve hit a problem though :frowning: When I add the Flot javascript files to
the HTML header I get a couple of errors in the RT javascript files
and some functions, like the handy calendar pop-up, break :frowning:

As a simple test I am using the Modify Dates page to see if the
calendar pop-up is rendered, rt3/Ticket/ModifyDates.html, which
funnily enough doesn’t have a graph on it, but demonstrates the
problem well.

This is the diff of the HTML output with and without the extra java script:

$ diff -uBb test1.html test2.html
— test1.html 2010-04-15 10:51:22.855382000 +1000
+++ test2.html 2010-04-15 10:51:50.246659000 +1000
@@ -26,8 +26,6 @@
–>

-
-

And here are the two java script errors generated:

Error: element.dispatchEvent is not a function
Source File: https://…/rt3/NoAuth/js/prototype/prototype.js
Line: 4071

Error: $(link).observe is not a function
Source File: https://…/rt3/NoAuth/js/util.js
Line: 159

Any pointers on where to look in to this is much appreciated.

FWIW I have put the source up [1] in case anyone wants to play with it.

CAUTION should be used though, currently it breaks stuff :slight_smile: Also
currently it just replaces the GD images, if I can get it working
properly then I’d look in to letting the user pick how they want it
rendered.

I find the usual RT plugin install process difficult to package as
an RPM, so I wrote my own Build.PL file instead of using that. It
defaults to /usr/local/lib/rt3/plugins/RT-Flot, which I believe is
the standard RT path, you will need to override it if your RT plugin
directory is in a different place.

e.g.

perl Build.PL --install_path plugins=/opt/foo/bar/rt3/plugins/RT-Flot
./Build
./Build install

If you use the supplied RPM spec file and are using the RT RPM from
Fedora, you will probably need to be running RT 3.8.7 and set
PluginPath in RT_SiteConfig.pm. Or you will need to edit the
RT3_PLUGIN define in the spec file.

e.g

Set($PluginPath,"/usr/share/rt3/plugins");

Cheers, Jeff.

[1] http://jfearn.fedorapeople.org/files/RT-Flot-0.6.tar.gz


Jeff Fearn jfearn@redhat.com
Software Engineer
Engineering Operations
Red Hat, Inc
Freedom … courage … Commitment … ACCOUNTABILITY


List info: http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-devel

Jeff Fearn jfearn@redhat.com
Software Engineer
Engineering Operations
Red Hat, Inc
Freedom … courage … Commitment … ACCOUNTABILITY

Sure our competitors can rebuild the source but can they engage the customer the same way? -wmealing