From 7a23f0217b94bdcada336db45642609aaa9a409f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20Norman=20Hauk=C3=A5s?= Date: Sat, 14 Nov 2015 13:35:42 +0100 Subject: [PATCH] Revert "not able to reach typescript code from chrome popup.js will need to revert." This reverts commit 9ab2035133e679e8b094b15fa49f8be4ee7a86af. --- src/index.ts | 4 +-- src/menu/menu.controller.ts | 23 ++++++++----- src/plugin-specific/popup.html | 1 - src/services/backend.service.ts | 46 -------------------------- src/services/data.service.ts | 39 ++++++++++++++++++++++ src/services/selectedWord.service.ts | 49 +++++++++++----------------- 6 files changed, 75 insertions(+), 87 deletions(-) delete mode 100644 src/services/backend.service.ts create mode 100644 src/services/data.service.ts diff --git a/src/index.ts b/src/index.ts index 6cef548..b7698b1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,6 @@ /// -import { BackendService } from './services/backend.service'; +import { DataService } from './services/data.service'; import { SelectedWordService } from './services/selectedWord.service'; import { MenuCtrl } from './menu/menu.controller'; @@ -8,7 +8,7 @@ export function init (callback: () => void) { var $ = jQuery; angular.module('tagit', []) - .service('BackendService', BackendService) + .service('DataService', DataService) .service('SelectedWordService', SelectedWordService) .controller('MenuCtrl', MenuCtrl); diff --git a/src/menu/menu.controller.ts b/src/menu/menu.controller.ts index 521c348..d1351ea 100644 --- a/src/menu/menu.controller.ts +++ b/src/menu/menu.controller.ts @@ -1,6 +1,6 @@ 'use strict'; -import { BackendService } from '../services/backend.service'; +import { DataService } from '../services/data.service'; import { SelectedWordService } from '../services/selectedWord.service'; import { ISense, IVMScope, ISynset } from '../index.interfaces'; @@ -8,19 +8,19 @@ export class MenuCtrl { selectedWord = ""; senses : Object[]; - backendService : BackendService; + dataService : DataService; selectedWordService : SelectedWordService; $log : ng.ILogService; $scope: ng.IScope; /* @ngInject */ constructor ($scope: IVMScope, $log: angular.ILogService, - BackendService: BackendService, + DataService: DataService, SelectedWordService: SelectedWordService) { $scope.vm = this; this.$log = $log; this.$scope = $scope; - this.backendService = BackendService; + this.dataService = DataService; this.selectedWordService = SelectedWordService; // Wire up clicklistener @@ -30,16 +30,15 @@ export class MenuCtrl { onTagSelect (sense: ISense) { this.selectedWordService.addTagToPage(sense); - this.backendService.storeTaggingInformation( - sense, this.selectedWordService.getClonedSelectionRange()); + this.dataService.storeTaggingInformation({}); } onWordSelected = (newWord : string) => { this.selectedWord = newWord; - this.backendService.callServer(newWord) + this.dataService.callServer(newWord) .then((synsets : Object) => { this.$log.debug(synsets); - this.senses = this.backendService.processSynsets( synsets); + this.senses = this.dataService.processSynsets( synsets); }); } @@ -50,6 +49,14 @@ export class MenuCtrl { this.$scope.$apply(); } + selectWord (sense : ISense) { + this.dataService.storeTaggingInformation({ + mail: "mail@nilsnh.no", + sentence: "whole sentence", + senseid: sense.senseid, + }); + } + removeMenu() { $('.tagit-body').children().unwrap(); $('.tagit-menu').remove(); diff --git a/src/plugin-specific/popup.html b/src/plugin-specific/popup.html index 6c67329..659fbf1 100644 --- a/src/plugin-specific/popup.html +++ b/src/plugin-specific/popup.html @@ -4,7 +4,6 @@ Popup menu for TagIt plugin - diff --git a/src/services/backend.service.ts b/src/services/backend.service.ts deleted file mode 100644 index 5d87cc6..0000000 --- a/src/services/backend.service.ts +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -import { ISynset, ISense } from '../index.interfaces'; - -export class BackendService { - - $http : ng.IHttpService; - $log : ng.ILogService; - private serverUrl = 'http://lexitags.dyndns.org/server/lexitags2/Semtags?data='; - - /* @ngInject */ - constructor($http: ng.IHttpService, $log: ng.ILogService) { - this.$http = $http; - this.$log = $log; - } - - callServer (word: string) { - if (!word) { - return; - }; - return this.$http.get(this.serverUrl + this.createQuery(word)); - } - - processSynsets (synsets: ISynset) : string[] { - return synsets.data.senses; - } - - // save tagging information - storeTaggingInformation (sense: ISense, range: Range ) { - this.$log.debug('storeTaggingInformation() was called'); - return this.buildTagResponse(sense, range); - } - - buildTagResponse (sense: ISense, range: Range) { - debugger; - return { - "sense": sense, - "selectionRange": range - } - } - - private createQuery (word: string) { - return '{"word":"QUERYTOREPLACE"}' - .replace(/QUERYTOREPLACE/, word); - } -} diff --git a/src/services/data.service.ts b/src/services/data.service.ts new file mode 100644 index 0000000..3edeee3 --- /dev/null +++ b/src/services/data.service.ts @@ -0,0 +1,39 @@ +'use strict'; + +import { ISynset } from '../index.interfaces'; + +export class DataService { + + $http : ng.IHttpService; + $log : ng.ILogService; + private serverUrl = 'http://lexitags.dyndns.org/server/lexitags2/Semtags?data='; + + /* @ngInject */ + constructor($http: ng.IHttpService, $log: ng.ILogService) { + this.$http = $http; + this.$log = $log; + } + + callServer (word: string) { + if (!word) { + return; + }; + return this.$http.get(this.serverUrl + this.createQuery(word)); + } + + processSynsets (synsets: ISynset) : string[] { + return synsets.data.senses; + } + + // save tagging information + // Params: email, tagging, sentence + storeTaggingInformation (tag : Object) { + this.$log.debug('storeTaggingInformation() was called'); + this.$log.debug(tag); + } + + private createQuery (word: string) { + return '{"word":"QUERYTOREPLACE"}' + .replace(/QUERYTOREPLACE/, word); + } + } diff --git a/src/services/selectedWord.service.ts b/src/services/selectedWord.service.ts index 95054a6..ac35ad1 100644 --- a/src/services/selectedWord.service.ts +++ b/src/services/selectedWord.service.ts @@ -24,16 +24,17 @@ export class SelectedWordService { if (!document.hasFocus()) { return true; } - if(this.getSelection()) { - this.currentSelectionRange = this.getClonedSelectionRange(); - callbackOnSelectFunc(joinLongWords(this.getSelection().toString())); - } else { - callbackOnDeSelectFunc(); - } - // clicks should propagate upwards to other things - // evt.stopPropagation(); - // evt.preventDefault(); - }, false); + var selection = that.findSelection(); + if(selection) { + this.currentSelectionRange = selection.getRangeAt(0).cloneRange(); + callbackOnSelectFunc(joinLongWords(selection.toString())); + } else { + callbackOnDeSelectFunc(); + } + // clicks should propagate upwards to other things + // evt.stopPropagation(); + // evt.preventDefault(); + }, false); function joinLongWords (possiblyLongWord: string) { return possiblyLongWord.replace(" ","_"); } @@ -41,30 +42,18 @@ export class SelectedWordService { // place spans around a tagged word. addTagToPage (sense : ISense) { - function createSpan () { - var span : HTMLSpanElement = document.createElement('span'); - span.id = sense.senseid; - span.title = sense.explanation; - span.className = 'tagit-tag'; - return span; - } - var windowSelection = window.getSelection(); - var originalRange = this.getClonedSelectionRange(); - var rangeToChange = this.getClonedSelectionRange(); - rangeToChange.surroundContents(createSpan()); - windowSelection.removeAllRanges(); // unselect from page + var range = this.currentSelectionRange; + var span : HTMLSpanElement = document.createElement('span'); + span.id = sense.senseid; + span.title = sense.explanation; + span.className = 'tagit-tag'; + range.surroundContents(span); + windowSelection.removeAllRanges(); + // windowSelection.addRange(range); this.$log.debug('addTagToPage'); } - public getSelection () { - return this.findSelection(); - } - - public getClonedSelectionRange () { - return this.findSelection().getRangeAt(0).cloneRange(); - } - private findSelection () { var focused : any = document.activeElement; var selectedText : string;