summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2014-10-14 21:32:00 -0700
committerMerov Linden <merov@lindenlab.com>2014-10-14 21:32:00 -0700
commit8ca0ebbb8b3592f146f77e95a8b93ef4d37cf988 (patch)
tree921a0cefe0e936b1947e68573ef35fddb331a704 /indra
parentdc738f6757671af44fb39cb4cf35ec68a5c16b71 (diff)
DD-170 : Check the Merchant Outbox API and hide the menu item if getting 503. Show SLM always.
Diffstat (limited to 'indra')
-rwxr-xr-xindra/newview/llmarketplacefunctions.cpp85
-rwxr-xr-xindra/newview/llmarketplacefunctions.h3
-rwxr-xr-xindra/newview/llviewermenu.cpp36
3 files changed, 72 insertions, 52 deletions
diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp
index 8988b80a4f..fbfddd09a5 100755
--- a/indra/newview/llmarketplacefunctions.cpp
+++ b/indra/newview/llmarketplacefunctions.cpp
@@ -666,7 +666,7 @@ namespace LLMarketplaceImport
{
if (gSavedSettings.getBOOL("InventoryOutboxLogging"))
{
- LL_INFOS() << " SLM POST clearing marketplace cookie due to client or server error" << LL_ENDL;
+ LL_INFOS() << " SLM POST : Clearing marketplace cookie due to client or server error" << LL_ENDL;
}
sMarketplaceCookie.clear();
}
@@ -746,7 +746,7 @@ namespace LLMarketplaceImport
S32 getResultStatus()
{
- return sImportResultStatus;
+ return sImportResultStatus;
}
const LLSD& getResults()
@@ -989,47 +989,46 @@ void LLMarketplaceInventoryImporter::updateImport()
// If we are no longer in progress
if (!mImportInProgress)
{
- if (mInitialized)
- {
- // Report results
- if (mStatusReportSignal)
- {
- (*mStatusReportSignal)(LLMarketplaceImport::getResultStatus(), LLMarketplaceImport::getResults());
- }
- }
- else
- {
- // Look for results success
- mInitialized = LLMarketplaceImport::hasSessionCookie();
-
- if (mInitialized)
- {
- mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_MERCHANT;
- // Follow up with auto trigger of import
- if (mAutoTriggerImport)
- {
- mAutoTriggerImport = false;
- mImportInProgress = triggerImport();
- }
- }
- else
- {
- U32 status = LLMarketplaceImport::getResultStatus();
- if ((status == MarketplaceErrorCodes::IMPORT_FORBIDDEN) ||
- (status == MarketplaceErrorCodes::IMPORT_AUTHENTICATION_ERROR))
- {
- mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_NOT_MERCHANT;
- }
- else
- {
- mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE;
- }
- if (mErrorInitSignal && (mMarketPlaceStatus == MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE))
- {
- (*mErrorInitSignal)(LLMarketplaceImport::getResultStatus(), LLMarketplaceImport::getResults());
- }
- }
- }
+ // Look for results success
+ mInitialized = LLMarketplaceImport::hasSessionCookie();
+
+ // Report results
+ if (mStatusReportSignal)
+ {
+ (*mStatusReportSignal)(LLMarketplaceImport::getResultStatus(), LLMarketplaceImport::getResults());
+ }
+
+ if (mInitialized)
+ {
+ mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_MERCHANT;
+ // Follow up with auto trigger of import
+ if (mAutoTriggerImport)
+ {
+ mAutoTriggerImport = false;
+ mImportInProgress = triggerImport();
+ }
+ }
+ else
+ {
+ U32 status = LLMarketplaceImport::getResultStatus();
+ if ((status == MarketplaceErrorCodes::IMPORT_FORBIDDEN) ||
+ (status == MarketplaceErrorCodes::IMPORT_AUTHENTICATION_ERROR))
+ {
+ mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_NOT_MERCHANT;
+ }
+ else if (status == MarketplaceErrorCodes::IMPORT_SERVER_API_DISABLED)
+ {
+ mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_MIGRATED_MERCHANT;
+ }
+ else
+ {
+ mMarketPlaceStatus = MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE;
+ }
+ if (mErrorInitSignal && (mMarketPlaceStatus == MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE))
+ {
+ (*mErrorInitSignal)(LLMarketplaceImport::getResultStatus(), LLMarketplaceImport::getResults());
+ }
+ }
}
// Make sure we trigger the status change with the final state (in case of auto trigger after initialize)
diff --git a/indra/newview/llmarketplacefunctions.h b/indra/newview/llmarketplacefunctions.h
index f5b84fcdc3..18ff313555 100755
--- a/indra/newview/llmarketplacefunctions.h
+++ b/indra/newview/llmarketplacefunctions.h
@@ -68,7 +68,8 @@ namespace MarketplaceStatusCodes
MARKET_PLACE_CONNECTION_FAILURE = 2,
MARKET_PLACE_MERCHANT = 3,
MARKET_PLACE_NOT_MERCHANT = 4,
- MARKET_PLACE_NOT_MIGRATED_MERCHANT = 5
+ MARKET_PLACE_NOT_MIGRATED_MERCHANT = 5,
+ MARKET_PLACE_MIGRATED_MERCHANT = 6
};
}
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index b5262a7e1b..1daa74c68f 100755
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -388,19 +388,33 @@ void set_underclothes_menu_options()
}
}
-void set_merchant_menu()
+void set_merchant_SLM_menu()
{
- if (LLMarketplaceData::instance().getSLMStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_MIGRATED_MERCHANT)
- {
+ // DD-170 : SLM Alpha and Beta program : for the moment, we always show the SLM menu and
+ // tools so that all merchants can try out the UI, even if not migrated.
+ // *TODO : Keep SLM UI hidden for non migrated merchant in released viewer
+
+ //if (LLMarketplaceData::instance().getSLMStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_MIGRATED_MERCHANT)
+ //{
// Merchant not migrated: show only the old Merchant Outbox menu
- gMenuHolder->getChild<LLView>("MerchantOutbox")->setVisible(TRUE);
- }
- else
- {
+ // gMenuHolder->getChild<LLView>("MerchantOutbox")->setVisible(TRUE);
+ //}
+ //else
+ //{
// All other cases (new merchant, not merchant, migrated merchant): show the new Marketplace Listings menu and enable the tool
gMenuHolder->getChild<LLView>("MarketplaceListings")->setVisible(TRUE);
LLCommand* command = LLCommandManager::instance().getCommand("marketplacelistings");
gToolBarView->enableCommand(command->id(), true);
+ //}
+}
+
+void set_merchant_outbox_menu(U32 status, const LLSD& content)
+{
+ // If the merchant is fully migrated, the API is disabled (503) and we won't show the old menu item.
+ // In all other cases, we show it.
+ if (status != MarketplaceErrorCodes::IMPORT_SERVER_API_DISABLED)
+ {
+ gMenuHolder->getChild<LLView>("MerchantOutbox")->setVisible(TRUE);
}
}
@@ -411,11 +425,17 @@ void check_merchant_status()
// Hide both merchant related menu items
gMenuHolder->getChild<LLView>("MerchantOutbox")->setVisible(FALSE);
gMenuHolder->getChild<LLView>("MarketplaceListings")->setVisible(FALSE);
+
// Also disable the toolbar button for Marketplace Listings
LLCommand* command = LLCommandManager::instance().getCommand("marketplacelistings");
gToolBarView->enableCommand(command->id(), false);
+
// Launch an SLM test connection to get the merchant status
- LLMarketplaceData::instance().initializeSLM(boost::bind(&set_merchant_menu));
+ LLMarketplaceData::instance().initializeSLM(boost::bind(&set_merchant_SLM_menu));
+
+ // Launch a Merchant Outbox test connection to get the migration status
+ LLMarketplaceInventoryImporter::instance().setStatusReportCallback(boost::bind(&set_merchant_outbox_menu,_1, _2));
+ LLMarketplaceInventoryImporter::instance().initialize();
}
}