diff options
author | Robin Krahl <me@robin-krahl.de> | 2014-11-08 18:53:29 +0100 |
---|---|---|
committer | Robin Krahl <me@robin-krahl.de> | 2014-11-08 18:53:29 +0100 |
commit | e75ab2a20d770c23e1bae8b4258640f033f4f7db (patch) | |
tree | 575f2a90c639f8d20f040cb9eb245473de181295 | |
parent | 72b25b8b434e065c9bbb5c1e1fcb4c11a7474f83 (diff) | |
download | LrMediaWiki-e75ab2a20d770c23e1bae8b4258640f033f4f7db.tar.gz LrMediaWiki-e75ab2a20d770c23e1bae8b4258640f033f4f7db.tar.bz2 |
Allow empty descriptions for reuploads
There is no need for descriptions if an existing file is overwritten.
Therefore the check and the error message are moved at a point where we
know whether it is an initial upload or a reupload.
- refactor MediaWikiInterface.uploadFile:
- add the parameter hasDescription that describes whether there is a
valid description
- return a string (error message) if there is an error
- store description status in
MediaWikiExportServiceProvider.prepareUpload
- check the return value of MediaWikiInterface.uploadFile in
MediaWikiExportServiceProvider.prepareUpload
Fix https://github.com/ireas/LrMediaWiki/issues/30
-rwxr-xr-x | mediawiki.lrdevplugin/MediaWikiExportServiceProvider.lua | 10 | ||||
-rwxr-xr-x | mediawiki.lrdevplugin/MediaWikiInterface.lua | 11 |
2 files changed, 13 insertions, 8 deletions
diff --git a/mediawiki.lrdevplugin/MediaWikiExportServiceProvider.lua b/mediawiki.lrdevplugin/MediaWikiExportServiceProvider.lua index b668918..edbcb5f 100755 --- a/mediawiki.lrdevplugin/MediaWikiExportServiceProvider.lua +++ b/mediawiki.lrdevplugin/MediaWikiExportServiceProvider.lua @@ -90,10 +90,7 @@ MediaWikiExportServiceProvider.processRenderedPhotos = function(functionContext, if not MediaWikiUtils.isStringEmpty(descriptionAdditional) then
description = description .. descriptionAdditional
end
- if MediaWikiUtils.isStringEmpty(description) then
- rendition:uploadFailed(LOC '$$$/LrMediaWiki/Export/NoDescription=No description given for this file!')
- return
- end
+ local hasDescription = not MediaWikiUtils.isStringEmpty(description)
local source = exportSettings.info_source
local timestampSeconds = photo:getRawMetadata('dateTimeOriginal')
local timestamp = ''
@@ -120,7 +117,10 @@ MediaWikiExportServiceProvider.processRenderedPhotos = function(functionContext, local fileDescription = MediaWikiInterface.buildFileDescription(description, source, timestamp, author, license, templates, other, categories, additionalCategories, permission)
- MediaWikiInterface.uploadFile(pathOrMessage, fileDescription)
+ local message = MediaWikiInterface.uploadFile(pathOrMessage, fileDescription, hasDescription)
+ if message then
+ rendition:uploadFailed(message)
+ end
LrFileUtils.delete(pathOrMessage)
else
-- rendering failed --> report failure
diff --git a/mediawiki.lrdevplugin/MediaWikiInterface.lua b/mediawiki.lrdevplugin/MediaWikiInterface.lua index 2473406..5c68c1b 100755 --- a/mediawiki.lrdevplugin/MediaWikiInterface.lua +++ b/mediawiki.lrdevplugin/MediaWikiInterface.lua @@ -101,7 +101,7 @@ MediaWikiInterface._prompt = function(functionContext, title, label, default) return result
end
-MediaWikiInterface.uploadFile = function(filePath, description, fileName)
+MediaWikiInterface.uploadFile = function(filePath, description, hasDescription, fileName)
if not MediaWikiInterface.loggedIn then
LrErrors.throwUserError(LOC '$$$/LrMediaWiki/Interface/Internal/NotLoggedIn=Internal error: not logged in before upload.')
end
@@ -119,17 +119,22 @@ MediaWikiInterface.uploadFile = function(filePath, description, fileName) elseif continue == 'other' then
local newFileName = MediaWikiInterface.prompt(LOC '$$$/LrMediaWiki/Interface/Rename=Rename file', LOC '$$$/LrMediaWiki/Interface/Rename/NewName=New file name', targetFileName)
if not MediaWikiUtils.isStringEmpty(newFileName) and newFileName ~= targetFileName then
- MediaWikiInterface.uploadFile(filePath, description, newFileName)
+ MediaWikiInterface.uploadFile(filePath, description, hasDescription, newFileName)
end
return
else
return
end
+ else
+ if not hasDescription then
+ return LOC '$$$/LrMediaWiki/Export/NoDescription=No description given for this file!'
+ end
end
local uploadResult = MediaWikiApi.upload(targetFileName, filePath, description, comment, ignorewarnings)
if uploadResult ~= true then
- LrErrors.throwUserError(LOC('$$$/LrMediaWiki/Interface/UploadFailed=Upload failed: ^1', uploadResult))
+ return LOC('$$$/LrMediaWiki/Interface/UploadFailed=Upload failed: ^1', uploadResult)
end
+ return nil
end
MediaWikiInterface.buildFileDescription = function(description, source, timestamp, author, license, templates, other, categories, additionalCategories, permission)
|