diff options
| -rwxr-xr-x | indra/newview/llfloaterreporter.cpp | 107 | ||||
| -rwxr-xr-x | indra/newview/llfloaterreporter.h | 2 | ||||
| -rw-r--r-- | indra/newview/llviewerassetupload.cpp | 22 | ||||
| -rw-r--r-- | indra/newview/llviewerassetupload.h | 5 | 
4 files changed, 88 insertions, 48 deletions
| diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp index 5e028e6d43..b38362e180 100755 --- a/indra/newview/llfloaterreporter.cpp +++ b/indra/newview/llfloaterreporter.cpp @@ -83,6 +83,61 @@  #include "lltrans.h"  #include "llexperiencecache.h" +#include "llcorehttputil.h" +#include "llviewerassetupload.h" + + +//========================================================================= +//----------------------------------------------------------------------------- +// Support classes +//----------------------------------------------------------------------------- +class LLARScreenShotUploader : public LLResourceUploadInfo +{ +public: +    LLARScreenShotUploader(LLSD report, LLUUID assetId, LLAssetType::EType assetType); + +    virtual LLSD        prepareUpload(); +    virtual LLSD        generatePostBody(); +    virtual S32         getEconomyUploadCost(); +    virtual LLUUID      finishUpload(LLSD &result); + +    virtual bool        showInventoryPanel() const { return false; } +    virtual std::string getDisplayName() const { return "Abuse Report"; } + +private: + +    LLSD    mReport; +}; + +LLARScreenShotUploader::LLARScreenShotUploader(LLSD report, LLUUID assetId, LLAssetType::EType assetType) : +    LLResourceUploadInfo(assetId, assetType, "Abuse Report"), +    mReport(report) +{ +} + +LLSD LLARScreenShotUploader::prepareUpload() +{ +    return LLSD().with("success", LLSD::Boolean(true)); +} + +LLSD LLARScreenShotUploader::generatePostBody() +{   // The report was pregenerated and passed in the constructor. +    return mReport; +} + +S32 LLARScreenShotUploader::getEconomyUploadCost() +{   // Abuse report screen shots do not cost anything to upload. +    return 0; +} + +LLUUID LLARScreenShotUploader::finishUpload(LLSD &result) +{ +    /* *TODO$: Report success or failure. Carried over from previous todo on responder*/ +    return LLUUID::null; +} + + +//=========================================================================  //-----------------------------------------------------------------------------  // Globals  //----------------------------------------------------------------------------- @@ -724,59 +779,25 @@ void LLFloaterReporter::sendReportViaLegacy(const LLSD & report)  	msg->sendReliable(regionp->getHost());  } -class LLUserReportScreenshotResponder : public LLAssetUploadResponder +void LLFloaterReporter::finishedARPost(const LLSD &)  { -public: -	LLUserReportScreenshotResponder(const LLSD & post_data,  -									const LLUUID & vfile_id,  -									LLAssetType::EType asset_type): -	  LLAssetUploadResponder(post_data, vfile_id, asset_type) -	{ -	} -	void uploadFailed(const LLSD& content) -	{ -		// *TODO pop up a dialog so the user knows their report screenshot didn't make it -		LLUploadDialog::modalUploadFinished(); -	} -	void uploadComplete(const LLSD& content) -	{ -		// we don't care about what the server returns from this post, just clean up the UI -		LLUploadDialog::modalUploadFinished(); -	} -}; +    LLUploadDialog::modalUploadFinished(); -class LLUserReportResponder : public LLHTTPClient::Responder -{ -	LOG_CLASS(LLUserReportResponder); -public: -	LLUserReportResponder(): LLHTTPClient::Responder()  {} - -private: -	void httpCompleted() -	{ -		if (!isGoodStatus()) -		{ -			// *TODO do some user messaging here -			LL_WARNS("UserReport") << dumpResponse() << LL_ENDL; -		} -		// we don't care about what the server returns -		LLUploadDialog::modalUploadFinished(); -	} -}; +}  void LLFloaterReporter::sendReportViaCaps(std::string url, std::string sshot_url, const LLSD& report)  {  	if(getChild<LLUICtrl>("screen_check")->getValue().asBoolean() && !sshot_url.empty()) -	{ +    {  		// try to upload screenshot -		LLHTTPClient::post(sshot_url, report, new LLUserReportScreenshotResponder(report,  -															mResourceDatap->mAssetInfo.mUuid,  -															mResourceDatap->mAssetInfo.mType));			 +        LLResourceUploadInfo::ptr_t uploadInfo(new  LLARScreenShotUploader(report, mResourceDatap->mAssetInfo.mUuid, mResourceDatap->mAssetInfo.mType)); +        LLViewerAssetUpload::EnqueueInventoryUpload(sshot_url, uploadInfo);  	}  	else  	{ -		// screenshot not wanted or we don't have screenshot cap -		LLHTTPClient::post(url, report, new LLUserReportResponder());			 +        LLCoreHttpUtil::HttpCoroutineAdapter::completionCallback_t proc = boost::bind(&LLFloaterReporter::finishedARPost, _1); +        LLUploadDialog::modalUploadDialog("Abuse Report"); +        LLCoreHttpUtil::HttpCoroutineAdapter::callbackHttpPost(url, report, proc, proc);  	}  } diff --git a/indra/newview/llfloaterreporter.h b/indra/newview/llfloaterreporter.h index 5eb5c20665..83050d73ca 100755 --- a/indra/newview/llfloaterreporter.h +++ b/indra/newview/llfloaterreporter.h @@ -125,6 +125,8 @@ private:  	void setFromAvatarID(const LLUUID& avatar_id);  	void onAvatarNameCache(const LLUUID& avatar_id, const LLAvatarName& av_name); +    static void finishedARPost(const LLSD &); +  private:  	EReportType		mReportType;  	LLUUID 			mObjectID; diff --git a/indra/newview/llviewerassetupload.cpp b/indra/newview/llviewerassetupload.cpp index 83d3449b96..4ef398d314 100644 --- a/indra/newview/llviewerassetupload.cpp +++ b/indra/newview/llviewerassetupload.cpp @@ -97,6 +97,23 @@ LLResourceUploadInfo::LLResourceUploadInfo(std::string name,      mTransactionId.generate();  } +LLResourceUploadInfo::LLResourceUploadInfo(LLAssetID assetId, LLAssetType::EType assetType, std::string name) : +    mAssetId(assetId), +    mAssetType(assetType), +    mName(name), +    mDescription(), +    mCompressionInfo(0), +    mDestinationFolderType(LLFolderType::FT_NONE), +    mInventoryType(LLInventoryType::IT_NONE), +    mNextOwnerPerms(0), +    mGroupPerms(0), +    mEveryonePerms(0), +    mExpectedUploadCost(0), +    mTransactionId(), +    mFolderId(LLUUID::null), +    mItemId(LLUUID::null) +{ +}  LLSD LLResourceUploadInfo::prepareUpload()  { @@ -320,8 +337,6 @@ LLNewFileResourceUploadInfo::LLNewFileResourceUploadInfo(  {  } - -  LLSD LLNewFileResourceUploadInfo::prepareUpload()  {      if (getAssetId().isNull()) @@ -471,7 +486,6 @@ LLBufferedAssetUploadInfo::LLBufferedAssetUploadInfo(LLUUID itemId, LLAssetType:  {      setItemId(itemId);      setAssetType(assetType); -      }  LLBufferedAssetUploadInfo::LLBufferedAssetUploadInfo(LLUUID itemId, LLPointer<LLImageFormatted> image, invnUploadFinish_f finish) : @@ -522,7 +536,6 @@ LLBufferedAssetUploadInfo::LLBufferedAssetUploadInfo(LLUUID taskId, LLUUID itemI      setAssetType(assetType);  } -  LLSD LLBufferedAssetUploadInfo::prepareUpload()  {      if (getAssetId().isNull()) @@ -626,7 +639,6 @@ LLScriptAssetUpload::LLScriptAssetUpload(LLUUID taskId, LLUUID itemId, TargetTyp  {  } -  LLSD LLScriptAssetUpload::generatePostBody()  {      LLSD body; diff --git a/indra/newview/llviewerassetupload.h b/indra/newview/llviewerassetupload.h index d41ba7f61b..43e23a0d42 100644 --- a/indra/newview/llviewerassetupload.h +++ b/indra/newview/llviewerassetupload.h @@ -99,6 +99,11 @@ protected:          U32 everyonePerms,          S32 expectedCost); +    LLResourceUploadInfo( +        LLAssetID assetId, +        LLAssetType::EType assetType, +        std::string name ); +      void                setTransactionId(LLTransactionID tid) { mTransactionId = tid; }      void                setAssetType(LLAssetType::EType assetType) { mAssetType = assetType; }      void                setItemId(LLUUID itemId) { mItemId = itemId; } | 
