Changeset 953ed23fed4eda5a6fd19c7ca7f4b67533e9af62
- Timestamp:
- 11/18/07 13:20:58 (1 year ago)
- git-parent:
- Files:
-
- db/updates.xml (modified) (1 diff)
- src/net/driftingsouls/ds2/server/AdminCommands.java (modified) (6 diffs)
- src/net/driftingsouls/ds2/server/framework/pipeline/generators/DSGenerator.java (modified) (12 diffs)
- src/net/driftingsouls/ds2/server/modules/ActivateAllController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/AdminController.java (modified) (3 diffs)
- src/net/driftingsouls/ds2/server/modules/AllyController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/AllyListController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/AngriffController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/BaseController.java (modified) (2 diffs)
- src/net/driftingsouls/ds2/server/modules/BuildController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/BuildingController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/BuildingsController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/ChoffController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/ColonizeController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/ComNetController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/CommController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/CoreController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/CrewtauschController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/DeutAllController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/DeutSammelnController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/ErsteigernController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/ForschinfoController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/GtuZwischenLagerController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/HandelController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/ItemInfoController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/KapernController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/MainController.java (modified) (4 diffs)
- src/net/driftingsouls/ds2/server/modules/SchiffController.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/admin/AdminConsole.java (modified) (1 diff)
- templates/comm.html (modified) (1 diff)
- templates/handel.html (modified) (1 diff)
- templates/options.html (modified) (1 diff)
- web/WEB-INF/cfg/hibernatemappings.xml (modified) (1 diff)
- web/WEB-INF/cfg/pipeline.xml (modified) (2 diffs)
- web/format.css (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
db/updates.xml
rf082126 r953ed23 427 427 UPDATE ships SET modules=(SELECT id FROM ships_modules WHERE ships_modules.id=ships.id); 428 428 ]]></update> 429 <update type="structure" datum="2007-11-11"><![CDATA[ 430 CREATE TABLE `gui_help` ( 431 `page` varchar(30) NOT NULL, 432 `text` text, 433 PRIMARY KEY (`page`) 434 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 435 ]]></update> 429 436 </updates> src/net/driftingsouls/ds2/server/AdminCommands.java
r8f9e522 r953ed23 60 60 61 61 import org.apache.commons.lang.StringUtils; 62 import org.apache.commons.lang.math.NumberUtils; 62 63 63 64 /** … … 129 130 org.hibernate.Session db = context.getDB(); 130 131 132 if( !NumberUtils.isNumber(command[1]) ) { 133 return "Ungueltige Schiffs-ID"; 134 } 135 131 136 int sid = Integer.parseInt(command[1]); 132 137 … … 137 142 138 143 if( command[2].equals("heat") ) { 144 if( !NumberUtils.isNumber(command[3]) ) { 145 return "Ueberhitzung ungueltig"; 146 } 139 147 ship.setHeat(Integer.parseInt(command[3])); 140 148 } 141 149 else if( command[2].equals("e") ) { 150 if( !NumberUtils.isNumber(command[3]) ) { 151 return "Energie ungueltig"; 152 } 142 153 ship.setEnergy(Integer.parseInt(command[3])); 143 154 } … … 158 169 } 159 170 else if( command[2].equals("hull") ) { 171 if( !NumberUtils.isNumber(command[3]) ) { 172 return "Huelle ungueltig"; 173 } 160 174 ship.setHull(Integer.parseInt(command[3])); 161 175 } 162 176 else if( command[2].equals("shields") ) { 177 if( !NumberUtils.isNumber(command[3]) ) { 178 return "Schilde ungueltig"; 179 } 163 180 ship.setShields(Integer.parseInt(command[3])); 164 181 } 165 182 else if( command[2].equals("crew") ) { 183 if( !NumberUtils.isNumber(command[3]) ) { 184 return "Crew ungueltig"; 185 } 166 186 ship.setCrew(Integer.parseInt(command[3])); 167 187 } … … 188 208 } 189 209 else if( command[2].equals("additemmodule") ) { 210 if( !NumberUtils.isNumber(command[3]) ) { 211 return "Slot ungueltig"; 212 } 190 213 int slot = Integer.parseInt(command[3]); 214 215 if( !NumberUtils.isNumber(command[3]) ) { 216 return "Item-ID ungueltig"; 217 } 191 218 int item = Integer.parseInt(command[4]); 192 219 … … 240 267 241 268 String oid = command[1]; 242 ResourceID resid = Resources.fromString(command[2]); 269 ResourceID resid = null; 270 try { 271 Resources.fromString(command[2]); 272 } 273 catch( RuntimeException e ) { 274 return "Die angegebene Resource ist ungueltig"; 275 } 276 277 if( !NumberUtils.isNumber(command[3]) ) { 278 return "Menge ungueltig"; 279 } 243 280 long count = Long.parseLong(command[3]); 244 281 245 282 org.hibernate.Session db = context.getDB(); 283 284 if( !NumberUtils.isNumber(oid.substring(1)) ) { 285 return "ID ungueltig"; 286 } 246 287 247 288 Cargo cargo = null; src/net/driftingsouls/ds2/server/framework/pipeline/generators/DSGenerator.java
ra65fe41 r953ed23 45 45 protected static abstract class OutputHelper { 46 46 private Context context = null; 47 private Map<String, String> attributes = new HashMap<String,String>();47 private Map<String,Object> attributes = new HashMap<String,Object>(); 48 48 49 49 /** … … 76 76 * @param value Der Wert 77 77 */ 78 public final void setAttribute(String key, Stringvalue) {78 public final void setAttribute(String key, Object value) { 79 79 this.attributes.put(key, value); 80 80 } … … 85 85 * @return Der Wert 86 86 */ 87 public final StringgetAttribute(String key) {87 public final Object getAttribute(String key) { 88 88 return this.attributes.get(key); 89 89 } … … 103 103 * <ul> 104 104 * <li><code>header</code> - String mit weiteren Header-Text 105 * <li><code>module</code> - Das gerade ausgefuehrte Modul 106 * <li><code>pagetitle</code> - Der Titel der Seite 107 * <li><code>pagemenu</code> - Eine Liste von Menueeintraegen fuer die Seite 105 108 * </ul> 106 109 * … … 161 164 sb.append("}\n"); 162 165 sb.append("}\n"); 166 167 if( this.getAttribute("module") != null ) { 168 sb.append("if( parent && parent.setCurrentPage ) {\n"); 169 sb.append("parent.setCurrentPage('"+this.getAttribute("module")+"','"+this.getAttribute("pagetitle")+"');\n"); 170 PageMenuEntry[] entries = (PageMenuEntry[])this.getAttribute("pagemenu"); 171 if( (entries != null) && (entries.length > 0) ) { 172 for( int i=0; i < entries.length; i++ ) { 173 sb.append("parent.addPageMenuEntry('"+entries[i].title+"','"+entries[i].url.replace("&", "&")+"');"); 174 } 175 } 176 sb.append("parent.completePage();"); 177 sb.append("}\n"); 178 } 179 163 180 sb.append("// -->\n"); 164 181 sb.append("</script>\n"); … … 219 236 } 220 237 238 private static class PageMenuEntry { 239 String title; 240 String url; 241 242 PageMenuEntry(String title, String url) { 243 this.title = title; 244 this.url = url; 245 } 246 } 247 221 248 private ActionType actionType; 222 249 private OutputHelper actionTypeHandler; … … 231 258 private String subParameter; 232 259 private List<String> preloadUserValues; 260 private String pageTitle; 261 private List<PageMenuEntry> pageMenuEntries; 262 private boolean disablePageMenu; 233 263 234 264 /** … … 239 269 super(context); 240 270 241 parameter = new HashMap<String,Object>();242 subParameter = "";271 this.parameter = new HashMap<String,Object>(); 272 this.subParameter = ""; 243 273 244 274 parameterString("sess"); … … 247 277 parameterString("_style"); 248 278 249 startTime = System.currentTimeMillis(); 250 251 disableDebugOutput = false; 252 requireValidSession = true; 253 disableDefaultCSS = false; 254 255 onLoadFunctions = new ArrayList<String>(); 256 bodyParameters = new HashMap<String,String>(); 257 258 preloadUserValues = new ArrayList<String>(); 259 preloadUserValues.add("id"); 279 this.startTime = System.currentTimeMillis(); 280 281 this.disableDebugOutput = false; 282 this.requireValidSession = true; 283 this.disableDefaultCSS = false; 284 285 this.onLoadFunctions = new ArrayList<String>(); 286 this.bodyParameters = new HashMap<String,String>(); 287 288 this.preloadUserValues = new ArrayList<String>(); 289 this.preloadUserValues.add("id"); 290 291 this.pageTitle = null; 292 this.pageMenuEntries = new ArrayList<PageMenuEntry>(); 293 this.disablePageMenu = false; 260 294 261 295 setActionType(ActionType.DEFAULT); … … 500 534 } 501 535 536 if( !this.disablePageMenu ) { 537 actionTypeHandler.setAttribute("module", getString("module")); 538 actionTypeHandler.setAttribute("pagetitle", this.pageTitle); 539 actionTypeHandler.setAttribute("pagemenu", this.pageMenuEntries.toArray(new PageMenuEntry[this.pageMenuEntries.size()])); 540 } 502 541 actionTypeHandler.printHeader(); 503 542 … … 514 553 515 554 protected void printHeader( String action ) { 555 if( !this.disablePageMenu ) { 556 actionTypeHandler.setAttribute("module", getString("module")); 557 actionTypeHandler.setAttribute("pagetitle", this.pageTitle); 558 actionTypeHandler.setAttribute("pagemenu", this.pageMenuEntries.toArray(new PageMenuEntry[this.pageMenuEntries.size()])); 559 } 560 516 561 actionTypeHandler.printHeader(); 517 562 } … … 560 605 public boolean getDisableDefaultCSS() { 561 606 return disableDefaultCSS; 607 } 608 609 /** 610 * Setzt die Bezeichnung der aktuellen Seite 611 * @param title Die Bezeichnung 612 */ 613 public void setPageTitle(String title) { 614 this.pageTitle = title; 615 } 616 617 /** 618 * Fuegt dem Seitenmenue einen Eintrag hinzu 619 * @param title Die Titel des Eintrags 620 * @param url Die URL 621 */ 622 public void addPageMenuEntry(String title, String url) { 623 this.pageMenuEntries.add(new PageMenuEntry(title, url)); 624 } 625 626 /** 627 * Setzt, ob das Seitenmenue nicht verwendet werden soll 628 * @param value <code>true</code>, falls es nicht verwendet werden soll 629 */ 630 public void setDisablePageMenu(boolean value) { 631 this.disablePageMenu = value; 562 632 } 563 633 src/net/driftingsouls/ds2/server/modules/ActivateAllController.java
r7375108 r953ed23 52 52 parameterNumber("col"); 53 53 parameterNumber("deaconly"); 54 55 setPageTitle("Alles Aktivieren"); 54 56 } 55 57 src/net/driftingsouls/ds2/server/modules/AdminController.java
refe50c3 r953ed23 127 127 128 128 if( this.getInteger("cleanpage") > 0 ) { 129 this.setDisableDebugOutput(true); 129 this.setDisableDebugOutput(true); 130 this.setDisablePageMenu(true); 130 131 } 131 132 132 133 return true; 134 } 135 136 /** 137 * Fuehrt ein Admin-Plugin aus 138 */ 139 @Action(ActionType.AJAX) 140 public void ajaxAction() { 141 int act = getInteger("act"); 142 String page = getString("page"); 143 String namedplugin = getString("namedplugin"); 144 145 if( page.length() > 0 || namedplugin.length() > 0 ) { 146 if( act > 0 ) { 147 callPlugin(page, act); 148 } 149 else if( (namedplugin.length() > 0) && (validPlugins.contains(namedplugin)) ) { 150 callNamedPlugin(namedplugin); 151 } 152 } 133 153 } 134 154 … … 184 204 } 185 205 if( act > 0 ) { 186 if( this.menu.containsKey(page) && (this.menu.get(page).actions.size() > 0) ) { 187 List<MenuEntry> actions = this.menu.get(page).actions; 188 if( act <= actions.size() ) { 189 Class<? extends AdminPlugin> cls = actions.get(act-1).cls; 190 try { 191 AdminPlugin plugin; 192 plugin = cls.newInstance(); 193 plugin.output(this, page, act); 194 } 195 catch( InstantiationException e ) { 196 addError("Fehler beim Aufruf des Admin-Plugins: "+e); 197 } 198 catch( IllegalAccessException e ) { 199 addError("Fehler beim Aufruf des Admin-Plugins: "+e); 200 } 201 } 202 } 206 callPlugin(page, act); 203 207 } 204 208 else if( (namedplugin.length() > 0) && (validPlugins.contains(namedplugin)) ) { 205 try { 206 Class<? extends AdminPlugin> aClass = null; 207 for( String aPage : this.menu.keySet() ) { 208 List<MenuEntry> actions = this.menu.get(aPage).actions; 209 for( int aAction=0; aAction < actions.size(); aAction++ ) { 210 if( actions.get(aAction).cls.getName().equals(namedplugin) ) { 211 aClass = actions.get(aAction).cls; 212 page = aPage; 213 act = aAction+1; 214 break; 215 } 216 } 217 } 218 219 AdminPlugin plugin = aClass.newInstance(); 220 plugin.output(this, page, act); 221 } 222 catch( Exception e ) { 223 addError("Fehler beim Aufruf des Admin-Plugins: "+e); 224 e.printStackTrace(); 225 } 209 callNamedPlugin(namedplugin); 226 210 } 227 211 … … 231 215 } 232 216 } 217 218 private void callNamedPlugin(String namedplugin) { 219 try { 220 int act = 0; 221 String page = ""; 222 223 Class<? extends AdminPlugin> aClass = null; 224 for( String aPage : this.menu.keySet() ) { 225 List<MenuEntry> actions = this.menu.get(aPage).actions; 226 for( int aAction=0; aAction < actions.size(); aAction++ ) { 227 if( actions.get(aAction).cls.getName().equals(namedplugin) ) { 228 aClass = actions.get(aAction).cls; 229 page = aPage; 230 act = aAction+1; 231 break; 232 } 233 } 234 } 235 236 AdminPlugin plugin = aClass.newInstance(); 237 plugin.output(this, page, act); 238 } 239 catch( Exception e ) { 240 addError("Fehler beim Aufruf des Admin-Plugins: "+e); 241 e.printStackTrace(); 242 } 243 } 244 245 private void callPlugin(String page, int act) { 246 if( this.menu.containsKey(page) && (this.menu.get(page).actions.size() > 0) ) { 247 List<MenuEntry> actions = this.menu.get(page).actions; 248 if( act <= actions.size() ) { 249 Class<? extends AdminPlugin> cls = actions.get(act-1).cls; 250 try { 251 AdminPlugin plugin; 252 plugin = cls.newInstance(); 253 plugin.output(this, page, act); 254 } 255 catch( InstantiationException e ) { 256 addError("Fehler beim Aufruf des Admin-Plugins: "+e); 257 } 258 catch( IllegalAccessException e ) { 259 addError("Fehler beim Aufruf des Admin-Plugins: "+e); 260 } 261 } 262 } 263 } 233 264 } src/net/driftingsouls/ds2/server/modules/AllyController.java
rd9e8da0 r953ed23 70 70 71 71 parameterString("show"); 72 73 setPageTitle("Allianz"); 72 74 } 73 75 src/net/driftingsouls/ds2/server/modules/AllyListController.java
ra6d36b9 r953ed23 48 48 49 49 setTemplate("allylist.html"); 50 51 setPageTitle("Allianzliste"); 50 52 } 51 53 src/net/driftingsouls/ds2/server/modules/AngriffController.java
rd9e8da0 r953ed23 160 160 161 161 setTemplate("angriff.html"); 162 163 setPageTitle("Schlacht"); 162 164 } 163 165 src/net/driftingsouls/ds2/server/modules/BaseController.java
r7375108 r953ed23 61 61 setTemplate("base.html"); 62 62 63 parameterNumber("col"); 63 parameterNumber("col"); 64 65 setPageTitle("Basis"); 64 66 } 65 67 … … 78 80 79 81 base.getCargo().setOption( Cargo.Option.LINKCLASS, "schiffwaren" ); 82 83 setPageTitle(Common._plaintitle(base.getName())); 80 84 81 85 return true; src/net/driftingsouls/ds2/server/modules/BuildController.java
r7375108 r953ed23 58 58 parameterNumber("col"); 59 59 parameterNumber("field"); 60 61 setPageTitle("Bauen"); 60 62 } 61 63 src/net/driftingsouls/ds2/server/modules/BuildingController.java
r34f5892 r953ed23 52 52 53 53 parameterNumber("col"); 54 parameterNumber("field"); 54 parameterNumber("field"); 55 56 setPageTitle("Gebäude"); 55 57 } 56 58 src/net/driftingsouls/ds2/server/modules/BuildingsController.java
r7375108 r953ed23 54 54 55 55 parameterNumber("col"); 56 parameterNumber("field"); 56 parameterNumber("field"); 57 58 setPageTitle("Gebäude"); 57 59 } 58 60 src/net/driftingsouls/ds2/server/modules/ChoffController.java
r7375108 r953ed23 47 47 setTemplate("choff.html"); 48 48 49 parameterNumber("off"); 49 parameterNumber("off"); 50 51 setPageTitle("Offizier"); 50 52 } 51 53 src/net/driftingsouls/ds2/server/modules/ColonizeController.java
r7375108 r953ed23 64 64 parameterNumber("ship"); 65 65 parameterNumber("col"); 66 67 setPageTitle("Kolonisieren"); 66 68 } 67 69 src/net/driftingsouls/ds2/server/modules/ComNetController.java
r29c70d8 r953ed23 59 59 setTemplate("comnet.html"); 60 60 61 parameterNumber("channel"); 61 parameterNumber("channel"); 62 63 setPageTitle("Com-Net"); 62 64 } 63 65 src/net/driftingsouls/ds2/server/modules/CommController.java
r1a0c3f8 r953ed23 65 65 66 66 setTemplate("comm.html"); 67 68 setPageTitle("PMs"); 69 addPageMenuEntry("Neue Nachricht", Common.buildUrl("default", "to", 0)); 70 addPageMenuEntry("Posteingang", Common.buildUrl("showInbox")); 71 addPageMenuEntry("Postausgang", Common.buildUrl("showOutbox")); 67 72 } 68 73 src/net/driftingsouls/ds2/server/modules/CoreController.java
r7375108 r953ed23 52 52 setTemplate("core.html"); 53 53 54 parameterNumber("col"); 54 parameterNumber("col"); 55 56 setPageTitle("Core"); 55 57 } 56 58 src/net/driftingsouls/ds2/server/modules/CrewtauschController.java
r390f9f1 r953ed23 217 217 parameterNumber("tar"); 218 218 parameterString("mode"); 219 220 setPageTitle("Crewtransfer"); 219 221 } 220 222 src/net/driftingsouls/ds2/server/modules/DeutAllController.java
rfda3b6d r953ed23 54 54 55 55 setTemplate("deutall.html"); 56 57 setPageTitle("Deut. sammeln"); 56 58 } 57 59 src/net/driftingsouls/ds2/server/modules/DeutSammelnController.java
r7375108 r953ed23 55 55 56 56 parameterNumber("ship"); 57 58 setPageTitle("Deut. sammeln"); 57 59 } 58 60 src/net/driftingsouls/ds2/server/modules/ErsteigernController.java
rf4821b7 r953ed23 387 387 388 388 parameterNumber("faction"); 389 390 setPageTitle("Fraktionen"); 389 391 } 390 392 src/net/driftingsouls/ds2/server/modules/ForschinfoController.java
r7375108 r953ed23 63 63 64 64 parameterNumber("res"); 65 66 setPageTitle("Forschung"); 65 67 } 66 68 src/net/driftingsouls/ds2/server/modules/GtuZwischenLagerController.java
r7375108 r953ed23 75 75 76 76 parameterNumber("ship"); 77 78<
