summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authordolphin <dolphin@lindenlab.com>2014-03-12 09:50:08 -0700
committerdolphin <dolphin@lindenlab.com>2014-03-12 09:50:08 -0700
commit9fe5728b4385ead4a4c74eed7917d93060510cdb (patch)
treef8b0469ca14ce93f6b16215190a845cf963394cb /indra
parent34c12d009c232917732e6eeb452da7e76b2ee12e (diff)
Show ignored items when updating an experience profile
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llfloaterexperienceprofile.cpp35
-rw-r--r--indra/newview/llpanelexperiencelisteditor.cpp2
-rw-r--r--indra/newview/llpanelexperiences.cpp2
-rwxr-xr-xindra/newview/skins/default/xui/en/notifications.xml38
4 files changed, 74 insertions, 3 deletions
diff --git a/indra/newview/llfloaterexperienceprofile.cpp b/indra/newview/llfloaterexperienceprofile.cpp
index e5574be4f0..1c01a4bb9f 100644
--- a/indra/newview/llfloaterexperienceprofile.cpp
+++ b/indra/newview/llfloaterexperienceprofile.cpp
@@ -49,6 +49,7 @@
#include "llviewerregion.h"
#include "llevents.h"
#include "llfloatergroups.h"
+#include "llnotifications.h"
#define XML_PANEL_EXPERIENCE_PROFILE "floater_experienceprofile.xml"
#define TF_NAME "experience_title"
@@ -85,7 +86,6 @@
#define BTN_SET_GROUP "Group_btn"
-
class LLExperienceHandler : public LLCommandHandler
{
public:
@@ -722,6 +722,10 @@ void LLFloaterExperienceProfile::doSave( int success_action )
std::string url=region->getCapability("UpdateExperience");
if(url.empty())
return;
+
+ mPackage.erase(LLExperienceCache::QUOTA);
+ mPackage.erase(LLExperienceCache::EXPIRES);
+ mPackage.erase(LLExperienceCache::AGENT_ID);
LLHTTPClient::post(url, mPackage, new ExperienceUpdateResponder(getDerivedHandle<LLFloaterExperienceProfile>()));
}
@@ -730,6 +734,35 @@ void LLFloaterExperienceProfile::onSaveComplete( const LLSD& content )
{
LLUUID id = getExperienceId();
+ if(content.has("removed"))
+ {
+ const LLSD& removed = content["removed"];
+ LLSD::map_const_iterator it = removed.beginMap();
+ for(/**/; it != removed.endMap(); ++it)
+ {
+ const std::string& field = it->first;
+ if(field == LLExperienceCache::EXPERIENCE_ID)
+ {
+ //this message should be removed by the experience api
+ continue;
+ }
+ const LLSD& data = it->second;
+ std::string error_tag = data["error_tag"].asString()+ "ExperienceProfileMessage";
+ LLSD fields;
+ if( LLNotifications::instance().getTemplate(error_tag))
+ {
+ fields["field"] = field;
+ fields["extra_info"] = data["extra_info"];
+ LLNotificationsUtil::add(error_tag, fields);
+ }
+ else
+ {
+ fields["MESSAGE"]=data["en"];
+ LLNotificationsUtil::add("GenericAlert", fields);
+ }
+ }
+ }
+
if(!content.has("experience_keys"))
{
llwarns << "LLFloaterExperienceProfile::onSaveComplete called with bad content" << llendl;
diff --git a/indra/newview/llpanelexperiencelisteditor.cpp b/indra/newview/llpanelexperiencelisteditor.cpp
index 374f89afad..37394936ee 100644
--- a/indra/newview/llpanelexperiencelisteditor.cpp
+++ b/indra/newview/llpanelexperiencelisteditor.cpp
@@ -38,7 +38,7 @@
#include "llagent.h"
-static LLRegisterPanelClassWrapper<LLPanelExperienceListEditor> t_panel_experience_list_editor("panel_experience_list_editor");
+static LLPanelInjector<LLPanelExperienceListEditor> t_panel_experience_list_editor("panel_experience_list_editor");
LLPanelExperienceListEditor::LLPanelExperienceListEditor()
diff --git a/indra/newview/llpanelexperiences.cpp b/indra/newview/llpanelexperiences.cpp
index f1d6ea09ed..0d67dbf916 100644
--- a/indra/newview/llpanelexperiences.cpp
+++ b/indra/newview/llpanelexperiences.cpp
@@ -38,7 +38,7 @@
#include "lllayoutstack.h"
-static LLRegisterPanelClassWrapper<LLPanelExperiences> register_experiences_panel("experiences_panel");
+static LLPanelInjector<LLPanelExperiences> register_experiences_panel("experiences_panel");
LLPanelExperiences::LLPanelExperiences( )
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index b7d5940434..e0cc2229d5 100755
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -7006,10 +7006,48 @@ Unable to acquire a new experience:
yestext="OK"/>
</notification>
+ <notification
+ icon="notify.tga"
+ name="NotInGroupExperienceProfileMessage"
+ persist="false"
+ type="notify">
+ A change to the experience group was ignored because the owner is not a member of the selected group.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="UneditableExperienceProfileMessage"
+ persist="false"
+ type="notify">
+ The uneditable field '[field]' was ignored when updating the experience profile.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="RestrictedToOwnerExperienceProfileMessage"
+ persist="false"
+ type="notify">
+ Ignored changes to the field '[field]' which can only be set by the experience owner.
+ </notification>
+ <notification
+ icon="notify.tga"
+ name="MaturityRatingExceedsOwnerExperienceProfileMessage"
+ persist="false"
+ type="notify">
+ You may not set the maturity rating of an experience higher than that of the owner.
+ </notification>
<notification
icon="notify.tga"
+ name="RestrictedTermExperienceProfileMessage"
+ persist="false"
+ type="notify">
+ The following terms prevented the update of the experience profile name and/or description: [extra_info]
+ </notification>
+
+ <notification
+ icon="notify.tga"
name="TeleportedHomeExperienceRemoved"
persist="false"
type="notify">