PageSourceSearch

https://adanato.org.tr/js/services/project-service.js?ver=20250317

js adanato.org.tr collected 2026-09-24 13:05:39 UTC 10,662 bytes, 364 lines download raw bytes

1app.service('projectService', ['contextInfo', 'tools', function (contextInfo, tools) {
2
3    var params = {};
4
5    this.setParameters = function (siteID, langCode) {
6        params.siteID = siteID;
7        params.langCode = langCode;
8    };
9
10
11    var context = contextInfo.getContext();
12
13    var getFilter = function (state) {
14
15        var filter = [
16            ["SiteID", params.siteID], "and",
17            ["DilKodu", params.langCode], "and",
18            ["Durum", 1]
19        ];
20
21        if (state !== -1) {
22            var completed = state === 1 ? true : false;
23            filter.push("and", ["Tamamlandi", completed])
24        }
25
26        return filter;
27    };
28
29    var getSearchFilter = function (searchText) {
30
31        return [
32            ["SiteID", params.siteID], "and",
33            ["DilKodu", params.langCode], "and",
34            ["Durum", 1], "and",
35            [
36                ["Baslik", "contains", searchText], "or",
37                ["AltBaslik", "contains", searchText], "or",
38                ["Etiket", "contains", searchText]
39            ]
40        ];
41    };
42
43    var getProjectFilter = function (id) {
44
45        return [
46            ["SiteID", params.siteID], "and",
47            ["DilKodu", params.langCode], "and",
48            ["Durum", 1], "and",
49            ["ID", id]
50        ];
51    };
52
53    var mapData = function (item) {
54        return {
55            ID: item.ID,
56            GUID: item.GUID,
57            Baslik: item.Baslik,
58            AltBaslik: item.AltBaslik,
59            GorselUrlK: item.GorselUrlK,
60            GorselUrlO: item.GorselUrlO,
61            GosterimSayisi: item.GosterimSayisi,
62            Etiketler: tools.getTags(item.Etiket),
63            EkBilgiler: [
64                { icon: "calendar-day", description: "Başlangıç Tarihi", name: "BaslangicTarihi", text: item.BaslangicTarihi.toLocaleDateString() },
65                { icon: "clock", description: "Proje Süresi", name: "ProjeSuresi", text: item.Sure.toString() + " " + item.SureDonem },
66                { icon: "lira-sign", description: "Proje Bütçesi", name: "ProjeButcesi", text: Number(item.ButceTutari).toLocaleString('tr-TR') + " " + item.ButceParaBirimi },
67                { icon: "eye", description: "Gösterim Sayısı", name: "GosterimSayisi", text: item.GosterimSayisi }
68            ]
69        }
70    }
71
72    var dsProjeler = new DevExpress.data.DataSource({
73        store: context.Projeler,
74        select: ["ID", "GUID", "Baslik", "AltBaslik", "Sure", "SureDonem", "BaslangicTarihi", "BitisTarihi",
75            "ButceTutari", "ButceParaBirimi", "ButceAciklama", "Ortaklar", "Etiket", "GorselUrlK", "GorselUrlO", "Tamamlandi", "GosterimSayisi"],
76        paginate: true,
77        sort: [{ selector: "Tamamlandi", desc: false }, { selector: "BaslangicTarihi", desc: true }],
78        map: mapData
79    });
80
81    var dsProje = new DevExpress.data.DataSource({
82        store: context.Projeler,
83        paginate: false,
84        //map: mapData
85    });
86
87    var dsDosyalar = new DevExpress.data.DataSource({
88        store: context.Dosyalar,
89        sort: "SiraNo",
90        paginate: false
91    });
92
93    var dsGorseller = new DevExpress.data.DataSource({
94        store: context.Gorseller,
95        sort: "SiraNo",
96        paginate: false,
97        map: function (itemData) {
98            return {
99                id: itemData.ID,
100                title: itemData.Aciklama,
101                alt: "",
102                thumbUrl: itemData.UrlK,
103                url: itemData.UrlBBB,
104                extUrl: "", //itemData.Url
105                deletable: false,
106                coverImage: false
107            }
108        }
109    });
110
111
112    var loadProjeler = function (state) {
113        return new Promise(function (resolve, reject) {
114            var filter = getFilter(state);
115
116            dsProjeler.filter(filter);
117            dsProjeler.sort({ selector: "BaslangicTarihi", desc: true });
118            dsProjeler.pageSize(80);
119            dsProjeler.load()
120                .done(function (data) {
121                    resolve(data);
122                }).fail(function (error) {
123                    reject(error);
124                });
125        });
126    };
127
128
129    var loadAramaProjeler = function (searchText) {
130        return new Promise(function (resolve, reject) {
131            var filter = getSearchFilter(searchText);
132            dsProjeler.filter(filter);
133            dsProjeler.sort({ selector: "BaslangicTarihi", desc: true });
134            dsProjeler.pageSize(80);
135            dsProjeler.load()
136                .done(function (data) {
137                    resolve(data);
138                }).fail(function (error) {
139                    reject(error);
140                });
141        });
142    };
143
144
145    var loadSonProjeler = function () {
146        return new Promise(function (resolve, reject) {
147            var filter = getFilter(1);
148            dsProjeler.filter(filter);
149            dsProjeler.sort({ selector: "BitisTarihi", desc: true });
150            dsProjeler.pageSize(5);
151            dsProjeler.load()
152                .done(function (data) {
153                    resolve(data);
154                }).fail(function (error) {
155                    reject(error);
156                });
157        });
158    };
159
160
161    var loadProje = function (id) {
162        return new Promise(function (resolve, reject) {
163            var filter = getProjectFilter(id);
164            dsProje.filter(filter);
165            dsProje.load()
166                .done(function (data) {
167                    var icerik = data.length > 0 ? data[0] : null;
168                    resolve(icerik);
169                }).fail(function (error) {
170                    reject(error);
171                });
172        });
173    };
174
175
176    var loadDosyalar = function (guid) {
177        return new Promise(function (resolve, reject) {
178            dsDosyalar.filter([["Durum", 1], ["IcerikGUID", guid]]);
179            dsDosyalar.sort("SiraNo");
180            dsDosyalar.load()
181                .done(function (data) {
182                    resolve(data);
183                }).fail(function (error) {
184                    reject(error);
185                });
186        });
187    };
188
189    var loadGorseller = function (guid) {
190        return new Promise(function (resolve, reject) {
191            dsGorseller.filter([["Durum", 1], ["IcerikGUID", guid]]);
192            dsGorseller.sort("SiraNo");
193            dsGorseller.load()
194                .done(function (data) {
195                    resolve(data);
196                }).fail(function (error) {
197                    reject(error);
198                });
199        });
200    };
201
202
203    var instanceLoadPanel = null;
204
205    var loadPanelOptions = {
206        shading: true,
207        shadingColor: "rgba(0, 0, 0, 0.4)",
208        visible: false,
209        delay: 300,
210        onInitialized: function (e) {
211            instanceLoadPanel = e.component;
212        }
213    };
214
215    var instancePagerButton = null;
216    var pagerButtonOptions = {
217        keyExpr: "pageNumber",
218        stylingMode: "text",
219        selectionMode: "single",
220        //width: 300,
221        onInitialized: function (e) {
222            instancePagerButton = e.component;
223            //console.log("instancePagerButton")
224        },
225        bindingOptions: {
226            "onSelectionChanged": "pageChanged",
227            "items": "contentInfo.pagerButtons"
228        }
229    };
230
231    var searchBoxOptions = {
232        placeholder: "Metin giriniz...",
233
234        showClearButton: true,
235        maxLength: 50,
236        mode: "search",
237        bindingOptions: {
238            value: "searchText",
239            onEnterKey: "searchByText"
240        }
241    };
242
243
244
245
246    this.getProjectInfo = async function (id) {
247        var info = {
248            project: null,
249            tags: [],
250            files: [],
251            images: []
252        };
253
254        var project = await loadProje(id);
255
256        if (project) {
257            var files = await loadDosyalar(project.GUID);
258
259            var images = await loadGorseller(project.GUID);
260
261            context.get("GosterimSayisiGuncelle", { t: 'Projeler', g: project.GUID.toString() });
262
263            //context.Projeler.update(id, { GosterimSayisi: project.GosterimSayisi + 1 });
264
265            info.files = files;
266            info.images = images;
267            info.tags = tools.getTags(project.Etiket);
268            info.project = project;
269            info.showImages = true;
270        }
271
272        return info;
273    };
274
275
276
277    var contents = [];
278    var pageSize = 10;
279    var pageCount = 0;
280
281    var setContentInfo = function () {
282
283        var contentInfo = {
284            pageContents: [],
285            pagerButtons: [],
286            pagerVisible: false
287        }
288
289        pageCount = parseInt((contents.length - 1) / pageSize) + 1;
290
291        contentInfo.pagerVisible = pageCount > 1;
292        for (var pageNumber = 1; pageNumber <= pageCount; pageNumber++) {
293            contentInfo.pagerButtons.push({ pageNumber: pageNumber, text: pageNumber, type: "normal" });
294        }
295
296        if (pageCount > 0)
297            contentInfo.pageContents = getPageContents(1);
298
299        return contentInfo;
300    };
301
302    var getPageContents = function (pageNumber) {
303
304        var start = (pageNumber - 1) * pageSize;
305        var end = pageNumber < pageCount ? start + pageSize : contents.length;
306
307        return contents.slice(start, end);
308    };
309
310
311    this.getContentGroups = function () {
312        var gruplar = [];
313        gruplar.push({ Tip: -1, Aciklama: "Tümü" });
314        gruplar.push({ Tip: 0, Aciklama: "Devam Eden Projeler" });
315        gruplar.push({ Tip: 1, Aciklama: "Tamamlanan Projeler" });
316
317        return gruplar;
318    };
319
320    this.getPageContents = function (pageNumber) {
321
322        return getPageContents(pageNumber);
323
324    }
325
326
327    this.getProjects = async function (state) {
328
329        contents = await loadProjeler(state);
330
331        return setContentInfo();
332    };
333
334    this.getSearchContents = async function (searchText) {
335
336        instanceLoadPanel.show();
337        contents = await loadAramaProjeler(searchText);
338        instanceLoadPanel.hide();
339
340        return setContentInfo();
341    };
342
343
344
345    this.getTopProjects = async function () {
346
347        return await loadSonProjeler();
348
349    };
350
351    this.getOptions = function () {
352
353        var options = {
354            loadPanel: loadPanelOptions,
355            pagerButton: pagerButtonOptions,
356            searchBox: searchBoxOptions
357        }
358        return options;
359    };
360
361
362}]);
363
364

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.