(function(window)
{
var Gitana = window.Gitana;
Gitana.Settings = Gitana.AbstractApplicationObject.extend(
/** @lends Gitana.Settings.prototype */
{
/**
* @constructs
* @augments Gitana.AbstractApplicationObject
*
* @class Settings
*
* @param {Gitana.Application} application
* @param [Object] object json object (if no callback required for populating)
*/
constructor: function(application, object)
{
this.base(application, object);
this.objectType = function() { return "Gitana.Settings"; };
},
/**
* @override
*/
clone: function()
{
return new Gitana.Settings(this.getApplication(), this);
},
/**
* @OVERRIDE
*/
getType: function()
{
return Gitana.TypedIDConstants.TYPE_SETTINGS;
},
/**
* @OVERRIDE
*/
getUri: function()
{
return "/applications/" + this.getApplicationId() + "/settings/" + this.getId();
},
/**
* Returns all settings.
*/
getSettings: function()
{
return this["settings"];
},
/**
* Gets setting by key.
* @param key Setting key
*/
getSetting: function(key)
{
return (this.getSettings() ? this.getSettings()[key] : null);
},
/**
* Sets setting.
*
* @param key Setting key
* @param val Setting value
*/
setSetting: function(key, val)
{
if (!this.getSettings())
{
this["settings"] = {};
}
this["settings"][key] = val;
},
//////////////////////////////////////////////////////////////////////////////////////////
//
// ATTACHMENTS
//
//////////////////////////////////////////////////////////////////////////////////////////
/**
* Hands back an attachments map.
*
* @chained attachment map
*
* @param local
*
* @public
*/
listAttachments: Gitana.Methods.listAttachments(),
/**
* Picks off a single attachment
*
* @chained attachment
*
* @param attachmentId
*/
attachment: function(attachmentId)
{
return this.listAttachments().select(attachmentId);
},
/**
* Creates an attachment.
*
* When using this method from within the JS driver, it really only works for text-based content such
* as JSON or text.
*
* @chained attachment
*
* @param attachmentId (use null or false for default attachment)
* @param contentType
* @param data
*/
attach: Gitana.Methods.attach(),
/**
* Deletes an attachment.
*
* @param attachmentId
*/
unattach: Gitana.Methods.unattach(),
/**
* Generates a URI to a preview resource.
*/
getPreviewUri: Gitana.Methods.getPreviewUri()
});
})(window);