diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 2 | ||||
| -rw-r--r-- | indra/newview/llfloatersearch.cpp | 55 | ||||
| -rw-r--r-- | indra/newview/llfloatersearch.h | 4 | ||||
| -rw-r--r-- | indra/newview/llgroupactions.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llnavigationbar.cpp | 2 | 
5 files changed, 43 insertions, 22 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 54842b2813..91370f7da3 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -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> diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index 779542cfcc..8ff89fa194 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -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; diff --git a/indra/newview/llfloatersearch.h b/indra/newview/llfloatersearch.h index 35b268e1b2..cc77ce696f 100644 --- a/indra/newview/llfloatersearch.h +++ b/indra/newview/llfloatersearch.h @@ -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;  }; diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp index 12d82d101f..f52f76330b 100644 --- a/indra/newview/llgroupactions.cpp +++ b/indra/newview/llgroupactions.cpp @@ -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 diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp index 19dbbeb60e..f0ed4108cb 100644 --- a/indra/newview/llnavigationbar.cpp +++ b/indra/newview/llnavigationbar.cpp @@ -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() | 
