|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
[gatewiki-commits] SF.net SVN: gatewiki:[1782] trunk/cow/grails-appRevision: 1782
http://gatewiki.svn.sourceforge.net/gatewiki/?rev=1782&view=rev Author: ian_roberts Date: 2009-10-30 13:45:47 +0000 (Fri, 30 Oct 2009) Log Message: ----------- Report YAM parsing errors to the user when they try and preview or save a malformed YAM file. We currently don't allow save when there are parse errors, maybe it would be better to add an "are you sure" state and let a user save the file anyway? Parse errors are reported just as the message from the ParsingProblem object, which is ugly and full of JavaCC stuff ("expected one of <EOF> ... <tableEnd> ...") but better than nothing. Can be made prettier later. Modified Paths: -------------- trunk/cow/grails-app/controllers/PageController.groovy trunk/cow/grails-app/services/PageService.groovy trunk/cow/grails-app/views/page/edit/edit.gsp trunk/cow/grails-app/views/page/edit/preview.gsp Modified: trunk/cow/grails-app/controllers/PageController.groovy =================================================================== --- trunk/cow/grails-app/controllers/PageController.groovy 2009-10-30 13:43:12 UTC (rev 1781) +++ trunk/cow/grails-app/controllers/PageController.groovy 2009-10-30 13:45:47 UTC (rev 1782) @@ -518,9 +518,13 @@ action { log.debug("editFlow: doing save") pageService.saveEdit(flow.asMap()) - if(flow.editedFileUpdated) + if(flow.editedFileUpdated) { return updates() + } + if(flow.parseErrors) { + return parseErrors() + } // only if user has set it to true if(conf.thirdparty && conf.solr.run) { @@ -546,6 +550,9 @@ on("updates") { log.debug("save -> edit") }.to "edit" + on("parseErrors") { + log.debug("YAM parse errors: save -> edit") + }.to "edit" on(Exception).to "errorExit" } // save Modified: trunk/cow/grails-app/services/PageService.groovy =================================================================== --- trunk/cow/grails-app/services/PageService.groovy 2009-10-30 13:43:12 UTC (rev 1781) +++ trunk/cow/grails-app/services/PageService.groovy 2009-10-30 13:45:47 UTC (rev 1782) @@ -348,6 +348,11 @@ overwrite(flow.editYamFile, flow.editOutput, !(flow.rich)) yamService.generate(flow.editYamFile, true, flow) flow.pageBody = FileUtils.getBody(flow.editYamFile.htmlFile.text) + flow.parseErrors = flow.editYamFile.parseTree?.errors?.collect { it.message } + flow.parseWarnings = flow.editYamFile.parseTree?.warnings?.collect { it.message } + if(flow.parseErrors) { + log.error("Parse errors detected: ${flow.parseErrors}") + } } else { // non-yam html or plain text overwrite(flow, flow.editFile, flow.editOutput) // overwrite edit file flow.pageBody = flow.editOutput // set up body for show @@ -364,6 +369,12 @@ // overwrite the edit file and regenerate overwrite(flow.editYamFile, flow.editOutput, (flow.rich) ? false : true) yamService.generate(flow.editYamFile, true, flow) + flow.parseErrors = flow.editYamFile.parseTree?.errors?.collect { it.message } + flow.parseWarnings = flow.editYamFile.parseTree?.warnings?.collect { it.message } + // stop if parse errors + if(flow.parseErrors) { + return + } // non-yam html or plain text } else { overwrite(flow, flow.editFile, flow.editOutput) // overwrite edit file Modified: trunk/cow/grails-app/views/page/edit/edit.gsp =================================================================== --- trunk/cow/grails-app/views/page/edit/edit.gsp 2009-10-30 13:43:12 UTC (rev 1781) +++ trunk/cow/grails-app/views/page/edit/edit.gsp 2009-10-30 13:45:47 UTC (rev 1782) @@ -13,6 +13,17 @@ <g:render template="/messages" model="${pageScope.variables}" /> + <g:if test="${parseErrors}"> + <!-- YAM parse errors --> + <div class="errors"> + <ul> + <g:each in="${parseErrors}"> + <li><pre>${it.encodeAsHTML()}</pre></li> + </g:each> + </ul> + </div> + </g:if> + <g:if test="${rich}"> <form action="${pageURI(action:'edit', id:id, linkPath:pagePath, query:'rich=1')}" method="post"> Modified: trunk/cow/grails-app/views/page/edit/preview.gsp =================================================================== --- trunk/cow/grails-app/views/page/edit/preview.gsp 2009-10-30 13:43:12 UTC (rev 1781) +++ trunk/cow/grails-app/views/page/edit/preview.gsp 2009-10-30 13:45:47 UTC (rev 1782) @@ -7,6 +7,17 @@ <body> <g:render template="/messages" model="${pageScope.variables}" /> + <g:if test="${parseErrors}"> + <!-- YAM parse errors --> + <div class="errors"> + <ul> + <g:each in="${parseErrors}"> + <li><pre>${it.encodeAsHTML()}</pre></li> + </g:each> + </ul> + </div> + </g:if> + <form action="${pageURI(action:'edit', id:id, linkPath:pagePath)}" method="post"> <input type="hidden" name="execution" value="${request['flowExecutionKey']}" id="execution" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ gatewiki-commits mailing list gatewiki-commits@... https://lists.sourceforge.net/lists/listinfo/gatewiki-commits |
| Free embeddable forum powered by Nabble | Forum Help |