--- /dev/null
+package controllers
+import play.api._
+import play.api.i18n._
+import play.api.mvc._
+import play.api.data._
+import play.api.data.Forms._
+import models._
+import forms._
+import org.squeryl._
+import org.squeryl.PrimitiveTypeMode._
+
+object DesignChangeController extends Controller{
+
+ val Home = Redirect(routes.DesignChangeController.list(0,""))
+
+ val designChangeRegistForm = Form(
+ mapping(
+ "dcNo" -> nonEmptyText,
+ "dcDescription" -> nonEmptyText
+ )(DesignChangeForm.apply)(DesignChangeForm.unapply)
+ )
+
+ def create = Action { implicit request =>
+ Ok(views.html.createDesignChangeForm(designChangeRegistForm))
+ }
+
+ def designChangeCoverRegistration() = Action { implicit request =>
+ designChangeRegistForm.bindFromRequest.fold(
+ formWithErrors => BadRequest(views.html.createDesignChangeForm(formWithErrors)),
+ designChange => {
+ inTransaction {
+ PartsListDb.designChanges.insert(DesignChange(designChange.dcNo, designChange.dcDescription))
+ }
+ Home.flashing("success" -> "Design Change %s has been created".format(designChange.dcNo))
+ }
+ )
+ }
+
+ def designChangeCoverModify(id: Long) = Action { implicit request =>
+ inTransaction {
+ val designChange = getDesignChange(id)
+ val designChangeForm = DesignChangeForm(designChange.dcNo, designChange.dcDescription)
+ Ok(views.html.updateDesignChangeForm(designChangeRegistForm.fill(designChangeForm), id))
+ }
+ }
+
+ def designChangeCoverModification(id: Long) = Action{ implicit request =>
+ designChangeRegistForm.bindFromRequest.fold(
+ formWithErrors => BadRequest(views.html.updateDesignChangeForm(formWithErrors, id)),
+ designChange => {
+ inTransaction {
+ val updDesignChange = getDesignChange(id)
+ updDesignChange.dcNo = designChange.dcNo
+ updDesignChange.dcDescription = designChange.dcDescription
+ PartsListDb.designChanges.update(updDesignChange)
+ }
+ Home.flashing("success" -> "Design Change %s has been created".format(designChange.dcNo))
+ }
+ )
+ }
+
+ def list(page: Int, key: String) = Action { implicit request =>
+ inTransaction {
+ val row = Integer.decode(Messages("list.row"))
+ val buff = PartsListDb.designChanges.where(dc => dc.dcNo like key + "%")
+ Ok(views.html.designchangelist(buff.page(page*row, row), buff.size, key, page))
+ }
+ }
+
+ def getDesignChange(id: Long):DesignChange = {
+ PartsListDb.designChanges.where(dc => dc.id === id).head
+ }
+}
\ No newline at end of file
"quantity" -> longNumber
)(PartsListBean.apply)(PartsListBean.unapply),
"dcno" -> nonEmptyText
- )(DesignChangeForm.apply)(DesignChangeForm.unapply)
+ )(DesignChangeRelationForm.apply)(DesignChangeRelationForm.unapply)
)
def index(opt:Int, page:Int, key:String) = Action { implicit request =>
def designChangeForm(parentName:String, childName:String) = Action { implicit request =>
inTransaction {
- val designChangeForm = DesignChangeForm(generatePartsListBean(parentName, childName), generatePartsListBean(parentName, childName), "")
- Ok(views.html.designChangeForm(designChangeRegistForm.fill(designChangeForm)))
+ val designChangeRelationForm = DesignChangeRelationForm(generatePartsListBean(parentName, childName), generatePartsListBean(parentName, childName), "")
+ Ok(views.html.designChangeRelationForm(designChangeRegistForm.fill(designChangeRelationForm)))
}
}
def designChange() = Action { implicit request =>
designChangeRegistForm.bindFromRequest.fold(
- formWithErrors => BadRequest(views.html.designChangeForm(formWithErrors)),
+ formWithErrors => BadRequest(views.html.designChangeRelationForm(formWithErrors)),
data => {
inTransaction {
val dc = PartsListDb.designChanges.where(dc => dc.dcNo === data.dcno).head
package forms
import beans._
-case class DesignChangeForm(partsListBeanBefore: PartsListBean ,partsListBeanAfter: PartsListBean ,dcno: String) {
+case class DesignChangeForm(dcNo: String, dcDescription: String) {
}
\ No newline at end of file
--- /dev/null
+package forms
+import beans._
+
+case class DesignChangeRelationForm(partsListBeanBefore: PartsListBean ,partsListBeanAfter: PartsListBean ,dcno: String) {
+
+}
\ No newline at end of file
import org.squeryl.dsl._
import org.squeryl.dsl.ast._
import org.squeryl.KeyedEntity
-case class DesignChange(dcNo:String, dcDescription:String) extends KeyedEntity[Long] {
+case class DesignChange(var dcNo:String, var dcDescription:String) extends KeyedEntity[Long] {
val id:Long=0
lazy val delPartRelation:OneToMany[PartRelation] = PartsListDb.designChangeDelRelations.left(this)
--- /dev/null
+@(designChangeForm: Form[forms.DesignChangeForm])(implicit lang: Lang)
+@import helper._
+ <fieldset>
+ @inputText(designChangeForm("dcNo"), '_label-> Messages("form.header12"))
+ </filedset>
+ <filedset>
+ @inputText(designChangeForm("dcDescription"), '_label -> Messages("form.header13"))
+ </fieldset>
+ <div class="action">
+ <input type="submit" value=@Messages("list.link20") >
+ </div>
\ No newline at end of file
--- /dev/null
+@(designChangeForm: Form[forms.DesignChangeForm])(implicit lang: Lang)
+@import helper._
+@implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.f) }
+@main("Create Design Change by Play 2.1") {
+ <h1>@Messages("title21")</h1>
+ @form(routes.DesignChangeController.designChangeCoverRegistration) {
+ @commonDesignChangeForm(designChangeForm)
+ }
+ <br />
+ <a href="/designchangelist?page=0&key=">@Messages("title21")@Messages("title15")</a>
+
+}
+++ /dev/null
-@(designChangeForm: Form[forms.DesignChangeForm])(implicit lang: Lang)
-@import helper._
-@implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.f) }
-@main("Design Change by Play 2.1") {
- <h1>@Messages("title21")</h1>
- @form(routes.PartsListController.designChange()) {
- @inputText(designChangeForm("dcno"), '_label -> Messages("list.header10"))
- <hr />
- @Messages("form.header10")
- <fieldSet>
- @inputText(designChangeForm("partsListBeanBefore.parent"), '_label -> Messages("list.header1"), 'readonly -> "readonly")
- @inputText(designChangeForm("partsListBeanBefore.child"), '_label -> Messages("list.header2"), 'readonly -> "readonly")
- @inputText(designChangeForm("partsListBeanBefore.quantity"), '_label -> Messages("list.header3"), 'readonly -> "readonly")
- </fieldSet>
- <hr />
- @Messages("form.header11")
- <fieldSet>
- @inputText(designChangeForm("partsListBeanAfter.parent"), '_label -> Messages("list.header1"), 'readonly -> "readonly")
- @inputText(designChangeForm("partsListBeanAfter.child"), '_label -> Messages("list.header2"))
- @inputText(designChangeForm("partsListBeanAfter.quantity"), '_label -> Messages("list.header3"))
- </fieldSet>
- <div class="action">
- <input type="submit" class="btn primary" value=@Messages("btn.label4") >
- </div>
- }
-}
\ No newline at end of file
--- /dev/null
+@(designChangeRelationForm: Form[forms.DesignChangeRelationForm])(implicit lang: Lang)
+@import helper._
+@implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.f) }
+@main("Design Change by Play 2.1") {
+ <h1>@Messages("title21")</h1>
+ @form(routes.PartsListController.designChange()) {
+ @inputText(designChangeRelationForm("dcno"), '_label -> Messages("list.header10"))
+ <hr />
+ @Messages("form.header10")
+ <fieldSet>
+ @inputText(designChangeRelationForm("partsListBeanBefore.parent"), '_label -> Messages("list.header1"), 'readonly -> "readonly")
+ @inputText(designChangeRelationForm("partsListBeanBefore.child"), '_label -> Messages("list.header2"), 'readonly -> "readonly")
+ @inputText(designChangeRelationForm("partsListBeanBefore.quantity"), '_label -> Messages("list.header3"), 'readonly -> "readonly")
+ </fieldSet>
+ <hr />
+ @Messages("form.header11")
+ <fieldSet>
+ @inputText(designChangeRelationForm("partsListBeanAfter.parent"), '_label -> Messages("list.header1"), 'readonly -> "readonly")
+ @inputText(designChangeRelationForm("partsListBeanAfter.child"), '_label -> Messages("list.header2"))
+ @inputText(designChangeRelationForm("partsListBeanAfter.quantity"), '_label -> Messages("list.header3"))
+ </fieldSet>
+ <div class="action">
+ <input type="submit" class="btn primary" value=@Messages("btn.label4") >
+ </div>
+ <br />
+ <a href="/single_partslist?page=0&key=">@Messages("list.link2")</a>
+ }
+}
\ No newline at end of file
--- /dev/null
+@(designChanges: org.squeryl.Query[DesignChange], maxColumn:Int, key:String, page:Int)(implicit lang: Lang)
+@import models.DesignChange
+
+@*******************************************
+* Helper generating navigation links *
+*******************************************@
+@link(newPage: Int) = @{
+ routes.DesignChangeController.list(newPage, key)
+}
+@main("Parts Master by Play 2.1") {
+ <h3>@Messages("title21")@Messages("title15")</h3>
+
+ <a href="/designChangeCoverForm">@Messages("title21")@Messages("list.link18")</a>
+  
+ <a href="/">@Messages("link.title1")</a>
+ <br />
+ <br />
+ <div id="action">
+ @helper.form(action=routes.DesignChangeController.list(page, key)) {
+ <input type="search" id="searchbox" name="key" value="@key" placeholder="fill by the design change number">
+ <input type="hidden" name="page" value="0">
+ <input type="submit" id="search submit" value=@Messages("btn.label1") class="btn primary">
+ }
+ </div>
+ <table class="computers zebra-striped">
+ <thead>
+ <tr>
+ <th>@Messages("list.header4")</th>
+ <th>@Messages("form.header12")</th>
+ <th>@Messages("form.header13")</th>
+ </tr>
+ </thead>
+ <tbody>
+ @for(designChange <- designChanges) {
+ <tr><td>@designChange.id</td>
+ <td><a href="/designChangeCoverModify?id=@designChange.id">@designChange.dcNo</a></td>
+ <td><a href="/designChangeCoverModify?id=@designChange.id">@designChange.dcDescription</a></td>
+ </tr>
+ }
+ </tbody>
+ </table>
+
+ <div id="pagination" class="pagination">
+ <ul>
+ @if(page-1 < 0) {
+ <li class="prev disabled">← prev</li>
+ } else {
+ <li class="prev"><a href="@link(page-1)">prev</a></li>
+ }
+ <li class="current">current page:@(page+1)</li>
+ @if((page+1)*(Integer.decode(Messages("list.row"))) >= maxColumn) {
+ <li class="next disabled">next →</li>
+ } else {
+ <li class="next"><a href="@link(page+1)">next</a></li>
+ }
+ </ul>
+ </div>
+ <br />
+ <a href="/designChangeCoverForm">@Messages("title21")@Messages("list.link18")</a>
+  
+ <a href="/">@Messages("link.title1")</a>
+
+}
\ No newline at end of file
<a href="/list?page=0&key=">@Messages("title6")</a>
<br />
<a href="/single_partslist?page=0&key=">@Messages("title4")</a>
+ <br />
+ <a href="/designchangelist?page=0&key=">@Messages("title21")@Messages("title15")</a>
}
--- /dev/null
+@(designChangeForm: Form[forms.DesignChangeForm], id: Long)(implicit lang: Lang)
+@import helper._
+@implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.f) }
+@main("update User by Play 2.1") {
+ <h1>@Messages("title22")</h1>
+ @form(routes.DesignChangeController.designChangeCoverModification(id: Long)) {
+ @commonDesignChangeForm(designChangeForm)
+ }
+ <br />
+ <a href="/designchangelist?page=0&key=">@Messages("title21")@Messages("title15")</a>
+
+}
\ No newline at end of file
list.link17=create user
list.link18=create notify
list.link19=list
+list.link20=create Design Change
list.data1=reply
list.data2=reply2
+link.title1=menu
form.header1=atach
form.header2=atach name
form.header3=project
form.header9=answer message
form.header10=change before
form.header11=after changing
+form.header12=Design Change No.
+form.header13=Description
form.error1=PartList is the loop.
title1=Add Part
title2=Register Relation
title19=Open PDM light
title20=Please select.
title21=Design Change
+title22=Modify Design Change
btn.label1=search
btn.label2=Notification
btn.label3=Request
list.link17=create user
list.link18=create notify
list.link19=list
+list.link20=create Design Change
list.data1=reply
list.data2=reply2
+link.title1=menu
form.header1=atach
form.header2=atach name
form.header3=project
form.header9=answer message
form.header10=change before
form.header11=after changing
+form.header12=Design Change No.
+form.header13=Description
form.error1=PartList is the loop.
title1=Add Part
title2=Register Relation
title19=Open PDM light
title20=Please select.
title21=Design Change
+title22=Modify Design Change
btn.label1=search
btn.label2=Notification
btn.label3=Request
list.link17=ユーザ登録
list.link18=登録
list.link19=一覧
+list.link20=設計変更登録
list.data1=回答
list.data2=回答2
+link.title1=メニューへ
form.header1=添付
form.header2=添付文書名
form.header3=プロジェクト名
form.header9=回答メッセージ
form.header10=変更前
form.header11=変更後
+form.header12=設計変更番号
+form.header13=変更概要
form.error1=部品表がループしています。
title1=部品登録
title2=部品表登録
title19=Open PDM light
title20=選択してください。
title21=設計変更
+title22=設計変更更新
btn.label1=検索
btn.label2=通知
btn.label3=依頼
list.link17=ユーザ登録
list.link18=登録
list.link19=一覧
+list.link20=設計変更登録
list.data1=回答
list.data2=回答2
+link.title1=メニューへ
form.header1=添付
form.header2=添付文書名
form.header3=プロジェクト名
form.header9=回答メッセージ
form.header10=変更前
form.header11=変更後
+form.header12=設計変更番号
+form.header13=変更概要
form.error1=部品表がループしています。
title1=部品登録
title2=部品表登録
title19=Open PDM light
title20=選択してください。
title21=設計変更
+title22=設計変更更新
btn.label1=検索
btn.label2=通知
btn.label3=依頼
POST /relationChange controllers.PartsListController.relationUpdate(childName:String)
GET /designChangeForm controllers.PartsListController.designChangeForm(parentName, childName)
POST /designChange controllers.PartsListController.designChange
+GET /designChangeCoverForm controllers.DesignChangeController.create
+POST /designChangeCover controllers.DesignChangeController.designChangeCoverRegistration
+GET /designChangeCoverModify controllers.DesignChangeController.designChangeCoverModify(id:Long)
+POST /designChangeCoverModification controllers.DesignChangeController.designChangeCoverModification(id: Long)
GET /projectCreate controllers.ProjectController.createProject
POST /projectSave controllers.ProjectController.projectRegistration()
GET /projectModify controllers.ProjectController.updateProject(id:Long)
GET /projectlist controllers.ProjectController.list(page:Int, key:String)
GET /userList controllers.UserController.list(page:Int, key:String)
GET /notifylist controllers.NotifyController.listRecursion(page:Int, partId:Long, notifyType: Long, state: Long)
+GET /designchangelist controllers.DesignChangeController.list(page:Int, key:String)
GET /partDelete/:id controllers.PartsMasterController.partDelete(id:Long)
GET /relationDelete/:parentName/:childName controllers.PartsListController.relationDelete(parentName:String, childName:String)
GET /showAtach controllers.AtachController.showAtach(id:Long)