// The contents of this file are subject to the Mozilla Public License Version 1.1 // (the "License"); you may not use this file except in compliance with the License. // You may obtain a copy of the License at . // // Software distributed under the License is distributed on an "AS IS" basis, WITHOUT // WARRANTY OF ANY KIND, either express or implied. See the License for the specific // language governing rights and limitations under the License. // // The Original Code is the Venice Web Communities System. // // The Initial Developer of the Original Code is Eric J. Bowersox , // for Silverwrist Design Studios. Portions created by Eric J. Bowersox are // Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. // // Contributor(s): importPackage(Packages.com.silverwrist.venice.core); importPackage(Packages.com.silverwrist.venice.except); importPackage(Packages.com.silverwrist.venice.ui); importPackage(Packages.com.silverwrist.venice.ui.dlg); importPackage(Packages.com.silverwrist.venice.ui.helpers); importPackage(Packages.com.silverwrist.venice.ui.view); // get the request object and the community rinput = bsf.lookupBean("request"); comm = rinput.getCommunity(true,"top.js.vs"); if (!(comm.canJoin())) { // you can't join the community vlib.output(new ErrorBox("Community Error","You are not permitted to join this community.","top.js.vs")); vlib.done(); } // end if if (comm.isPublicCommunity()) { // we shouldn't have gotten here! vlib.output(new ErrorBox("Internal Error","This community should already have been joined.", "comm/show.js.vs?cc=" + comm.communityID)); vlib.done(); } // end if // Get the "join key" dialog. dlg = rinput.getDialog("join"); op = dlg.whichButton(rinput) + ""; if (op=="cancel") { // cancel the join and bounce back to the profile vlib.output(new Redirect("comm/show.js.vs?cc=" + comm.communityID,LinkTypes.SERVLET)); vlib.done(); } // end if rc = null; if (op=="join_now") { // go ahead and join up, if we can dlg.load(rinput); try { // get the join key key = dlg.getValue("key"); if (vlib.emptyString("key")) throw new ValidationException("No join key specified."); comm.join(key); // join the community! // force the menus to be redrawn rinput.setSessionAttribute(RequestInput.LEFT_MENU_SESSION_ATTR,null); // create a return view rc = new JSPView("Welcome to " + comm.name,"comm/welcome.jsp"); rc.menuSelector = Content.MENU_SELECTOR_COMMUNITY; } // end try catch (e) { // exception when we tried to join the community etype = vlib.exceptionType(e) + ""; if (etype.match("ValidationException") || etype.match("AccessError")) { // reset the dialog and try again dlg.setErrorMessage(e.message + " Please try again."); dlg.setValue("key",null); rc = dlg; } // end if else if (etype.match("DataException")) rc = new ErrorBox("Database Error","Database error joining community: " + e.message,"top.js.vs"); } // end catch } // end if else { // we don't know what button was clicked logger.error("no known button click on POST to comm.join_key.js"); rc = new ErrorBox("Internal Error","Unknown command button pressed","top.js.vs"); } // end else vlib.output(rc);