PageSourceSearch

https://atu.edu.tr/scripts/akademik.js?ver=20200117

js atu.edu.tr collected 2026-10-02 05:54:21 UTC 11,454 bytes, 368 lines download raw bytes

1
2
3xApp.controller('akademikpersonelController', function akademikpersonelController($scope, $routeParams, $location, $q, $window, $http, $rootScope, $route) {
4   var UMenuID = parseInt($routeParams.UstMenuId);
5 var menuTreeData = [];
6    var menuUstData = [];
7    var UstMenuPath = null;
8    $scope.path = "";
9    $scope.items = [];
10    var items = [];
11    //$scope.Akademik = [];
12 if (sessionStorage.getItem('SiteData') != null) {
13            $scope.SiteIDA = JSON.parse(sessionStorage.getItem('SiteData'));
14         
15        }
16    angular.element(document).ready(function () {
17       
18 if (sessionStorage.getItem('BirimData') != null) {
19            $scope.BirimIDA = JSON.parse(sessionStorage.getItem('BirimData'));
20         
21        }
22  $scope.BirimID=  $scope.BirimIDA;
23 
24
25   $scope.SayfaUst();
26 
27
28        AkademikPersonel();
29        $rootScope.AcilirPencere = 2;
30        var promiseTreeMenu = asyncXXXXTreeMenu();
31        
32        
33        promiseTreeMenu.then(function (data) {
34     
35            $scope.items = data;
36            items  = unflatten(data);
37          
38
39        }, function (error) {
40            menuTreeData = null;
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        });
60        
61                }
62                else
63                    UstMenuPath = null;
64            }, function (error) {
65                UstMenuPath = null;
66            });
67
68       
69
70
71    }); 
72    
73     
74    $scope.items = [];
75    $scope.treeViewItemDataDuzey = -1;
76
77    $scope.treeViewOptions = {
78
79        //items: items,
80        width: 300,
81        height: "auto",
82        displayExpr: "MenuAd",
83        keyExpr: "ID",
84        parentIdExpr: "ParentID",
85        //itemsExpr: "men=TreeData",
86        dataStructure: "tree",
87        //showRowLines: true,
88        //showBorders: true,
89        //columnAutoWidth: true,
90        //showColumnHeaders: false,
91        //hoverStateEnabled: true,
92        focusStateEnabled: true,      // Klavyedeki Tab ve Ok tuşlarıyla odaklanmayı sağlar
93        hoverStateEnabled: true,      // Fareyle üzerine gelindiğinde görsel geri bildirim verir
94        adaptivityEnabled: true,
95        noDataText: "",
96        bindingOptions: {
97            dataSource: "items"
98        },
99        onContentReady: function (e) {
100            // 1. Alt menüsü olmayan (yaprak) öğelerden aria-expanded özniteliğini kaldır
101            $(e.element).find('.dx-treeview-node-is-leaf').removeAttr('aria-expanded');
102
103            // 2. Rolü olmayan iç div'lerden aria-selected özniteliğini kaldır
104            $(e.element).find('.dx-treeview-item').removeAttr('aria-selected');
105
106            // 3. Ana kapsayıcıdaki aranan hayali ID sorununu çözmek için (gerekirse) aktifi temizleyin
107            $(e.element).removeAttr('aria-activedescendant');
108        },
109        onItemClick: function (e) {
110
111         
112            var item = e.itemData;
113            $scope.treeViewItemDataDuzey = item.Duzey;
114
115            if (item.IcerikTipNo === 1 && item.IcerikID !== 0)
116                window.open("#!/" + item.IcerikAdres + "/" + item.IcerikID + "/" + item.ParentID + "/" + item.IcerikGuID, item.Hedef);
117            else if (item.IcerikTipNo === 1 && item.IcerikID === 0 && item.IcerikAdres !== "")
118                window.open("#!/" + item.IcerikAdres + "/" + item.ParentID, item.Hedef);
119
120            else if (item.IcerikTipNo === 2)
121                window.open(item.IcerikAdres, item.Hedef);
122        }
123    };
124
125    $scope.UstMenuClick = function (IcerikID, IcerikTipNo, IcerikAdres, IcerikGuID, UstMenuID) {
126
127        if (IcerikTipNo === 1 && IcerikID !== 0)
128            window.open("#!/" + IcerikAdres + "/" + IcerikID + "/" + UstMenuID + "/" + IcerikGuID, item.Hedef);
129        else if (IcerikTipNo === 1 && IcerikID === 0 && IcerikAdres !== "")
130            window.open("#!/" + IcerikAdres + "/" + UstMenuID, item.Hedef);
131
132        else if (IcerikTipNo === 2)
133            window.open(IcerikAdres, item.Hedef);
134
135    }
136
137    //Find index to insert new item---->
138    function findItemIndex(arr, elem) {
139        var len = arr.length;
140        for (var i = 0; i < len; i++) {
141            if (arr[i].SiraNo > elem.SiraNo)
142                return i;
143        }
144        return len;
145    }
146
147    function unflatten(arr) {
148        var tree = [],
149            mappedArr = {},
150            arrElem,
151            mappedElem;
152
153        // First map the nodes of the array to an object -> create a hash table.
154        for (var i = 0, len = arr.length; i < len; i++) {
155            arrElem = arr[i];
156            mappedArr[arrElem.ID] = arrElem;
157            mappedArr[arrElem.ID]['items'] = [];
158        }
159
160
161        for (var ID in mappedArr) {
162            if (mappedArr.hasOwnProperty(ID)) {
163                mappedElem = mappedArr[ID];
164                // If the element is not at the root level, add it to its parent array of children.  
165
166                if (mappedElem.ParentID) {
167
168                    //mappedArr[mappedElem['ParentID']]['items'].push(mappedElem);
169                    pushIndex = findItemIndex(mappedArr[mappedElem['ParentID']]['items'], mappedElem);
170                    mappedArr[mappedElem['ParentID']]['items'].splice(pushIndex, 0, mappedElem);
171
172                }
173                // If the element is at the root level, add it to first level elements array.
174                else {
175
176                    //tree.push(mappedElem);
177                    pushIndex = findItemIndex(tree, mappedElem);
178                    tree.splice(pushIndex, 0, mappedElem);
179                }
180
181            }
182        }
183
184        return tree;
185    }
186
187    $scope.dsTreeMenu = new DevExpress.data.DataSource({
188        store: {
189            type: "odata",
190            url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu",
191            key: "ID",
192            keyType: "Int32"
193        },
194        sort: "SiraNo",
195        filter: ([["SiteID", "=", $scope.SiteIDA], "and", ["Durum", "=", 1], "and", ["DilKodu", "=",   $scope.DilKodu], "and", ["UstMenuID", "=", UMenuID ]]),
196        paginate: false,
197        map: function (itemData) {
198            return {
199                ID: itemData.ID,
200                MenuAd: itemData.MenuAd,
201                IcerikAdres: itemData.IcerikAdres,
202                ParentID: itemData.UstMenuID,
203                IcerikID: itemData.IcerikID,
204                IcerikGuID: itemData.IcerikGuID,
205                Duzey: itemData.Seviye,
206                IcerikTipNo: itemData.IcerikTipNo,
207                Hedef: itemData.Hedef
208            };
209        }
210    });
211
212
213    var asyncXXXXTreeMenu = function () {
214 if (sessionStorage.getItem('SiteData') != null) {
215            $scope.SiteIDA = JSON.parse(sessionStorage.getItem('SiteData'));
216         
217        }
218 
219        var d = $q.defer();
220
221
222        var result = $scope.dsTreeMenu.load();
223	
224        result.done(function (data) {
225
226            d.resolve(data);
227        })
228            .fail(function (error) {
229                d.reject(error);
230 //console.log("sa ID = " + $scope.SiteIDA );
231            });
232
233        return d.promise;
234    }; 
235
236    function AkademikPersonel() {
237
238
239       
240    // console.log("Birim ID = " + $scope.BirimIDA);
241
242        var personelDetayPost = $http({
243            method: 'POST',
244            headers: { 'Content-Type': 'application/json' },
245            url: 'https://bilgisistemi.atu.edu.tr/WS/Genel.asmx/AkademikPersonelListesiByBirim?birimId=' + $scope.BirimIDA + '&dilKodu=' +  $scope.DilKodu ,
246            data: { "birimId": $scope.BirimIDA, "dilKodu": $scope.DilKodu },    
247            dataType: 'json'
248        }).then(function successCallback(response) { 
249            $scope.Akademik = response.data;
250            
251   //  console.log( JSON.stringify($scope.Akademik));
252            
253        }, function errorCallback(response) {
254           $route.reload();
255           //  console.log( JSON.stringify($scope.Akademik));
256        });
257
258    }
259
260    var asyncXXXXUstMenuPath = function () {
261
262        var d = $q.defer();
263
264        var resultUstMenuPath = $scope.dsUstMenuPath.load();
265
266        resultUstMenuPath.done(function (data) {
267            d.resolve(data);
268        })
269            .fail(function (error) {
270                d.reject(error);
271            });
272
273        return d.promise;
274    };
275    $scope.dsUstMenuPath = new DevExpress.data.DataSource({
276        store: {
277            type: "odata",
278            url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu",
279            key: "ID",
280            keyType: "Int32"
281        },
282        map: function (itemData) {
283            return {
284                ID: itemData.ID,
285                Yol2: itemData.Yol2
286            };
287        }
288    });
289
290    $scope.dsUstMenuPath.filter("ID", "=", UMenuID);
291
292
293    var asyncXXXXUstMenu = function () {
294
295        var str = $scope.path;
296
297        var array = str.split(',');
298
299        var filter = [];
300        var filterID = [];
301
302        for (var fID in array) {
303
304            if (array.hasOwnProperty(fID)) {
305                if (array[fID] !== "") {
306                    filterID.push(["ID", "=", parseInt(array[fID])]);
307
308                    if ((array[fID] !== "") && (array[fID] !== array[array.length - 1])) {
309
310                        filterID.push("or");
311                    }
312                }
313
314            }
315        }
316
317        filter = [["SiteID", "=", $scope.SiteIDA], "and", ["Durum", "=", 1], "and", ["DilKodu", "=", $scope.DilKodu]];
318        if (array.length > 0) filter.push("and", filterID);
319        // alert(filter);
320        $scope.dsUstMenu.filter(filter);
321        $scope.dsUstMenu.sort("Seviye");
322
323        var d = $q.defer();
324
325
326        var result = $scope.dsUstMenu.load();
327
328        result.done(function (data) {
329
330            d.resolve(data);
331        })
332            .fail(function (error) {
333                d.reject(error);
334            });
335
336        return d.promise;
337    };
338
339    $scope.dsUstMenu = new DevExpress.data.DataSource(
340        {
341            store: {
342                type: "odata",
343                url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu",
344                key: "ID",
345                keyType: "Int32"
346            },
347            sort: "Seviye",
348            paginate: false,
349            map: function (itemData) {
350                return {
351                    ID: itemData.ID,
352                    MenuAd: itemData.MenuAd,
353                    Adres: itemData.AdresSatiri,
354                    Duzey: itemData.Seviye,
355                    IcerikTipNo: itemData.IcerikTipNo,
356                    IcerikID: itemData.IcerikID,
357                    UstMenuID: itemData.UstMenuID,
358                    IcerikAdres: itemData.IcerikAdres,
359                    IcerikGuID: itemData.IcerikGuID,
360                    Hedef: itemData.Hedef
361                };
362            }
363        });
364     
365});
366
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.