Redirect after saving new record

edited February 15, 2017 in Questions
I've tried to tweak previous similar solutions to fit my use case, but just can't get it to work.  I'm new to javascript and am probably making a silly mistake.  

- I am saving a parent object (Shipment) and child objects (ShippingRecords).  Once I save, I want to redirect to the the shipment (the first row in the Shipment model).  The snippet below is called from a button on a page title component where the model is Shipment.  

- I've included my entire snippet for reference, but the part I think I need help with is bolded below.  I'm not sure if I'm doing the merge right, or if I need to put that piece of code elsewhere. 

Thanks, as always, for the help. 




var params = arguments[0],   $ = skuid.$;
    
var models = skuid.model.map();
var ShipmentModel = models.Shipment;
var TheShipment = ShipmentModel.getFirstRow();
var shippingrecords = models.ShippingRecords;

ShipmentModel.save({callback:function(){
    var Direction = TheShipment.Direction__c;
    var Status = TheShipment.Status__c;
    var ShipFrom = TheShipment.Ship_From__c;
    var ShipTo = TheShipment.Ship_To__c;
    var ShippingMethod = TheShipment.Shipping_Method__c;
    var TrackingNumber = TheShipment.Tracking_Number__c;
    var DateShipped = TheShipment.Date_Shipped__c;
    var DateArrived = TheShipment.Date_Arrived__c;

    $.each(shippingrecords.data,function(i,row){
        shippingrecords.updateRow(row,{
            Direction__c : Direction,
            Status__c : Status,
            Ship_From__c : ShipFrom,
            Ship_To__c : ShipTo,
            Shipping_Method__c : ShippingMethod,
            Tracking_Number__c : TrackingNumber,
            Date_Shipped__c : DateShipped,
            Date_Arrived__c : DateArrived
        });
    });


    shippingrecords.save();
    
            var model = params.model;
            var row = params.row;
            var url = "/{{id}}";
            var merges = skuid.$('<div>').append(model.mergeRow(row,url));
            window.location=(merges.text());

}});

Comments

  • edited December 18, 2014
    Try this...

    var params = arguments[0],   $ = skuid.$;    
    var models = skuid.model.map();
    var ShipmentModel = models.Shipment;
    var TheShipment = ShipmentModel.getFirstRow();
    var shippingrecords = models.ShippingRecords;

    ShipmentModel.save({callback:function(){
        var Direction = TheShipment.Direction__c;
        var Status = TheShipment.Status__c;
        var ShipFrom = TheShipment.Ship_From__c;
        var ShipTo = TheShipment.Ship_To__c;
        var ShippingMethod = TheShipment.Shipping_Method__c;
        var TrackingNumber = TheShipment.Tracking_Number__c;
        var DateShipped = TheShipment.Date_Shipped__c;
        var DateArrived = TheShipment.Date_Arrived__c;

        $.each(shippingrecords.data,function(i,row){
            shippingrecords.updateRow(row,{
                Direction__c : Direction,
                Status__c : Status,
                Ship_From__c : ShipFrom,
                Ship_To__c : ShipTo,
                Shipping_Method__c : ShippingMethod,
                Tracking_Number__c : TrackingNumber,
                Date_Shipped__c : DateShipped,
                Date_Arrived__c : DateArrived
            });
        });


        shippingrecords.save({callback:function(result){
    if(result.totalsuccess){
    var Id = ShipmentModel.getFieldValue(TheShipment,'Id');
    window.location = '/' + Id;
    }
    }});

    }});
  • edited February 15, 2017
    This works perfectly.  Thanks, Moshe!
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!