new page views
authorSven Arnold <sven@schnuppe.(none)>
Sun, 12 Apr 2009 18:58:56 +0000 (20:58 +0200)
committerSven Arnold <sven@schnuppe.(none)>
Sun, 12 Apr 2009 18:58:56 +0000 (20:58 +0200)
50 files changed:
Portal.iws
grails-app/controllers/NewsController.groovy [new file with mode: 0644]
grails-app/controllers/PortalConfigurationController.groovy [new file with mode: 0644]
grails-app/domain/News.groovy [new file with mode: 0644]
grails-app/domain/PortalConfiguration.groovy [new file with mode: 0644]
grails-app/views/news/create.gsp [new file with mode: 0644]
grails-app/views/news/edit.gsp [new file with mode: 0644]
grails-app/views/news/list.gsp [new file with mode: 0644]
grails-app/views/news/show.gsp [new file with mode: 0644]
grails-app/views/page/create.gsp [new file with mode: 0644]
grails-app/views/page/edit.gsp [new file with mode: 0644]
grails-app/views/page/list.gsp [new file with mode: 0644]
grails-app/views/page/show.gsp [new file with mode: 0644]
grails-app/views/portalConfiguration/create.gsp [new file with mode: 0644]
grails-app/views/portalConfiguration/edit.gsp [new file with mode: 0644]
grails-app/views/portalConfiguration/list.gsp [new file with mode: 0644]
grails-app/views/portalConfiguration/show.gsp [new file with mode: 0644]
test/unit/ControllerPageTests.groovy [new file with mode: 0644]
test/unit/HtmlPageTests.groovy [new file with mode: 0644]
test/unit/NewsTests.groovy [new file with mode: 0644]
test/unit/PortalConfigurationTests.groovy [new file with mode: 0644]
web-app/css/blueprint/ie.css [new file with mode: 0644]
web-app/css/blueprint/plugins/buttons/icons/cross.png [new file with mode: 0755]
web-app/css/blueprint/plugins/buttons/icons/key.png [new file with mode: 0755]
web-app/css/blueprint/plugins/buttons/icons/tick.png [new file with mode: 0755]
web-app/css/blueprint/plugins/buttons/readme.txt [new file with mode: 0644]
web-app/css/blueprint/plugins/buttons/screen.css [new file with mode: 0644]
web-app/css/blueprint/plugins/fancy-type/readme.txt [new file with mode: 0644]
web-app/css/blueprint/plugins/fancy-type/screen.css [new file with mode: 0644]
web-app/css/blueprint/plugins/link-icons/icons/doc.png [new file with mode: 0644]
web-app/css/blueprint/plugins/link-icons/icons/email.png [new file with mode: 0644]
web-app/css/blueprint/plugins/link-icons/icons/external.png [new file with mode: 0644]
web-app/css/blueprint/plugins/link-icons/icons/feed.png [new file with mode: 0644]
web-app/css/blueprint/plugins/link-icons/icons/im.png [new file with mode: 0644]
web-app/css/blueprint/plugins/link-icons/icons/pdf.png [new file with mode: 0644]
web-app/css/blueprint/plugins/link-icons/icons/visited.png [new file with mode: 0644]
web-app/css/blueprint/plugins/link-icons/icons/xls.png [new file with mode: 0644]
web-app/css/blueprint/plugins/link-icons/readme.txt [new file with mode: 0644]
web-app/css/blueprint/plugins/link-icons/screen.css [new file with mode: 0644]
web-app/css/blueprint/plugins/rtl/readme.txt [new file with mode: 0644]
web-app/css/blueprint/plugins/rtl/screen.css [new file with mode: 0644]
web-app/css/blueprint/print.css [new file with mode: 0644]
web-app/css/blueprint/screen.css [new file with mode: 0644]
web-app/css/blueprint/src/forms.css [new file with mode: 0644]
web-app/css/blueprint/src/grid.css [new file with mode: 0755]
web-app/css/blueprint/src/grid.png [new file with mode: 0644]
web-app/css/blueprint/src/ie.css [new file with mode: 0644]
web-app/css/blueprint/src/print.css [new file with mode: 0755]
web-app/css/blueprint/src/reset.css [new file with mode: 0755]
web-app/css/blueprint/src/typography.css [new file with mode: 0644]

index d42e4fa..a744a97 100644 (file)
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/grails-app/conf/BootStrap.groovy" afterPath="$PROJECT_DIR$/grails-app/conf/BootStrap.groovy" />
       <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/grails-app/views/page/display.gsp" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/grails-app/views/page/list.gsp" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/grails-app/views/display/index.gsp" afterPath="" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/grails-app/controllers/AttachmentController.groovy" afterPath="$PROJECT_DIR$/grails-app/controllers/AttachmentController.groovy" />
       <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/grails-app/views/admin.gsp" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/grails-app/views/page/show.gsp" afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/grails-app/controllers/AttachmentController.groovy" afterPath="$PROJECT_DIR$/grails-app/controllers/AttachmentController.groovy" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/grails-app/controllers/DisplayController.groovy" afterPath="" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/grails-app/controllers/PageController.groovy" afterPath="$PROJECT_DIR$/grails-app/controllers/PageController.groovy" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/grails-app/views/display/show.gsp" afterPath="" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Portal.iws" afterPath="$PROJECT_DIR$/Portal.iws" />
       <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/grails-app/views/layouts/grey.gsp" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Portal.iws" afterPath="$PROJECT_DIR$/Portal.iws" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/grails-app/views/page/create.gsp" afterPath="" />
     </list>
     <ignored path="Portal.iws" />
