PageSourceSearch

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

js atu.edu.tr collected 2026-10-02 05:54:14 UTC 11,734 bytes, 396 lines download raw bytes

1
2
3xApp.controller('SSSController', function SSSController($scope, $routeParams, $location, $q, $window, $rootScope, $route) {
4     
5   
6    var UMenuID = parseInt($routeParams.UstMenuId);
7 
8    var menuTreeData = [];
9 
10    angular.element(document).ready(function () {
11
12        $rootScope.AcilirPencere = 2;
13        $scope.SayfaUst();
14        $scope.SSS = [];
15        $scope.items = $scope.menuData;//.filter(item=> item.Duzey >= $scope.treeViewItemDataDuzey);
16
17        var promiseSSS = asyncXXXXSSS();
18
19        promiseSSS.then(function (data) {
20            //alert(JSON.stringify(data))
21                $scope.SSS = data;
22                 
23        }, function (error) {
24            $scope.SSS = null;
25            $route.reload();
26        });
27
28
29       
30        var promiseTreeMenu = asyncXXXXTreeMenu();
31        
32        
33        promiseTreeMenu.then(function (data) {
34           
35
36            $scope.items = data;
37            var items = unflatten(data);
38    
39
40        }, function (error) {
41            menuTreeData = null;
42            $route.reload();
43        });
44
45        var promiseUstMenuPath = asyncXXXXUstMenuPath();
46
47        promiseUstMenuPath.then(function (data) {
48            if (data.length === 1) {
49                UstMenuPath = data[0];
50                $scope.path = UstMenuPath.Yol2;
51                var promiseUstMenu = asyncXXXXUstMenu();
52
53
54                promiseUstMenu.then(function (data) {
55
56                    $scope.menuUstData = data;
57
58
59                }, function (error) {
60                    menuUstData = null;
61                    $route.reload();
62                });
63
64            }
65            else
66                UstMenuPath = null;
67        }, function (error) {
68            UstMenuPath = null;
69            $route.reload();
70        });
71
72    });
73
74    $scope.accordionOptions = { 
75        itemTemplate: "sss_sorular",
76        bindingOptions: {
77            dataSource: "SSS", 
78            animationDuration: "animationDuration",
79            collapsible: "collapsible",
80            multiple: "multiple",
81            selectedItems: "selectedItems"
82        }
83    };
84
85
86    $scope.items = [];
87    $scope.treeViewItemDataDuzey = -1;
88
89    $scope.treeViewOptions = {
90        
91        //items: items,
92        width: 300,
93        height: "auto",
94        displayExpr: "MenuAd",
95        keyExpr: "ID",
96        parentIdExpr: "ParentID",
97        //itemsExpr: "men=TreeData",
98        dataStructure: "tree",
99        //showRowLines: true,
100        //showBorders: true,
101        //columnAutoWidth: true,
102        //showColumnHeaders: false,
103        //hoverStateEnabled: true,
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            var item = e.itemData;
122            $scope.treeViewItemDataDuzey = item.Duzey;
123
124            if (item.IcerikTipNo === 1 && item.IcerikID !== 0)
125                window.open("#!/" + item.IcerikAdres + "/" + item.IcerikID + "/" + item.ParentID + "/" + item.IcerikGuID, item.Hedef);
126            else if (item.IcerikTipNo === 1 && item.IcerikID === 0 && item.IcerikAdres !== "")
127                window.open("#!/" + item.IcerikAdres + "/" + item.ParentID, item.Hedef);
128
129            else if (item.IcerikTipNo === 2)
130                window.open(item.IcerikAdres, item.Hedef);
131
132        }
133    };
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.UstMenuClick = function (IcerikID, IcerikTipNo, IcerikAdres, IcerikGuID, UstMenuID) {
188
189        if (IcerikTipNo === 1 && IcerikID !== 0)
190            window.open("#!/" + IcerikAdres + "/" + IcerikID + "/" + UstMenuID + "/" + IcerikGuID, item.Hedef);
191        else if (IcerikTipNo === 1 && IcerikID === 0 && IcerikAdres !== "")
192            window.open("#!/" + IcerikAdres + "/" + UstMenuID, item.Hedef);
193
194        else if (IcerikTipNo === 2)
195            window.open(IcerikAdres, item.Hedef);
196
197    }
198
199
200    $scope.dsTreeMenu = new DevExpress.data.DataSource({
201        store: {
202            type: "odata",
203            url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu",
204            key: "ID",
205            keyType: "Int32"
206        },
207        sort: "SiraNo",
208        filter: ([["SiteID", "=", $scope.SiteID], "and", ["Durum", "=", 1], "and", ["DilKodu", "=", $scope.DilKodu], "and", ["UstMenuID", "=", UMenuID]]),
209        paginate: false, 
210        map: function (itemData) {
211            return {
212                ID: itemData.ID,
213                MenuAd: itemData.MenuAd,
214                IcerikAdres: itemData.IcerikAdres,
215                ParentID: itemData.UstMenuID,
216                IcerikID: itemData.IcerikID,
217                IcerikGuID: itemData.IcerikGuID,
218                Duzey: itemData.Seviye,
219                IcerikTipNo: itemData.IcerikTipNo,
220                Hedef: itemData.Hedef
221            };
222        }
223    });
224
225    
226    var asyncXXXXTreeMenu = function () {
227
228        var d = $q.defer();
229
230        
231        var result = $scope.dsTreeMenu.load();
232
233        result.done(function (data) {
234
235            d.resolve(data);
236        })
237            .fail(function (error) {
238                d.reject(error);
239                $route.reload();
240            });
241
242        return d.promise;
243    }; 
244
245     
246    var asyncXXXXSSS = function () {
247
248        var d = $q.defer();
249
250
251        $scope.dsSSS.filter([["SiteID", "=", $scope.SiteID], "and", ["BirimID", "=", $scope.BirimID]]);
252
253        var resultSSS = $scope.dsSSS.load();
254
255        resultSSS.done(function (data) {
256            d.resolve(data);
257        })
258            .fail(function (error) {
259                d.reject(error);
260                $route.reload();
261            });
262
263        return d.promise;
264    };
265
266    $scope.dsSSS = new DevExpress.data.DataSource({
267        store: {
268            type: "odata",
269            url: "https://odata.atu.edu.tr/odata/DataService.svc/SSS",
270            key: "ID",
271            keyType: "Int32"
272        },
273        sort: "Sira",
274  paginate: false,
275        map: function (itemData) {
276            return {
277                ID: itemData.ID,
278                baslik: itemData.baslik,
279                soruicerik: itemData.soruicerik,
280                Sira: itemData.Sira  
281            };
282        }
283
284    });
285
286
287
288    var asyncXXXXUstMenuPath = function () {
289
290        var d = $q.defer();
291
292        var resultUstMenuPath = $scope.dsUstMenuPath.load();
293
294        resultUstMenuPath.done(function (data) {
295            d.resolve(data);
296        })
297            .fail(function (error) {
298                d.reject(error);
299                $route.reload();
300            });
301
302        return d.promise;
303    };
304    $scope.dsUstMenuPath = new DevExpress.data.DataSource({
305        store: {
306            type: "odata",
307            url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu",
308            key: "ID",
309            keyType: "Int32"
310        },
311        map: function (itemData) {
312            return {
313                ID: itemData.ID,
314                Yol2: itemData.Yol2
315            };
316        }
317    });
318
319    $scope.dsUstMenuPath.filter("ID", "=", UMenuID);
320
321
322    var asyncXXXXUstMenu = function () {
323
324        var str = $scope.path;
325
326        var array = str.split(',');
327
328        var filter = [];
329        var filterID = [];
330
331        for (var fID in array) {
332
333            if (array.hasOwnProperty(fID)) {
334                if (array[fID] !== "") {
335                    filterID.push(["ID", "=", parseInt(array[fID])]);
336
337                    if ((array[fID] !== "") && (array[fID] !== array[array.length - 1])) {
338
339                        filterID.push("or");
340                    }
341                }
342
343            }
344        }
345
346        filter = [["SiteID", "=", $scope.SiteID], "and", ["Durum", "=", 1], "and", ["DilKodu", "=", $scope.DilKodu]];
347        if (array.length > 0) filter.push("and", filterID);
348        // alert(filter);
349        $scope.dsUstMenu.filter(filter);
350        $scope.dsUstMenu.sort("Seviye");
351
352        var d = $q.defer();
353
354
355        var result = $scope.dsUstMenu.load();
356
357        result.done(function (data) {
358
359            d.resolve(data);
360        })
361            .fail(function (error) {
362                d.reject(error);
363                $route.reload();
364            });
365
366        return d.promise;
367    };
368
369    $scope.dsUstMenu = new DevExpress.data.DataSource(
370        {
371            store: {
372                type: "odata",
373                url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu",
374                key: "ID",
375                keyType: "Int32"
376            },
377            sort: "Seviye",
378            paginate: false,
379            map: function (itemData) {
380                return {
381                    ID: itemData.ID,
382                    MenuAd: itemData.MenuAd,
383                    Adres: itemData.AdresSatiri,
384                    Duzey: itemData.Seviye,
385                    IcerikTipNo: itemData.IcerikTipNo,
386                    IcerikID: itemData.IcerikID,
387                    UstMenuID: itemData.UstMenuID,
388                    IcerikAdres: itemData.IcerikAdres,
389                    IcerikGuID: itemData.IcerikGuID
390                };
391            }
392        });
393});
394
395
396 

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.