properly search the template path!! [#103]
Conflicts: Netdisco/lib/App/Netdisco/Web.pm Netdisco/lib/App/Netdisco/Web/Plugin.pm
This commit is contained in:
		| @@ -24,6 +24,7 @@ | ||||
|   * Store started timestamp on job completion | ||||
|   * Set UTF-8 mode on Pg database connection | ||||
|   * Add netdisco-rancid-export to installed scripts | ||||
|   * Template INCLUDE path stuffing broken for plugins [#103] | ||||
|  | ||||
| 2.027007 - 2014-05-27 | ||||
|  | ||||
|   | ||||
| @@ -48,6 +48,10 @@ if (setting('extra_web_plugins') and ref [] eq ref setting('extra_web_plugins')) | ||||
|     _load_web_plugins( setting('extra_web_plugins') ); | ||||
| } | ||||
|  | ||||
| # after plugins are loaded, add our own template path | ||||
| push @{ config->{engines}->{netdisco_template_toolkit}->{INCLUDE_PATH} }, | ||||
|      setting('views'); | ||||
|  | ||||
| # workaround for https://github.com/PerlDancer/Dancer/issues/935 | ||||
| hook after_error_render => sub { setting('layout' => 'main') }; | ||||
|  | ||||
|   | ||||
| @@ -21,7 +21,7 @@ set( | ||||
| ); | ||||
|  | ||||
| # this is what Dancer::Template::TemplateToolkit does by default | ||||
| config->{engines}->{template_toolkit}->{INCLUDE_PATH} ||= [ setting('views') ]; | ||||
| config->{engines}->{netdisco_template_toolkit}->{INCLUDE_PATH} ||= [ setting('views') ]; | ||||
|  | ||||
| register 'register_template_path' => sub { | ||||
|   my ($self, $path) = plugin_args(@_); | ||||
| @@ -30,9 +30,8 @@ register 'register_template_path' => sub { | ||||
|       return error "bad template path to register_template_paths"; | ||||
|   } | ||||
|  | ||||
|   unshift | ||||
|     @{ config->{engines}->{template_toolkit}->{INCLUDE_PATH} }, | ||||
|     $path, dir($path, 'views')->stringify; | ||||
|   push @{ config->{engines}->{netdisco_template_toolkit}->{INCLUDE_PATH} }, | ||||
|        dir($path, 'views')->stringify; | ||||
| }; | ||||
|  | ||||
| sub _register_include { | ||||
|   | ||||
							
								
								
									
										23
									
								
								Netdisco/lib/Dancer/Template/NetdiscoTemplateToolkit.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								Netdisco/lib/Dancer/Template/NetdiscoTemplateToolkit.pm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| package Dancer::Template::NetdiscoTemplateToolkit; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
|  | ||||
| use Dancer::FileUtils 'path'; | ||||
| use base 'Dancer::Template::TemplateToolkit'; | ||||
|  | ||||
| sub view { | ||||
|     my ($self, $view) = @_; | ||||
|  | ||||
|     foreach my $path (@{ $self->config->{INCLUDE_PATH} }) { | ||||
|         foreach my $template ($self->_template_name($view)) { | ||||
|             my $view_path = path($path, $template); | ||||
|             return $view_path if -f $view_path; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     # No matching view path was found | ||||
|     return; | ||||
| } | ||||
|  | ||||
| 1; | ||||
| @@ -219,7 +219,7 @@ warnings: false | ||||
| show_errors: false | ||||
| logger: 'console' | ||||
| engines: | ||||
|   template_toolkit: | ||||
|   netdisco_template_toolkit: | ||||
|     encoding: 'utf8' | ||||
|     start_tag: '[%' | ||||
|     end_tag: '%]' | ||||
| @@ -235,7 +235,7 @@ plugins: | ||||
|         provider: 'App::Netdisco::Web::Auth::Provider::DBIC' | ||||
|         schema_name: 'netdisco' | ||||
| session: 'YAML' | ||||
| template: 'template_toolkit' | ||||
| template: 'netdisco_template_toolkit' | ||||
| route_cache: true | ||||
| appname: 'Netdisco' | ||||
| behind_proxy: false | ||||
|   | ||||
		Reference in New Issue
	
	Block a user