Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fresh setup on a newly created Grail 2.3.5 plugin project. Update to

Grails 2.3.5. Removed dependency for Font-Awesome (Bootstrap uses
Glyphicon's Icon-Font now). Correction of "alert-error" into
"alert-danger" - changed in Bootstrap 3 (Tip by Leo Bartoloni). Fix for
display:none in scaffolding (Merged by "stlhrt")
  • Loading branch information...
commit b0f9e5c9e7cc020286d32c16dc7fe0361169fa70 1 parent 4eacca3
@joergrech authored
Showing with 2,630 additions and 8,239 deletions.
  1. +10 −55 .classpath
  2. +1 −1  .project
  3. +1 −1  .settings/org.eclipse.jdt.groovy.core.prefs
  4. +2 −2 .settings/org.grails.ide.eclipse.core.prefs
  5. +1 −2  KickstartWithBootstrapGrailsPlugin.groovy
  6. +8 −4 README.mediawiki
  7. +5 −2 application.properties
  8. +10 −9 grails-app/conf/BuildConfig.groovy
  9. +11 −4 grails-app/conf/Config.groovy
  10. +13 −1 grails-app/conf/KickstartConfig.groovy
  11. +46 −41 grails-app/conf/KickstartResources.groovy
  12. +1 −1  grails-app/views/_DemoPage/create.gsp
  13. +1 −1  grails-app/views/_DemoPage/edit.gsp
  14. +10 −10 grails-app/views/_common/buttons/_editSymbolLink.gsp
  15. +10 −10 grails-app/views/_common/buttons/_showSymbolLink.gsp
  16. +10 −10 grails-app/views/_common/modals/_deleteSymbolLink.gsp
  17. +11 −11 grails-app/views/_common/modals/_deleteTextLink.gsp
  18. +12 −12 grails-app/views/_common/modals/_registerTextLink.gsp
  19. +42 −42 grails-app/views/_errors/403.gsp
  20. +42 −42 grails-app/views/_errors/404.gsp
  21. +1 −1  grails-app/views/_errors/500.gsp
  22. +42 −42 grails-app/views/_errors/503.gsp
  23. +25 −42 grails-app/views/_menu/_admin.gsp
  24. +11 −11 grails-app/views/_menu/_controller.gsp
  25. +5 −7 grails-app/views/_menu/_info.gsp
  26. +29 −29 grails-app/views/_menu/_language.gsp
  27. +1 −1  grails-app/views/_menu/_navbar.gsp
  28. +1 −1  grails-app/views/_menu/_search.gsp
  29. +3 −3 grails-app/views/_menu/_submenubar.gsp
  30. +68 −68 grails-app/views/_menu/_user.gsp
  31. +93 −144 grails-app/views/home/index.gsp
  32. +24 −8 grails-app/views/home/nextSteps.gsp
  33. +7 −7 grails-app/views/layouts/_footer.gsp
  34. +2 −2 grails-app/views/layouts/kickstart.gsp
  35. +60 −0 grails-app/views/login/auth.gsp
  36. +44 −0 grails-app/views/login/denied.gsp
  37. +0 −3  grails-app/views/siteinfo/systeminfo.gsp
  38. +2 −1  scripts/Kickstart.groovy
  39. +5 −0 scripts/_Uninstall.groovy
  40. +10 −0 scripts/_Upgrade.groovy
  41. +0 −3  src/templates/artifacts/ScaffoldingController.groovy
  42. +1 −1  src/templates/scaffolding/create.gsp
  43. +1 −1  src/templates/scaffolding/edit.gsp
  44. +2 −4 src/templates/war/web.xml
  45. +34 −0 web-app/WEB-INF/applicationContext.xml
  46. +14 −0 web-app/WEB-INF/sitemesh.xml
  47. +8 −0 web-app/bootstrap/.gitattributes
  48. +1 −0  web-app/bootstrap/.gitignore
  49. +2 −3 web-app/bootstrap/.travis.yml
  50. +20 −2 web-app/bootstrap/CONTRIBUTING.md
  51. +105 −12 web-app/bootstrap/Gruntfile.js
  52. +2 −1  web-app/bootstrap/README.md
  53. +6 −6 web-app/bootstrap/_config.yml
  54. +16 −2 web-app/bootstrap/_includes/footer.html
  55. +4 −0 web-app/bootstrap/_includes/nav-getting-started.html
  56. +1 −0  web-app/bootstrap/about.html
  57. +22 −3 web-app/bootstrap/bower.json
  58. +0 −37 web-app/bootstrap/browserstack.json
  59. +235 −210 web-app/bootstrap/components.html
  60. +1 −1  web-app/bootstrap/composer.json
  61. +7 −8 web-app/bootstrap/css.html
  62. +1 −1  web-app/bootstrap/customize.html
  63. +1 −63 web-app/bootstrap/dist/css/bootstrap-theme.css
  64. +2 −4 web-app/bootstrap/dist/css/bootstrap-theme.min.css
  65. +401 −381 web-app/bootstrap/dist/css/bootstrap.css
  66. +2 −4 web-app/bootstrap/dist/css/bootstrap.min.css
  67. +32 −28 web-app/bootstrap/dist/js/bootstrap.js
  68. +2 −4 web-app/bootstrap/dist/js/bootstrap.min.js
  69. +3 −2 web-app/bootstrap/docs-assets/css/docs.css
  70. +1 −1  web-app/bootstrap/docs-assets/js/application.js
  71. +2 −2 web-app/bootstrap/docs-assets/js/customizer.js
  72. +376 −146 web-app/bootstrap/docs-assets/js/filesaver.js
  73. +202 −106 web-app/bootstrap/docs-assets/js/holder.js
  74. +21 −14 web-app/bootstrap/docs-assets/js/jszip.js
  75. +2 −2 web-app/bootstrap/docs-assets/js/raw-files.js
  76. +1 −1  web-app/bootstrap/examples/jumbotron/index.html
  77. +2 −1  web-app/bootstrap/examples/justified-nav/index.html
  78. +14 −10 web-app/bootstrap/examples/non-responsive/non-responsive.css
  79. +2 −1  web-app/bootstrap/examples/offcanvas/offcanvas.css
  80. BIN  web-app/bootstrap/examples/screenshots/jumbotron.jpg
  81. +1 −1  web-app/bootstrap/examples/signin/index.html
  82. +1 −1  web-app/bootstrap/examples/sticky-footer-navbar/index.html
  83. +1 −1  web-app/bootstrap/examples/sticky-footer-navbar/sticky-footer-navbar.css
  84. +1 −1  web-app/bootstrap/examples/sticky-footer/index.html
  85. +1 −1  web-app/bootstrap/examples/sticky-footer/sticky-footer.css
  86. +45 −9 web-app/bootstrap/getting-started.html
  87. +37 −25 web-app/bootstrap/javascript.html
  88. +1 −1  web-app/bootstrap/js/affix.js
  89. +1 −1  web-app/bootstrap/js/alert.js
  90. +11 −5 web-app/bootstrap/js/button.js
  91. +5 −5 web-app/bootstrap/js/carousel.js
  92. +1 −1  web-app/bootstrap/js/collapse.js
  93. +5 −5 web-app/bootstrap/js/dropdown.js
  94. +1 −1  web-app/bootstrap/js/modal.js
  95. +1 −1  web-app/bootstrap/js/popover.js
  96. +2 −2 web-app/bootstrap/js/scrollspy.js
  97. +1 −1  web-app/bootstrap/js/tab.js
  98. +6 −0 web-app/bootstrap/js/tests/unit/button.js
  99. +1 −1  web-app/bootstrap/js/tooltip.js
  100. +1 −1  web-app/bootstrap/js/transition.js
  101. +6 −6 web-app/bootstrap/less/badges.less
  102. +7 −33 web-app/bootstrap/less/button-groups.less
  103. +2 −5 web-app/bootstrap/less/buttons.less
  104. +1 −0  web-app/bootstrap/less/carousel.less
  105. +3 −8 web-app/bootstrap/less/dropdowns.less
  106. +11 −0 web-app/bootstrap/less/forms.less
  107. +5 −5 web-app/bootstrap/less/glyphicons.less
  108. +12 −26 web-app/bootstrap/less/grid.less
  109. +1 −1  web-app/bootstrap/less/input-groups.less
  110. +8 −2 web-app/bootstrap/less/jumbotron.less
  111. +6 −0 web-app/bootstrap/less/labels.less
  112. +37 −50 web-app/bootstrap/less/mixins.less
  113. +2 −5 web-app/bootstrap/less/modals.less
  114. +41 −53 web-app/bootstrap/less/navbar.less
  115. +0 −20 web-app/bootstrap/less/navs.less
  116. +11 −1 web-app/bootstrap/less/panels.less
  117. +0 −12 web-app/bootstrap/less/progress-bars.less
  118. +17 −22 web-app/bootstrap/less/tables.less
  119. +9 −3 web-app/bootstrap/less/thumbnails.less
  120. +54 −52 web-app/bootstrap/less/type.less
  121. +15 −10 web-app/bootstrap/less/variables.less
  122. +15 −4 web-app/bootstrap/package.json
  123. +1 −1  web-app/datepicker/README.md
  124. BIN  web-app/images/apple-touch-icon-retina.png
  125. BIN  web-app/images/apple-touch-icon.png
  126. 0  web-app/{kickstart/img/grails.png → images/brand_logo.png}
  127. BIN  web-app/images/favicon.ico
  128. BIN  web-app/images/frontpage/empty.png
  129. BIN  web-app/images/grails_logo.jpg
  130. BIN  web-app/images/grails_logo.png
  131. BIN  web-app/images/icons/apple-touch-icon-retina.png
  132. BIN  web-app/images/icons/apple-touch-icon.png
  133. BIN  web-app/images/leftnav_btm.png
  134. BIN  web-app/images/leftnav_midstretch.png
  135. BIN  web-app/images/leftnav_top.png
  136. BIN  web-app/images/skin/database_add.png
  137. BIN  web-app/images/skin/database_delete.png
  138. BIN  web-app/images/skin/database_edit.png
  139. BIN  web-app/images/skin/database_save.png
  140. BIN  web-app/images/skin/database_table.png
  141. BIN  web-app/images/skin/exclamation.png
  142. BIN  web-app/images/skin/house.png
  143. BIN  web-app/images/skin/information.png
  144. BIN  web-app/images/skin/shadow.jpg
  145. BIN  web-app/images/skin/sorted_asc.gif
  146. BIN  web-app/images/skin/sorted_desc.gif
  147. BIN  web-app/images/spinner.gif
  148. BIN  web-app/images/springsource.png
  149. +1 −1  web-app/{less → kickstart/css}/dummy.css
  150. +12 −1 web-app/kickstart/css/kickstart.css
  151. +0 −34 web-app/less/bootstrap/accordion.less
  152. +0 −79 web-app/less/bootstrap/alerts.less
  153. +0 −63 web-app/less/bootstrap/bootstrap.less
  154. +0 −24 web-app/less/bootstrap/breadcrumbs.less
  155. +0 −229 web-app/less/bootstrap/button-groups.less
  156. +0 −228 web-app/less/bootstrap/buttons.less
  157. +0 −158 web-app/less/bootstrap/carousel.less
  158. +0 −32 web-app/less/bootstrap/close.less
  159. +0 −61 web-app/less/bootstrap/code.less
  160. +0 −22 web-app/less/bootstrap/component-animations.less
  161. +0 −237 web-app/less/bootstrap/dropdowns.less
  162. +0 −690 web-app/less/bootstrap/forms.less
  163. +0 −21 web-app/less/bootstrap/grid.less
  164. +0 −25 web-app/less/bootstrap/hero-unit.less
  165. +0 −84 web-app/less/bootstrap/labels-badges.less
  166. +0 −16 web-app/less/bootstrap/layouts.less
  167. +0 −55 web-app/less/bootstrap/media.less
  168. +0 −702 web-app/less/bootstrap/mixins.less
  169. +0 −95 web-app/less/bootstrap/modals.less
  170. +0 −497 web-app/less/bootstrap/navbar.less
  171. +0 −409 web-app/less/bootstrap/navs.less
  172. +0 −43 web-app/less/bootstrap/pager.less
  173. +0 −123 web-app/less/bootstrap/pagination.less
  174. +0 −133 web-app/less/bootstrap/popovers.less
  175. +0 −122 web-app/less/bootstrap/progress-bars.less
  176. +0 −216 web-app/less/bootstrap/reset.less
  177. +0 −28 web-app/less/bootstrap/responsive-1200px-min.less
  178. +0 −193 web-app/less/bootstrap/responsive-767px-max.less
  179. +0 −19 web-app/less/bootstrap/responsive-768px-979px.less
  180. +0 −189 web-app/less/bootstrap/responsive-navbar.less
  181. +0 −59 web-app/less/bootstrap/responsive-utilities.less
  182. +0 −48 web-app/less/bootstrap/responsive.less
  183. +0 −53 web-app/less/bootstrap/scaffolding.less
  184. +0 −197 web-app/less/bootstrap/sprites.less
  185. +0 −244 web-app/less/bootstrap/tables.less
  186. +0 −53 web-app/less/bootstrap/thumbnails.less
  187. +0 −70 web-app/less/bootstrap/tooltip.less
  188. +0 −247 web-app/less/bootstrap/type.less
  189. +0 −30 web-app/less/bootstrap/utilities.less
  190. +0 −301 web-app/less/bootstrap/variables.less
  191. +0 −29 web-app/less/bootstrap/wells.less
  192. BIN  web-app/less/img/glyphicons-halflings-white.png
  193. BIN  web-app/less/img/glyphicons-halflings.png
View
65 .classpath
@@ -11,92 +11,47 @@
<classpathentry kind="src" path="test/integration"/>
<classpathentry kind="src" path="test/unit"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="src" path=".link_to_grails_plugins/font-awesome-resources-3.2.1.2/grails-app/assets">
- <attributes>
- <attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry excluding="BuildConfig.groovy|*DataSource.groovy|UrlMappings.groovy|Config.groovy|BootStrap.groovy|spring/resources.groovy" kind="src" path=".link_to_grails_plugins/font-awesome-resources-3.2.1.2/grails-app/conf">
- <attributes>
- <attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/font-awesome-resources-3.2.1.2/grails-app/i18n">
- <attributes>
- <attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/font-awesome-resources-3.2.1.2/grails-app/resourceMappers">
- <attributes>
- <attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry excluding="BuildConfig.groovy|*DataSource.groovy|UrlMappings.groovy|Config.groovy|BootStrap.groovy|spring/resources.groovy" kind="src" path=".link_to_grails_plugins/jquery-1.8.3/grails-app/conf">
- <attributes>
- <attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/jquery-1.8.3/grails-app/i18n">
- <attributes>
- <attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/jquery-1.8.3/grails-app/services">
- <attributes>
- <attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/jquery-1.8.3/grails-app/taglib">
- <attributes>
- <attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/jquery-1.8.3/src/groovy">
- <attributes>
- <attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
- </attributes>
- </classpathentry>
<classpathentry kind="src" path=".link_to_grails_plugins/lesscss-resources-1.3.3/grails-app/resourceMappers">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/release-2.2.1/src/groovy">
+ <classpathentry kind="src" path=".link_to_grails_plugins/release-3.0.1/src/groovy">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/release-2.2.1/src/java">
+ <classpathentry kind="src" path=".link_to_grails_plugins/release-3.0.1/src/java">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
- <classpathentry excluding="BuildConfig.groovy|*DataSource.groovy|UrlMappings.groovy|Config.groovy|BootStrap.groovy|spring/resources.groovy" kind="src" path=".link_to_grails_plugins/resources-1.2/grails-app/conf">
+ <classpathentry excluding="BuildConfig.groovy|*DataSource.groovy|UrlMappings.groovy|Config.groovy|BootStrap.groovy|spring/resources.groovy" kind="src" path=".link_to_grails_plugins/resources-1.2.1/grails-app/conf">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/resources-1.2/grails-app/i18n">
+ <classpathentry kind="src" path=".link_to_grails_plugins/resources-1.2.1/grails-app/i18n">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/resources-1.2/grails-app/resourceMappers">
+ <classpathentry kind="src" path=".link_to_grails_plugins/resources-1.2.1/grails-app/resourceMappers">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/resources-1.2/grails-app/taglib">
+ <classpathentry kind="src" path=".link_to_grails_plugins/resources-1.2.1/grails-app/taglib">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/resources-1.2/src/groovy">
+ <classpathentry kind="src" path=".link_to_grails_plugins/resources-1.2.1/src/groovy">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/resources-1.2/src/java">
+ <classpathentry kind="src" path=".link_to_grails_plugins/resources-1.2.1/src/java">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
@@ -106,12 +61,12 @@
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
- <classpathentry excluding="BuildConfig.groovy|*DataSource.groovy|UrlMappings.groovy|Config.groovy|BootStrap.groovy|spring/resources.groovy" kind="src" path=".link_to_grails_plugins/webxml-1.4.1/grails-app/conf">
+ <classpathentry kind="src" path=".link_to_grails_plugins/scaffolding-2.0.1/src/groovy">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="src" path=".link_to_grails_plugins/webxml-1.4.1/src/groovy">
+ <classpathentry kind="src" path=".link_to_grails_plugins/scaffolding-2.0.1/src/java">
<attributes>
<attribute name="org.grails.ide.eclipse.core.SOURCE_FOLDER" value="true"/>
</attributes>
View
2  .project
@@ -26,7 +26,7 @@
<link>
<name>.link_to_grails_plugins</name>
<type>2</type>
- <location>C:/Users/Rech/repos/KickstartWithBootstrap/target/plugins</location>
+ <locationURI>GRAILS_ROOT/2.3.5/projects/kickstartWithBootstrap/plugins</locationURI>
</link>
</linkedResources>
</projectDescription>
View
2  .settings/org.eclipse.jdt.groovy.core.prefs
@@ -1,3 +1,3 @@
eclipse.preferences.version=1
-groovy.compiler.level=20
+groovy.compiler.level=21
groovy.script.filters=**/*.dsld,y,scripts/**/*.groovy,y,src/main/resources/**/*.groovy,y,src/test/resources/**/*.groovy,y
View
4 .settings/org.grails.ide.eclipse.core.prefs
@@ -1,3 +1,3 @@
eclipse.preferences.version=1
-org.grails.ide.eclipse.core.org.grails.ide.eclipse.core.install.name=Grails 2.2.4
-org.grails.ide.eclipse.core.use.default.install=true
+org.grails.ide.eclipse.core.org.grails.ide.eclipse.core.install.name=Grails 2.3.5
+org.grails.ide.eclipse.core.use.default.install=false
View
3  KickstartWithBootstrapGrailsPlugin.groovy
@@ -3,7 +3,7 @@ import kickstart.CustomDateEditorRegistrar
class KickstartWithBootstrapGrailsPlugin {
def title = "Kickstart with Bootstrap - Good looking websites!"
- def version = "1.0.3"
+ def version = "1.1.0"
def license = "APACHE"
def description = """\
Kickstart is a plugin for Grails to start your project with a good looking frontend. \
@@ -12,7 +12,6 @@ frontend framework initiated by Twitter."""
def grailsVersion = "2.3 > * "
def pluginExcludes = [
- 'src/templates/**',
'web-app/WEB-INF/**'
]
View
12 README.mediawiki
@@ -84,12 +84,16 @@ Please note that the '''datepicker''' can handle dates after the year 9999 while
** Copyright 2011-2013 Joerg Rech
** see http://joerg-rech.com and follow @JoergRech
-== Backlog ==
-'''1.0.3''' Fix for Date binding (currently, the date binding does not work)<br/>
-'''1.0.2''' Fix for DatePicker (currently, the datepicker requires jQuery 1.8.3)<br/>
-'''1.0.1''' Fix for index vs list actions (currently, both are supported) <br/>
+== Backlog: Work required / Problems ==
+'''1.x.1''' Fix for Date binding (currently, the date binding does not work)<br/>
+'''1.x.2''' Fix for DatePicker (currently, the datepicker requires jQuery 1.8.3)<br/>
+'''1.x.3''' Fix for index vs list actions (currently, both are supported) <br/>
== Changelog ==
+'''1.1.0''' Fresh setup on a newly created Grail 2.3.5 plugin project. Update to Grails 2.3.5.<br/>
+'''1.0.5''' Removed dependency for Font-Awesome (Bootstrap uses Glyphicon's Icon-Font now)<br/>
+'''1.0.4''' Correction of "alert-error" into "alert-danger" - changed in Bootstrap 3 (Tip by Leo Bartoloni)<br/>
+'''1.0.3''' Fix for display:none in scaffolding (Merged by "stlhrt") <br/>
'''1.0.0''' Upgrade to Grail 2.3.4 <br/>
'''0.9.9.1''' Fixed missing search view. Integrated cleanup by Burt Beckwith. <br/>
'''0.9.9''' Upgraded to Bootstrap 3.0.2. <br/>
View
7 application.properties
@@ -1,2 +1,5 @@
-app.grails.version=2.2.4
-app.name=kickstartWithBootstrapGrailsPlugin
+#Grails Metadata file
+#Sat Jan 25 08:08:58 CET 2014
+app.grails.version=2.3.5
+#app.name=kickstart
+app.name=kickstartWithBootstrap
View
19 grails-app/conf/BuildConfig.groovy
@@ -1,4 +1,6 @@
-grails.project.work.dir = 'target'
+grails.project.class.dir = "target/classes"
+grails.project.test.class.dir = "target/test-classes"
+grails.project.test.reports.dir = "target/test-reports"
grails.project.dependency.resolution = {
@@ -15,14 +17,13 @@ grails.project.dependency.resolution = {
}
plugins {
- build ":release:2.2.1", { export = false }
- build ":rest-client-builder:1.0.3", { export = false }
+ build( ":release:3.0.1",
+ ":rest-client-builder:1.0.3") {
+ export = false
+ }
+ compile ":scaffolding:2.0.1" // Needed since Grails 2.3
- runtime ":jquery:1.8.3" // needed for the Bootstrap datepicker
-// runtime ":jquery:1.10.2.2" // WARN: does not work with Bootstrap Datepicker !
- runtime ":resources:1.2" // needed for Bootstrap's less files
-
- compile ":lesscss-resources:1.3.3" // needed for Bootstrap's less files
- compile ":font-awesome-resources:3.2.1.2" // needed for Bootstrap's image replacement
+ runtime ":resources:1.2.1" // Needed for Bootstrap's less files
+ compile ":lesscss-resources:1.3.3" // Needed for Bootstrap's less files
}
}
View
15 grails-app/conf/Config.groovy
@@ -1,8 +1,5 @@
import org.apache.log4j.Level
-// configuration for plugin testing - will not be included in the plugin zip
-grails.app.context ="/"
-
// hide dbconsole resource files (css, js, etc.) from the resource plugin
grails.resources.adhoc.patterns = ['/dbconsole/**']
@@ -22,5 +19,15 @@ log4j = {
layout: pattern(conversionPattern: '%m%n')
}
- info 'grails.app.filters'
+ error 'org.codehaus.groovy.grails.web.servlet', // controllers
+ 'org.codehaus.groovy.grails.web.pages', // GSP
+ 'org.codehaus.groovy.grails.web.sitemesh', // layouts
+ 'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
+ 'org.codehaus.groovy.grails.web.mapping', // URL mapping
+ 'org.codehaus.groovy.grails.commons', // core / classloading
+ 'org.codehaus.groovy.grails.plugins', // plugins
+ 'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
+ 'org.springframework',
+ 'org.hibernate',
+ 'net.sf.ehcache.hibernate'
}
View
14 grails-app/conf/KickstartConfig.groovy
@@ -19,5 +19,17 @@ log4j = {
layout: pattern(conversionPattern: '%m%n')
}
- info 'grails.app.filters'
+ error 'org.codehaus.groovy.grails.web.servlet', // controllers
+ 'org.codehaus.groovy.grails.web.pages', // GSP
+ 'org.codehaus.groovy.grails.web.sitemesh', // layouts
+ 'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
+ 'org.codehaus.groovy.grails.web.mapping', // URL mapping
+ 'org.codehaus.groovy.grails.commons', // core / classloading
+ 'org.codehaus.groovy.grails.plugins', // plugins
+ 'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
+ 'org.springframework',
+ 'org.hibernate',
+ 'net.sf.ehcache.hibernate'
+
+ info 'grails.app.filters'
}
View
87 grails-app/conf/KickstartResources.groovy
@@ -1,41 +1,46 @@
-// Settings for the resources and less-css plugins to "compile" less files into css
-
-modules = {
-
-// if ( (grails.resources?.processing?.enabled != [:] && grails.resources.processing.enabled.booleanValue() == false) ) {
- /* Bootstrap definitions without less (if resource processing is switched off) */
- 'bootstrap' {
-// dependsOn 'jquery'
- resource url: [dir: 'bootstrap/js/tests/vendor',file: 'jquery.js']
- resource url: [dir: 'bootstrap/dist/js', file: 'bootstrap.js']
- resource url: [dir: 'bootstrap/dist/css', file: 'bootstrap.css']
-// resource url: [dir: 'bootstrap/dist/css', file: 'bootstrap-theme.css']
-// resource url: [dir: 'bootstrap/dist/css', file: 'bootstrap-responsive.css']
- }
- log.info "| Using CSS files instead of generating from LESS files! (resource processing was switched off)"
-// } else {
-// /* Bootstrap definitions with less */
-// 'bootstrap' {
-//// dependsOn 'jquery'
-// resource url: [dir: 'bootstrap/assets/js', file: 'jquery.js']
-// resource url: [dir: 'bootstrap/dist/js', file: 'bootstrap.js']
-// resource url: [dir: 'bootstrap/less', file: 'bootstrap.less']
-//// resource url: [dir: 'bootstrap/less', file: 'responsive.less']
-// resource url: "less/dummy.css" // empty css: see https://github.com/paulfairless/grails-lesscss-resources/issues/25
-// }
-// log.info "| Using LESS files to generate CSS files!"
-// }
-
- // Utility resources (must be loaded after bootstrap skin resources)
- // Duplication necessary as switching skins causes new skin to be loaded after utilities!
- 'bootstrap_utils' {
- dependsOn 'bootstrap, font-awesome'
- resource url: [dir: 'datepicker/js', file: 'bootstrap-datepicker.js']
- resource url: [dir: 'kickstart/js', file: 'kickstart.js']
- resource url: [dir: 'kickstart/js', file: 'checkboxes.js']
- resource url: [dir: 'datepicker/css', file: 'datepicker.css']
- resource url: [dir: 'kickstart/css', file: 'docs.css']
- resource url: [dir: 'kickstart/css', file: 'kickstart.css']
- resource url: "less/dummy.css" // empty css: see https://github.com/paulfairless/grails-lesscss-resources/issues/25
- }
-}
+// Settings for the resources and less-css plugins to "compile" less files into css
+
+modules = {
+
+ /* Bootstrap definitions without less (if resource processing is switched off) */
+ 'bootstrap' {
+ resource url: [dir: 'bootstrap/js/tests/vendor',file: 'jquery.js']
+ resource url: [dir: 'bootstrap/dist/js', file: 'bootstrap.js']
+ resource url: [dir: 'bootstrap/dist/css', file: 'bootstrap.css']
+ }
+ log.info "| Using CSS files instead of generating from LESS files! (resource processing was switched off)"
+
+ /* Utility resources (must be loaded after bootstrap skin resources) */
+ 'bootstrap_utils' {
+ dependsOn 'bootstrap'
+ resource url: [dir: 'datepicker/js', file: 'bootstrap-datepicker.js']
+ resource url: [dir: 'datepicker/css', file: 'datepicker.css']
+ resource url: [dir: 'kickstart/js', file: 'kickstart.js']
+ resource url: [dir: 'kickstart/js', file: 'checkboxes.js']
+ resource url: [dir: 'kickstart/css', file: 'docs.css']
+ resource url: [dir: 'kickstart/css', file: 'kickstart.css']
+ }
+
+// if (!(grails.resources?.processing?.enabled != [:] && grails.resources.processing.enabled.booleanValue() == false) ) {
+ /* Bootstrap definitions with less */
+ 'bootstrap_less' {
+ resource url: [dir: 'bootstrap/js/tests/vendor',file: 'jquery.js']
+ resource url: [dir: 'bootstrap/dist/js', file: 'bootstrap.js']
+ resource url: [dir: 'bootstrap/less', file: 'bootstrap.less']
+ resource url: [dir: 'kickstart/css', file: 'dummy.css'] // empty css: see https://github.com/paulfairless/grails-lesscss-resources/issues/25
+ }
+ log.info "| Using LESS files to generate CSS files!"
+
+ /* Utility resources (must be loaded after bootstrap skin resources) */
+ 'bootstrap_less_utils' {
+ dependsOn 'bootstrap_less'
+ resource url: [dir: 'datepicker/js', file: 'bootstrap-datepicker.js']
+ resource url: [dir: 'datepicker/css', file: 'datepicker.css']
+ resource url: [dir: 'kickstart/js', file: 'kickstart.js']
+ resource url: [dir: 'kickstart/js', file: 'checkboxes.js']
+ resource url: [dir: 'kickstart/css', file: 'docs.css']
+ resource url: [dir: 'kickstart/css', file: 'kickstart.css']
+ }
+// }
+
+}
View
2  grails-app/views/_DemoPage/create.gsp
@@ -14,7 +14,7 @@
<section id="create-_DemoPage" class="first">
<g:hasErrors bean="${_DemoPageInstance}">
- <div class="alert alert-error">
+ <div class="alert alert-danger">
<g:renderErrors bean="${_DemoPageInstance}" as="list" />
</div>
</g:hasErrors>
View
2  grails-app/views/_DemoPage/edit.gsp
@@ -14,7 +14,7 @@
<section id="edit-_DemoPage" class="first">
<g:hasErrors bean="${_DemoPageInstance}">
- <div class="alert alert-error">
+ <div class="alert alert-danger">
<g:renderErrors bean="${_DemoPageInstance}" as="list" />
</div>
</g:hasErrors>
View
20 grails-app/views/_common/buttons/_editSymbolLink.gsp
@@ -1,10 +1,10 @@
-<!--
-This button is used to call the show page.
--->
-
-<!-- Button -->
-<span class="">
- <g:link action="edit" id="${item ? item.id : params.id}" role="button" class="btn btn-success btn-sm" title="${message(code: 'default.button.edit.label', default: 'Edit')}">
- <i class="icon-pencil icon-large"></i>
- </g:link>
-</span>
+<!--
+This button is used to call the show page.
+-->
+
+<!-- Button -->
+<span class="">
+ <g:link action="edit" id="${item ? item.id : params.id}" role="button" class="btn btn-success btn-sm" title="${message(code: 'default.button.edit.label', default: 'Edit')}">
+ <i class="glyphicon glyphicon-pencil"></i>
+ </g:link>
+</span>
View
20 grails-app/views/_common/buttons/_showSymbolLink.gsp
@@ -1,10 +1,10 @@
-<!--
-This button is used to call the show page.
--->
-
-<!-- Button -->
-<span class="">
- <g:link action="show" id="${item ? item.id : params.id}" role="button" class="btn btn-sm" title="${message(code: 'default.button.show.label', default: 'Show')}">
- <i class="icon-eye-open icon-large"></i>
- </g:link>
-</span>
+<!--
+This button is used to call the show page.
+-->
+
+<!-- Button -->
+<span class="">
+ <g:link action="show" id="${item ? item.id : params.id}" role="button" class="btn btn-sm" title="${message(code: 'default.button.show.label', default: 'Show')}">
+ <i class="glyphicon glyphicon-eye-open"></i>
+ </g:link>
+</span>
View
20 grails-app/views/_common/modals/_deleteSymbolLink.gsp
@@ -1,10 +1,10 @@
-<!--
-This modal is used to show a button that initiates the delete action.
--->
-
-<!-- Button to trigger modal -->
-<a href="#DeleteModal" role="button" class="btn btn-danger btn-sm" data-toggle="modal" title="${message(code: 'default.button.delete.label', default: 'Delete')}">
- <i class="icon-trash icon-large"></i>
-</a>
-
-<g:render template="/_common/modals/deleteDialog" model="[item: item]"/>
+<!--
+This modal is used to show a button that initiates the delete action.
+-->
+
+<!-- Button to trigger modal -->
+<a href="#DeleteModal" role="button" class="btn btn-danger btn-sm" data-toggle="modal" title="${message(code: 'default.button.delete.label', default: 'Delete')}">
+ <i class="glyphicon glyphicon-trash"></i>
+</a>
+
+<g:render template="/_common/modals/deleteDialog" model="[item: item]"/>
View
22 grails-app/views/_common/modals/_deleteTextLink.gsp
@@ -1,11 +1,11 @@
-<!--
-This modal is used to show a button that initiates the delete action.
--->
-
-<!-- Button to trigger modal if Javascript is available -->
-<a href="#DeleteModal" role="button" class="" data-toggle="modal" title="${message(code: 'default.button.delete.label', default: 'Delete')}">
- <i class="icon-trash"></i>
- <g:message code="default.button.delete.label" default="Delete"/>
-</a>
-
-<g:render template="/_common/modals/deleteDialog" model="[item: item]"/>
+<!--
+This modal is used to show a button that initiates the delete action.
+-->
+
+<!-- Button to trigger modal if Javascript is available -->
+<a href="#DeleteModal" role="button" class="" data-toggle="modal" title="${message(code: 'default.button.delete.label', default: 'Delete')}">
+ <i class="glyphicon glyphicon-trash"></i>
+ <g:message code="default.button.delete.label" default="Delete"/>
+</a>
+
+<g:render template="/_common/modals/deleteDialog" model="[item: item]"/>
View
24 grails-app/views/_common/modals/_registerTextLink.gsp
@@ -1,12 +1,12 @@
-<!--
-This modal is used to show a button that initiates the registration action.
--->
-
-<!-- Button to trigger modal if Javascript is available -->
-<button href="#RegisterModal" class="btn btn-block btn-success" role="button" data-toggle="modal" title="${message(code: 'security.register.label', default: 'Register')}">
- <i class="icon-signin"></i>
- <g:message code="security.register.label"/>
-</button>
-
-<!-- NOTE: the renderDialog MUST be placed outside the NavBar (at least for Bootstrap 2.1.1): see bottom of kickstart.gsp -->
-<%-- <g:render template="/_common/modals/registerDialog" model="[item: item]"/>--%>
+<!--
+This modal is used to show a button that initiates the registration action.
+-->
+
+<!-- Button to trigger modal if Javascript is available -->
+<button href="#RegisterModal" class="btn btn-block btn-success" role="button" data-toggle="modal" title="${message(code: 'security.register.label', default: 'Register')}">
+ <i class="glyphicon glyphicon-signin"></i>
+ <g:message code="security.register.label"/>
+</button>
+
+<!-- NOTE: the renderDialog MUST be placed outside the NavBar (at least for Bootstrap 2.1.1): see bottom of kickstart.gsp -->
+<%-- <g:render template="/_common/modals/registerDialog" model="[item: item]"/>--%>
View
84 grails-app/views/_errors/403.gsp
@@ -1,43 +1,43 @@
-<html>
- <head>
- <title>403 - Forbidden!</title>
- <meta name="layout" content="kickstart" />
- <g:set var="layout_nomainmenu" value="${true}" scope="request"/>
- <g:set var="layout_nosecondarymenu" value="${true}" scope="request"/>
- </head>
-
-<body>
- <content tag="header">
- <!-- Empty Header -->
- </content>
-
- <section id="Error" class="">
- <div class="big-message">
- <div class="container">
- <h1>
- <g:message code="error.403.callout"/>
- </h1>
- <h2>
- <g:message code="error.403.title"/>
- </h2>
- <p>
- <g:message code="error.403.message"/>
- </p>
-
- <div class="actions">
- <a href="${createLink(uri: '/')}" class="btn btn-large btn-primary">
- <i class="icon-chevron-left icon-white"></i>
- <g:message code="error.button.backToHome"/>
- </a>
- <a href="${createLink(uri: '/contact')}" class="btn btn-large btn-success">
- <i class="icon-envelope"></i>
- <g:message code="error.button.contactSupport"/>
- </a>
- </div>
- </div>
- </div>
- </section>
-
-
- </body>
+<html>
+ <head>
+ <title>403 - Forbidden!</title>
+ <meta name="layout" content="kickstart" />
+ <g:set var="layout_nomainmenu" value="${true}" scope="request"/>
+ <g:set var="layout_nosecondarymenu" value="${true}" scope="request"/>
+ </head>
+
+<body>
+ <content tag="header">
+ <!-- Empty Header -->
+ </content>
+
+ <section id="Error" class="">
+ <div class="big-message">
+ <div class="container">
+ <h1>
+ <g:message code="error.403.callout"/>
+ </h1>
+ <h2>
+ <g:message code="error.403.title"/>
+ </h2>
+ <p>
+ <g:message code="error.403.message"/>
+ </p>
+
+ <div class="actions">
+ <a href="${createLink(uri: '/')}" class="btn btn-large btn-primary">
+ <i class="glyphicon glyphicon-chevron-left icon-white"></i>
+ <g:message code="error.button.backToHome"/>
+ </a>
+ <a href="${createLink(uri: '/contact')}" class="btn btn-large btn-success">
+ <i class="glyphicon glyphicon-envelope"></i>
+ <g:message code="error.button.contactSupport"/>
+ </a>
+ </div>
+ </div>
+ </div>
+ </section>
+
+
+ </body>
</html>
View
84 grails-app/views/_errors/404.gsp
@@ -1,43 +1,43 @@
-<html>
- <head>
- <title><g:message code="error.404.title"/></title>
- <meta name="layout" content="kickstart" />
- <g:set var="layout_nomainmenu" value="${true}" scope="request"/>
- <g:set var="layout_nosecondarymenu" value="${true}" scope="request"/>
- </head>
-
-<body>
- <content tag="header">
- <!-- Empty Header -->
- </content>
-
- <section id="Error" class="">
- <div class="big-message">
- <div class="container">
- <h1>
- <g:message code="error.404.callout"/>
- </h1>
- <h2>
- <g:message code="error.404.title"/>
- </h2>
- <p>
- <g:message code="error.404.message"/>
- </p>
-
- <div class="actions">
- <a href="${createLink(uri: '/')}" class="btn btn-large btn-primary">
- <i class="icon-chevron-left icon-white"></i>
- <g:message code="error.button.backToHome"/>
- </a>
- <a href="${createLink(uri: '/contact')}" class="btn btn-large btn-success">
- <i class="icon-envelope"></i>
- <g:message code="error.button.contactSupport"/>
- </a>
- </div>
- </div>
- </div>
- </section>
-
-
- </body>
+<html>
+ <head>
+ <title><g:message code="error.404.title"/></title>
+ <meta name="layout" content="kickstart" />
+ <g:set var="layout_nomainmenu" value="${true}" scope="request"/>
+ <g:set var="layout_nosecondarymenu" value="${true}" scope="request"/>
+ </head>
+
+<body>
+ <content tag="header">
+ <!-- Empty Header -->
+ </content>
+
+ <section id="Error" class="">
+ <div class="big-message">
+ <div class="container">
+ <h1>
+ <g:message code="error.404.callout"/>
+ </h1>
+ <h2>
+ <g:message code="error.404.title"/>
+ </h2>
+ <p>
+ <g:message code="error.404.message"/>
+ </p>
+
+ <div class="actions">
+ <a href="${createLink(uri: '/')}" class="btn btn-large btn-primary">
+ <i class="glyphicon glyphicon-chevron-left icon-white"></i>
+ <g:message code="error.button.backToHome"/>
+ </a>
+ <a href="${createLink(uri: '/contact')}" class="btn btn-large btn-success">
+ <i class="glyphicon glyphicon-envelope"></i>
+ <g:message code="error.button.contactSupport"/>
+ </a>
+ </div>
+ </div>
+ </div>
+ </section>
+
+
+ </body>
</html>
View
2  grails-app/views/_errors/500.gsp
@@ -9,7 +9,7 @@
<body>
<section id="overview" class="">
- <div class="alert alert-error">
+ <div class="alert alert-danger">
${request.'javax.servlet.error.message'.indexOf(':') != -1 ? request.'javax.servlet.error.message'?.substring(0, request.'javax.servlet.error.message'?.indexOf(':')).encodeAsHTML() : request.'javax.servlet.error.message'?.encodeAsHTML()}
<g:if test="${request.'javax.servlet.error.message' == null}">
</g:if>
View
84 grails-app/views/_errors/503.gsp
@@ -1,43 +1,43 @@
-<html>
- <head>
- <title><g:message code="error.503.title"/></title>
- <meta name="layout" content="kickstart" />
- <g:set var="layout_nomainmenu" value="${true}" scope="request"/>
- <g:set var="layout_nosecondarymenu" value="${true}" scope="request"/>
- </head>
-
-<body>
- <content tag="header">
- <!-- Empty Header -->
- </content>
-
- <section id="Error" class="">
- <div class="big-message">
- <div class="container">
- <h1>
- <g:message code="error.503.callout"/>
- </h1>
- <h2>
- <g:message code="error.503.title"/>
- </h2>
- <p>
- <g:message code="error.503.message"/>
- </p>
-
- <div class="actions">
- <a href="${createLink(uri: '/')}" class="btn btn-large btn-primary">
- <i class="icon-chevron-left icon-white"></i>
- <g:message code="error.button.backToHome"/>
- </a>
- <a href="${createLink(uri: '/contact')}" class="btn btn-large btn-success">
- <i class="icon-envelope"></i>
- <g:message code="error.button.contactSupport"/>
- </a>
- </div>
- </div>
- </div>
- </section>
-
-
- </body>
+<html>
+ <head>
+ <title><g:message code="error.503.title"/></title>
+ <meta name="layout" content="kickstart" />
+ <g:set var="layout_nomainmenu" value="${true}" scope="request"/>
+ <g:set var="layout_nosecondarymenu" value="${true}" scope="request"/>
+ </head>
+
+<body>
+ <content tag="header">
+ <!-- Empty Header -->
+ </content>
+
+ <section id="Error" class="">
+ <div class="big-message">
+ <div class="container">
+ <h1>
+ <g:message code="error.503.callout"/>
+ </h1>
+ <h2>
+ <g:message code="error.503.title"/>
+ </h2>
+ <p>
+ <g:message code="error.503.message"/>
+ </p>
+
+ <div class="actions">
+ <a href="${createLink(uri: '/')}" class="btn btn-large btn-primary">
+ <i class="glyphicon glyphicon-chevron-left icon-white"></i>
+ <g:message code="error.button.backToHome"/>
+ </a>
+ <a href="${createLink(uri: '/contact')}" class="btn btn-large btn-success">
+ <i class="glyphicon glyphicon-envelope"></i>
+ <g:message code="error.button.contactSupport"/>
+ </a>
+ </div>
+ </div>
+ </div>
+ </section>
+
+
+ </body>
</html>
View
67 grails-app/views/_menu/_admin.gsp
@@ -1,42 +1,25 @@
-<%--<ul class="nav pull-right">--%>
- <li class="dropdown">
- <a class="dropdown-toggle" data-toggle="dropdown" href="#">
- <i class="icon-wrench"></i>
- <g:message code="default.admin.label"/><b class="caret"></b>
- </a>
- <ul class="dropdown-menu">
- <li class="">
- <a tabindex="-1" href="#"><b>Technical Admin</b></a>
- </li>
- <g:if env="development">
- <li class="">
- <a href="${createLink(uri: '/dbconsole')}">
- <i class="icon-dashboard"></i>
- <g:message code="default.dbconsole.label"/>
- </a>
- </li>
- </g:if>
- <li class="">
- <a href="${createLink(uri: '/systeminfo')}">
- <i class="icon-info-sign"></i>
- <g:message code="default.systeminfo.label"/>
- </a>
- </li>
-<%-- <li class="dropdown-submenu">--%>
-<%-- <a tabindex="-1" href="#">--%>
-<%-- <i class="icon-sitemap"></i>--%>
-<%-- All Controller--%>
-<%-- </a>--%>
-<%-- <ul class="dropdown-menu">--%>
-<%-- <li class="controller"><g:link controller="home">HomeController</g:link></li>--%>
-<%-- <li class="divider"></li>--%>
-<%-- <g:each var="c" in="${grailsApplication.controllerClasses.sort { it.logicalPropertyName } }">--%>
-<%-- <g:if test="${c.logicalPropertyName != 'home'}">--%>
-<%-- <li class="controller"><g:link controller="${c.logicalPropertyName}">${c?.fullName?.substring(c?.fullName?.lastIndexOf('.')+1)}</g:link></li>--%>
-<%-- </g:if>--%>
-<%-- </g:each>--%>
-<%-- </ul>--%>
-<%-- </li>--%>
- </ul>
- </li>
-<%--</ul>--%>
+<li class="dropdown">
+ <a class="dropdown-toggle" data-toggle="dropdown" href="#">
+ <i class="glyphicon glyphicon-wrench"></i>
+ <g:message code="default.admin.label"/><b class="caret"></b>
+ </a>
+ <ul class="dropdown-menu">
+ <li class="">
+ <a tabindex="-1" href="#"><b>Technical Admin</b></a>
+ </li>
+ <g:if env="development">
+ <li class="">
+ <a href="${createLink(uri: '/dbconsole')}">
+ <i class="glyphicon glyphicon-dashboard"></i>
+ <g:message code="default.dbconsole.label"/>
+ </a>
+ </li>
+ </g:if>
+ <li class="">
+ <a href="${createLink(uri: '/systeminfo')}">
+ <i class="glyphicon glyphicon-info-sign"></i>
+ <g:message code="default.systeminfo.label"/>
+ </a>
+ </li>
+ </ul>
+</li>
View
22 grails-app/views/_menu/_controller.gsp
@@ -4,17 +4,17 @@
<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
<li class="controller">
<g:link controller="${c.logicalPropertyName}">
- <g:if test="${c.fullName.contains('HomeController')}">
- <i class="icon-home"></i>
- </g:if>
- <g:elseif test="${c.fullName.contains('DemoPageController')}">
- <i class="icon-beaker"></i>
- </g:elseif>
- <g:elseif test="${c.fullName.contains('DbdocController')}">
- <i class="icon-sitemap"></i>
- </g:elseif>
- ${c.fullName.substring(c.fullName.lastIndexOf('.')+1)}
- </g:link>
+ <g:if test="${c.fullName.contains('HomeController')}">
+ <i class="glyphicon glyphicon-home"></i>
+ </g:if>
+ <g:elseif test="${c.fullName.contains('DemoPageController')}">
+ <i class="glyphicon glyphicon-list-alt"></i>
+ </g:elseif>
+ <g:elseif test="${c.fullName.contains('DbdocController')}">
+ <i class="glyphicon glyphicon-cloud"></i>
+ </g:elseif>
+ ${c.fullName.substring(c.fullName.lastIndexOf('.')+1)}
+ </g:link>
</li>
</g:each>
</ul>
View
12 grails-app/views/_menu/_info.gsp
@@ -1,34 +1,32 @@
<li class="dropdown dropdown-btn">
-
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
- <i class="icon-info-sign"></i>
+ <i class="glyphicon glyphicon-info-sign"></i>
<g:message code="default.info.label"/> <b class="caret"></b>
</a>
<ul class="dropdown-menu">
-
<%-- Note: Links to pages without controller are redirected in conf/UrlMappings.groovy --%>
<li class="">
<a href="${createLink(uri: '/about')}">
- <i class="icon-info-sign"></i>
+ <i class="glyphicon glyphicon-info-sign"></i>
<g:message code="default.about.label"/>
</a>
</li>
<li class="">
<a href="http://wordpress.com/signup/">
- <i class="icon-align-justify"></i>
+ <i class="glyphicon glyphicon-align-justify"></i>
<i><g:message code="default.blog.label"/></i>
</a>
</li>
<li class="">
<a href="${createLink(uri: '/terms')}">
- <i class="icon-legal"></i>
+ <i class="glyphicon glyphicon-exclamation-sign"></i>
<g:message code="default.terms.label"/>
</a>
</li>
<li class="">
<a href="${createLink(uri: '/contact')}">
- <i class="icon-envelope"></i>
+ <i class="glyphicon glyphicon-envelope"></i>
<g:message code="default.contact.label"/>
</a>
</li>
View
58 grails-app/views/_menu/_language.gsp
@@ -1,30 +1,30 @@
-<g:set var="lang" value="${session.'org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE' ?: org.springframework.web.servlet.support.RequestContextUtils.getLocale(request).toString().substring(0,2)}"/>
-<g:set var="currentURL" value="${request.forwardURI}"/>
-
-<%--<ul class="nav secondary-nav language-dropdown pull-right">--%>
- <li class="dropdown dropdown-btn js-language-dropdown">
- <a class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#" href="javascript:;">
- <img class="" src="${resource(plugin: 'kickstart-with-bootstrap', dir: 'images/flags',file: lang.toString()+'.png')}" />
- </a>
- <ul class="dropdown-menu dropdown-menu-dark" role="menu">
-
- <!-- assuming that the default locale is English -->
- <li><a class="js-language-link" title="English" data-lang-code="en" href="${currentURL+'?lang=en'}">
- <img class="" src="${resource(plugin: 'kickstart-with-bootstrap', dir: 'images/flags',file: 'en.png')}"/>
- <g:message code="language.en" default="en"/> ${currentlURL }
- </a></li>
-
- <li class="divider"></li>
-
- <!-- get list of all locales available due to an existing property-file in /grails-app/i18n (set once in Bootstrap.groovy) -->
- <g:set var="allLocales" value="${grailsApplication.config.grails.i18n.locales}"/>
- <g:each status="i" var="locale" in="${allLocales}">
- <li><a class="js-language-link" title="${message(code: 'language.'+locale, default: locale)}" data-lang-code="${locale}" href="${currentURL+'?lang='+locale}">
- <img class="" src="${resource(plugin: 'kickstart-with-bootstrap', dir: 'images/flags',file: locale+'.png')}"/>
- <g:message code="language.${locale}" default="${locale}"/>
- </a></li>
- </g:each>
-
- </ul>
- </li>
+<g:set var="lang" value="${session.'org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE' ?: org.springframework.web.servlet.support.RequestContextUtils.getLocale(request).toString().substring(0,2)}"/>
+<g:set var="currentURL" value="${request.forwardURI}"/>
+
+<%--<ul class="nav secondary-nav language-dropdown pull-right">--%>
+ <li class="dropdown dropdown-btn js-language-dropdown">
+ <a class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#" href="javascript:;">
+ <img class="" src="${resource(plugin: 'kickstart', dir: 'images/flags',file: lang.toString()+'.png')}" />
+ </a>
+ <ul class="dropdown-menu dropdown-menu-dark" role="menu">
+
+ <!-- assuming that the default locale is English -->
+ <li><a class="js-language-link" title="English" data-lang-code="en" href="${currentURL+'?lang=en'}">
+ <img class="" src="${resource(plugin: 'kickstart', dir: 'images/flags',file: 'en.png')}"/>
+ <g:message code="language.en" default="en"/> ${currentlURL }
+ </a></li>
+
+ <li class="divider"></li>
+
+ <!-- get list of all locales available due to an existing property-file in /grails-app/i18n (set once in Bootstrap.groovy) -->
+ <g:set var="allLocales" value="${grailsApplication.config.grails.i18n.locales}"/>
+ <g:each status="i" var="locale" in="${allLocales}">
+ <li><a class="js-language-link" title="${message(code: 'language.'+locale, default: locale)}" data-lang-code="${locale}" href="${currentURL+'?lang='+locale}">
+ <img class="" src="${resource(plugin: 'kickstart', dir: 'images/flags',file: locale+'.png')}"/>
+ <g:message code="language.${locale}" default="${locale}"/>
+ </a></li>
+ </g:each>
+
+ </ul>
+ </li>
<%--</ul>--%>
View
2  grails-app/views/_menu/_navbar.gsp
@@ -10,7 +10,7 @@
</button>
<a class="navbar-brand" href="${createLink(uri: '/')}">
- <img class="logo" src="${resource(plugin: 'kickstart-with-bootstrap', dir:'kickstart/img', file:'grails.png')}" alt="${meta(name:'app.name')}" width="16px" height="16px"/>
+ <img class="logo" src="${resource(plugin: 'kickstart', dir:'images', file:'brand_logo.png')}" alt="${meta(name:'app.name')}" width="16px" height="16px"/>
${meta(name:'app.name')}
<small> v${meta(name:'app.version')}</small>
</a>
View
2  grails-app/views/_menu/_search.gsp
@@ -1,5 +1,5 @@
<g:form controller="search" action="viaNavBar" method="post" class="navbar-form navbar-left" >
<div class="form-group fieldcontain text-center">
- <input name="query" type="text" class="form-control" placeholder="${message(code: 'search.navbar.placeholder', default: 'Search ...')}" value="${query}">
+ <input name="query" type="text" class="form-control nav-search" placeholder="${message(code: 'search.navbar.placeholder', default: 'Search ...')}" value="${query}">
</div>
</g:form>
View
6 grails-app/views/_menu/_submenubar.gsp
@@ -12,16 +12,16 @@ This menu is used to show function that can be triggered on the content (an obje
<g:set var="entityName" value="${message(code: params.controller+'.label', default: params.controller.substring(0,1).toUpperCase() + params.controller.substring(1).toLowerCase())}" />
<li class="${ params.action == "list" ? 'active' : '' }">
- <g:link action="list"><i class="icon-th-list"></i> <g:message code="default.list.label" args="[entityName]"/></g:link>
+ <g:link action="list"><i class="glyphicon glyphicon-th-list"></i> <g:message code="default.list.label" args="[entityName]"/></g:link>
</li>
<li class="${ params.action == "create" ? 'active' : '' }">
- <g:link action="create"><i class="icon-plus"></i> <g:message code="default.new.label" args="[entityName]"/></g:link>
+ <g:link action="create"><i class="glyphicon glyphicon-plus"></i> <g:message code="default.new.label" args="[entityName]"/></g:link>
</li>
<g:if test="${ params.action == 'show' || params.action == 'edit' }">
<!-- the item is an object (not a list) -->
<li class="${ params.action == "edit" ? 'active' : '' }">
- <g:link action="edit" id="${params.id}"><i class="icon-pencil"></i> <g:message code="default.edit.label" args="[entityName]"/></g:link>
+ <g:link action="edit" id="${params.id}"><i class="glyphicon glyphicon-pencil"></i> <g:message code="default.edit.label" args="[entityName]"/></g:link>
</li>
<li class="">
<g:render template="/_common/modals/deleteTextLink"/>
View
136 grails-app/views/_menu/_user.gsp
@@ -1,68 +1,68 @@
-<%--<ul class="nav pull-right">--%>
- <li class="dropdown">
-
-<%--<sec:ifNotLoggedIn>--%>
-
- <a class="dropdown-toggle" data-toggle="dropdown" href="#">
- <!-- TODO: integrate Springsource Security etc. and show User's name ... -->
- <i class="icon-user"></i>
- <g:message code="security.signin.label"/><b class="caret"></b>
- </a>
-
- <ul class="dropdown-menu" role="menu">
- <li class="form-container">
- <form action="/j_spring_security_check" method="post" accept-charset="UTF-8">
-<%-- <form action="login" method="post" accept-charset="UTF-8">--%>
- <input class="form-control" style="margin-bottom: 15px;" type="text" placeholder="Username" id="username" name="username">
- <input class="form-control" style="margin-bottom: 15px;" type="password" placeholder="Password" id="password" name="password">
- <input style="float: left; margin-right: 10px;" type="checkbox" name="remember-me" id="remember-me" value="1">
- <label class="string optional" for="user_remember_me"> Remember me</label>
- <input class="btn btn-primary btn-block" type="submit" id="sign-in" value="Sign In">
- </form>
- </li>
- <li class="divider"></li>
- <li class="button-container">
- <!-- NOTE: the renderDialog MUST be placed outside the NavBar (at least for Bootstrap 2.1.1): see bottom of main.gsp -->
- <g:render template="/_common/modals/registerTextLink"/>
- </li>
- </ul>
-
-<%--</sec:ifNotLoggedIn>--%>
-<%--<sec:ifLoggedIn>--%>
-<%----%>
-<%-- <a class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#" href="#">--%>
-<%-- <!-- TODO: Only show menu items based on permissions (e.g., Guest has no account page) -->--%>
-<%-- <i class="icon-user icon-white"></i>--%>
-<%-- ${user.name}--%>
-<%-- <g:message code="default.user.unknown.label" default="Guest"/> <b class="caret"></b>--%>
-<%-- </a>--%>
-<%-- <ul class="dropdown-menu" role="menu">--%>
-<%-- <!-- TODO: Only show menu items based on permissions -->--%>
-<%-- <li class=""><a href="${createLink(uri: '/')}">--%>
-<%-- <i class="icon-user"></i>--%>
-<%-- <g:message code="user.show.label"/>--%>
-<%-- </a></li>--%>
-<%-- <li class=""><a href="${createLink(uri: '/')}">--%>
-<%-- <i class="icon-cogs"></i>--%>
-<%-- <g:message code="user.settings.change.label"/>--%>
-<%-- </a></li>--%>
-<%-- --%>
-<%-- <li class="divider"></li>--%>
-<%-- <li class=""><a href="${createLink(uri: '/')}">--%>
-<%-- <i class="icon-off"></i>--%>
-<%-- <g:message code="security.signoff.label"/>--%>
-<%-- </a></li>--%>
-<%-- </ul>--%>
-<%----%>
-<%--</sec:ifLoggedIn>--%>
-
- </li>
-<%--</ul>--%>
-
-<noscript>
-<ul class="nav pull-right">
- <li class="">
- <g:link controller="user" action="show"><g:message code="default.user.unknown.label"/></g:link>
- </li>
-</ul>
-</noscript>
+<%--<ul class="nav pull-right">--%>
+ <li class="dropdown">
+
+<%--<sec:ifNotLoggedIn>--%>
+
+ <a class="dropdown-toggle" data-toggle="dropdown" href="#">
+ <!-- TODO: integrate Springsource Security etc. and show User's name ... -->
+ <i class="glyphicon glyphicon-user"></i>
+ <g:message code="security.signin.label"/><b class="caret"></b>
+ </a>
+
+ <ul class="dropdown-menu" role="menu">
+ <li class="form-container">
+ <form action="/j_spring_security_check" method="post" accept-charset="UTF-8">
+<%-- <form action="login" method="post" accept-charset="UTF-8">--%>
+ <input class="form-control" style="margin-bottom: 15px;" type="text" placeholder="Username" id="username" name="username">
+ <input class="form-control" style="margin-bottom: 15px;" type="password" placeholder="Password" id="password" name="password">
+ <input style="float: left; margin-right: 10px;" type="checkbox" name="remember-me" id="remember-me" value="1">
+ <label class="string optional" for="user_remember_me"> Remember me</label>
+ <input class="btn btn-primary btn-block" type="submit" id="sign-in" value="Sign In">
+ </form>
+ </li>
+ <li class="divider"></li>
+ <li class="button-container">
+ <!-- NOTE: the renderDialog MUST be placed outside the NavBar (at least for Bootstrap 2.1.1): see bottom of main.gsp -->
+ <g:render template="/_common/modals/registerTextLink"/>
+ </li>
+ </ul>
+
+<%--</sec:ifNotLoggedIn>--%>
+<%--<sec:ifLoggedIn>--%>
+<%----%>
+<%-- <a class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#" href="#">--%>
+<%-- <!-- TODO: Only show menu items based on permissions (e.g., Guest has no account page) -->--%>
+<%-- <i class="glyphicon glyphicon-user icon-white"></i>--%>
+<%-- ${user.name}--%>
+<%-- <g:message code="default.user.unknown.label" default="Guest"/> <b class="caret"></b>--%>
+<%-- </a>--%>
+<%-- <ul class="dropdown-menu" role="menu">--%>
+<%-- <!-- TODO: Only show menu items based on permissions -->--%>
+<%-- <li class=""><a href="${createLink(uri: '/')}">--%>
+<%-- <i class="glyphicon glyphicon-user"></i>--%>
+<%-- <g:message code="user.show.label"/>--%>
+<%-- </a></li>--%>
+<%-- <li class=""><a href="${createLink(uri: '/')}">--%>
+<%-- <i class="glyphicon glyphicon-cogs"></i>--%>
+<%-- <g:message code="user.settings.change.label"/>--%>
+<%-- </a></li>--%>
+<%-- --%>
+<%-- <li class="divider"></li>--%>
+<%-- <li class=""><a href="${createLink(uri: '/')}">--%>
+<%-- <i class="glyphicon glyphicon-off"></i>--%>
+<%-- <g:message code="security.signoff.label"/>--%>
+<%-- </a></li>--%>
+<%-- </ul>--%>
+<%----%>
+<%--</sec:ifLoggedIn>--%>
+
+ </li>
+<%--</ul>--%>
+
+<noscript>
+<ul class="nav pull-right">
+ <li class="">
+ <g:link controller="user" action="show"><g:message code="default.user.unknown.label"/></g:link>
+ </li>
+</ul>
+</noscript>
View
237 grails-app/views/home/index.gsp
@@ -1,144 +1,93 @@
-<html>
-
-<head>
- <title><g:message code="default.welcome.title" args="[meta(name:'app.name')]"/> </title>
- <meta name="layout" content="kickstart" />
-</head>
-
-<body>
-
- <section id="intro" class="first">
- <h1>Welcome to Grails using Kickstart with Bootstrap</h1>
- <p>
- Congratulations, you have successfully started your first
- Grails application with the Kickstart extension! At the moment this
- is the default page, feel free to modify it to either redirect to a
- controller or display whatever content you may choose.
- </p>
- <h2>Introduction</h2>
- <p>
- Kickstart is an extension for Grails in order to start your
- project with a good looking frontend. It is intended to be used in
- rapid application scenarios such as a Startup Weekend or a
- prototyping session with a customer. This plugin provides adapted
- scaffolding templates for standard CRUD pages using the Bootstrap web
- page template by Twitter. Additionally, Kickstart includes some
- general GSPs pages (e.g., about.gsp), a minimal logging/orientation
- Filter, and a language switcher.
- </p>
- <g:link class="btn btn-large btn-primary" controller="nextSteps">Next Steps</g:link>
- </section>
-
- <section id="info">
- <div class="row">
- <div class="col-md-4">
- <div class="center">
- <img class="frontpageImage" src="${resource(plugin: 'kickstart-with-bootstrap', dir: 'images/frontpage',file: 'bs-docs-twitter-github.png')}" />
- <h3>Bootstrap 3.0.2</h3>
- </div>
- <p>Kickstart uses <a href ="http://twitter.github.com/bootstrap/">Bootstrap</a> to render the web pages.
- Bootstrap is made by Mark Otto (<a href="http://twitter.com/mdo">@mdo</a>) and Billy Gates (<a href="http://twitter.com/fat">@fat</a>).
- Bootstrap is designed to help people of all skill levels as a complete kit or to start something more complex.
- </p>
- </div>
- <div class="col-md-4">
- <div class="center">
- <i class="icon-flag icon-7x" style="font-size: 7em;"></i>
- <h3>Font Awesome 3.2.1</h3>
- </div>
- <p>Kickstart uses <a href ="http://fortawesome.github.com/Font-Awesome">Font Awesome</a> to render scalable icons using a vector font.
- Font Awesome is a pictographic language of web-related actions by Dave Gandy.
- Font Awesome icons are vectors, which mean they're gorgeous on high-resolution displays.
- </p>
- </div>
- <div class="col-md-4">
- <div class="center">
- <img class="frontpageImage" src="${resource(plugin: 'kickstart-with-bootstrap', dir: 'images/frontpage',file: 'html5css3js8.png')}"/>
- <h3>Tech Foundation</h3>
- </div>
- <p>Bootstrap is based on elements of HTML 5, CSS 3, Javascript 1.8, and jQuery 1.7 with progressively enhanced
- components to enable a responsive design of the website.
- Kickstart is built using Groovy 2.0 and Java 7 integrated into the Grails 2.1 framework.
- </p>
-<!-- <li>Less 1.3</li> -->
- </div>
- </div>
- </section>
-
- <section id="info2">
- <div class="row">
- <div class="col-md-4">
- <div class="center">
- <img class="" src="${resource(plugin: 'kickstart-with-bootstrap', dir: 'images/frontpage',file: 'Datepicker.png')}" />
- <h3>Datepicker</h3>
- </div>
- <p>Kickstart uses the <a href ="https://github.com/eternicode/bootstrap-datepicker">Datepicker for Bootstrap</a> by Stefan Petre and Andrew Rowls</p>
- </div>
- <div class="col-md-4">
- <div class="center">
- <img class="" src="${resource(plugin: 'kickstart-with-bootstrap', dir: 'images/frontpage',file: 'flags_preview_large.png')}" />
- <h3>Language Selector</h3>
- </div>
- <p>Kickstart contains a language selector that uses the <a href="http://www.famfamfam.com/lab/icons/flags/">FamFamFam flag icons</a> by Mark James.
- It automatically detects which languages are available and offers them in a dropdown menu.</p>
- </div>
- <div class="col-md-4">
- <div class="center">
- <img class="frontpageImage" src="${resource(plugin: 'kickstart-with-bootstrap', dir: 'images/frontpage',file: 'browser_logos.png')}" />
- <h3>Browser support</h3>
- </div>
- <p>Bootstrap is tested and supported in major modern browsers like Chrome 14, Safari 5+, Opera 11, Internet Explorer 7, and Firefox 5.</p>
- </div>
- </div>
- </section>
-
- <section id="info3">
- <div class="row">
- <div class="col-md-4">
- <div class="center">
- <h3>Other Features</h3>
- </div>
- <p>Kickstart contains several pages as starting points for the average website such as an About Page, Contact Page, 404, etc.</p>
- </div>
- <div class="col-md-4">
- <div class="center">
- <h3>Usage</h3>
- </div>
- <p>After installation you can call the script "grails
- kickstartWithBootstrap" which will copy some files into your
- project. It will overwrite only few files (e.g., in conf, src, and
- views) - <b>you should use it only on fresh new Grails projects</b>.
- </p>
- </div>
- <div class="col-md-4">
- <div class="center">
- <h3>Notes</h3>
- </div>
- <p></p>
- <ul>
- <li>Currently, Kickstart works with Grails 2.x!</li>
- <li>Kickstart does NOT use the Bootstrap plugin.</li>
- <li>I18N is only available for English and German!</li>
- </ul>
- </div>
-<%-- <div class="col-md-4">--%>
-<%-- <div class="center">--%>
-<%-- <h3>Terms of Use</h3>--%>
-<%-- </div>--%>
-<%-- <p></p>--%>
-<%-- <ul>--%>
-<%-- <li>Bootstrap (from Twitter): Code licensed under the Apache--%>
-<%-- License v2.0. Documentation licensed under CC BY 3.0.--%>
-<%-- (<a href="http://twitter.com/TwBootstrap">@TwBootstrap</a> , <a href="http://twitter.github.com/bootstrap/">http://twitter.github.com/bootstrap/</a>)</li>--%>
-<%-- <li>Kickstart Plugins: Code licensed under the Apache License--%>
-<%-- v2.0. Documentation licensed under CC BY 3.0. Copyright 2011 Jörg--%>
-<%-- Rech (<a href="http://twitter.com/JoergRech">@JoergRech</a>, <a href="http://joerg-rech.com">http://joerg-rech.com</a>)</li>--%>
-<%-- </ul>--%>
-<%-- </div>--%>
- </div>
-
- </section>
-
-</body>
-
-</html>
+<html>
+
+<head>
+ <title><g:message code="default.welcome.title" args="[meta(name:'app.name')]"/> </title>
+ <meta name="layout" content="kickstart" />
+</head>
+
+<body>
+
+ <section id="intro" class="first">
+ <h1>Welcome to Kickstart with Bootstrap 3.0.3 for Grails 2.3</h1>
+ <p>
+ Congratulations, you have successfully started your first
+ Grails application with the Kickstart extension! At the moment this
+ is the default page, feel free to modify it to either redirect to a
+ controller or display whatever content you may choose.
+ </p>
+ <h2>Introduction</h2>
+ <p>
+ Kickstart is an extension for Grails in order to start your
+ project with a good looking frontend. It is intended to be used in
+ rapid application scenarios such as a Startup Weekend or a
+ prototyping session with a customer. This plugin provides adapted
+ scaffolding templates for standard CRUD pages using the Bootstrap web
+ page template by Twitter. Additionally, Kickstart includes some
+ general GSPs pages (e.g., about.gsp), a minimal logging/orientation
+ Filter, and a language switcher.
+ </p>
+ <g:link class="btn btn-large btn-primary" controller="nextSteps">Next Steps</g:link>
+ </section>
+
+ <section id="info">
+ <div class="row">
+ <div class="col-md-4">
+ <div class="center">
+ <img class="frontpageImage" src="${resource(plugin: 'kickstart', dir: 'images/frontpage',file: 'bs-docs-twitter-github.png')}" />
+ <h3>Bootstrap 3.0.3</h3>
+ </div>
+ <p>Kickstart uses <a href ="http://twitter.github.com/bootstrap/">Bootstrap</a> to render the web pages.
+ Bootstrap is made by Mark Otto (<a href="http://twitter.com/mdo">@mdo</a>) and Billy Gates (<a href="http://twitter.com/fat">@fat</a>).
+ Bootstrap is designed to help people of all skill levels as a complete kit or to start something more complex.
+ </p>
+ </div>
+ <div class="col-md-4">
+ <div class="center">
+ <img class="frontpageImage" src="${resource(plugin: 'kickstart', dir: 'images/frontpage',file: 'browser_logos.png')}" />
+ <h3>Browser support</h3>
+ </div>
+ <p>Bootstrap is tested and supported in major modern browsers like Chrome 14, Safari 5+, Opera 11, Internet Explorer 7, and Firefox 5.</p>
+ </div>
+ <div class="col-md-4">
+ <div class="center">
+ <img class="frontpageImage" src="${resource(plugin: 'kickstart', dir: 'images/frontpage',file: 'html5css3js8.png')}"/>
+ <h3>Tech Foundation</h3>
+ </div>
+ <p>Bootstrap is based on elements of HTML 5, CSS 3, Javascript 1.8, and jQuery 1.7 with progressively enhanced
+ components to enable a responsive design of the website.
+ Kickstart is built using Groovy 2.x and Java 7 integrated into the Grails 2.3.x framework.
+ </p>
+ </div>
+ </div>
+ </section>
+
+ <section id="info2">
+ <div class="row">
+ <div class="col-md-4">
+ <div class="center">
+ <img class="" src="${resource(plugin: 'kickstart', dir: 'images/frontpage',file: 'Datepicker.png')}" />
+ <h3>Datepicker</h3>
+ </div>
+ <p>Kickstart uses the <a href ="https://github.com/eternicode/bootstrap-datepicker">Datepicker for Bootstrap</a> by Stefan Petre and Andrew Rowls</p>
+ </div>
+ <div class="col-md-4">
+ <div class="center">
+ <img class="" src="${resource(plugin: 'kickstart', dir: 'images/frontpage',file: 'flags_preview_large.png')}" />
+ <h3>Language Selector</h3>
+ </div>
+ <p>Kickstart contains a language selector that uses the <a href="http://www.famfamfam.com/lab/icons/flags/">FamFamFam flag icons</a> by Mark James.
+ It automatically detects which languages are available and offers them in a dropdown menu.</p>
+ </div>
+ <div class="col-md-4">
+ <div class="center">
+ <img class="" height="100" src="${resource(plugin: 'kickstart', dir: 'images/frontpage',file: 'empty.png')}" />
+ <h3>Other Features</h3>
+ </div>
+ <p>Kickstart contains several pages as starting points for the average website such as an About Page, Contact Page, 404, etc.</p>
+ </div>
+ </div>
+ </section>
+
+</body>
+
+</html>
View
32 grails-app/views/home/nextSteps.gsp
@@ -10,16 +10,31 @@
<h1>Next Steps</h1>
<section id="intro" class="first">
- <h3>Customization</h3>
+
+ <h3>Bootstrap Customization</h3>
<p>
-
<ol>
- <li><b>Search: </b> If you want to have a search on your site you need to integrate/implement a search mechanism (e.g., using Hibernate, elasticsearch, etc.). Currently the search form points to the controller "search" and action "viaNavBar" that you need to implement. The form can be edited in the file <pre>/grails-app/views/_menu/_search.gsp</pre></li>
- <li><b>Login & Registration: </b> If you want users to authenticate themselves you need to integrate/implement a security / authentication mechanism (e.g., using Spring Security or Shiro). Currently the login and registration form points the controller "login" and action "register" that you need to implement. The forms can be edited in the file <pre>/grails-app/views/_menu/_user.gsp</pre> and <pre>/grails-app/views/_common/modals/_registerDialog.gsp</pre></li>
- <li><b>NavBar/Menu: </b> To change the navbar (dark menu on top of page) edit the file <pre>/grails-app/views/_menu/_navbar.gsp</pre></li>
- <li><b>Company Info: </b> To change the pages "about", "terms", or "contact" edit them in the directory <pre>/grails-app/views/siteinfo/</pre></li>
+ <li><b>Replace CSS Theme: </b> To use another CSS-based theme of Bootstrap copy the package in the project's web-app directory (e.g., <code>/web-app/bootstrapB/</code>) and define an appropriate resource bundle (similar to KickstartResources.groovy) in the project's conf directory (e.g., <code>/grails-app/conf/BootstrapResources.groovy</code>). Then adapt the import statements in the kickstart layout file <code>/grails-app/views/layout/kickstart.gsp</code>, for example, the resource import statement could look like this:
+ <pre>&lt;r:require modules="bootstrapB"/&gt;
+&lt;r:require modules="bootstrapB_utils"/&gt;</pre>
+ </li>
+ <li><b>Use Less files:</b> To use Bootstrap's less files replace the resource import in the kickstart layout file <code>/grails-app/views/layout/kickstart.gsp</code> and use "bootstrap_less"" instead of "bootstrap". For example, the resource import statement could look like this:
+ <pre>&lt;r:require modules="bootstrap_less"/&gt;
+&lt;r:require modules="bootstrap_less_utils"/&gt;</pre>
+ </li>
</ol>
</p>
+
+ <h3>System Customization</h3>
+ <p>
+ <ol>
+ <li><b>Search: </b> If you want to have a search on your site you need to integrate/implement a search mechanism (e.g., using Hibernate, SQL, elasticsearch, etc.). Currently the search form points to the controller "search" and action "viaNavBar" that you need to implement. The form can be edited in the file <code>/grails-app/views/_menu/_search.gsp</code></li>
+ <li><b>Login & Registration: </b> If you want users to authenticate themselves you need to integrate/implement a security / authentication mechanism (e.g., using Spring Security or Shiro). Currently the login and registration form points the controller "login" and action "register" that you need to implement. The forms can be edited in the file <code>/grails-app/views/_menu/_user.gsp</code> and <code>/grails-app/views/_common/modals/_registerDialog.gsp</code></li>
+ <li><b>NavBar/Menu: </b> To change the navbar (dark menu on top of page) edit the file <code>/grails-app/views/_menu/_navbar.gsp</code></li>
+ <li><b>Company Info: </b> To change the pages "about", "terms", or "contact" edit them in the directory <code>/grails-app/views/siteinfo/</code></li>
+ </ol>
+ </p>
+
<h3>Authentication via Spring Security</h3>
<p>
If you want to provide an authentication system I recommend
@@ -36,9 +51,10 @@
</ul>
<li>Set security configuration in your Config.groovy (see <a href="http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/5%20Configuring%20Request%20Mappings%20to%20Secure%20URLs.html#5.2%20Simple%20Map%20in%20Config.groovy">here</a>)</li>
</ol>
- </section>
+
+ <%--TODO: Search via elasticsearch--%>
-<%--TODO: Search via elasticsearch--%>
+ </section>
</body>
View
14 grails-app/views/layouts/_footer.gsp
@@ -5,19 +5,19 @@
<h4>Product</h4>
<ul class="unstyled">
<li>
- <i class="icon-home"></i>
+ <i class="glyphicon glyphicon-home"></i>
<a href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a>
</li>
<li>
- <i class="icon-eye-open"></i>
+ <i class="glyphicon glyphicon-eye-open"></i>
<a href="${createLink(uri: '/')}"><g:message code="default.tour.label"/></a>
</li>
<li>
- <i class="icon-money"></i>
+ <i class="glyphicon glyphicon-money"></i>
<a href="${createLink(uri: '/')}"><g:message code="default.pricing.label"/></a>
</li>
<li>
- <i class="icon-comments"></i>
+ <i class="glyphicon glyphicon-comments"></i>
<a href="${createLink(uri: '/')}"><g:message code="default.faq.label"/></a>
</li>
</ul>
@@ -26,13 +26,13 @@
<h4>Company</h4>
<ul class="unstyled">
<li>
- <i class="icon-info-sign"></i>
+ <i class="glyphicon glyphicon-info-sign"></i>
<a href="${createLink(uri: '/about')}">
<g:message code="default.about.label"/>
</a>
</li>
<li>
- <i class="icon-envelope"></i>
+ <i class="glyphicon glyphicon-envelope"></i>
<a href="${createLink(uri: '/contact')}">
<g:message code="default.contact.label"/>
</a>
@@ -44,7 +44,7 @@
<p>Designed and built with Twitter's <a href="http://twitter.github.com/bootstrap/" target="_blank">Bootstrap</a>.
Code licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License v2.0</a>.
Documentation licensed under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.</p>
- <p>Icons from <a href ="http://fortawesome.github.com/Font-Awesome">Font Awesome</a> and <a href="http://glyphicons.com">Glyphicons Free</a>, licensed under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.</p>
+ <p>Icons from <a href="http://glyphicons.com">Glyphicons Free</a>, licensed under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.</p>
</div>
</div>
<h4>Disclaimer</h4>
View
4 grails-app/views/layouts/kickstart.gsp
@@ -10,14 +10,14 @@
<meta name="description" content="">
<meta name="author" content="">
- <link rel="shortcut icon" href="${resource(plugin: 'kickstart-with-bootstrap', dir:'images',file:'favicon.ico')}" type="image/x-icon" />
+ <link rel="shortcut icon" href="${resource(dir:'images',file:'favicon.ico')}" type="image/x-icon" />
<link rel="apple-touch-icon" href="assets/ico/apple-touch-icon.png">
<link rel="apple-touch-icon" href="assets/ico/apple-touch-icon-72x72.png" sizes="72x72">
<link rel="apple-touch-icon" href="assets/ico/apple-touch-icon-114x114.png" sizes="114x114">
<%-- Manual switch for the skin can be found in /view/_menu/_config.gsp --%>
-<%-- <r:require modules="jquery"/>--%>
+ <r:require modules="jquery"/> <%-- jQuery is required for Bootstrap! --%>
<r:require modules="bootstrap"/>
<r:require modules="bootstrap_utils"/>
View
60 grails-app/views/login/auth.gsp
@@ -0,0 +1,60 @@
+<html>
+<head>
+ <title><g:message code="springSecurity.login.title"/></title>
+ <meta name="layout" content="kickstart" />
+
+ <g:set var="layout_nomainmenu" value="${true}" scope="request"/>
+ <g:set var="layout_nosecondarymenu" value="${true}" scope="request"/>
+</head>
+
+<body>
+
+<section id="login" class="first">
+<div class="row">
+ <div class="col-md-3"></div>
+ <div class="col-md-6">
+ <form role="form" id='loginForm' class='form-horizontal' action='${postUrl}' method='POST' autocomplete='off'>
+ <div class="form-group ${hasErrors(bean: _DemoPageInstance, field: 'name', 'error')} ">
+ <h3> <g:message code="springSecurity.login.header"/> </h3>
+ </div>
+
+ <div class="form-group ${hasErrors(bean: _DemoPageInstance, field: 'name', 'error')} ">
+ <label for='username' class="control-label"><g:message code="springSecurity.login.username.label"/>:</label>
+ <div class="controls">
+ <input type='text' class='form-control col-md-4' name='j_username' id='username'/>
+ </div>
+ </div>
+
+ <div class="form-group ${hasErrors(bean: _DemoPageInstance, field: 'name', 'error')} ">
+ <label for='password' class="control-label"><g:message code="springSecurity.login.password.label"/>:</label>
+ <div class="controls">
+ <input type='password' class='form-control col-md-4' name='j_password' id='password'/>
+ </div>
+ </div>
+
+ <div id="remember_me_holder" class="form-group">
+ <label for='remember_me' class="control-label"><g:message code="springSecurity.login.remember.me.label"/></label>
+ <div class="controls">
+ <bs:checkBox class="form-control col-md-4" name="${rememberMeParameter}" value="${hasCookie}" />
+ </div>
+ </div>
+
+ <div class="form-group">
+ <input type='submit' id="submit" class="btn btn-success" value='${message(code: "springSecurity.login.button")}'/>
+ </div>
+ </form>
+ </div>
+ <div class="col-md-3"></div>
+</div>
+</section>
+
+<script type='text/javascript'>
+ <!--
+ (function() {
+ document.forms['loginForm'].elements['j_username'].focus();
+ })();
+ // -->
+</script>
+
+</body>
+</html>
View
44 grails-app/views/login/denied.gsp
@@ -0,0 +1,44 @@
+<html>
+<head>
+ <title><g:message code="springSecurity.denied.title"/></title>
+ <meta name="layout" content="kickstart" />
+
+ <g:set var="layout_nomainmenu" value="${true}" scope="request"/>
+ <g:set var="layout_nosecondarymenu" value="${true}" scope="request"/>
+</head>
+
+<body>
+ <content tag="header">
+ <!-- Empty Header -->
+ </content>
+
+ <section id="Error" class="">
+ <div class="big-message">
+ <div class="container">
+ <h1><g:message code="springSecurity.denied.title" default="Denied!"/></h1>
+ <h2><g:message code="springSecurity.denied.message" /></h2>
+
+ <div class="actions margin-top-large">
+ <a href="${createLink(uri: '/')}" class="btn btn-large btn-primary">
+ <i class="glyphicon glyphicon-chevron-left icon-white"></i>
+ <g:message code="error.button.backToHome"/>
+ </a>
+ <a href="${createLink(uri: '/login')}" class="btn btn-large btn-success">
+ <i class="glyphicon glyphicon-user"></i>
+ <g:message code="error.button.Login"/>
+ </a>
+ </div>
+ </div>
+ </div>
+ </section>
+
+<script type='text/javascript'>
+ <!--
+ (function() {
+ document.forms['loginForm'].elements['j_username'].focus();
+ })();
+ // -->
+</script>
+
+</body>
+</html>
View
3  grails-app/views/siteinfo/systeminfo.gsp
@@ -21,8 +21,6 @@
<li>Web Layout: <a href ="http://twitter.github.com/bootstrap/">Bootstrap</a>, from Twitter
Licensed under the Apache License v2.0. Documentation licensed under CC BY 3.0.
(@TwBootstrap , http://twitter.github.com/bootstrap/)</li>
- <li>Icons: <a href ="http://fortawesome.github.com/Font-Awesome">Font Awesome</a>, by Dave Gandy.
- Licensed under the <a href="http://fortawesome.github.com/Font-Awesome/#license">SIL Open Font License, MIT License, and CC BY 3.0 License.</a></li>
<li>Datepicker: <a href ="https://github.com/eternicode/bootstrap-datepicker">Datepicker for Bootstrap</a>,
Copyright 2012 Stefan Petre, Improvements by Andrew Rowls, Licensed under the Apache License v2.0</li>
<li>Flag Icons: <a href="http://www.famfamfam.com/lab/icons/flags/">FamFamFam Flag Icons</a> by Mark James. They are
@@ -54,7 +52,6 @@
<g:each var="plugin" in="${pluginManager.allPlugins.sort { it.name }}">
<li>${plugin.name} - ${plugin.version}</li>
</g:each>
-
</ul>
</section>
View
3  scripts/Kickstart.groovy
@@ -18,7 +18,7 @@ target(kickstart: "Installs the Kickstart scaffolding templates and other files"
sourceDir = "${kickstartWithBootstrapPluginDir}/src"
targetDir = "${basedir}/grails-app/conf/"
- copy("${sourceDir}/UrlMappings.groovy", targetDir, "URLMappings.groovy", code)
+ copy("${sourceDir}/UrlMappings.groovy", targetDir, "URLMappings.groovy", code)
// copy less files into project
sourceDir = "${kickstartWithBootstrapPluginDir}/web-app/less"
@@ -35,6 +35,7 @@ target(kickstart: "Installs the Kickstart scaffolding templates and other files"
targetDir = "${basedir}/grails-app/views"
ant.move(file: targetDir+'/index.gsp', tofile: targetDir+'/old_index.gsp')
ant.move(file: targetDir+'/error.gsp', tofile: targetDir+'/old_error.gsp')
+// ant.move(file: targetDir+'/layouts/main.gsp', tofile: targetDir+'/old_main.gsp')
copy(sourceDir, targetDir, "layouts & base GSPs files", code)
// copy resource files into project
View
5 scripts/_Uninstall.groovy
@@ -0,0 +1,5 @@
+//
+// This script is executed by Grails when the plugin is uninstalled from project.
+// Use this script if you intend to do any additional clean-up on uninstall, but
+// beware of messing up SVN directories!
+//
View
10 scripts/_Upgrade.groovy
@@ -0,0 +1,10 @@
+//
+// This script is executed by Grails during application upgrade ('grails upgrade'
+// command). This script is a Gant script so you can use all special variables
+// provided by Gant (such as 'baseDir' which points on project base dir). You can
+// use 'ant' to access a global instance of AntBuilder
+//
+// For example you can create directory under project tree:
+//
+// ant.mkdir(dir:"${basedir}/grails-app/jobs")