I think what is happening is not the plugin is getting disabled but the 'layout' setting is getting reset.


From package Dancer::Plugin::Ajax;

        # disable layout
        my $layout = setting('layout');
        setting('layout' => undef);
        my $response = $code->();
        setting('layout' => $layout);
        return $response;

I guess  my $response = $code->() is where inner views are executed and a call to config::load will cause 'layout' to be initialised.




On Wed, Jun 29, 2011 at 6:10 PM, sawyer x <xsawyerx@gmail.com> wrote:
I could not replicate your case using your code.


On Wed, Jun 29, 2011 at 7:44 PM, sawyer x <xsawyerx@gmail.com> wrote:
It would appear as though reloading the config disables Dancer::Plugin::Ajax.

Let me look into that...

On Wed, Jun 29, 2011 at 6:17 PM, Stephen Fenwick-Paul <stephen@activeg.org> wrote:
Hi,


V. simple app:

package MyApp;

use Dancer ':syntax';
use Dancer::Plugin::Ajax;

ajax '/hellox/:name' => sub {
    template 'hello';
};

true;

Produces:


$ curl -H 'X-Requested-With: XMLHttpRequest' http://www.myapp.new/hellox/fred

<p>This is hello</p>

Which is to be expected.

But:

package MyApp;

use Dancer ':syntax';
use Dancer::Plugin::Ajax;

ajax '/hellox/:name' => sub {
    Dancer::Config::setting('appdir',$ENV{ROOT});
    Dancer::Config::load();

    template 'hello';
};

true;

$ curl -H 'X-Requested-With: XMLHttpRequest' http://www.myapp.new/hellox/fred

Produces:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<head></head>
<body>
    
<p>This is hello</p>

</body>
</html>

So, running Dancer::Config::load() stops Plugin::Ajax working.

This may seems a strange thing to do, but for me the load() was deep in a module that some times runs outside of Dancer but picks up stuff from the Dancer config. 

Handling the ajax call manually (as per the the Cookbox) there are no problems with using load().

Stephen





 


_______________________________________________
Dancer-users mailing list
Dancer-users@perldancer.org
http://www.backup-manager.org/cgi-bin/listinfo/dancer-users




_______________________________________________
Dancer-users mailing list
Dancer-users@perldancer.org
http://www.backup-manager.org/cgi-bin/listinfo/dancer-users