Calendar popup showing before deferred promise resolved.

  • 1
  • Idea
  • Updated 2 years ago
  • Implemented
This is a continuation of this thread, but a separate problem.

Here's my code (thanks for your help, Pat!)

var model = arguments[0].model,    row = arguments[0].row, 
    $ = skuid.$,
    dfd = new $.Deferred();
var mA = skuid.$M('AllAppointments');
mA.createRow({additionalConditions:[
        {field: 'Start__c', value: row.Start__c},
        {field: 'End__c', value: row.End__c},
        {field: 'Room__c', value: row.Room__c}
    ]});
    
model.deleteRow(row);
$.when(mA.save())
   .done(function(){
       var rA = mA.getFirstRow();
       mA.setCondition(mA.getConditionByName('ThisOne'), rA.Id);
       $.when(mA.updateData())
            .done(function(){
                dfd.resolve();
            })
            .fail(function(){
                console.log('something went wrong on query');
                dfd.reject();
            });
   })
   .fail(function(){
        console.log('there was a really bad problem, like connecting to the server');
        dfd.reject();
   });
return dfd.promise();


I'm running this little beauty before a calendar popup.

However, the popup displays before I get to the first .done (and it has a whole bunch of row s, because the condition hasn't been set yet).

Any idea what might be going on here?


To back up a bit, for those interested in the context (perhaps there's a better way to do this whole thing).

I have two (relevant) event sources. One is a model for our master schedule, and one is a model for recurring events created based on that schedule. The latter basically only has fields for Start__c, End__c, and Room__c (the grouping field). I want to give the users same experience whether they click on an event that is in the Schedule model (AllAppointments above) or the Reoccurrence model. So, what this code is doing is getting the data from the row in Reoccurrence and creating a new row in AllAppointments instead. Then I'm showing the same popup on the AllAppointments model. But I need to be able to narrow down the model to just the fields for the row I created.

Does that make any sense?

Is there a better way to 'combine models' into one event source?

thanks!
Photo of Matt Sones

Matt Sones, Champion

  • 31,478 Points 20k badge 2x thumb

Posted 4 years ago

  • 1
Photo of Zach McElrath

Zach McElrath, Employee

  • 49,056 Points 20k badge 2x thumb
Official Response
Hi Matt, we have released Skuid Superbank Patch 5, which implements this. It's available from Skuid Releases: http://www.skuidify.com/skuidreleases