Skip to content

Commit 23ef7f4

Browse files
committed
Merge pull request #442 from dpalou/MOBILE-1495
Mobile 1495
2 parents 12cf071 + 3d63f5e commit 23ef7f4

File tree

5 files changed

+82
-183
lines changed

5 files changed

+82
-183
lines changed

www/addons/files/controllers/list.js

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ angular.module('mm.addons.files')
1919

2020
var path = $stateParams.path,
2121
root = $stateParams.root,
22-
title,
2322
promise;
2423

2524
// We're loading the files.
@@ -32,40 +31,25 @@ angular.module('mm.addons.files')
3231
// The path is unknown, the user must be requesting a root.
3332
if (root === 'site') {
3433
promise = $mmaFiles.getSiteFiles();
35-
title = $translate('mma.files.sitefiles');
34+
$scope.title = $translate.instant('mma.files.sitefiles');
3635
} else if (root === 'my') {
3736
promise = $mmaFiles.getMyFiles();
38-
title = $translate('mma.files.myprivatefiles');
37+
$scope.title = $translate.instant('mma.files.myprivatefiles');
3938
} else {
4039
// Upon error we create a fake promise that is rejected.
4140
promise = $q.reject();
42-
title = (function() {
43-
var q = $q.defer();
44-
q.resolve('');
45-
return q.promise;
46-
})();
4741
}
4842
} else {
4943
// Serve the files the user requested.
5044
pathdata = JSON.parse(path);
5145
promise = $mmaFiles.getFiles(pathdata);
52-
53-
// Put the title in a promise to act like translate does.
54-
title = (function() {
55-
var q = $q.defer();
56-
q.resolve($stateParams.title);
57-
return q.promise;
58-
})();
46+
$scope.title = $stateParams.title;
5947
}
6048

61-
return $q.all([promise, title]).then(function(data) {
62-
var files = data[0],
63-
title = data[1];
64-
49+
return promise.then(function(files) {
6550
$scope.files = files.entries;
6651
$scope.count = files.count;
67-
$scope.title = title;
68-
}, function() {
52+
}).catch(function() {
6953
$mmUtil.showErrorModal('mma.files.couldnotloadfiles', true);
7054
});
7155
}
@@ -84,7 +68,7 @@ angular.module('mm.addons.files')
8468

8569
// Update list if we come from upload page (we don't know if user upoaded a file or not).
8670
// List is invalidated in upload state after uploading a file.
87-
$scope.$on('$ionicView.enter', function(e) {
71+
$scope.$on('$ionicView.enter', function() {
8872
var forwardView = $ionicHistory.forwardView();
8973
if (forwardView && forwardView.stateName === mmaFilesUploadStateName) {
9074
$scope.filesLoaded = false;

www/addons/files/controllers/upload.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ angular.module('mm.addons.files')
2424
.controller('mmaFilesUploadCtrl', function($scope, $stateParams, $mmUtil, $mmaFilesHelper, $ionicHistory, $mmaFiles, $mmApp) {
2525

2626
var uploadMethods = {
27-
album: $mmaFilesHelper.uploadImageFromAlbum,
28-
camera: $mmaFilesHelper.uploadImageFromCamera,
29-
audio: $mmaFilesHelper.uploadAudio,
30-
video: $mmaFilesHelper.uploadVideo
27+
album: $mmaFilesHelper.uploadImage,
28+
camera: $mmaFilesHelper.uploadImage,
29+
audio: $mmaFilesHelper.uploadAudioOrVideo,
30+
video: $mmaFilesHelper.uploadAudioOrVideo
3131
},
3232
path = $stateParams.path,
3333
root = $stateParams.root;
@@ -49,12 +49,12 @@ angular.module('mm.addons.files')
4949
}
5050
}
5151

52-
$scope.upload = function(type) {
52+
$scope.upload = function(type, param) {
5353
if (!$mmApp.isOnline()) {
5454
$mmUtil.showErrorModal('mma.files.errormustbeonlinetoupload', true);
5555
} else {
5656
if (typeof(uploadMethods[type]) !== 'undefined') {
57-
uploadMethods[type]().then(successUploading, errorUploading);
57+
uploadMethods[type](param).then(successUploading, errorUploading);
5858
}
5959
}
6060
};
@@ -69,5 +69,5 @@ angular.module('mm.addons.files')
6969
$mmaFilesHelper.copyAndUploadFile(file).then(successUploading, errorUploading);
7070
}, errorUploading);
7171
}
72-
}
72+
};
7373
});

www/addons/files/services/files.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -414,8 +414,7 @@ angular.module('mm.addons.files')
414414
*/
415415
self.uploadImage = function(uri, isFromAlbum) {
416416
$log.debug('Uploading an image');
417-
var d = new Date(),
418-
options = {};
417+
var options = {};
419418

420419
if (typeof(uri) === 'undefined' || uri === ''){
421420
// In Node-Webkit, if you successfully upload a picture and then you open the file picker again
@@ -426,7 +425,7 @@ angular.module('mm.addons.files')
426425

427426
options.deleteAfterUpload = !isFromAlbum;
428427
options.fileKey = "file";
429-
options.fileName = "image_" + d.getTime() + ".jpg";
428+
options.fileName = "image_" + new Date().getTime() + ".jpg";
430429
options.mimeType = "image/jpeg";
431430

432431
return self.uploadFile(uri, options);
@@ -444,10 +443,20 @@ angular.module('mm.addons.files')
444443
self.uploadMedia = function(mediaFiles) {
445444
$log.debug('Uploading media');
446445
var promises = [];
447-
angular.forEach(mediaFiles, function(mediaFile, index) {
448-
var options = {};
446+
angular.forEach(mediaFiles, function(mediaFile) {
447+
var options = {},
448+
filename = mediaFile.name,
449+
split;
450+
451+
if (ionic.Platform.isIOS()) {
452+
// In iOS we'll add a timestamp to the filename to make it unique.
453+
split = filename.split('.');
454+
split[0] += '_' + new Date().getTime();
455+
filename = split.join('.');
456+
}
457+
449458
options.fileKey = null;
450-
options.fileName = mediaFile.name;
459+
options.fileName = filename;
451460
options.mimeType = null;
452461
options.deleteAfterUpload = true;
453462
promises.push(self.uploadFile(mediaFile.fullPath, options));

0 commit comments

Comments
 (0)