Skip to content
This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Commit ddd5e0b

Browse files
Fix: ensure geopicker is loaded for non-nested setgeopoint actions
1 parent 34af7e6 commit ddd5e0b

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

src/widget/geo/geopicker.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class Geopicker extends Widget {
7777
* @type {string}
7878
*/
7979
static get selector() {
80-
return ':is(.question input[data-type-xml="geopoint"], .question input[data-type-xml="geotrace"], .question input[data-type-xml="geoshape"]):not([data-setvalue], [data-setgeopoint])';
80+
return '.question [name]:not([name=""], [type="hidden"]):is(input[data-type-xml="geopoint"], input[data-type-xml="geotrace"], input[data-type-xml="geoshape"])';
8181
}
8282

8383
/**

test/spec/widget.geo.spec.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,4 +132,28 @@ describe('geoshape widget', () => {
132132

133133
expect(geopickers.length).to.equal(0);
134134
});
135+
136+
it('loads the widget when a setgeopoint odk-instance-first-load action is defined adjacent to the input', () => {
137+
const form = loadForm('setgeopoint.xml');
138+
139+
form.init();
140+
141+
const widget = form.view.html.querySelector(
142+
'[name="/data/visible_first_load_adjacent_action"] ~ .geopicker'
143+
);
144+
145+
expect(widget).not.to.be.null;
146+
});
147+
148+
it('loads the widget when a setgeopoint odk-instance-first-load action is defined in the model', () => {
149+
const form = loadForm('setgeopoint.xml');
150+
151+
form.init();
152+
153+
const widget = form.view.html.querySelector(
154+
'[name="/data/visible_first_load_model_action"] ~ .geopicker'
155+
);
156+
157+
expect(widget).not.to.be.null;
158+
});
135159
});

0 commit comments

Comments
 (0)