PageSourceSearch

http://linguavera.com/ajs/js/controllers.js

js linguavera.com collected 2026-10-06 07:10:49 UTC 9,521 bytes, 451 lines download raw bytes

1'use strict';
2
3var wordListID = "wordList";
4var requestNumber = 0;
5var wordsHistory = [];
6var wordsHistoryCounter = 0;
7var debugMode = false;
8
9// Word history vars begin
10var wordPast = "";
11var wordCurrent = "";
12
13var wordPastUid = -1;
14var wordCurrentUid = -1;
15
16var histWords = [];
17var histUids = [];
18
19var histCounter = -1;
20//Word history vars end
21
22var lastWordCall = -1;
23var wordShowPeriod = 3000;
24
25var delIsVisible = false;
26
27var lvmanjs = angular.module('lvmanjs', []);
28
29lvmanjs.directive('dynamic', function ($compile) {
30	  return {
31	    restrict: 'A',
32	    replace: true,
33	    link: function (scope, ele, attrs) {
34	      scope.$watch(attrs.dynamic, function(html) {
35	        ele.html(html);
36	        $compile(ele.contents())(scope);
37	      });
38	    }
39	  };
40	});
41
42lvmanjs.controller('lvmMainCtrl', function($scope, $http, $rootScope, $sce) {
43
44	$scope.mainFieldInput = function() {
45
46		if (debugMode) {
47			console.log("$scope.mainFieldInput start");
48			console.log("$scope.query: " + $scope.query);
49		}
50
51		if ($scope.query == '') {
52			clearAll($scope);
53			helpSwitch(true);
54			delImgSelector(false);
55			return;
56		}
57
58		if(!delIsVisible){
59			delImgSelector(true);
60		}
61		
62		helpSwitch(false);
63		
64		requestNumber++;
65		var dateStart = new Date();
66
67		var getUrl = '../service/getWordsJsn.htm?word='
68				+ encodeURIComponent($scope.query) + '&requestNumber='
69				+ requestNumber;
70
71		//http://localhost:9090/lvm/lv-itru/service/getWordsJsn.htm?word=avallo&requestNumber=1
72		
73		$http.get(getUrl, {
74			header : {
75				'Content-Type' : 'application/json; charset=UTF-8'
76			}
77		}).success(
78				function(data) {
79
80					if (debugMode) {
81						console.log("$scope.mainFieldInput success");
82						console.log("data: " + data);
83						console.log("requestNumber: " + requestNumber
84								+ ",  data.requestNumber: "
85								+ data.requestNumberву);
86					}
87
88					var elapsedTime = "";
89					
90					if (0 + data.requestNumber == requestNumber) {
91
92						var dateEnd = new Date();
93						elapsedTime = (dateEnd - dateStart) / 1000;
94
95						if (typeof (data.currentWord) != 'undefined'
96								&& data.currentWord != null) {
97
98							if (debugMode) {
99								console.log("got data");
100							}
101
102							$scope.command = data;
103							$scope.words = data.words;
104							
105							$('#trnsld').scrollTop(0);
106							$('#wdrs').scrollTop(0);
107							
108							$scope.transAsHtmlVal = $sce.trustAsHtml(data.wordDescStr);
109							$scope.wordTitle = data.currentWord.wordOriginal;
110							$scope.execTime = data.execTime;
111							$rootScope.fullWordUrl = data.currentWord.fullWordUrl;
112
113							checkLasWordSown(dateEnd, data.currentWord.wordOriginal, data.currentWord.uid);
114							
115							if (debugMode) {
116								console.log("$scope.htmlTitle: " + $rootScope);
117							}
118							
119							if(data.forceSearchUsed){
120								if (debugMode) {
121								  console.log("ForceSearchUsed");
122								}
123							}
124							
125						} else {
126
127							if (debugMode) {
128								console.log("no data returned");
129							}
130
131							clearAll($scope);
132						}
133						$rootScope.htmlTitle = data.confHtml.title;
134						$rootScope.htmlDescr = data.confHtml.descr;
135					}
136
137					if(window.location.pathname.search("/sw-") > 0){
138						$scope.query = "";
139					}
140					
141					$scope.execTimeP2P = elapsedTime;
142				});
143
144		if (debugMode) {
145			console.log("$scope.mainFieldInput end");
146		}
147	};
148
149	$scope.anchorClicks = 0;
150	$scope.buttonClicks = 0;
151	$scope.handleAnchorClick = function() {
152		$scope.anchorClicks++;
153	};
154	$scope.handleButtonClick = function() {
155		$scope.buttonClicks++;
156	};
157
158	$scope.clickWord = function(uid) {
159
160		try{
161			_gaq.push([ '_trackEvent', 'kref', 'view' ]);
162		}catch(e){
163			
164		}
165		
166		getTrans(uid, true);
167		
168	};
169
170	function getTrans(uid, setHist){
171		
172		var url = "../service/getTranslJson.htm?uidMain=" + uid;
173
174		if (debugMode) {
175			console.log("clickWord: " + uid);
176			console.log("clickWord: " + url);
177		}		
178		
179		$scope.transls = "";
180
181		$http.get(url, {
182			header : {
183				'Content-Type' : 'application/json; charset=UTF-8'
184			}
185		}).success(
186				function(data) {
187					
188					if(setHist){
189						setWordHistory(data.currentWord.wordOriginal, data.currentWord.uid);
190					}
191					
192					$scope.wordTitle = data.currentWord.wordOriginal;
193					//$scope.transls = data.wordDesc;
194					$scope.transAsHtmlVal = $sce.trustAsHtml(data.wordDescStr);
195					$scope.execTime = data.execTime;
196
197					$rootScope.htmlTitle = data.confHtml.title;
198					$rootScope.htmlDescr = data.confHtml.descr;
199					$rootScope.fullWordUrl = data.currentWord.fullWordUrl;
200
201					if (debugMode) {
202						console.log("data.currentWord.wordOriginal: "
203								+ data.currentWord.wordOriginal);
204						console.log("url: " + data.currentWord.fullWordUrl);
205					}
206				});
207
208		
209	}
210	
211	$scope.keyEsc = function(e) {
212
213		if (e.keyCode == 27) {
214			$scope.query = "";
215			clearAll($scope);
216			helpSwitch(true);
217			delImgSelector(false);
218		}
219	};
220	
221	$scope.clearInput = function(e) {
222		$scope.query = "";
223		clearAll($scope);
224		helpSwitch(true);
225		delImgSelector(false);
226	};
227 
228	
229	function clearAll($scope) {
230
231		if (debugMode) {
232			console.log("clear data");
233		}
234
235		//$scope.transls = null;
236		$scope.wordTitle = null;
237		$scope.execTime = null;
238		$scope.transAsHtmlVal = "";
239		
240		if ($scope.words != null) {
241			for (var i = $scope.words.length - 1; i >= 0; i--) {
242				$scope.words.splice(i, 1);
243			}
244		}
245	}
246
247	function initData() {
248		if (debugMode) {
249			console.log("initData: start");
250		}
251
252		var getUrl = '../service/initPageJsn.htm';
253
254		$http.get(getUrl, {
255			header : {
256				'Content-Type' : 'application/json; charset=UTF-8'
257			}
258		}).success(function(data) {
259
260			if (debugMode) {
261				console.log("initDatat success");
262				console.log("data: " + data);
263			}
264
265			$rootScope.htmlTitle = data.confHtml.title;
266			$rootScope.htmlDescr = data.confHtml.descr;
267		});
268
269		if (debugMode) {
270			console.log("initData: end");
271		}
272	}
273
274	
275	function setWordHistory(word, uid){
276		
277		if(word != wordCurrent){
278			if(wordCurrent != ""){
279				histCounter++;
280				
281				wordPast = '↵ ' + wordCurrent;
282				wordPastUid = wordCurrentUid;
283				
284				histWords[histCounter] = wordCurrent;
285				histUids[histCounter] = wordCurrentUid;
286				$("#bckBtn").show();
287			}
288			wordCurrent = word;
289			wordCurrentUid = uid;
290			$scope.qhist = wordPast;
291			
292			try{
293				_gaq.push([ '_trackEvent', 'srchWrd', 'view' ]);
294			}catch(e){
295			}
296		}
297	}
298	
299
300	function checkLasWordSown(dateEnd, word, uid){
301		if(word == wordCurrent){
302			return;
303		}
304		
305		if (debugMode) {
306			console.log("checkLasWordSown starts");
307		}
308
309		if(lastWordCall == -1){
310			if (debugMode) {
311				console.log("checkLasWordSown first call");
312			}
313
314			lastWordCall = dateEnd.getTime();
315			return;
316		}
317		
318		if (debugMode) {
319			console.log("checkLasWordSown diff: " + (dateEnd.getTime() - lastWordCall));
320		}
321
322		
323		if(dateEnd.getTime() - lastWordCall > wordShowPeriod){
324			setWordHistory(word, uid);		
325		}
326	}	
327	
328	$scope.goBack = function() {
329
330		wordCurrent = histWords[histCounter];
331		wordCurrentUid = histUids[histCounter];
332
333		histCounter--;
334		
335		if (debugMode) {
336			console.log("go Back, histCounter: " + histCounter);
337		}
338		
339		wordPast = '↵ ' + histWords[histCounter];;
340		wordPastUid = histUids[histCounter];
341		
342		$scope.qhist = wordPast;
343		
344		getTrans(wordCurrentUid, false);
345		
346		if(histCounter == -1){
347			$("#bckBtn").hide();
348		}
349	};
350	
351	$scope.inputGetFocus = function(val) {
352		if(val){
353			$('#imgDel').attr("src", "../img/delEsc.jpg");
354		} else {
355			$('#imgDel').attr("src", "../img/del.jpg");
356		}
357	};
358	
359	
360	initData();
361});
362
363var transAsHtmlCtrl = function($scope, $sce, $compile) {
364	$scope.transAsHtmlVal = $sce.trustAsHtml($scope.transl.descr);
365};
366
367var wordAsHtml = function($scope, $sce) {
368	$scope.wordAsHtmlVal = $sce.trustAsHtml($scope.word.wordOriginalList);
369	$scope.aurl = $scope.word.wordAsUrl + ".htm";
370};
371
372lvmanjs.controller('wordAsHtml', wordAsHtml);
373lvmanjs.controller('transAsHtmlCtrl', transAsHtmlCtrl);
374
375/** ******* *************** */
376
377function winResize(second) {
378	var shift = 90;
379
380	if (second) {
381		shift = 40;
382	}
383
384	var pos = $('#trnsld').position().top;
385	var height = $(window).height();
386	var dheight = height - pos - shift;
387	$('#trnsld').height(dheight);
388
389	pos = $('#wdrs').position().top;
390	height = $(window).height();
391	dheight = height - pos - 20;
392	$('#wdrs').height(dheight - 0);
393
394	$('#shlnk').width($('#trnsld').width());
395}
396
397window.onresize = function() {
398	winResize(true);
399};
400
401var helpMode = true;
402
403function helpSwitch(helpModeParm){
404	
405	if(helpModeParm == helpMode){
406		return;
407	}
408
409	if (debugMode) {
410		console.log("helpSwitch, help mode: " + helpModeParm);
411	}
412	
413	if (helpModeParm) {
414		$("#helpDiv").show();
415		$("#wordList").hide();
416	} else {
417		$("#helpDiv").hide();
418		$("#wordList").show();
419	}
420
421	winResize(false);
422	
423	helpMode = helpModeParm;
424}
425
426function delImgSelector(enabled){
427	if(enabled){
428		$("#imgDel").show();
429		delIsVisible = true;
430	}else{
431		$("#imgDel").hide();
432		delIsVisible = false;
433	}
434}
435
436function saveStoreForward(app, storeName){
437
438	var url = "../visitStore.htm?app=" + app + "&storeName=" + storeName; 
439	
440	jQuery.get(url, function(data) {
441	});
442
443}
444
445function checkScreen() {
446	if($(window).width() < 1000){
447	
448		$("#langLst").addClass("mobile");
449		
450	}
451}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.