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

Commit bea47bf

Browse files
committed
Fix s2ui-override
1 parent f878d9e commit bea47bf

File tree

3 files changed

+133
-26
lines changed

3 files changed

+133
-26
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ build
1111
classes
1212
cobertura.ser
1313
kindlegen
14+
/plugin/src/main/templates/views

plugin/build.gradle

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,48 @@ apply from: "${rootProject.projectDir}/gradle/artifactoryPublish.gradle"
5959

6060
assets {
6161
packagePlugin = true
62-
}
62+
}
63+
64+
65+
task copyGspIntoTemplates {
66+
ext.inputFolders = ['aclClass',
67+
'aclEntry',
68+
'aclObjectIdentity',
69+
'aclSid',
70+
'includes',
71+
'layouts',
72+
'login',
73+
'persistentLogin',
74+
'register',
75+
'registrationCode',
76+
'requestmap',
77+
'role',
78+
'securityInfo',
79+
'user']
80+
doLast {
81+
mkdir "${project.projectDir}/src/main/templates/views"
82+
for ( String folder : inputFolders ) {
83+
mkdir "${project.projectDir}/src/main/templates/views/${folder}"
84+
}
85+
for ( int i = 0; i < inputFolders.size(); i++ ) {
86+
copy {
87+
from(fileTree("${project.projectDir}/grails-app/views/${inputFolders[i]}")) {
88+
include '*.gsp'
89+
}
90+
into "${project.projectDir}/src/main/templates/views/${inputFolders[i]}"
91+
}
92+
}
93+
}
94+
}
95+
96+
task removeGspFromTemplates {
97+
doLast {
98+
for ( String folder : copyGspIntoTemplates.inputFolders ) {
99+
delete "${project.projectDir}/src/main/templates/views/${folder}"
100+
}
101+
delete "${project.projectDir}/src/main/templates/views"
102+
}
103+
104+
}
105+
106+
compileAstJava.dependsOn copyGspIntoTemplates

plugin/src/main/scripts/s2ui-override.groovy

Lines changed: 87 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -42,29 +42,26 @@ File viewsDir = new File(grailsApp, 'views')
4242
File layoutsDir = new File(viewsDir, 'layouts')
4343

4444
def controllers = [aclclass: 'AclClass',
45-
aclentry: 'AclEntry',
46-
aclobjectidentity: 'AclObjectIdentity',
47-
aclsid: 'AclSid',
48-
persistentlogin: 'PersistentLogin',
49-
register: 'Register',
50-
registrationcode: 'RegistrationCode',
51-
requestmap: 'Requestmap',
52-
role: 'Role',
53-
securityinfo: 'SecurityInfo',
54-
user: 'User']
45+
aclentry: 'AclEntry',
46+
aclobjectidentity: 'AclObjectIdentity',
47+
aclsid: 'AclSid',
48+
persistentlogin: 'PersistentLogin',
49+
register: 'Register',
50+
registrationcode: 'RegistrationCode',
51+
requestmap: 'Requestmap',
52+
role: 'Role',
53+
securityinfo: 'SecurityInfo',
54+
user: 'User']
5555

5656
if (!controllerPackage) {
5757
if ('layout' == type) {
58-
// special case for springSecurityUI.gsp
59-
copy 'layouts/springSecurityUI.gsp', layoutsDir
60-
61-
copy 'includes/_ajaxLogin.gsp', new File(viewsDir, 'includes')
58+
copy template('views/layouts/springSecurityUI.gsp'), file('grails-app/views/layouts/')
59+
copy template('views/includes/_ajaxLogin.gsp'), new File(viewsDir, 'includes')
6260
return
6361
}
6462

6563
if ('auth' == type) {
66-
// special case for auth.gsp
67-
copy 'login/auth.gsp', new File(viewsDir, 'login')
64+
copy template('views/login/auth.gsp'), new File(viewsDir, 'login')
6865
return
6966
}
7067
}
@@ -93,21 +90,86 @@ File destinationDirectory = new File(controllersDir, directoryName)
9390
destinationDirectory.mkdirs()
9491

9592
render template(controller + 'Controller.groovy.template'),
96-
new File(destinationDirectory, controller + 'Controller.groovy'),
97-
[packageDeclaration: "package $controllerPackage"], false
93+
new File(destinationDirectory, controller + 'Controller.groovy'),
94+
[packageDeclaration: "package $controllerPackage"], false
9895

9996
// copy the GSPs
10097
directoryName = GrailsNameUtils.getPropertyName(controller)
10198
File gspDirectory = new File(viewsDir, directoryName)
102-
10399
for (resource in resources(directoryName + '/*.gsp')) {
104100
copy resource, gspDirectory
105101
}
106102

