|
8 | 8 | $scope.renderModel = [];
|
9 | 9 | $scope.cfg = { maxNumberOfItems: 0, minNumberOfItems: 0 };
|
10 | 10 | $scope.sortableOptions = { handle: '.handle' };
|
| 11 | + $scope.editedMediaId = -1; |
11 | 12 |
|
12 | 13 | if( $scope.model.value ) {
|
13 | 14 | _.each($scope.model.value, function( item, i ) {
|
|
49 | 50 |
|
50 | 51 | $scope.edit = function(index) {
|
51 | 52 | var link = $scope.renderModel[index];
|
| 53 | + |
| 54 | + // store the current edited media id |
| 55 | + if(link.isMedia && link.id !== null) { |
| 56 | + $scope.editedMediaId = link.id; |
| 57 | + } |
| 58 | + |
52 | 59 | dialogService.linkPicker({
|
53 | 60 | currentTarget: {
|
54 | 61 | id: link.isMedia ? null : link.id, // the linkPicker breaks if it get an id for media
|
|
104 | 111 | var link = new Link(e);
|
105 | 112 |
|
106 | 113 | if( e.index !== undefined && e.index !== null ) {
|
| 114 | + if(link.isMedia && link.id === null) { |
| 115 | + // we can assume the existing media item is changed and no new file has been selected |
| 116 | + // so we can restorte the existing id |
| 117 | + link.id = $scope.editedMediaId; |
| 118 | + } |
107 | 119 | $scope.renderModel[ e.index ] = link;
|
108 | 120 | } else {
|
109 | 121 | $scope.renderModel.push( link );
|
110 | 122 | }
|
111 | 123 |
|
112 |
| - if( e.id && e.id > 0 ) { |
113 |
| - entityResource.getById( e.id, e.isMedia ? 'Media' : 'Document' ).then( setIcon ); |
| 124 | + if( link.id && link.id > 0 ) { |
| 125 | + entityResource.getById( link.id, link.isMedia ? 'Media' : 'Document' ).then( setIcon ); |
114 | 126 | }
|
115 | 127 |
|
116 | 128 | $scope.model.value = $scope.renderModel;
|
| 129 | + $scope.editedMediaId = -1; |
117 | 130 | dialogService.close();
|
118 | 131 | };
|
119 | 132 |
|
|
0 commit comments