NIHVIVO-3288 fix URL-building bug in OperationController
This commit is contained in:
parent
46ee0b3a84
commit
4f177c31c9
2 changed files with 17 additions and 9 deletions
|
@ -108,7 +108,7 @@ public class OperationController extends BaseEditController {
|
||||||
|
|
||||||
//if validation failed, go back to the form controller
|
//if validation failed, go back to the form controller
|
||||||
if (!valid){
|
if (!valid){
|
||||||
retry(request,response);
|
retry(request, response, epo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ public class OperationController extends BaseEditController {
|
||||||
|
|
||||||
boolean status = performEdit(epo, newObj, action);
|
boolean status = performEdit(epo, newObj, action);
|
||||||
if (status == FAILURE) {
|
if (status == FAILURE) {
|
||||||
retry(request,response);
|
retry(request, response, epo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ public class OperationController extends BaseEditController {
|
||||||
epo.setAttribute("globalErrorMsg", errMsg);
|
epo.setAttribute("globalErrorMsg", errMsg);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
retry(request, response);
|
retry(request, response, epo);
|
||||||
return;
|
return;
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
log.error(this.getClass().getName() + " IOError on redirect: ", ioe);
|
log.error(this.getClass().getName() + " IOError on redirect: ", ioe);
|
||||||
|
@ -174,18 +174,27 @@ public class OperationController extends BaseEditController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void retry(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
private void retry(HttpServletRequest request,
|
||||||
|
HttpServletResponse response,
|
||||||
|
EditProcessObject epo) throws IOException {
|
||||||
String referer = request.getHeader("Referer");
|
String referer = request.getHeader("Referer");
|
||||||
|
referer = (referer == null) ? epo.getReferer() : referer;
|
||||||
if( referer != null ){
|
if( referer != null ){
|
||||||
int epoKeyIndex = referer.indexOf("_epoKey");
|
int epoKeyIndex = referer.indexOf("_epoKey");
|
||||||
if (epoKeyIndex >= 0){
|
if (epoKeyIndex >= 0){
|
||||||
String url = referer.substring(0,epoKeyIndex) + "_epoKey="+request.getParameter("_epoKey");
|
String url = referer.substring(0,epoKeyIndex) + "_epoKey=" +
|
||||||
|
request.getParameter("_epoKey");
|
||||||
response.sendRedirect(url);
|
response.sendRedirect(url);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
String redirectUrl = (referer.indexOf("?") > -1)
|
||||||
|
? referer + "&"
|
||||||
|
: referer + "?";
|
||||||
|
redirectUrl += "_epoKey="+request.getParameter("_epoKey");
|
||||||
|
response.sendRedirect(redirectUrl);
|
||||||
|
} else {
|
||||||
|
response.sendRedirect(getDefaultLandingPage(request));
|
||||||
}
|
}
|
||||||
response.sendRedirect(referer+"&_epoKey="+request.getParameter("_epoKey"));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,6 @@
|
||||||
<select name="Namespace"><form:option name="Namespace"/></select>
|
<select name="Namespace"><form:option name="Namespace"/></select>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
<span class="warning"><form:error name="Namespace"/></span>
|
|
||||||
</td>
|
</td>
|
||||||
<td valign="bottom" colspan="1">
|
<td valign="bottom" colspan="1">
|
||||||
<b>Internal Name</b><br/>
|
<b>Internal Name</b><br/>
|
||||||
|
@ -55,7 +54,7 @@
|
||||||
<input name="LocalName" value="${formValue['LocalName']}" style="width:90%"/>
|
<input name="LocalName" value="${formValue['LocalName']}" style="width:90%"/>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
<span class="warning"><form:error name="LocalName"/></span>
|
<span class="notice"><form:error name="LocalName"/></span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
|
|
Loading…
Add table
Reference in a new issue