Time stamp plugin to support creating timestamp
Example//initialize default timestamp functionality var MyModel = patio.addModel("testTable", { plugins : [patio.plugins.TimeStampPlugin], static : { init : function(){ this._super("arguments"); this.timestamp(); } } }); //custom updated column var MyModel = patio.addModel("testTable", { plugins : [patio.plugins.TimeStampPlugin], static : { init : function(){ this._super("arguments"); this.timestamp({updated : "myUpdatedColumn"}); } } }); //custom created column var MyModel = patio.addModel("testTable", { plugins : [patio.plugins.TimeStampPlugin], static : { init : function(){ this._super("arguments"); this.timestamp({created : "customCreatedColumn"}); } } }); //set both custom columns var MyModel = patio.addModel("testTable", { plugins : [patio.plugins.TimeStampPlugin], static : { init : function(){ this._super("arguments"); this.timestamp({created : "customCreatedColumn", updated : "myUpdatedColumn"}); } } }); //Set to update the updated column when row is created var MyModel = patio.addModel("testTable", { plugins : [patio.plugins.TimeStampPlugin], static : { init : function(){ this._super("arguments"); this.timestamp({updateOnCreate : true}); } } }); //Set all three options var MyModel = patio.addModel("testTable", { plugins : [patio.plugins.TimeStampPlugin], static : { init : function(){ this._super("arguments"); this.timestamp({created : "customCreatedColumn", updated : "myUpdatedColumn", updateOnCreate : true}); } } });
exports = define(null, {
Adds timestamp functionality to a table.
Arguments"updated"
] String
: the name of the column to set the updated timestamp on.
"created"
] String
: the name of the column to set the created timestamp on
false
] Boolean
: Set to true to set the updated column on creation
function (options){ options = options || {}; this._timestampOptions = options; var updateColumn = options.updated || "updated"; var createdColumn = options.created || "created"; var updateOnCreate = options.updateOnCreate || false; this.pre("save", function (next) { this[createdColumn] = new Date(); if (updateOnCreate) { this[updateColumn] = new Date(); } next(); }); this.pre("update", function (next) { this[updateColumn] = new Date(); next(); }); return this; }