From 58a5ed2b45da24ed4de66050c0724dfd2cb81956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20Norman=20Hauk=C3=A5s?= Date: Wed, 20 Jan 2016 22:36:33 +0100 Subject: [PATCH] Bugfix: Now correctly joining several words before querying the backend. It will only query the backend if its either one or two words. --- src/menu/menu.controller.ts | 29 +++++++++++++++++++++++------ src/services/webpage.service.ts | 2 +- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/menu/menu.controller.ts b/src/menu/menu.controller.ts index 07897d2..ddc69a9 100644 --- a/src/menu/menu.controller.ts +++ b/src/menu/menu.controller.ts @@ -58,12 +58,29 @@ module tagIt { } onWordSelected = (newWord: string) => { - this.selectedWord = newWord; - this.backendService.callServer(newWord) - .then((synsets: Object) => { - this.$log.debug(synsets); - this.senses = this.backendService.processSynsets(synsets); - }); + function countWords(wordWithUnderscores: string) { + return wordWithUnderscores.split("_").length; + } + + if (countWords(newWord) > 2) { + this.selectedWord = "Wops! Plugin can't handle more than two words."; + this.senses = []; + } + else if (newWord.length === 0) { + this.clearMenuVariables(); + } + else { + this.selectedWord = newWord; + this.backendService.callServer(newWord) + .then((synsets: Object) => { + this.$log.debug(synsets); + this.senses = this.backendService.processSynsets(synsets); + }); + } + + //call for a digest because clicklistener that triggers this + //function is unknown to Angular. + this.$scope.$apply(); } onWordDeSelected = () => { diff --git a/src/services/webpage.service.ts b/src/services/webpage.service.ts index 1bfbc28..8e08ec1 100644 --- a/src/services/webpage.service.ts +++ b/src/services/webpage.service.ts @@ -51,7 +51,7 @@ module tagIt { } }, false); function joinLongWords(possiblyLongWord: string) { - return possiblyLongWord.replace(" ", "_"); + return possiblyLongWord.trim().split(" ").join("_"); } function wasRemoveTagButtonClicked(evt: any) { return evt.target.className === 'js-tagit-remove-tag';