Changeset 2854
- Timestamp:
- 07/29/08 17:56:15 (4 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/feature-revision-histories/lib/MT/Revisable.pm
r2852 r2854 69 69 # prioritized and thus caused problems with plugins 70 70 # registering a post_save and saving 71 MT->add_callback( 'api_post_save.' . $datasource, 9, undef, \&mt_postsave_obj );72 MT->add_callback( 'cms_post_save.' . $datasource, 9, undef, \&mt_postsave_obj );71 MT->add_callback( 'api_post_save.' . $datasource, 9, undef, \&mt_postsave_obj ); 72 MT->add_callback( 'cms_post_save.' . $datasource, 9, undef, \&mt_postsave_obj ); 73 73 } 74 74 … … 105 105 # Collision Checking 106 106 my $changed_cols = $obj->{changed_revisioned_cols}; 107 my $modified_by = $o rig->author;107 my $modified_by = $obj->author; 108 108 109 109 if(scalar @$changed_cols) { 110 110 if($app->isa('MT::App::CMS') 111 111 && $app->param('current_revision') # not submitted if a user saves again on collision 112 && $app->param('current_revision') != $o rig->current_revision) {112 && $app->param('current_revision') != $obj->current_revision) { 113 113 my %param = ( 114 114 collision => 1, … … 118 118 return $app->forward( "view", \%param ); 119 119 } 120 } 121 122 $obj->increment_revision($orig);120 } 121 122 return 1; 123 123 } 124 124 … … 126 126 my ($cb, $app, $obj, $orig) = @_; 127 127 128 $obj->save_revision(); 128 my $current_revision = $obj->save_revision(); 129 130 $obj->current_revision($current_revision); 131 $obj->save or return $obj->error($obj->errstr); 132 133 return 1; 129 134 } 130 135 … … 170 175 } 171 176 172 sub increment_revision {173 my $obj = shift;174 my ($orig) = @_;175 176 my $changed_cols = $obj->{changed_revisioned_cols};177 return 1 unless scalar @$changed_cols > 0;178 179 # We default current_revision to 0 so we can always increment180 # Initial save = rev 1181 my $current_revision = $obj->current_revision;182 $obj->current_revision(++$current_revision);183 }184 185 177 sub save_revision { _handle(@_); } 186 178 sub object_from_revision { _handle(@_); } … … 193 185 my $rev = $obj->load_revision($terms, $args) 194 186 or return $obj->error( 195 MT->translate('Revision (ID: [_1]) not found.', $rev_id));187 MT->translate('Revision not found: [_1]', $obj->errstr)); 196 188 my $rev_object = $rev->[0]; 197 189 $obj->set_values($rev_object->column_values); branches/feature-revision-histories/lib/MT/Revisable/Local.pm
r2852 r2854 100 100 my $packed_obj = $obj->pack_revision(); 101 101 my $changed_cols = $obj->{changed_revisioned_cols}; 102 my $current_revision = $obj->current_revision; 102 103 103 104 require MT::Serialize; … … 109 110 changed => join ',', @$changed_cols 110 111 }); 111 $revision->rev_number( $obj->current_revision);112 $revision->rev_number(++$current_revision); 112 113 $revision->save or return; 113 114 114 return 1;115 return $current_revision; 115 116 } 116 117
