1/* Added by atish on 11/12/2018 For Search */ 2function OnLoadIEBrowser(){ 3 if(isBrowserInternetExplorer()){ 4 polyfillArrayIncludes(); 5 } 6} 7 8OnLoadIEBrowser(); 9 10function searchController($scope) { 11 var $scope = $scope; 12 $scope.language = "en"; 13 var mapWorker, eServiceWorker; 14 $scope.language = getLanguage(); 15 16 if($scope.language == "en"){ 17 $scope.searchPlaceholder = "Search"; 18 } 19 20 if($scope.language == "fr"){ 21 $scope.searchPlaceholder = "Recherche"; 22 } 23 24 $scope.Search_Click = function() { 25 try{ 26 var itemsToDisplay = 5; 27 var listMap = "map"; 28 var myItems = []; 29 var myItemsTitle = []; 30 31 var listEService = "topiceservices"; 32 var myEServItems = []; 33 var myEServItemsTitle = []; 34 35 $scope.webUrl = getWebUrl(); 36 $scope.language = getLanguage(); 37 console.log("language: " + $scope.language); 38 39 if($scope.txtSearch != "undefined"){ 40 if($scope.txtSearch != null){ 41 if($scope.txtSearch != ""){ 42 43 $scope.myItems = [];//keeps map data 44 $scope.myEServItems = [];//keeps eservice data 45 46 //check web worker support and if broswer not IE 47 if (typeof(Worker) !== "undefined" && !isBrowserInternetExplorer()) { 48 49 /********** THIS IF IS WHEN A BROWSER SUPPORT WEB WORKER ***********/ 50 51 if(typeof(mapWorker) != "undefined"){ 52 mapWorker.terminate(); 53 mapWorker = undefined; 54 } 55 56 if(typeof(eServiceWorker) != "undefined"){ 57 eServiceWorker.terminate(); 58 eServiceWorker = undefined; 59 } 60 61 //argument to be passed to web worker 62 var param = { 63 searchValue : $scope.txtSearch, 64 listName : listMap, 65 webUrl : $scope.webUrl, 66 language : $scope.language 67 }; 68 69 if(typeof(mapWorker) == "undefined") { 70 mapWorker = new Worker("/SiteAssets/GovStyles/scripts/search/searchWorker.js"); 71 mapWorker.postMessage(param); 72 } 73 74 75 if(typeof(eServiceWorker) == "undefined") { 76 eServiceWorker = new Worker("/SiteAssets/GovStyles/scripts/search/searchWorker.js"); 77 param.listName = listEService; 78 eServiceWorker.postMessage(param); 79 } 80 81 /** FOR Map Search **/ 82 mapWorker.addEventListener('message', function(event){ 83 $scope.$apply(function () { 84 myItems = event.data; 85 //console.log("myItems: " + myItems); 86 87 $scope.numOfResults = myItems.length; 88 89 if(myItems.length < 1){ 90 $scope.resultFound = false; 91 } 92 else{ 93 $scope.resultFound = true; 94 } 95 96 if(myItems.length > itemsToDisplay){ 97 //$scope.myItems = myItems.splice(itemsToDisplay, myItems.length - itemsToDisplay); 98 $scope.myItems = myItems.splice(0, itemsToDisplay); 99 } 100 else{ 101 $scope.myItems = myItems; 102 } 103 104 $scope.moreThan1Result = $scope.numOfResults > 1 ? true : false; 105 106 /* to shorten data length 107 for(var i = 0; i < $scope.myItems.length; i++){ 108 $scope.myItems[i].Title = $scope.myItems[i].Title.length > 28 ? $scope.myItems[i].Title.substring(0,28) : $scope.myItems[i].Title; 109 } 110 */ 111 112 }); 113 }); 114 /** End FOR Map Search **/ 115 116 117 /** FOR EService Search **/ 118 eServiceWorker.addEventListener('message', function(event){ 119 $scope.$apply(function () { 120 myEServItems = event.data; 121 122 $scope.numOfResultsEServ = myEServItems.length; 123 124 if(myEServItems.length < 1){ 125 $scope.resultFoundEServ = false; 126 } 127 else{ 128 $scope.resultFoundEServ = true; 129 } 130 131 if(myEServItems.length > itemsToDisplay){ 132 //$scope.myEServItems = myEServItems.splice(itemsToDisplay, myEServItems.length - itemsToDisplay); 133 $scope.myEServItems = myEServItems.splice(0, itemsToDisplay); 134 } 135 else{ 136 $scope.myEServItems = myEServItems; 137 } 138 139 $scope.moreThan1ResultEServ = $scope.numOfResultsEServ > 1 ? true : false; 140 141 /* 142 for(var i = 0; i < $scope.myEServItems.length; i++){ 143 $scope.myEServItems[i].Title = $scope.myEServItems[i].Title.length > 28 ? $scope.myEServItems[i].Title.substring(0,23)+"..." : $scope.myEServItems[i].Title; 144 } 145 */ 146 147 }); 148 });
149 150 /** END FOR EService Search **/ 151 } 152 else { 153 154 /********** THIS ELSE IS WHEN A BROWSER DOES NOT SUPPORT WEB WORKER ***********/ 155 156 /** FOR Map Search **/ 157 //build REST 158 var restUrl = buildRESTUrl($scope.webUrl, $scope.txtSearch, listMap); 159 160 var items = GetListItems(restUrl); 161 162 if(items != "undefined"){ 163 if(items != null){ 164 if(items.length > 0){ 165 for(var i = 0 ; i < items.length; i++){ 166 if(!myItemsTitle.includes(items[i].Title)){ 167 myItemsTitle.push(items[i].Title); 168 myItems.push(items[i]); 169 } 170 } 171 } 172 } 173 } 174 175 if(myItemsTitle == null || myItemsTitle.length == 0){ 176 if(myItems == null || myItems.length == 0){ 177 var seachValue = $scope.txtSearch.split(" "); 178 if(seachValue != "undefined"){ 179 if(seachValue != null){ 180 if(seachValue.length > 0){ 181 for(var x=0;x<seachValue.length; x++){ 182 //build REST 183 var restUrl = buildRESTUrl($scope.webUrl, seachValue[x], listMap); 184 185 var items = GetListItems(restUrl); 186 187 if(items != "undefined"){ 188 if(items != null){ 189 if(items.length > 0){ 190 for(var i = 0 ; i < items.length; i++){ 191 if(!myItemsTitle.includes(items[i].Title)){ 192 myItemsTitle.push(items[i].Title); 193 myItems.push(items[i]); 194 } 195 } 196 } 197 } 198 } 199 } 200 } 201 } 202 } 203 } 204 } 205 206 207 $scope.numOfResults = myItems.length; 208 209 if(myItems.length < 1){ 210 $scope.resultFound = false; 211 } 212 else{ 213 $scope.resultFound = true; 214 } 215 216 if(myItems.length > itemsToDisplay){ 217 //$scope.myItems = myItems.splice(itemsToDisplay, myItems.length - itemsToDisplay); 218 $scope.myItems = myItems.splice(0, itemsToDisplay); 219 } 220 else{ 221 $scope.myItems = myItems; 222 } 223 224 $scope.moreThan1Result = $scope.numOfResults > 1 ? true : false; 225 226 /** End FOR Map Search **/ 227 228 /** FOR EService Search **/ 229 230 var eServUrl = buildEServicesRESTUrl($scope.language, $scope.webUrl, $scope.txtSearch, listEService); 231 232 var eServItems = GetListItems(eServUrl); 233 if(eServItems != "undefined"){ 234 if(eServItems != null){ 235 if(eServItems.length > 0){ 236 for(var i = 0 ; i < eServItems.length; i++){ 237 if(!myEServItemsTitle.includes(eServItems[i].Title)){ 238 myEServItemsTitle.push(eServItems[i].Title); 239 myEServItems.push(eServItems[i]); 240 } 241 } 242 } 243 } 244 } 245 246 247 if(myEServItemsTitle == null || myEServItemsTitle.length == 0){ 248 if(myEServItems == null || myEServItems.length == 0){ 249 var seachValue = $scope.txtSearch.split(" "); 250 if(seachValue != "undefined"){ 251 if(seachValue != null){ 252 if(seachValue.length > 0){ 253 for(var x=0;x<seachValue.length; x++){ 254 //build REST 255 var restUrl = buildEServicesRESTUrl($scope.language, $scope.webUrl, seachValue[x], listEService); 256 257 var items = GetListItems(restUrl); 258 259 if(items != "undefined"){ 260 if(items != null){ 261 if(items.length > 0){ 262 for(var i = 0 ; i < items.length; i++){ 263 if(!myEServItemsTitle.includes(items[i].Title)){ 264 myEServItemsTitle.push(items[i].Title); 265 myEServItems.push(items[i]); 266 } 267 } 268 } 269 } 270 } 271 } 272 } 273 } 274 } 275 } 276 } 277 278 279 $scope.numOfResultsEServ = myEServItems.length; 280 281 if(myEServItems.length < 1){ 282 $scope.resultFoundEServ = false; 283 } 284 else{ 285 $scope.resultFoundEServ = true; 286 } 287 288 289 if(myEServItems.length > itemsToDisplay){ 290 //$scope.myEServItems = myEServItems.splice(itemsToDisplay, myEServItems.length - itemsToDisplay); 291 $scope.myEServItems = myEServItems.splice(0, itemsToDisplay); 292 } 293 else{ 294 $scope.myEServItems = myEServItems; 295 } 296 297 $scope.moreThan1ResultEServ = $scope.numOfResultsEServ > 1 ? true : false; 298 299 /** END FOR EService Search **/ 300 301 /** For SP Search Engine **/ 302 window.location.hash = "k="+$scope.txtSearch; 303 /** END For SP Search Engine **/ 304 305 } 306 } 307 else{ 308 $scope.InitializeForDisplay(); 309 } 310 } 311 else{ 312 $scope.InitializeForDisplay(); 313 } 314 } 315 else{ 316 $scope.InitializeForDisplay(); 317 } 318 319 320 $scope.myEServItems = $scope.myEServItems; 321 /** For SP Search Engine **/ 322 window.location.hash = "k="+$scope.txtSearch; 323 /** END For SP Search Engine **/ 324 325 } 326 catch(e){ 327 console.error("$scope.Search_Click() error: " + e.toString()); 328 } 329 330 }//end $scope.Search_Click() 331 332 333 $scope.InitializeForDisplay = function(){ 334 try{ 335 $scope.myItems = []; 336 $scope.myEServItems = []; 337 $scope.moreThan1Result = false; 338 $scope.resultFound = false; 339 $scope.moreThan1ResultEServ = false; 340 $scope.resultFoundEServ = false; 341 window.location.hash = ""; 342 } 343 catch(e){ 344 console.error("$scope.Initialize error: " + e.toString()); 345 } 346 } 347 348 349 $scope.SetTitle = function(item){ 350 try{ 351 if ($scope.language == "en") { 352 return item.Title; 353 } 354 355 if($scope.language == "fr"){ 356 return item.TitleFR; 357 } 358 } 359 catch(e){ 360 console.error("$scope.SetTitle error: " + e.toString()); 361 } 362 }//end $scope.SetTitle() 363} 364 365 366appVar.controller("searchController", searchController); 367 368
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.