Skip to content

Instantly share code, notes, and snippets.

View adamculpepper's full-sized avatar

Adam Culpepper adamculpepper

View GitHub Profile
@adamculpepper
adamculpepper / proxy.php
Created July 24, 2020 16:06
PHP Proxy for JSON with wildcard CORS
<?php
header('Access-Control-Allow-Origin: *');
header("Content-Type: application/json; charset=utf-8");
$url = htmlspecialchars($_GET['url']);
if ($url) {
$content = file_get_contents($url);
} else {
$content = 'error';
@adamculpepper
adamculpepper / puppeteer-read-json.js
Last active April 25, 2020 07:17
Puppeteer - Read Local File
const puppeteer = require('puppeteer');
const fs = require('fs');
const util = require('util');
// data
const rawdata = fs.readFileSync('plates.json');
const textDecoder = new util.TextDecoder('utf-8');
const stringData = textDecoder.decode(rawdata);
const objects = JSON.parse(stringData);
console.log(objects);
@adamculpepper
adamculpepper / required-indicator.css
Last active January 14, 2020 20:36
Required field indicator (Bootstrap 4)
.form-group.has-required {position:relative;}
.form-group.has-required:after {
content:'\f069';
font-family:'FontAwesome';
position:absolute;
top:1px;
right:1px;
padding:4px 7px;
text-align:center;
font-size:8px;
@adamculpepper
adamculpepper / moment-snippets.js
Created November 26, 2019 17:06
Moment.JS Snippets
var today = moment();
var tomorrow = moment().add(1, 'day');
var isToday = function(input) {
return moment(input).isSame(today, 'day');
};
var isTomorrow = function(input) {
return moment(input).isSame(tomorrow, 'day');
};
@adamculpepper
adamculpepper / data-watcher.js
Created October 31, 2019 17:46
setInterval Data Watcher
var dataWatcher = setInterval(function() {
var dataComplete = false;
if (dataCompleteGroups == true && dataCompleteEvents == true) {
dataComplete = true;
}
if (dataComplete) {
clearInterval(dataWatcher);
// do stuff
@adamculpepper
adamculpepper / masonry-layout.css
Last active June 3, 2019 16:45
Masonry Layout - CSS only
/* Masonry */
.masonry {column-count:1; column-gap:1.5em; margin:1.5em auto;}
.masonry .item {display:inline-block; margin:0 0 1em; width:100%;}
.masonry .item iframe {max-width:100%;}
/* Large (lg) and up */
@media (min-width:992px) {
.masonry {column-count:2;}
}
@adamculpepper
adamculpepper / gist:b4d63a8f11daa4abd909fb30e927e992
Created November 27, 2018 17:06
jQuery: Updating pseudo element content
<style>
body:after {content:attr(data-content);
</style>
$('body').attr('data-content': 'changed body:after content')
<body data-content="body:after content">
...content...
</body
injectJSFile('../assets/js/script.js');
function injectJSFile(fileURL) {
var script = document.createElement('script');
script.src=fileURL;
script.type='text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
}
var checkExist = setInterval(function() {
if ($('#element').length) {
console.log("Exists!");
clearInterval(checkExist);
}
}, 100); // check every 100ms
//source: https://stackoverflow.com/a/16149679
@adamculpepper
adamculpepper / bootstrap-helpers.css
Last active March 31, 2019 02:53
Bootstrap 4 Helper CSS
/* Bootstrap 4 Helper CSS */
/* Add-on: Bootstrap 4, hidden-{breakpoint}-{up/down} */
/* taken from Bootstrap 4, alpha 6 */
.hidden-xs-up {display:none!important;}
@media (max-width:575px) { .hidden-xs-down {display:none!important;} }
@media (min-width:576px) { .hidden-sm-up {display:none!important;} }
@media (max-width:767px) { .hidden-sm-down {display:none!important;} }
@media (min-width:768px) { .hidden-md-up {display:none!important;} }
@media (max-width:991px) { .hidden-md-down {display:none!important;} }