Node values not getting updated in crx and also in UI
Hello ,
I have a requirement where io need to pre-populate node 1 values into Node2 thru path field selection from node1 in dialog .
AJAX : Am using Ajax Call to send two node values ---
function(){
var componentDialog = this.findParentByType('dialog');
var currComponentPath = componentDialog.path;
var selectedPath = this.value;
$.ajax({
type: 'POST',
url: "/bin/portal/jsonservices",
dataType: "text json",
data:'SelectedPath='+ selectedPath+'&CurrentCompPath='+ currComponentPath,
cache: false,
success: AjaxSucceeded,
error: AjaxFailed
});
function AjaxSucceeded(result) {
alert("success");
alert(result.status + ' ====' + result.statusText +' ===== '+selectedPath + '=====' +currComponentPath);
}
function AjaxFailed(result) {
alert("fail");
alert(result.status + ' ====' + result.statusText +' ===== '+selectedPath + '=====' +currComponentPath);
}
}
Servlet : Values are getting passed to servlet perfectly fine ....
@Component
@Service
@Properties({
@Property(name="service.description", value="Updates Nodes"),
@Property(name="service.vendor", value="3|SHARE"),
@Property(name="sling.servlet.paths",value="/bin/portal/jsonservices"),
@Property(name="sling.servlet.extensions",value="json"),
@Property(name = "sling.servlet.methods", value = {"POST"})})
public class GetNodeDetails extends org.apache.sling.api.servlets.SlingAllMethodsServlet {
private static final long serialVersionUID = 1L;
private static final Logger logger = LoggerFactory.getLogger(GetNodeDetails.class);
@Override
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException
{
response.setHeader("Content-Type", "application/json");
try {
response.setContentType("application/json");
// ResourceResolver resolver = request.getResourceResolver();
Session session = request.getResourceResolver().adaptTo(Session.class);
String selectedPath = request.getParameter("SelectedPath");
String pagePath = request.getParameter("CurrentCompPath");
Node node = session.getNode(selectedPath);
Node node1 = session.getNode(pagePath);
Value vs[]= node.getProperty("rows").getValues();
String country = node.getProperty("country").getString();
String segment = node.getProperty("segment").getString();
String name = node.getProperty("name").getString();
if(vs!=null){
logger.info("== IN IF LOOP ==");
node1.setProperty("rows",vs);
}
node1.setProperty("country",country);
node1.setProperty("segment",segment);
node1.setProperty("name",name);
session.save();
response.setStatus(SlingHttpServletResponse.SC_OK);
}catch (Exception e) {
logger.error(" Exception", e);
}