PageSourceSearch

https://www.cedae.com.br/Resources/Search/SearchSkinObjectPreview.js?cdv=27

js cedae.com.br collected 2026-10-03 17:36:24 UTC 9,174 bytes, 189 lines download raw bytes

1(function ($) {
2    if (typeof dnn == 'undefined') window.dnn = {};
3    if (typeof dnn.searchSkinObject == 'undefined') {
4        dnn.searchSkinObject = function (options) {
5            var settings = {
6                delayTriggerAutoSearch: 100,
7                minCharRequiredTriggerAutoSearch: 2,
8                searchType: 'S',
9                enableWildSearch: true,
10                cultureCode: 'en-US'
11            };
12            this.settings = $.extend({}, settings, options);
13        };
14        dnn.searchSkinObject.prototype = {
15            _ignoreKeyCodes: [9, 13, 16, 17, 18, 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45],
16            init: function () {
17                var throttle = null, self = this;
18                var makeUrl = function (val, service) {
19                    var url = service ? service.getServiceRoot('internalservices') + 'searchService/preview' : null;
20                    if (!url) return null;
21                    var params = {};
22                    params['keywords'] = val.replace(/^\s+|\s+$/g, '');
23                    if (!self.settings.enableWildSearch) params["forceWild"] = "0";
24                    params['culture'] = self.settings.cultureCode;
25                    if (self.settings.portalId >= 0)
26                        params['portal'] = self.settings.portalId;
27                    var urlAppend = [];
28                    $.each(params, function (index, value) {
29                        urlAppend.push([index, encodeURIComponent(value)].join('='));
30                    });
31
32                    if (urlAppend.length) {
33                        url += url.indexOf('?') === -1 ? '?' : '&';
34                        url += urlAppend.join('&');
35                    }
36                    return url;
37                };
38
39                var generatePreviewTemplate = function (data) {
40                    var $wrap = $('.searchInputContainer');
41                    var preview = $('.searchSkinObjectPreview', $wrap);
42                    if (preview.length)
43                        preview.remove();
44
45                    var markup = '<ul class="searchSkinObjectPreview">';
46                    if (data && data.length) {
47                        for (var i = 0; i < data.length; i++) {
48                            var group = data[i];
49                            if (group.Results && group.Results.length) {
50                                var groupTitle = group.DocumentTypeName;
51                                markup += '<li class="searchSkinObjectPreview_group">' + groupTitle + '</li>';
52                                for (var j = 0; j < group.Results.length; j++) {
53                                    var item = group.Results[j];
54                                    var itemTitle = item.Title;
55                                    var itemUrl = item.DocumentUrl;
56                                    var itemSnippet = item.Snippet;
57                                    markup += '<li data-url="' + itemUrl + '">';
58                                    if (item.Attributes.Avatar) {
59                                        markup += '<span><img src="' + item.Attributes.Avatar + '" class="userpic" /></span>';
60                                    }
61                                    markup += '<span>' + itemTitle + '</span>';
62                                    if (itemSnippet)
63                                        markup += '<p>' + itemSnippet + '</p></li>';
64                                    else
65                                        markup += '</li>';
66                                } // end for group items
67                            }
68                        } // end for group
69
70                        var moreResults = $wrap.attr('data-moreresults');
71                        markup += '<li><a href="javascript:void(0)" class="searchSkinObjectPreview_more">' + moreResults + '</a></li>';
72                        markup += '</ul>';
73                    }
74                    else {
75                        var noResult = $wrap.attr('data-noresult');
76                        markup += '<li>' + noResult + '</li></ul>';
77                    }
78
79                    $wrap.append(markup);
80                    preview = $('.searchSkinObjectPreview', $wrap);
81
82                    //attach click event
83                    $('li', preview).on('click', function () {
84                        var navigateUrl = $(this).attr('data-url');
85                        if (navigateUrl) {
86                            window.location.href = navigateUrl;
87                        }
88                        return false;
89                    });
90
91                    //attach see more       
92                    $('.searchSkinObjectPreview_more', $wrap).on('click', function () {
93	                    var $searchButton = $wrap.parents('.SearchContainer').length ? $wrap.parent().next() : $wrap.next();
94                        var href = $searchButton.attr('href');
95                        var code = href.replace('javascript:', '');
96                        eval(code);
97                        return false;
98                    });
99                };
100
101                $('.searchInputContainer a.dnnSearchBoxClearText').on('click', function () {
102                    var $this = $(this);
103                    var $wrap = $this.parent();
104                    $('.searchInputContainer input').val('').focus();
105                    $this.removeClass('dnnShow');
106                    $('.searchSkinObjectPreview', $wrap).remove();
107                    return false;
108                });
109
110                $('.searchInputContainer').next().on('click', function() {
111                    var $this = $(this);
112                    var inputBox = $this.prev().find('input[type="text"]');
113                    var val = inputBox.val();
114                    if (val.length) {
115                        return true;
116                    }
117                    return false;
118                });
119
120                $('.searchInputContainer input').on('keyup', function(e) {
121                    var k = e.keyCode || e.witch;
122                    if ($.inArray(k, self._ignoreKeyCodes) > -1) return;
123
124                    var $this = $(this);
125                    var $wrap = $this.parent();
126                    var val = $this.val();
127                    if (!val) {
128
129                        $('a.dnnSearchBoxClearText', $wrap).removeClass('dnnShow');
130                        $('.searchSkinObjectPreview', $wrap).remove();
131                    } else {
132                        $('a.dnnSearchBoxClearText', $wrap).addClass('dnnShow');
133
134                        if (self.settings.searchType != 'S' ||
135                            val.length < self.settings.minCharRequiredTriggerAutoSearch) return;
136
137                        if (throttle) {
138                            clearTimeout(throttle);
139                            delete throttle;
140                        }
141
142                        throttle = setTimeout(function() {
143                            var service = $.dnnSF ? $.dnnSF(-1) : null;
144                            var url = makeUrl(val, service);
145                            if (url) {
146                                $.ajax({
147                                    url: url,
148                                    beforeSend: service ? service.setModuleHeaders : null,
149                                    success: function(result) {
150                                        if (result)
151                                            generatePreviewTemplate(result);
152                                    },
153                                    error: function() {
154                                    },
155                                    type: 'GET',
156                                    dataType: 'json',
157                                    contentType: "application/json"
158                                });
159                            }
160                        }, self.settings.delayTriggerAutoSearch);
161                    }
162                })
163                .on('paste', function() {
164                    $(this).triggerHandler('keyup');
165                })
166                .on('keypress', function(e) {
167                    var k = e.keyCode || e.which;
168                    if (k == 13) {
169                        var $this = $(this);
170                        var $wrap = $this.parent();
171                        var val = $this.val();
172                        if (val.length) {
173                            var href = $wrap.next().attr('href');
174                            if (!href) {
175                                // dropdown search
176                                href = $wrap.parent().next().attr('href');
177                            }
178                            var code = href.replace('javascript:', '');
179                            eval(code);
180                            e.preventDefault();
181                        } else {
182                            e.preventDefault();
183                        }
184                    }
185                });
186            }
187        };
188    }
189})(jQuery);

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.