Skip to content

Instantly share code, notes, and snippets.

View rickd-uk's full-sized avatar
🏠
Working from home

Rick D rickd-uk

🏠
Working from home
View GitHub Profile
<?php
class Model extends Database
{
protected function validate_empty($data, $field, $err_message = null)
{
if (empty($data[$field])) {
// Use first part of field name in string e.g. currency_id required => currency required
if (empty($err_message)) {
$err_message = explode("_", $field)[0] . ' required';
}
@rickd-uk
rickd-uk / ask-user-permission-to-allow-sound.js
Created February 13, 2022 09:58
Ask User Permission To Allow Sound (JS)
const audio = new Audio( 'https://dl.dropboxusercontent.com/s/h8pvqqol3ovyle8/tom.mp3' );
audio.muted = true;
const alert_elem = document.querySelector( '.alert' );
audio.play().then( () => {
// already allowed
alert_elem.remove();
resetAudio();
} )
@rickd-uk
rickd-uk / ask-user-permission-to-allow-sound.css
Created February 13, 2022 09:58
Ask User Permission To Allow Sound (CSS)
.alert {
font: 14px Arial, sans-serif;
position: fixed;
top: 0;
left: 0;
background: white;
border: 1px solid lightgray;
box-shadow: 3px 3px 12px lightgray;
}
p { margin: 12px; }
@rickd-uk
rickd-uk / ask-user-permission-to-allow-sound.html
Created February 13, 2022 09:58
Ask User Permission To Allow Sound (HTML)
<div class="alert">
<p>This webpage would like to play sounds</p>
<p class="buttons">
<button value="0">Block</button>
<button value="1">Allow</button>
</p>
</div>
<button id="btn">trigger notification</button>
@rickd-uk
rickd-uk / core_vim.md
Created February 6, 2022 04:04
CORE_VIM

HIGHLIGHTING

Turn Off
:noh

Turn Off / On
set nohlsearch
@rickd-uk
rickd-uk / delayed-event.js
Created February 6, 2022 02:33
JS - Delayed Event (Mouseover, Mouseout)
function myDelayedThing() {
var mySelectors = document.querySelectorAll('.something');
// Loop through mySelectors
for(var i = 0; i < menuLinks.length; i++) {
// Add 'open' class on mouseover
menuLinks[i].addEventListener('mouseover', function() {
this.classList.add('open');
@rickd-uk
rickd-uk / random-non-repeating.py
Created February 6, 2022 02:32
Random Non-Repeating
#Whenever an item is selected, move it to the back of the array and randomly select from a slice of the original array array.slice(0, -5).
var a = ["Roger", "Russell", "Clyde", "Egbert", "Clare", "Bobbie", "Simon", "Elizabeth", "Ted", "Caroline"];
var chooseName = function () {
var unique = true;
num = Math.floor(Math.random() * a.length - 5);
name = a.splice(num,1);
a.push(name);
}
@rickd-uk
rickd-uk / Error: Route did not complete loading.txt
Created March 23, 2021 00:47
ERRORS - NEXTJS - ROUTE DID NOT COMPLETE LOADING
* Exception: Error: Route did not complete loading: / at _callee$ (webpack-internal:///./node_modules/next/dist/client/route-loader.js:272:113)
at tryCatch (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:63:40) at Generator.invoke [as _invoke]
(webpack-internal:///./node_modules/regenerator-runtime/runtime.js:293:22) at Generator.eval [as next]
(webpack-internal:///./node_modules/regenerator-runtime/runtime.js:118:21) at asyncGeneratorStep
(webpack-internal:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24) at _next
(webpack-internal:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js:25:9)
* message: "Route did not complete loading: /"
stack: "Error: Route did not complete loading: /↵
at _callee$ (webpack-internal:///./node_modules/next/dist/client/route-loader.js:272:113)↵
at tryCatch (webpack-internal:///./node_modules/regenerator-runtime/runtime.js:63:40)↵
at Generator.invoke [as _invoke] (webpack-internal:///./node_modules/regen
@rickd-uk
rickd-uk / spinner3.sh
Created March 15, 2021 02:36
BASH - SPINNER 3
**ONE MORE SPINNER**
DEFAULT_SpinnerFrames=("—" "\\" "|" "/")
##@function: spinner(action, label, &spinnerFramesRef[])
##
##@description: Perform an action asynchronously and display
##spinner till action is completed
##
##@param action: The action the execute
@rickd-uk
rickd-uk / spinner2.sh
Created March 15, 2021 02:36
BASH SPINNER 2
**ANOTHER SPINNER**
#!/bin/sh
#The command you are waiting on goes between the ( ) here
#The example below returns a non zero return code
(sleep 20 ; /bin/false) &
pid=$! ; i=0