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';