Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

added generated controllers and views

  • Loading branch information...
commit 8acca115c10d861fd42a0cbffa5c226e5e4e4f38 1 parent 56759ce
@jetztgradnet authored
Showing with 10,578 additions and 56 deletions.
  1. +109 −0 grails-app/controllers/net/jetztgrad/aldente/BranchController.groovy
  2. +109 −0 grails-app/controllers/net/jetztgrad/aldente/BuildController.groovy
  3. +109 −0 grails-app/controllers/net/jetztgrad/aldente/BuildJobController.groovy
  4. +109 −0 grails-app/controllers/net/jetztgrad/aldente/BuildServerController.groovy
  5. +109 −0 grails-app/controllers/net/jetztgrad/aldente/CommitController.groovy
  6. +109 −0 grails-app/controllers/net/jetztgrad/aldente/ContactController.groovy
  7. +109 −0 grails-app/controllers/net/jetztgrad/aldente/CustomerController.groovy
  8. +109 −0 grails-app/controllers/net/jetztgrad/aldente/FeatureController.groovy
  9. +109 −0 grails-app/controllers/net/jetztgrad/aldente/IssueController.groovy
  10. +109 −0 grails-app/controllers/net/jetztgrad/aldente/IssueTrackerController.groovy
  11. +109 −0 grails-app/controllers/net/jetztgrad/aldente/MilestoneController.groovy
  12. +104 −1 grails-app/controllers/net/jetztgrad/aldente/ProjectController.groovy
  13. +109 −0 grails-app/controllers/net/jetztgrad/aldente/ReleaseController.groovy
  14. +109 −0 grails-app/controllers/net/jetztgrad/aldente/TeamController.groovy
  15. +27 −0 grails-app/controllers/net/jetztgrad/aldente/TestDataController.groovy
  16. +103 −2 grails-app/controllers/net/jetztgrad/aldente/UserController.groovy
  17. +8 −0 grails-app/services/net/jetztgrad/aldente/BuildService.groovy
  18. +8 −0 grails-app/services/net/jetztgrad/aldente/FeatureService.groovy
  19. +8 −0 grails-app/services/net/jetztgrad/aldente/IssuesService.groovy
  20. +3 −3 grails-app/views/about/index.gsp
  21. +53 −0 grails-app/views/branch/_form.gsp
  22. +70 −0 grails-app/views/branch/create.gsp
  23. +75 −0 grails-app/views/branch/edit.gsp
  24. +80 −0 grails-app/views/branch/list.gsp
  25. +104 −0 grails-app/views/branch/show.gsp
  26. +60 −0 grails-app/views/build/_form.gsp
  27. +70 −0 grails-app/views/build/create.gsp
  28. +75 −0 grails-app/views/build/edit.gsp
  29. +92 −0 grails-app/views/build/list.gsp
  30. +114 −0 grails-app/views/build/show.gsp
  31. +45 −0 grails-app/views/buildJob/_form.gsp
  32. +70 −0 grails-app/views/buildJob/create.gsp
  33. +75 −0 grails-app/views/buildJob/edit.gsp
  34. +80 −0 grails-app/views/buildJob/list.gsp
  35. +95 −0 grails-app/views/buildJob/show.gsp
  36. +77 −0 grails-app/views/buildServer/_form.gsp
  37. +70 −0 grails-app/views/buildServer/create.gsp
  38. +75 −0 grails-app/views/buildServer/edit.gsp
  39. +92 −0 grails-app/views/buildServer/list.gsp
  40. +137 −0 grails-app/views/buildServer/show.gsp
  41. +60 −0 grails-app/views/commit/_form.gsp
  42. +70 −0 grails-app/views/commit/create.gsp
  43. +75 −0 grails-app/views/commit/edit.gsp
  44. +92 −0 grails-app/views/commit/list.gsp
  45. +114 −0 grails-app/views/commit/show.gsp
  46. +60 −0 grails-app/views/contact/_form.gsp
  47. +70 −0 grails-app/views/contact/create.gsp
  48. +75 −0 grails-app/views/contact/edit.gsp
  49. +92 −0 grails-app/views/contact/list.gsp
  50. +114 −0 grails-app/views/contact/show.gsp
  51. +37 −0 grails-app/views/customer/_form.gsp
  52. +70 −0 grails-app/views/customer/create.gsp
  53. +75 −0 grails-app/views/customer/edit.gsp
  54. +76 −0 grails-app/views/customer/list.gsp
  55. +88 −0 grails-app/views/customer/show.gsp
  56. +84 −0 grails-app/views/feature/_form.gsp
  57. +70 −0 grails-app/views/feature/create.gsp
  58. +75 −0 grails-app/views/feature/edit.gsp
  59. +92 −0 grails-app/views/feature/list.gsp
  60. +137 −0 grails-app/views/feature/show.gsp
  61. +4 −0 grails-app/views/issue/_form.gsp
  62. +70 −0 grails-app/views/issue/create.gsp
  63. +75 −0 grails-app/views/issue/edit.gsp
  64. +68 −0 grails-app/views/issue/list.gsp
  65. +65 −0 grails-app/views/issue/show.gsp
  66. +52 −0 grails-app/views/issueTracker/_form.gsp
  67. +70 −0 grails-app/views/issueTracker/create.gsp
  68. +75 −0 grails-app/views/issueTracker/edit.gsp
  69. +92 −0 grails-app/views/issueTracker/list.gsp
  70. +121 −0 grails-app/views/issueTracker/show.gsp
  71. +4 −4 grails-app/views/layouts/bootstrap.gsp
  72. +2 −2 grails-app/views/login/auth.gsp
  73. +93 −0 grails-app/views/milestone/_form.gsp
  74. +70 −0 grails-app/views/milestone/create.gsp
  75. +75 −0 grails-app/views/milestone/edit.gsp
  76. +92 −0 grails-app/views/milestone/list.gsp
  77. +141 −0 grails-app/views/milestone/show.gsp
  78. +62 −0 grails-app/views/project/_form.gsp
  79. +70 −0 grails-app/views/project/create.gsp
  80. +75 −0 grails-app/views/project/edit.gsp
  81. +76 −0 grails-app/views/project/list.gsp
  82. +106 −0 grails-app/views/project/show.gsp
  83. +77 −0 grails-app/views/release/_form.gsp
  84. +70 −0 grails-app/views/release/create.gsp
  85. +75 −0 grails-app/views/release/edit.gsp
  86. +92 −0 grails-app/views/release/list.gsp
  87. +125 −0 grails-app/views/release/show.gsp
  88. +51 −9 grails-app/views/repository/_form.gsp
  89. +11 −8 grails-app/views/repository/list.gsp
  90. +37 −14 grails-app/views/repository/show.gsp
  91. +85 −0 grails-app/views/sysinfo.gsp
  92. +28 −0 grails-app/views/team/_form.gsp
  93. +70 −0 grails-app/views/team/create.gsp
  94. +75 −0 grails-app/views/team/edit.gsp
  95. +76 −0 grails-app/views/team/list.gsp
  96. +88 −0 grails-app/views/team/show.gsp
  97. +68 −0 grails-app/views/user/_form.gsp
  98. +70 −0 grails-app/views/user/create.gsp
  99. +75 −0 grails-app/views/user/edit.gsp
  100. +92 −0 grails-app/views/user/list.gsp
  101. +121 −0 grails-app/views/user/show.gsp
  102. +46 −0 src/java/net/jetztgrad/aldente/AbstractTimelineFormatter.java
  103. +20 −0 src/java/net/jetztgrad/aldente/AbstractTimelineProvider.java
  104. +13 −0 src/java/net/jetztgrad/aldente/TimelineFormatter.java
  105. +10 −0 src/java/net/jetztgrad/aldente/TimelineProvider.java
  106. +159 −0 test/unit/net/jetztgrad/aldente/BranchControllerTests.groovy
  107. +159 −0 test/unit/net/jetztgrad/aldente/BuildControllerTests.groovy
  108. +159 −0 test/unit/net/jetztgrad/aldente/BuildJobControllerTests.groovy
  109. +26 −0 test/unit/net/jetztgrad/aldente/BuildJobSpec.groovy
  110. +159 −0 test/unit/net/jetztgrad/aldente/BuildServerControllerTests.groovy
  111. +26 −0 test/unit/net/jetztgrad/aldente/BuildServerSpec.groovy
  112. +26 −0 test/unit/net/jetztgrad/aldente/BuildServiceSpec.groovy
  113. +159 −0 test/unit/net/jetztgrad/aldente/CommitControllerTests.groovy
  114. +159 −0 test/unit/net/jetztgrad/aldente/ContactControllerTests.groovy
  115. +26 −0 test/unit/net/jetztgrad/aldente/ContactSpec.groovy
  116. +159 −0 test/unit/net/jetztgrad/aldente/CustomerControllerTests.groovy
  117. +17 −0 test/unit/net/jetztgrad/aldente/CustomerTests.groovy
  118. +159 −0 test/unit/net/jetztgrad/aldente/FeatureControllerTests.groovy
  119. +26 −0 test/unit/net/jetztgrad/aldente/FeatureServiceSpec.groovy
  120. +17 −0 test/unit/net/jetztgrad/aldente/FeatureTests.groovy
  121. +159 −0 test/unit/net/jetztgrad/aldente/IssueControllerTests.groovy
  122. +159 −0 test/unit/net/jetztgrad/aldente/IssueTrackerControllerTests.groovy
  123. +26 −0 test/unit/net/jetztgrad/aldente/IssueTrackerSpec.groovy
  124. +26 −0 test/unit/net/jetztgrad/aldente/IssuesServiceSpec.groovy
  125. +159 −0 test/unit/net/jetztgrad/aldente/MilestoneControllerTests.groovy
  126. +148 −6 test/unit/net/jetztgrad/aldente/ProjectControllerTests.groovy
  127. +159 −0 test/unit/net/jetztgrad/aldente/ReleaseControllerTests.groovy
  128. +26 −0 test/unit/net/jetztgrad/aldente/RepositoryServiceSpec.groovy
  129. +159 −0 test/unit/net/jetztgrad/aldente/TeamControllerTests.groovy
  130. +26 −0 test/unit/net/jetztgrad/aldente/TestDataControllerSpec.groovy
  131. +148 −6 test/unit/net/jetztgrad/aldente/UserControllerTests.groovy
  132. +1 −1  web-app/css/scaffolding.css
