PageSourceSearch

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

js atu.edu.tr collected 2026-10-02 05:54:16 UTC 17,615 bytes, 569 lines download raw bytes

1
2
3xApp.controller('akademikController', function akademikController($scope, $routeParams, $location, $q, $window, $rootScope) {
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    var AkademikTakvimYil = [];
12    var AkademikTakvimTip = [];
13    angular.element(document).ready(function () { 
14        $scope.SayfaUst();
15        $scope.items = $scope.menuData;
16        $rootScope.AcilirPencere = 2;
17        var promiseAkademik = asyncXXXXAkademik();
18
19        promiseAkademik.then(function (data) {
20
21            $scope.akademikTakvim = data;
22        }, function (error) {
23            $scope.akademikTakvim = null;
24        });
25
26        var promiseAkademikYil = asyncXXXXAkademikYil();
27
28        promiseAkademikYil.then(function (data) {
29          
30            $scope.AkademikTakvimYil = data;
31        }, function (error) {
32            $scope.AkademikTakvimYil = null;
33        });
34
35     
36
37        var promiseTreeMenu = asyncXXXXTreeMenu();
38
39
40        promiseTreeMenu.then(function (data) {
41
42            $scope.items = data;
43            items = unflatten(data);
44
45
46        }, function (error) {
47            menuTreeData = null;
48        });
49
50        var promiseUstMenuPath = asyncXXXXUstMenuPath();
51
52        promiseUstMenuPath.then(function (data) {
53            if (data.length === 1) {
54                UstMenuPath = data[0];
55                $scope.path = UstMenuPath.Yol2;
56                var promiseUstMenu = asyncXXXXUstMenu();
57
58
59                promiseUstMenu.then(function (data) {
60
61                    $scope.menuUstData = data;
62
63
64                }, function (error) {
65                    menuUstData = null;
66                });
67
68            }
69            else
70                UstMenuPath = null;
71        }, function (error) {
72            UstMenuPath = null;
73        });
74
75    });
76
77    $scope.grouping = {
78        autoExpandAll: true
79    };
80    var Aktip = null;
81    var Akyil = null;
82    $scope.dataGridOptions = {
83        columnAutoWidth: true,
84        showBorders: true,
85          width: "100%",
86        bindingOptions: {
87            dataSource: "akademikTakvim",
88            grouping: "grouping" 
89        },
90        paging: {enabled: false },
91        searchPanel: {
92            visible: true,
93            width: "170px",
94            placeholder: "Ara..."
95        },
96        wordWrapEnabled: true,
97        groupPanel: {
98            visible: false
99        },
100        rowAlternationEnabled: true,
101        sorting: {
102            mode: "none"
103        },
104        columns: [
105            {
106                caption: "Akademik Faaliyet",
107                dataField: "AkademikFaaliyet",
108                
109            },
110            {
111                caption: "Başlangıç",
112                dataField: "BaslamaTarihi",
113                dataType: "date",
114                format: 'dd/MM/yyyy',
115                alignment : 'center'
116                
117            },
118            {
119                caption: "Bitiş",
120                dataField: "BitisTarihi",
121                dataType: "date",
122                format: 'dd/MM/yyyy',
123                alignment: 'center'
124                
125            }
126            ,
127            {
128                caption: "Yarıyıl",
129                dataField: "DonemID",
130                groupIndex: 0,
131                customizeText: function (cellInfo) {
132                    if (cellInfo.value === 1)
133                        return "Güz";
134                    else if (cellInfo.value === 2)
135                        return "Bahar";
136                    else return "";
137                }
138            }
139        ],
140        onToolbarPreparing: function (e) {
141            var dataGrid = e.component;
142            var selectedYear;
143            var selectedTip;
144            e.toolbarOptions.items.unshift({
145                location: "before",
146                widget: "dxSelectBox",
147                options: {
148                    bindingOptions: {
149                        dataSource: "AkademikTakvimYil"
150                    },
151                    width: 250,
152                    placeholder: "Seçiniz",
153                    displayExpr: "AdTR",
154                    valueExpr: "Yil",
155                    value: 2019,
156                    onInitialized: function (e) {
157                        Akyil = e.component;
158                    },
159                    onSelectionChanged: function (e) {
160                        selectedYear = e.component.option("value");
161                        $scope.dsAkademik.filter([["Yil", "=", selectedYear], "and", ["GrupTipi", Aktip.option("value")], "and", ["Durum", "=", 1]]);
162                 
163                            $scope.dsAkademik.load();
164                            var promiseAkademik = asyncXXXXAkademik();
165
166                            promiseAkademik.then(function (data) {
167
168                                $scope.akademikTakvim = data;
169                            }, function (error) {
170                                $scope.akademikTakvim = null;
171                                });
172
173
174                        } 
175                         
176                    }
177                },
178                {
179                    location: "before",
180                    widget: "dxSelectBox",
181                    options: {
182                        items: [{
183                            value: 1,
184                            text: "Lisans Programları"
185                        }, {
186                            value: 2,
187                            text: "Lisansüstü Programları"
188                        }],
189                        width: 200,
190                        placeholder: "Seçiniz",
191                        displayExpr: "text",
192                        valueExpr: "value",
193                        value: 1,
194                        onInitialized: function (e) {
195                            Aktip = e.component;
196                        },
197                        onSelectionChanged: function (e) {
198                            selectedTip = e.component.option("value");
199                            $scope.dsAkademik.filter([["Yil", "=", Akyil.option("value")], "and", ["GrupTipi", selectedTip], "and", ["Durum", "=", 1]]);
200                            $scope.dsAkademik.load();
201                            var promiseAkademik = asyncXXXXAkademik();
202
203                            promiseAkademik.then(function (data) {
204                                //alert(JSON.stringify(data));
205                                $scope.akademikTakvim = data;
206                            }, function (error) {
207                                $scope.akademikTakvim = null;
208                            });
209
210
211                        }
212
213                    }
214                }
215
216            );
217        }
218        
219    };
220
221
222    $scope.items = [];
223    $scope.treeViewItemDataDuzey = -1;
224
225    $scope.treeViewOptions = {
226
227        //items: items,
228        width: 300,
229        height: "auto",
230        displayExpr: "MenuAd",
231        keyExpr: "ID",
232        parentIdExpr: "ParentID",
233        //itemsExpr: "men=TreeData",
234        dataStructure: "tree",
235        //showRowLines: true,
236        //showBorders: true,
237        //columnAutoWidth: true,
238        //showColumnHeaders: false,
239        //hoverStateEnabled: true,
240        focusStateEnabled: true,      // Klavyedeki Tab ve Ok tuşlarıyla odaklanmayı sağlar
241        hoverStateEnabled: true,      // Fareyle üzerine gelindiğinde görsel geri bildirim verir
242        adaptivityEnabled: true,
243        noDataText: "",
244        bindingOptions: {
245            dataSource: "items"
246        },
247        onContentReady: function (e) {
248            // 1. Alt menüsü olmayan (yaprak) öğelerden aria-expanded özniteliğini kaldır
249            $(e.element).find('.dx-treeview-node-is-leaf').removeAttr('aria-expanded');
250
251            // 2. Rolü olmayan iç div'lerden aria-selected özniteliğini kaldır
252            $(e.element).find('.dx-treeview-item').removeAttr('aria-selected');
253
254            // 3. Ana kapsayıcıdaki aranan hayali ID sorununu çözmek için (gerekirse) aktifi temizleyin
255            $(e.element).removeAttr('aria-activedescendant');
256        },
257        onItemClick: function (e) {
258
259
260            var item = e.itemData;
261            $scope.treeViewItemDataDuzey = item.Duzey;
262            
263            if (item.IcerikTipNo === 1 && item.IcerikID !== 0)
264                window.open("#!/" + item.IcerikAdres + "/" + item.IcerikID + "/" + item.ParentID + "/" + item.IcerikGuID, item.Hedef);
265            else if (item.IcerikTipNo === 1 && item.IcerikID === 0 && item.IcerikAdres !== "")
266                window.open("#!/" + item.IcerikAdres + "/" + item.ParentID, item.Hedef);
267
268            else if (item.IcerikTipNo === 2)
269                window.open(item.IcerikAdres, item.Hedef);
270        }
271    };
272
273     
274
275    $scope.UstMenuClick = function (IcerikID, IcerikTipNo, IcerikAdres, IcerikGuID, UstMenuID) {
276
277        if (IcerikTipNo === 1 && IcerikID !== 0)
278            window.open("#!/" + IcerikAdres + "/" + IcerikID + "/" + UstMenuID + "/" + IcerikGuID );
279        else if (IcerikTipNo === 1 && IcerikID === 0 && IcerikAdres !== "")
280            window.open("#!/" + IcerikAdres + "/" + UstMenuID );
281
282        else if (IcerikTipNo === 2)
283            window.open(IcerikAdres, item.Hedef);
284
285    }
286
287
288    //Find index to insert new item---->
289    function findItemIndex(arr, elem) {
290        var len = arr.length;
291        for (var i = 0; i < len; i++) {
292            if (arr[i].SiraNo > elem.SiraNo)
293                return i;
294        }
295        return len;
296    }
297
298    function unflatten(arr) {
299        var tree = [],
300            mappedArr = {},
301            arrElem,
302            mappedElem;
303
304        // First map the nodes of the array to an object -> create a hash table.
305        for (var i = 0, len = arr.length; i < len; i++) {
306            arrElem = arr[i];
307            mappedArr[arrElem.ID] = arrElem;
308            mappedArr[arrElem.ID]['items'] = [];
309        }
310
311
312        for (var ID in mappedArr) {
313            if (mappedArr.hasOwnProperty(ID)) {
314                mappedElem = mappedArr[ID];
315                // If the element is not at the root level, add it to its parent array of children.  
316
317                if (mappedElem.ParentID) {
318
319                    //mappedArr[mappedElem['ParentID']]['items'].push(mappedElem);
320                    pushIndex = findItemIndex(mappedArr[mappedElem['ParentID']]['items'], mappedElem);
321                    mappedArr[mappedElem['ParentID']]['items'].splice(pushIndex, 0, mappedElem);
322
323                }
324                // If the element is at the root level, add it to first level elements array.
325                else {
326
327                    //tree.push(mappedElem);
328                    pushIndex = findItemIndex(tree, mappedElem);
329                    tree.splice(pushIndex, 0, mappedElem);
330                }
331
332            }
333        }
334
335        return tree;
336    }
337
338    $scope.dsTreeMenu = new DevExpress.data.DataSource({
339        store: {
340            type: "odata",
341            url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu",
342            key: "ID",
343            keyType: "Int32"
344        },
345        sort: "SiraNo",
346        filter: ([["SiteID", "=", $scope.SiteID], "and", ["Durum", "=", 1], "and", ["DilKodu", "=", $scope.DilKodu], "and", ["UstMenuID", "=", UMenuID]]),
347        paginate: false,
348        map: function (itemData) {
349            return {
350                ID: itemData.ID,
351                MenuAd: itemData.MenuAd,
352                IcerikAdres: itemData.IcerikAdres,
353                ParentID: itemData.UstMenuID,
354                IcerikID: itemData.IcerikID,
355                IcerikGuID: itemData.IcerikGuID,
356                Duzey: itemData.Seviye,
357                IcerikTipNo: itemData.IcerikTipNo,
358                Hedef: itemData.Hedef
359            };
360        }
361    });
362
363
364    var asyncXXXXTreeMenu = function () {
365
366        var d = $q.defer();
367
368
369        var result = $scope.dsTreeMenu.load();
370
371        result.done(function (data) {
372
373            d.resolve(data);
374        })
375            .fail(function (error) {
376                d.reject(error);
377            });
378
379        return d.promise;
380    }; 
381
382    var asyncXXXXAkademik = function () {
383
384        var d = $q.defer(); 
385
386        $scope.dsAkademik.filter([  ["Durum", "=", 1]]);
387
388
389        var result = $scope.dsAkademik.load();
390
391        result.done(function (data) {
392            d.resolve(data);
393        })
394            .fail(function (error) {
395                d.reject(error);
396            });
397
398        return d.promise;
399    };
400
401    var asyncXXXXAkademikYil = function () {
402
403        var d = $q.defer();
404
405         
406        var result = $scope.dsAkademikYil.load();
407
408        result.done(function (data) {
409            d.resolve(data);
410        })
411            .fail(function (error) {
412                d.reject(error);
413            });
414
415        return d.promise;
416    };
417
418  
419    $scope.dsAkademik = new DevExpress.data.DataSource({
420        store: {
421            type: "odata",
422            url: "https://odata.atu.edu.tr/odata/DataService.svc/V_AkademikTakvim",
423            key: "ID",
424            keyType: "Int32"
425        },
426        sort:  "DonemID" , 
427        paginate: false, 
428        map: function (itemData) {
429            return {
430                ID: itemData.ID,
431                DonemID: itemData.DonemID,
432                DonemAciklama: itemData.DonemAciklama,
433                Aciklama: itemData.Aciklama,
434                BaslamaTarihi: itemData.BaslamaTarihi,  
435                BitisTarihi: itemData.BitisTarihi,
436                AkademikFaaliyet: itemData.AdTR,
437                Yil: itemData.Yil,
438                GrupTipi: itemData.GrupTipi,
439                Durum: itemData.Durum
440            };
441        }
442
443    });
444    $scope.dsAkademikYil = new DevExpress.data.DataSource({
445        store: {
446            type: "odata",
447            url: "https://odata.atu.edu.tr/odata/DataService.svc/AkademikTakvimYil",
448            key: "ID",
449            keyType: "Int32"
450        },
451        sort: ({ getter: "Yil", desc: true }),
452        map: function (itemData) {
453            return {
454                ID: itemData.ID,
455                Yil: itemData.Yil,
456                AdTR: itemData.AdTR
457            };
458        }
459
460    });
461    
462    var asyncXXXXUstMenuPath = function () {
463
464        var d = $q.defer();
465
466        var resultUstMenuPath = $scope.dsUstMenuPath.load();
467
468        resultUstMenuPath.done(function (data) {
469            d.resolve(data);
470        })
471            .fail(function (error) {
472                d.reject(error);
473            });
474
475        return d.promise;
476    };
477    $scope.dsUstMenuPath = new DevExpress.data.DataSource({
478        store: {
479            type: "odata",
480            url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu",
481            key: "ID",
482            keyType: "Int32"
483        },
484        map: function (itemData) {
485            return {
486                ID: itemData.ID,
487                Yol2: itemData.Yol2
488            };
489        }
490    });
491
492    $scope.dsUstMenuPath.filter("ID", "=", UMenuID);
493
494
495    var asyncXXXXUstMenu = function () {
496
497        var str = $scope.path;
498
499        var array = str.split(',');
500
501        var filter = [];
502        var filterID = [];
503
504        for (var fID in array) {
505
506            if (array.hasOwnProperty(fID)) {
507                if (array[fID] !== "") {
508                    filterID.push(["ID", "=", parseInt(array[fID])]);
509
510                    if ((array[fID] !== "") && (array[fID] !== array[array.length - 1])) {
511
512                        filterID.push("or");
513                    }
514                }
515
516            }
517        }
518
519        filter = [["SiteID", "=", $scope.SiteID], "and", ["Durum", "=", 1], "and", ["DilKodu", "=", $scope.DilKodu]];
520        if (array.length > 0) filter.push("and", filterID);
521        // alert(filter);
522        $scope.dsUstMenu.filter(filter);
523        $scope.dsUstMenu.sort("Seviye");
524
525        var d = $q.defer();
526
527
528        var result = $scope.dsUstMenu.load();
529
530        result.done(function (data) {
531
532            d.resolve(data);
533        })
534            .fail(function (error) {
535                d.reject(error);
536            });
537
538        return d.promise;
539    };
540
541    $scope.dsUstMenu = new DevExpress.data.DataSource(
542        {
543            store: {
544                type: "odata",
545                url: "https://odata.atu.edu.tr/odata/DataService.svc/Menu",
546                key: "ID",
547                keyType: "Int32"
548            },
549            sort: "Seviye",
550            paginate: false,
551            map: function (itemData) {
552                return {
553                    ID: itemData.ID,
554                    MenuAd: itemData.MenuAd,
555                    Adres: itemData.AdresSatiri,
556                    Duzey: itemData.Seviye,
557                    IcerikTipNo: itemData.IcerikTipNo,
558                    IcerikID: itemData.IcerikID,
559                    UstMenuID: itemData.UstMenuID,
560                    IcerikAdres: itemData.IcerikAdres,
561                    IcerikGuID: itemData.IcerikGuID,
562                    Hedef: itemData.Hedef
563                };
564            }
565        });
566});
567
568
569 

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.