Versioned Metadata

This commit is contained in:
Paul Driver 2011-02-11 09:26:05 -06:00
parent add255388a
commit ae3e49d622
14 changed files with 546 additions and 54 deletions

View file

@ -150,6 +150,23 @@ sub addRevision {
);
}
}
# Copy metadata values
my $db = $self->session->db;
my $id = $self->getId;
my $then = $self->get('revisionDate');
my $mdget = q{
select fieldId, value from metaData_values
where assetId = ? and revisionDate = ?
};
my $mdset = q{
insert into metaData_values (fieldId, value, assetId, revisionDate)
values (?, ?, ?, ?)
};
for my $row (@{ $db->buildArrayRefOfHashRefs($mdget, [ $id, $then ]) }) {
$db->write($mdset, [ $row->{fieldId}, $row->{value}, $id, $now ]);
}
$self->session->db->commit;
# merge the defaults, current values, and the user set properties
@ -377,6 +394,10 @@ sub purgeRevision {
if ($count < 1) {
$self->session->db->write("update asset set isLockedBy=null where assetId=?",[$self->getId]);
}
$self->session->db->write(
'delete from metaData_values where assetId=? and revisionDate=?',
[ $self->getId, $self->get('revisionDate') ]
);
$self->session->db->commit;
$self->purgeCache;
$self->updateHistory("purged revision ".$self->get("revisionDate"));