DD-306 : Suppress no issue listings from audit listing dump, add no error message when no error, disable some right click menu items in multiselection cases
parent
96172ddfe6
commit
6cf5912fd0
|
|
@ -733,8 +733,8 @@ void LLFloaterMarketplaceValidation::draw()
|
|||
|
||||
void LLFloaterMarketplaceValidation::onOpen(const LLSD& key)
|
||||
{
|
||||
// Clear the text panel
|
||||
mEditor->setValue(LLSD());
|
||||
// Clear the messages
|
||||
clearMessages();
|
||||
|
||||
// Get the folder UUID to validate. Use the whole marketplace listing if none provided.
|
||||
LLUUID cat_id(key.asUUID());
|
||||
|
|
@ -747,8 +747,42 @@ void LLFloaterMarketplaceValidation::onOpen(const LLSD& key)
|
|||
if (cat_id.notNull())
|
||||
{
|
||||
LLViewerInventoryCategory* cat = gInventory.getCategory(cat_id);
|
||||
validate_marketplacelistings(cat, boost::bind(&LLFloaterMarketplaceValidation::appendMessage, this, _1, _2), false);
|
||||
validate_marketplacelistings(cat, boost::bind(&LLFloaterMarketplaceValidation::appendMessage, this, _1, _2, _3), false);
|
||||
}
|
||||
|
||||
// Handle the listing folder being processed
|
||||
handleCurrentListing();
|
||||
|
||||
// Dump result to the editor panel
|
||||
if (mEditor)
|
||||
{
|
||||
mEditor->setValue(LLSD());
|
||||
if (mMessages.empty())
|
||||
{
|
||||
// Display a no error message
|
||||
mEditor->appendText(LLTrans::getString("Marketplace Validation No Error"), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Print out all the messages to the panel
|
||||
message_list_t::iterator mCurrentLine = mMessages.begin();
|
||||
bool new_line = false;
|
||||
while (mCurrentLine != mMessages.end())
|
||||
{
|
||||
// Errors are printed in bold, other messages in normal font
|
||||
LLStyle::Params style;
|
||||
LLFontDescriptor new_desc(mEditor->getFont()->getFontDesc());
|
||||
new_desc.setStyle(mCurrentLine->mErrorLevel == LLError::LEVEL_ERROR ? LLFontGL::BOLD : LLFontGL::NORMAL);
|
||||
LLFontGL* new_font = LLFontGL::getFont(new_desc);
|
||||
style.font = new_font;
|
||||
mEditor->appendText(mCurrentLine->mMessage, new_line, style);
|
||||
new_line = true;
|
||||
mCurrentLine++;
|
||||
}
|
||||
}
|
||||
}
|
||||
// We don't need the messages anymore
|
||||
clearMessages();
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -756,21 +790,50 @@ void LLFloaterMarketplaceValidation::onOK( void* userdata )
|
|||
{
|
||||
// destroys this object
|
||||
LLFloaterMarketplaceValidation* self = (LLFloaterMarketplaceValidation*) userdata;
|
||||
self->clearMessages();
|
||||
self->closeFloater();
|
||||
}
|
||||
|
||||
void LLFloaterMarketplaceValidation::appendMessage(std::string& message, LLError::ELevel log_level)
|
||||
void LLFloaterMarketplaceValidation::appendMessage(std::string& message, S32 depth, LLError::ELevel log_level)
|
||||
{
|
||||
if (mEditor)
|
||||
// Dump previous listing messages if we're starting a new listing
|
||||
if (depth == 1)
|
||||
{
|
||||
// Errors are printed in bold, other messages in normal font
|
||||
LLStyle::Params style;
|
||||
LLFontDescriptor new_desc(mEditor->getFont()->getFontDesc());
|
||||
new_desc.setStyle(log_level == LLError::LEVEL_ERROR ? LLFontGL::BOLD : LLFontGL::NORMAL);
|
||||
LLFontGL* new_font = LLFontGL::getFont(new_desc);
|
||||
style.font = new_font;
|
||||
mEditor->appendText(message, true, style);
|
||||
handleCurrentListing();
|
||||
}
|
||||
|
||||
// Store the message in the current listing message list
|
||||
Message current_message;
|
||||
current_message.mErrorLevel = log_level;
|
||||
current_message.mMessage = message;
|
||||
mCurrentListingMessages.push_back(current_message);
|
||||
mCurrentListingErrorLevel = (mCurrentListingErrorLevel < log_level ? log_level : mCurrentListingErrorLevel);
|
||||
}
|
||||
|
||||
// Move the current listing messages to the general list if needs be and reset the current listing data
|
||||
void LLFloaterMarketplaceValidation::handleCurrentListing()
|
||||
{
|
||||
// Dump the current folder messages to the general message list if level warrants it
|
||||
if (mCurrentListingErrorLevel > LLError::LEVEL_INFO)
|
||||
{
|
||||
message_list_t::iterator mCurrentLine = mCurrentListingMessages.begin();
|
||||
while (mCurrentLine != mCurrentListingMessages.end())
|
||||
{
|
||||
mMessages.push_back(*mCurrentLine);
|
||||
mCurrentLine++;
|
||||
}
|
||||
}
|
||||
|
||||
// Reset the current listing
|
||||
mCurrentListingMessages.clear();
|
||||
mCurrentListingErrorLevel = LLError::LEVEL_INFO;
|
||||
}
|
||||
|
||||
void LLFloaterMarketplaceValidation::clearMessages()
|
||||
{
|
||||
mMessages.clear();
|
||||
mCurrentListingMessages.clear();
|
||||
mCurrentListingErrorLevel = LLError::LEVEL_INFO;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -179,10 +179,24 @@ public:
|
|||
virtual void draw();
|
||||
virtual void onOpen(const LLSD& key);
|
||||
|
||||
void appendMessage(std::string& message, LLError::ELevel log_level);
|
||||
void clearMessages();
|
||||
void appendMessage(std::string& message, S32 depth, LLError::ELevel log_level);
|
||||
static void onOK( void* userdata );
|
||||
|
||||
private:
|
||||
struct Message {
|
||||
LLError::ELevel mErrorLevel;
|
||||
std::string mMessage;
|
||||
};
|
||||
typedef std::vector<Message> message_list_t;
|
||||
|
||||
void handleCurrentListing();
|
||||
|
||||
message_list_t mCurrentListingMessages;
|
||||
LLError::ELevel mCurrentListingErrorLevel;
|
||||
|
||||
message_list_t mMessages;
|
||||
|
||||
LLTextEditor* mEditor;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -898,11 +898,13 @@ void LLInvFVBridge::addMarketplaceContextMenuOptions(U32 flags,
|
|||
items.push_back(std::string("Marketplace Check Listing"));
|
||||
items.push_back(std::string("Marketplace List"));
|
||||
items.push_back(std::string("Marketplace Unlist"));
|
||||
if (LLMarketplaceData::instance().isUpdating(mUUID))
|
||||
if (LLMarketplaceData::instance().isUpdating(mUUID) || ((flags & FIRST_SELECTED_ITEM) == 0))
|
||||
{
|
||||
// During SLM update, disable all marketplace related options
|
||||
// Also disable all if multiple selected items
|
||||
disabled_items.push_back(std::string("Marketplace Create Listing"));
|
||||
disabled_items.push_back(std::string("Marketplace Associate Listing"));
|
||||
disabled_items.push_back(std::string("Marketplace Check Listing"));
|
||||
disabled_items.push_back(std::string("Marketplace List"));
|
||||
disabled_items.push_back(std::string("Marketplace Unlist"));
|
||||
}
|
||||
|
|
@ -952,9 +954,10 @@ void LLInvFVBridge::addMarketplaceContextMenuOptions(U32 flags,
|
|||
{
|
||||
items.push_back(std::string("Marketplace Activate"));
|
||||
items.push_back(std::string("Marketplace Deactivate"));
|
||||
if (LLMarketplaceData::instance().isUpdating(mUUID))
|
||||
if (LLMarketplaceData::instance().isUpdating(mUUID) || ((flags & FIRST_SELECTED_ITEM) == 0))
|
||||
{
|
||||
// During SLM update, disable all marketplace related options
|
||||
// Also disable all if multiple selected items
|
||||
disabled_items.push_back(std::string("Marketplace Activate"));
|
||||
disabled_items.push_back(std::string("Marketplace Deactivate"));
|
||||
}
|
||||
|
|
@ -3051,7 +3054,7 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action)
|
|||
LLUUID version_folder_id = LLMarketplaceData::instance().getVersionFolder(mUUID);
|
||||
LLViewerInventoryCategory* cat = gInventory.getCategory(version_folder_id);
|
||||
mMessage = "";
|
||||
if (!validate_marketplacelistings(cat,boost::bind(&LLFolderBridge::gatherMessage, this, _1, _2)))
|
||||
if (!validate_marketplacelistings(cat,boost::bind(&LLFolderBridge::gatherMessage, this, _1, _2, _3)))
|
||||
{
|
||||
LLSD subs;
|
||||
subs["[ERROR_CODE]"] = mMessage;
|
||||
|
|
@ -3151,14 +3154,14 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action)
|
|||
}
|
||||
}
|
||||
|
||||
void LLFolderBridge::gatherMessage(std::string& message, LLError::ELevel log_level)
|
||||
void LLFolderBridge::gatherMessage(std::string& message, S32 depth, LLError::ELevel log_level)
|
||||
{
|
||||
if (log_level >= LLError::LEVEL_ERROR)
|
||||
{
|
||||
if (!mMessage.empty())
|
||||
{
|
||||
// Currently, we do not gather all messages as it creates very long alerts
|
||||
// Users can get to the whole list of errors on a listing using the "Check for Errors" audit button
|
||||
// Users can get to the whole list of errors on a listing using the "Check for Errors" audit button or "Check listing" right click menu
|
||||
//mMessage += "\n";
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -365,7 +365,7 @@ public:
|
|||
protected:
|
||||
void callback_pasteFromClipboard(const LLSD& notification, const LLSD& response);
|
||||
void perform_pasteFromClipboard();
|
||||
void gatherMessage(std::string& message, LLError::ELevel log_level);
|
||||
void gatherMessage(std::string& message, S32 depth, LLError::ELevel log_level);
|
||||
LLUIImagePtr getFolderIcon(BOOL is_open) const;
|
||||
|
||||
bool mCallingCards;
|
||||
|
|
|
|||
|
|
@ -1513,7 +1513,7 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
if (cb)
|
||||
{
|
||||
message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error") + " " + message;
|
||||
cb(message,LLError::LEVEL_ERROR);
|
||||
cb(message,depth,LLError::LEVEL_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1526,7 +1526,7 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
if (cb)
|
||||
{
|
||||
std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Warning") + " " + LLTrans::getString("Marketplace Validation Warning Stock");
|
||||
cb(message,LLError::LEVEL_WARN);
|
||||
cb(message,depth,LLError::LEVEL_WARN);
|
||||
}
|
||||
// Nest the stock folder one level deeper in a normal folder and restart from there
|
||||
LLUUID parent_uuid = cat->getParentUUID();
|
||||
|
|
@ -1542,7 +1542,7 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
if (cb)
|
||||
{
|
||||
std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error") + " " + LLTrans::getString("Marketplace Validation Warning Stock");
|
||||
cb(message,LLError::LEVEL_ERROR);
|
||||
cb(message,depth,LLError::LEVEL_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1576,7 +1576,7 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
if (cb && fix_hierarchy)
|
||||
{
|
||||
std::string message = indent + viewer_inv_item->getName() + LLTrans::getString("Marketplace Validation Error") + " " + error_msg;
|
||||
cb(message,LLError::LEVEL_ERROR);
|
||||
cb(message,depth,LLError::LEVEL_ERROR);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
|
@ -1613,7 +1613,7 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
if (cb)
|
||||
{
|
||||
std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error Empty Version");
|
||||
cb(message,LLError::LEVEL_WARN);
|
||||
cb(message,depth,LLError::LEVEL_WARN);
|
||||
}
|
||||
}
|
||||
else if ((folder_type == LLFolderType::FT_MARKETPLACE_STOCK) && (depth > 2))
|
||||
|
|
@ -1622,14 +1622,14 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
if (cb)
|
||||
{
|
||||
std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error Empty Stock");
|
||||
cb(message,LLError::LEVEL_WARN);
|
||||
cb(message,depth,LLError::LEVEL_WARN);
|
||||
}
|
||||
}
|
||||
else if (cb)
|
||||
{
|
||||
// We warn if there's nothing in a regular folder (may be it's an under construction listing)
|
||||
std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Warning Empty");
|
||||
cb(message,LLError::LEVEL_WARN);
|
||||
cb(message,depth,LLError::LEVEL_WARN);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1638,7 +1638,7 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
if (cb && result && (depth >= 1))
|
||||
{
|
||||
std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Log");
|
||||
cb(message,LLError::LEVEL_INFO);
|
||||
cb(message,depth,LLError::LEVEL_INFO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1649,7 +1649,7 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
if (cb && result && (depth >= 1))
|
||||
{
|
||||
std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Log");
|
||||
cb(message,LLError::LEVEL_INFO);
|
||||
cb(message,depth,LLError::LEVEL_INFO);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1677,7 +1677,7 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
{
|
||||
message = indent + folder_name + LLTrans::getString("Marketplace Validation Warning Create Version");
|
||||
}
|
||||
cb(message,LLError::LEVEL_WARN);
|
||||
cb(message,depth,LLError::LEVEL_WARN);
|
||||
}
|
||||
LLUUID folder_uuid = gInventory.createNewCategory(parent_uuid, new_folder_type, folder_name);
|
||||
// Move each item to the new folder
|
||||
|
|
@ -1687,7 +1687,7 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
if (cb)
|
||||
{
|
||||
std::string message = indent + viewer_inv_item->getName() + LLTrans::getString("Marketplace Validation Warning Move");
|
||||
cb(message,LLError::LEVEL_WARN);
|
||||
cb(message,depth,LLError::LEVEL_WARN);
|
||||
}
|
||||
gInventory.changeItemParent(viewer_inv_item, folder_uuid, true);
|
||||
items_vector[i].pop_back();
|
||||
|
|
@ -1720,20 +1720,20 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
// Report if a stock folder contains a mix of items
|
||||
result = false;
|
||||
std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error Mixed Stock");
|
||||
cb(message,LLError::LEVEL_ERROR);
|
||||
cb(message,depth,LLError::LEVEL_ERROR);
|
||||
}
|
||||
else if ((folder_type == LLFolderType::FT_MARKETPLACE_STOCK) && (cat_array->size() != 0))
|
||||
{
|
||||
// Report if a stock folder contains subfolders
|
||||
result = false;
|
||||
std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Error Subfolder In Stock");
|
||||
cb(message,LLError::LEVEL_ERROR);
|
||||
cb(message,depth,LLError::LEVEL_ERROR);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Simply print the folder name
|
||||
std::string message = indent + cat->getName() + LLTrans::getString("Marketplace Validation Log");
|
||||
cb(message,LLError::LEVEL_INFO);
|
||||
cb(message,depth,LLError::LEVEL_INFO);
|
||||
}
|
||||
}
|
||||
// Scan each item and report if there's a problem
|
||||
|
|
@ -1748,20 +1748,20 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
// Report items that shouldn't be there to start with
|
||||
result = false;
|
||||
std::string message = indent + " " + viewer_inv_item->getName() + LLTrans::getString("Marketplace Validation Error") + " " + error_msg;
|
||||
cb(message,LLError::LEVEL_ERROR);
|
||||
cb(message,depth,LLError::LEVEL_ERROR);
|
||||
}
|
||||
else if ((!viewer_inv_item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) && (folder_type != LLFolderType::FT_MARKETPLACE_STOCK))
|
||||
{
|
||||
// Report stock items that are misplaced
|
||||
result = false;
|
||||
std::string message = indent + " " + viewer_inv_item->getName() + LLTrans::getString("Marketplace Validation Error Stock Item");
|
||||
cb(message,LLError::LEVEL_ERROR);
|
||||
cb(message,depth,LLError::LEVEL_ERROR);
|
||||
}
|
||||
else if (depth == 1)
|
||||
{
|
||||
// Report items not wrapped in version folder
|
||||
std::string message = indent + " " + viewer_inv_item->getName() + LLTrans::getString("Marketplace Validation Warning Unwrapped Item");
|
||||
cb(message,LLError::LEVEL_WARN);
|
||||
cb(message,depth,LLError::LEVEL_WARN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1773,7 +1773,7 @@ bool validate_marketplacelistings(LLInventoryCategory* cat, validation_callback_
|
|||
if (cb)
|
||||
{
|
||||
std::string message = indent + viewer_cat->getName() + LLTrans::getString("Marketplace Validation Warning Delete");
|
||||
cb(message,LLError::LEVEL_WARN);
|
||||
cb(message,depth,LLError::LEVEL_WARN);
|
||||
}
|
||||
gInventory.removeCategory(cat->getUUID());
|
||||
gInventory.notifyObservers();
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ void copy_item_to_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, const LL
|
|||
void move_item_within_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, S32 operation_id);
|
||||
void copy_folder_to_outbox(LLInventoryCategory* inv_cat, const LLUUID& dest_folder, const LLUUID& top_level_folder, S32 operation_id);
|
||||
|
||||
typedef boost::function<void(std::string& validation_message, LLError::ELevel log_level)> validation_callback_t;
|
||||
typedef boost::function<void(std::string& validation_message, S32 depth, LLError::ELevel log_level)> validation_callback_t;
|
||||
|
||||
bool can_move_item_to_marketplace(const LLInventoryCategory* root_folder, LLInventoryCategory* dest_folder, LLInventoryItem* inv_item, std::string& tooltip_msg, S32 bundle_size = 1, bool from_paste = false);
|
||||
bool can_move_folder_to_marketplace(const LLInventoryCategory* root_folder, LLInventoryCategory* dest_folder, LLInventoryCategory* inv_cat, std::string& tooltip_msg, S32 bundle_size = 1, bool check_items = true, bool from_paste = false);
|
||||
|
|
|
|||
|
|
@ -2313,6 +2313,7 @@ This feature is currently in Beta. Please add your name to this [http://goo.gl/f
|
|||
<string name="Marketplace Validation Warning">: Warning: </string>
|
||||
<string name="Marketplace Validation Error Empty Version">: Warning: version folder must contain at least 1 item</string>
|
||||
<string name="Marketplace Validation Error Empty Stock">: Warning: stock folder must contain at least 1 item</string>
|
||||
<string name="Marketplace Validation No Error">No error or warning to report</string>
|
||||
<string name="Marketplace Error None">No errors</string>
|
||||
<string name="Marketplace Error Prefix">Error: </string>
|
||||
<string name="Marketplace Error Not Merchant">Before sending items to the Marketplace you will need to set yourself up as a merchant (free of charge).</string>
|
||||
|
|
|
|||
Loading…
Reference in New Issue