Tour stops if there are no results (closes #189).
Change-Id: I2ed9cab9ac47b7494feddd167c15926bd541e5cc
diff --git a/dev/js/spec/tourSpec.js b/dev/js/spec/tourSpec.js
index c342483..2a9d38e 100644
--- a/dev/js/spec/tourSpec.js
+++ b/dev/js/spec/tourSpec.js
@@ -87,7 +87,12 @@
return cb(preDefinedStat);
};
-
+ var noresultkorap =
+ "<div id='search' class=''>" +
+ "<div class='panel result'><div></div></div></div>" +
+ "<p class='no-results'>Unable to perform the action.</p>" +
+ "</div>";
+
var resultkorap =
"<div id='search'>" +
"<ol class='align-left' tabindex='-8'>" +
@@ -393,6 +398,11 @@
let htmlZwei = resultkorap.trim();
resulttemplate.innerHTML = resultkorap;
var resultkor = resulttemplate.content;
+
+ let noresulttemplate = document.createElement('template');
+ noresultkorap.trim();
+ noresulttemplate.innerHTML = noresultkorap;
+ var noresultkor = noresulttemplate.content;
resultkor.querySelector('#search > ol > li:not(.active)').addEventListener('click', function (e) {
if (this._match !== undefined)
@@ -549,7 +559,15 @@
resultTour.exit();
}
});
-
+
+ it('Guided Tour should gracefully stop, if no results are retrieved', function(){
+ let resultTour = tourClass.gTshowResults(noresultkor);
+ KorAP.session = sessionClass.create('KalamarJSDem');
+ resultTour.start(noresultkor);
+ expect(document.querySelector(".introjs-donebutton").textContent).toEqual(loc.TOUR_ldone);
+ resultTour.exit();
+ });
+
it('Guided Tour should hide Hint if aborted', function(){
let tourAbort = tourClass.gTstartSearch(intrkorap);
tourAbort.start();
diff --git a/dev/js/src/loc/de.js b/dev/js/src/loc/de.js
index dd489a6..41614fd 100644
--- a/dev/js/src/loc/de.js
+++ b/dev/js/src/loc/de.js
@@ -80,6 +80,7 @@
loc.TOUR_seargo = "Durch das Klicken auf das Lupensymbol wird die Suchanfrage gestartet.";
//Guided Tour: explain the result
+ loc.TOUR_nokwicti = loc.TOUR_nokwicti || "Die Suche ergab keine Ergebnisse, daher wird die Tour hier beendet.";
loc.TOUR_kwicti = "Ergebnisse";
loc.TOUR_kwic = "Die Ergebnisse der Suche werden hier als KWIC (keyword in context) angezeigt. Vor dem KWIC steht die jeweilige Textsigle des Treffers.";
loc.TOUR_snippetti = "KWIC";
diff --git a/dev/js/src/tour/tours.js b/dev/js/src/tour/tours.js
index 43ceea1..9490780 100644
--- a/dev/js/src/tour/tours.js
+++ b/dev/js/src/tour/tours.js
@@ -51,6 +51,7 @@
loc.TOUR_seargo = loc.TOUR_seargo || "Start the search by clicking the magnifying glass.";
//localization guided Tour gTshowResults
+ loc.TOUR_nokwicti = loc.TOUR_nokwicti || "The search has no results, therefore the tour ends here.";
loc.TOUR_kwicti = loc.TOUR_kwicti || "Results";
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.";
loc.TOUR_snippetti = loc.TOUR_snippetti || "KWIC (2)";
@@ -406,13 +407,16 @@
tourR.setOption('scrollToElement', true);
tourR.setOption('scrollTo','tooltip');
this.testPrerequ(StepsSR, tourR);
-
- //TODO see also: introJS.totalSteps() merge requested: //github.com/usablica/intro.js/pull/268/files
+
tourR.onbeforechange(function(targetedElement){
-
- if(this._currentStep == 1){
- KorAP.session.set("tour", false);
- }
+ if(this._currentStep == 0){
+ KorAP.session.set("tour", false);
+ if(doe.querySelector("#search + p.no-results")){
+ tourR._introItems[0].intro = loc.TOUR_nokwicti;
+ tourR.goToStepNumber(10);
+ document.querySelector(".introjs-prevbutton").style.visibility = "hidden";
+ }
+ }
if(this._currentStep == 2){
doe.querySelector("#search > ol > li").click();