(function(window)
{
var Gitana = window.Gitana;
Gitana.ScheduledWork = Gitana.AbstractPlatformObject.extend(
/** @lends Gitana.ScheduledWork.prototype */
{
/**
* @constructs
* @augments Gitana.AbstractPlatformObject
*
* @class ScheduledWork
*
* @param {Gitana.Platform} platform
* @param [Object] object json object (if no callback required for populating)
*/
constructor: function(platform, object)
{
this.base(platform, object);
this.objectType = function() { return "Gitana.ScheduledWork"; };
},
/**
* @OVERRIDE
*/
getType: function()
{
return Gitana.TypedIDConstants.TYPE_SCHEDULED_WORK;
},
/**
* @OVERRIDE
*/
getUri: function()
{
return "/work/scheduled/" + this.getId();
},
/**
* @override
*/
clone: function()
{
return this.getFactory().scheduledWork(this.getPlatform(), this);
},
/**
* Manually triggers the scheduled
* @returns {*}
*/
trigger: function()
{
var self = this;
return this.then(function() {
var chain = this;
// call
var uri = self.getUri() + "/trigger";
self.getDriver().gitanaPost(uri, null, {}, function(response) {
chain.next();
});
// NOTE: we return false to tell the chain that we'll manually call next()
return false;
});
}
});
})(window);