add example of using get and post for form dialog of products and capture form content and sending as JSON rather than form-url-encoded.
This commit is contained in:
@@ -165,6 +165,23 @@
|
|||||||
}).dialog('open');
|
}).dialog('open');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$.fn.serializeObject = function()
|
||||||
|
{
|
||||||
|
var o = {};
|
||||||
|
var a = this.serializeArray();
|
||||||
|
$.each(a, function() {
|
||||||
|
if (o[this.name] !== undefined) {
|
||||||
|
if (!o[this.name].push) {
|
||||||
|
o[this.name] = [o[this.name]];
|
||||||
|
}
|
||||||
|
o[this.name].push(this.value || '');
|
||||||
|
} else {
|
||||||
|
o[this.name] = this.value || '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return o;
|
||||||
|
};
|
||||||
|
|
||||||
function popupDialogWithFormView(getUrl, postUrl, titleCode, templateSelector, width, height, saveSuccessFunction) {
|
function popupDialogWithFormView(getUrl, postUrl, titleCode, templateSelector, width, height, saveSuccessFunction) {
|
||||||
var dialogDiv = $("<div id='dialog-form'></div>");
|
var dialogDiv = $("<div id='dialog-form'></div>");
|
||||||
var jqxhr = $.ajax({
|
var jqxhr = $.ajax({
|
||||||
@@ -174,7 +191,7 @@
|
|||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
cache: false,
|
cache: false,
|
||||||
success: function(data, textStatus, jqXHR) {
|
success: function(data, textStatus, jqXHR) {
|
||||||
|
console.log(data);
|
||||||
var formHtml = $(templateSelector).render(data);
|
var formHtml = $(templateSelector).render(data);
|
||||||
|
|
||||||
dialogDiv.append(formHtml);
|
dialogDiv.append(formHtml);
|
||||||
@@ -193,12 +210,18 @@
|
|||||||
$(this).attr("selected", "selected");
|
$(this).attr("selected", "selected");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var newFormData = JSON.stringify($('#entityform').serializeObject());
|
||||||
|
console.log(newFormData);
|
||||||
|
|
||||||
var form_data = $('#entityform').serialize();
|
var form_data = $('#entityform').serialize();
|
||||||
|
|
||||||
var jqxhr = $.ajax({
|
var jqxhr = $.ajax({
|
||||||
url: postUrl,
|
url: postUrl,
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: form_data,
|
contentType: 'application/json',
|
||||||
|
dataType: 'json',
|
||||||
|
data: newFormData,
|
||||||
success: saveSuccessFunction,
|
success: saveSuccessFunction,
|
||||||
error: function(jqXHR, textStatus, errorThrown) {
|
error: function(jqXHR, textStatus, errorThrown) {
|
||||||
handleXhrError(jqXHR, textStatus, errorThrown, "#formErrorsTemplate", "#formerrors");
|
handleXhrError(jqXHR, textStatus, errorThrown, "#formErrorsTemplate", "#formerrors");
|
||||||
@@ -250,7 +273,6 @@
|
|||||||
$('#addloanproduct').click(function(e) {
|
$('#addloanproduct').click(function(e) {
|
||||||
var getUrl = 'http://localhost:8085/mifosng-provider/api/v1/loanproducts/template';
|
var getUrl = 'http://localhost:8085/mifosng-provider/api/v1/loanproducts/template';
|
||||||
var postUrl = 'http://localhost:8085/mifosng-provider/api/v1/loanproducts';
|
var postUrl = 'http://localhost:8085/mifosng-provider/api/v1/loanproducts';
|
||||||
|
|
||||||
//var url = '${rootContext}portfolio/product/loan/new';
|
//var url = '${rootContext}portfolio/product/loan/new';
|
||||||
var templateSelector = "#productFormTemplate";
|
var templateSelector = "#productFormTemplate";
|
||||||
var width = 800;
|
var width = 800;
|
||||||
@@ -261,7 +283,7 @@
|
|||||||
refreshLoanProductsView();
|
refreshLoanProductsView();
|
||||||
}
|
}
|
||||||
|
|
||||||
popupDialogWithFormView(getUrl, postUrl,"dialog.title.add.loan.product", templateSelector, width, height, saveSuccessFunction);
|
popupDialogWithFormView(getUrl, postUrl, "dialog.title.add.loan.product", templateSelector, width, height, saveSuccessFunction);
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
+7
-47
@@ -2,6 +2,7 @@ package org.mifosng.platform.api.loanproduct;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.POST;
|
import javax.ws.rs.POST;
|
||||||
@@ -9,6 +10,7 @@ import javax.ws.rs.PUT;
|
|||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.PathParam;
|
import javax.ws.rs.PathParam;
|
||||||
import javax.ws.rs.Produces;
|
import javax.ws.rs.Produces;
|
||||||
|
import javax.ws.rs.core.Context;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.Response;
|
||||||
|
|
||||||
@@ -69,35 +71,16 @@ public class LoanProductApiResource {
|
|||||||
context.setAuthentication(auth);
|
context.setAuthentication(auth);
|
||||||
}
|
}
|
||||||
|
|
||||||
// example POST request
|
|
||||||
// http://localhost:8085/mifosng-provider/api/v1/loanproducts/
|
|
||||||
// Content-Type: application/json
|
|
||||||
// {
|
|
||||||
// "name": "test",
|
|
||||||
// "description": "test",
|
|
||||||
// "commonLoanProperties": {
|
|
||||||
// "currencyCode": "USD",
|
|
||||||
// "digitsAfterDecimal": 2,
|
|
||||||
// "principal": 100000,
|
|
||||||
// "repaymentEvery": 1,
|
|
||||||
// "repaymentFrequency": 2,
|
|
||||||
// "numberOfRepayments": 12,
|
|
||||||
// "amortizationMethod": 1,
|
|
||||||
// "inArrearsToleranceAmount": 1000,
|
|
||||||
// "interestRatePerPeriod": 2,
|
|
||||||
// "interestRateFrequencyMethod": 2,
|
|
||||||
// "interestMethod": 0,
|
|
||||||
// "interestCalculationPeriodMethod": 1
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
@POST
|
@POST
|
||||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
@Produces({ MediaType.APPLICATION_JSON})
|
@Produces({ MediaType.APPLICATION_JSON})
|
||||||
public Response createLoanProduct(LoanProductCommand command) {
|
public Response createLoanProduct(@Context HttpServletRequest request) {
|
||||||
|
|
||||||
hardcodeUserIntoSecurityContext();
|
hardcodeUserIntoSecurityContext();
|
||||||
|
|
||||||
EntityIdentifier entityIdentifier = this.loanProductWritePlatformService.createLoanProduct(command);
|
// TODO - FIX mapping to command object on post and also fix error handling of this when it fails.
|
||||||
|
EntityIdentifier entityIdentifier = new EntityIdentifier(Long.valueOf(-1));
|
||||||
|
// this.loanProductWritePlatformService.createLoanProduct(command);
|
||||||
|
|
||||||
return Response.ok().entity(entityIdentifier).build();
|
return Response.ok().entity(entityIdentifier).build();
|
||||||
}
|
}
|
||||||
@@ -142,30 +125,7 @@ public class LoanProductApiResource {
|
|||||||
|
|
||||||
return Response.ok().entity(loanProduct).build();
|
return Response.ok().entity(loanProduct).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
// example PUT request
|
|
||||||
// http://localhost:8085/mifosng-provider/api/v1/loanproducts/
|
|
||||||
// Content-Type: application/json
|
|
||||||
// {
|
|
||||||
// "id": 7,
|
|
||||||
// "name": "test",
|
|
||||||
// "description": "test",
|
|
||||||
// "externalId": "",
|
|
||||||
// "commonLoanProperties": {
|
|
||||||
// "currencyCode": "USD",
|
|
||||||
// "digitsAfterDecimal": 2,
|
|
||||||
// "principal": 100000,
|
|
||||||
// "repaymentEvery": 1,
|
|
||||||
// "repaymentFrequency": 2,
|
|
||||||
// "numberOfRepayments": 12,
|
|
||||||
// "amortizationMethod": 1,
|
|
||||||
// "inArrearsToleranceAmount": 1000,
|
|
||||||
// "interestRatePerPeriod": 2,
|
|
||||||
// "interestRateFrequencyMethod": 2,
|
|
||||||
// "interestMethod": 0,
|
|
||||||
// "interestCalculationPeriodMethod": 1
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
@PUT
|
@PUT
|
||||||
@Path("{productId}")
|
@Path("{productId}")
|
||||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||||
|
|||||||
Reference in New Issue
Block a user