Skip to content

Instantly share code, notes, and snippets.

View adamsilver's full-sized avatar

Adam Silver adamsilver

View GitHub Profile
@adamsilver
adamsilver / Validator.js
Last active August 6, 2020 14:33
Server side form validator component for Express
function Validator(req, res) {
this.req = req;
this.res = res;
this.validators = [];
this.errors = [];
}
Validator.prototype.add = function(name, rules) {
this.validators.push({
name: name,
@adamsilver
adamsilver / option.njk
Created September 18, 2019 12:10
Optional field group with error message and error summary
{{ govukErrorSummary({
titleText: "There is a problem",
errorList: [
{
text: "Enter at least one way to contact the user",
href: "#passport-issued-error"
}
]
}) }}
@adamsilver
adamsilver / gist:93e0636648fd181412e33d8cf1a2e492
Created January 9, 2019 14:29
Fix for rich text editor native contenteditable div etc
onKeyUp(event) {
const div = this.textarea.nativeElement;
const firstChild = div.firstChild;
const lastChild = div.lastChild;
if (
event.keyCode === 13
&& !event.shiftKey
&& firstChild.nodeName.toLowerCase() !== 'p'
) {
@adamsilver
adamsilver / Example (with totals footer)
Last active September 8, 2017 08:01
Table Macros For Nunjucks (requires CSS for inner components and sortable table JS for behaviour)
@adamsilver
adamsilver / Toggler.js
Last active January 17, 2017 15:07
Trying to make simple
function Toggler(button, toggleElement) {
this.toggleElement = toggleElement;
this.showing = true;
button.addEventListener('click', this.onToggleButtonClick.bind(this), false);
}
Toggler.prototype.onToggleButtonClick = function(e) {
this.toggle();
}
@adamsilver
adamsilver / Adoro.Calendar.js
Created October 14, 2016 11:11
Adoro.Calendar
// ---------------------------------------------------------------------------------------------------------
// --- license header; ---
// ---------------------------------------------------------------------------------------------------------
/* Copyright (c) 2008 - 2009 by Adoro Media
info@adoromedia.com
This file is part of Adoro Media open source projects
Adoro Media projects are free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
@adamsilver
adamsilver / HTML Response
Created August 22, 2016 14:45
AJAX File Upload Code
<html>
<head>
<script>
window.onload = function() {
parent.helloworld(200, {"message":"","data":{"current_url":"","name":"Home","page_type":"standard","entity_uuid":null,"page_state":null,"uuid":"f7280510-3cf6-012e-7987-12313d034988","template":null,"asset_uuids":[],"user_uuid":null,"site_uuid":"a682cb70-3cf6-012e-74a4-12313d034988","navigation":false,"locked":false,"style":null}});
}
</script>
</head>
<body></body>
</html>
@adamsilver
adamsilver / JournalEntryView.js
Last active August 5, 2016 14:36
Delegation across different Javascript Objects
var JournalEntryView = function(container) {
this.container = container;
}
JournalEntryView.prototype.onReplyButtonClicked = function(e) {
e.preventDefault();
// ...
};
@adamsilver
adamsilver / Old undelimit without reduce
Last active June 30, 2016 14:13
Reduce used for undelimit
String.prototype.unDelimit = function(delimeters) {
delimeters = delimeters || ["&", "="];
if (delimeters.length === 1)
return this.split(delimeters[0]);
var items = this.split(delimeters[0]),
o = {},
i = 0,
j = items.length,
subItem;
for (i; i<j; i++) {
<div class="subNav js-subNav">
<div class="breadcrumbs js-breadcrumbs">
<a href="#" class="breadcrumb breadcrumb_link">Personal</a>
&gt;
<a href="#" class="breadcrumb breadcrumb_link">Manage</a>
&gt;
<span class="breadcrumb breadcrumb_current">Current account</span>
</div>
<ul class="subNav-secondaryLinks js-subNav-secondaryLinks">