summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoxie Linden <roxie@lindenlab.com>2010-10-12 17:49:36 -0700
committerRoxie Linden <roxie@lindenlab.com>2010-10-12 17:49:36 -0700
commit17a04f8231a0787a7e72c7b3ad5cf37b08a466d0 (patch)
tree1d8bd0b9a79a190b079447fb8f1090bd9d745ac4
parentec57776a23f36a9df02ee614c4f0ef20fcea0c7c (diff)
EVE-47 - Event formatting should appear in "Profile" window
EVE-74 - Change in-viewer support for 'notify me' to be maintainable via app slurl EVE-72 - Modify viewer to make the event profile window be an html control This is basically a reworking of the event profile display to remove all in-viewer specific event display rendering, in preparation for richtext descriptions. Most was removal of code.
-rw-r--r--indra/newview/CMakeLists.txt2
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/lleventinfo.cpp98
-rw-r--r--indra/newview/lleventinfo.h74
-rw-r--r--indra/newview/lleventnotifier.cpp336
-rw-r--r--indra/newview/lleventnotifier.h29
-rw-r--r--indra/newview/llfloaterevent.cpp291
-rw-r--r--indra/newview/llfloaterevent.h46
-rw-r--r--indra/newview/llfloaterworldmap.h1
-rw-r--r--indra/newview/llstartup.cpp11
-rw-r--r--indra/newview/skins/default/xui/da/floater_event.xml107
-rw-r--r--indra/newview/skins/default/xui/da/notifications.xml3
-rw-r--r--indra/newview/skins/default/xui/de/floater_event.xml104
-rw-r--r--indra/newview/skins/default/xui/de/notifications.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_event.xml330
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml8
-rw-r--r--indra/newview/skins/default/xui/es/floater_event.xml107
-rw-r--r--indra/newview/skins/default/xui/es/notifications.xml3
-rw-r--r--indra/newview/skins/default/xui/fr/floater_event.xml104
-rw-r--r--indra/newview/skins/default/xui/fr/notifications.xml3
-rw-r--r--indra/newview/skins/default/xui/it/floater_event.xml107
-rw-r--r--indra/newview/skins/default/xui/it/notifications.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/floater_event.xml104
-rw-r--r--indra/newview/skins/default/xui/ja/notifications.xml3
-rw-r--r--indra/newview/skins/default/xui/nl/notifications.xml3
-rw-r--r--indra/newview/skins/default/xui/pl/floater_event.xml107
-rw-r--r--indra/newview/skins/default/xui/pl/notifications.xml3
-rw-r--r--indra/newview/skins/default/xui/pt/floater_event.xml107
-rw-r--r--indra/newview/skins/default/xui/pt/notifications.xml3
29 files changed, 555 insertions, 1556 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index d685e6ae36..e15cc368e6 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -139,7 +139,6 @@ set(viewer_SOURCE_FILES
lldriverparam.cpp
lldynamictexture.cpp
llemote.cpp
- lleventinfo.cpp
lleventnotifier.cpp
lleventpoll.cpp
llexpandabletextbox.cpp
@@ -667,7 +666,6 @@ set(viewer_HEADER_FILES
lldriverparam.h
lldynamictexture.h
llemote.h
- lleventinfo.h
lleventnotifier.h
lleventpoll.h
llexpandabletextbox.h
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 0bed37b96a..a3c43cb21a 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -2875,6 +2875,17 @@
<key>Value</key>
<integer>175</integer>
</map>
+ <key>EventURL</key>
+ <map>
+ <key>Comment</key>
+ <string>URL for Event website, displayed in the event floater</string>
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>String</string>
+ <key>Value</key>
+ <string>http://search.secondlife.com/viewer/embed/event/</string>
+ </map>
<key>EveryoneCopy</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/lleventinfo.cpp b/indra/newview/lleventinfo.cpp
deleted file mode 100644
index b7b4e10b17..0000000000
--- a/indra/newview/lleventinfo.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * @file lleventinfo.cpp
- * @brief LLEventInfo class implementation
- *
- * $LicenseInfo:firstyear=2004&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-#include "lleventinfo.h"
-
-#include "lluuid.h"
-#include "message.h"
-
-LLEventInfo::cat_map LLEventInfo::sCategories;
-
-void LLEventInfo::unpack(LLMessageSystem *msg)
-{
- U32 event_id;
- msg->getU32("EventData", "EventID", event_id);
- mID = event_id;
-
- msg->getString("EventData", "Name", mName);
-
- msg->getString("EventData", "Category", mCategoryStr);
-
- msg->getString("EventData", "Date", mTimeStr);
-
- U32 duration;
- msg->getU32("EventData","Duration",duration);
- mDuration = duration;
-
- U32 date;
- msg->getU32("EventData", "DateUTC", date);
- mUnixTime = date;
-
- msg->getString("EventData", "Desc", mDesc);
-
- std::string buffer;
- msg->getString("EventData", "Creator", buffer);
- mRunByID = LLUUID(buffer);
-
- U32 foo;
- msg->getU32("EventData", "Cover", foo);
-
- mHasCover = foo ? TRUE : FALSE;
- if (mHasCover)
- {
- U32 cover;
- msg->getU32("EventData", "Amount", cover);
- mCover = cover;
- }
-
- msg->getString("EventData", "SimName", mSimName);
-
- msg->getVector3d("EventData", "GlobalPos", mPosGlobal);
-
- // Mature content
- U32 event_flags;
- msg->getU32("EventData", "EventFlags", event_flags);
- mEventFlags = event_flags;
-}
-
-// static
-void LLEventInfo::loadCategories(const LLSD& options)
-{
- for(LLSD::array_const_iterator resp_it = options.beginArray(),
- end = options.endArray(); resp_it != end; ++resp_it)
- {
- LLSD name = (*resp_it)["category_name"];
- if(name.isDefined())
- {
- LLSD id = (*resp_it)["category_id"];
- if(id.isDefined())
- {
- LLEventInfo::sCategories[id.asInteger()] = name.asString();
- }
- }
- }
-}
diff --git a/indra/newview/lleventinfo.h b/indra/newview/lleventinfo.h
deleted file mode 100644
index 958a276fbf..0000000000
--- a/indra/newview/lleventinfo.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * @file lleventinfo.h
- * @brief LLEventInfo class definition
- *
- * $LicenseInfo:firstyear=2004&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLEVENTINFO_H
-#define LL_LLEVENTINFO_H
-
-#include <map>
-
-#include "v3dmath.h"
-#include "lluuid.h"
-
-class LLMessageSystem;
-
-class LLEventInfo
-{
-public:
- LLEventInfo() :
- mID(0),
- mDuration(0),
- mUnixTime(0),
- mHasCover(FALSE),
- mCover(0),
- mEventFlags(0),
- mSelected(FALSE)
- {}
-
- void unpack(LLMessageSystem *msg);
-
- static void loadCategories(const LLSD& options);
-
-public:
- std::string mName;
- U32 mID;
- std::string mDesc;
- std::string mCategoryStr;
- U32 mDuration;
- std::string mTimeStr;
- LLUUID mRunByID;
- std::string mSimName;
- LLVector3d mPosGlobal;
- time_t mUnixTime; // seconds from 1970
- BOOL mHasCover;
- U32 mCover;
- U32 mEventFlags;
- BOOL mSelected;
-
- typedef std::map<U32, std::string> cat_map;
- static cat_map sCategories;
-};
-
-#endif // LL_LLEVENTINFO_H
diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp
index 68559a4236..bedab75f98 100644
--- a/indra/newview/lleventnotifier.cpp
+++ b/indra/newview/lleventnotifier.cpp
@@ -31,10 +31,63 @@
#include "llnotificationsutil.h"
#include "message.h"
-#include "lleventinfo.h"
#include "llfloaterreg.h"
#include "llfloaterworldmap.h"
+#include "llfloaterevent.h"
#include "llagent.h"
+#include "llcommandhandler.h" // secondlife:///app/... support
+
+class LLEventHandler : public LLCommandHandler
+{
+public:
+ // requires trusted browser to trigger
+ LLEventHandler() : LLCommandHandler("event", UNTRUSTED_THROTTLE) { }
+ bool handle(const LLSD& params, const LLSD& query_map,
+ LLMediaCtrl* web)
+ {
+ if (params.size() < 2)
+ {
+ return false;
+ }
+ std::string event_command = params[1].asString();
+ S32 event_id = params[0].asInteger();
+ if(event_command == "details")
+ {
+ LLFloaterEvent* floater = LLFloaterReg::getTypedInstance<LLFloaterEvent>("event");
+ if (floater)
+ {
+ floater->setEventID(event_id);
+ LLFloaterReg::showTypedInstance<LLFloaterEvent>("event");
+ return true;
+ }
+ }
+ else if(event_command == "notify")
+ {
+ // we're adding or removing a notification, so grab the date, name and notification bool
+ if (params.size() < 3)
+ {
+ return false;
+ }
+ if(params[2].asString() == "enable")
+ {
+ gEventNotifier.add(event_id);
+ // tell the server to modify the database as this was a slurl event notification command
+ gEventNotifier.serverPushRequest(event_id, true);
+
+ }
+ else
+ {
+ gEventNotifier.remove(event_id);
+ }
+ return true;
+ }
+
+
+ return false;
+ }
+};
+LLEventHandler gEventHandler;
+
LLEventNotifier gEventNotifier;
@@ -63,31 +116,102 @@ void LLEventNotifier::update()
// Check our notifications again and send out updates
// if they happen.
- time_t alert_time = time_corrected() + 5 * 60;
+ F64 alert_time = LLDate::now().secondsSinceEpoch() + 5 * 60;
en_map::iterator iter;
for (iter = mEventNotifications.begin();
iter != mEventNotifications.end();)
{
LLEventNotification *np = iter->second;
- if (np->getEventDate() < (alert_time))
+ iter++;
+ if (np->getEventDateEpoch() < alert_time)
{
LLSD args;
args["NAME"] = np->getEventName();
+
args["DATE"] = np->getEventDateStr();
LLNotificationsUtil::add("EventNotification", args, LLSD(),
- boost::bind(&LLEventNotification::handleResponse, np, _1, _2));
- mEventNotifications.erase(iter++);
+ boost::bind(&LLEventNotifier::handleResponse, this, np->getEventID(), _1, _2));
+ remove(np->getEventID());
+
}
- else
+ }
+ mNotificationTimer.reset();
+ }
+}
+
+
+
+bool LLEventNotifier::handleResponse(U32 eventId, const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+ switch (option)
+ {
+ case 0:
+ {
+ LLFloaterEvent* floater = LLFloaterReg::getTypedInstance<LLFloaterEvent>("event");
+ if (floater)
{
- iter++;
+ floater->setEventID(eventId);
+ LLFloaterReg::showTypedInstance<LLFloaterEvent>("event");
}
+ break;
}
- mNotificationTimer.reset();
+ case 1:
+ break;
}
+ return true;
}
+bool LLEventNotifier::add(U32 eventId, F64 eventEpoch, const std::string& eventDateStr, const std::string &eventName)
+{
+ LLEventNotification *new_enp = new LLEventNotification(eventId, eventEpoch, eventDateStr, eventName);
+
+ llinfos << "Add event " << eventName << " id " << eventId << " date " << eventDateStr << llendl;
+ if(!new_enp->isValid())
+ {
+ delete new_enp;
+ return false;
+ }
+
+ mEventNotifications[new_enp->getEventID()] = new_enp;
+ return true;
+
+}
+
+void LLEventNotifier::add(U32 eventId)
+{
+
+ gMessageSystem->newMessageFast(_PREHASH_EventInfoRequest);
+ gMessageSystem->nextBlockFast(_PREHASH_AgentData);
+ gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
+ gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
+ gMessageSystem->nextBlockFast(_PREHASH_EventData);
+ gMessageSystem->addU32Fast(_PREHASH_EventID, eventId);
+ gAgent.sendReliableMessage();
+
+}
+
+//static
+void LLEventNotifier::processEventInfoReply(LLMessageSystem *msg, void **)
+{
+ // extract the agent id
+ LLUUID agent_id;
+ U32 event_id;
+ std::string event_name;
+ std::string eventd_date;
+ U32 event_time_utc;
+
+ msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id );
+ msg->getU32("EventData", "EventID", event_id);
+ msg->getString("EventData", "Name", event_name);
+ msg->getString("EventData", "Date", eventd_date);
+ msg->getU32("EventData", "DateUTC", event_time_utc);
+
+ gEventNotifier.add(event_id, (F64)event_time_utc, eventd_date, event_name);
+}
+
+
void LLEventNotifier::load(const LLSD& event_options)
{
for(LLSD::array_const_iterator resp_it = event_options.beginArray(),
@@ -95,15 +219,7 @@ void LLEventNotifier::load(const LLSD& event_options)
{
LLSD response = *resp_it;
- LLEventNotification *new_enp = new LLEventNotification();
-
- if(!new_enp->load(response))
- {
- delete new_enp;
- continue;
- }
-
- mEventNotifications[new_enp->getEventID()] = new_enp;
+ add(response["event_id"].asInteger(), response["event_date_ut"], response["event_date"].asString(), response["event_name"].asString());
}
}
@@ -117,32 +233,6 @@ BOOL LLEventNotifier::hasNotification(const U32 event_id)
return FALSE;
}
-
-void LLEventNotifier::add(LLEventInfo &event_info)
-{
- // We need to tell the simulator that we want to pay attention to
- // this event, as well as add it to our list.
-
- if (mEventNotifications.find(event_info.mID) != mEventNotifications.end())
- {
- // We already have a notification for this event, don't bother.
- return;
- }
-
- // Push up a message to tell the server we have this notification.
- gMessageSystem->newMessage("EventNotificationAddRequest");
- gMessageSystem->nextBlockFast(_PREHASH_AgentData);
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
- gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- gMessageSystem->nextBlock("EventData");
- gMessageSystem->addU32("EventID", event_info.mID);
- gAgent.sendReliableMessage();
-
- LLEventNotification *enp = new LLEventNotification;
- enp->load(event_info);
- mEventNotifications[event_info.mID] = enp;
-}
-
void LLEventNotifier::remove(const U32 event_id)
{
en_map::iterator iter;
@@ -153,164 +243,36 @@ void LLEventNotifier::remove(const U32 event_id)
return;
}
- // Push up a message to tell the server to remove this notification.
- gMessageSystem->newMessage("EventNotificationRemoveRequest");
+ serverPushRequest(event_id, false);
+ delete iter->second;
+ mEventNotifications.erase(iter);
+}
+
+
+void LLEventNotifier::serverPushRequest(U32 event_id, bool add)
+{
+ // Push up a message to tell the server we have this notification.
+ gMessageSystem->newMessage(add?"EventNotificationAddRequest":"EventNotificationRemoveRequest");
gMessageSystem->nextBlockFast(_PREHASH_AgentData);
gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
gMessageSystem->nextBlock("EventData");
gMessageSystem->addU32("EventID", event_id);
gAgent.sendReliableMessage();
-
- delete iter->second;
- mEventNotifications.erase(iter);
-}
-
-LLEventNotification::LLEventNotification() :
- mEventID(0),
- mEventDate(0),
- mEventName("")
-{
}
-LLEventNotification::~LLEventNotification()
+LLEventNotification::LLEventNotification(U32 eventId, F64 eventEpoch, const std::string& eventDateStr, const std::string &eventName) :
+ mEventID(eventId),
+ mEventName(eventName),
+ mEventDateEpoch(eventEpoch),
+ mEventDateStr(eventDateStr)
{
+
}
-bool LLEventNotification::handleResponse(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
- switch (option)
- {
- case 0:
- {
- gAgent.teleportViaLocation(getEventPosGlobal());
- LLFloaterWorldMap* floater_world_map = LLFloaterWorldMap::getInstance();
- if(floater_world_map) floater_world_map->trackLocation(getEventPosGlobal());
- break;
- }
- case 1:
- LLFloaterReg::showInstance("search", LLSD().with("category", "events").with("id", S32(getEventID())));
- break;
- case 2:
- break;
- }
- // We could clean up the notification on the server now if we really wanted to.
- return false;
-}
-BOOL LLEventNotification::load(const LLSD& response)
-{
- BOOL event_ok = TRUE;
- LLSD option = response.get("event_id");
- if (option.isDefined())
- {
- mEventID = option.asInteger();
- }
- else
- {
- event_ok = FALSE;
- }
- option = response.get("event_name");
- if (option.isDefined())
- {
- llinfos << "Event: " << option.asString() << llendl;
- mEventName = option.asString();
- }
- else
- {
- event_ok = FALSE;
- }
- option = response.get("event_date");
- if (option.isDefined())
- {
- llinfos << "EventDate: " << option.asString() << llendl;
- mEventDateStr = option.asString();
- }
- else
- {
- event_ok = FALSE;
- }
-
- option = response.get("event_date_ut");
- if (option.isDefined())
- {
- llinfos << "EventDate: " << option.asString() << llendl;
- mEventDate = strtoul(option.asString().c_str(), NULL, 10);
- }
- else
- {
- event_ok = FALSE;
- }
-
- S32 grid_x = 0;
- S32 grid_y = 0;
- S32 x_region = 0;
- S32 y_region = 0;
-
- option = response.get("grid_x");
- if (option.isDefined())
- {
- llinfos << "GridX: " << option.asInteger() << llendl;
- grid_x= option.asInteger();
- }
- else
- {
- event_ok = FALSE;
- }
-
- option = response.get("grid_y");
- if (option.isDefined())
- {
- llinfos << "GridY: " << option.asInteger() << llendl;
- grid_y = option.asInteger();
- }
- else
- {
- event_ok = FALSE;
- }
-
- option = response.get("x_region");
- if (option.isDefined())
- {
- llinfos << "RegionX: " << option.asInteger() << llendl;
- x_region = option.asInteger();
- }
- else
- {
- event_ok = FALSE;
- }
-
- option = response.get("y_region");
- if (option.isDefined())
- {
- llinfos << "RegionY: " << option.asInteger() << llendl;
- y_region = option.asInteger();
- }
- else
- {
- event_ok = FALSE;
- }
-
- mEventPosGlobal.mdV[VX] = grid_x * 256 + x_region;
- mEventPosGlobal.mdV[VY] = grid_y * 256 + y_region;
- mEventPosGlobal.mdV[VZ] = 0.f;
-
- return event_ok;
-}
-
-BOOL LLEventNotification::load(const LLEventInfo &event_info)
-{
-
- mEventID = event_info.mID;
- mEventName = event_info.mName;
- mEventDateStr = event_info.mTimeStr;
- mEventDate = event_info.mUnixTime;
- mEventPosGlobal = event_info.mPosGlobal;
- return TRUE;
-}
diff --git a/indra/newview/lleventnotifier.h b/indra/newview/lleventnotifier.h
index 0367fc47b0..697a708762 100644
--- a/indra/newview/lleventnotifier.h
+++ b/indra/newview/lleventnotifier.h
@@ -30,7 +30,6 @@
#include "llframetimer.h"
#include "v3dmath.h"
-class LLEventInfo;
class LLEventNotification;
@@ -41,15 +40,21 @@ public:
virtual ~LLEventNotifier();
void update(); // Notify the user of the event if it's coming up
+ bool add(U32 eventId, F64 eventEpoch, const std::string& eventDateStr, const std::string &eventName);
+ void add(U32 eventId);
+
void load(const LLSD& event_options); // In the format that it comes in from login
- void add(LLEventInfo &event_info); // Add a new notification for an event
void remove(U32 event_id);
BOOL hasNotification(const U32 event_id);
+ void serverPushRequest(U32 event_id, bool add);
typedef std::map<U32, LLEventNotification *> en_map;
+ bool handleResponse(U32 eventId, const LLSD& notification, const LLSD& response);
+ static void processEventInfoReply(LLMessageSystem *msg, void **);
+
protected:
en_map mEventNotifications;
LLFrameTimer mNotificationTimer;
@@ -59,25 +64,21 @@ protected:
class LLEventNotification
{
public:
- LLEventNotification();
- virtual ~LLEventNotification();
+ LLEventNotification(U32 eventId, F64 eventEpoch, const std::string& eventDateStr, const std::string &eventName);
+
- BOOL load(const LLSD& en); // In the format it comes in from login
- BOOL load(const LLEventInfo &event_info); // From existing event_info on the viewer.
- //void setEventID(const U32 event_id);
- //void setEventName(std::string &event_name);
U32 getEventID() const { return mEventID; }
const std::string &getEventName() const { return mEventName; }
- time_t getEventDate() const { return mEventDate; }
- const std::string &getEventDateStr() const { return mEventDateStr; }
- LLVector3d getEventPosGlobal() const { return mEventPosGlobal; }
- bool handleResponse(const LLSD& notification, const LLSD& payload);
+ bool isValid() const { return mEventID > 0 && mEventDateEpoch != 0 && mEventName.size() > 0; }
+ const F64 &getEventDateEpoch() const { return mEventDateEpoch; }
+ const std::string &getEventDateStr() const { return mEventDateStr; }
+
+
protected:
U32 mEventID; // EventID for this event
std::string mEventName;
+ F64 mEventDateEpoch;
std::string mEventDateStr;
- time_t mEventDate;
- LLVector3d mEventPosGlobal;
};
extern LLEventNotifier gEventNotifier;
diff --git a/indra/newview/llfloaterevent.cpp b/indra/newview/llfloaterevent.cpp
index ee2ba2ba54..0513146e8c 100644
--- a/indra/newview/llfloaterevent.cpp
+++ b/indra/newview/llfloaterevent.cpp
@@ -38,10 +38,11 @@
#include "llcachename.h"
#include "llcommandhandler.h" // secondlife:///app/chat/ support
#include "lleventflags.h"
-#include "lleventnotifier.h"
+#include "llmediactrl.h"
#include "llexpandabletextbox.h"
#include "llfloater.h"
#include "llfloaterreg.h"
+#include "llmediactrl.h"
#include "llfloaterworldmap.h"
#include "llinventorymodel.h"
#include "llsecondlifeurls.h"
@@ -57,35 +58,10 @@
#include "lltrans.h"
-class LLEventHandler : public LLCommandHandler
-{
-public:
- // requires trusted browser to trigger
- LLEventHandler() : LLCommandHandler("event", UNTRUSTED_THROTTLE) { }
- bool handle(const LLSD& params, const LLSD& query_map,
- LLMediaCtrl* web)
- {
- if (params.size() < 1)
- {
- return false;
- }
-
- LLFloaterEvent* floater = LLFloaterReg::getTypedInstance<LLFloaterEvent>("event");
- if (floater)
- {
- floater->setEventID(params[0].asInteger());
- LLFloaterReg::showTypedInstance<LLFloaterEvent>("event");
- return true;
- }
-
- return false;
- }
-};
-LLEventHandler gEventHandler;
-
LLFloaterEvent::LLFloaterEvent(const LLSD& key)
: LLFloater(key),
-
+ LLViewerMediaObserver(),
+ mBrowser(NULL),
mEventID(0)
{
}
@@ -98,253 +74,52 @@ LLFloaterEvent::~LLFloaterEvent()
BOOL LLFloaterEvent::postBuild()
{
- mTBName = getChild<LLTextBox>("event_name");
-
- mTBCategory = getChild<LLTextBox>("event_category");
-
- mTBDate = getChild<LLTextBox>("event_date");
-
- mTBDuration = getChild<LLTextBox>("event_duration");
-
- mTBDesc = getChild<LLExpandableTextBox>("event_desc");
-
- mTBRunBy = getChild<LLTextBox>("event_runby");
- mTBLocation = getChild<LLTextBox>("event_location");
- mTBCover = getChild<LLTextBox>("event_cover");
-
- mTeleportBtn = getChild<LLButton>( "teleport_btn");
- mTeleportBtn->setClickedCallback(onClickTeleport, this);
-
- mMapBtn = getChild<LLButton>( "map_btn");
- mMapBtn->setClickedCallback(onClickMap, this);
-
- mNotifyBtn = getChild<LLButton>( "notify_btn");
- mNotifyBtn->setClickedCallback(onClickNotify, this);
-
- mCreateEventBtn = getChild<LLButton>( "create_event_btn");
- mCreateEventBtn->setClickedCallback(onClickCreateEvent, this);
-
- mGodDeleteEventBtn = getChild<LLButton>( "god_delete_event_btn");
- mGodDeleteEventBtn->setClickedCallback(boost::bind(&LLFloaterEvent::onClickDeleteEvent, this));
-
- return TRUE;
-}
-
-void LLFloaterEvent::setEventID(const U32 event_id)
-{
- mEventID = event_id;
- // Should reset all of the panel state here
- resetInfo();
-
- if (event_id != 0)
+ mBrowser = getChild<LLMediaCtrl>("browser");
+ if (mBrowser)
{
- sendEventInfoRequest();
+ mBrowser->addObserver(this);
+ mBrowser->setTrusted(true);
}
-}
-
-void LLFloaterEvent::onClickDeleteEvent()
-{
- LLMessageSystem* msg = gMessageSystem;
-
- msg->newMessageFast(_PREHASH_EventGodDelete);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
-
- msg->nextBlockFast(_PREHASH_EventData);
- msg->addU32Fast(_PREHASH_EventID, mEventID);
- gAgent.sendReliableMessage();
-}
-
-void LLFloaterEvent::sendEventInfoRequest()
-{
- LLMessageSystem *msg = gMessageSystem;
-
- msg->newMessageFast(_PREHASH_EventInfoRequest);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
- msg->nextBlockFast(_PREHASH_EventData);
- msg->addU32Fast(_PREHASH_EventID, mEventID);
- gAgent.sendReliableMessage();
+ return TRUE;
}
-//static
-void LLFloaterEvent::processEventInfoReply(LLMessageSystem *msg, void **)
+void LLFloaterEvent::handleMediaEvent(LLPluginClassMedia *self, EMediaEvent event)
{
- // extract the agent id
- LLUUID agent_id;
- msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id );
-
- LLFloaterEvent* floater = LLFloaterReg::getTypedInstance<LLFloaterEvent>("event");
-
- if(floater)
+ switch (event)
{
- floater->mEventInfo.unpack(msg);
- floater->mTBName->setText(floater->mEventInfo.mName);
- floater->mTBCategory->setText(floater->mEventInfo.mCategoryStr);
- floater->mTBDate->setText(floater->mEventInfo.mTimeStr);
- floater->mTBDesc->setText(floater->mEventInfo.mDesc);
- floater->mTBRunBy->setText(LLSLURL("agent", floater->mEventInfo.mRunByID, "inspect").getSLURLString());
-
- floater->mTBDuration->setText(llformat("%d:%.2d", floater->mEventInfo.mDuration / 60, floater->mEventInfo.mDuration % 60));
-
- if (!floater->mEventInfo.mHasCover)
- {
- floater->mTBCover->setText(floater->getString("none"));
- }
- else
- {
- floater->mTBCover->setText(llformat("%d", floater->mEventInfo.mCover));
- }
-
- F32 global_x = (F32)floater->mEventInfo.mPosGlobal.mdV[VX];
- F32 global_y = (F32)floater->mEventInfo.mPosGlobal.mdV[VY];
-
- S32 region_x = llround(global_x) % REGION_WIDTH_UNITS;
- S32 region_y = llround(global_y) % REGION_WIDTH_UNITS;
- S32 region_z = llround((F32)floater->mEventInfo.mPosGlobal.mdV[VZ]);
-
- std::string desc = floater->mEventInfo.mSimName + llformat(" (%d, %d, %d)", region_x, region_y, region_z);
- floater->mTBLocation->setText(desc);
-
- floater->getChildView("rating_icon_m")->setVisible( FALSE);
- floater->getChildView("rating_icon_r")->setVisible( FALSE);
- floater->getChildView("rating_icon_pg")->setVisible( FALSE);
- floater->getChild<LLUICtrl>("rating_value")->setValue(floater->getString("unknown"));
-
- //for some reason there's not adult flags for now, so see if region is adult and then
- //set flags
- LLWorldMapMessage::url_callback_t cb = boost::bind( &regionInfoCallback, floater->mEventInfo.mID, _1);
- LLWorldMapMessage::getInstance()->sendNamedRegionRequest(floater->mEventInfo.mSimName, cb, std::string("unused"), false);
-
- if (floater->mEventInfo.mUnixTime < time_corrected())
- {
- floater->mNotifyBtn->setEnabled(FALSE);
- }
- else
- {
- floater->mNotifyBtn->setEnabled(TRUE);
- }
-
- if (gEventNotifier.hasNotification(floater->mEventInfo.mID))
- {
- floater->mNotifyBtn->setLabel(floater->getString("dont_notify"));
- }
- else
- {
- floater->mNotifyBtn->setLabel(floater->getString("notify"));
- }
-
- floater->mMapBtn->setEnabled(TRUE);
- floater->mTeleportBtn->setEnabled(TRUE);
+ case MEDIA_EVENT_NAVIGATE_BEGIN:
+ getChild<LLUICtrl>("status_text")->setValue(getString("loading_text"));
+ break;
+
+ case MEDIA_EVENT_NAVIGATE_COMPLETE:
+ getChild<LLUICtrl>("status_text")->setValue(getString("done_text"));
+ break;
+
+ default:
+ break;
}
}
-//static
-void LLFloaterEvent::regionInfoCallback(U32 event_id, U64 region_handle)
+void LLFloaterEvent::setEventID(const U32 event_id)
{
- LLSimInfo* sim_info = LLWorldMap::getInstance()->simInfoFromHandle(region_handle);
- LLFloaterEvent* floater = LLFloaterReg::getTypedInstance<LLFloaterEvent>("event");
+ mEventID = event_id;
- if (sim_info && floater && (event_id == floater->getEventID()))
+ if (event_id != 0)
{
- // update the event with the maturity info
- if (sim_info->isAdult())
- {
- floater->getChildView("rating_icon_m")->setVisible( FALSE);
- floater->getChildView("rating_icon_r")->setVisible( TRUE);
- floater->getChildView("rating_icon_pg")->setVisible( FALSE);
- floater->getChild<LLUICtrl>("rating_value")->setValue(floater->getString("adult"));
-
- }
- else if (floater->mEventInfo.mEventFlags & EVENT_FLAG_MATURE)
- {
- floater->getChildView("rating_icon_m")->setVisible( TRUE);
- floater->getChildView("rating_icon_r")->setVisible( FALSE);
- floater->getChildView("rating_icon_pg")->setVisible( FALSE);
- floater->getChild<LLUICtrl>("rating_value")->setValue(floater->getString("moderate"));
- }
- else
- {
- floater->getChildView("rating_icon_m")->setVisible( FALSE);
- floater->getChildView("rating_icon_r")->setVisible( FALSE);
- floater->getChildView("rating_icon_pg")->setVisible( TRUE);
- floater->getChild<LLUICtrl>("rating_value")->setValue(floater->getString("general"));
- }
+ LLSD subs;
+ subs["EVENT_ID"] = (S32)event_id;
+ // get the search URL and expand all of the substitutions
+ // (also adds things like [LANGUAGE], [VERSION], [OS], etc.)
+ std::ostringstream url;
+ url << gSavedSettings.getString("EventURL") << event_id << "/" << std::endl;
+ // and load the URL in the web view
+ mBrowser->navigateTo(url.str());
+
}
}
void LLFloaterEvent::draw()
{
- mGodDeleteEventBtn->setVisible(gAgent.isGodlike());
-
LLPanel::draw();
}
-
-void LLFloaterEvent::resetInfo()
-{
- mTBName->setText(LLStringUtil::null);
- mTBCategory->setText(LLStringUtil::null);
- mTBDate->setText(LLStringUtil::null);
- mTBDesc->setText(LLStringUtil::null);
- mTBDuration->setText(LLStringUtil::null);
- mTBCover->setText(LLStringUtil::null);
- mTBLocation->setText(LLStringUtil::null);
- mTBRunBy->setText(LLStringUtil::null);
- mNotifyBtn->setEnabled(FALSE);
- mMapBtn->setEnabled(FALSE);
- mTeleportBtn->setEnabled(FALSE);
-}
-
-// static
-void LLFloaterEvent::onClickTeleport(void* data)
-{
- LLFloaterEvent* self = (LLFloaterEvent*)data;
- LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance();
- if (!self->mEventInfo.mPosGlobal.isExactlyZero()&&worldmap_instance)
- {
- gAgent.teleportViaLocation(self->mEventInfo.mPosGlobal);
- worldmap_instance->trackLocation(self->mEventInfo.mPosGlobal);
- }
-}
-
-
-// static
-void LLFloaterEvent::onClickMap(void* data)
-{
- LLFloaterEvent* self = (LLFloaterEvent*)data;
- LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance();
-
- if (!self->mEventInfo.mPosGlobal.isExactlyZero()&&worldmap_instance)
- {
- worldmap_instance->trackLocation(self->mEventInfo.mPosGlobal);
- LLFloaterReg::showInstance("world_map", "center");
- }
-}
-
-
-// static
-void LLFloaterEvent::onClickCreateEvent(void* data)
-{
- LLNotificationsUtil::add("PromptGoToEventsPage");//, LLSD(), LLSD(), callbackCreateEventWebPage);
-}
-
-
-// static
-void LLFloaterEvent::onClickNotify(void *data)
-{
- LLFloaterEvent* self = (LLFloaterEvent*)data;
-
- if (!gEventNotifier.hasNotification(self->mEventID))
- {
- gEventNotifier.add(self->mEventInfo);
- self->mNotifyBtn->setLabel(self->getString("dont_notify"));
- }
- else
- {
- gEventNotifier.remove(self->mEventInfo.mID);
- self->mNotifyBtn->setLabel(self->getString("notify"));
- }
-}
diff --git a/indra/newview/llfloaterevent.h b/indra/newview/llfloaterevent.h
index bfed2f259b..b1963309da 100644
--- a/indra/newview/llfloaterevent.h
+++ b/indra/newview/llfloaterevent.h
@@ -28,17 +28,15 @@
#define LL_LLFLOATEREVENT_H
#include "llfloater.h"
-#include "lleventinfo.h"
-#include "lluuid.h"
-#include "v3dmath.h"
+#include "llviewermediaobserver.h"
-class LLTextBox;
-class LLTextEditor;
+
+class LLMediaCtrl;
class LLButton;
-class LLExpandableTextBox;
-class LLMessageSystem;
-class LLFloaterEvent : public LLFloater
+class LLFloaterEvent : public LLFloater,
+ public LLViewerMediaObserver
+
{
public:
LLFloaterEvent(const LLSD& key);
@@ -48,44 +46,18 @@ public:
/*virtual*/ void draw();
void setEventID(const U32 event_id);
- void sendEventInfoRequest();
-
- static void processEventInfoReply(LLMessageSystem *msg, void **);
U32 getEventID() { return mEventID; }
-protected:
- void resetInfo();
-
- static void onClickTeleport(void*);
- static void onClickMap(void*);
- //static void onClickLandmark(void*);
- static void onClickCreateEvent(void*);
- static void onClickNotify(void*);
- void onClickDeleteEvent();
-
- static void regionInfoCallback(U32 event_id, U64 region_handle);
protected:
+ /*virtual*/ void handleMediaEvent(LLPluginClassMedia *self, EMediaEvent event);
+
U32 mEventID;
- LLEventInfo mEventInfo;
-
- LLTextBox* mTBName;
- LLTextBox* mTBCategory;
- LLTextBox* mTBDate;
- LLTextBox* mTBDuration;
- LLExpandableTextBox* mTBDesc;
- LLTextBox* mTBRunBy;
- LLTextBox* mTBLocation;
- LLTextBox* mTBCover;
+ LLMediaCtrl* mBrowser;
- LLButton* mTeleportBtn;
- LLButton* mMapBtn;
- LLButton* mCreateEventBtn;
- LLButton* mGodDeleteEventBtn;
- LLButton* mNotifyBtn;
};
#endif // LL_LLFLOATEREVENT_H
diff --git a/indra/newview/llfloaterworldmap.h b/indra/newview/llfloaterworldmap.h
index 6327039b7f..1628a421ec 100644
--- a/indra/newview/llfloaterworldmap.h
+++ b/indra/newview/llfloaterworldmap.h
@@ -39,7 +39,6 @@
#include "lltracker.h"
#include "llslurl.h"
-class LLEventInfo;
class LLFriendObserver;
class LLInventoryModel;
class LLInventoryObserver;
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 975d1f9f32..6bbddd9b2e 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -118,7 +118,6 @@
#include "llpanellogin.h"
#include "llmutelist.h"
#include "llavatarpropertiesprocessor.h"
-#include "llfloaterevent.h"
#include "llpanelclassified.h"
#include "llpanelpick.h"
#include "llpanelgrouplandmoney.h"
@@ -1612,12 +1611,6 @@ bool idle_startup()
LLFloaterReg::showInstance("hud", LLSD(), FALSE);
}
- LLSD event_categories = response["event_categories"];
- if(event_categories.isDefined())
- {
- LLEventInfo::loadCategories(event_categories);
- }
-
LLSD event_notifications = response["event_notifications"];
if(event_notifications.isDefined())
{
@@ -2329,8 +2322,8 @@ void register_viewer_callbacks(LLMessageSystem* msg)
msg->setHandlerFunc("MapBlockReply", LLWorldMapMessage::processMapBlockReply);
msg->setHandlerFunc("MapItemReply", LLWorldMapMessage::processMapItemReply);
-
- msg->setHandlerFunc("EventInfoReply", LLFloaterEvent::processEventInfoReply);
+ msg->setHandlerFunc("EventInfoReply", LLEventNotifier::processEventInfoReply);
+
msg->setHandlerFunc("PickInfoReply", &LLAvatarPropertiesProcessor::processPickInfoReply);
// msg->setHandlerFunc("ClassifiedInfoReply", LLPanelClassified::processClassifiedInfoReply);
msg->setHandlerFunc("ClassifiedInfoReply", LLAvatarPropertiesProcessor::processClassifiedInfoReply);
diff --git a/indra/newview/skins/default/xui/da/floater_event.xml b/indra/newview/skins/default/xui/da/floater_event.xml
index 1816144b45..1d16c942dd 100644
--- a/indra/newview/skins/default/xui/da/floater_event.xml
+++ b/indra/newview/skins/default/xui/da/floater_event.xml
@@ -1,72 +1,39 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Event" name="Event" title="EVENT DETALJER">
- <floater.string name="none">
- ingen
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ follows="all"
+ height="400"
+ can_resize="true"
+ help_topic="event_details"
+ label="Event"
+ layout="topleft"
+ name="Event"
+ save_rect="true"
+ save_visibility="false"
+ title="EVENT DETAILS"
+ width="600">
+ <floater.string
+ name="loading_text">
+ Henter...
</floater.string>
- <floater.string name="notify">
- Meddel
- </floater.string>
- <floater.string name="dont_notify">
- Meddel ikke
- </floater.string>
- <floater.string name="moderate">
- Moderat
- </floater.string>
- <floater.string name="adult">
- Voksent
- </floater.string>
- <floater.string name="general">
- Generelt
- </floater.string>
- <floater.string name="unknown">
- Ukendt
- </floater.string>
- <layout_stack name="layout">
- <layout_panel name="profile_stack">
- <text name="event_name">
- Event uden navn.
- </text>
- <text name="event_category">
- (ingen kategori)
- </text>
- <text name="event_runby_label">
- Afholdt af:
- </text>
- <text initial_value="(henter)" name="event_runby"/>
- <text name="event_date_label">
- Dato:
- </text>
- <text name="event_date">
- 10/10/2010
- </text>
- <text name="event_duration_label">
- Varighed:
- </text>
- <text name="event_duration">
- 1 time
- </text>
- <text name="event_covercharge_label">
- Pris:
- </text>
- <text name="event_cover">
- Gratis
- </text>
- <text name="event_location_label">
- Lokation:
- </text>
- <text name="event_location" value="SampleParcel, Name Long (145, 228, 26)"/>
- <text name="rating_label" value="Rating:"/>
- <text name="rating_value" value="ukendt"/>
- <expandable_text name="event_desc">
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
- </expandable_text>
- </layout_panel>
- <layout_panel name="button_panel">
- <button name="create_event_btn" tool_tip="Opret event"/>
- <button name="god_delete_event_btn" tool_tip="Slet event"/>
- <button label="Giv besked" name="notify_btn"/>
- <button label="Teleport" name="teleport_btn"/>
- <button label="Kort" name="map_btn"/>
- </layout_panel>
- </layout_stack>
+ <floater.string
+ name="done_text">
+ Done
+ </floater.string>
+ <web_browser
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="10"
+ name="browser"
+ height="365"
+ width="580"
+ top="0"/>
+ <text
+ follows="bottom|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="status_text"
+ top_pad="10"
+ width="150" />
</floater>
+
diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml
index 62d9c5a203..25195b44c8 100644
--- a/indra/newview/skins/default/xui/da/notifications.xml
+++ b/indra/newview/skins/default/xui/da/notifications.xml
@@ -1081,8 +1081,7 @@ Prøv at vælge mindre stykker land.
[NAME]
[DATE]
<form name="form">
- <button name="Teleport" text="Teleportér"/>
- <button name="Description" text="Beskrivelse"/>
+ <button name="Details" text="Beskrivelse"/>
<button name="Cancel" text="Annullér"/>
</form>
</notification>
diff --git a/indra/newview/skins/default/xui/de/floater_event.xml b/indra/newview/skins/default/xui/de/floater_event.xml
index cf663e2e1b..13108100f6 100644
--- a/indra/newview/skins/default/xui/de/floater_event.xml
+++ b/indra/newview/skins/default/xui/de/floater_event.xml
@@ -1,69 +1,39 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Event" name="Event" title="EVENT-DETAILS">
- <floater.string name="none">
- keines
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ follows="all"
+ height="400"
+ can_resize="true"
+ help_topic="event_details"
+ label="Event"
+ layout="topleft"
+ name="Event"
+ save_rect="true"
+ save_visibility="false"
+ title="EVENT DETAILS"
+ width="600">
+ <floater.string
+ name="loading_text">
+ Wird geladen...
</floater.string>
- <floater.string name="notify">
- Benachrichtigen
- </floater.string>
- <floater.string name="dont_notify">
- Nicht benachrichtigen
- </floater.string>
- <floater.string name="moderate">
- Moderat
- </floater.string>
- <floater.string name="adult">
- Adult
- </floater.string>
- <floater.string name="general">
- Allgemein
- </floater.string>
- <floater.string name="unknown">
- Unbekannt
- </floater.string>
- <layout_stack name="layout">
- <layout_panel name="profile_stack">
- <text name="event_name">
- Namenloses Event....namenlos! Tadaaa! Tadatadaaaah!
- </text>
- <text name="event_category">
- (keine Kategorie)
- </text>
- <text name="event_runby_label">
- Ausgeführt von:
- </text>
- <text initial_value="(wird in Datenbank gesucht)" name="event_runby"/>
- <text name="event_date_label">
- Datum:
- </text>
- <text name="event_date">
- 10/10/2010
- </text>
- <text name="event_duration_label">
- Dauer:
- </text>
- <text name="event_duration">
- 1 Stunde
- </text>
- <text name="event_covercharge_label">
- Eintritt:
- </text>
- <text name="event_cover">
- Kostenlos
- </text>
- <text name="event_location_label">
- Standort:
- </text>
- <text name="event_location" value="SampleParcel, Name Long (145, 228, 26)"/>
- <text name="rating_label" value="Einstufung:"/>
- <text name="rating_value" value="unbekannt"/>
- </layout_panel>
- <layout_panel name="button_panel">
- <button name="create_event_btn" tool_tip="Event erstellen"/>
- <button name="god_delete_event_btn" tool_tip="Event löschen"/>
- <button label="Mich benachrichtigen" name="notify_btn"/>
- <button label="Teleportieren" name="teleport_btn"/>
- <button label="Karte" name="map_btn"/>
- </layout_panel>
- </layout_stack>
+ <floater.string
+ name="done_text">
+ Done
+ </floater.string>
+ <web_browser
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="10"
+ name="browser"
+ height="365"
+ width="580"
+ top="0"/>
+ <text
+ follows="bottom|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="status_text"
+ top_pad="10"
+ width="150" />
</floater>
+
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index e5baf0f98f..5d4911d9b8 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -2195,8 +2195,7 @@ Wählen Sie eine kleinere Landfläche.
[NAME]
[DATE]
<form name="form">
- <button name="Teleport" text="Teleportieren"/>
- <button name="Description" text="Beschreibung"/>
+ <button name="Details" text="Beschreibung"/>
<button name="Cancel" text="Abbrechen"/>
</form>
</notification>
diff --git a/indra/newview/skins/default/xui/en/floater_event.xml b/indra/newview/skins/default/xui/en/floater_event.xml
index 9864083442..1be9748711 100644
--- a/indra/newview/skins/default/xui/en/floater_event.xml
+++ b/indra/newview/skins/default/xui/en/floater_event.xml
@@ -1,311 +1,39 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
follows="all"
- height="350"
+ height="400"
+ can_resize="true"
help_topic="event_details"
label="Event"
layout="topleft"
name="Event"
+ save_rect="true"
+ save_visibility="false"
title="EVENT DETAILS"
- width="330">
- <floater.string
- name="none">
- none
- </floater.string>
- <floater.string
- name="notify">
- Notify
- </floater.string>
- <floater.string
- name="dont_notify">
- Don&apos;t Notify
- </floater.string>
- <floater.string
- name="moderate">
- Moderate
- </floater.string>
- <floater.string
- name="adult">
- Adult
- </floater.string>
- <floater.string
- name="general">
- General
- </floater.string>
- <floater.string
- name="unknown">
- Unknown
- </floater.string>
- <layout_stack
- name="layout"
- orientation="vertical"
- follows="all"
- layout="topleft"
- left="0"
- top="0"
- height="350"
- width="330"
- border_size="0">
- <layout_panel
- name="profile_stack"
- follows="top|left"
- layout="topleft"
- top="0"
- left="0"
- height="305"
- width="330">
- <text
- follows="top|left|right"
- font="SansSerifLarge"
- text_color="white"
- height="17"
- layout="topleft"
- left="10"
- name="event_name"
- top="5"
- use_ellipses="true"
- width="310">
- Nameless Event...of Doom! De doom! Doom doom.
- </text>
- <text
- type="string"
- length="1"
- follows="top|left"
- height="13"
- text_color="LtGray_50"
- layout="topleft"
- left="25"
- name="event_category"
- width="300">
- (no category)
- </text>
-
- <text
- type="string"
- length="1"
- follows="top|left"
- layout="topleft"
- left="10"
- top_pad="7"
- name="event_runby_label"
- width="90">
- Run by:
- </text>
- <text
- follows="left|top"
- height="20"
- initial_value="(retrieving)"
- layout="topleft"
- left_pad="0"
- link="true"
- name="event_runby"
- top_delta="0"
- use_ellipses="true"
- width="240" />
- <text
- type="string"
- length="1"
- follows="top|left"
- layout="topleft"
- left="10"
- top_pad="5"
- name="event_date_label"
- width="90">
- Date:
- </text>
- <text
- type="string"
- length="1"
- left_pad="0"
- height="17"
- top_delta="0"
- follows="top|left"
+ width="600">
+ <floater.string
+ name="loading_text">
+ Loading...
+ </floater.string>
+ <floater.string
+ name="done_text">
+ Done
+ </floater.string>
+ <web_browser
+ follows="left|right|top|bottom"
layout="topleft"
- name="event_date"
- width="240">
- 10/10/2010
- </text>
- <text
- type="string"
- length="1"
- follows="top|left"
- layout="topleft"
- left="10"
- top_pad="5"
- name="event_duration_label"
- width="90">
- Duration:
- </text>
- <text
- type="string"
- height="14"
- length="1"
- left_pad="0"
- follows="top|left"
- layout="topleft"
- name="event_duration"
- top_delta="0"
- width="240">
- 1 hour
- </text>
- <text
- type="string"
- length="1"
- follows="top|left"
- layout="topleft"
- left="10"
- top_pad="5"
- name="event_covercharge_label"
- width="90">
- Cover charge:
- </text>
- <text
- type="string"
- follows="left|top"
- height="16"
- layout="topleft"
- left_pad="0"
- name="event_cover"
- visible="true"
- width="240"
- top_delta="0">
- Free
- </text>
- <text
- type="string"
- length="1"
- follows="top|left"
- layout="topleft"
- left="10"
- top_pad="5"
- name="event_location_label"
- width="90">
- Location:
- </text>
- <text
- type="string"
- length="1"
- height="20"
- left_pad="0"
- follows="top|left"
- layout="topleft"
- name="event_location"
- use_ellipses="true"
- top_delta="0"
- value="SampleParcel, Name Long (145, 228, 26)"
- width="240" />
- <icon
- follows="top|left"
- height="16"
- image_name="Parcel_PG_Dark"
- layout="topleft"
- left="10"
- name="rating_icon_pg"
- width="18" />
- <icon
- follows="top|left"
- height="16"
- image_name="Parcel_M_Dark"
- layout="topleft"
- left="10"
- name="rating_icon_m"
- top_delta="0"
- width="18" />
- <icon
- follows="top|left"
- height="16"
- image_name="Parcel_R_Dark"
- layout="topleft"
- left="10"
- name="rating_icon_r"
- top_delta="0"
- width="18" />
- <text
- follows="left|top"
- height="16"
- layout="topleft"
- left_pad="12"
- name="rating_label"
- top_delta="3"
- value="Rating:"
- width="90" />
- <text
- follows="left|right|top"
- height="16"
- layout="topleft"
- left_pad="2"
- name="rating_value"
- top_delta="0"
- value="unknown"
- width="240" />
- <expandable_text
- follows="left|top|right"
- height="65"
- layout="topleft"
- left="6"
- name="event_desc"
- width="322">
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</expandable_text>
- </layout_panel>
- <layout_panel
- follows="left|right"
- height="24"
- layout="topleft"
- mouse_opaque="false"
- name="button_panel"
- top="0"
- left="0"
- user_resize="false">
- <button
- follows="left|top"
- height="18"
- image_selected="AddItem_Press"
- image_unselected="AddItem_Off"
- image_disabled="AddItem_Disabled"
- layout="topleft"
- left="6"
- name="create_event_btn"
- tool_tip="Create Event"
- width="18" />
- <button
- follows="left|top"
- height="18"
- image_selected="MinusItem_Press"
- image_unselected="MinusItem_Off"
- image_disabled="MinusItem_Disabled"
- layout="topleft"
- visible="false"
- left="6"
- top_pad="-7"
- name="god_delete_event_btn"
- tool_tip="Delete Event"
- width="18" />
- <button
- follows="left|top"
- height="23"
- label="Notify Me"
- layout="topleft"
- left_pad="3"
- top_delta="-12"
- name="notify_btn"
- width="100" />
- <button
- follows="left|top"
- height="23"
- label="Teleport"
- layout="topleft"
- left_pad="5"
- name="teleport_btn"
- width="100" />
- <button
- follows="left|top"
- height="23"
- label="Map"
- layout="topleft"
- left_pad="5"
- name="map_btn"
- width="85" />
- </layout_panel>
- </layout_stack>
- </floater>
+ left="10"
+ name="browser"
+ height="365"
+ width="580"
+ top="0"/>
+ <text
+ follows="bottom|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="status_text"
+ top_pad="10"
+ width="150" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 609a9b09be..2473c2e424 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -4858,14 +4858,10 @@ Event Notification:
<form name="form">
<button
index="0"
- name="Teleport"
- text="Teleport"/>
+ name="Details"
+ text="Details"/>
<button
index="1"
- name="Description"
- text="Description"/>
- <button
- index="2"
name="Cancel"
text="Cancel"/>
</form>
diff --git a/indra/newview/skins/default/xui/es/floater_event.xml b/indra/newview/skins/default/xui/es/floater_event.xml
index 4bc5221796..f37c722f03 100644
--- a/indra/newview/skins/default/xui/es/floater_event.xml
+++ b/indra/newview/skins/default/xui/es/floater_event.xml
@@ -1,72 +1,39 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Evento" name="Event" title="DETALLES DEL EVENTO">
- <floater.string name="none">
- ninguno
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ follows="all"
+ height="400"
+ can_resize="true"
+ help_topic="event_details"
+ label="Event"
+ layout="topleft"
+ name="Event"
+ save_rect="true"
+ save_visibility="false"
+ title="EVENT DETAILS"
+ width="600">
+ <floater.string
+ name="loading_text">
+ Cargando...
</floater.string>
- <floater.string name="notify">
- Notificar
- </floater.string>
- <floater.string name="dont_notify">
- No notificar
- </floater.string>
- <floater.string name="moderate">
- Moderado
- </floater.string>
- <floater.string name="adult">
- Adulto
- </floater.string>
- <floater.string name="general">
- General
- </floater.string>
- <floater.string name="unknown">
- desconocida
- </floater.string>
- <layout_stack name="layout">
- <layout_panel name="profile_stack">
- <text name="event_name">
- Evento sin nombre...
- </text>
- <text name="event_category">
- (sin categoría)
- </text>
- <text name="event_runby_label">
- Organizado por:
- </text>
- <text initial_value="(obteniendo)" name="event_runby"/>
- <text name="event_date_label">
- Fecha:
- </text>
- <text name="event_date">
- 10/10/2010
- </text>
- <text name="event_duration_label">
- Duración:
- </text>
- <text name="event_duration">
- 1 hora
- </text>
- <text name="event_covercharge_label">
- Entrada:
- </text>
- <text name="event_cover">
- Gratis
- </text>
- <text name="event_location_label">
- Localización:
- </text>
- <text name="event_location" value="SampleParcel, Name Long (145, 228, 26)"/>
- <text name="rating_label" value="Calificación:"/>
- <text name="rating_value" value="desconocida"/>
- <expandable_text name="event_desc">
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
- </expandable_text>
- </layout_panel>
- <layout_panel name="button_panel">
- <button name="create_event_btn" tool_tip="Crear el evento"/>
- <button name="god_delete_event_btn" tool_tip="Borrar el evento"/>
- <button label="Notificarme" name="notify_btn"/>
- <button label="Teleportar" name="teleport_btn"/>
- <button label="Mapa" name="map_btn"/>
- </layout_panel>
- </layout_stack>
+ <floater.string
+ name="done_text">
+ Done
+ </floater.string>
+ <web_browser
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="10"
+ name="browser"
+ height="365"
+ width="580"
+ top="0"/>
+ <text
+ follows="bottom|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="status_text"
+ top_pad="10"
+ width="150" />
</floater>
+
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index e9eda790dd..b4ac89b2d5 100644
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -2186,8 +2186,7 @@ Inténtalo seleccionando un trozo más pequeño de terreno.
[NAME]
[DATE]
<form name="form">
- <button name="Teleport" text="Teleportar"/>
- <button name="Description" text="Descripción"/>
+ <button name="Details" text="Detalles"/>
<button name="Cancel" text="Cancelar"/>
</form>
</notification>
diff --git a/indra/newview/skins/default/xui/fr/floater_event.xml b/indra/newview/skins/default/xui/fr/floater_event.xml
index b005ce3b36..72361c0c1a 100644
--- a/indra/newview/skins/default/xui/fr/floater_event.xml
+++ b/indra/newview/skins/default/xui/fr/floater_event.xml
@@ -1,69 +1,39 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Événement" name="Event" title="DÉTAILS SUR L&apos;ÉVÉNEMENT">
- <floater.string name="none">
- aucun
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ follows="all"
+ height="400"
+ can_resize="true"
+ help_topic="event_details"
+ label="Event"
+ layout="topleft"
+ name="Event"
+ save_rect="true"
+ save_visibility="false"
+ title="EVENT DETAILS"
+ width="600">
+ <floater.string
+ name="loading_text">
+ Chargement...
</floater.string>
- <floater.string name="notify">
- Prévenir
- </floater.string>
- <floater.string name="dont_notify">
- Ne pas prévenir
- </floater.string>
- <floater.string name="moderate">
- Modéré
- </floater.string>
- <floater.string name="adult">
- Adulte
- </floater.string>
- <floater.string name="general">
- Général
- </floater.string>
- <floater.string name="unknown">
- Inconnu
- </floater.string>
- <layout_stack name="layout">
- <layout_panel name="profile_stack">
- <text name="event_name">
- Nameless Event...of Doom! De doom! Doom doom.
- </text>
- <text name="event_category">
- (pas de catégorie)
- </text>
- <text name="event_runby_label">
- Organisé par :
- </text>
- <text initial_value="(récupération en cours)" name="event_runby"/>
- <text name="event_date_label">
- Date :
- </text>
- <text name="event_date">
- 10/10/2010
- </text>
- <text name="event_duration_label">
- Durée :
- </text>
- <text name="event_duration">
- 1 heure
- </text>
- <text name="event_covercharge_label">
- Prix :
- </text>
- <text name="event_cover">
- Gratuit
- </text>
- <text name="event_location_label">
- Lieu :
- </text>
- <text name="event_location" value="SampleParcel, Name Long (145, 228, 26)"/>
- <text name="rating_label" value="Catégorie :"/>
- <text name="rating_value" value="inconnu"/>
- </layout_panel>
- <layout_panel name="button_panel">
- <button name="create_event_btn" tool_tip="Créer un événement"/>
- <button name="god_delete_event_btn" tool_tip="Supprimer l&apos;événement"/>
- <button label="Me prévenir" name="notify_btn"/>
- <button label="Téléporter" name="teleport_btn"/>
- <button label="Carte" name="map_btn"/>
- </layout_panel>
- </layout_stack>
+ <floater.string
+ name="done_text">
+ Done
+ </floater.string>
+ <web_browser
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="10"
+ name="browser"
+ height="365"
+ width="580"
+ top="0"/>
+ <text
+ follows="bottom|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="status_text"
+ top_pad="10"
+ width="150" />
</floater>
+
diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml
index 259ac4cee6..0e25532863 100644
--- a/indra/newview/skins/default/xui/fr/notifications.xml
+++ b/indra/newview/skins/default/xui/fr/notifications.xml
@@ -2177,8 +2177,7 @@ Veuillez sélectionner un terrain plus petit.
[NAME]
[DATE]
<form name="form">
- <button name="Teleport" text="Téléporter"/>
- <button name="Description" text="Description"/>
+ <button name="Description" text="Détails"/>
<button name="Cancel" text="Annuler"/>
</form>
</notification>
diff --git a/indra/newview/skins/default/xui/it/floater_event.xml b/indra/newview/skins/default/xui/it/floater_event.xml
index a0807e04c9..177305e648 100644
--- a/indra/newview/skins/default/xui/it/floater_event.xml
+++ b/indra/newview/skins/default/xui/it/floater_event.xml
@@ -1,72 +1,39 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Evento" name="Event" title="DETTAGLI DELL&apos;EVENTO">
- <floater.string name="none">
- nessuno
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ follows="all"
+ height="400"
+ can_resize="true"
+ help_topic="event_details"
+ label="Event"
+ layout="topleft"
+ name="Event"
+ save_rect="true"
+ save_visibility="false"
+ title="EVENT DETAILS"
+ width="600">
+ <floater.string
+ name="loading_text">
+ Caricamento in corso...
</floater.string>
- <floater.string name="notify">
- Avvisare
- </floater.string>
- <floater.string name="dont_notify">
- Non avvisare
- </floater.string>
- <floater.string name="moderate">
- Moderato
- </floater.string>
- <floater.string name="adult">
- Adulto
- </floater.string>
- <floater.string name="general">
- Generale
- </floater.string>
- <floater.string name="unknown">
- Sconosciuto
- </floater.string>
- <layout_stack name="layout">
- <layout_panel name="profile_stack">
- <text name="event_name">
- Evento senza nome...di Doom De doom! Doom doom.
- </text>
- <text name="event_category">
- (nessuna categoria)
- </text>
- <text name="event_runby_label">
- Organizzato da:
- </text>
- <text initial_value="(recupero)" name="event_runby"/>
- <text name="event_date_label">
- Data:
- </text>
- <text name="event_date">
- 10/10/2010
- </text>
- <text name="event_duration_label">
- Durata:
- </text>
- <text name="event_duration">
- 1 ora
- </text>
- <text name="event_covercharge_label">
- Costo:
- </text>
- <text name="event_cover">
- Gratis
- </text>
- <text name="event_location_label">
- Luogo:
- </text>
- <text name="event_location" value="SampleParcel, Name Long (145, 228, 26)"/>
- <text name="rating_label" value="Categoria:"/>
- <text name="rating_value" value="sconosciuto"/>
- <expandable_text name="event_desc">
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
- </expandable_text>
- </layout_panel>
- <layout_panel name="button_panel">
- <button name="create_event_btn" tool_tip="Crea evento"/>
- <button name="god_delete_event_btn" tool_tip="Elimina evento"/>
- <button label="Avvisami" name="notify_btn"/>
- <button label="Teleport" name="teleport_btn"/>
- <button label="Mappa" name="map_btn"/>
- </layout_panel>
- </layout_stack>
+ <floater.string
+ name="done_text">
+ Done
+ </floater.string>
+ <web_browser
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="10"
+ name="browser"
+ height="365"
+ width="580"
+ top="0"/>
+ <text
+ follows="bottom|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="status_text"
+ top_pad="10"
+ width="150" />
</floater>
+
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index 474bdca55f..546c25ac7d 100644
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -2183,8 +2183,7 @@ Prova a selezionare una parte di terreno più piccola.
[NAME]
[DATE]
<form name="form">
- <button name="Teleport" text="Teleport"/>
- <button name="Description" text="Descrizione"/>
+ <button name="Details" text="Descrizione"/>
<button name="Cancel" text="Cancella"/>
</form>
</notification>
diff --git a/indra/newview/skins/default/xui/ja/floater_event.xml b/indra/newview/skins/default/xui/ja/floater_event.xml
index 671f9077d9..ec4188d300 100644
--- a/indra/newview/skins/default/xui/ja/floater_event.xml
+++ b/indra/newview/skins/default/xui/ja/floater_event.xml
@@ -1,69 +1,39 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="イベント" name="Event" title="イベント詳細">
- <floater.string name="none">
- なし
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ follows="all"
+ height="400"
+ can_resize="true"
+ help_topic="event_details"
+ label="Event"
+ layout="topleft"
+ name="Event"
+ save_rect="true"
+ save_visibility="false"
+ title="EVENT DETAILS"
+ width="600">
+ <floater.string
+ name="loading_text">
+ ローディング...
</floater.string>
- <floater.string name="notify">
- 知らせる
- </floater.string>
- <floater.string name="dont_notify">
- 知らせない
- </floater.string>
- <floater.string name="moderate">
- Moderate
- </floater.string>
- <floater.string name="adult">
- Adult
- </floater.string>
- <floater.string name="general">
- General
- </floater.string>
- <floater.string name="unknown">
- 不明
- </floater.string>
- <layout_stack name="layout">
- <layout_panel name="profile_stack">
- <text name="event_name">
- Nameless Event...of Doom! De doom! Doom doom.
- </text>
- <text name="event_category">
- (カテゴリなし)
- </text>
- <text name="event_runby_label">
- 主催者:
- </text>
- <text initial_value="(取得中)" name="event_runby"/>
- <text name="event_date_label">
- 日付:
- </text>
- <text name="event_date">
- 10/10/2010
- </text>
- <text name="event_duration_label">
- 期間:
- </text>
- <text name="event_duration">
- 1 時間
- </text>
- <text name="event_covercharge_label">
- カバーチャージ:
- </text>
- <text name="event_cover">
- 無料
- </text>
- <text name="event_location_label">
- 場所:
- </text>
- <text name="event_location" value="SampleParcel, Name Long (145, 228, 26)"/>
- <text name="rating_label" value="レーティング区分:"/>
- <text name="rating_value" value="不明"/>
- </layout_panel>
- <layout_panel name="button_panel">
- <button name="create_event_btn" tool_tip="イベント作成"/>
- <button name="god_delete_event_btn" tool_tip="イベント削除"/>
- <button label="知らせる" name="notify_btn"/>
- <button label="テレポート" name="teleport_btn"/>
- <button label="地図" name="map_btn"/>
- </layout_panel>
- </layout_stack>
+ <floater.string
+ name="done_text">
+ Done
+ </floater.string>
+ <web_browser
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="10"
+ name="browser"
+ height="365"
+ width="580"
+ top="0"/>
+ <text
+ follows="bottom|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="status_text"
+ top_pad="10"
+ width="150" />
</floater>
+
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index 709797cb58..d1a5e88d46 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -2231,8 +2231,7 @@ Web ページにリンクすると、他人がこの場所に簡単にアクセ
[NAME]
[DATE]
<form name="form">
- <button name="Teleport" text="テレポート"/>
- <button name="Description" text="説明"/>
+ <button name="Details" text="説明"/>
<button name="Cancel" text="取り消し"/>
</form>
</notification>
diff --git a/indra/newview/skins/default/xui/nl/notifications.xml b/indra/newview/skins/default/xui/nl/notifications.xml
index a282c267a1..a282c70364 100644
--- a/indra/newview/skins/default/xui/nl/notifications.xml
+++ b/indra/newview/skins/default/xui/nl/notifications.xml
@@ -2550,8 +2550,7 @@ Probeer een kleiner stuk land te selecteren.
[NAME]
[DATE]
<form name="form">
- <button name="Teleport" text="Teleport"/>
- <button name="Description" text="Omschrijving"/>
+ <button name="Details" text="Omschrijving"/>
<button name="Cancel" text="Annuleren"/>
</form>
</notification>
diff --git a/indra/newview/skins/default/xui/pl/floater_event.xml b/indra/newview/skins/default/xui/pl/floater_event.xml
index 80862bfd2f..632e0b8a44 100644
--- a/indra/newview/skins/default/xui/pl/floater_event.xml
+++ b/indra/newview/skins/default/xui/pl/floater_event.xml
@@ -1,72 +1,39 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="IMPREZA" name="Event" title="IMPREZA">
- <floater.string name="none">
- żadne
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ follows="all"
+ height="400"
+ can_resize="true"
+ help_topic="event_details"
+ label="Event"
+ layout="topleft"
+ name="Event"
+ save_rect="true"
+ save_visibility="false"
+ title="EVENT DETAILS"
+ width="600">
+ <floater.string
+ name="loading_text">
+ Ładowanie...
</floater.string>
- <floater.string name="notify">
- Zawiadom
- </floater.string>
- <floater.string name="dont_notify">
- Nie zawiadamiaj
- </floater.string>
- <floater.string name="moderate">
- Mature
- </floater.string>
- <floater.string name="adult">
- Adult
- </floater.string>
- <floater.string name="general">
- General
- </floater.string>
- <floater.string name="unknown">
- Nieznana
- </floater.string>
- <layout_stack name="layout">
- <layout_panel name="profile_stack">
- <text name="event_name">
- Brak nazwy dla wydarzenia.
- </text>
- <text name="event_category">
- (bez kategorii)
- </text>
- <text name="event_runby_label">
- Prowadzona przez:
- </text>
- <text initial_value="(przetwarzanie)" name="event_runby"/>
- <text name="event_date_label">
- Data:
- </text>
- <text name="event_date">
- 10/10/2010
- </text>
- <text name="event_duration_label">
- Długość:
- </text>
- <text name="event_duration">
- 1 godzina
- </text>
- <text name="event_covercharge_label">
- Opłata:
- </text>
- <text name="event_cover">
- Bez opłaty
- </text>
- <text name="event_location_label">
- Lokalizacja:
- </text>
- <text name="event_location" value="SampleParcel, Name Long (145, 228, 26)"/>
- <text name="rating_label" value="Rodzaj:"/>
- <text name="rating_value" value="nieznane"/>
- <expandable_text name="event_desc">
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
- </expandable_text>
- </layout_panel>
- <layout_panel name="button_panel">
- <button name="create_event_btn" tool_tip="Stwórz imprezę"/>
- <button name="god_delete_event_btn" tool_tip="Skasuj imprezę"/>
- <button label="Zawiadom mnie" name="notify_btn"/>
- <button label="Teleportuj" name="teleport_btn"/>
- <button label="Mapa" name="map_btn"/>
- </layout_panel>
- </layout_stack>
+ <floater.string
+ name="done_text">
+ Done
+ </floater.string>
+ <web_browser
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="10"
+ name="browser"
+ height="365"
+ width="580"
+ top="0"/>
+ <text
+ follows="bottom|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="status_text"
+ top_pad="10"
+ width="150" />
</floater>
+
diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml
index 7fcd7b5e04..02de82dd53 100644
--- a/indra/newview/skins/default/xui/pl/notifications.xml
+++ b/indra/newview/skins/default/xui/pl/notifications.xml
@@ -2153,8 +2153,7 @@ Spróbuj wybrać mniejszy obszar.
[NAME]
[DATE]
<form name="form">
- <button name="Teleport" text="Teleportuj"/>
- <button name="Description" text="Opis"/>
+ <button name="Details" text="Opis"/>
<button name="Cancel" text="Anuluj"/>
</form>
</notification>
diff --git a/indra/newview/skins/default/xui/pt/floater_event.xml b/indra/newview/skins/default/xui/pt/floater_event.xml
index 1cd4dcbda4..548c0bff86 100644
--- a/indra/newview/skins/default/xui/pt/floater_event.xml
+++ b/indra/newview/skins/default/xui/pt/floater_event.xml
@@ -1,72 +1,39 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater label="Evento" name="Event" title="DETALHES DO EVENTO">
- <floater.string name="none">
- nenhum
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ follows="all"
+ height="400"
+ can_resize="true"
+ help_topic="event_details"
+ label="Event"
+ layout="topleft"
+ name="Event"
+ save_rect="true"
+ save_visibility="false"
+ title="EVENT DETAILS"
+ width="600">
+ <floater.string
+ name="loading_text">
+ Carregando...
</floater.string>
- <floater.string name="notify">
- Avisar
- </floater.string>
- <floater.string name="dont_notify">
- Não avisar
- </floater.string>
- <floater.string name="moderate">
- Moderado
- </floater.string>
- <floater.string name="adult">
- Adulto
- </floater.string>
- <floater.string name="general">
- Público geral
- </floater.string>
- <floater.string name="unknown">
- Desconhecido
- </floater.string>
- <layout_stack name="layout">
- <layout_panel name="profile_stack">
- <text name="event_name">
- Evento sem nome... Terror! Terror Aterrorizante.
- </text>
- <text name="event_category">
- (não categorizado)
- </text>
- <text name="event_runby_label">
- Organização:
- </text>
- <text initial_value="(pesquisando)" name="event_runby"/>
- <text name="event_date_label">
- Data:
- </text>
- <text name="event_date">
- 10/10/2010
- </text>
- <text name="event_duration_label">
- Duração:
- </text>
- <text name="event_duration">
- 1 hora
- </text>
- <text name="event_covercharge_label">
- Cover:
- </text>
- <text name="event_cover">
- Grátis
- </text>
- <text name="event_location_label">
- Localização:
- </text>
- <text name="event_location" value="LoteExemplo, Nome extenso (145, 228, 26)"/>
- <text name="rating_label" value="Classificação:"/>
- <text name="rating_value" value="(Desconhecido)"/>
- <expandable_text name="event_desc">
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
- </expandable_text>
- </layout_panel>
- <layout_panel name="button_panel">
- <button name="create_event_btn" tool_tip="Criar evento"/>
- <button name="god_delete_event_btn" tool_tip="Excluir evento"/>
- <button label="Avise-me" name="notify_btn"/>
- <button label="Teletransportar" name="teleport_btn"/>
- <button label="Mapa" name="map_btn"/>
- </layout_panel>
- </layout_stack>
+ <floater.string
+ name="done_text">
+ Done
+ </floater.string>
+ <web_browser
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="10"
+ name="browser"
+ height="365"
+ width="580"
+ top="0"/>
+ <text
+ follows="bottom|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="status_text"
+ top_pad="10"
+ width="150" />
</floater>
+
diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml
index a6645d8b13..19269bbc1c 100644
--- a/indra/newview/skins/default/xui/pt/notifications.xml
+++ b/indra/newview/skins/default/xui/pt/notifications.xml
@@ -2165,8 +2165,7 @@ Selecione o residente da lista e clique em &apos;MI&apos; na parte de baixo do p
[NAME]
[DATE]
<form name="form">
- <button name="Teleport" text="Teletransporte"/>
- <button name="Description" text="Descrição"/>
+ <button name="Details" text="Descrição"/>
<button name="Cancel" text="Cancelar"/>
</form>
</notification>