From bed0e63f1bbdb08d0d63de522504d3df6549e445 Mon Sep 17 00:00:00 2001
From: andreykproductengine <andreykproductengine@lindenlab.com>
Date: Mon, 9 Dec 2019 17:52:41 +0200
Subject: SL-12414 The "Bulk" upload warning message for .bhv files is
 confusing

---
 indra/newview/llviewermenufile.cpp                 | 41 +++++++++++++++++++---
 .../newview/skins/default/xui/en/notifications.xml | 20 +++++++++++
 2 files changed, 56 insertions(+), 5 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index 4ce39e715c..741ce7a182 100644
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -446,15 +446,21 @@ void do_bulk_upload(std::vector<std::string> filenames, const LLSD& notification
 	}
 }
 
-bool get_bulk_upload_expected_cost(const std::vector<std::string>& filenames, S32& total_cost)
+bool get_bulk_upload_expected_cost(const std::vector<std::string>& filenames, S32& total_cost, S32& file_count, S32& bvh_count)
 {
-	bool succ = true;
 	total_cost = 0;
+	file_count = 0;
+	bvh_count = 0;
 	for (std::vector<std::string>::const_iterator in_iter = filenames.begin(); in_iter != filenames.end(); ++in_iter)
 	{
 		std::string filename = (*in_iter);
 		std::string ext = gDirUtilp->getExtension(filename);
 
+		if (ext == "bvh")
+		{
+			bvh_count++;
+		}
+
 		LLAssetType::EType asset_type;
 		U32 codec;
 		S32 cost;
@@ -463,10 +469,11 @@ bool get_bulk_upload_expected_cost(const std::vector<std::string>& filenames, S3
 			LLAgentBenefitsMgr::current().findUploadCost(asset_type, cost))
 		{
 			total_cost += cost;
+			file_count++;
 		}
 	}
 	
-	return succ;
+    return file_count > 0;
 }
 
 const void upload_bulk(const std::vector<std::string>& filenames, LLFilePicker::ELoadFilter type)
@@ -491,14 +498,38 @@ const void upload_bulk(const std::vector<std::string>& filenames, LLFilePicker::
 			filtered_filenames.push_back(filename);
 		}
 	}
+
 	S32 expected_upload_cost;
-	if (get_bulk_upload_expected_cost(filtered_filenames, expected_upload_cost))
+	S32 expected_upload_count;
+	S32 bvh_count;
+	if (get_bulk_upload_expected_cost(filtered_filenames, expected_upload_cost, expected_upload_count, bvh_count))
 	{
 		LLSD args;
 		args["COST"] = expected_upload_cost;
-		args["COUNT"] = (S32) filtered_filenames.size();
+		args["COUNT"] = expected_upload_count;
 		LLNotificationsUtil::add("BulkUploadCostConfirmation",  args, LLSD(), boost::bind(do_bulk_upload, filtered_filenames, _1, _2));
+
+		if (filtered_filenames.size() > expected_upload_count)
+		{
+			if (bvh_count == filtered_filenames.size() - expected_upload_count)
+			{
+				LLNotificationsUtil::add("DoNotSupportBulkAnimationUpload");
+			}
+			else
+			{
+				LLNotificationsUtil::add("BulkUploadIncompatibleFiles");
+			}
+		}
+	}
+	else if (bvh_count == filtered_filenames.size())
+	{
+		LLNotificationsUtil::add("DoNotSupportBulkAnimationUpload");
 	}
+	else
+	{
+		LLNotificationsUtil::add("BulkUploadNoCompatibleFiles");
+	}
+
 }
 
 class LLFileUploadImage : public view_listener_t
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 2417c52251..a5396a5454 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -8452,6 +8452,26 @@ This will upload [COUNT] items at a total cost of L$[COST]. Do you wish to conti
      name="okcancelbuttons"
      notext="Cancel"
      yestext="Upload"/>
+   </notification>
+  
+   <notification
+    icon="alertmodal.tga"
+    name="BulkUploadNoCompatibleFiles"
+    type="alertmodal">
+Selected files can not be bulk-uploaded.
+    <usetemplate
+     name="okbutton"
+     yestext="OK"/>
+   </notification>
+
+  <notification
+   icon="alertmodal.tga"
+   name="BulkUploadIncompatibleFiles"
+   type="alertmodal">
+Some of the selected files can not be bulk-uploaded.
+    <usetemplate
+     name="okbutton"
+     yestext="OK"/>
   </notification>
 
    <notification
-- 
cgit v1.2.3