ACME-1450: Added paging to the experience picker and upped the search size to
30 results per page.meow-7.2.2
parent
6766ef06d4
commit
169bf48f10
|
|
@ -46,6 +46,8 @@
|
|||
#define BTN_OK "ok_btn"
|
||||
#define BTN_CANCEL "cancel_btn"
|
||||
#define BTN_PROFILE "profile_btn"
|
||||
#define BTN_LEFT "left_btn"
|
||||
#define BTN_RIGHT "right_btn"
|
||||
#define TEXT_EDIT "edit"
|
||||
#define TEXT_MATURITY "maturity"
|
||||
#define LIST_RESULTS "search_results"
|
||||
|
|
@ -65,11 +67,10 @@ public:
|
|||
|
||||
void completed(U32 status, const std::string& reason, const LLSD& content)
|
||||
{
|
||||
if(mParent.isDead())
|
||||
return;
|
||||
if (isGoodStatus(status))
|
||||
{
|
||||
if(mParent.isDead())
|
||||
return;
|
||||
|
||||
LLPanelExperiencePicker* panel =mParent.get();
|
||||
if (panel)
|
||||
{
|
||||
|
|
@ -78,6 +79,11 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
LLPanelExperiencePicker* panel =mParent.get();
|
||||
if (panel)
|
||||
{
|
||||
panel->processResponse(mQueryID, LLSD());
|
||||
}
|
||||
LL_WARNS() << "experience picker failed [status:" << status << "]: " << content << LL_ENDL;
|
||||
|
||||
}
|
||||
|
|
@ -118,6 +124,9 @@ BOOL LLPanelExperiencePicker::postBuild()
|
|||
getChild<LLComboBox>(TEXT_MATURITY)->setCommitCallback(boost::bind(&LLPanelExperiencePicker::onMaturity, this));
|
||||
getChild<LLUICtrl>(TEXT_EDIT)->setFocus(TRUE);
|
||||
|
||||
childSetAction(BTN_LEFT, boost::bind(&LLPanelExperiencePicker::onPage, this, -1));
|
||||
childSetAction(BTN_RIGHT, boost::bind(&LLPanelExperiencePicker::onPage, this, 1));
|
||||
|
||||
LLPanel* search_panel = getChild<LLPanel>(PANEL_SEARCH);
|
||||
if (search_panel)
|
||||
{
|
||||
|
|
@ -134,6 +143,7 @@ void LLPanelExperiencePicker::editKeystroke( class LLLineEditor* caller, void* u
|
|||
|
||||
void LLPanelExperiencePicker::onBtnFind()
|
||||
{
|
||||
mCurrentPage=1;
|
||||
find();
|
||||
}
|
||||
|
||||
|
|
@ -150,24 +160,24 @@ void LLPanelExperiencePicker::find()
|
|||
{
|
||||
std::string text = getChild<LLUICtrl>(TEXT_EDIT)->getValue().asString();
|
||||
mQueryID.generate();
|
||||
std::string url;
|
||||
url.reserve(128+text.size());
|
||||
std::ostringstream url;
|
||||
|
||||
LLViewerRegion* region = gAgent.getRegion();
|
||||
url = region->getCapability("FindExperienceByName");
|
||||
if (!url.empty())
|
||||
std::string cap = region->getCapability("FindExperienceByName");
|
||||
if (!cap.empty())
|
||||
{
|
||||
url+="?query=";
|
||||
url+=LLURI::escape(text);
|
||||
LLHTTPClient::get(url, new LLExperienceSearchResponder(mQueryID, getDerivedHandle<LLPanelExperiencePicker>()));
|
||||
url << cap << "?page=" << mCurrentPage << "&page_size=30&query=" << LLURI::escape(text);
|
||||
LLHTTPClient::get(url.str(), new LLExperienceSearchResponder(mQueryID, getDerivedHandle<LLPanelExperiencePicker>()));
|
||||
|
||||
}
|
||||
|
||||
getChild<LLScrollListCtrl>(LIST_RESULTS)->deleteAllItems();
|
||||
getChild<LLScrollListCtrl>(LIST_RESULTS)->setCommentText(getString("searching"));
|
||||
|
||||
getChildView(BTN_OK)->setEnabled(FALSE);
|
||||
getChildView(BTN_PROFILE)->setEnabled(FALSE);
|
||||
|
||||
getChildView(BTN_RIGHT)->setEnabled(FALSE);
|
||||
getChildView(BTN_LEFT)->setEnabled(FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -227,6 +237,9 @@ void LLPanelExperiencePicker::processResponse( const LLUUID& query_id, const LLS
|
|||
LLExperienceCache::insert(*it);
|
||||
}
|
||||
|
||||
getChildView(BTN_RIGHT)->setEnabled(content.has("next_page_url"));
|
||||
getChildView(BTN_LEFT)->setEnabled(content.has("previous_page_url"));
|
||||
|
||||
filterContent();
|
||||
|
||||
}
|
||||
|
|
@ -404,3 +417,13 @@ bool LLPanelExperiencePicker::FilterMatching( const LLSD& experience, const LLUU
|
|||
}
|
||||
return experience[LLExperienceCache::EXPERIENCE_ID].asUUID() == id;
|
||||
}
|
||||
|
||||
void LLPanelExperiencePicker::onPage( S32 direction )
|
||||
{
|
||||
mCurrentPage += direction;
|
||||
if(mCurrentPage < 1)
|
||||
{
|
||||
mCurrentPage = 1;
|
||||
}
|
||||
find();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ private:
|
|||
void onBtnProfile();
|
||||
void onList();
|
||||
void onMaturity();
|
||||
void onPage(S32 direction);
|
||||
|
||||
void getSelectedExperienceIds( const LLScrollListCtrl* results, uuid_vec_t &experience_ids );
|
||||
void setAllowMultiple(bool allow_multiple);
|
||||
|
|
@ -87,6 +88,7 @@ private:
|
|||
LLUUID mQueryID;
|
||||
LLSD mResponse;
|
||||
bool mCloseOnSelect;
|
||||
S32 mCurrentPage;
|
||||
};
|
||||
|
||||
#endif // LL_LLPANELEXPERIENCEPICKER_H
|
||||
|
|
|
|||
|
|
@ -147,20 +147,37 @@
|
|||
name="ok_btn"
|
||||
top_pad="3"
|
||||
left="0"
|
||||
width="100" />
|
||||
width="95" />
|
||||
<button
|
||||
follows="left|bottom"
|
||||
height="23"
|
||||
label="Cancel"
|
||||
name="cancel_btn"
|
||||
width="100"
|
||||
left_pad="3" />
|
||||
<button
|
||||
follows="left|bottom"
|
||||
height="23"
|
||||
label="View Profile"
|
||||
name="profile_btn"
|
||||
width="100"
|
||||
width="95"
|
||||
left_pad="3" />
|
||||
<button
|
||||
follows="left|bottom"
|
||||
height="23"
|
||||
label="View Profile"
|
||||
name="profile_btn"
|
||||
width="95"
|
||||
left_pad="3" />
|
||||
<button
|
||||
follows="left|bottom"
|
||||
height="23"
|
||||
label="<"
|
||||
name="left_btn"
|
||||
width="23"
|
||||
left_pad="3"
|
||||
enabled="false"/>
|
||||
<button
|
||||
follows="left|bottom"
|
||||
height="23"
|
||||
label=">"
|
||||
name="right_btn"
|
||||
width="23"
|
||||
left_pad="3"
|
||||
enabled="false" />
|
||||
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
|
|||
Loading…
Reference in New Issue