Skip to content

Commit cad45b3

Browse files
authored
Fix media becoming null after clicking edit
Media id in the value becomes null if you click edit and don't change the selected file Fixes issue #48
1 parent 8b4718e commit cad45b3

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/RJP.MultiUrlPicker/App_Plugins/RJP.MultiUrlPicker/MultiUrlPicker.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
$scope.renderModel = [];
99
$scope.cfg = { maxNumberOfItems: 0, minNumberOfItems: 0 };
1010
$scope.sortableOptions = { handle: '.handle' };
11+
$scope.editedMediaId = -1;
1112

1213
if( $scope.model.value ) {
1314
_.each($scope.model.value, function( item, i ) {
@@ -49,6 +50,12 @@
4950

5051
$scope.edit = function(index) {
5152
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+
5259
dialogService.linkPicker({
5360
currentTarget: {
5461
id: link.isMedia ? null : link.id, // the linkPicker breaks if it get an id for media
@@ -104,16 +111,22 @@
104111
var link = new Link(e);
105112

106113
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+
}
107119
$scope.renderModel[ e.index ] = link;
108120
} else {
109121
$scope.renderModel.push( link );
110122
}
111123

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 );
114126
}
115127

116128
$scope.model.value = $scope.renderModel;
129+
$scope.editedMediaId = -1;
117130
dialogService.close();
118131
};
119132

0 commit comments

Comments
 (0)