PageSourceSearch

https://bodo.su/wa-data/public/shop/themes/bodo_2025/plugins/reviewsplus/reviewsplus-frontend.js

js bodo.su collected 2026-10-01 15:27:53 UTC 12,070 bytes, 280 lines download raw bytes

1(function($) {
2    
3    $.reviewsplus_frontend = {
4        
5        frontend_url: "",        
6        show_div: {},
7        form_div: {},
8        
9        init: function(options) {
10            
11            if(typeof(options.frontend_url) !== "undefined") {
12                $.reviewsplus_frontend.frontend_url = options.frontend_url;
13            }
14                        
15            if(typeof(options.popup) !== 'undefined' && options.popup == 1) {
16                $.reviewsplus_frontend.show_div = $("#reviewsplus-form-popup .reviewsplus-popup-wrap .reviewsplus-popup-content");
17                $.reviewsplus_frontend.form_div = $("#reviewsplus-form-popup");
18                $("#reviewsplus-form-popup .reviewsplus-popup-wrap").css('width', '550px');                
19            } else {
20                $.reviewsplus_frontend.show_div = $("#reviewsplus-form-div .reviewsplus-div-content");
21                $.reviewsplus_frontend.form_div = $("#reviewsplus-form-div");
22            }
23            
24            $.reviewsplus_frontend.show_div.append($("#reviewsplus-add-form"));
25            
26            $("#reviewsplus-add-form").show();
27            
28            $.reviewsplus_frontend.initRate();
29            
30            $.reviewsplus_frontend.initShowHide();
31            
32            $(".reviewsplus-pages-link").on('click', function() {
33                
34                if($.reviewsplus_frontend.frontend_url == "") {
35                    return false;
36                }
37                
38                var page = $(this).data('reviewsplus-page');
39                var pid = $(this).closest('.reviewsplus-pages').data('reviewsplus-pid');
40                
41                if(typeof(pid) !== 'undefined') {
42                    
43                    if(typeof(page) === 'undefined') {
44                        page = 1;
45                    }
46                    
47                    $.ajax({
48                        url: $.reviewsplus_frontend.frontend_url + 'showReviewsPage',
49                        data: 'pid=' + pid +
50                              '&page= ' + page,  
51                        dataType: "json",
52                        type: "post",
53                    
54                        success: function(response) {                            
55                            
56                            if(response.status !== 'fail' && typeof(response.data.html) !== 'undefined') {
57                                
58                                $(".reviewsplus-main").html(response.data.html);
59                                $(".reviewsplus-pages-link").removeClass('selected');
60                                $('.reviewsplus-pages-link[data-reviewsplus-page="' + page + '"').addClass('selected');
61                                $.reviewsplus_frontend.initShowHide();                                
62                            } else {
63                                if(console) {
64                                    console.log(response);
65                                }
66                                return false;
67                            }
68                                                                         
69                        },
70                    
71                        error: function(jqXHR, errorText, errorThrown) {
72                            if(console){
73                                console.log(jqXHR, errorText, errorThrown);
74                            }
75                        }                    
76                    });                    
77                }                
78            });
79            
80            
81            $(".reviewsplus-del-link").on('click', function() {
82                
83                if($.reviewsplus_frontend.frontend_url == "") {
84                    return false;
85                }
86                
87                if(!confirm("Удалить комментарий?")) {
88                    return false;
89                }
90                
91                var rev_div = $(this).closest('.reviewsplus-review');
92                var review_id = rev_div.data('reviewsplus-review-id');
93                
94                $.ajax({
95                    url: $.reviewsplus_frontend.frontend_url + 'delReview',
96                    data: 'review_id=' + review_id,
97                    dataType: "json",
98                    type: "post",
99                    
100                    success: function(response) {
101                        
102                        if(response.status === 'fail') {
103                            if(console) {
104                                console.log(response);
105                            }
106                            return false;
107                        } 
108                        
109                        $(rev_div).hide(1000);                                               
110                    },
111                    
112                    error: function(jqXHR, errorText, errorThrown) {
113                        if(console){
114                            console.log(jqXHR, errorText, errorThrown);
115                        }
116                    }                    
117                });                
118            });            
119            
120            $(".reviewsplus-add").on('click', function() {
121                
122                $("#reviewsplus-add-form").trigger('reset');
123                $(".reviewsplus-rate-field").val(0);
124                
125                $(".reviewsplus-review-rate").each(function() {
126                    $(this).attr('data-rate', 0);
127                    
128                    $(this).find('i').each(function() {                       
129                       $(this).removeClass('star');
130                       $(this).addClass('star-empty');
131                    });                    
132                });  
133                
134                $(".reviewsplus-add-result").empty();
135                $(".reviewsplus-add").hide();
136                
137                $.reviewsplus_frontend.form_div.show();
138                
139                var height = $("#reviewsplus-form-popup .reviewsplus-popup-wrap .reviewsplus-popup-content").height();
140                var w_height = $(window).height();
141                
142                if(height > w_height) {
143                    height = w_height - (w_height*20/100) + 'px';
144                    $("#reviewsplus-form-popup .reviewsplus-popup-wrap .reviewsplus-popup-content").css('height', height);
145                }
146
147                $.reviewsplus_frontend.initFormButtons();                
148            });      
149        },   
150        
151        initFormButtons: function() {
152            var self = this;
153            $("#reviewsplus-form-popup .reviewsplus-popup-overlay").on('click', function() {
154                $("#reviewsplus-form-popup").hide();
155                $(".reviewsplus-add").show();
156            });
157            
158            $("#reviewsplus-form-popup .reviewsplus-popup-title .reviewsplus-popup-title-close a").on('click', function() {
159                $("#reviewsplus-form-popup").hide();
160                $(".reviewsplus-add").show();
161            });
162            
163            $("#reviewsplus-form-div .reviewsplus-div-title .reviewsplus-div-title-close").on('click', function() {
164                $("#reviewsplus-form-div").hide();
165                $(".reviewsplus-add").show();
166            });
167            
168            $("#reviewsplus-add-form").submit(function () {
169                var f = $(this);                
170                var action = f.attr('action');
171                var msg = '';
172                var error = false;
173                if(!$.reviewsplus_frontend.validate(f)) {
174                    return false;
175                }
176                $.ajax({
177                    url: action,
178                    data: f.serialize(),
179                    dataType: "json",
180                    type: "post",
181                    
182                    success: function(response) {
183                                                        
184                        if(response.status === 'fail') {
185                            if(console) {
186                                console.log(response);
187                            }
188                                
189                            if(typeof(response.errors) !== 'undefined') {
190
191                                $.each(response.errors, function(i, val) {
192
193                                    if(i === 'captcha_refresh' && val) {
194                                        $('.wa-captcha-refresh').click();
195                                        return;
196                                    } 
197
198                                    if(i !== 'captcha_refresh') {
199                                        msg += val + '<br/>'; 
200                                    }  
201
202                                });                                    
203                            }
204
205                            $(".reviewsplus-add-result").css('border', '2px solid red');
206                            error = true;
207                        } else {                                
208                            msg += response.data.msg;
209                            $(".reviewsplus-add-result").css('border', '2px solid green');
210                        }                            
211                            
212                    },                        
213                       
214                    error: function(jqXHR, errorText, errorThrown) {
215                        if(console){
216                            console.log(jqXHR, errorText, errorThrown);
217                        }
218                    },
219                        
220                    complete: function(jqXHR, textStatus) {
221                            
222                        if(textStatus !== 'success') {
223                            error = true;
224                            msg = 'Что-то пошло не так ...';
225                            if(console) {
226                                console.log(jqXHR, textStatus);
227                            }
228                        }
229                            
230                            
231                        $(".reviewsplus-add-result").html(msg);
232                        $(".reviewsplus-add-result").show();
233                        setTimeout(function(){
234                            $(".reviewsplus-add-result").empty();
235                            $(".reviewsplus-add-result").hide();
236                            $(".reviewsplus-add-result").css('border', '');
237                            if(!error) {                                
238                                location.reload(true);
239                            }                                
240                        }, 1500);                            
241                    }
242                });
243                return false;
244            });
245        },
246        validate:function($form) {
247            var result = true;
248            $form.find('.reviewsplus-rate-field').each(function () {
249                if($(this).attr('rate-required') && parseInt($(this).val())<1){
250                    result = false;
251                    $(this).closest('.wa-value').addClass('error');
252                    $(this).unbind('change').change(function () {
253                        $(this).closest('.wa-value').removeClass('error');
254                    });
255                }
256            });
257            return result;
258        },
259        initRate: function() {
260            
261            $.each($('.reviewsplus-review-rate'), function(e) {
262                $(this).rateWidget({
263                    onUpdate: function(rate) {
264                        $('#reviewplus-rateid-' + e).val(rate);
265                        $('#reviewplus-rateid-' + e).trigger('change');
266                    },
267                    withClearAction: false
268                });              
269            });             
270        },
271        
272        initShowHide: function() {
273            $(".reviewsplus-show-hide-comment").on('click', function() {
274                
275                $(this).closest('.reviewsplus-review').find('.reviewsplus-review-comment').toggle(500);
276            });  
277        }        
278    };
279    
280})(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.