tiistai 22. kesäkuuta 2010

Check if JSON object is undefined

on the callback of jQuery.getJSON(), you want to check if json.myObject is undefined. It's done in a groovy way:
function(json){
if (json.myObject){
// do stuff with myObject
} else {
// do not do stuff with myObject
}
}

Accessing Taglib from Service

From the service:


class MyService {
def grailsApplication

def method() {
def g = grailsApplication.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib')
}
}

...now g can be used just as in GSP files.

Mystical message codes for numerical validation constraints

minSize -> class.prop.minSize.notmet
maxSize -> class.prop.maxSize.exceeded
size -> class.prop.size.toosmall & class.prop.size.toobig

min -> class.prop.min.notmet
max -> class.prop.max.exceeded
range -> class.prop.range.invalid (only if validated value is null), class.prop.size.toosmall , class.prop.size.toobig

perjantai 9. huhtikuuta 2010

Hibernate-plugin refuses to install: A workaround

Failed to install plugin [hibernate-1.2.2]. Plugin has missing JAR dependencies.

How to fix this? No clue, but a workaround is to clear the ~/.ivy2 directory.

tiistai 6. huhtikuuta 2010

Using session-scoped services in Grails' taglib

Using services with session scope in tag libraries does not work in Grails, as per version 1.2.2. There's a fix promised in 1.3.0, but while waiting for it to be released, here's a simple workaround:

import org.springframework.context.ApplicationContextAware
import org.springframework.context.ApplicationContext

class DefaultTagLib implements ApplicationContextAware {
ApplicationContext applicationContext

def someTag = {attrs, body ->
applicationContext.documentService.doSomething()
}
}

maanantai 22. maaliskuuta 2010

Setting environment variables for Grails on OSX

The best place to store environment variables on OS X is /etc/launchd.conf. The contents of that file are accessible by console applications, and also (unlike ~/.bashrc and the like) by desktop applications.

Paths should be defined in /etc/paths.


In /etc/launchd.conf:

setenv JAVA_HOME /Library/Java/Home
setenv GRAILS_HOME /Developer/grails-1.2.1


In /etc/paths:

/Developer/grails-1.2.1/bin

perjantai 19. maaliskuuta 2010

Max-width / max-height in IE


IE does not play nice with max-width and max-height. Here's how to handle it...



/* real browsers */
max-width: 500px;
max-height: 500px;

/* IE */
width: expression(this.width > 499 ? "500px" : "auto");
height: expression(this.height > 499 ? "500px" : "auto");