Skip to content

Instantly share code, notes, and snippets.

View jeffreytgilbert's full-sized avatar

Jeffrey Gilbert jeffreytgilbert

View GitHub Profile
@jeffreytgilbert
jeffreytgilbert / gist:5304682
Created April 3, 2013 19:55
Example form handling for jquery for handling submissions from multiple forms on a page depending on which was submitted. The reason you want to catch the submission event is because people can click "enter" and a text input and it will submit the form regardless of your button type.
$('form').submit(function(event){
event.preventDefault();
event.stopPropogation(); // same thing
$(this); // <-- the form that was submitted
$('input', this); // <-- all the inputs for this form that need validation
$('input', this).each(function(){
var element = $(this); // <-- this is the current field which can be validated
if(element.attr('required') == 'required' && element.val().trim() != '' && element.val() ){
'use strict'
console.log "I'm the client code"
# A global reference, because coffeescript wraps everything in a closure
root = global ? window
root.Meteor.subscribe 'messages'
root.Meteor.subscribe 'rooms'
# root.Meteor.startup ->
@jeffreytgilbert
jeffreytgilbert / gist:7027985
Created October 17, 2013 16:29
Mobile click detection without that pesky 300ms delay. Makes double clicking also work fine.
/**
* This code was written by the FED team to handle fast taps between products on the browse results page. This was necessary because
* there is no native tap event, and jquery was doing some form of magic to handle taps with a timeout. Also, native click/mousedown handlers
* do not work because there is a 300ms delay in the mobile browser in order for them to detect if it is a click or double click or gesture
* but since we have doubleclick and singleclick code here and want a fast response, we use the touchstart and touchend events to detect if an item was clicked.
* We also measure the distance from the start of the tap to the end of the tap along with if the item was tapped on at any point to be able to see
* if this is a swipe gesture or a tap gesture so scrolling and swiping are unimpeded. There is a 10px tolerance added for movement of the finger during taps.
*/
var SearchResultController = {
@jeffreytgilbert
jeffreytgilbert / order-summary.js
Created October 18, 2013 16:06
Comments on a file that needs correction
define([
'jquery',
'app/controllers/modals/view-transaction-details',
'app/controllers/modals/summary-member-savings',
'app/controllers/modals/summary-member-points',
'app/controllers/modals/promotional-new'
], function(
$,
TransactionDetails,
SummaryMemberSavings,
@jeffreytgilbert
jeffreytgilbert / mocha-phantomjs
Last active January 1, 2016 13:58
Filter warning messages from the phantomjs output that happen on Mavericks due to using an older Qt library
#!/usr/bin/env node
var program = require('commander'),
spawn = require('child_process').spawn,
print = require('util').print,
fs = require('fs'),
path = require('path'),
exists = fs.existsSync || path.existsSync,
cwd = process.cwd(),
which = require('which'),
@jeffreytgilbert
jeffreytgilbert / warnings-filtered-out-of-phantomjs-stream.js
Last active January 1, 2016 13:58
These are the relevant bits to filter the output from a phantomjs instance when it's dumping out warnings from the old Qt library on OS X 10.9 Mavericks, since the phantom lib doesn't look to be getting updated for another 3 months or so.
var stream = require('stream'),
util = require('util');
function FilterThirdPartyWarnings(options){
// allow use without new
if (!(this instanceof FilterThirdPartyWarnings)) {
return new FilterThirdPartyWarnings(options);
}
stream.Transform.call(this, options);
@jeffreytgilbert
jeffreytgilbert / chase-credit-card-page-has-no-balance.js
Created December 30, 2013 19:34
A little script to show the running balance on the chase cc page because they decided it's not important to keep a running balance...
(function(){
var amounts = document.querySelectorAll('#Posted tbody .amount');
var balance = Number(document.querySelector('#AccountDetailTable .card-accountdetailcol tbody tr td:nth-child(2)').innerText.substr(1).replace(',',''));
var iii=0;
var amount = '';
var element = null;
var elementsArray = [];
for(iii=0; iii < amounts.length; iii++) {
element = amounts[iii];
# oh-my-zsh Zen Theme
### Git
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[green]%}%{$reset_color%}%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_no_bold[white]%}☁%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg_no_bold[magenta]%}▴%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg_no_bold[magenta]%}▾%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_no_bold[green]%}✚%{$reset_color%}"
# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
#ZSH_THEME="robbyrussell"
#ZSH_THEME="cloud"
#ZSH_THEME="wedisagree" # throws an error
@jeffreytgilbert
jeffreytgilbert / sized-async-queue.js
Created April 3, 2014 17:00
Example of sized queues, for things like, oh, i don't know, running limited numbers of selenium tests in parallel or downloading images two at a time or whatever.
var runningProcessCount = 0,
processQueuePosition = 1,
processLimit = 2,
totalProcesses = 10;
function throttleProcesses(){
if(processLimit > runningProcessCount){
fakeProcess();
return true;
} else {