Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@jeffsheets
jeffsheets / AjaxlayoutController.groovy
Last active August 29, 2015 13:56
Grails Controller Unit Test to verify layout and template specified in render call
/* action that renders a template back to browser,
* and uses custom simple 'ajax' layout */
def ajaxResults() {
def results = workService.querySomeWork()
render (template: "ajaxResults", model:[results:results as JSON], layout:'ajax')
}
@jeffsheets
jeffsheets / SqlServerTimestampType.java
Created August 1, 2014 17:38
Hibernate Custom Type to use @Version optimistic locking for SQLServer datetime fields that are limited by 1/300th of a second precision
public class SqlServerTimestampType extends TimestampType {
private static final int SQLSERVER_PRECISION = 10;
public SqlServerTimestampType() {
super();
}
/**
* SQLServer datetime fields are accurate to 1/300th of a second.
* We floor to the nearest 1/100th of a second for simplicity.
@jeffsheets
jeffsheets / ProfilePropertiesInitializer.java
Last active August 29, 2015 14:07
Spring Profile specific properties files, similar to Spring Boot (or Grails) properties. This registers application-*.properties for all Active (or Default) spring profiles.
/**
* Register this with the DispatcherServlet in a ServletInitializer class like:
* dispatcherServlet.setContextInitializers(new PropertiesInitializer());
*/
public class PropertiesInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
private static final Logger log = LoggerFactory.getLogger(PropertiesInitializer.class);
/**
* Runs as appInitializer so properties are wired before spring beans
*/
@jeffsheets
jeffsheets / SpringLog4jConfig.java
Created April 2, 2015 20:17
Super Simple Spring Log4j Configuration using different files per environment
@Configuration
public class SpringLog4jConfig {
/**
* Just a property from the normal Spring property sources, like:
* log4j.properties.location=log4j-dev.properties
*/
@Value("${log4j.properties.location}")
String log4jLocation;
@jeffsheets
jeffsheets / protractorFieldSelectionTest.spec.js
Created April 8, 2015 18:13
Protractor spec showing how to test for text selection inside a form input field
/**
* Initially written as a test for IE/Chrome for a bug in ui-mask.
* https://github.com/angular-ui/ui-utils/issues/302
*
* The test verifies that all of the text is selected in an input field when the field is tabbed into
*/
describe('field selection test', function () {
beforeEach (function () {
getRoute('#/app/events');
});
@jeffsheets
jeffsheets / CrazyDoodlePrivacyPolicy.txt
Created April 19, 2015 19:48
Crazy Doodle Privacy Policy
The Crazy Doodle app available on the Amazon Kindle and Google Play stores does NOT collect any information.
@jeffsheets
jeffsheets / sinonKarma.spec.js
Created September 1, 2015 15:17
Simple Karma spec using Sinon to mock a backend service for AngularJS testing
var someService;
beforeEach(inject(function (_someService_) {
someService = sinon.mock(_someService_);
}));
afterEach(function () {
entityServiceFactory.verify();
});
@jeffsheets
jeffsheets / datepicker-focus.js
Created June 5, 2012 18:32
jquery ui datepicker IE focus fix
/*
After jquery ui datepicker selection, blur and change
events fire before focus is returned to the input field,
handling a quirk from IE browsers
*/
$("input.dateInput").datepicker({
changeMonth: true,
changeYear: true,
showAnim: "fadeIn",
@jeffsheets
jeffsheets / jquery.disableMSLync.js
Created June 26, 2012 16:13
jQuery Plugin to disable MS Lync Phone Number detection
/*
The IE Microsoft Lync Plugin puts an icon next to all phone numbers in the html markup.
This causes page layouts to break, especially with scrolling table plugins.
The icon is also included in printouts.
This disableMSLync plugin hides phone numbers from MS Lync by replacing the normal hyphen
with the non-breaking hyphen character code.
*/
@jeffsheets
jeffsheets / module-ex.js
Created August 23, 2012 15:13
JS Module Pattern
//From https://github.com/sjurgemeyer/GR8-US-2012/blob/master/Mobile-and-Grails-ZachLendon/Mobile-and-Grails-ZachLendon.pdf
var module = (function () {
// private variables and functions
var foo = 'bar';
// constructor
var module = function () {
};