Skip to content

Instantly share code, notes, and snippets.

@thomasmb
thomasmb / script.js
Created June 16, 2021 13:50
A JS snippet you can run on the Digital Ocean notification page to read all notifications. Start it off by running the start_processing() function
var interval;
function start_processing(){
interval = setInterval( open_notifications, 1000 );
}
function open_notifications(){
let notifications = document.querySelectorAll('.notification-listing .notification-row:not(.acknowledged) .action');
if( !notifications.length ) {
@thomasmb
thomasmb / script.js
Created December 9, 2020 21:14
Contact Form 7 prevent duplicate submissions
// Once the form is submitted, disable the button
$(document).on( 'submit', '.wpcf7-form', function() {
var $submit = $(this).find('[type=submit]');
// Disable the button
$submit.attr('disabled', true)
// Create a backup of the button text
.data( 'original-text', $submit.text() )
// Change the button text to indicate sending
.text( 'Sending…' );
@thomasmb
thomasmb / nginx-helper-purge.php
Created April 10, 2020 13:56
WP Nginx helper purge cache on multiple domains
<?php
/**
* When the site admin is hosted on a different domain, this filter can be used to
* purge the cache of the exposed site
*/
add_filter( 'rt_nginx_helper_purge_url', function( $url ){
$find = 'admin-domain.com';
$replace = 'live-domain.com';
@thomasmb
thomasmb / jquery-resize-event.js
Last active June 11, 2022 16:04
jQuery resizestart and resizeend events
var resizeTimer = false;
$(window).on('resize', function(e) {
if( !resizeTimer ) {
$(window).trigger('resizestart');
}
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function() {
@thomasmb
thomasmb / gform_tabindex.php
Created November 9, 2017 09:59
Remove tabindex from Gravity Forms
<?php
add_filter( 'gform_tabindex', '__return_false' );
@thomasmb
thomasmb / gulpfile.js
Created August 26, 2014 12:43
Filtering empty files in gulp
var gulp = require('gulp'),
filter = require('gulp-filter'),
changed = require('gulp-changed'),
imagemin = require('gulp-imagemin')
var paths = {
images: './source/img/**/*'
};
// Process images
@thomasmb
thomasmb / varnish-https-cache.vcl
Created August 15, 2014 09:34
Sperate varnish cache for HTTPS
sub vcl_hash {
# … Other vcl_hash stuff
# If this is a HTTPS request, keep it in a different cache
if (req.http.X-Forwarded-Proto) {
hash_data(req.http.X-Forwarded-Proto);
}
@thomasmb
thomasmb / mysql_pwd_reset.sh
Created August 12, 2014 20:55
A shell script for resetting the root MySQL password
# Please confirm that you want to reset the MySQL passwords
CONFIRM="n"
echo -n "Please confirm MySQL password reset. Continue? (y/N): "
read -n 1 CONFIRM_INPUT
if [ -n "$CONFIRM_INPUT" ]; then
CONFIRM=$CONFIRM_INPUT
fi
echo
@thomasmb
thomasmb / gist:b67680a04ae75bc301b7
Created August 11, 2014 14:03
Google Webfonts
WebFontConfig = {
google: { families: [ 'PT+Sans:400,400italic:latin', 'Ubuntu:300,400,500:latin' ] }
};
var cb = function() {
var wf = document.createElement('script');
wf.src = '//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
wf.type = 'text/javascript';
wf.async = 'true';
var s = document.getElementsByTagName('script')[0];
@thomasmb
thomasmb / form.js
Created July 1, 2014 22:23
Replacement for the Akismet jQuery code
document.addEventListener("DOMContentLoaded", function(event) {
var ak_js = document.getElementById( 'ak_js' );
if( !ak_js ){
ak_js = document.createElement( 'input' );
ak_js.type = 'hidden';
ak_js.name = ak_js.id = 'ak_js';
}
else {
ak_js.parentNode.removeChild( ak_js );