View
109 grails-app/controllers/net/jetztgrad/aldente/BranchController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class BranchController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [branchInstanceList: Branch.list(params), branchInstanceTotal: Branch.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [branchInstance: new Branch(params)]
+ break
+ case 'POST':
+ def branchInstance = new Branch(params)
+ if (!branchInstance.save(flush: true)) {
+ render view: 'create', model: [branchInstance: branchInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'branch.label', default: 'Branch'), branchInstance.id])
+ redirect action: 'show', id: branchInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def branchInstance = Branch.get(params.id)
+ if (!branchInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'branch.label', default: 'Branch'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [branchInstance: branchInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def branchInstance = Branch.get(params.id)
+ if (!branchInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'branch.label', default: 'Branch'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [branchInstance: branchInstance]
+ break
+ case 'POST':
+ def branchInstance = Branch.get(params.id)
+ if (!branchInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'branch.label', default: 'Branch'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (branchInstance.version > version) {
+ branchInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'branch.label', default: 'Branch')] as Object[],
+ "Another user has updated this Branch while you were editing")
+ render view: 'edit', model: [branchInstance: branchInstance]
+ return
+ }
+ }
+
+ branchInstance.properties = params
+
+ if (!branchInstance.save(flush: true)) {
+ render view: 'edit', model: [branchInstance: branchInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'branch.label', default: 'Branch'), branchInstance.id])
+ redirect action: 'show', id: branchInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def branchInstance = Branch.get(params.id)
+ if (!branchInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'branch.label', default: 'Branch'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ branchInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'branch.label', default: 'Branch'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'branch.label', default: 'Branch'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/BuildController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class BuildController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [buildInstanceList: Build.list(params), buildInstanceTotal: Build.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [buildInstance: new Build(params)]
+ break
+ case 'POST':
+ def buildInstance = new Build(params)
+ if (!buildInstance.save(flush: true)) {
+ render view: 'create', model: [buildInstance: buildInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'build.label', default: 'Build'), buildInstance.id])
+ redirect action: 'show', id: buildInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def buildInstance = Build.get(params.id)
+ if (!buildInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'build.label', default: 'Build'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [buildInstance: buildInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def buildInstance = Build.get(params.id)
+ if (!buildInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'build.label', default: 'Build'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [buildInstance: buildInstance]
+ break
+ case 'POST':
+ def buildInstance = Build.get(params.id)
+ if (!buildInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'build.label', default: 'Build'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (buildInstance.version > version) {
+ buildInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'build.label', default: 'Build')] as Object[],
+ "Another user has updated this Build while you were editing")
+ render view: 'edit', model: [buildInstance: buildInstance]
+ return
+ }
+ }
+
+ buildInstance.properties = params
+
+ if (!buildInstance.save(flush: true)) {
+ render view: 'edit', model: [buildInstance: buildInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'build.label', default: 'Build'), buildInstance.id])
+ redirect action: 'show', id: buildInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def buildInstance = Build.get(params.id)
+ if (!buildInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'build.label', default: 'Build'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ buildInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'build.label', default: 'Build'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'build.label', default: 'Build'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/BuildJobController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class BuildJobController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [buildJobInstanceList: BuildJob.list(params), buildJobInstanceTotal: BuildJob.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [buildJobInstance: new BuildJob(params)]
+ break
+ case 'POST':
+ def buildJobInstance = new BuildJob(params)
+ if (!buildJobInstance.save(flush: true)) {
+ render view: 'create', model: [buildJobInstance: buildJobInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'buildJob.label', default: 'BuildJob'), buildJobInstance.id])
+ redirect action: 'show', id: buildJobInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def buildJobInstance = BuildJob.get(params.id)
+ if (!buildJobInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'buildJob.label', default: 'BuildJob'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [buildJobInstance: buildJobInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def buildJobInstance = BuildJob.get(params.id)
+ if (!buildJobInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'buildJob.label', default: 'BuildJob'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [buildJobInstance: buildJobInstance]
+ break
+ case 'POST':
+ def buildJobInstance = BuildJob.get(params.id)
+ if (!buildJobInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'buildJob.label', default: 'BuildJob'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (buildJobInstance.version > version) {
+ buildJobInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'buildJob.label', default: 'BuildJob')] as Object[],
+ "Another user has updated this BuildJob while you were editing")
+ render view: 'edit', model: [buildJobInstance: buildJobInstance]
+ return
+ }
+ }
+
+ buildJobInstance.properties = params
+
+ if (!buildJobInstance.save(flush: true)) {
+ render view: 'edit', model: [buildJobInstance: buildJobInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'buildJob.label', default: 'BuildJob'), buildJobInstance.id])
+ redirect action: 'show', id: buildJobInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def buildJobInstance = BuildJob.get(params.id)
+ if (!buildJobInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'buildJob.label', default: 'BuildJob'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ buildJobInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'buildJob.label', default: 'BuildJob'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'buildJob.label', default: 'BuildJob'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/BuildServerController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class BuildServerController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [buildServerInstanceList: BuildServer.list(params), buildServerInstanceTotal: BuildServer.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [buildServerInstance: new BuildServer(params)]
+ break
+ case 'POST':
+ def buildServerInstance = new BuildServer(params)
+ if (!buildServerInstance.save(flush: true)) {
+ render view: 'create', model: [buildServerInstance: buildServerInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'buildServer.label', default: 'BuildServer'), buildServerInstance.id])
+ redirect action: 'show', id: buildServerInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def buildServerInstance = BuildServer.get(params.id)
+ if (!buildServerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'buildServer.label', default: 'BuildServer'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [buildServerInstance: buildServerInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def buildServerInstance = BuildServer.get(params.id)
+ if (!buildServerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'buildServer.label', default: 'BuildServer'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [buildServerInstance: buildServerInstance]
+ break
+ case 'POST':
+ def buildServerInstance = BuildServer.get(params.id)
+ if (!buildServerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'buildServer.label', default: 'BuildServer'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (buildServerInstance.version > version) {
+ buildServerInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'buildServer.label', default: 'BuildServer')] as Object[],
+ "Another user has updated this BuildServer while you were editing")
+ render view: 'edit', model: [buildServerInstance: buildServerInstance]
+ return
+ }
+ }
+
+ buildServerInstance.properties = params
+
+ if (!buildServerInstance.save(flush: true)) {
+ render view: 'edit', model: [buildServerInstance: buildServerInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'buildServer.label', default: 'BuildServer'), buildServerInstance.id])
+ redirect action: 'show', id: buildServerInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def buildServerInstance = BuildServer.get(params.id)
+ if (!buildServerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'buildServer.label', default: 'BuildServer'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ buildServerInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'buildServer.label', default: 'BuildServer'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'buildServer.label', default: 'BuildServer'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/CommitController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class CommitController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [commitInstanceList: Commit.list(params), commitInstanceTotal: Commit.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [commitInstance: new Commit(params)]
+ break
+ case 'POST':
+ def commitInstance = new Commit(params)
+ if (!commitInstance.save(flush: true)) {
+ render view: 'create', model: [commitInstance: commitInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'commit.label', default: 'Commit'), commitInstance.id])
+ redirect action: 'show', id: commitInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def commitInstance = Commit.get(params.id)
+ if (!commitInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'commit.label', default: 'Commit'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [commitInstance: commitInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def commitInstance = Commit.get(params.id)
+ if (!commitInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'commit.label', default: 'Commit'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [commitInstance: commitInstance]
+ break
+ case 'POST':
+ def commitInstance = Commit.get(params.id)
+ if (!commitInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'commit.label', default: 'Commit'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (commitInstance.version > version) {
+ commitInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'commit.label', default: 'Commit')] as Object[],
+ "Another user has updated this Commit while you were editing")
+ render view: 'edit', model: [commitInstance: commitInstance]
+ return
+ }
+ }
+
+ commitInstance.properties = params
+
+ if (!commitInstance.save(flush: true)) {
+ render view: 'edit', model: [commitInstance: commitInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'commit.label', default: 'Commit'), commitInstance.id])
+ redirect action: 'show', id: commitInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def commitInstance = Commit.get(params.id)
+ if (!commitInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'commit.label', default: 'Commit'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ commitInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'commit.label', default: 'Commit'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'commit.label', default: 'Commit'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/ContactController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class ContactController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [contactInstanceList: Contact.list(params), contactInstanceTotal: Contact.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [contactInstance: new Contact(params)]
+ break
+ case 'POST':
+ def contactInstance = new Contact(params)
+ if (!contactInstance.save(flush: true)) {
+ render view: 'create', model: [contactInstance: contactInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'contact.label', default: 'Contact'), contactInstance.id])
+ redirect action: 'show', id: contactInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def contactInstance = Contact.get(params.id)
+ if (!contactInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'contact.label', default: 'Contact'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [contactInstance: contactInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def contactInstance = Contact.get(params.id)
+ if (!contactInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'contact.label', default: 'Contact'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [contactInstance: contactInstance]
+ break
+ case 'POST':
+ def contactInstance = Contact.get(params.id)
+ if (!contactInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'contact.label', default: 'Contact'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (contactInstance.version > version) {
+ contactInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'contact.label', default: 'Contact')] as Object[],
+ "Another user has updated this Contact while you were editing")
+ render view: 'edit', model: [contactInstance: contactInstance]
+ return
+ }
+ }
+
+ contactInstance.properties = params
+
+ if (!contactInstance.save(flush: true)) {
+ render view: 'edit', model: [contactInstance: contactInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'contact.label', default: 'Contact'), contactInstance.id])
+ redirect action: 'show', id: contactInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def contactInstance = Contact.get(params.id)
+ if (!contactInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'contact.label', default: 'Contact'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ contactInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'contact.label', default: 'Contact'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'contact.label', default: 'Contact'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/CustomerController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class CustomerController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [customerInstanceList: Customer.list(params), customerInstanceTotal: Customer.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [customerInstance: new Customer(params)]
+ break
+ case 'POST':
+ def customerInstance = new Customer(params)
+ if (!customerInstance.save(flush: true)) {
+ render view: 'create', model: [customerInstance: customerInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'customer.label', default: 'Customer'), customerInstance.id])
+ redirect action: 'show', id: customerInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def customerInstance = Customer.get(params.id)
+ if (!customerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'customer.label', default: 'Customer'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [customerInstance: customerInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def customerInstance = Customer.get(params.id)
+ if (!customerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'customer.label', default: 'Customer'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [customerInstance: customerInstance]
+ break
+ case 'POST':
+ def customerInstance = Customer.get(params.id)
+ if (!customerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'customer.label', default: 'Customer'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (customerInstance.version > version) {
+ customerInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'customer.label', default: 'Customer')] as Object[],
+ "Another user has updated this Customer while you were editing")
+ render view: 'edit', model: [customerInstance: customerInstance]
+ return
+ }
+ }
+
+ customerInstance.properties = params
+
+ if (!customerInstance.save(flush: true)) {
+ render view: 'edit', model: [customerInstance: customerInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'customer.label', default: 'Customer'), customerInstance.id])
+ redirect action: 'show', id: customerInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def customerInstance = Customer.get(params.id)
+ if (!customerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'customer.label', default: 'Customer'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ customerInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'customer.label', default: 'Customer'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'customer.label', default: 'Customer'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/FeatureController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class FeatureController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [featureInstanceList: Feature.list(params), featureInstanceTotal: Feature.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [featureInstance: new Feature(params)]
+ break
+ case 'POST':
+ def featureInstance = new Feature(params)
+ if (!featureInstance.save(flush: true)) {
+ render view: 'create', model: [featureInstance: featureInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'feature.label', default: 'Feature'), featureInstance.id])
+ redirect action: 'show', id: featureInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def featureInstance = Feature.get(params.id)
+ if (!featureInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'feature.label', default: 'Feature'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [featureInstance: featureInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def featureInstance = Feature.get(params.id)
+ if (!featureInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'feature.label', default: 'Feature'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [featureInstance: featureInstance]
+ break
+ case 'POST':
+ def featureInstance = Feature.get(params.id)
+ if (!featureInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'feature.label', default: 'Feature'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (featureInstance.version > version) {
+ featureInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'feature.label', default: 'Feature')] as Object[],
+ "Another user has updated this Feature while you were editing")
+ render view: 'edit', model: [featureInstance: featureInstance]
+ return
+ }
+ }
+
+ featureInstance.properties = params
+
+ if (!featureInstance.save(flush: true)) {
+ render view: 'edit', model: [featureInstance: featureInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'feature.label', default: 'Feature'), featureInstance.id])
+ redirect action: 'show', id: featureInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def featureInstance = Feature.get(params.id)
+ if (!featureInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'feature.label', default: 'Feature'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ featureInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'feature.label', default: 'Feature'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'feature.label', default: 'Feature'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/IssueController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class IssueController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [issueInstanceList: Issue.list(params), issueInstanceTotal: Issue.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [issueInstance: new Issue(params)]
+ break
+ case 'POST':
+ def issueInstance = new Issue(params)
+ if (!issueInstance.save(flush: true)) {
+ render view: 'create', model: [issueInstance: issueInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'issue.label', default: 'Issue'), issueInstance.id])
+ redirect action: 'show', id: issueInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def issueInstance = Issue.get(params.id)
+ if (!issueInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'issue.label', default: 'Issue'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [issueInstance: issueInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def issueInstance = Issue.get(params.id)
+ if (!issueInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'issue.label', default: 'Issue'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [issueInstance: issueInstance]
+ break
+ case 'POST':
+ def issueInstance = Issue.get(params.id)
+ if (!issueInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'issue.label', default: 'Issue'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (issueInstance.version > version) {
+ issueInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'issue.label', default: 'Issue')] as Object[],
+ "Another user has updated this Issue while you were editing")
+ render view: 'edit', model: [issueInstance: issueInstance]
+ return
+ }
+ }
+
+ issueInstance.properties = params
+
+ if (!issueInstance.save(flush: true)) {
+ render view: 'edit', model: [issueInstance: issueInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'issue.label', default: 'Issue'), issueInstance.id])
+ redirect action: 'show', id: issueInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def issueInstance = Issue.get(params.id)
+ if (!issueInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'issue.label', default: 'Issue'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ issueInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'issue.label', default: 'Issue'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'issue.label', default: 'Issue'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/IssueTrackerController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class IssueTrackerController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [issueTrackerInstanceList: IssueTracker.list(params), issueTrackerInstanceTotal: IssueTracker.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [issueTrackerInstance: new IssueTracker(params)]
+ break
+ case 'POST':
+ def issueTrackerInstance = new IssueTracker(params)
+ if (!issueTrackerInstance.save(flush: true)) {
+ render view: 'create', model: [issueTrackerInstance: issueTrackerInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'issueTracker.label', default: 'IssueTracker'), issueTrackerInstance.id])
+ redirect action: 'show', id: issueTrackerInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def issueTrackerInstance = IssueTracker.get(params.id)
+ if (!issueTrackerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'issueTracker.label', default: 'IssueTracker'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [issueTrackerInstance: issueTrackerInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def issueTrackerInstance = IssueTracker.get(params.id)
+ if (!issueTrackerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'issueTracker.label', default: 'IssueTracker'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [issueTrackerInstance: issueTrackerInstance]
+ break
+ case 'POST':
+ def issueTrackerInstance = IssueTracker.get(params.id)
+ if (!issueTrackerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'issueTracker.label', default: 'IssueTracker'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (issueTrackerInstance.version > version) {
+ issueTrackerInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'issueTracker.label', default: 'IssueTracker')] as Object[],
+ "Another user has updated this IssueTracker while you were editing")
+ render view: 'edit', model: [issueTrackerInstance: issueTrackerInstance]
+ return
+ }
+ }
+
+ issueTrackerInstance.properties = params
+
+ if (!issueTrackerInstance.save(flush: true)) {
+ render view: 'edit', model: [issueTrackerInstance: issueTrackerInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'issueTracker.label', default: 'IssueTracker'), issueTrackerInstance.id])
+ redirect action: 'show', id: issueTrackerInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def issueTrackerInstance = IssueTracker.get(params.id)
+ if (!issueTrackerInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'issueTracker.label', default: 'IssueTracker'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ issueTrackerInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'issueTracker.label', default: 'IssueTracker'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'issueTracker.label', default: 'IssueTracker'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/MilestoneController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class MilestoneController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [milestoneInstanceList: Milestone.list(params), milestoneInstanceTotal: Milestone.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [milestoneInstance: new Milestone(params)]
+ break
+ case 'POST':
+ def milestoneInstance = new Milestone(params)
+ if (!milestoneInstance.save(flush: true)) {
+ render view: 'create', model: [milestoneInstance: milestoneInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'milestone.label', default: 'Milestone'), milestoneInstance.id])
+ redirect action: 'show', id: milestoneInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def milestoneInstance = Milestone.get(params.id)
+ if (!milestoneInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'milestone.label', default: 'Milestone'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [milestoneInstance: milestoneInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def milestoneInstance = Milestone.get(params.id)
+ if (!milestoneInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'milestone.label', default: 'Milestone'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [milestoneInstance: milestoneInstance]
+ break
+ case 'POST':
+ def milestoneInstance = Milestone.get(params.id)
+ if (!milestoneInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'milestone.label', default: 'Milestone'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (milestoneInstance.version > version) {
+ milestoneInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'milestone.label', default: 'Milestone')] as Object[],
+ "Another user has updated this Milestone while you were editing")
+ render view: 'edit', model: [milestoneInstance: milestoneInstance]
+ return
+ }
+ }
+
+ milestoneInstance.properties = params
+
+ if (!milestoneInstance.save(flush: true)) {
+ render view: 'edit', model: [milestoneInstance: milestoneInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'milestone.label', default: 'Milestone'), milestoneInstance.id])
+ redirect action: 'show', id: milestoneInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def milestoneInstance = Milestone.get(params.id)
+ if (!milestoneInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'milestone.label', default: 'Milestone'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ milestoneInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'milestone.label', default: 'Milestone'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'milestone.label', default: 'Milestone'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
105 grails-app/controllers/net/jetztgrad/aldente/ProjectController.groovy
@@ -1,6 +1,109 @@
package net.jetztgrad.aldente
+import org.springframework.dao.DataIntegrityViolationException
+
class ProjectController {
- def index() { }
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [projectInstanceList: Project.list(params), projectInstanceTotal: Project.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [projectInstance: new Project(params)]
+ break
+ case 'POST':
+ def projectInstance = new Project(params)
+ if (!projectInstance.save(flush: true)) {
+ render view: 'create', model: [projectInstance: projectInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'project.label', default: 'Project'), projectInstance.id])
+ redirect action: 'show', id: projectInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def projectInstance = Project.get(params.id)
+ if (!projectInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'project.label', default: 'Project'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [projectInstance: projectInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def projectInstance = Project.get(params.id)
+ if (!projectInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'project.label', default: 'Project'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [projectInstance: projectInstance]
+ break
+ case 'POST':
+ def projectInstance = Project.get(params.id)
+ if (!projectInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'project.label', default: 'Project'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (projectInstance.version > version) {
+ projectInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'project.label', default: 'Project')] as Object[],
+ "Another user has updated this Project while you were editing")
+ render view: 'edit', model: [projectInstance: projectInstance]
+ return
+ }
+ }
+
+ projectInstance.properties = params
+
+ if (!projectInstance.save(flush: true)) {
+ render view: 'edit', model: [projectInstance: projectInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'project.label', default: 'Project'), projectInstance.id])
+ redirect action: 'show', id: projectInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def projectInstance = Project.get(params.id)
+ if (!projectInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'project.label', default: 'Project'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ projectInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'project.label', default: 'Project'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'project.label', default: 'Project'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
}
View
109 grails-app/controllers/net/jetztgrad/aldente/ReleaseController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class ReleaseController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [releaseInstanceList: Release.list(params), releaseInstanceTotal: Release.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [releaseInstance: new Release(params)]
+ break
+ case 'POST':
+ def releaseInstance = new Release(params)
+ if (!releaseInstance.save(flush: true)) {
+ render view: 'create', model: [releaseInstance: releaseInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'release.label', default: 'Release'), releaseInstance.id])
+ redirect action: 'show', id: releaseInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def releaseInstance = Release.get(params.id)
+ if (!releaseInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'release.label', default: 'Release'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [releaseInstance: releaseInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def releaseInstance = Release.get(params.id)
+ if (!releaseInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'release.label', default: 'Release'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [releaseInstance: releaseInstance]
+ break
+ case 'POST':
+ def releaseInstance = Release.get(params.id)
+ if (!releaseInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'release.label', default: 'Release'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (releaseInstance.version > version) {
+ releaseInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'release.label', default: 'Release')] as Object[],
+ "Another user has updated this Release while you were editing")
+ render view: 'edit', model: [releaseInstance: releaseInstance]
+ return
+ }
+ }
+
+ releaseInstance.properties = params
+
+ if (!releaseInstance.save(flush: true)) {
+ render view: 'edit', model: [releaseInstance: releaseInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'release.label', default: 'Release'), releaseInstance.id])
+ redirect action: 'show', id: releaseInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def releaseInstance = Release.get(params.id)
+ if (!releaseInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'release.label', default: 'Release'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ releaseInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'release.label', default: 'Release'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'release.label', default: 'Release'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
109 grails-app/controllers/net/jetztgrad/aldente/TeamController.groovy
@@ -0,0 +1,109 @@
+package net.jetztgrad.aldente
+
+import org.springframework.dao.DataIntegrityViolationException
+
+class TeamController {
+
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [teamInstanceList: Team.list(params), teamInstanceTotal: Team.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [teamInstance: new Team(params)]
+ break
+ case 'POST':
+ def teamInstance = new Team(params)
+ if (!teamInstance.save(flush: true)) {
+ render view: 'create', model: [teamInstance: teamInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'team.label', default: 'Team'), teamInstance.id])
+ redirect action: 'show', id: teamInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def teamInstance = Team.get(params.id)
+ if (!teamInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'team.label', default: 'Team'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [teamInstance: teamInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def teamInstance = Team.get(params.id)
+ if (!teamInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'team.label', default: 'Team'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [teamInstance: teamInstance]
+ break
+ case 'POST':
+ def teamInstance = Team.get(params.id)
+ if (!teamInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'team.label', default: 'Team'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (teamInstance.version > version) {
+ teamInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'team.label', default: 'Team')] as Object[],
+ "Another user has updated this Team while you were editing")
+ render view: 'edit', model: [teamInstance: teamInstance]
+ return
+ }
+ }
+
+ teamInstance.properties = params
+
+ if (!teamInstance.save(flush: true)) {
+ render view: 'edit', model: [teamInstance: teamInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'team.label', default: 'Team'), teamInstance.id])
+ redirect action: 'show', id: teamInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def teamInstance = Team.get(params.id)
+ if (!teamInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'team.label', default: 'Team'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ try {
+ teamInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'team.label', default: 'Team'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'team.label', default: 'Team'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
+}
View
27 grails-app/controllers/net/jetztgrad/aldente/TestDataController.groovy
@@ -0,0 +1,27 @@
+package net.jetztgrad.aldente
+
+class TestDataController {
+
+ def index() { }
+ def createTestData() {
+ def msgs = []
+ Project project = Project.findByName("eCloudManager")
+ if (!project) {
+ project = new Project(name: "eCloudManager", description: "Leveraging its semantic integration foundation and the partnerships with major storage, virtualization, network and application vendors, the fluidOps™ eCloudManager™ Product Suite delivers an innovative platform for private and public cloud management, enabling the creation of a flexible and scalable cloud environment.")
+ if (project.save(flush: true)) {
+ msgs << "created project ${project.name}"
+ }
+ }
+
+ Release release = new Release(name: "4.2", description: "VPlex, Billing, findBestCloneMethod() improvements")
+ //release.save()
+ project.addToReleases(release)
+ project.releases.each { r -> println r.name }
+ if (project.save(flush: true)) {
+ msgs << "created release ${release.name}"
+ }
+
+ flash.message = msgs.join("<br />\n")
+ redirect(controller: "project", action: "list")
+ }
+}
View
105 grails-app/controllers/net/jetztgrad/aldente/UserController.groovy
@@ -1,8 +1,109 @@
package net.jetztgrad.aldente
+import org.springframework.dao.DataIntegrityViolationException
+
class UserController {
- def index() { }
+ static allowedMethods = [create: ['GET', 'POST'], edit: ['GET', 'POST'], delete: 'POST']
+
+ def index() {
+ redirect action: 'list', params: params
+ }
+
+ def list() {
+ params.max = Math.min(params.max ? params.int('max') : 10, 100)
+ [userInstanceList: User.list(params), userInstanceTotal: User.count()]
+ }
+
+ def create() {
+ switch (request.method) {
+ case 'GET':
+ [userInstance: new User(params)]
+ break
+ case 'POST':
+ def userInstance = new User(params)
+ if (!userInstance.save(flush: true)) {
+ render view: 'create', model: [userInstance: userInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.created.message', args: [message(code: 'user.label', default: 'User'), userInstance.id])
+ redirect action: 'show', id: userInstance.id
+ break
+ }
+ }
+
+ def show() {
+ def userInstance = User.get(params.id)
+ if (!userInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [userInstance: userInstance]
+ }
+
+ def edit() {
+ switch (request.method) {
+ case 'GET':
+ def userInstance = User.get(params.id)
+ if (!userInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ [userInstance: userInstance]
+ break
+ case 'POST':
+ def userInstance = User.get(params.id)
+ if (!userInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), params.id])
+ redirect action: 'list'
+ return
+ }
+
+ if (params.version) {
+ def version = params.version.toLong()
+ if (userInstance.version > version) {
+ userInstance.errors.rejectValue('version', 'default.optimistic.locking.failure',
+ [message(code: 'user.label', default: 'User')] as Object[],
+ "Another user has updated this User while you were editing")
+ render view: 'edit', model: [userInstance: userInstance]
+ return
+ }
+ }
+
+ userInstance.properties = params
+
+ if (!userInstance.save(flush: true)) {
+ render view: 'edit', model: [userInstance: userInstance]
+ return
+ }
+
+ flash.message = message(code: 'default.updated.message', args: [message(code: 'user.label', default: 'User'), userInstance.id])
+ redirect action: 'show', id: userInstance.id
+ break
+ }
+ }
+
+ def delete() {
+ def userInstance = User.get(params.id)
+ if (!userInstance) {
+ flash.message = message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), params.id])
+ redirect action: 'list'
+ return
+ }
- def settings() { }
+ try {
+ userInstance.delete(flush: true)
+ flash.message = message(code: 'default.deleted.message', args: [message(code: 'user.label', default: 'User'), params.id])
+ redirect action: 'list'
+ }
+ catch (DataIntegrityViolationException e) {
+ flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'user.label', default: 'User'), params.id])
+ redirect action: 'show', id: params.id
+ }
+ }
}
View
8 grails-app/services/net/jetztgrad/aldente/BuildService.groovy
@@ -0,0 +1,8 @@
+package net.jetztgrad.aldente
+
+class BuildService {
+
+ def serviceMethod() {
+
+ }
+}
View
8 grails-app/services/net/jetztgrad/aldente/FeatureService.groovy
@@ -0,0 +1,8 @@
+package net.jetztgrad.aldente
+
+class FeatureService {
+
+ def serviceMethod() {
+
+ }
+}
View
8 grails-app/services/net/jetztgrad/aldente/IssuesService.groovy
@@ -0,0 +1,8 @@
+package net.jetztgrad.aldente
+
+class IssuesService {
+
+ def serviceMethod() {
+
+ }
+}
View
6 grails-app/views/about/index.gsp
@@ -1,8 +1,8 @@
<!doctype html>
-<html>
+<html lang="en">
<head>
<meta name="layout" content="bootstrap"/>
- <title>Grails Twitter Bootstrap Scaffolding</title>
+ <title>Aldente Project Hub</title>
</head>
<body>
@@ -29,7 +29,7 @@
</li>
<li><a href="http://creativecommons.org/licenses/by/3.0/"><img src="http://i.creativecommons.org/l/by/3.0/88x31.png"/></a> The icons from <a href="http://glyphicons.com/">Glyphicons Free</a>, licensed under the <a href="http://en.wikipedia.org/wiki/en:Creative_Commons">Creative Commons</a> <a href="http://creativecommons.org/licenses/by/3.0/">Attribution 3.0 license</a></li>
</ul>
- <p>Aldente is also released as open source software under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html<li class="divider"></li>">Apache Software License 2.0</a>. Find it at GitHub: <a href="https://github.com/jetztgradnet/aldente">jetztgradnet/aldente</a>
+ <p>Aldente is also released as open source software under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache Software License 2.0</a>. Find it at GitHub: <a href="https://github.com/jetztgradnet/aldente">jetztgradnet/aldente</a>
</div>
</section>
</div>
View
53 grails-app/views/branch/_form.gsp
@@ -0,0 +1,53 @@
+<%@ page import="net.jetztgrad.aldente.Branch" %>
+
+
+
+<div class="fieldcontain ${hasErrors(bean: branchInstance, field: 'name', 'error')} required">
+ <label for="name">
+ <g:message code="branch.name.label" default="Name" />
+ <span class="required-indicator">*</span>
+ </label>
+ <g:textField name="name" maxlength="50" required="" value="${branchInstance?.name}"/>
+</div>
+
+<div class="fieldcontain ${hasErrors(bean: branchInstance, field: 'description', 'error')} ">
+ <label for="description">
+ <g:message code="branch.description.label" default="Description" />
+
+ </label>
+ <g:textArea name="description" cols="40" rows="5" maxlength="500" value="${branchInstance?.description}"/>
+</div>
+
+<div class="fieldcontain ${hasErrors(bean: branchInstance, field: 'branches', 'error')} ">
+ <label for="branches">
+ <g:message code="branch.branches.label" default="Branches" />
+
+ </label>
+ <g:select name="branches" from="${net.jetztgrad.aldente.Branch.list()}" multiple="multiple" optionKey="id" size="5" value="${branchInstance?.branches*.id}" class="many-to-many"/>
+</div>
+
+<div class="fieldcontain ${hasErrors(bean: branchInstance, field: 'commits', 'error')} ">
+ <label for="commits">
+ <g:message code="branch.commits.label" default="Commits" />
+
+ </label>
+
+<ul class="one-to-many">
+<g:each in="${branchInstance?.commits?}" var="c">
+ <li><g:link controller="commit" action="show" id="${c.id}">${c?.encodeAsHTML()}</g:link></li>
+</g:each>
+<li class="add">
+<g:link controller="commit" action="create" params="['branch.id': branchInstance?.id]">${message(code: 'default.add.label', args: [message(code: 'commit.label', default: 'Commit')])}</g:link>
+</li>
+</ul>
+
+</div>
+
+<div class="fieldcontain ${hasErrors(bean: branchInstance, field: 'repository', 'error')} required">
+ <label for="repository">
+ <g:message code="branch.repository.label" default="Repository" />
+ <span class="required-indicator">*</span>
+ </label>
+ <g:select id="repository" name="repository.id" from="${net.jetztgrad.aldente.Repository.list()}" optionKey="id" required="" value="${branchInstance?.repository?.id}" class="many-to-one"/>
+</div>
+
View
70 grails-app/views/branch/create.gsp
@@ -0,0 +1,70 @@
+<%@ page import="net.jetztgrad.aldente.Branch" %>
+<!doctype html>
+<html>
+ <head>
+ <meta name="layout" content="bootstrap">
+ <g:set var="entityName" value="${message(code: 'branch.label', default: 'Branch')}" />
+ <title><g:message code="default.create.label" args="[entityName]" /></title>
+ </head>
+ <body>
+ <div class="row-fluid">
+
+ <div class="span3">
+ <div class="well">
+ <ul class="nav nav-list">
+ <li class="nav-header">${entityName}</li>
+ <li>
+ <g:link class="list" action="list">
+ <i class="icon-list"></i>
+ <g:message code="default.list.label" args="[entityName]" />
+ </g:link>
+ </li>
+ <li class="active">
+ <g:link class="create" action="create">
+ <i class="icon-plus icon-white"></i>
+ <g:message code="default.create.label" args="[entityName]" />
+ </g:link>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="span9">
+
+ <div class="page-header">
+ <h1><g:message code="default.create.label" args="[entityName]" /></h1>
+ </div>
+
+ <g:if test="${flash.message}">
+ <bootstrap:alert class="alert-info">${flash.message}</bootstrap:alert>
+ </g:if>
+
+ <g:hasErrors bean="${branchInstance}">
+ <bootstrap:alert class="alert-error">
+ <ul>
+ <g:eachError bean="${branchInstance}" var="error">
+ <li <g:if test="${error in org.springframework.validation.FieldError}">data-field-id="${error.field}"</g:if>><g:message error="${error}"/></li>
+ </g:eachError>
+ </ul>
+ </bootstrap:alert>
+ </g:hasErrors>
+
+ <fieldset>
+ <g:form class="form-horizontal" action="create" >
+ <fieldset>
+ <f:all bean="branchInstance"/>
+ <div class="form-actions">
+ <button type="submit" class="btn btn-primary">
+ <i class="icon-ok icon-white"></i>
+ <g:message code="default.button.create.label" default="Create" />
+ </button>
+ </div>
+ </fieldset>
+ </g:form>
+ </fieldset>
+
+ </div>
+
+ </div>
+ </body>
+</html>
View
75 grails-app/views/branch/edit.gsp
@@ -0,0 +1,75 @@
+<%@ page import="net.jetztgrad.aldente.Branch" %>
+<!doctype html>
+<html>
+ <head>
+ <meta name="layout" content="bootstrap">
+ <g:set var="entityName" value="${message(code: 'branch.label', default: 'Branch')}" />
+ <title><g:message code="default.edit.label" args="[entityName]" /></title>
+ </head>
+ <body>
+ <div class="row-fluid">
+
+ <div class="span3">
+ <div class="well">
+ <ul class="nav nav-list">
+ <li class="nav-header">${entityName}</li>
+ <li>
+ <g:link class="list" action="list">
+ <i class="icon-list"></i>
+ <g:message code="default.list.label" args="[entityName]" />
+ </g:link>
+ </li>
+ <li>
+ <g:link class="create" action="create">
+ <i class="icon-plus"></i>
+ <g:message code="default.create.label" args="[entityName]" />
+ </g:link>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="span9">
+
+ <div class="page-header">
+ <h1><g:message code="default.edit.label" args="[entityName]" /></h1>
+ </div>
+
+ <g:if test="${flash.message}">
+ <bootstrap:alert class="alert-info">${flash.message}</bootstrap:alert>
+ </g:if>
+
+ <g:hasErrors bean="${branchInstance}">
+ <bootstrap:alert class="alert-error">
+ <ul>
+ <g:eachError bean="${branchInstance}" var="error">
+ <li <g:if test="${error in org.springframework.validation.FieldError}">data-field-id="${error.field}"</g:if>><g:message error="${error}"/></li>
+ </g:eachError>
+ </ul>
+ </bootstrap:alert>
+ </g:hasErrors>
+
+ <fieldset>
+ <g:form class="form-horizontal" action="edit" id="${branchInstance?.id}" >