1 2xApp.controller('birimlerController', function birimlerController($scope, $rootScope, $routeParams, $location, $q, $window, $route) { 3 $scope.Guid = ""; 4 5 var IcID = $routeParams.IcerikId; 6 var IcGuID = $routeParams.IcGuID; 7 var BirimID = parseInt($routeParams.birimId); 8 var GrupID = parseInt($routeParams.grupId); 9 var UMenuID = parseInt($routeParams.UstMenuId); 10 11 var menuTreeData = []; 12 var menuUstData = []; 13 var UstMenuPath = null; 14 $scope.path = ""; 15 // $scope.Bolumler = []; 16 17 angular.element(document).ready(function () { 18 $rootScope.SayfaUst(); 19 $rootScope.AcilirPencere = 2; 20 var promiseBirimIcerik = asyncXXXXBirimler(); 21 22 promiseBirimIcerik.then(function (data) { 23 if (data.length === 1) { 24 $scope.BirimIcerik = data[0]; 25 //alert(JSON.stringify(data[0])); 26 } 27 else 28 $scope.BirimIcerik = null; 29 }, function (error) { 30 $scope.BirimIcerik = null; 31 $route.reload(); 32 }); 33 34 var promiseBolumler = asyncXXXXBolumler(); 35 36 promiseBolumler.then(function (data) { 37 38 $scope.Bolumler = data; 39 //alert(JSON.stringify(data[0])); 40 41 }, function (error) { 42 $scope.Bolumler = null; 43 $route.reload(); 44 }); 45 46 47 48 var promiseTreeMenu = asyncXXXXTreeMenu(); 49 50 51 promiseTreeMenu.then(function (data) { 52 // alert(JSON.stringify(data)); 53 $scope.items = data; 54 var items = unflatten(data); 55 56 57 }, function (error) { 58 menuTreeData = null; 59 $route.reload(); 60 }); 61 62 var promiseUstMenuPath = asyncXXXXUstMenuPath(); 63 64 promiseUstMenuPath.then(function (data) { 65 if (data.length === 1) { 66 UstMenuPath = data[0]; 67 $scope.path = UstMenuPath.Yol2; 68 var promiseUstMenu = asyncXXXXUstMenu(); 69 70 71 promiseUstMenu.then(function (data) { 72 73 $scope.menuUstData = data; 74 75 76 }, function (error) { 77 menuUstData = null; 78 $route.reload(); 79 }); 80 81 } 82 else 83 UstMenuPath = null; 84 }, function (error) { 85 UstMenuPath = null; 86 $route.reload(); 87 }); 88 89 90 91 }); 92 93 $scope.items = []; 94 $scope.treeViewItemDataDuzey = -1; 95 96 $scope.treeViewOptions = { 97 98 width: 300, 99 height: "auto", 100 displayExpr: "MenuAd", 101 keyExpr: "ID", 102 parentIdExpr: "ParentID", 103 dataStructure: "tree", 104 focusStateEnabled: true, // Klavyedeki Tab ve Ok tuÅlarıyla odaklanmayı saÄlar 105 hoverStateEnabled: true, // Fareyle üzerine gelindiÄinde görsel geri bildirim verir 106 adaptivityEnabled: true, 107 bindingOptions: { 108 dataSource: "items" 109 }, 110 onContentReady: function (e) { 111 // 1. Alt menüsü olmayan (yaprak) öÄelerden aria-expanded özniteliÄini kaldır 112 $(e.element).find('.dx-treeview-node-is-leaf').removeAttr('aria-expanded'); 113 114 // 2. Rolü olmayan iç div'lerden aria-selected özniteliÄini kaldır 115 $(e.element).find('.dx-treeview-item').removeAttr('aria-selected'); 116 117 // 3. Ana kapsayıcıdaki aranan hayali ID sorununu çözmek için (gerekirse) aktifi temizleyin 118 $(e.element).removeAttr('aria-activedescendant'); 119 }, 120 onItemClick: function (e) { 121 122 var item = e.itemData; 123 $scope.treeViewItemDataDuzey = item.Duzey; 124 125 $window.location.href = "#!/birimler/" + item.BirimID + "/" + GrupID + "/" + UMenuID; 126 127 } 128 }; 129 130 131 $scope.UstMenuClick = function (IcerikID, IcerikTipNo, IcerikAdres, IcerikGuID, UstMenuID) { 132 if (IcerikTipNo === 1 && IcerikID !== 0) 133 window.open("#!/" + IcerikAdres + "/" + IcerikID + "/" + UstMenuID + "/" + IcerikGuID,"_self" ); 134 else if (IcerikTipNo === 1 && IcerikID === 0 && IcerikAdres !== "") 135 window.open("#!/" + IcerikAdres + "/" + UstMenuID, "_self"); 136 137 else if (IcerikTipNo === 2) 138 window.open(IcerikAdres, item.Hedef); 139 //$window.location.href = "#!/birimler/" + ID + "/" + GrupID + "/" + UMenuID; 140 141 } 142 143 //Find index to insert new item----> 144 function findItemIndex(arr, elem) { 145 var len = arr.length; 146 for (var i = 0; i < len; i++) { 147 if (arr[i].SiraNo > elem.SiraNo) 148 return i; 149 } 150 return len; 151 } 152 153 function unflatten(arr) { 154 var tree = [], 155 mappedArr = {}, 156 arrElem, 157 mappedElem; 158 159 // First map the nodes of the array to an object -> create a hash table. 160 for (var i = 0, len = arr.length; i < len; i++) { 161 arrElem = arr[i]; 162 mappedArr[arrElem.ID] = arrElem; 163 mappedArr[arrElem.ID]['items'] = []; 164 } 165 166 167 for (var ID in mappedArr) { 168 if (mappedArr.hasOwnProperty(ID)) { 169 mappedElem = mappedArr[ID];
170 // If the element is not at the root level, add it to its parent array of children. 171 172 if (mappedElem.ParentID) { 173 174 //mappedArr[mappedElem['ParentID']]['items'].push(mappedElem); 175 pushIndex = findItemIndex(mappedArr[mappedElem['ParentID']]['items'], mappedElem); 176 mappedArr[mappedElem['ParentID']]['items'].splice(pushIndex, 0, mappedElem); 177 178 } 179 // If the element is at the root level, add it to first level elements array. 180 else { 181 182 //tree.push(mappedElem); 183 pushIndex = findItemIndex(tree, mappedElem); 184 tree.splice(pushIndex, 0, mappedElem); 185 } 186 187 } 188 } 189 190 return tree; 191 } 192 193 $scope.dsTreeMenu = new DevExpress.data.DataSource({ 194 store: { 195 type: "odata", 196 url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu", 197 key: "ID", 198 keyType: "Int32" 199 }, 200 sort: "SiraNo", 201 paginate: false, 202 map: function (itemData) { 203 return { 204 ID: itemData.ID, 205 MenuAd: itemData.MenuAd, 206 ParentID: UMenuID, 207 Duzey: 3, 208 IcerikAdres: itemData.IcerikAdres, 209 IcerikID: itemData.IcerikID, 210 IcerikGuID: itemData.IcerikGuID, 211 IcerikTipNo: itemData.IcerikTipNo, 212 BirimID: itemData.BirimID, 213 Hedef: itemData.Hedef 214 }; 215 } 216 }); 217 218 219 var asyncXXXXTreeMenu = function () { 220 221 var d = $q.defer(); 222 223 $scope.dsTreeMenu.filter([["SiteID", "=", $scope.SiteID], "and", ["Durum", "=", 1], "and", ["DilKodu", "=", $scope.DilKodu], "and", ["UstMenuID", "=", UMenuID]]); 224 var result = $scope.dsTreeMenu.load(); 225 226 result.done(function (data) { 227 228 d.resolve(data); 229 }) 230 .fail(function (error) { 231 d.reject(error); 232 $route.reload(); 233 }); 234 235 return d.promise; 236 }; 237 238 var asyncXXXXBirimler = function () { 239 240 var d = $q.defer(); 241 242 var filter = ["ID", "=", BirimID] ; 243 244 $scope.dsBirimler.filter(filter); 245 246 247 var resultbirim = $scope.dsBirimler.load(); 248 249 resultbirim.done(function (data) { 250 251 d.resolve(data); 252 }) 253 .fail(function (error) { 254 d.reject(error); 255 $route.reload(); 256 }); 257 258 return d.promise; 259 }; 260 261 var asyncXXXXBolumler= function () { 262 263 var d = $q.defer(); 264 265 var filter = [["BirimTanimID", "=", BirimID], "and", ["DilKodu", "=", $scope.DilKodu]]; 266 267 $scope.dsBolumler.filter(filter); 268 269 270 var resultbolum = $scope.dsBolumler.load(); 271 272 resultbolum.done(function (data) { 273 274 d.resolve(data); 275 }) 276 .fail(function (error) { 277 d.reject(error); 278 $route.reload(); 279 }); 280 281 return d.promise; 282 }; 283 var asyncXXXXUstMenuPath = function () { 284 285 var d = $q.defer(); 286 287 var resultUstMenuPath = $scope.dsUstMenuPath.load(); 288 289 resultUstMenuPath.done(function (data) { 290 d.resolve(data); 291 }) 292 .fail(function (error) { 293 d.reject(error); 294 $route.reload(); 295 }); 296 297 return d.promise; 298 }; 299 300 $scope.dsUstMenuPath = new DevExpress.data.DataSource({ 301 store: { 302 type: "odata", 303 url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu", 304 key: "ID", 305 keyType: "Int32" 306 }, 307 map: function (itemData) { 308 return { 309 ID: itemData.ID, 310 Yol2: itemData.Yol2 311 }; 312 } 313 }); 314 315 $scope.dsUstMenuPath.filter("ID", "=", UMenuID); 316 317 318 var asyncXXXXUstMenu = function () { 319 320 var str = $scope.path; 321 322 var array = str.split(','); 323 324 var filter = []; 325 var filterID = []; 326 327 for (var fID in array) { 328 329 if (array.hasOwnProperty(fID)) { 330 if (array[fID] !== "") { 331 filterID.push(["ID", "=", parseInt(array[fID])]); 332 333 if ((array[fID] !== "") && (array[fID] !== array[array.length - 1])) { 334 335 filterID.push("or"); 336 } 337 } 338 339 } 340 } 341 342 filter = [["SiteID", "=", $scope.SiteID], "and", ["Durum", "=", 1], "and", ["DilKodu", "=", $scope.DilKodu]]; 343 if (array.length>0) filter.push("and", filterID); 344 // alert(filter); 345 $scope.dsUstMenu.filter(filter); 346 $scope.dsUstMenu.sort("Seviye"); 347 348 var d = $q.defer(); 349 350 351 var result = $scope.dsUstMenu.load(); 352 353 result.done(function (data) { 354 355 d.resolve(data); 356 }) 357 .fail(function (error) { 358 d.reject(error); 359 $route.reload(); 360 }); 361 362 return d.promise; 363 }; 364 365 $scope.dsUstMenu = new DevExpress.data.DataSource( 366 { 367 store: { 368 type: "odata", 369 url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu", 370 key: "ID", 371 keyType: "Int32" 372 }, 373 sort: "Seviye", 374 paginate: false, 375 map: function (itemData) { 376 return { 377 ID: itemData.ID, 378 MenuAd: itemData.MenuAd, 379 Adres: itemData.AdresSatiri, 380 Duzey: itemData.Seviye, 381 IcerikTipNo: itemData.IcerikTipNo, 382 IcerikID: itemData.IcerikID, 383 UstMenuID: itemData.UstMenuID, 384 IcerikAdres: itemData.IcerikAdres, 385 IcerikGuID: itemData.IcerikGuID 386 }; 387 } 388 }); 389 390 391 392 $scope.dsBirimler = new DevExpress.data.DataSource({ 393 store: { 394 type: "odata", 395 url: "https://odata.atu.edu.tr/odata/DataService.svc/BirimTanim", 396 key: "ID", 397 keyType: "Int32" 398 }, 399 sort: "ID", 400 map: function (itemData) { 401 return { 402 Adi: itemData.Adi, 403 Resim: itemData.Resim, 404 Aciklama: itemData.Aciklama, 405 icerikHTML: itemData.icerikHTML, 406 GrupID: itemData.GrupID, 407 ID: itemData.ID, 408 Misyon: itemData.Misyon, 409 Vizyon: itemData.Vizyon, 410 Adres: itemData.Adres 411 }; 412 } 413 414 });
415 416 417 $scope.dsBolumler= new DevExpress.data.DataSource({ 418 store: { 419 type: "odata", 420 url: "https://odata.atu.edu.tr/odata/DataService.svc/BolumTanim", 421 key: "ID", 422 keyType: "Int32" 423 }, 424 sort: "ID", 425 map: function (itemData) { 426 return { 427 ID: itemData.ID, 428 Adi: itemData.Adi, 429 BirimTanimID: itemData.BirimTanimID, 430 URL: itemData.URL, 431 Resim: itemData.Resim 432 }; 433 } 434 435 }); 436}); 437 438 439
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.