1var easyComm = { 2 initialize: function(){ 3 if(!jQuery().ajaxForm) { 4 easyComm.notice.error('Can`t find jQuery ajaxForm plugin!'); 5 } 6 easyComm.rating.initialize(); 7 jQuery(document).on('submit', 'form.ec-form', function(e){ 8 easyComm.message.send(this); 9 e.preventDefault(); 10 return false; 11 }); 12 }, 13 14 message: { 15 send: function(form) { 16 jQuery(form).ajaxSubmit({ 17 data: {action: 'message/create'} 18 ,url: easyCommConfig.actionUrl 19 ,form: form 20 ,dataType: 'json' 21 ,beforeSubmit: function() { 22 jQuery(form).find('input[type="submit"]').attr('disabled','disabled'); 23 jQuery(form).find('.has-error').removeClass('has-error'); 24 jQuery(form).find('.ec-error').text('').hide(); 25 return true; 26 } 27 ,success: function(response) { 28 var fid = jQuery(form).data('fid'); 29 jQuery(form).find('input[type="submit"]').removeAttr('disabled'); 30 if (response.success) { 31 jQuery(form)[0].reset(); 32 if(typeof (response.data) == "string") { 33 jQuery('#ec-form-success-' + fid).html(response.data); 34 jQuery(form).hide(); 35 } 36 else { 37 easyComm.notice.show(response.message); 38 } 39 } 40 else { 41 if(response.data && response.data.length) { 42 jQuery.each(response.data, function(i, error) { 43 jQuery(form).find('[name="' + error.field + '"]').closest('.form-group').addClass('has-error'); 44 jQuery(form).find('#ec-' + error.field + '-error-' + fid).text(error.message).show().closest('.form-group').addClass('has-error'); 45 }); 46 } else { 47 easyComm.notice.error(response.message); 48 } 49 } 50 } 51 ,error: function(){ 52 jQuery(form).find('input[type="submit"]').removeAttr('disabled'); 53 easyComm.notice.error('Submit error'); 54 } 55 }); 56 } 57 }, 58 59 60 rating: { 61 initialize: function(){ 62 var stars = jQuery('.ec-rating').find('.ec-rating-stars>span'); 63 stars.on('touchend click', function(e){ 64 var starDesc = jQuery(this).data('description'); 65 jQuery(this).parent().parent().find('.ec-rating-description').html(starDesc).data('old-text', starDesc); 66 jQuery(this).parent().children().removeClass('active active2 active-disabled'); 67 jQuery(this).prevAll().addClass('active'); 68 jQuery(this).addClass('active'); 69 // save vote 70 var storageId = jQuery(this).closest('.ec-rating').data('storage-id'); 71 jQuery('#' + storageId).val(jQuery(this).data('rating')); 72 }); 73 stars.hover( 74 // hover in 75 function() { 76 var descEl = jQuery(this).parent().parent().find('.ec-rating-description'); 77 descEl.data('old-text', descEl.html()); 78 descEl.html(jQuery(this).data('description')); 79 jQuery(this).addClass('active2').removeClass('active-disabled'); 80 jQuery(this).prevAll().addClass('active2').removeClass('active-disabled'); 81 jQuery(this).nextAll().removeClass('active2').addClass('active-disabled'); 82 }, 83 // hover out 84 function(){ 85 var descEl = jQuery(this).parent().parent().find('.ec-rating-description'); 86 descEl.html(descEl.data('old-text')); 87 jQuery(this).parent().children().removeClass('active2 active-disabled'); 88 } 89 ); 90 } 91 }, 92 93 notice: { 94 error: function(text) { 95 alert(text); 96 }, 97 show: function(text) { 98 alert(text); 99 } 100 } 101} 102 103jQuery(document).ready(function(){ 104 easyComm.initialize(); 105}); 106 107var easyCommReCaptchaCallback = function() { 108 if(typeof grecaptcha !== 'undefined'){ 109 $('.ec-captcha').each(function(index) { 110 grecaptcha.render($(this).attr('id'), {
111 'sitekey' : easyCommConfig.reCaptchaSiteKey 112 }); 113 }); 114 } 115 else { 116 easyComm.notice.error('grecaptcha is not defined!'); 117 } 118}
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.