diff options
* Script prototype
Diffstat (limited to 'OpenSim.RegionServer/CAPS/AdminWebFront.cs')
-rw-r--r-- | OpenSim.RegionServer/CAPS/AdminWebFront.cs | 98 |
1 files changed, 72 insertions, 26 deletions
diff --git a/OpenSim.RegionServer/CAPS/AdminWebFront.cs b/OpenSim.RegionServer/CAPS/AdminWebFront.cs index 7f00225..43996d0 100644 --- a/OpenSim.RegionServer/CAPS/AdminWebFront.cs +++ b/OpenSim.RegionServer/CAPS/AdminWebFront.cs | |||
@@ -7,6 +7,8 @@ using OpenSim.UserServer; | |||
7 | using OpenSim.Servers; | 7 | using OpenSim.Servers; |
8 | using OpenSim.Assets; | 8 | using OpenSim.Assets; |
9 | using OpenSim.Framework.Inventory; | 9 | using OpenSim.Framework.Inventory; |
10 | using libsecondlife; | ||
11 | using OpenSim.RegionServer.world.scripting; | ||
10 | 12 | ||
11 | namespace OpenSim.CAPS | 13 | namespace OpenSim.CAPS |
12 | { | 14 | { |
@@ -34,7 +36,10 @@ namespace OpenSim.CAPS | |||
34 | server.AddRestHandler("GET", "/Admin", GetAdminPage); | 36 | server.AddRestHandler("GET", "/Admin", GetAdminPage); |
35 | server.AddRestHandler("GET", "/Admin/Welcome", GetWelcomePage); | 37 | server.AddRestHandler("GET", "/Admin/Welcome", GetWelcomePage); |
36 | server.AddRestHandler("GET", "/Admin/Accounts", GetAccountsPage ); | 38 | server.AddRestHandler("GET", "/Admin/Accounts", GetAccountsPage ); |
37 | server.AddRestHandler("GET", "/Admin/Clients", GetConnectedClientsPage ); | 39 | server.AddRestHandler("GET", "/Admin/Clients", GetConnectedClientsPage); |
40 | server.AddRestHandler("GET", "/Admin/Entities", GetEntitiesPage); | ||
41 | server.AddRestHandler("GET", "/Admin/Scripts", GetScriptsPage); | ||
42 | server.AddRestHandler("GET", "/Admin/AddTestScript", AddTestScript ); | ||
38 | server.AddRestHandler("GET", "/ClientInventory", GetClientsInventory); | 43 | server.AddRestHandler("GET", "/ClientInventory", GetClientsInventory); |
39 | 44 | ||
40 | server.AddRestHandler("POST", "/Admin/NewAccount", PostNewAccount ); | 45 | server.AddRestHandler("POST", "/Admin/NewAccount", PostNewAccount ); |
@@ -133,6 +138,68 @@ namespace OpenSim.CAPS | |||
133 | return responseString; | 138 | return responseString; |
134 | } | 139 | } |
135 | 140 | ||
141 | |||
142 | private class TestScript : Script | ||
143 | { | ||
144 | int toggle = 0; | ||
145 | |||
146 | public TestScript() | ||
147 | : base(LLUUID.Random()) | ||
148 | { | ||
149 | OnFrame += MyOnFrame; | ||
150 | } | ||
151 | |||
152 | private void MyOnFrame(IScriptContext context) | ||
153 | { | ||
154 | toggle = 2 - toggle; | ||
155 | |||
156 | LLVector3 pos = context.GetPos(); | ||
157 | |||
158 | pos.X += (toggle - 1); | ||
159 | |||
160 | context.MoveTo(pos); | ||
161 | } | ||
162 | } | ||
163 | |||
164 | private string AddTestScript(string request, string path) | ||
165 | { | ||
166 | int index = path.LastIndexOf('/'); | ||
167 | |||
168 | string lluidStr = path.Substring(index+1); | ||
169 | |||
170 | LLUUID id; | ||
171 | |||
172 | if( LLUUID.TryParse( lluidStr, out id ) ) | ||
173 | { | ||
174 | // This is just here for concept purposes... Remove! | ||
175 | m_world.AddScript( m_world.Entities[id], new TestScript()); | ||
176 | return String.Format("Added new script to object [{0}]", id); | ||
177 | } | ||
178 | else | ||
179 | { | ||
180 | return String.Format("Couldn't parse [{0}]", lluidStr ); | ||
181 | } | ||
182 | } | ||
183 | |||
184 | private string GetScriptsPage(string request, string path) | ||
185 | { | ||
186 | return String.Empty; | ||
187 | } | ||
188 | |||
189 | private string GetEntitiesPage(string request, string path) | ||
190 | { | ||
191 | string responseString; | ||
192 | responseString = " <p> Listing current entities</p><ul>"; | ||
193 | |||
194 | foreach (Entity entity in m_world.Entities.Values) | ||
195 | { | ||
196 | string testScriptLink = "javascript:loadXMLDoc('Admin/AddTestScript/" + entity.uuid.ToString() + "');"; | ||
197 | responseString += String.Format( "<li>[{0}] \"{1}\" @ {2} <a href=\"{3}\">add test script</a></li>", entity.uuid, entity.getName(), entity.position, testScriptLink ); | ||
198 | } | ||
199 | responseString += "</ul>"; | ||
200 | return responseString; | ||
201 | } | ||
202 | |||
136 | private string GetClientsInventory(string request, string path) | 203 | private string GetClientsInventory(string request, string path) |
137 | { | 204 | { |
138 | string[] line; | 205 | string[] line; |
@@ -187,38 +254,17 @@ namespace OpenSim.CAPS | |||
187 | try | 254 | try |
188 | { | 255 | { |
189 | StreamReader SR; | 256 | StreamReader SR; |
190 | string lines; | 257 | |
191 | AdminPage = ""; | ||
192 | NewAccountForm = ""; | ||
193 | LoginForm = ""; | ||
194 | SR = File.OpenText("testadmin.htm"); | 258 | SR = File.OpenText("testadmin.htm"); |
195 | 259 | AdminPage = SR.ReadToEnd(); | |
196 | while (!SR.EndOfStream) | ||
197 | { | ||
198 | lines = SR.ReadLine(); | ||
199 | AdminPage += lines + "\n"; | ||
200 | |||
201 | } | ||
202 | SR.Close(); | 260 | SR.Close(); |
203 | 261 | ||
204 | SR = File.OpenText("newaccountform.htm"); | 262 | SR = File.OpenText("newaccountform.htm"); |
205 | 263 | NewAccountForm = SR.ReadToEnd(); | |
206 | while (!SR.EndOfStream) | ||
207 | { | ||
208 | lines = SR.ReadLine(); | ||
209 | NewAccountForm += lines + "\n"; | ||
210 | |||
211 | } | ||
212 | SR.Close(); | 264 | SR.Close(); |
213 | 265 | ||
214 | SR = File.OpenText("login.htm"); | 266 | SR = File.OpenText("login.htm"); |
215 | 267 | LoginForm = SR.ReadToEnd(); | |
216 | while (!SR.EndOfStream) | ||
217 | { | ||
218 | lines = SR.ReadLine(); | ||
219 | LoginForm += lines + "\n"; | ||
220 | |||
221 | } | ||
222 | SR.Close(); | 268 | SR.Close(); |
223 | } | 269 | } |
224 | catch (Exception e) | 270 | catch (Exception e) |