Skip to content

Commit 265d330

Browse files
authored
Merge pull request #245 from AtlasOfLivingAustralia/feature/issue242
Fix for allowRowDelete #242
2 parents 8189cec + 48c2a3c commit 265d330

File tree

3 files changed

+42
-16
lines changed

3 files changed

+42
-16
lines changed

grails-app/taglib/au/org/ala/ecodata/forms/ModelTagLib.groovy

+7-3
Original file line numberDiff line numberDiff line change
@@ -1009,8 +1009,12 @@ class ModelTagLib {
10091009
}
10101010

10111011
static boolean getAllowRowDelete(attrs, name, context) {
1012-
def ard = getAttribute(attrs, name, context, 'allowRowDelete') ?: 'true'
1013-
return ard.toBoolean()
1012+
Map dataModel = getAttribute(attrs.model.dataModel, name)
1013+
def allowRowDelete = true
1014+
if (dataModel?.allowRowDelete != null) {
1015+
allowRowDelete = Boolean.valueOf(dataModel.allowRowDelete)
1016+
}
1017+
allowRowDelete
10141018
}
10151019

10161020

@@ -1031,7 +1035,7 @@ class ModelTagLib {
10311035
return target ? target[attribute] : null
10321036
}
10331037

1034-
def getAttribute(model, name) {
1038+
static def getAttribute(Collection model, String name) {
10351039
return model.findResult( {
10361040

10371041
if (it.name == name) {

package-lock.json

+13-13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/test/groovy/au/org/ala/ecodata/forms/ModelTagLibSpec.groovy

+22
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,26 @@ class ModelTagLibSpec extends Specification implements TagLibUnitTest<ModelTagLi
147147

148148
}
149149

150+
def "The allowRowDelete method supports nested tables"() {
151+
setup:
152+
Map attrs = [model:[dataModel:[
153+
[dataType:'list', name:"test", columns:[], allowRowDelete:true],
154+
[dataType:'list', name:"test2", columns:[], allowRowDelete:"true"],
155+
[dataType:'list', name:"test3", columns:[], allowRowDelete:"false"],
156+
[dataType:'list', name:"test4", columns:[], allowRowDelete:false],
157+
158+
[dataType:'list', name:"test5", columns:[
159+
[dataType:'list', name:"test6", allowRowDelete: false]
160+
]]
161+
]]]
162+
163+
expect:
164+
ModelTagLib.getAllowRowDelete(attrs, "test", null) == true
165+
ModelTagLib.getAllowRowDelete(attrs, "test2", null) == true
166+
ModelTagLib.getAllowRowDelete(attrs, "test3", null) == false
167+
ModelTagLib.getAllowRowDelete(attrs, "test4", null) == false
168+
ModelTagLib.getAllowRowDelete(attrs, "test5", null) == true // default is true
169+
ModelTagLib.getAllowRowDelete(attrs, "test6", null) == false
170+
}
171+
150172
}

0 commit comments

Comments
 (0)