This repository has been archived on 2022-08-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
outline/server/models/Revision.js
Tom Moor 9338a54fe0 feat: Separate title from body (#1216)
* first pass at updating all Time components each second

* fix a couple date variable typos

* use class style state management instead of hooks

* wip: Separate title from body

* address feedback

* test: Remove unused test

* feat: You in publishing info language
fix: Removal of secondary headings

* After much deliberation… a migration is needed for this to be reliable

* fix: Export to work with new title structure

* fix: Untitled

* fix: Consistent spacing of first editor node

* fix: Emoji in title handling

* fix: Time component not updating for new props

* chore: Add createdAt case

* fix: Conflict after merging new TOC

* PR feedback

* lint

* fix: Heading level adjustment

Co-authored-by: Taylor Lapeyre <taylorlapeyre@gmail.com>
2020-04-05 15:07:34 -07:00

46 lines
1.0 KiB
JavaScript

// @flow
import { DataTypes, sequelize } from '../sequelize';
const Revision = sequelize.define('revision', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
version: DataTypes.SMALLINT,
editorVersion: DataTypes.STRING,
title: DataTypes.STRING,
text: DataTypes.TEXT,
});
Revision.associate = models => {
Revision.belongsTo(models.Document, {
as: 'document',
foreignKey: 'documentId',
onDelete: 'cascade',
});
Revision.belongsTo(models.User, {
as: 'user',
foreignKey: 'userId',
});
Revision.addScope(
'defaultScope',
{
include: [{ model: models.User, as: 'user', paranoid: false }],
},
{ override: true }
);
};
Revision.prototype.migrateVersion = function() {
// migrate from revision version 0 -> 1 means removing the title from the
// revision text attribute.
if (!this.version) {
this.text = this.text.replace(/^#\s(.*)\n/, '');
this.version = 1;
return this.save({ silent: true, hooks: false });
}
};
export default Revision;