Skip to content
This repository was archived by the owner on Mar 10, 2025. It is now read-only.

Commit 0807fcd

Browse files
committed
Allow default scaffold templates for namespaces
1 parent 279d70a commit 0807fcd

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

src/main/groovy/grails/plugin/scaffolding/ScaffoldingViewResolver.groovy

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,28 @@ class ScaffoldingViewResolver extends GroovyPageViewResolver implements Resource
7070
viewCacheKey
7171
}
7272

73+
private Resource resolveResource(Class controllerClass, shortViewName) {
74+
Resource res = null
75+
if (Environment.isDevelopmentMode()) {
76+
res = new FileSystemResource(new File(BuildSettings.BASE_DIR, "src/main/templates/scaffolding/${shortViewName}.gsp"))
77+
}
78+
79+
if (!res?.exists()) {
80+
def url = IOUtils.findResourceRelativeToClass(controllerClass, "/META-INF/templates/scaffolding/${shortViewName}.gsp")
81+
res = url ? new UrlResource(url) : null
82+
}
83+
84+
if (!res.exists() && templateOverridePluginDescriptor) {
85+
def url = IOUtils.findResourceRelativeToClass(templateOverridePluginDescriptor, "/META-INF/templates/scaffolding/${shortViewName}.gsp")
86+
res = url ? new UrlResource(url) : null
87+
}
88+
89+
if (!res.exists()) {
90+
res = resourceLoader.getResource("classpath:META-INF/templates/scaffolding/${shortViewName}.gsp")
91+
}
92+
res
93+
}
94+
7395
@Override
7496
protected View loadView(String viewName, Locale locale) throws Exception {
7597
def view = super.loadView(viewName, locale)
@@ -93,26 +115,10 @@ class ScaffoldingViewResolver extends GroovyPageViewResolver implements Resource
93115

94116
if (scaffoldValue instanceof Class) {
95117
def shortViewName = viewName.substring(viewName.lastIndexOf('/') + 1)
96-
Resource res = null
97-
98-
if (Environment.isDevelopmentMode()) {
99-
res = new FileSystemResource(new File(BuildSettings.BASE_DIR, "src/main/templates/scaffolding/${shortViewName}.gsp"))
100-
}
101-
118+
Resource res = controllerClass.namespace? resolveResource(controllerClass.clazz, "${controllerClass.namespace}/${shortViewName}") : null
102119
if (!res?.exists()) {
103-
def url = IOUtils.findResourceRelativeToClass(controllerClass.clazz, "/META-INF/templates/scaffolding/${shortViewName}.gsp")
104-
res = url ? new UrlResource(url) : null
120+
res = resolveResource(controllerClass.clazz, shortViewName)
105121
}
106-
107-
if (!res.exists() && templateOverridePluginDescriptor) {
108-
def url = IOUtils.findResourceRelativeToClass(templateOverridePluginDescriptor, "/META-INF/templates/scaffolding/${shortViewName}.gsp")
109-
res = url ? new UrlResource(url) : null
110-
}
111-
112-
if (!res.exists()) {
113-
res = resourceLoader.getResource("classpath:META-INF/templates/scaffolding/${shortViewName}.gsp")
114-
}
115-
116122
if (res.exists()) {
117123
def model = model((Class) scaffoldValue)
118124
def viewGenerator = new GStringTemplateEngine()
@@ -133,9 +139,7 @@ class ScaffoldingViewResolver extends GroovyPageViewResolver implements Resource
133139
} else {
134140
return view
135141
}
136-
137142
}
138-
139143
}
140144
}
141145
return view

0 commit comments

Comments
 (0)