Skip to content

Commit c9c401f

Browse files
authored
Merge pull request #155 from AtlasOfLivingAustralia/feature/issue153
Feature/issue153
2 parents 823d1e3 + e154e5d commit c9c401f

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed

grails-app/assets/javascripts/forms-knockout-bindings.js

+11-2
Original file line numberDiff line numberDiff line change
@@ -868,16 +868,25 @@
868868
*/
869869
ko.bindingHandlers.toggleVisibility = {
870870
init: function (element, valueAccessor) {
871-
871+
var unwrapped = ko.utils.unwrapObservable(valueAccessor());
872872
var visibleClass = 'fa-angle-down';
873873
var hiddenClass = 'fa-angle-up';
874874

875875
var $element = $(element);
876876
var $i = $('<i></i>').addClass('fa').addClass(visibleClass);
877+
if (unwrapped.collapsedByDefault != undefined && !unwrapped.collapsedByDefault) {
878+
$i = $('<i></i>').addClass('fa').addClass(hiddenClass);
879+
}
877880
$element.append($i);
878881

879882
$element.click(function() {
880-
var selector = valueAccessor();
883+
var selector = '';
884+
if (unwrapped.collapsedByDefault != undefined && unwrapped.blockId) {
885+
selector = unwrapped.blockId;
886+
} else {
887+
selector = unwrapped;
888+
}
889+
881890
var $section = $(selector);
882891
if ($section.is(':visible')) {
883892
$section.hide();

grails-app/assets/javascripts/forms.js

+2
Original file line numberDiff line numberDiff line change
@@ -1114,6 +1114,8 @@ function orEmptyArray(v) {
11141114
});
11151115
self.transients.optional = config.optional || false;
11161116
self.transients.questionText = config.optionalQuestionText || 'Not applicable';
1117+
self.transients.description = config.outputDescription;
1118+
self.transients.collapsedByDefault = config.collapsedByDefault || false;
11171119
self.transients.dummy = ko.observable();
11181120

11191121
self.downloadTemplate = function (listName) {

grails-app/services/au/org/ala/ecodata/forms/ActivityFormService.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class ActivityFormService {
5858
model.metaModel = new JSONObject(activityForm)
5959
model.metaModel.remove('sections')
6060
model.metaModel.outputs = new JSONArray(formSections.collect{it.name})
61-
model.metaModel.outputConfig = new JSONArray(formSections.collect{new JSONObject(outputName:it.name, optional:it.optional, collapsedByDefault:it.collapsedByDefault, optionalQuestionText:it.optionalQuestionText)})
61+
model.metaModel.outputConfig = new JSONArray(formSections.collect{new JSONObject(outputName:it.name, optional:it.optional, collapsedByDefault:it.collapsedByDefault, optionalQuestionText:it.optionalQuestionText, outputDescription:it.description)})
6262

6363
// the array of output models
6464
model.outputModels = formSections.collectEntries { [ it.name, it.template] }

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,16 @@ class ActivityFormServiceSpec extends Specification implements ServiceUnitTest<A
4444
void "the service will produce a backwards compatible response after retrieving a form"() {
4545
setup:
4646
String name = "test form"
47-
Map activityForm = [name:name, formVersion:1, sections:[[name:'output', optional:false, collapsedByDefault:false, optionalQuestionText:null, template:[modelName:'test']]]]
47+
String description = "test form description"
48+
Map activityForm = [name:name, description:description, formVersion:1, sections:[[name:'output', optional:false, collapsedByDefault:false, optionalQuestionText:null, template:[modelName:'test']]]]
4849

4950
when:
5051
def result = service.getActivityAndOutputMetadata(name)
5152

5253
then:
5354
1 * webService.getJson({it.endsWith(ActivityFormService.ACTIVITY_FORM_PATH+"?name=test+form")}) >> activityForm
5455
result.metaModel.name == activityForm.name
56+
result.metaModel.description == activityForm.description
5557
result.metaModel.formVersion == activityForm.formVersion
5658
result.metaModel.outputs.size() == 1
5759
result.metaModel.outputs[0] == activityForm.sections[0].name

0 commit comments

Comments
 (0)