SL-16535 FIXED The Search floater opens without appropriate search results after performing a search from the NavBar
parent
4966a66219
commit
b6f36a6159
|
|
@ -4747,7 +4747,7 @@
|
|||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>https://search.[GRID]/viewer/[CATEGORY]/?q=[QUERY]&p=[AUTH_TOKEN]&r=[MATURITY]&lang=[LANGUAGE]&g=[GODLIKE]&sid=[SESSION_ID]&rid=[REGION_ID]&pid=[PARCEL_ID]&channel=[CHANNEL]&version=[VERSION]&major=[VERSION_MAJOR]&minor=[VERSION_MINOR]&patch=[VERSION_PATCH]&build=[VERSION_BUILD]</string>
|
||||
<string>https://search.[GRID]/?query_term=[QUERY]&search_type=[TYPE][COLLECTION]&maturity=[MATURITY]&p=[AUTH_TOKEN]&lang=[LANGUAGE]&g=[GODLIKE]&sid=[SESSION_ID]&rid=[REGION_ID]&pid=[PARCEL_ID]&channel=[CHANNEL]&version=[VERSION]&major=[VERSION_MAJOR]&minor=[VERSION_MINOR]&patch=[VERSION_PATCH]&build=[VERSION_BUILD]</string>
|
||||
</map>
|
||||
<key>GuidebookURL</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -83,8 +83,9 @@ public:
|
|||
LLSearchHandler gSearchHandler;
|
||||
|
||||
LLFloaterSearch::SearchQuery::SearchQuery()
|
||||
: category("category", ""),
|
||||
query("query")
|
||||
: category("category", ""),
|
||||
collection("collection", ""),
|
||||
query("query")
|
||||
{}
|
||||
|
||||
LLFloaterSearch::LLFloaterSearch(const Params& key) :
|
||||
|
|
@ -93,16 +94,16 @@ LLFloaterSearch::LLFloaterSearch(const Params& key) :
|
|||
{
|
||||
// declare a map that transforms a category name into
|
||||
// the URL suffix that is used to search that category
|
||||
mCategoryPaths = LLSD::emptyMap();
|
||||
mCategoryPaths["all"] = "search";
|
||||
mCategoryPaths["people"] = "search/people";
|
||||
mCategoryPaths["places"] = "search/places";
|
||||
mCategoryPaths["events"] = "search/events";
|
||||
mCategoryPaths["groups"] = "search/groups";
|
||||
mCategoryPaths["wiki"] = "search/wiki";
|
||||
mCategoryPaths["land"] = "land";
|
||||
mCategoryPaths["destinations"] = "destinations";
|
||||
mCategoryPaths["classifieds"] = "classifieds";
|
||||
|
||||
mSearchType.insert("standard");
|
||||
mSearchType.insert("land");
|
||||
mSearchType.insert("classified");
|
||||
|
||||
mCollectionType.insert("events");
|
||||
mCollectionType.insert("destinations");
|
||||
mCollectionType.insert("places");
|
||||
mCollectionType.insert("groups");
|
||||
mCollectionType.insert("people");
|
||||
}
|
||||
|
||||
BOOL LLFloaterSearch::postBuild()
|
||||
|
|
@ -157,18 +158,36 @@ void LLFloaterSearch::search(const SearchQuery &p)
|
|||
|
||||
// work out the subdir to use based on the requested category
|
||||
LLSD subs;
|
||||
if (mCategoryPaths.has(p.category))
|
||||
if (mSearchType.find(p.category) != mSearchType.end())
|
||||
{
|
||||
subs["CATEGORY"] = mCategoryPaths[p.category].asString();
|
||||
subs["TYPE"] = p.category;
|
||||
}
|
||||
else
|
||||
{
|
||||
subs["CATEGORY"] = mCategoryPaths["all"].asString();
|
||||
subs["TYPE"] = "standard";
|
||||
}
|
||||
|
||||
// add the search query string
|
||||
subs["QUERY"] = LLURI::escape(p.query);
|
||||
|
||||
subs["COLLECTION"] = "";
|
||||
if (subs["TYPE"] == "standard")
|
||||
{
|
||||
if (mCollectionType.find(p.collection) != mCollectionType.end())
|
||||
{
|
||||
subs["COLLECTION"] = "&collection_chosen=" + std::string(p.collection);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string collection_args("");
|
||||
for (std::set<std::string>::iterator it = mCollectionType.begin(); it != mCollectionType.end(); ++it)
|
||||
{
|
||||
collection_args += "&collection_chosen=" + std::string(*it);
|
||||
}
|
||||
subs["COLLECTION"] = collection_args;
|
||||
}
|
||||
}
|
||||
|
||||
// add the permissions token that login.cgi gave us
|
||||
// We use "search_token", and fallback to "auth_token" if not present.
|
||||
LLSD search_token = LLLoginInstance::getInstance()->getResponse("search_token");
|
||||
|
|
@ -182,15 +201,15 @@ void LLFloaterSearch::search(const SearchQuery &p)
|
|||
std::string maturity;
|
||||
if (gAgent.prefersAdult())
|
||||
{
|
||||
maturity = "42"; // PG,Mature,Adult
|
||||
maturity = "gma"; // PG,Mature,Adult
|
||||
}
|
||||
else if (gAgent.prefersMature())
|
||||
{
|
||||
maturity = "21"; // PG,Mature
|
||||
maturity = "gm"; // PG,Mature
|
||||
}
|
||||
else
|
||||
{
|
||||
maturity = "13"; // PG
|
||||
maturity = "g"; // PG
|
||||
}
|
||||
subs["MATURITY"] = maturity;
|
||||
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ public:
|
|||
struct SearchQuery : public LLInitParam::Block<SearchQuery>
|
||||
{
|
||||
Optional<std::string> category;
|
||||
Optional<std::string> collection;
|
||||
Optional<std::string> query;
|
||||
|
||||
SearchQuery();
|
||||
|
|
@ -84,7 +85,8 @@ public:
|
|||
private:
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
||||
LLSD mCategoryPaths;
|
||||
std::set<std::string> mSearchType;
|
||||
std::set<std::string> mCollectionType;
|
||||
U8 mSearchGodLevel;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ LLFetchLeaveGroupData* gFetchLeaveGroupData = NULL;
|
|||
// static
|
||||
void LLGroupActions::search()
|
||||
{
|
||||
LLFloaterReg::showInstance("search", LLSD().with("category", "groups"));
|
||||
LLFloaterReg::showInstance("search", LLSD().with("collection", "groups"));
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
|
|||
|
|
@ -713,7 +713,7 @@ void LLNavigationBar::resizeLayoutPanel()
|
|||
}
|
||||
void LLNavigationBar::invokeSearch(std::string search_text)
|
||||
{
|
||||
LLFloaterReg::showInstance("search", LLSD().with("category", "all").with("query", LLSD(search_text)));
|
||||
LLFloaterReg::showInstance("search", LLSD().with("category", "standard").with("query", LLSD(search_text)));
|
||||
}
|
||||
|
||||
void LLNavigationBar::clearHistoryCache()
|
||||
|
|
|
|||
Loading…
Reference in New Issue