103+
switch ( directoryName ) {
104+
case 'aclClass':
105+
copy template('views/aclClass/create.gsp'), new File(viewsDir, 'aclClass')
106+
copy template('views/aclClass/edit.gsp'), new File(viewsDir, 'aclClass')
107+
copy template('views/aclClass/search.gsp'), new File(viewsDir, 'aclClass')
108+
break
109+
case 'aclEntry':
110+
copy template('views/aclEntry/create.gsp'), new File(viewsDir, 'aclEntry')
111+
copy template('views/aclEntry/edit.gsp'), new File(viewsDir, 'aclEntry')
112+
copy template('views/aclEntry/search.gsp'), new File(viewsDir, 'aclEntry')
113+
break
114+
case 'aclObjectIdentity':
115+
copy template('views/aclObjectIdentity/create.gsp'), new File(viewsDir, 'aclObjectIdentity')
116+
copy template('views/aclObjectIdentity/edit.gsp'), new File(viewsDir, 'aclObjectIdentity')
117+
copy template('views/aclObjectIdentity/search.gsp'), new File(viewsDir, 'aclObjectIdentity')
118+
break
119+
case 'aclSid':
120+
copy template('views/aclSid/create.gsp'), new File(viewsDir, 'aclSid')
121+
copy template('views/aclSid/edit.gsp'), new File(viewsDir, 'aclSid')
122+
copy template('views/aclSid/search.gsp'), new File(viewsDir, 'aclSid')
123+
break
124+
case 'persistentLogin':
125+
copy template('views/persistentLogin/search.gsp'), new File(viewsDir, 'persistentLogin')
126+
copy template('views/persistentLogin/edit.gsp'), new File(viewsDir, 'persistentLogin')
127+
break
128+
case 'register':
129+
copy template('views/register/forgotPassword.gsp'), new File(viewsDir, 'register')
130+
copy template('views/register/register.gsp'), new File(viewsDir, 'register')
131+
copy template('views/register/resetPassword.gsp'), new File(viewsDir, 'register')
132+
break
133+
case 'registrationCode':
134+
copy template('views/registrationCode/search.gsp'), new File(viewsDir, 'registrationCode')
135+
copy template('views/registrationCode/edit.gsp'), new File(viewsDir, 'registrationCode')
136+
break
137+
case 'requestmap':
138+
copy template('views/requestmap/create.gsp'), new File(viewsDir, 'requestmap')
139+
copy template('views/requestmap/edit.gsp'), new File(viewsDir, 'requestmap')
140+
copy template('views/requestmap/search.gsp'), new File(viewsDir, 'requestmap')
141+
break
142+
case 'role':
143+
copy template('views/role/create.gsp'), new File(viewsDir, 'role')
144+
copy template('views/role/edit.gsp'), new File(viewsDir, 'role')
145+
copy template('views/role/search.gsp'), new File(viewsDir, 'role')
146+
break
147+
case 'securityInfo':
148+
copy template('views/securityInfo/config.gsp'), new File(viewsDir, 'securityInfo')
149+
copy template('views/securityInfo/currentAuth.gsp'), new File(viewsDir, 'securityInfo')
150+
copy template('views/securityInfo/filterChains.gsp'), new File(viewsDir, 'securityInfo')
151+
copy template('views/securityInfo/logoutHandlers.gsp'), new File(viewsDir, 'securityInfo')
152+
copy template('views/securityInfo/mappings.gsp'), new File(viewsDir, 'securityInfo')
153+
copy template('views/securityInfo/providers.gsp'), new File(viewsDir, 'securityInfo')
154+
copy template('views/securityInfo/secureChannel.gsp'), new File(viewsDir, 'securityInfo')
155+
copy template('views/securityInfo/usercache.gsp'), new File(viewsDir, 'securityInfo')
156+
copy template('views/securityInfo/voters.gsp'), new File(viewsDir, 'securityInfo')
157+
break
158+
case 'user':
159+
copy template('views/user/create.gsp'), new File(viewsDir, 'user')
160+
copy template('views/user/edit.gsp'), new File(viewsDir, 'user')
161+
copy template('views/user/search.gsp'), new File(viewsDir, 'user')
162+
break
163+
}
164+
107165
if ('register' == type) {
108-
layoutsDir.mkdirs()
109-
render template('register.gsp.template'),
110-
new File(layoutsDir, 'register.gsp'),
111-
[:],
112-
false
113-
}
166+
copy template('views/layouts/register.gsp'), file('grails-app/views/layouts/')
167+
}
168+
169+
private void copy(pathOrResource, File destinationDirectory) {
170+
if ( !destinationDirectory.exists() ) {
171+
destinationDirectory.mkdirs()
172+
}
173+
174+
copy resource(pathOrResource), destinationDirectory
175+
}

0 commit comments

Comments
 (0)