diff --git a/grails-app/controllers/NewsController.groovy b/grails-app/controllers/NewsController.groovy
new file mode 100644 (file)
index 0000000..f93521f
--- /dev/null
@@ -0,0 +1,101 @@
+
+
+class NewsController {
+    
+    def index = { redirect(action:list,params:params) }
+
+    // the delete, save and update actions only accept POST requests
+    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
+
+    def list = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ newsInstanceList: News.list( params ), newsInstanceTotal: News.count() ]
+    }
+
+    def show = {
+        def newsInstance = News.get( params.id )
+
+        if(!newsInstance) {
+            flash.message = "News not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ newsInstance : newsInstance ] }
+    }
+
+    def delete = {
+        def newsInstance = News.get( params.id )
+        if(newsInstance) {
+            try {
+                newsInstance.delete()
+                flash.message = "News ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "News ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "News not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def newsInstance = News.get( params.id )
+
+        if(!newsInstance) {
+            flash.message = "News not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ newsInstance : newsInstance ]
+        }
+    }
+
+    def update = {
+        def newsInstance = News.get( params.id )
+        if(newsInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(newsInstance.version > version) {
+                    
+                    newsInstance.errors.rejectValue("version", "news.optimistic.locking.failure", "Another user has updated this News while you were editing.")
+                    render(view:'edit',model:[newsInstance:newsInstance])
+                    return
+                }
+            }
+            newsInstance.properties = params
+            if(!newsInstance.hasErrors() && newsInstance.save()) {
+                flash.message = "News ${params.id} updated"
+                redirect(action:show,id:newsInstance.id)
+            }
+            else {
+                render(view:'edit',model:[newsInstance:newsInstance])
+            }
+        }
+        else {
+            flash.message = "News not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def newsInstance = new News()
+        newsInstance.properties = params
+        return ['newsInstance':newsInstance]
+    }
+
+    def save = {
+        def newsInstance = new News(params)
+        if(!newsInstance.hasErrors() && newsInstance.save()) {
+            flash.message = "News ${newsInstance.id} created"
+            redirect(action:show,id:newsInstance.id)
+        }
+        else {
+            render(view:'create',model:[newsInstance:newsInstance])
+        }
+    }
+
+  
+}
diff --git a/grails-app/controllers/PortalConfigurationController.groovy b/grails-app/controllers/PortalConfigurationController.groovy
new file mode 100644 (file)
index 0000000..6b591da
--- /dev/null
@@ -0,0 +1,99 @@
+
+
+class PortalConfigurationController {
+    
+    def index = { redirect(action:list,params:params) }
+
+    // the delete, save and update actions only accept POST requests
+    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
+
+    def list = {
+        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
+        [ portalConfigurationInstanceList: PortalConfiguration.list( params ), portalConfigurationInstanceTotal: PortalConfiguration.count() ]
+    }
+
+    def show = {
+        def portalConfigurationInstance = PortalConfiguration.get( params.id )
+
+        if(!portalConfigurationInstance) {
+            flash.message = "PortalConfiguration not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else { return [ portalConfigurationInstance : portalConfigurationInstance ] }
+    }
+
+    def delete = {
+        def portalConfigurationInstance = PortalConfiguration.get( params.id )
+        if(portalConfigurationInstance) {
+            try {
+                portalConfigurationInstance.delete()
+                flash.message = "PortalConfiguration ${params.id} deleted"
+                redirect(action:list)
+            }
+            catch(org.springframework.dao.DataIntegrityViolationException e) {
+                flash.message = "PortalConfiguration ${params.id} could not be deleted"
+                redirect(action:show,id:params.id)
+            }
+        }
+        else {
+            flash.message = "PortalConfiguration not found with id ${params.id}"
+            redirect(action:list)
+        }
+    }
+
+    def edit = {
+        def portalConfigurationInstance = PortalConfiguration.get( params.id )
+
+        if(!portalConfigurationInstance) {
+            flash.message = "PortalConfiguration not found with id ${params.id}"
+            redirect(action:list)
+        }
+        else {
+            return [ portalConfigurationInstance : portalConfigurationInstance ]
+        }
+    }
+
+    def update = {
+        def portalConfigurationInstance = PortalConfiguration.get( params.id )
+        if(portalConfigurationInstance) {
+            if(params.version) {
+                def version = params.version.toLong()
+                if(portalConfigurationInstance.version > version) {
+                    
+                    portalConfigurationInstance.errors.rejectValue("version", "portalConfiguration.optimistic.locking.failure", "Another user has updated this PortalConfiguration while you were editing.")
+                    render(view:'edit',model:[portalConfigurationInstance:portalConfigurationInstance])
+                    return
+                }
+            }
+            portalConfigurationInstance.properties = params
+            if(!portalConfigurationInstance.hasErrors() && portalConfigurationInstance.save()) {
+                flash.message = "PortalConfiguration ${params.id} updated"
+                redirect(action:show,id:portalConfigurationInstance.id)
+            }
+            else {
+                render(view:'edit',model:[portalConfigurationInstance:portalConfigurationInstance])
+            }
+        }
+        else {
+            flash.message = "PortalConfiguration not found with id ${params.id}"
+            redirect(action:edit,id:params.id)
+        }
+    }
+
+    def create = {
+        def portalConfigurationInstance = new PortalConfiguration()
+        portalConfigurationInstance.properties = params
+        return ['portalConfigurationInstance':portalConfigurationInstance]
+    }
+
+    def save = {
+        def portalConfigurationInstance = new PortalConfiguration(params)
+        if(!portalConfigurationInstance.hasErrors() && portalConfigurationInstance.save()) {
+            flash.message = "PortalConfiguration ${portalConfigurationInstance.id} created"
+            redirect(action:show,id:portalConfigurationInstance.id)
+        }
+        else {
+            render(view:'create',model:[portalConfigurationInstance:portalConfigurationInstance])
+        }
+    }
+}
diff --git a/grails-app/domain/News.groovy b/grails-app/domain/News.groovy
new file mode 100644 (file)
index 0000000..c59f9af
--- /dev/null
@@ -0,0 +1,8 @@
+class News {
+
+  Date dateCreated
+  String content
+
+    static constraints = {
+    }
+}
diff --git a/grails-app/domain/PortalConfiguration.groovy b/grails-app/domain/PortalConfiguration.groovy
new file mode 100644 (file)
index 0000000..50111d7
--- /dev/null
@@ -0,0 +1,12 @@
+class PortalConfiguration {
+
+  String title
+  String motto
+  String theme
+
+  static constraints = {
+    title(nullable: false)
+    motto(nullable: true)
+    theme(nullable: false)
+  }
+}
diff --git a/grails-app/views/news/create.gsp b/grails-app/views/news/create.gsp
new file mode 100644 (file)
index 0000000..df71410
--- /dev/null
@@ -0,0 +1,56 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Create News</title>         
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">News List</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Create News</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${newsInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${newsInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form action="save" method="post" >
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="content">Content:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:newsInstance,field:'content','errors')}">
+                                    <input type="text" id="content" name="content" value="${fieldValue(bean:newsInstance,field:'content')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="dateCreated">Date Created:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:newsInstance,field:'dateCreated','errors')}">
+                                    <g:datePicker name="dateCreated" value="${newsInstance?.dateCreated}" ></g:datePicker>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><input class="save" type="submit" value="Create" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/news/edit.gsp b/grails-app/views/news/edit.gsp
new file mode 100644 (file)
index 0000000..5688489
--- /dev/null
@@ -0,0 +1,60 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Edit News</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">News List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New News</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Edit News</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${newsInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${newsInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form method="post" >
+                <input type="hidden" name="id" value="${newsInstance?.id}" />
+                <input type="hidden" name="version" value="${newsInstance?.version}" />
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="content">Content:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:newsInstance,field:'content','errors')}">
+                                    <input type="text" id="content" name="content" value="${fieldValue(bean:newsInstance,field:'content')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="dateCreated">Date Created:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:newsInstance,field:'dateCreated','errors')}">
+                                    <g:datePicker name="dateCreated" value="${newsInstance?.dateCreated}" ></g:datePicker>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><g:actionSubmit class="save" value="Update" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/news/list.gsp b/grails-app/views/news/list.gsp
new file mode 100644 (file)
index 0000000..36fe729
--- /dev/null
@@ -0,0 +1,52 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>News List</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="create" action="create">New News</g:link></span>
+        </div>
+        <div class="body">
+            <h1>News List</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="list">
+                <table>
+                    <thead>
+                        <tr>
+                        
+                               <g:sortableColumn property="id" title="Id" />
+                        
+                               <g:sortableColumn property="content" title="Content" />
+                        
+                               <g:sortableColumn property="dateCreated" title="Date Created" />
+                        
+                        </tr>
+                    </thead>
+                    <tbody>
+                    <g:each in="${newsInstanceList}" status="i" var="newsInstance">
+                        <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
+                        
+                            <td><g:link action="show" id="${newsInstance.id}">${fieldValue(bean:newsInstance, field:'id')}</g:link></td>
+                        
+                            <td>${fieldValue(bean:newsInstance, field:'content')}</td>
+                        
+                            <td>${fieldValue(bean:newsInstance, field:'dateCreated')}</td>
+                        
+                        </tr>
+                    </g:each>
+                    </tbody>
+                </table>
+            </div>
+            <div class="paginateButtons">
+                <g:paginate total="${newsInstanceTotal}" />
+            </div>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/news/show.gsp b/grails-app/views/news/show.gsp
new file mode 100644 (file)
index 0000000..d131a78
--- /dev/null
@@ -0,0 +1,58 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Show News</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">News List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New News</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Show News</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="dialog">
+                <table>
+                    <tbody>
+
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Id:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:newsInstance, field:'id')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Content:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:newsInstance, field:'content')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Date Created:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:newsInstance, field:'dateCreated')}</td>
+                            
+                        </tr>
+                    
+                    </tbody>
+                </table>
+            </div>
+            <div class="buttons">
+                <g:form>
+                    <input type="hidden" name="id" value="${newsInstance?.id}" />
+                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </g:form>
+            </div>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/page/create.gsp b/grails-app/views/page/create.gsp
new file mode 100644 (file)
index 0000000..33a6978
--- /dev/null
@@ -0,0 +1,65 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Create Page</title>         
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">Page List</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Create Page</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${pageInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${pageInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form action="save" method="post" >
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="title">Title:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:pageInstance,field:'title','errors')}">
+                                    <input type="text" id="title" name="title" value="${fieldValue(bean:pageInstance,field:'title')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="parent">Parent:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:pageInstance,field:'parent','errors')}">
+                                    <g:select optionKey="id" from="${Page.list()}" name="parent.id" value="${pageInstance?.parent?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="ordinal">Ordinal:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:pageInstance,field:'ordinal','errors')}">
+                                    <input type="text" id="ordinal" name="ordinal" value="${fieldValue(bean:pageInstance,field:'ordinal')}" />
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><input class="save" type="submit" value="Create" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/page/edit.gsp b/grails-app/views/page/edit.gsp
new file mode 100644 (file)
index 0000000..d77b5cd
--- /dev/null
@@ -0,0 +1,69 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Edit Page</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">Page List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New Page</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Edit Page</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${pageInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${pageInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form method="post" >
+                <input type="hidden" name="id" value="${pageInstance?.id}" />
+                <input type="hidden" name="version" value="${pageInstance?.version}" />
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="title">Title:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:pageInstance,field:'title','errors')}">
+                                    <input type="text" id="title" name="title" value="${fieldValue(bean:pageInstance,field:'title')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="parent">Parent:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:pageInstance,field:'parent','errors')}">
+                                    <g:select optionKey="id" from="${Page.list()}" name="parent.id" value="${pageInstance?.parent?.id}" noSelection="['null':'']"></g:select>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="ordinal">Ordinal:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:pageInstance,field:'ordinal','errors')}">
+                                    <input type="text" id="ordinal" name="ordinal" value="${fieldValue(bean:pageInstance,field:'ordinal')}" />
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><g:actionSubmit class="save" value="Update" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/page/list.gsp b/grails-app/views/page/list.gsp
new file mode 100644 (file)
index 0000000..beb39b1
--- /dev/null
@@ -0,0 +1,56 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Page List</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="create" action="create">New Page</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Page List</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="list">
+                <table>
+                    <thead>
+                        <tr>
+                        
+                               <g:sortableColumn property="id" title="Id" />
+                        
+                               <g:sortableColumn property="title" title="Title" />
+                        
+                               <th>Parent</th>
+                           
+                               <g:sortableColumn property="ordinal" title="Ordinal" />
+                        
+                        </tr>
+                    </thead>
+                    <tbody>
+                    <g:each in="${pageInstanceList}" status="i" var="pageInstance">
+                        <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
+                        
+                            <td><g:link action="show" id="${pageInstance.id}">${fieldValue(bean:pageInstance, field:'id')}</g:link></td>
+                        
+                            <td>${fieldValue(bean:pageInstance, field:'title')}</td>
+                        
+                            <td>${fieldValue(bean:pageInstance, field:'parent')}</td>
+                        
+                            <td>${fieldValue(bean:pageInstance, field:'ordinal')}</td>
+                        
+                        </tr>
+                    </g:each>
+                    </tbody>
+                </table>
+            </div>
+            <div class="paginateButtons">
+                <g:paginate total="${pageInstanceTotal}" />
+            </div>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/page/show.gsp b/grails-app/views/page/show.gsp
new file mode 100644 (file)
index 0000000..db6955e
--- /dev/null
@@ -0,0 +1,72 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Show Page</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">Page List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New Page</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Show Page</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="dialog">
+                <table>
+                    <tbody>
+
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Id:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:pageInstance, field:'id')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Title:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:pageInstance, field:'title')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Parent:</td>
+                            
+                          <td valign="top" class="value"><g:link controller="page" action="show" id="${pageInstance?.parent?.id}">${pageInstance?.parent?.title?.encodeAsHTML()}</g:link></td
+
+                        </tr>
+                    
+                    <tr class="prop">
+                        <td valign="top" class="name">Root:</td>
+
+                        <td valign="top" class="value"><g:link controller="page" action="show" id="${pageInstance?.findRoot()?.id}">${pageInstance?.findRoot()?.title?.encodeAsHTML()}</g:link></td>
+
+                    </tr>
+
+                        <tr class="prop">
+                            <td valign="top" class="name">Ordinal:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:pageInstance, field:'ordinal')}</td>
+                            
+                        </tr>
+                    
+                    </tbody>
+                </table>
+            </div>
+            <div class="buttons">
+                <g:form>
+                    <input type="hidden" name="id" value="${pageInstance?.id}" />
+                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </g:form>
+            </div>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/portalConfiguration/create.gsp b/grails-app/views/portalConfiguration/create.gsp
new file mode 100644 (file)
index 0000000..1d37d4b
--- /dev/null
@@ -0,0 +1,65 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Create PortalConfiguration</title>         
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">PortalConfiguration List</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Create PortalConfiguration</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${portalConfigurationInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${portalConfigurationInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form action="save" method="post" >
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="title">Title:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:portalConfigurationInstance,field:'title','errors')}">
+                                    <input type="text" id="title" name="title" value="${fieldValue(bean:portalConfigurationInstance,field:'title')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="motto">Motto:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:portalConfigurationInstance,field:'motto','errors')}">
+                                    <input type="text" id="motto" name="motto" value="${fieldValue(bean:portalConfigurationInstance,field:'motto')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="theme">Theme:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:portalConfigurationInstance,field:'theme','errors')}">
+                                    <g:select id="theme" name="theme" from="${portalConfigurationInstance.constraints.theme.inList}" value="${portalConfigurationInstance.theme}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><input class="save" type="submit" value="Create" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/portalConfiguration/edit.gsp b/grails-app/views/portalConfiguration/edit.gsp
new file mode 100644 (file)
index 0000000..a6c046f
--- /dev/null
@@ -0,0 +1,69 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Edit PortalConfiguration</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">PortalConfiguration List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New PortalConfiguration</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Edit PortalConfiguration</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${portalConfigurationInstance}">
+            <div class="errors">
+                <g:renderErrors bean="${portalConfigurationInstance}" as="list" />
+            </div>
+            </g:hasErrors>
+            <g:form method="post" >
+                <input type="hidden" name="id" value="${portalConfigurationInstance?.id}" />
+                <input type="hidden" name="version" value="${portalConfigurationInstance?.version}" />
+                <div class="dialog">
+                    <table>
+                        <tbody>
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="title">Title:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:portalConfigurationInstance,field:'title','errors')}">
+                                    <input type="text" id="title" name="title" value="${fieldValue(bean:portalConfigurationInstance,field:'title')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="motto">Motto:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:portalConfigurationInstance,field:'motto','errors')}">
+                                    <input type="text" id="motto" name="motto" value="${fieldValue(bean:portalConfigurationInstance,field:'motto')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="theme">Theme:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:portalConfigurationInstance,field:'theme','errors')}">
+                                    <g:select id="theme" name="theme" from="${portalConfigurationInstance.constraints.theme.inList}" value="${portalConfigurationInstance.theme}" ></g:select>
+                                </td>
+                            </tr> 
+                        
+                        </tbody>
+                    </table>
+                </div>
+                <div class="buttons">
+                    <span class="button"><g:actionSubmit class="save" value="Update" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </div>
+            </g:form>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/portalConfiguration/list.gsp b/grails-app/views/portalConfiguration/list.gsp
new file mode 100644 (file)
index 0000000..c4acc67
--- /dev/null
@@ -0,0 +1,56 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>PortalConfiguration List</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="create" action="create">New PortalConfiguration</g:link></span>
+        </div>
+        <div class="body">
+            <h1>PortalConfiguration List</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="list">
+                <table>
+                    <thead>
+                        <tr>
+                        
+                               <g:sortableColumn property="id" title="Id" />
+                        
+                               <g:sortableColumn property="title" title="Title" />
+                        
+                               <g:sortableColumn property="motto" title="Motto" />
+                        
+                               <g:sortableColumn property="theme" title="Theme" />
+                        
+                        </tr>
+                    </thead>
+                    <tbody>
+                    <g:each in="${portalConfigurationInstanceList}" status="i" var="portalConfigurationInstance">
+                        <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
+                        
+                            <td><g:link action="show" id="${portalConfigurationInstance.id}">${fieldValue(bean:portalConfigurationInstance, field:'id')}</g:link></td>
+                        
+                            <td>${fieldValue(bean:portalConfigurationInstance, field:'title')}</td>
+                        
+                            <td>${fieldValue(bean:portalConfigurationInstance, field:'motto')}</td>
+                        
+                            <td>${fieldValue(bean:portalConfigurationInstance, field:'theme')}</td>
+                        
+                        </tr>
+                    </g:each>
+                    </tbody>
+                </table>
+            </div>
+            <div class="paginateButtons">
+                <g:paginate total="${portalConfigurationInstanceTotal}" />
+            </div>
+        </div>
+    </body>
+</html>
diff --git a/grails-app/views/portalConfiguration/show.gsp b/grails-app/views/portalConfiguration/show.gsp
new file mode 100644 (file)
index 0000000..f4ab728
--- /dev/null
@@ -0,0 +1,65 @@
+
+
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+        <meta name="layout" content="main" />
+        <title>Show PortalConfiguration</title>
+    </head>
+    <body>
+        <div class="nav">
+            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
+            <span class="menuButton"><g:link class="list" action="list">PortalConfiguration List</g:link></span>
+            <span class="menuButton"><g:link class="create" action="create">New PortalConfiguration</g:link></span>
+        </div>
+        <div class="body">
+            <h1>Show PortalConfiguration</h1>
+            <g:if test="${flash.message}">
+            <div class="message">${flash.message}</div>
+            </g:if>
+            <div class="dialog">
+                <table>
+                    <tbody>
+
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Id:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:portalConfigurationInstance, field:'id')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Title:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:portalConfigurationInstance, field:'title')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Motto:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:portalConfigurationInstance, field:'motto')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Theme:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:portalConfigurationInstance, field:'theme')}</td>
+                            
+                        </tr>
+                    
+                    </tbody>
+                </table>
+            </div>
+            <div class="buttons">
+                <g:form>
+                    <input type="hidden" name="id" value="${portalConfigurationInstance?.id}" />
+                    <span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
+                    <span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
+                </g:form>
+            </div>
+        </div>
+    </body>
+</html>
diff --git a/test/unit/ControllerPageTests.groovy b/test/unit/ControllerPageTests.groovy
new file mode 100644 (file)
index 0000000..8ddcec7
--- /dev/null
@@ -0,0 +1,15 @@
+import grails.test.*
+
+class ControllerPageTests extends GrailsUnitTestCase {
+    protected void setUp() {
+        super.setUp()
+    }
+
+    protected void tearDown() {
+        super.tearDown()
+    }
+
+    void testSomething() {
+
+    }
+}
diff --git a/test/unit/HtmlPageTests.groovy b/test/unit/HtmlPageTests.groovy
new file mode 100644 (file)
index 0000000..f7a5fe1
--- /dev/null
@@ -0,0 +1,15 @@
+import grails.test.*
+
+class HtmlPageTests extends GrailsUnitTestCase {
+    protected void setUp() {
+        super.setUp()
+    }
+
+    protected void tearDown() {
+        super.tearDown()
+    }
+
+    void testSomething() {
+
+    }
+}
diff --git a/test/unit/NewsTests.groovy b/test/unit/NewsTests.groovy
new file mode 100644 (file)
index 0000000..8353d76
--- /dev/null
@@ -0,0 +1,15 @@
+import grails.test.*
+
+class NewsTests extends GrailsUnitTestCase {
+    protected void setUp() {
+        super.setUp()
+    }
+
+    protected void tearDown() {
+        super.tearDown()
+    }
+
+    void testSomething() {
+
+    }
+}
diff --git a/test/unit/PortalConfigurationTests.groovy b/test/unit/PortalConfigurationTests.groovy
new file mode 100644 (file)
index 0000000..aa9434d
--- /dev/null
@@ -0,0 +1,15 @@
+import grails.test.*
+
+class PortalConfigurationTests extends GrailsUnitTestCase {
+    protected void setUp() {
+        super.setUp()
+    }
+
+    protected void tearDown() {
+        super.tearDown()
+    }
+
+    void testSomething() {
+
+    }
+}
diff --git a/web-app/css/blueprint/ie.css b/web-app/css/blueprint/ie.css
new file mode 100644 (file)
index 0000000..eee142f
--- /dev/null
@@ -0,0 +1,26 @@
+/* -----------------------------------------------------------------------
+
+
+ Blueprint CSS Framework 0.8
+ http://blueprintcss.org
+
+   * Copyright (c) 2007-Present. See LICENSE for more info.
+   * See README for instructions on how to use Blueprint.
+   * For credits and origins, see AUTHORS.
+   * This is a compressed file. See the sources in the 'src' directory.
+
+----------------------------------------------------------------------- */
+
+/* ie.css */
+body {text-align:center;}
+.container {text-align:left;}
+* html .column, * html div.span-1, * html div.span-2, * html div.span-3, * html div.span-4, * html div.span-5, * html div.span-6, * html div.span-7, * html div.span-8, * html div.span-9, * html div.span-10, * html div.span-11, * html div.span-12, * html div.span-13, * html div.span-14, * html div.span-15, * html div.span-16, * html div.span-17, * html div.span-18, * html div.span-19, * html div.span-20, * html div.span-21, * html div.span-22, * html div.span-23, * html div.span-24 {overflow-x:hidden;}
+* html legend {margin:0px -8px 16px 0;padding:0;}
+ol {margin-left:2em;}
+sup {vertical-align:text-top;}
+sub {vertical-align:text-bottom;}
+html>body p code {*white-space:normal;}
+hr {margin:-8px auto 11px;}
+.clearfix, .container {display:inline-block;}
+* html .clearfix, * html .container {height:1%;}
+fieldset {padding-top:0;}
\ No newline at end of file
diff --git a/web-app/css/blueprint/plugins/buttons/icons/cross.png b/web-app/css/blueprint/plugins/buttons/icons/cross.png
new file mode 100755 (executable)
index 0000000..1514d51
Binary files /dev/null and b/web-app/css/blueprint/plugins/buttons/icons/cross.png differ
diff --git a/web-app/css/blueprint/plugins/buttons/icons/key.png b/web-app/css/blueprint/plugins/buttons/icons/key.png
new file mode 100755 (executable)
index 0000000..a9d5e4f
Binary files /dev/null and b/web-app/css/blueprint/plugins/buttons/icons/key.png differ
diff --git a/web-app/css/blueprint/plugins/buttons/icons/tick.png b/web-app/css/blueprint/plugins/buttons/icons/tick.png
new file mode 100755 (executable)
index 0000000..a9925a0
Binary files /dev/null and b/web-app/css/blueprint/plugins/buttons/icons/tick.png differ
diff --git a/web-app/css/blueprint/plugins/buttons/readme.txt b/web-app/css/blueprint/plugins/buttons/readme.txt
new file mode 100644 (file)
index 0000000..a8c2b57
--- /dev/null
@@ -0,0 +1,32 @@
+Buttons
+
+* Gives you great looking CSS buttons, for both <a> and <button>.
+* Demo: particletree.com/features/rediscovering-the-button-element
+
+
+Credits
+----------------------------------------------------------------
+
+* Created by Kevin Hale [particletree.com]
+* Adapted for Blueprint by Olav Bjorkoy [bjorkoy.com]
+
+
+Usage
+----------------------------------------------------------------
+
+1) Add this plugin to lib/settings.yml.
+   See compress.rb for instructions.
+
+2) Use the following HTML code to place the buttons on your site:
+
+       <button type="submit" class="button positive">
+         <img src="css/blueprint/plugins/buttons/icons/tick.png" alt=""/> Save
+       </button>
+
+       <a class="button" href="/password/reset/">
+         <img src="css/blueprint/plugins/buttons/icons/key.png" alt=""/> Change Password
+       </a>
+
+       <a href="#" class="button negative">
+         <img src="css/blueprint/plugins/buttons/icons/cross.png" alt=""/> Cancel
+       </a>
diff --git a/web-app/css/blueprint/plugins/buttons/screen.css b/web-app/css/blueprint/plugins/buttons/screen.css
new file mode 100644 (file)
index 0000000..bb66b21
--- /dev/null
@@ -0,0 +1,97 @@
+/* -------------------------------------------------------------- 
+  
+   buttons.css
+   * Gives you some great CSS-only buttons.
+   
+   Created by Kevin Hale [particletree.com]
+   * particletree.com/features/rediscovering-the-button-element
+
+   See Readme.txt in this folder for instructions.
+
+-------------------------------------------------------------- */
+
+a.button, button {
+  display:block;
+  float:left;
+  margin: 0.7em 0.5em 0.7em 0;
+  padding:5px 10px 5px 7px;   /* Links */
+  
+  border:1px solid #dedede;
+  border-top:1px solid #eee;
+  border-left:1px solid #eee;
+
+  background-color:#f5f5f5;
+  font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
+  font-size:100%;
+  line-height:130%;
+  text-decoration:none;
+  font-weight:bold;
+  color:#565656;
+  cursor:pointer;
+}
+button {
+  width:auto;
+  overflow:visible;
+  padding:4px 10px 3px 7px;   /* IE6 */
+}
+button[type] {
+  padding:4px 10px 4px 7px;   /* Firefox */
+  line-height:17px;           /* Safari */
+}
+*:first-child+html button[type] {
+  padding:4px 10px 3px 7px;   /* IE7 */
+}
+button img, a.button img{
+  margin:0 3px -3px 0 !important;
+  padding:0;
+  border:none;
+  width:16px;
+  height:16px;
+  float:none;
+}
+
+
+/* Button colors
+-------------------------------------------------------------- */
+
+/* Standard */
+button:hover, a.button:hover{
+  background-color:#dff4ff;
+  border:1px solid #c2e1ef;
+  color:#336699;
+}
+a.button:active{
+  background-color:#6299c5;
+  border:1px solid #6299c5;
+  color:#fff;
+}
+
+/* Positive */
+body .positive {
+  color:#529214;
+}
+a.positive:hover, button.positive:hover {
+  background-color:#E6EFC2;
+  border:1px solid #C6D880;
+  color:#529214;
+}
+a.positive:active {
+  background-color:#529214;
+  border:1px solid #529214;
+  color:#fff;
+}
+
+/* Negative */
+body .negative {
+  color:#d12f19;
+}
+a.negative:hover, button.negative:hover {
+  background-color:#fbe3e4;
+  border:1px solid #fbc2c4;
+  color:#d12f19;
+}
+a.negative:active {
+  background-color:#d12f19;
+  border:1px solid #d12f19;
+  color:#fff;
+}
diff --git a/web-app/css/blueprint/plugins/fancy-type/readme.txt b/web-app/css/blueprint/plugins/fancy-type/readme.txt
new file mode 100644 (file)
index 0000000..85f2491
--- /dev/null
@@ -0,0 +1,14 @@
+Fancy Type
+
+* Gives you classes to use if you'd like some 
+  extra fancy typography. 
+
+Credits and instructions are specified above each class
+in the fancy-type.css file in this directory.
+
+
+Usage
+----------------------------------------------------------------
+
+1) Add this plugin to lib/settings.yml.
+   See compress.rb for instructions.
diff --git a/web-app/css/blueprint/plugins/fancy-type/screen.css b/web-app/css/blueprint/plugins/fancy-type/screen.css
new file mode 100644 (file)
index 0000000..028e05b
--- /dev/null
@@ -0,0 +1,71 @@
+/* -------------------------------------------------------------- \r
+  \r
+   fancy-type.css\r
+   * Lots of pretty advanced classes for manipulating text.\r
+   \r
+   See the Readme file in this folder for additional instructions.\r
+\r
+-------------------------------------------------------------- */\r
+\r
+/* Indentation instead of line shifts for sibling paragraphs. */\r
+   p + p { text-indent:2em; margin-top:-1.5em; }\r
+   form p + p  { text-indent: 0; } /* Don't want this in forms. */\r
+   \r
+\r
+/* For great looking type, use this code instead of asdf: \r
+   <span class="alt">asdf</span>  \r
+   Best used on prepositions and ampersands. */\r
+  \r
+.alt { \r
+  color: #666; \r
+  font-family: "Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua", Georgia, serif; \r
+  font-style: italic;\r
+  font-weight: normal;\r
+}\r
+\r
+\r
+/* For great looking quote marks in titles, replace "asdf" with:\r
+   <span class="dquo">&#8220;</span>asdf&#8221;\r
+   (That is, when the title starts with a quote mark). \r
+   (You may have to change this value depending on your font size). */  \r
+   \r
+.dquo { margin-left: -.5em; } \r
+\r
+\r
+/* Reduced size type with incremental leading\r
+   (http://www.markboulton.co.uk/journal/comments/incremental_leading/)\r
+\r
+   This could be used for side notes. For smaller type, you don't necessarily want to \r
+   follow the 1.5x vertical rhythm -- the line-height is too much. \r
+   \r
+   Using this class, it reduces your font size and line-height so that for \r
+   every four lines of normal sized type, there is five lines of the sidenote. eg:\r
+\r
+   New type size in em's:\r
+     10px (wanted side note size) / 12px (existing base size) = 0.8333 (new type size in ems)\r
+\r
+   New line-height value:\r
+     12px x 1.5 = 18px (old line-height)\r
+     18px x 4 = 72px \r
+     72px / 5 = 14.4px (new line height)\r
+     14.4px / 10px = 1.44 (new line height in em's) */\r
+\r
+p.incr, .incr p {\r
+       font-size: 10px;\r
+       line-height: 1.44em;  \r
+       margin-bottom: 1.5em;\r
+}\r
+\r
+\r
+/* Surround uppercase words and abbreviations with this class.\r
+   Based on work by Jørgen Arnor GÃ¥rdsø Lom [http://twistedintellect.com/] */\r
+   \r
+.caps { \r
+  font-variant: small-caps; \r
+  letter-spacing: 1px; \r
+  text-transform: lowercase; \r
+  font-size:1.2em;\r
+  line-height:1%;\r
+  font-weight:bold;\r
+  padding:0 2px;\r
+}\r
diff --git a/web-app/css/blueprint/plugins/link-icons/icons/doc.png b/web-app/css/blueprint/plugins/link-icons/icons/doc.png
new file mode 100644 (file)
index 0000000..834cdfa
Binary files /dev/null and b/web-app/css/blueprint/plugins/link-icons/icons/doc.png differ
diff --git a/web-app/css/blueprint/plugins/link-icons/icons/email.png b/web-app/css/blueprint/plugins/link-icons/icons/email.png
new file mode 100644 (file)
index 0000000..7348aed
Binary files /dev/null and b/web-app/css/blueprint/plugins/link-icons/icons/email.png differ
diff --git a/web-app/css/blueprint/plugins/link-icons/icons/external.png b/web-app/css/blueprint/plugins/link-icons/icons/external.png
new file mode 100644 (file)
index 0000000..cf1cfb4
Binary files /dev/null and b/web-app/css/blueprint/plugins/link-icons/icons/external.png differ
diff --git a/web-app/css/blueprint/plugins/link-icons/icons/feed.png b/web-app/css/blueprint/plugins/link-icons/icons/feed.png
new file mode 100644 (file)
index 0000000..315c4f4
Binary files /dev/null and b/web-app/css/blueprint/plugins/link-icons/icons/feed.png differ
diff --git a/web-app/css/blueprint/plugins/link-icons/icons/im.png b/web-app/css/blueprint/plugins/link-icons/icons/im.png
new file mode 100644 (file)
index 0000000..79f35cc
Binary files /dev/null and b/web-app/css/blueprint/plugins/link-icons/icons/im.png differ
diff --git a/web-app/css/blueprint/plugins/link-icons/icons/pdf.png b/web-app/css/blueprint/plugins/link-icons/icons/pdf.png
new file mode 100644 (file)
index 0000000..8f8095e
Binary files /dev/null and b/web-app/css/blueprint/plugins/link-icons/icons/pdf.png differ
diff --git a/web-app/css/blueprint/plugins/link-icons/icons/visited.png b/web-app/css/blueprint/plugins/link-icons/icons/visited.png
new file mode 100644 (file)
index 0000000..ebf206d
Binary files /dev/null and b/web-app/css/blueprint/plugins/link-icons/icons/visited.png differ
diff --git a/web-app/css/blueprint/plugins/link-icons/icons/xls.png b/web-app/css/blueprint/plugins/link-icons/icons/xls.png
new file mode 100644 (file)
index 0000000..b977d7e
Binary files /dev/null and b/web-app/css/blueprint/plugins/link-icons/icons/xls.png differ
diff --git a/web-app/css/blueprint/plugins/link-icons/readme.txt b/web-app/css/blueprint/plugins/link-icons/readme.txt
new file mode 100644 (file)
index 0000000..3cb1b2c
--- /dev/null
@@ -0,0 +1,18 @@
+Link Icons
+* Icons for links based on protocol or file type.
+
+This is not supported in IE versions < 7.
+
+
+Credits
+----------------------------------------------------------------
+
+* Marc Morgan
+* Olav Bjorkoy  [bjorkoy.com]
+
+
+Usage
+----------------------------------------------------------------
+
+1) Add this line to your HTML:
+        <link rel="stylesheet" href="css/blueprint/plugins/link-icons/screen.css" type="text/css" media="screen, projection">  
\ No newline at end of file
diff --git a/web-app/css/blueprint/plugins/link-icons/screen.css b/web-app/css/blueprint/plugins/link-icons/screen.css
new file mode 100644 (file)
index 0000000..6d3d47f
--- /dev/null
@@ -0,0 +1,40 @@
+/* -------------------------------------------------------------- 
+  
+   link-icons.css
+   * Icons for links based on protocol or file type.
+   
+   See the Readme file in this folder for additional instructions.
+
+-------------------------------------------------------------- */
+
+/* Use this class if a link gets an icon when it shouldn't. */
+body a.noicon { 
+       background:transparent none !important; 
+       padding:0 !important; 
+       margin:0 !important; 
+}
+
+/* Make sure the icons are not cut */
+a[href^="http:"], a[href^="mailto:"], a[href^="http:"]:visited, 
+a[href$=".pdf"], a[href$=".doc"], a[href$=".xls"], a[href$=".rss"], 
+a[href$=".rdf"], a[href^="aim:"] {
+  padding:2px 22px 2px 0;
+  margin:-2px 0;
+  background-repeat: no-repeat;
+  background-position: right center;
+}
+
+/* External links */
+a[href^="http:"]          { background-image: url(icons/external.png); } 
+a[href^="mailto:"]        { background-image: url(icons/email.png); }
+a[href^="http:"]:visited  { background-image: url(icons/visited.png); }
+
+/* Files */
+a[href$=".pdf"]   { background-image: url(icons/pdf.png); }  
+a[href$=".doc"]   { background-image: url(icons/doc.png); }  
+a[href$=".xls"]   { background-image: url(icons/xls.png); }  
+/* Misc */
+a[href$=".rss"], 
+a[href$=".rdf"]   { background-image: url(icons/feed.png); }
+a[href^="aim:"]   { background-image: url(icons/im.png); }
\ No newline at end of file
diff --git a/web-app/css/blueprint/plugins/rtl/readme.txt b/web-app/css/blueprint/plugins/rtl/readme.txt
new file mode 100644 (file)
index 0000000..4c46535
--- /dev/null
@@ -0,0 +1,10 @@
+RTL
+* Mirrors Blueprint, so it can be used with Right-to-Left languages.
+
+By Ran Yaniv Hartstein, ranh.co.il
+
+Usage
+----------------------------------------------------------------
+
+1) Add this line to your HTML:
+   <link rel="stylesheet" href="css/blueprint/plugins/rtl/screen.css" type="text/css" media="screen, projection">      
\ No newline at end of file
diff --git a/web-app/css/blueprint/plugins/rtl/screen.css b/web-app/css/blueprint/plugins/rtl/screen.css
new file mode 100644 (file)
index 0000000..0304477
--- /dev/null
@@ -0,0 +1,109 @@
+/* --------------------------------------------------------------
+
+   rtl.css
+   * Mirrors Blueprint for left-to-right languages
+   
+   By Ran Yaniv Hartstein [ranh.co.il]
+   
+-------------------------------------------------------------- */
+
+body .container { direction: rtl; }
+body .column {
+  float: right;
+  margin-right: 0;
+  margin-left: 10px;
+}
+
+body div.last { margin-left: 0; }
+body table .last { padding-left: 0; }
+
+body .append-1   { padding-right: 0; padding-left: 40px; }  
+body .append-2   { padding-right: 0; padding-left: 80px; }
+body .append-3   { padding-right: 0; padding-left: 120px; }
+body .append-4   { padding-right: 0; padding-left: 160px; }
+body .append-5   { padding-right: 0; padding-left: 200px; }
+body .append-6   { padding-right: 0; padding-left: 240px; }
+body .append-7   { padding-right: 0; padding-left: 280px; }
+body .append-8   { padding-right: 0; padding-left: 320px; }
+body .append-9   { padding-right: 0; padding-left: 360px; }
+body .append-10  { padding-right: 0; padding-left: 400px; }
+body .append-11  { padding-right: 0; padding-left: 440px; }
+body .append-12  { padding-right: 0; padding-left: 480px; }
+body .append-13  { padding-right: 0; padding-left: 520px; }
+body .append-14  { padding-right: 0; padding-left: 560px; }
+body .append-15  { padding-right: 0; padding-left: 600px; }
+body .append-16  { padding-right: 0; padding-left: 640px; }
+body .append-17  { padding-right: 0; padding-left: 680px; }
+body .append-18  { padding-right: 0; padding-left: 720px; }
+body .append-19  { padding-right: 0; padding-left: 760px; }
+body .append-20  { padding-right: 0; padding-left: 800px; }
+body .append-21  { padding-right: 0; padding-left: 840px; }
+body .append-22  { padding-right: 0; padding-left: 880px; }
+body .append-23  { padding-right: 0; padding-left: 920px; }
+
+body .prepend-1   { padding-left: 0; padding-right: 40px; }  
+body .prepend-2   { padding-left: 0; padding-right: 80px; }
+body .prepend-3   { padding-left: 0; padding-right: 120px; }
+body .prepend-4   { padding-left: 0; padding-right: 160px; }
+body .prepend-5   { padding-left: 0; padding-right: 200px; }
+body .prepend-6   { padding-left: 0; padding-right: 240px; }
+body .prepend-7   { padding-left: 0; padding-right: 280px; }
+body .prepend-8   { padding-left: 0; padding-right: 320px; }
+body .prepend-9   { padding-left: 0; padding-right: 360px; }
+body .prepend-10  { padding-left: 0; padding-right: 400px; }
+body .prepend-11  { padding-left: 0; padding-right: 440px; }
+body .prepend-12  { padding-left: 0; padding-right: 480px; }
+body .prepend-13  { padding-left: 0; padding-right: 520px; }
+body .prepend-14  { padding-left: 0; padding-right: 560px; }
+body .prepend-15  { padding-left: 0; padding-right: 600px; }
+body .prepend-16  { padding-left: 0; padding-right: 640px; }
+body .prepend-17  { padding-left: 0; padding-right: 680px; }
+body .prepend-18  { padding-left: 0; padding-right: 720px; }
+body .prepend-19  { padding-left: 0; padding-right: 760px; }
+body .prepend-20  { padding-left: 0; padding-right: 800px; }
+body .prepend-21  { padding-left: 0; padding-right: 840px; }
+body .prepend-22  { padding-left: 0; padding-right: 880px; }
+body .prepend-23  { padding-left: 0; padding-right: 920px; }
+
+body .border {
+  padding-right: 0;
+  padding-left: 4px;
+  margin-right: 0;
+  margin-left: 5px;
+  border-right: none;
+  border-left: 1px solid #eee;
+}
+
+body .colborder {
+  padding-right: 0;
+  padding-left: 24px;
+  margin-right: 0;
+  margin-left: 25px;
+  border-right: none;
+  border-left: 1px solid #eee;
+}
+
+body .pull-1  { margin-left: 0; margin-right: -40px; }
+body .pull-2  { margin-left: 0; margin-right: -80px; }
+body .pull-3  { margin-left: 0; margin-right: -120px; }
+body .pull-4  { margin-left: 0; margin-right: -160px; }
+
+body .push-0  { margin: 0 18px 0 0; }
+body .push-1  { margin: 0 18px 0 -40px; }
+body .push-2  { margin: 0 18px 0 -80px; }
+body .push-3  { margin: 0 18px 0 -120px; }
+body .push-4  { margin: 0 18px 0 -160px; }
+body .push-0, body .push-1, body .push-2,
+body .push-3, body .push-4 { float: left; }
+
+
+/* Typography with RTL support */
+body h1,body h2,body h3,
+body h4,body h5,body h6 { font-family: Arial, sans-serif; }
+html body { font-family: Arial, sans-serif;  }
+body pre,body code,body tt { font-family: monospace; }
+
+/* Mirror floats and margins on typographic elements */
+body p img { float: right; margin: 1.5em 0 1.5em 1.5em; }
+body dd, body ul, body ol { margin-left: 0; margin-right: 1.5em;}
+body td, body th { text-align:right; }
\ No newline at end of file
diff --git a/web-app/css/blueprint/print.css b/web-app/css/blueprint/print.css
new file mode 100644 (file)
index 0000000..e4a7973
--- /dev/null
@@ -0,0 +1,30 @@
+/* -----------------------------------------------------------------------
+
+
+ Blueprint CSS Framework 0.8
+ http://blueprintcss.org
+
+   * Copyright (c) 2007-Present. See LICENSE for more info.
+   * See README for instructions on how to use Blueprint.
+   * For credits and origins, see AUTHORS.
+   * This is a compressed file. See the sources in the 'src' directory.
+
+----------------------------------------------------------------------- */
+
+/* print.css */
+body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;}
+.container {background:none;}
+hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;}
+hr.space {background:#fff;color:#fff;}
+h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;}
+code {font:.9em "Courier New", Monaco, Courier, monospace;}
+img {float:left;margin:1.5em 1.5em 1.5em 0;}
+a img {border:none;}
+p img.top {margin-top:0;}
+blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;}
+.small {font-size:.9em;}
+.large {font-size:1.1em;}
+.quiet {color:#999;}
+.hide {display:none;}
+a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;}
+a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;}
\ No newline at end of file
diff --git a/web-app/css/blueprint/screen.css b/web-app/css/blueprint/screen.css
new file mode 100644 (file)
index 0000000..4bd2bfe
--- /dev/null
@@ -0,0 +1,258 @@
+/* -----------------------------------------------------------------------
+
+
+ Blueprint CSS Framework 0.8
+ http://blueprintcss.org
+
+   * Copyright (c) 2007-Present. See LICENSE for more info.
+   * See README for instructions on how to use Blueprint.
+   * For credits and origins, see AUTHORS.
+   * This is a compressed file. See the sources in the 'src' directory.
+
+----------------------------------------------------------------------- */
+
+/* reset.css */
+html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
+body {line-height:1.5;}
+table {border-collapse:separate;border-spacing:0;}
+caption, th, td {text-align:left;font-weight:normal;}
+table, td, th {vertical-align:middle;}
+blockquote:before, blockquote:after, q:before, q:after {content:"";}
+blockquote, q {quotes:"" "";}
+a img {border:none;}
+
+/* typography.css */
+body {font-size:75%;color:#fff;background:#9c9d9f;font-family:"Verdana", "Helvetica Neue", Helvetica, sans-serif;}
+h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#fff;}
+h1 {font-size:2.2em;margin-bottom:0.5em;}
+h2 {font-size:2em;margin-bottom:0.75em;}
+h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
+h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
+h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
+h6 {font-size:1em;font-weight:bold;}
+h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
+p {margin:0 0 1.5em;}
+p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
+p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
+a:focus, a:hover {color:#000;}
+a {color: inherit; text-decoration: none;}
+blockquote {margin:1.5em;color:#666;font-style:italic;}
+strong {font-weight:bold;}
+em, dfn {font-style:italic;}
+dfn {font-weight:bold;}
+sup, sub {line-height:0;}
+abbr, acronym {border-bottom:1px dotted #666;}
+address {margin:0 0 1.5em;font-style:italic;}
+del {color:#666;}
+pre {margin:1.5em 0;white-space:pre;}
+pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;}
+li ul, li ol {margin:0 1.5em;}
+ul, ol {margin:0 1.5em 1.5em 1.5em;}
+ul {list-style-type:disc;}
+ol {list-style-type:decimal;}
+dl {margin:0 0 1.5em 0;}
+dl dt {font-weight:bold;}
+dd {margin-left:1.5em;}
+table {margin-bottom:1.4em;width:100%;}
+th {font-weight:bold;}
+thead th {background:#c3d9ff;}
+th, td, caption {padding:4px 10px 4px 5px;}
+tr.even td {background:#e5ecf9;}
+tfoot {font-style:italic;}
+caption {background:#eee;}
+.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;}
+.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
+.hide {display:none;}
+.quiet {color:#666;}
+.loud {color:#000;}
+.highlight {background:#ff0;}
+.added {background:#060;color:#fff;}
+.removed {background:#900;color:#fff;}
+.first {margin-left:0;padding-left:0;}
+.last {margin-right:0;padding-right:0;}
+.top {margin-top:0;padding-top:0;}
+.bottom {margin-bottom:0;padding-bottom:0;}
+
+/* grid.css */
+.container {width:950px;margin:0 auto;}
+.showgrid {background:url(src/grid.png);}
+.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 {float:left;margin-right:10px;}
+.last, div.last {margin-right:0;}
+.span-1 {width:30px;}
+.span-2 {width:70px;}
+.span-3 {width:110px;}
+.span-4 {width:150px;}
+.span-5 {width:190px;}
+.span-6 {width:230px;}
+.span-7 {width:270px;}
+.span-8 {width:310px;}
+.span-9 {width:350px;}
+.span-10 {width:390px;}
+.span-11 {width:430px;}
+.span-12 {width:470px;}
+.span-13 {width:510px;}
+.span-14 {width:550px;}
+.span-15 {width:590px;}
+.span-16 {width:630px;}
+.span-17 {width:670px;}
+.span-18 {width:710px;}
+.span-19 {width:750px;}
+.span-20 {width:790px;}
+.span-21 {width:830px;}
+.span-22 {width:870px;}
+.span-23 {width:910px;}
+.span-24, div.span-24 {width:950px;margin:0;}
+input.span-1, textarea.span-1, select.span-1 {width:30px!important;}
+input.span-2, textarea.span-2, select.span-2 {width:50px!important;}
+input.span-3, textarea.span-3, select.span-3 {width:90px!important;}
+input.span-4, textarea.span-4, select.span-4 {width:130px!important;}
+input.span-5, textarea.span-5, select.span-5 {width:170px!important;}
+input.span-6, textarea.span-6, select.span-6 {width:210px!important;}
+input.span-7, textarea.span-7, select.span-7 {width:250px!important;}
+input.span-8, textarea.span-8, select.span-8 {width:290px!important;}
+input.span-9, textarea.span-9, select.span-9 {width:330px!important;}
+input.span-10, textarea.span-10, select.span-10 {width:370px!important;}
+input.span-11, textarea.span-11, select.span-11 {width:410px!important;}
+input.span-12, textarea.span-12, select.span-12 {width:450px!important;}
+input.span-13, textarea.span-13, select.span-13 {width:490px!important;}
+input.span-14, textarea.span-14, select.span-14 {width:530px!important;}
+input.span-15, textarea.span-15, select.span-15 {width:570px!important;}
+input.span-16, textarea.span-16, select.span-16 {width:610px!important;}
+input.span-17, textarea.span-17, select.span-17 {width:650px!important;}
+input.span-18, textarea.span-18, select.span-18 {width:690px!important;}
+input.span-19, textarea.span-19, select.span-19 {width:730px!important;}
+input.span-20, textarea.span-20, select.span-20 {width:770px!important;}
+input.span-21, textarea.span-21, select.span-21 {width:810px!important;}
+input.span-22, textarea.span-22, select.span-22 {width:850px!important;}
+input.span-23, textarea.span-23, select.span-23 {width:890px!important;}
+input.span-24, textarea.span-24, select.span-24 {width:940px!important;}
+.append-1 {padding-right:40px;}
+.append-2 {padding-right:80px;}
+.append-3 {padding-right:120px;}
+.append-4 {padding-right:160px;}
+.append-5 {padding-right:200px;}
+.append-6 {padding-right:240px;}
+.append-7 {padding-right:280px;}
+.append-8 {padding-right:320px;}
+.append-9 {padding-right:360px;}
+.append-10 {padding-right:400px;}
+.append-11 {padding-right:440px;}
+.append-12 {padding-right:480px;}
+.append-13 {padding-right:520px;}
+.append-14 {padding-right:560px;}
+.append-15 {padding-right:600px;}
+.append-16 {padding-right:640px;}
+.append-17 {padding-right:680px;}
+.append-18 {padding-right:720px;}
+.append-19 {padding-right:760px;}
+.append-20 {padding-right:800px;}
+.append-21 {padding-right:840px;}
+.append-22 {padding-right:880px;}
+.append-23 {padding-right:920px;}
+.prepend-1 {padding-left:40px;}
+.prepend-2 {padding-left:80px;}
+.prepend-3 {padding-left:120px;}
+.prepend-4 {padding-left:160px;}
+.prepend-5 {padding-left:200px;}
+.prepend-6 {padding-left:240px;}
+.prepend-7 {padding-left:280px;}
+.prepend-8 {padding-left:320px;}
+.prepend-9 {padding-left:360px;}
+.prepend-10 {padding-left:400px;}
+.prepend-11 {padding-left:440px;}
+.prepend-12 {padding-left:480px;}
+.prepend-13 {padding-left:520px;}
+.prepend-14 {padding-left:560px;}
+.prepend-15 {padding-left:600px;}
+.prepend-16 {padding-left:640px;}
+.prepend-17 {padding-left:680px;}
+.prepend-18 {padding-left:720px;}
+.prepend-19 {padding-left:760px;}
+.prepend-20 {padding-left:800px;}
+.prepend-21 {padding-left:840px;}
+.prepend-22 {padding-left:880px;}
+.prepend-23 {padding-left:920px;}
+div.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;}
+div.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;}
+.pull-1 {margin-left:-40px;}
+.pull-2 {margin-left:-80px;}
+.pull-3 {margin-left:-120px;}
+.pull-4 {margin-left:-160px;}
+.pull-5 {margin-left:-200px;}
+.pull-6 {margin-left:-240px;}
+.pull-7 {margin-left:-280px;}
+.pull-8 {margin-left:-320px;}
+.pull-9 {margin-left:-360px;}
+.pull-10 {margin-left:-400px;}
+.pull-11 {margin-left:-440px;}
+.pull-12 {margin-left:-480px;}
+.pull-13 {margin-left:-520px;}
+.pull-14 {margin-left:-560px;}
+.pull-15 {margin-left:-600px;}
+.pull-16 {margin-left:-640px;}
+.pull-17 {margin-left:-680px;}
+.pull-18 {margin-left:-720px;}
+.pull-19 {margin-left:-760px;}
+.pull-20 {margin-left:-800px;}
+.pull-21 {margin-left:-840px;}
+.pull-22 {margin-left:-880px;}
+.pull-23 {margin-left:-920px;}
+.pull-24 {margin-left:-960px;}
+.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;}
+.push-1 {margin:0 -40px 1.5em 40px;}
+.push-2 {margin:0 -80px 1.5em 80px;}
+.push-3 {margin:0 -120px 1.5em 120px;}
+.push-4 {margin:0 -160px 1.5em 160px;}
+.push-5 {margin:0 -200px 1.5em 200px;}
+.push-6 {margin:0 -240px 1.5em 240px;}
+.push-7 {margin:0 -280px 1.5em 280px;}
+.push-8 {margin:0 -320px 1.5em 320px;}
+.push-9 {margin:0 -360px 1.5em 360px;}
+.push-10 {margin:0 -400px 1.5em 400px;}
+.push-11 {margin:0 -440px 1.5em 440px;}
+.push-12 {margin:0 -480px 1.5em 480px;}
+.push-13 {margin:0 -520px 1.5em 520px;}
+.push-14 {margin:0 -560px 1.5em 560px;}
+.push-15 {margin:0 -600px 1.5em 600px;}
+.push-16 {margin:0 -640px 1.5em 640px;}
+.push-17 {margin:0 -680px 1.5em 680px;}
+.push-18 {margin:0 -720px 1.5em 720px;}
+.push-19 {margin:0 -760px 1.5em 760px;}
+.push-20 {margin:0 -800px 1.5em 800px;}
+.push-21 {margin:0 -840px 1.5em 840px;}
+.push-22 {margin:0 -880px 1.5em 880px;}
+.push-23 {margin:0 -920px 1.5em 920px;}
+.push-24 {margin:0 -960px 1.5em 960px;}
+.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;}
+.prepend-top {margin-top:1.5em;}
+.append-bottom {margin-bottom:1.5em;}
+.box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
+hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;}
+hr.space {background:#fff;color:#fff;}
+.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
+.clearfix, .container {display:block;}
+.clear {clear:both;}
+
+/* forms.css */
+label {font-weight:bold;}
+fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
+legend {font-weight:bold;font-size:1.2em;}
+input.text, input.title, textarea, select {margin:0.5em 0;border:1px solid #bbb;}
+input.text:focus, input.title:focus, textarea:focus, select:focus {border:1px solid #666;}
+input.text, input.title {width:300px;padding:5px;}
+input.title {font-size:1.5em;}
+textarea {width:390px;height:250px;padding:5px;}
+.error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
+.error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
+.notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
+.success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
+.error a {color:#8a1f11;}
+.notice a {color:#514721;}
+.success a {color:#264409;}
+
+/* eigenes */
+.right-aligned { text-align: right; }
+.left-navigation li { list-style-type: none; font-size: 1.3em; margin-bottom: 0.2em; font-weight: lighter; }
+.top-space { margin-top: 2em; }
+.date { font-weight: bold }
+.event { }
\ No newline at end of file
diff --git a/web-app/css/blueprint/src/forms.css b/web-app/css/blueprint/src/forms.css
new file mode 100644 (file)
index 0000000..c075be7
--- /dev/null
@@ -0,0 +1,49 @@
+/* -------------------------------------------------------------- 
+   
+   forms.css
+   * Sets up some default styling for forms
+   * Gives you classes to enhance your forms
+   
+   Usage:
+   * For text fields, use class .title or .text
+   
+-------------------------------------------------------------- */
+
+label       { font-weight: bold; }
+fieldset    { padding:1.4em; margin: 0 0 1.5em 0; border: 1px solid #ccc; }
+legend      { font-weight: bold; font-size:1.2em; }
+
+
+/* Form fields
+-------------------------------------------------------------- */
+
+input.text, input.title,
+textarea, select {
+  margin:0.5em 0;
+  border:1px solid #bbb;
+}
+
+input.text:focus, input.title:focus,
+textarea:focus, select:focus {
+  border:1px solid #666;
+}
+
+input.text, 
+input.title   { width: 300px; padding:5px; }
+input.title   { font-size:1.5em; }
+textarea      { width: 390px; height: 250px; padding:5px; }
+
+
+/* Success, notice and error boxes
+-------------------------------------------------------------- */
+
+.error,
+.notice, 
+.success    { padding: .8em; margin-bottom: 1em; border: 2px solid #ddd; }
+
+.error      { background: #FBE3E4; color: #8a1f11; border-color: #FBC2C4; }
+.notice     { background: #FFF6BF; color: #514721; border-color: #FFD324; }
+.success    { background: #E6EFC2; color: #264409; border-color: #C6D880; }
+.error a    { color: #8a1f11; }
+.notice a   { color: #514721; }
+.success a  { color: #264409; }
diff --git a/web-app/css/blueprint/src/grid.css b/web-app/css/blueprint/src/grid.css
new file mode 100755 (executable)
index 0000000..3e57ca9
--- /dev/null
@@ -0,0 +1,213 @@
+/* -------------------------------------------------------------- \r
+   \r
+   grid.css\r
+   * Sets up an easy-to-use grid of 24 columns.\r
+   \r
+   By default, the grid is 950px wide, with 24 columns \r
+   spanning 30px, and a 10px margin between columns.\r
+   \r
+   If you need fewer or more columns, namespaces or semantic\r
+   element names, use the compressor script (lib/compress.rb)\r
+   \r
+   Note: Changes made in this file will not be applied when\r
+   using the compressor: make changes in lib/blueprint/grid.css.rb\r
+   \r
+-------------------------------------------------------------- */\r
+\r
+/* A container should group all your columns. */\r
+.container {\r
+  width: 950px;\r
+  margin: 0 auto;\r
+}\r
+\r
+/* Use this class on any .span / container to see the grid. */\r
+.showgrid { background: url(src/grid.png);  }\r
+\r
+\r
+/* Columns\r
+-------------------------------------------------------------- */\r
+\r
+/* Sets up basic grid floating and margin. */\r
+.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, \r
+div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, \r
+div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, \r
+div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, \r
+div.span-21, div.span-22, div.span-23, div.span-24 {\r
+  float: left;\r
+  margin-right: 10px; \r
+}\r
+\r
+/* The last column in a row needs this class. */\r
+.last, div.last { margin-right: 0; }\r
+\r
+/* Use these classes to set the width of a column. */\r
+.span-1  { width: 30px; }\r
+.span-2  { width: 70px; }\r
+.span-3  { width: 110px; }\r
+.span-4  { width: 150px; }\r
+.span-5  { width: 190px; }\r
+.span-6  { width: 230px; }\r
+.span-7  { width: 270px; }\r
+.span-8  { width: 310px; }\r
+.span-9  { width: 350px; }\r
+.span-10 { width: 390px; }\r
+.span-11 { width: 430px; }\r
+.span-12 { width: 470px; }\r
+.span-13 { width: 510px; }\r
+.span-14 { width: 550px; }\r
+.span-15 { width: 590px; }\r
+.span-16 { width: 630px; }\r
+.span-17 { width: 670px; }\r
+.span-18 { width: 710px; }\r
+.span-19 { width: 750px; }\r
+.span-20 { width: 790px; }\r
+.span-21 { width: 830px; }\r
+.span-22 { width: 870px; }\r
+.span-23 { width: 910px; }\r
+.span-24 { width: 950px; margin: 0; }\r
+\r
+/* Add these to a column to append empty cols. */\r
+.append-1  { padding-right: 40px; }  \r
+.append-2  { padding-right: 80px; } \r
+.append-3  { padding-right: 120px; } \r
+.append-4  { padding-right: 160px; } \r
+.append-5  { padding-right: 200px; } \r
+.append-6  { padding-right: 240px; } \r
+.append-7  { padding-right: 280px; } \r
+.append-8  { padding-right: 320px; } \r
+.append-9  { padding-right: 360px; } \r
+.append-10 { padding-right: 400px; } \r
+.append-11 { padding-right: 440px; } \r
+.append-12 { padding-right: 480px; } \r
+.append-13 { padding-right: 520px; } \r
+.append-14 { padding-right: 560px; } \r
+.append-15 { padding-right: 600px; } \r
+.append-16 { padding-right: 640px; } \r
+.append-17 { padding-right: 680px; } \r
+.append-18 { padding-right: 720px; } \r
+.append-19 { padding-right: 760px; } \r
+.append-20 { padding-right: 800px; } \r
+.append-21 { padding-right: 840px; } \r
+.append-22 { padding-right: 880px; } \r
+.append-23 { padding-right: 920px; } \r
+\r
+/* Add these to a column to prepend empty cols. */\r
+.prepend-1  { padding-left: 40px; }  \r
+.prepend-2  { padding-left: 80px; } \r
+.prepend-3  { padding-left: 120px; } \r
+.prepend-4  { padding-left: 160px; } \r
+.prepend-5  { padding-left: 200px; } \r
+.prepend-6  { padding-left: 240px; } \r
+.prepend-7  { padding-left: 280px; } \r
+.prepend-8  { padding-left: 320px; } \r
+.prepend-9  { padding-left: 360px; } \r
+.prepend-10 { padding-left: 400px; } \r
+.prepend-11 { padding-left: 440px; } \r
+.prepend-12 { padding-left: 480px; } \r
+.prepend-13 { padding-left: 520px; } \r
+.prepend-14 { padding-left: 560px; } \r
+.prepend-15 { padding-left: 600px; } \r
+.prepend-16 { padding-left: 640px; } \r
+.prepend-17 { padding-left: 680px; } \r
+.prepend-18 { padding-left: 720px; } \r
+.prepend-19 { padding-left: 760px; } \r
+.prepend-20 { padding-left: 800px; } \r
+.prepend-21 { padding-left: 840px; } \r
+.prepend-22 { padding-left: 880px; } \r
+.prepend-23 { padding-left: 920px; } \r
+\r
+\r
+/* Border on right hand side of a column. */\r
+div.border {\r
+  padding-right: 4px;\r
+  margin-right: 5px;\r
+  border-right: 1px solid #eee;\r
+}\r
+\r
+/* Border with more whitespace, spans one column. */\r
+div.colborder {\r
+  padding-right: 24px;\r
+  margin-right: 25px;\r
+  border-right: 1px solid #eee;\r
+}\r
+\r
+\r
+/* Use these classes on an element to push it into the \r
+   next column, or to pull it into the previous column.  */\r
+\r
+.pull-1 { margin-left: -40px; }\r
+.pull-2 { margin-left: -80px; }\r
+.pull-3 { margin-left: -120px; }\r
+.pull-4 { margin-left: -160px; }\r
+.pull-5 { margin-left: -200px; }\r
+\r
+.pull-1, .pull-2, .pull-3, .pull-4, .pull-5 {\r
+  float:left;\r
+       position:relative;\r
+}\r
+\r
+.push-1 { margin: 0 -40px 1.5em 40px; }\r
+.push-2 { margin: 0 -80px 1.5em 80px; }\r
+.push-3 { margin: 0 -120px 1.5em 120px; }\r
+.push-4 { margin: 0 -160px 1.5em 160px; }\r
+.push-5 { margin: 0 -200px 1.5em 200px; }\r
+\r
+.push-1, .push-2, .push-3, .push-4, .push-5 { \r
+  float: right;\r
+       position:relative;\r
+}\r
+\r
+\r
+/* Misc classes and elements\r
+-------------------------------------------------------------- */\r
+\r
+/* In case you need to add a gutter above/below an element */\r
+.prepend-top { \r
+       margin-top:1.5em; \r
+}\r
+.append-bottom { \r
+       margin-bottom:1.5em; \r
+}\r
+\r
+/* Use a .box to create a padded box inside a column.  */ \r
+.box { \r
+  padding: 1.5em; \r
+  margin-bottom: 1.5em; \r
+  background: #E5ECF9; \r
+}\r
+\r
+/* Use this to create a horizontal ruler across a column. */\r
+hr {\r
+  background: #ddd; \r
+  color: #ddd;\r
+  clear: both; \r
+  float: none; \r
+  width: 100%; \r
+  height: .1em;\r
+  margin: 0 0 1.45em;\r
+  border: none; \r
+}\r
+hr.space {\r
+  background: #fff;\r
+  color: #fff;\r
+}\r
+\r
+\r
+/* Clearing floats without extra markup\r
+   Based on How To Clear Floats Without Structural Markup by PiE\r
+   [http://www.positioniseverything.net/easyclearing.html] */\r
+\r
+.clearfix:after, .container:after {\r
+    content: "\0020"; \r
+    display: block; \r
+    height: 0; \r
+    clear: both; \r
+    visibility: hidden; \r
+    overflow:hidden; \r
+}\r
+.clearfix, .container {display: block;}\r
+\r
+/* Regular clearing\r
+   apply to column that should drop below previous ones. */\r
+\r
+.clear { clear:both; }\r
diff --git a/web-app/css/blueprint/src/grid.png b/web-app/css/blueprint/src/grid.png
new file mode 100644 (file)
index 0000000..f7e8c4f
Binary files /dev/null and b/web-app/css/blueprint/src/grid.png differ
diff --git a/web-app/css/blueprint/src/ie.css b/web-app/css/blueprint/src/ie.css
new file mode 100644 (file)
index 0000000..7727e60
--- /dev/null
@@ -0,0 +1,59 @@
+/* -------------------------------------------------------------- 
+   
+   ie.css
+   
+   Contains every hack for Internet Explorer,
+   so that our core files stay sweet and nimble.
+   
+-------------------------------------------------------------- */
+
+/* Make sure the layout is centered in IE5 */
+body { text-align: center; }
+.container { text-align: left; }
+
+/* Fixes IE margin bugs */
+* html .column, * html div.span-1, * html div.span-2, 
+* html div.span-3, * html div.span-4, * html div.span-5, 
+* html div.span-6, * html div.span-7, * html div.span-8, 
+* html div.span-9, * html div.span-10, * html div.span-11, 
+* html div.span-12, * html div.span-13, * html div.span-14, 
+* html div.span-15, * html div.span-16, * html div.span-17, 
+* html div.span-18, * html div.span-19, * html div.span-20, 
+* html div.span-21, * html div.span-22, * html div.span-23, 
+* html div.span-24 { overflow-x: hidden; }
+
+
+/* Elements
+-------------------------------------------------------------- */
+
+/* Fixes incorrect styling of legend in IE6. */
+* html legend { margin:0px -8px 16px 0; padding:0; }
+
+/* Fixes incorrect placement of ol numbers in IE6/7. */
+ol { margin-left:2em; }
+
+/* Fixes wrong line-height on sup/sub in IE. */
+sup { vertical-align: text-top; }
+sub { vertical-align: text-bottom; }
+
+/* Fixes IE7 missing wrapping of code elements. */
+html>body p code { *white-space: normal; } 
+
+/* IE 6&7 has problems with setting proper <hr> margins. */
+hr  { margin: -8px auto 11px; }
+
+
+/* Clearing 
+-------------------------------------------------------------- */
+
+/* Makes clearfix actually work in IE */ 
+.clearfix, .container {display: inline-block;}
+* html .clearfix,
+* html .container {height: 1%;}
+
+
+/* Forms 
+-------------------------------------------------------------- */
+
+/* Fixes padding on fieldset */
+fieldset {padding-top: 0;}
\ No newline at end of file
diff --git a/web-app/css/blueprint/src/print.css b/web-app/css/blueprint/src/print.css
new file mode 100755 (executable)
index 0000000..37aba91
--- /dev/null
@@ -0,0 +1,85 @@
+/* -------------------------------------------------------------- 
+  
+   print.css
+   * Gives you some sensible styles for printing pages.
+   * See Readme file in this directory for further instructions.
+      
+   Some additions you'll want to make, customized to your markup:
+   #header, #footer, #navigation { display:none; }
+   
+-------------------------------------------------------------- */
+
+body {
+  line-height: 1.5;
+  font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+  color:#000;
+  background: none;
+  font-size: 10pt;
+}
+
+
+/* Layout
+-------------------------------------------------------------- */
+
+.container {
+  background: none;
+}
+
+hr { 
+  background:#ccc; 
+  color:#ccc;
+  width:100%;
+  height:2px;
+  margin:2em 0;
+  padding:0;
+  border:none;
+}
+hr.space {
+  background: #fff;
+  color: #fff;
+}
+
+
+/* Text
+-------------------------------------------------------------- */
+
+h1,h2,h3,h4,h5,h6 { font-family: "Helvetica Neue", Arial, "Lucida Grande", sans-serif; }
+code { font:.9em "Courier New", Monaco, Courier, monospace; } 
+
+img { float:left; margin:1.5em 1.5em 1.5em 0; }
+a img { border:none; }
+p img.top { margin-top: 0; }
+
+blockquote {
+  margin:1.5em;
+  padding:1em;
+  font-style:italic;
+  font-size:.9em;
+}
+
+.small  { font-size: .9em; }
+.large  { font-size: 1.1em; }
+.quiet  { color: #999; }
+.hide   { display:none; }
+
+
+/* Links
+-------------------------------------------------------------- */
+
+a:link, a:visited {
+  background: transparent;
+  font-weight:700;
+  text-decoration: underline;
+}
+
+a:link:after, a:visited:after {
+  content: " (" attr(href) ")";
+  font-size: 90%;
+}
+
+/* If you're having trouble printing relative links, uncomment and customize this:
+   (note: This is valid CSS3, but it still won't go through the W3C CSS Validator) */
+
+/* a[href^="/"]:after {
+  content: " (http://www.yourdomain.com" attr(href) ") ";
+} */
diff --git a/web-app/css/blueprint/src/reset.css b/web-app/css/blueprint/src/reset.css
new file mode 100755 (executable)
index 0000000..fc0788c
--- /dev/null
@@ -0,0 +1,38 @@
+/* -------------------------------------------------------------- 
+  
+   reset.css
+   * Resets default browser CSS.
+   
+-------------------------------------------------------------- */
+
+html, body, div, span, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, code,
+del, dfn, em, img, q, dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body { 
+  line-height: 1.5; 
+}
+
+/* Tables still need 'cellspacing="0"' in the markup. */
+table { border-collapse: separate; border-spacing: 0; }
+caption, th, td { text-align: left; font-weight: normal; }
+table, td, th { vertical-align: middle; }
+
+/* Remove possible quote marks (") from <q>, <blockquote>. */
+blockquote:before, blockquote:after, q:before, q:after { content: ""; }
+blockquote, q { quotes: "" ""; }
+
+/* Remove annoying border on linked images. */
+a img { border: none; }
diff --git a/web-app/css/blueprint/src/typography.css b/web-app/css/blueprint/src/typography.css
new file mode 100644 (file)
index 0000000..5dfa208
--- /dev/null
@@ -0,0 +1,105 @@
+/* -------------------------------------------------------------- 
+   
+   typography.css
+   * Sets up some sensible default typography.
+   
+-------------------------------------------------------------- */
+
+/* Default font settings. 
+   The font-size percentage is of 16px. (0.75 * 16px = 12px) */
+body { 
+  font-size: 75%;
+  color: #222; 
+  background: #fff;
+  font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
+}
+
+
+/* Headings
+-------------------------------------------------------------- */
+
+h1,h2,h3,h4,h5,h6 { font-weight: normal; color: #111; }
+
+h1 { font-size: 3em; line-height: 1; margin-bottom: 0.5em; }
+h2 { font-size: 2em; margin-bottom: 0.75em; }
+h3 { font-size: 1.5em; line-height: 1; margin-bottom: 1em; }
+h4 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; }
+h5 { font-size: 1em; font-weight: bold; margin-bottom: 1.5em; }
+h6 { font-size: 1em; font-weight: bold; }
+
+h1 img, h2 img, h3 img, 
+h4 img, h5 img, h6 img {
+  margin: 0;
+}
+
+
+/* Text elements
+-------------------------------------------------------------- */
+
+p           { margin: 0 0 1.5em; }
+p img.left  { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; }
+p img.right { float: right; margin: 1.5em 0 1.5em 1.5em; }
+
+a:focus, 
+a:hover     { color: #000; }
+a           { color: #009; text-decoration: underline; }
+
+blockquote  { margin: 1.5em; color: #666; font-style: italic; }
+strong      { font-weight: bold; }
+em,dfn      { font-style: italic; }
+dfn         { font-weight: bold; }
+sup, sub    { line-height: 0; }
+
+abbr, 
+acronym     { border-bottom: 1px dotted #666; }
+address     { margin: 0 0 1.5em; font-style: italic; }
+del         { color:#666; }
+
+pre                            { margin: 1.5em 0; white-space: pre; }
+pre,code,tt { font: 1em 'andale mono', 'lucida console', monospace; line-height: 1.5; }
+
+
+/* Lists
+-------------------------------------------------------------- */
+
+li ul, 
+li ol       { margin:0 1.5em; }
+ul, ol      { margin: 0 1.5em 1.5em 1.5em; }
+
+ul          { list-style-type: disc; }
+ol          { list-style-type: decimal; }
+
+dl          { margin: 0 0 1.5em 0; }
+dl dt       { font-weight: bold; }
+dd          { margin-left: 1.5em;}
+
+
+/* Tables
+-------------------------------------------------------------- */
+
+table       { margin-bottom: 1.4em; width:100%; }
+th          { font-weight: bold; }
+thead th               { background: #c3d9ff; }
+th,td,caption { padding: 4px 10px 4px 5px; }
+tr.even td  { background: #e5ecf9; }
+tfoot       { font-style: italic; }
+caption     { background: #eee; }
+
+
+/* Misc classes
+-------------------------------------------------------------- */
+
+.small      { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; }
+.large      { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; }
+.hide       { display: none; }
+
+.quiet      { color: #666; }
+.loud       { color: #000; }
+.highlight  { background:#ff0; }
+.added      { background:#060; color: #fff; }
+.removed    { background:#900; color: #fff; }
+
+.first      { margin-left:0; padding-left:0; }
+.last       { margin-right:0; padding-right:0; }
+.top        { margin-top:0; padding-top:0; }
+.bottom     { margin-bottom:0; padding-bottom:0; }