*** empty log message ***
This commit is contained in:
@@ -0,0 +1,270 @@
|
||||
/*
|
||||
* 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 <http://www.mozilla.org/MPL/>.
|
||||
*
|
||||
* 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 <erbo@silcom.com>,
|
||||
* 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):
|
||||
*/
|
||||
package com.silverwrist.venice.servlets.format;
|
||||
|
||||
import java.util.*;
|
||||
import com.silverwrist.util.StringUtil;
|
||||
import com.silverwrist.venice.ValidationException;
|
||||
import com.silverwrist.venice.security.Role;
|
||||
import com.silverwrist.venice.core.*;
|
||||
|
||||
public class EditSIGProfileDialog extends ContentDialog
|
||||
{
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Attributes
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private VeniceEngine engine;
|
||||
private int sigid;
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructors
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public EditSIGProfileDialog(List country_list, List language_list)
|
||||
{
|
||||
super("Edit SIG Profile:",null,"sigprofform","sigadmin");
|
||||
setHiddenField("cmd","P");
|
||||
setHiddenField("sig","");
|
||||
|
||||
Vector vec_pubpriv = new Vector(2);
|
||||
vec_pubpriv.add("0|Public");
|
||||
vec_pubpriv.add("1|Private");
|
||||
vec_pubpriv.trimToSize();
|
||||
|
||||
Vector vec_hidemode = new Vector(3);
|
||||
vec_hidemode.add(String.valueOf(SIGContext.HIDE_NONE) + "|Show in both directory and search");
|
||||
vec_hidemode.add(String.valueOf(SIGContext.HIDE_DIRECTORY) + "|Hide in directory, but not in search");
|
||||
vec_hidemode.add(String.valueOf(SIGContext.HIDE_BOTH) + "|Hide in both directory and search");
|
||||
vec_hidemode.trimToSize();
|
||||
|
||||
addFormField(new CDFormCategoryHeader("Basic Information"));
|
||||
addFormField(new CDTextFormField("name","SIG Name",null,true,32,128));
|
||||
addFormField(new CDVeniceIDFormField("alias","SIG Alias",null,true,32,32));
|
||||
addFormField(new CDTextFormField("synopsis","Synopsis",null,false,32,255));
|
||||
addFormField(new CDTextFormField("rules","Rules",null,false,32,255));
|
||||
addFormField(new CDLanguageListFormField("language","Primary language",null,true,language_list));
|
||||
addFormField(new CDTextFormField("url","Home page",null,false,32,255));
|
||||
addFormField(new CDFormCategoryHeader("Location"));
|
||||
addFormField(new CDTextFormField("company","Company",null,false,32,255));
|
||||
addFormField(new CDTextFormField("addr1","Address",null,false,32,255));
|
||||
addFormField(new CDTextFormField("addr2","Address","(line 2)",false,32,255));
|
||||
addFormField(new CDTextFormField("loc","City",null,false,32,64));
|
||||
addFormField(new CDTextFormField("reg","State/Province",null,false,32,64));
|
||||
addFormField(new CDTextFormField("pcode","Zip/Postal Code",null,true,32,64));
|
||||
addFormField(new CDCountryListFormField("country","Country",null,true,country_list));
|
||||
addFormField(new CDFormCategoryHeader("Security"));
|
||||
addFormField(new CDSimplePickListFormField("comtype","SIG type",null,true,vec_pubpriv,'|'));
|
||||
addFormField(new CDTextFormField("joinkey","Join key","(for private SIGs)",false,32,64));
|
||||
addFormField(new CDCheckBoxFormField("membersonly","Allow only members to access this SIG",null,"Y"));
|
||||
addFormField(new CDSimplePickListFormField("hidemode","SIG visibility",null,true,vec_hidemode,'|'));
|
||||
addFormField(new CDRoleListFormField("read_lvl","Security level required to read contents",null,true,
|
||||
Role.getSIGReadList()));
|
||||
addFormField(new CDRoleListFormField("write_lvl","Security level required to update profile",null,true,
|
||||
Role.getSIGWriteList()));
|
||||
addFormField(new CDRoleListFormField("create_lvl","Security level required to create new subobjects",
|
||||
null,true,Role.getSIGCreateList()));
|
||||
addFormField(new CDRoleListFormField("delete_lvl","Security level required to delete SIG",null,true,
|
||||
Role.getSIGDeleteList()));
|
||||
addFormField(new CDRoleListFormField("join_lvl","Security level required to join SIG",null,true,
|
||||
Role.getSIGJoinList()));
|
||||
// TODO: add logo selection/uploading method here
|
||||
addCommandButton(new CDImageButton("update","bn_update.gif","Update",80,24));
|
||||
addCommandButton(new CDImageButton("cancel","bn_cancel.gif","Cancel",80,24));
|
||||
|
||||
} // end EditSIGProfileDialog
|
||||
|
||||
protected EditSIGProfileDialog(EditSIGProfileDialog other)
|
||||
{
|
||||
super(other);
|
||||
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Internal functions
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private void doDisable(SIGContext sig)
|
||||
{
|
||||
if (sig.isAdminSIG())
|
||||
{ // make sure certain fields are disabled for admin SIGs
|
||||
setFieldEnabled("comtype",false);
|
||||
setFieldEnabled("joinkey",false);
|
||||
setFieldEnabled("membersonly",false);
|
||||
setFieldEnabled("hidemode",false);
|
||||
setFieldEnabled("read_lvl",false);
|
||||
setFieldEnabled("write_lvl",false);
|
||||
setFieldEnabled("create_lvl",false);
|
||||
setFieldEnabled("delete_lvl",false);
|
||||
setFieldEnabled("join_lvl",false);
|
||||
|
||||
} // end if
|
||||
|
||||
} // end doDisable
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Overrides from class ContentDialog
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
protected void validateWholeForm() throws ValidationException
|
||||
{
|
||||
if (engine.aliasExists(getFieldValue("alias"),sigid))
|
||||
throw new ValidationException("That alias is already used by another SIG on the system.");
|
||||
|
||||
if (getFieldValue("comtype").equals("1"))
|
||||
{ // make sure if they flagged it as Private that they specified a join key
|
||||
if (StringUtil.isStringEmpty(getFieldValue("joinkey")))
|
||||
throw new ValidationException("Private SIGs must specify a join key value.");
|
||||
|
||||
} // end if
|
||||
|
||||
} // end validateWholeForm
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* External operations
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public void setupDialogBasic(VeniceEngine engine, SIGContext sig)
|
||||
{
|
||||
this.engine = engine;
|
||||
this.sigid = sig.getSIGID();
|
||||
|
||||
} // end setupDialogBasic
|
||||
|
||||
public void setupDialog(VeniceEngine engine, SIGContext sig) throws DataException, AccessError
|
||||
{
|
||||
setupDialogBasic(engine,sig);
|
||||
ContactInfo ci = sig.getContactInfo();
|
||||
|
||||
setHiddenField("sig",String.valueOf(sig.getSIGID()));
|
||||
setFieldValue("name",sig.getName());
|
||||
setFieldValue("alias",sig.getAlias());
|
||||
setFieldValue("synopsis",sig.getSynopsis());
|
||||
setFieldValue("rules",sig.getRules());
|
||||
setFieldValue("language",sig.getLanguageCode());
|
||||
setFieldValue("url",ci.getURL());
|
||||
setFieldValue("company",ci.getCompany());
|
||||
setFieldValue("addr1",ci.getAddressLine1());
|
||||
setFieldValue("addr2",ci.getAddressLine2());
|
||||
setFieldValue("loc",ci.getLocality());
|
||||
setFieldValue("reg",ci.getRegion());
|
||||
setFieldValue("pcode",ci.getPostalCode());
|
||||
setFieldValue("country",ci.getCountry());
|
||||
if (sig.isPublicSIG())
|
||||
{ // public SIG - no join key
|
||||
setFieldValue("comtype","0");
|
||||
setFieldValue("joinkey","");
|
||||
|
||||
} // end if
|
||||
else
|
||||
{ // private SIG - display the join key
|
||||
setFieldValue("comtype","1");
|
||||
setFieldValue("joinkey",sig.getJoinKey());
|
||||
|
||||
} // end else
|
||||
|
||||
if (sig.getMembersOnly())
|
||||
setFieldValue("membersonly","Y");
|
||||
setFieldValue("hidemode",String.valueOf(sig.getHideMode()));
|
||||
setFieldValue("read_lvl",String.valueOf(sig.getReadLevel()));
|
||||
setFieldValue("write_lvl",String.valueOf(sig.getWriteLevel()));
|
||||
setFieldValue("create_lvl",String.valueOf(sig.getCreateLevel()));
|
||||
setFieldValue("delete_lvl",String.valueOf(sig.getDeleteLevel()));
|
||||
setFieldValue("join_lvl",String.valueOf(sig.getJoinLevel()));
|
||||
|
||||
doDisable(sig);
|
||||
|
||||
} // end setupDialog
|
||||
|
||||
public void doDialog(SIGContext sig) throws ValidationException, DataException, AccessError
|
||||
{
|
||||
final String yes = "Y"; // the "yes" string
|
||||
validate(); // validate the dialog entries
|
||||
|
||||
int hidemode, read_lvl, write_lvl, create_lvl, delete_lvl, join_lvl;
|
||||
try
|
||||
{ // convert the values of some dropdowns to real numbers
|
||||
hidemode = Integer.parseInt(getFieldValue("hidemode"));
|
||||
read_lvl = Integer.parseInt(getFieldValue("read_lvl"));
|
||||
write_lvl = Integer.parseInt(getFieldValue("write_lvl"));
|
||||
create_lvl = Integer.parseInt(getFieldValue("create_lvl"));
|
||||
delete_lvl = Integer.parseInt(getFieldValue("delete_lvl"));
|
||||
join_lvl = Integer.parseInt(getFieldValue("join_lvl"));
|
||||
|
||||
} // end try
|
||||
catch (NumberFormatException nfe)
|
||||
{ // how rude!
|
||||
throw new InternalStateError("somehow we got a non-numeric result from a numeric dropdown list!");
|
||||
|
||||
} // end catch
|
||||
|
||||
// save off the ContactInfo-related fields first
|
||||
ContactInfo ci = sig.getContactInfo();
|
||||
ci.setURL(getFieldValue("url"));
|
||||
ci.setCompany(getFieldValue("company"));
|
||||
ci.setAddressLine1(getFieldValue("addr1"));
|
||||
ci.setAddressLine2(getFieldValue("addr2"));
|
||||
ci.setLocality(getFieldValue("loc"));
|
||||
ci.setRegion(getFieldValue("reg"));
|
||||
ci.setPostalCode(getFieldValue("pcode"));
|
||||
ci.setCountry(getFieldValue("country"));
|
||||
sig.putContactInfo(ci);
|
||||
|
||||
// now save the big text fields
|
||||
sig.setName(getFieldValue("name"));
|
||||
sig.setAlias(getFieldValue("alias"));
|
||||
sig.setSynopsis(getFieldValue("synopsis"));
|
||||
sig.setRules(getFieldValue("rules"));
|
||||
sig.setLanguage(getFieldValue("language"));
|
||||
|
||||
if (!(sig.isAdminSIG()))
|
||||
{ // save off the security information
|
||||
String jkey;
|
||||
if (getFieldValue("comtype").equals("1"))
|
||||
jkey = getFieldValue("joinkey");
|
||||
else
|
||||
jkey = null;
|
||||
sig.setJoinKey(jkey);
|
||||
sig.setMembersOnly(yes.equals(getFieldValue("membersonly")));
|
||||
sig.setHideMode(hidemode);
|
||||
sig.setSecurityLevels(read_lvl,write_lvl,create_lvl,delete_lvl,join_lvl);
|
||||
|
||||
} // end if
|
||||
|
||||
} // end doDialog
|
||||
|
||||
public void resetOnError(SIGContext sig, String message)
|
||||
{
|
||||
setErrorMessage(message);
|
||||
doDisable(sig);
|
||||
|
||||
} // end resetOnError
|
||||
|
||||
public Object clone()
|
||||
{
|
||||
return new EditSIGProfileDialog(this);
|
||||
|
||||
} // end clone
|
||||
|
||||
} // end class EditSIGProfileDialog
|
||||
|
||||
Reference in New Issue
Block a user