@@ -21,24 +21,41 @@ angular.module('annotate').directive('anDropbox',
2121 { 'sort' : { 'uploadedAt' : - 1 } }
2222 ) . fetch ( )
2323
24+ // Let's also check what the most recent
25+ // highest ordering is, and add it to the end.
26+
27+ var highestOrder = Images . find (
28+ { } ,
29+ { 'sort' : { 'metadata.order' : - 1 } }
30+ ) . fetch ( ) [ 0 ] . metadata . order
31+
2432 Images . insert ( file , function ( err , newFile ) {
2533 if ( err ) console . log ( 'error insterting image' , err ) ;
2634
35+ let updateSetForNewFile = {
36+ 'metadata.owner' : Meteor . user ( ) ,
37+ 'metadata.order' : highestOrder + 1
38+ }
39+
2740 if ( existingImages . length > 0 ) {
2841 existingImages . forEach ( function ( img ) {
29- Images . update ( { _id : img . _id } ,
30- { $set : { 'metadata.newest' : newFile . _id } } )
42+ Images . update ( { _id : img . _id } ,
43+ { $set : { 'metadata.newest' : newFile . _id } } )
3144 } )
45+
3246 Images . update ( { _id : existingImages [ 0 ] . _id } ,
3347 { $set : { 'metadata.next' : newFile . _id } } )
34- Images . update ( { _id : newFile . _id } ,
35- { $set : {
36- 'metadata.previous' : existingImages [ 0 ] . _id ,
37- 'metadata.description' : existingImages [ 0 ] . metadata . description ,
38- 'metadata.order' : existingImages [ 0 ] . metadata . order
39- } } )
48+
49+ updateSetForNewFile [ 'metadata.previous' ] = existingImages [ 0 ] . _id
50+ if ( existingImages [ 0 ] . metadata ) {
51+ updateSetForNewFile [ 'metadata.description' ] = existingImages [ 0 ] . metadata . description
52+ updateSetForNewFile [ 'metadata.order' ] = existingImages [ 0 ] . metadata . order
53+ }
4054 }
4155
56+ Images . update ( { _id : newFile . _id } ,
57+ { $set : updateSetForNewFile } )
58+
4259 $scope . $apply ( function ( ) {
4360 $timeout ( function ( ) {
4461 $scope . onImageAdded ( ) ;
0 commit comments