diff --git a/Gulpfile.js b/Gulpfile.js index 169c51b..9300dac 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -11,6 +11,7 @@ var sourcemaps = require('gulp-sourcemaps'); var assign = require('lodash.assign'); var browserSync = require('browser-sync').create(); var del = require('del'); +var flatten = require('gulp-flatten'); // add custom browserify options here var customOpts = { @@ -40,7 +41,7 @@ function bundle() { .pipe(sourcemaps.init({loadMaps: true})) // loads map from browserify file // Add transformation tasks to the pipeline here. .pipe(sourcemaps.write('./')) // writes .map file - .pipe(gulp.dest('./dist/scripts')); + .pipe(gulp.dest('./dist')); } gulp.task('dist', ['dist-node-modules'], function () { @@ -49,6 +50,7 @@ gulp.task('dist', ['dist-node-modules'], function () { 'src/**/*.css', 'src/**/*.js' ], {base: 'src'}) + .pipe(flatten()) .pipe(gulp.dest('dist')); }); diff --git a/package.json b/package.json index 9422643..27d944e 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "angular": "^1.4.7", "bootstrap": "^3.3.5", "del": "^2.0.2", + "gulp-flatten": "^0.2.0", "jquery": "^2.1.4" } } diff --git a/src/content_script.js b/src/content_script.js index 2df5148..cf95803 100644 --- a/src/content_script.js +++ b/src/content_script.js @@ -16,7 +16,7 @@ $(document).ready(function () { var s = document.createElement('script'); // TODO: add "script.js" to web_accessible_resources in manifest.json // s.src = chrome.extension.getURL('script.js'); - s.src = 'scripts/bundle.js' + s.src = 'bundle.js' s.onload = function() { this.parentNode.removeChild(this); bootStrapAndRestoreAngular(); @@ -32,4 +32,34 @@ $(document).ready(function () { }); } + document.addEventListener('click', function(evt) { + if (!document.hasFocus()) { + return true; + } + processSelection(); + // evt.stopPropagation(); + // evt.preventDefault(); + }, false); + + // Find currently selected word + function processSelection () { + var focused = document.activeElement; + var selectedText; + if (focused) { + try { + selectedText = focused.value.substring( + focused.selectionStart, focused.selectionEnd); + } catch (err) { + } + } + if (selectedText == undefined) { + var sel = window.getSelection(); + var selectedText = sel.toString(); + } + if (selectedText) { + currentlySelectedWord = selectedText; + displaySelectedWord(currentlySelectedWord); + getSensesFromServer(currentlySelectedWord); + } + } }); \ No newline at end of file diff --git a/src/data/data.service.ts b/src/data/data.service.ts index 5975063..790df97 100644 --- a/src/data/data.service.ts +++ b/src/data/data.service.ts @@ -2,7 +2,8 @@ class DataService { - $http : ng.IHttpService; + $http : ng.IHttpService + serverUrl = 'http://lexitags.dyndns.org/server/lexitags2/Semtags?data=' static $inject = ["$scope", "$log"]; constructor($http: ng.IHttpService, $log: ng.ILogService) { @@ -10,18 +11,16 @@ class DataService { } createQuery (word: string) { - return '{"word":"QUERYTOREPLACE"}'.replace(/QUERYTOREPLACE/, word); + return '{"word":"QUERYTOREPLACE"}' + .replace(/QUERYTOREPLACE/, word); } callServer (word: string) { if (!word) { return; }; - - var serverUrl = 'http://lexitags.dyndns.org/server/lexitags2/Semtags?data=' - - return this.$http.get(serverUrl + this.createQuery(word)); - + return this.$http + .get(this.serverUrl + this.createQuery(word)); } } diff --git a/src/index.ts b/src/index.ts index 42cb270..27a7e12 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,13 +4,15 @@ import $ = require('jquery'); import angular = require('angular'); import MenuCtrl = require('./menu/menu.controller'); import DataService = require('./data/data.service'); +import SelectedWordService = require('./selectedWord/selectedWord.service'); angular.module('tagIt', []) .factory('DataService', DataService) + .factory('SelectedWordService', SelectedWordService) .controller('MenuCtrl', MenuCtrl); function initAngular () { - $.get('menu/menu.tpl.html', function (htmlData) { + $.get('menu.tpl.html', function (htmlData) { $('body').children().wrapAll('
'); $('.tagit-body').before(htmlData); angular.bootstrap( diff --git a/src/menu/menu.controller.ts b/src/menu/menu.controller.ts index 787bdb1..3f64666 100644 --- a/src/menu/menu.controller.ts +++ b/src/menu/menu.controller.ts @@ -10,9 +10,11 @@ class MenuCtrl { testWord = "It's working" selectedWord = "No word yet" - static $inject = ["$scope", "$log"] - constructor($scope: any, $log: angular.ILogService) { + static $inject = ["$scope", "$log", "SelectedWordService"] + + constructor($scope: any, $log: angular.ILogService, SelectedWordService: any) { $scope.vm = this; + SelectedWordService.init(); } remove() { diff --git a/src/menu/menu.tpl.html b/src/menu/menu.tpl.html index d4a36c2..e680550 100644 --- a/src/menu/menu.tpl.html +++ b/src/menu/menu.tpl.html @@ -15,16 +15,11 @@ Currently selected word: {{vm.selectedWord}} - +