1 2 3xApp.controller('UlasimController', function UlasimController($scope, $routeParams, $location, $q, $window, $rootScope, $route) { 4 5 var UMenuID = parseInt($routeParams.UstMenuId); 6 7 8 angular.element(document).ready(function () { 9 $rootScope.AcilirPencere = 2; 10 $scope.SayfaUst(); 11 $scope.items = $scope.menuData; 12 13 var promiseIletisim = asyncXXXXIletisim(); 14 15 promiseIletisim.then(function (data) { 16 if (data.length === 1) { 17 $scope.Iletisim = data[0]; 18 //alert(JSON.stringify(data[0])); 19 } 20 else 21 $scope.Iletisim = null; 22 }, function (error) { 23 $scope.Iletisim = null; 24 $route.reload(); 25 }); 26 27 28 var promiseTreeMenu = asyncXXXXTreeMenu(); 29 30 31 promiseTreeMenu.then(function (data) { 32 33 $scope.items = data; 34 var items = unflatten(data); 35 36 37 38 }, function (error) { 39 menuTreeData = null; 40 $route.reload(); 41 }); 42 43 var promiseUstMenuPath = asyncXXXXUstMenuPath(); 44 45 promiseUstMenuPath.then(function (data) { 46 if (data.length === 1) { 47 UstMenuPath = data[0]; 48 $scope.path = UstMenuPath.Yol2; 49 var promiseUstMenu = asyncXXXXUstMenu(); 50 51 52 promiseUstMenu.then(function (data) { 53 54 $scope.menuUstData = data; 55 56 57 }, function (error) { 58 menuUstData = null; 59 $route.reload(); 60 }); 61 62 } 63 else 64 UstMenuPath = null; 65 }, function (error) { 66 UstMenuPath = null; 67 $route.reload(); 68 }); 69 70 71 }); 72 73 74 $scope.dsBirimUstmenu = new DevExpress.data.DataSource({ 75 store: { 76 type: "odata", 77 url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu", 78 key: "ID", 79 keyType: "Int32" 80 }, 81 sort: "ID", 82 83 map: function (itemData) { 84 return { 85 ID: itemData.ID, 86 MenuAd: itemData.MenuAd, 87 IcerikAdres: itemData.IcerikAdres, 88 ParentID: itemData.UstMenuID, 89 IcerikID: itemData.IcerikID, 90 IcerikGuID: itemData.IcerikGuID, 91 Duzey: itemData.Seviye, 92 IcerikTipNo: itemData.IcerikTipNo, 93 Hedef: itemData.Hedef 94 }; 95 } 96 }); 97 98 99 var markerUrl = "https://js.devexpress.com/Demos/RealtorApp/images/map-marker.png", 100 markersData = [{ 101 location: [37.039592, 35.384432], 102 tooltip: { 103 text: "Adana Alparslan TürkeÅ Bilim ve Teknoloji Ãniversitesi" 104 } 105 } , 106 { 107 location: [36.996792, 35.264442], 108 tooltip: { 109 text: "BüyükÅehir Belediyesi Adana Merkez Otogarı" 110 } 111 } 112 113 ]; 114 115 $scope.markerUrlValue = markerUrl; 116 $scope.markers = markersData; 117 118 $scope.routes = [ 119 { 120 weight: 6, 121 color: "blue", 122 opacity: 0.5, 123 mode: "", 124 locations: [ 125 [37.039592, 35.384432], 126 [36.996792, 35.264442] 127 ] 128 } 129 ]; 130 131 $scope.mapOptions = { 132 provider: "google", 133 zoom: 16, 134 height: "100%", 135 width: "100%", 136 controls:true, 137 //zoomControl: "true", 138 //mapTypeControl: "true", 139 //scaleControl: "true", 140 //streetViewControl: "false", 141 //rotateControl: "true", 142 //fullscreenControl: "true", 143 144 bindingOptions: { 145 markerIconSrc: "markerUrlValue", 146 markers: "markers", 147 routes: "routes" 148 }, 149 key: { 150 google: "AIzaSyAR6HJMUI76YzOR10AIlX2WjkZi5fruHHc" 151 } 152 }; 153 154 $scope.chooseModeOptions = { 155 dataSource: ["Adana Merkez Otogar","Adana Havalimanı","Adana YüreÄir Otagarı"], 156 value: "Adana Merkez Otogar", 157 onValueChanged: function (data) { 158 159 if (data.value === "Adana Merkez Otogar") { 160 161 $scope.routes = [ { 162 weight: 6, 163 color: "blue", 164 opacity: 0.5, 165 mode: "", 166 locations: [[37.039592, 35.384432], [36.996792, 35.264442]] 167 } ]; 168 $scope.markers = [{ 169 location: [37.039592, 35.384432], 170 tooltip: { 171 text: "Adana Alparslan TürkeÅ Bilim ve Teknoloji Ãniversitesi" 172 } 173 }, 174 { 175 location: [36.996792, 35.264442], 176 tooltip: { 177 text: "BüyükÅehir Belediyesi Adana Merkez Otogarı" 178 } 179 } 180 181 ]; 182 } 183 else if (data.value === "Adana Havalimanı") { 184 185 186 $scope.routes = [ { 187 weight: 6, 188 color: "blue", 189 opacity: 0.5, 190 mode: "", 191 locations: [[37.039592, 35.384432], [36.983578, 35.296116]] 192 }]; 193 194 $scope.markers = [{ 195 location: [37.039592, 35.384432], 196 tooltip: { 197 text: "Adana Alparslan TürkeÅ Bilim ve Teknoloji Ãniversitesi" 198 } 199 }, 200 { 201 location: [36.983578, 35.296116], 202 tooltip: { 203 text: "Adana ÅakirpaÅa Havalimanı" 204 } 205 }, 206 207 ]; 208 } 209 else if (data.value === "Adana YüreÄir Otagarı") { 210 $scope.routes = [ { 211 weight: 6, 212 color: "blue", 213 opacity: 0.5, 214 mode: "", 215 locations: [[37.039592, 35.384432], [36.991505, 35.343758]] 216 }]; 217 $scope.markers = [{ 218 location: [37.039592, 35.384432], 219 tooltip: { 220 text: "Adana Alparslan TürkeÅ Bilim ve Teknoloji Ãniversitesi" 221 } 222 }, 223 { 224 location: [36.991505, 35.343758], 225 tooltip: { 226 text: "Adana YüreÄir Otogarı" 227 } 228 } 229 ]; 230 } 231 } 232 }; 233 234 235 $scope.items = []; 236 $scope.treeViewItemDataDuzey = -1; 237 238 $scope.treeViewOptions = { 239 240 width: 300, 241 height: "auto", 242 displayExpr: "MenuAd", 243 keyExpr: "ID", 244 parentIdExpr: "ParentID", 245 dataStructure: "tree", 246 noDataText: "", 247 focusStateEnabled: true, // Klavyedeki Tab ve Ok tuÅlarıyla odaklanmayı saÄlar 248 hoverStateEnabled: true, // Fareyle üzerine gelindiÄinde görsel geri bildirim verir 249 adaptivityEnabled: true, 250 bindingOptions: { 251 dataSource: "items" 252 }, 253 onContentReady: function (e) { 254 // 1. Alt menüsü olmayan (yaprak) öÄelerden aria-expanded özniteliÄini kaldır 255 $(e.element).find('.dx-treeview-node-is-leaf').removeAttr('aria-expanded'); 256 257 // 2. Rolü olmayan iç div'lerden aria-selected özniteliÄini kaldır 258 $(e.element).find('.dx-treeview-item').removeAttr('aria-selected'); 259 260 // 3. Ana kapsayıcıdaki aranan hayali ID sorununu çözmek için (gerekirse) aktifi temizleyin 261 $(e.element).removeAttr('aria-activedescendant'); 262 }, 263 onItemClick: function (e) { 264 265 266 var item = e.itemData; 267 $scope.treeViewItemDataDuzey = item.Duzey; 268 269 if (item.IcerikTipNo === 1 && item.IcerikID !== 0) 270 $window.open("#!/" + item.IcerikAdres + "/" + item.IcerikID + "/" + item.ParentID + "/" + item.IcerikGuID, item.Hedef); 271 else if (item.IcerikTipNo === 1 && item.IcerikID === 0 && item.IcerikAdres !== "") 272 $window.open("#!/" + item.IcerikAdres + "/" + item.ParentID, item.Hedef); 273 274 else if (item.IcerikTipNo === 2) 275 $window.open(item.IcerikAdres, item.Hedef); 276 277 } 278 }; 279 280 $scope.UstMenuClick = function (IcerikID, IcerikTipNo, IcerikAdres, IcerikGuID, UstMenuID) { 281 282 if (IcerikTipNo === 1 && IcerikID !== 0) 283 $window.open("#!/" + IcerikAdres + "/" + IcerikID + "/" + UstMenuID + "/" + IcerikGuID, item.Hedef); 284 else if (IcerikTipNo === 1 && IcerikID === 0 && IcerikAdres !== "") 285 $window.open("#!/" + IcerikAdres + "/" + UstMenuID, item.Hedef); 286 287 else if (IcerikTipNo === 2) 288 $window.open(IcerikAdres, item.Hedef); 289 290 } 291 292 293 //Find index to insert new item----> 294 function findItemIndex(arr, elem) { 295 var len = arr.length; 296 for (var i = 0; i < len; i++) { 297 if (arr[i].SiraNo > elem.SiraNo) 298 return i; 299 } 300 return len; 301 } 302 303 function unflatten(arr) { 304 var tree = [], 305 mappedArr = {}, 306 arrElem, 307 mappedElem; 308 309 // First map the nodes of the array to an object -> create a hash table. 310 for (var i = 0, len = arr.length; i < len; i++) { 311 arrElem = arr[i]; 312 mappedArr[arrElem.ID] = arrElem; 313 mappedArr[arrElem.ID]['items'] = []; 314 } 315 316 317 for (var ID in mappedArr) { 318 if (mappedArr.hasOwnProperty(ID)) { 319 mappedElem = mappedArr[ID];
320 // If the element is not at the root level, add it to its parent array of children. 321 322 if (mappedElem.ParentID) { 323 324 //mappedArr[mappedElem['ParentID']]['items'].push(mappedElem); 325 pushIndex = findItemIndex(mappedArr[mappedElem['ParentID']]['items'], mappedElem); 326 mappedArr[mappedElem['ParentID']]['items'].splice(pushIndex, 0, mappedElem); 327 328 } 329 // If the element is at the root level, add it to first level elements array. 330 else { 331 332 //tree.push(mappedElem); 333 pushIndex = findItemIndex(tree, mappedElem); 334 tree.splice(pushIndex, 0, mappedElem); 335 } 336 337 } 338 } 339 340 return tree; 341 } 342 343 344 $scope.dsTreeMenu = new DevExpress.data.DataSource({ 345 store: { 346 type: "odata", 347 url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu", 348 key: "ID", 349 keyType: "Int32" 350 }, 351 sort: "SiraNo", 352 filter: ([["SiteID", "=", $scope.SiteID], "and", ["Durum", "=", 1], "and", ["DilKodu", "=", $scope.DilKodu], "and", ["UstMenuID", "=", UMenuID]]), 353 paginate: false, 354 map: function (itemData) { 355 return { 356 ID: itemData.ID, 357 MenuAd: itemData.MenuAd, 358 IcerikAdres: itemData.IcerikAdres, 359 ParentID: itemData.UstMenuID, 360 IcerikID: itemData.IcerikID, 361 IcerikGuID: itemData.IcerikGuID, 362 Duzey: itemData.Seviye, 363 IcerikTipNo: itemData.IcerikTipNo, 364 Hedef: itemData.Hedef 365 }; 366 } 367 }); 368 369 370 var asyncXXXXTreeMenu = function () { 371 372 var d = $q.defer(); 373 374 375 var result = $scope.dsTreeMenu.load(); 376 377 result.done(function (data) { 378 379 d.resolve(data); 380 }) 381 .fail(function (error) { 382 d.reject(error); 383 $route.reload(); 384 }); 385 386 return d.promise; 387 }; 388 389 var asyncXXXXIletisim = function () { 390 391 var d = $q.defer(); 392 393 394 $scope.dsIletisim.filter([["SiteID", "=", $scope.SiteID], "and", ["BirimID", "=", $scope.BirimID]]); 395 396 var resultIletisim = $scope.dsIletisim.load(); 397 398 resultIletisim.done(function (data) { 399 d.resolve(data); 400 }) 401 .fail(function (error) { 402 d.reject(error); 403 $route.reload(); 404 }); 405 406 return d.promise; 407 }; 408 409 $scope.dsIletisim= new DevExpress.data.DataSource({ 410 store: { 411 type: "odata", 412 url: "https://odata.atu.edu.tr/odata/DataService.svc/Iletisim", 413 key: "ID", 414 keyType: "Int32" 415 }, 416 417 map: function (itemData) { 418 return { 419 ID: itemData.ID, 420 Telefon: itemData.Telefon, 421 Faks: itemData.Faks, 422 Eposta: itemData.Eposta, 423 Adres: itemData.Adres, 424 Enlem: itemData.Enlem, 425 Boylam: itemData.Boylam, 426 GuID: itemData.GuID, 427 KEPadresi: itemData.KEPadresi 428 }; 429 } 430 431 }); 432 433 434 435 var asyncXXXXUstMenuPath = function () { 436 437 var d = $q.defer(); 438 439 var resultUstMenuPath = $scope.dsUstMenuPath.load(); 440 441 resultUstMenuPath.done(function (data) { 442 d.resolve(data); 443 }) 444 .fail(function (error) { 445 d.reject(error); 446 $route.reload(); 447 }); 448 449 return d.promise; 450 }; 451 $scope.dsUstMenuPath = new DevExpress.data.DataSource({ 452 store: { 453 type: "odata", 454 url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu", 455 key: "ID", 456 keyType: "Int32" 457 }, 458 map: function (itemData) { 459 return { 460 ID: itemData.ID, 461 Yol2: itemData.Yol2 462 }; 463 } 464 });
465 466 $scope.dsUstMenuPath.filter("ID", "=", UMenuID); 467 468 469 var asyncXXXXUstMenu = function () { 470 471 var str = $scope.path; 472 473 var array = str.split(','); 474 475 var filter = []; 476 var filterID = []; 477 478 for (var fID in array) { 479 480 if (array.hasOwnProperty(fID)) { 481 if (array[fID] !== "") { 482 filterID.push(["ID", "=", parseInt(array[fID])]); 483 484 if ((array[fID] !== "") && (array[fID] !== array[array.length - 1])) { 485 486 filterID.push("or"); 487 } 488 } 489 490 } 491 } 492 493 filter = [["SiteID", "=", $scope.SiteID], "and", ["Durum", "=", 1], "and", ["DilKodu", "=", $scope.DilKodu]]; 494 if (array.length > 0) filter.push("and", filterID); 495 // alert(filter); 496 $scope.dsUstMenu.filter(filter); 497 $scope.dsUstMenu.sort("Seviye"); 498 499 var d = $q.defer(); 500 501 502 var result = $scope.dsUstMenu.load(); 503 504 result.done(function (data) { 505 506 d.resolve(data); 507 }) 508 .fail(function (error) { 509 d.reject(error); 510 $route.reload(); 511 }); 512 513 return d.promise; 514 }; 515 516 $scope.dsUstMenu = new DevExpress.data.DataSource( 517 { 518 store: { 519 type: "odata", 520 url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu", 521 key: "ID", 522 keyType: "Int32" 523 }, 524 sort: "Seviye", 525 paginate: false, 526 map: function (itemData) { 527 return { 528 ID: itemData.ID, 529 MenuAd: itemData.MenuAd, 530 Adres: itemData.AdresSatiri, 531 Duzey: itemData.Seviye, 532 IcerikTipNo: itemData.IcerikTipNo, 533 IcerikID: itemData.IcerikID, 534 UstMenuID: itemData.UstMenuID, 535 IcerikAdres: itemData.IcerikAdres, 536 IcerikGuID: itemData.IcerikGuID, 537 Hedef: itemData.Hedef 538 539 }; 540 } 541 }); 542 543 544}); 545 546 547
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.