/* this belongs to the WebRaveler package */ package webraveler.vurl; import java.util.*; import webraveler.http.HTTPRequest; import webraveler.http.HTTPResponse; import webraveler.ravel.Raveler; import webraveler.ravel.RavelerException; import webraveler.ravel.RavelerPlugin; import webraveler.ravel.RavelerUser; /** * Provides facilities for changing the configuration of the given user * * @author The Web Raveler Development Squad * @version 1.0 */ public class UserConfigVURL implements VURL { String message; /** * */ public UserConfigVURL () { message = new String(""); } // UserConfigVURL() /** * Displays a form that allows users to change the plugins activated, deactivated, disabled, and enabled * and change the execution sequence plugins */ public HTTPResponse resolveVURL(String username, String query, HTTPRequest request, Raveler ravel) { /* Get the RavelerUser for the given username */ RavelerUser user = null; String responseString = new String(""); try { user = ravel.getUser(username); responseString += "" + Raveler.ravelerCSS; responseString += "Web Raveler Configuration for " + username + ""; responseString += "" + message; message = ""; responseString += "

Web Raveler Configuration for " + username + "

"; /* Display the form for activating plugins */ /* Get the active plugins and display */ /* Try displaying with checkboxes */ boolean displayed = false; //determine whether the form has been displayed (i.e. there are plugins to activate) int pluginNum=0; if (!user.activePlugins.isEmpty()) { displayed = true; responseString += "

Plugin Activation

"; responseString += "
"; responseString += ""; for (Enumeration f = user.activePlugins.elements() ; f.hasMoreElements() ;) { String pluginName = (String) f.nextElement(); responseString += ""; responseString += ""; responseString += ""; pluginNum++; } // for } // if /* Get the available plugins and display if not activated */ for (Enumeration g = ravel.getPlugins() ; g.hasMoreElements() ; ) { RavelerPlugin plugin = (RavelerPlugin) g.nextElement(); if (!user.activePlugins.contains(plugin.name) && !user.getStatus(plugin.name).equals("disabled")) { if (!displayed) { responseString += "

Plugin Activation

"; responseString += ""; responseString += "
 "+pluginName+"
"; displayed = true; } responseString += ""; responseString += ""; responseString += ""; } //if } // for if (displayed) { responseString += "
 "+plugin.name+"

"; responseString += ""; responseString += ""; responseString += "
 
"; /* Display a button for activating all the plugins */ responseString += "
"; responseString += ""; responseString += ""; responseString += ""; responseString += "
 
"; /* Display a button for deactivating all the plugins */ responseString += ""; responseString += ""; responseString += ""; responseString += ""; responseString += "
 
"; } //if /* Display the form for changing the plugins sequence */ if (!user.activePlugins.isEmpty()) { responseString += "

Plugins Sequence

"; responseString += "
"; responseString += ""; int counter=1; for (Enumeration j = user.activePlugins.elements() ; j.hasMoreElements() ;) { String pluginName = (String) j.nextElement(); responseString += ""; responseString += ""; } // for responseString += "
 "+pluginName+"

"; responseString += ""; responseString += ""; responseString += ""; responseString += "
 
"; } // if /* Display form for enabling plugins */ displayed = false; for (Enumeration g = ravel.getPlugins() ; g.hasMoreElements() ;) { RavelerPlugin plugin = (RavelerPlugin) g.nextElement(); if (user.getStatus(plugin.name).equals("disabled")) { if (!displayed) { responseString += "

Enable Plugins

"; responseString += "
"; responseString += ""; displayed = true; } //if responseString += ""; responseString += ""; responseString += ""; } //if } // for if (displayed) { responseString += "
 "+plugin.name+"

"; responseString += ""; responseString += ""; responseString += "
 
"; /* Display a button for enabling all the plugins */ responseString += ""; responseString += ""; responseString += ""; responseString += ""; responseString += "
 
"; } //if /* Display form for disabling plugins */ displayed = false; for (Enumeration h = ravel.getPlugins() ; h.hasMoreElements() ;) { RavelerPlugin plugin = (RavelerPlugin) h.nextElement(); String status = user.getStatus(plugin.name); if (!status.equals("disabled")) { if (!displayed) { responseString += "

Disable Plugins

"; responseString += "
"; responseString += ""; displayed = true; } //if responseString += ""; responseString += ""; responseString += ""; } //if } // for if (displayed) { responseString += "
 "+plugin.name+"

"; responseString += ""; responseString += ""; responseString += "
 
"; /* Display a button for disabling all the plugins */ responseString += ""; responseString += ""; responseString += ""; responseString += ""; responseString += "
 
"; } //if responseString += "
Save Configuration"; responseString += ""; } catch (RavelerException re) { responseString = ""+Raveler.ravelerCSS; responseString += "Web Raveler Configuration for " + username + ""; responseString += "

Web Raveler Configuration for " + username + "

"; responseString = "

"+re.getMessage()+"

"; } //catch return new HTTPResponse("HTTP/1.0",200,"OK",responseString.getBytes(),new Hashtable()); } // resolveVURL public void printMessage(String message) { this.message = message+"
"; } //printMessage } // class UserConfigVURL