12345678910111213141516171819202122232425262728293031323334353637 |
- (function ($) {
- Drupal.honeypot = {};
- Drupal.honeypot.timestampJS = new Date();
- Drupal.behaviors.honeypotJS = {
- attach: function (context, settings) {
- $('form.honeypot-timestamp-js').once('honeypot-timestamp').bind('submit', function() {
- var $honeypotTime = $(this).find('input[name="honeypot_time"]');
- $honeypotTime.attr('value', Drupal.behaviors.honeypotJS.getIntervalTimestamp());
- });
- },
- getIntervalTimestamp: function() {
- var now = new Date();
- var interval = Math.floor((now - Drupal.honeypot.timestampJS) / 1000);
- return Drupal.settings.honeypot.jsToken + '|' + interval;
- }
- };
- if (Drupal.ajax && Drupal.ajax.prototype && Drupal.ajax.prototype.beforeSubmit) {
- Drupal.ajax.prototype.honeypotOriginalBeforeSubmit = Drupal.ajax.prototype.beforeSubmit;
- Drupal.ajax.prototype.beforeSubmit = function (form_values, element, options) {
- if (this.form && $(this.form).hasClass('honeypot-timestamp-js')) {
- for (key in form_values) {
- // Inject the right interval timestamp.
- if (form_values[key].name == 'honeypot_time' && form_values[key].value == 'no_js_available') {
- form_values[key].value = Drupal.behaviors.honeypotJS.getIntervalTimestamp();
- }
- }
- }
- // Call the original function in case someone else has overridden it.
- return Drupal.ajax.prototype.honeypotOriginalBeforeSubmit(form_values, element, options);
- }
- }
- }(jQuery));
|