From 03f18a55b7836c22470033267e69f267eb1a8d18 Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Wed, 28 Jan 2015 22:16:47 -0800 Subject: DD-320 : Special case HTTP error 422 on the Marketplace and give it a nicer error dialog --- indra/newview/llmarketplacefunctions.cpp | 21 ++++++++++++++------- .../newview/skins/default/xui/en/notifications.xml | 11 +++++++++++ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp index d292dd25e7..ab50506a4f 100755 --- a/indra/newview/llmarketplacefunctions.cpp +++ b/indra/newview/llmarketplacefunctions.cpp @@ -124,13 +124,20 @@ LLUUID getVersionFolderIfUnique(const LLUUID& folder_id) void log_SLM_warning(const std::string& request, U32 status, const std::string& reason, const std::string& code, const std::string& description) { LL_WARNS("SLM") << "SLM API : Responder to " << request << ". status : " << status << ", reason : " << reason << ", code : " << code << ", description : " << description << LL_ENDL; - // Prompt the user with the warning (so they know why things are failing) - LLSD subs; - subs["[ERROR_REASON]"] = reason; - // We do show long descriptions in the alert (unlikely to be readable). The description string will be in the log though. - subs["[ERROR_DESCRIPTION]"] = (description.length() <= 512 ? description : ""); - LLNotificationsUtil::add("MerchantTransactionFailed", subs); - + if (status == 422) + { + // Unprocessable Entity : Special case that error as it is a frequent answer when trying to list an incomplete listing + LLNotificationsUtil::add("MerchantUnprocessableEntity"); + } + else + { + // Prompt the user with the warning (so they know why things are failing) + LLSD subs; + subs["[ERROR_REASON]"] = reason; + // We do show long descriptions in the alert (unlikely to be readable). The description string will be in the log though. + subs["[ERROR_DESCRIPTION]"] = (description.length() <= 512 ? description : ""); + LLNotificationsUtil::add("MerchantTransactionFailed", subs); + } } void log_SLM_infos(const std::string& request, U32 status, const std::string& body) { diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 4c6a61adfd..570a69256d 100755 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -343,6 +343,17 @@ Initialization with the Marketplace failed because of a system or network error. yestext="OK"/> + + We are unable to list this product. Usually this is caused by missing information in the listing description form. If you continue to see this error, try again later. + + + +