Skip to content

Commit 0115e7e

Browse files
committed
Tour stops if there are no results (closes #189).
Change-Id: I2ed9cab9ac47b7494feddd167c15926bd541e5cc
1 parent 3567e33 commit 0115e7e

File tree

4 files changed

+33
-9
lines changed

4 files changed

+33
-9
lines changed

Changes

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
0.60 2025-01-23
1+
0.60 2025-03-26
2+
- Tour stops gracefully if there are no results (closes #189; hebasta)
23
- Create top navbar and modify sidebar. (uyen-nhu)
34
- Improve appearance of title-addon on logo. (uyen-nhu)
45
- Create and style new item on top navbar for 'News'. (uyen-nhu)

dev/js/spec/tourSpec.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,12 @@ define(['tour/tours', 'vc', 'vc/unspecified', 'session', 'match', 'hint', 'hint
8787
return cb(preDefinedStat);
8888
};
8989

90-
90+
var noresultkorap =
91+
"<div id='search' class=''>" +
92+
"<div class='panel result'><div></div></div></div>" +
93+
"<p class='no-results'>Unable to perform the action.</p>" +
94+
"</div>";
95+
9196
var resultkorap =
9297
"<div id='search'>" +
9398
"<ol class='align-left' tabindex='-8'>" +
@@ -393,6 +398,11 @@ define(['tour/tours', 'vc', 'vc/unspecified', 'session', 'match', 'hint', 'hint
393398
let htmlZwei = resultkorap.trim();
394399
resulttemplate.innerHTML = resultkorap;
395400
var resultkor = resulttemplate.content;
401+
402+
let noresulttemplate = document.createElement('template');
403+
noresultkorap.trim();
404+
noresulttemplate.innerHTML = noresultkorap;
405+
var noresultkor = noresulttemplate.content;
396406

397407
resultkor.querySelector('#search > ol > li:not(.active)').addEventListener('click', function (e) {
398408
if (this._match !== undefined)
@@ -549,7 +559,15 @@ define(['tour/tours', 'vc', 'vc/unspecified', 'session', 'match', 'hint', 'hint
549559
resultTour.exit();
550560
}
551561
});
552-
562+
563+
it('Guided Tour should gracefully stop, if no results are retrieved', function(){
564+
let resultTour = tourClass.gTshowResults(noresultkor);
565+
KorAP.session = sessionClass.create('KalamarJSDem');
566+
resultTour.start(noresultkor);
567+
expect(document.querySelector(".introjs-donebutton").textContent).toEqual(loc.TOUR_ldone);
568+
resultTour.exit();
569+
});
570+
553571
it('Guided Tour should hide Hint if aborted', function(){
554572
let tourAbort = tourClass.gTstartSearch(intrkorap);
555573
tourAbort.start();

dev/js/src/loc/de.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ define(function () {
8080
loc.TOUR_seargo = "Durch das Klicken auf das Lupensymbol wird die Suchanfrage gestartet.";
8181

8282
//Guided Tour: explain the result
83+
loc.TOUR_nokwicti = loc.TOUR_nokwicti || "Die Suche ergab keine Ergebnisse, daher wird die Tour hier beendet.";
8384
loc.TOUR_kwicti = "Ergebnisse";
8485
loc.TOUR_kwic = "Die Ergebnisse der Suche werden hier als KWIC (keyword in context) angezeigt. Vor dem KWIC steht die jeweilige Textsigle des Treffers.";
8586
loc.TOUR_snippetti = "KWIC";

dev/js/src/tour/tours.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ define(['lib/intro', 'vc', 'hint', 'menu', 'vc/doc', 'vc/docgroup'],
5151
loc.TOUR_seargo = loc.TOUR_seargo || "Start the search by clicking the magnifying glass.";
5252

5353
//localization guided Tour gTshowResults
54+
loc.TOUR_nokwicti = loc.TOUR_nokwicti || "The search has no results, therefore the tour ends here.";
5455
loc.TOUR_kwicti = loc.TOUR_kwicti || "Results";
5556
loc.TOUR_kwic = loc.TOUR_kwic || "The results of the query are displayed as KWIC (keyword in context). On the left side, you can see the according text sigle.";
5657
loc.TOUR_snippetti = loc.TOUR_snippetti || "KWIC (2)";
@@ -406,13 +407,16 @@ define(['lib/intro', 'vc', 'hint', 'menu', 'vc/doc', 'vc/docgroup'],
406407
tourR.setOption('scrollToElement', true);
407408
tourR.setOption('scrollTo','tooltip');
408409
this.testPrerequ(StepsSR, tourR);
409-
410-
//TODO see also: introJS.totalSteps() merge requested: //github.com/usablica/intro.js/pull/268/files
410+
411411
tourR.onbeforechange(function(targetedElement){
412-
413-
if(this._currentStep == 1){
414-
KorAP.session.set("tour", false);
415-
}
412+
if(this._currentStep == 0){
413+
KorAP.session.set("tour", false);
414+
if(doe.querySelector("#search + p.no-results")){
415+
tourR._introItems[0].intro = loc.TOUR_nokwicti;
416+
tourR.goToStepNumber(10);
417+
document.querySelector(".introjs-prevbutton").style.visibility = "hidden";
418+
}
419+
}
416420

417421
if(this._currentStep == 2){
418422
doe.querySelector("#search > ol > li").click();

0 commit comments

Comments
 (0)