diff options
author | Merov Linden <merov@lindenlab.com> | 2015-01-15 22:22:22 -0800 |
---|---|---|
committer | Merov Linden <merov@lindenlab.com> | 2015-01-15 22:22:22 -0800 |
commit | 162d33dec4444c97837eba7e64eff964389d5987 (patch) | |
tree | 45db8818dd3f751287496faf3a9211b828b238db | |
parent | 95154a75b50c4113641842c1203210f54f038df5 (diff) |
DD-303 : Auto activate version folder when only one present on creation or association
-rwxr-xr-x | indra/newview/llmarketplacefunctions.cpp | 31 | ||||
-rwxr-xr-x | indra/newview/skins/default/xui/en/notifications.xml | 12 |
2 files changed, 41 insertions, 2 deletions
diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp index c35b251c7e..7d02b4e627 100755 --- a/indra/newview/llmarketplacefunctions.cpp +++ b/indra/newview/llmarketplacefunctions.cpp @@ -101,6 +101,24 @@ LLSD getMarketplaceStringSubstitutions() return marketplace_sub_map; } +// Get the version folder: if there is only one subfolder, we will use it as a version folder +LLUUID getVersionFolderIfUnique(const LLUUID& folder_id) +{ + LLUUID version_id = LLUUID::null; + LLInventoryModel::cat_array_t* categories; + LLInventoryModel::item_array_t* items; + gInventory.getDirectDescendentsOf(folder_id, categories, items); + if (categories->size() == 1) + { + version_id = categories->begin()->get()->getUUID(); + } + else + { + LLNotificationsUtil::add("AlertMerchantListingActivateRequired"); + } + return version_id; +} + /////////////////////////////////////////////////////////////////////////////// // SLM Responders void log_SLM_warning(const std::string& request, U32 status, const std::string& reason, const std::string& code, const std::string& description) @@ -1225,11 +1243,17 @@ void LLMarketplaceData::createSLMListing(const LLUUID& folder_id) LLViewerInventoryCategory* category = gInventory.getCategory(folder_id); + // Get the version folder: if there is only one subfolder, we will set it as a version folder immediately + LLUUID version_id = getVersionFolderIfUnique(folder_id); + + // Build the json message Json::Value root; Json::FastWriter writer; root["listing"]["name"] = category->getName(); - root["listing"]["inventory_info"]["listing_folder_id"] = category->getUUID().asString(); + root["listing"]["inventory_info"]["listing_folder_id"] = folder_id.asString(); + root["listing"]["inventory_info"]["version_folder_id"] = version_id.asString(); + root["listing"]["inventory_info"]["count_on_hand"] = -1; std::string json_str = writer.write(root); @@ -1281,6 +1305,9 @@ void LLMarketplaceData::associateSLMListing(const LLUUID& folder_id, S32 listing headers["Accept"] = "application/json"; headers["Content-Type"] = "application/json"; + // Get the version folder: if there is only one subfolder, we will set it as a version folder immediately + LLUUID version_id = getVersionFolderIfUnique(folder_id); + Json::Value root; Json::FastWriter writer; @@ -1288,7 +1315,7 @@ void LLMarketplaceData::associateSLMListing(const LLUUID& folder_id, S32 listing root["listing"]["id"] = listing_id; root["listing"]["is_listed"] = false; root["listing"]["inventory_info"]["listing_folder_id"] = folder_id.asString(); - root["listing"]["inventory_info"]["version_folder_id"] = LLUUID::null.asString(); + root["listing"]["inventory_info"]["version_folder_id"] = version_id.asString(); root["listing"]["inventory_info"]["count_on_hand"] = -1; std::string json_str = writer.write(root); diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 6c97772d85..75be55061f 100755 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -474,6 +474,18 @@ This listing could not be updated. </notification> <notification + icon="alertmodal.tga" + name="AlertMerchantListingActivateRequired" + type="alertmodal"> + There are several or no version folders in this listing. You will need to select and activate one independently later. + <tag>confirm</tag> + <usetemplate + ignoretext="Alert about version folder activation when I create a listing with several version folders" + name="okignore" + yestext="OK"/> + </notification> + + <notification icon="alertmodal.tga" name="CompileQueueSaveText" type="alertmodal"> |