added initial implementation of Edit Community Profile dialog; added additional
fields needed to implement the dialog; changed build script to keep from recompiling the JavaCC-compiled parser stuff needlessly
This commit is contained in:
parent
eb32d42bd7
commit
f8ddd74223
17
build.xml
17
build.xml
|
@ -109,6 +109,9 @@
|
|||
<available file="${sourceid.base}/sourceid-sso.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
<uptodate property="search.parser.notrequired"
|
||||
srcfile="src/dynamo-framework/com/silverwrist/dynamo/index/Parser.jj"
|
||||
targetfile="workingarea/src-dynamo-framework/com/silverwrist/dynamo/index/Parser.java"/>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
|
@ -142,13 +145,15 @@
|
|||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
"build-dynamo" - Builds the Dynamo framework classes (com.silverwrist.dynamo.*).
|
||||
"jcc-dynamo-search" - Runs JavaCC (parser generator) on the Dynamo index
|
||||
search parser.
|
||||
============================================================================ -->
|
||||
<target name="build-dynamo" depends="jar-baseutil">
|
||||
|
||||
<target name="jcc-dynamo-search" depends="init" unless="search.parser.notrequired">
|
||||
<mkdir dir="workingarea/src-dynamo-framework/com/silverwrist/dynamo/index"/>
|
||||
<!-- This rule doesn't work with JavaCC 3.0
|
||||
<javacc target="src/dynamo-framework/com/silverwrist/dynamo/index/Parser.jj"
|
||||
javacchome="/usr/local/java/javacc/bin/lib"
|
||||
javacchome="${javacc.lib}"
|
||||
outputdirectory="workingarea/src-dynamo-framework/com/silverwrist/dynamo/index"/>
|
||||
-->
|
||||
<java fork="true" classname="javacc">
|
||||
|
@ -158,6 +163,12 @@
|
|||
<pathelement location="${javacc.lib}/${javacc.jarfile}"/>
|
||||
</classpath>
|
||||
</java>
|
||||
</target>
|
||||
|
||||
<!-- ============================================================================
|
||||
"build-dynamo" - Builds the Dynamo framework classes (com.silverwrist.dynamo.*).
|
||||
============================================================================ -->
|
||||
<target name="build-dynamo" depends="jar-baseutil,jcc-dynamo-search">
|
||||
<mkdir dir="workingarea/dynamo-framework"/>
|
||||
<javac srcdir="src/dynamo-framework:workingarea/src-dynamo-framework" destdir="workingarea/dynamo-framework"
|
||||
source="1.4" debug="${compile.debug}" optimize="${compile.optimize}" deprecation="off">
|
||||
|
|
|
@ -1394,7 +1394,7 @@ INSERT INTO menuvars (menuid, var_name, default_val) VALUES
|
|||
(7, 'name', NULL),
|
||||
(7, 'cid', NULL);
|
||||
INSERT INTO menuitems (menuid, sequence, itemtype, text, linktype, link, perm_nsid, perm_name) VALUES
|
||||
(7, 0, 'TEXT', 'Edit Community Profile', 'SERVLET', 'TODO', 15, 'set.property');
|
||||
(7, 0, 'TEXT', 'Edit Community Profile', 'SERVLET', 'comm/admin/profile.js.vs?cc=${cid}', 15, 'set.property');
|
||||
|
||||
# Create the sideboxes tables.
|
||||
INSERT INTO sbox_master (sbid, sb_nsid, sb_name, type_nsid, type_name, descr) VALUES
|
||||
|
|
|
@ -174,7 +174,9 @@ public class DialogManager
|
|||
m_factory_data.put("header",fact);
|
||||
m_factory_data.put("hidden",fact);
|
||||
m_factory_data.put("int",fact);
|
||||
m_factory_data.put("languagelist",fact);
|
||||
m_factory_data.put("linktypelist",fact);
|
||||
m_factory_data.put("list",fact);
|
||||
m_factory_data.put("localelist",fact);
|
||||
m_factory_data.put("password",fact);
|
||||
m_factory_data.put("text",fact);
|
||||
|
|
|
@ -30,3 +30,5 @@ text.notInteger=Invalid non-numeric character in the "{0}" field.
|
|||
int.tooSmall=The value of the "{0}" field must be greater than or equal to {1}.
|
||||
int.tooLarge=The value of the "{0}" field must be less than or equal to {1}.
|
||||
valid.except=Exception generated while validating "{0}": {1}
|
||||
picklist.choices=Error parsing the pick list choices for field "{0}": {1}.
|
||||
picklist.noChoice=No choices present for static pick list "{0}."
|
||||
|
|
|
@ -0,0 +1,123 @@
|
|||
/*
|
||||
* 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) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
package com.silverwrist.dynamo.dialog;
|
||||
|
||||
import java.util.*;
|
||||
import org.w3c.dom.Element;
|
||||
import com.silverwrist.util.*;
|
||||
import com.silverwrist.dynamo.except.DialogException;
|
||||
|
||||
class LanguageListField extends PickListField
|
||||
{
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Static data members
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private static Language UNKNOWN_LANGUAGE = International.get().getLanguageForCode("i-default");
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructors
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
LanguageListField(Element elt) throws DialogException
|
||||
{
|
||||
super(elt);
|
||||
|
||||
} // end constructor
|
||||
|
||||
protected LanguageListField(LanguageListField other)
|
||||
{
|
||||
super(other);
|
||||
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Abstract implementations from class BaseDialogField
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public Object clone()
|
||||
{
|
||||
return new LanguageListField(this);
|
||||
|
||||
} // end clone
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Overrides from class BaseDialogField
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
protected boolean isNull(Object value)
|
||||
{
|
||||
return ((value==null) || UNKNOWN_LANGUAGE.equals(value));
|
||||
|
||||
} // end isNull
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Abstract implementations from class PickListField
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
protected Iterator getChoices()
|
||||
{
|
||||
return International.get().getLanguageList().iterator();
|
||||
|
||||
} // end getChoices
|
||||
|
||||
protected String getChoiceName(Object choice)
|
||||
{
|
||||
return ((Language)choice).getCode();
|
||||
|
||||
} // end getChoiceName
|
||||
|
||||
protected String getChoiceDisplay(Object choice)
|
||||
{
|
||||
return ((Language)choice).getName();
|
||||
|
||||
} // end getChoiceDisplay
|
||||
|
||||
protected Object getChoiceForName(String name)
|
||||
{
|
||||
return International.get().getLanguageForCode(name);
|
||||
|
||||
} // end getChoiceForName
|
||||
|
||||
protected boolean isValidChoice(Object choice)
|
||||
{
|
||||
if (!(choice instanceof Language))
|
||||
return false;
|
||||
Language x = International.get().getLanguageForCode(((Language)choice).getCode());
|
||||
return x.equals(choice);
|
||||
|
||||
} // end isValidChoice
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Overrides from class PickListField
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public boolean containsValue()
|
||||
{
|
||||
Object v = getValue();
|
||||
return ((v!=null) && !UNKNOWN_LANGUAGE.equals(v));
|
||||
|
||||
} // end containsValue
|
||||
|
||||
} // end class LanguageListField
|
|
@ -0,0 +1,138 @@
|
|||
/*
|
||||
* 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) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
package com.silverwrist.dynamo.dialog;
|
||||
|
||||
import java.util.*;
|
||||
import org.w3c.dom.*;
|
||||
import com.silverwrist.util.xml.*;
|
||||
import com.silverwrist.dynamo.except.DialogException;
|
||||
|
||||
class StaticPickListField extends PickListField
|
||||
{
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Attributes
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private List m_choices; // our list of choices
|
||||
private Map m_name_map; // mapping from names to text
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructors
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
StaticPickListField(Element elt) throws DialogException
|
||||
{
|
||||
super(elt);
|
||||
XMLLoader loader = XMLLoader.get();
|
||||
try
|
||||
{ // get the <choice/> sub-elements of the main element
|
||||
List l = loader.getMatchingSubElements(elt,"choice");
|
||||
Iterator it = l.iterator();
|
||||
ArrayList choice_list = new ArrayList();
|
||||
HashMap choice_map = new HashMap();
|
||||
while (it.hasNext())
|
||||
{ // load the various choices
|
||||
Element n = (Element)(it.next());
|
||||
String name = loader.getAttribute(n,"id");
|
||||
String value = loader.getText(n);
|
||||
choice_list.add(name);
|
||||
choice_map.put(name,value);
|
||||
|
||||
} // end while
|
||||
|
||||
if (choice_list.isEmpty())
|
||||
{ // no choices specified - throw an error!
|
||||
DialogException de = new DialogException(StaticPickListField.class,"DialogMessages","picklist.noChoice");
|
||||
de.setParameter(0,super.getName());
|
||||
throw de;
|
||||
|
||||
} // end if
|
||||
|
||||
choice_list.trimToSize();
|
||||
m_choices = Collections.unmodifiableList(choice_list);
|
||||
m_name_map = Collections.unmodifiableMap(choice_map);
|
||||
|
||||
} // end try
|
||||
catch (XMLLoadException e)
|
||||
{ // XML load failure - throw an error
|
||||
DialogException de = new DialogException(StaticPickListField.class,"DialogMessages","picklist.choices",e);
|
||||
de.setParameter(0,super.getName());
|
||||
de.setParameter(1,e.getMessage());
|
||||
throw de;
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end constructor
|
||||
|
||||
protected StaticPickListField(StaticPickListField other)
|
||||
{
|
||||
super(other);
|
||||
m_choices = other.m_choices;
|
||||
m_name_map = other.m_name_map;
|
||||
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Abstract implementations from class BaseDialogField
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public Object clone()
|
||||
{
|
||||
return new StaticPickListField(this);
|
||||
|
||||
} // end clone
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Abstract implementations from class PickListField
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
protected Iterator getChoices()
|
||||
{
|
||||
return m_choices.iterator();
|
||||
|
||||
} // end getChoices
|
||||
|
||||
protected String getChoiceName(Object choice)
|
||||
{
|
||||
return choice.toString();
|
||||
|
||||
} // end getChoiceName
|
||||
|
||||
protected String getChoiceDisplay(Object choice)
|
||||
{
|
||||
return m_name_map.get(choice).toString();
|
||||
|
||||
} // end getChoiceDisplay
|
||||
|
||||
protected Object getChoiceForName(String name)
|
||||
{
|
||||
return m_name_map.containsKey(name) ? name : null;
|
||||
|
||||
} // end getChoiceForName
|
||||
|
||||
protected boolean isValidChoice(Object choice)
|
||||
{
|
||||
return (choice!=null) && m_name_map.containsKey(choice);
|
||||
|
||||
} // end isValidChoice
|
||||
|
||||
} // end class StaticPickListField
|
|
@ -64,8 +64,12 @@ class StdItemFactory implements DialogItemFactory
|
|||
return new HiddenField(elt);
|
||||
if (tagname.equals("int"))
|
||||
return new IntegerField(elt);
|
||||
if (tagname.equals("languagelist"))
|
||||
return new LanguageListField(elt);
|
||||
if (tagname.equals("linktypelist"))
|
||||
return new LinkTypeField(elt);
|
||||
if (tagname.equals("list"))
|
||||
return new StaticPickListField(elt);
|
||||
if (tagname.equals("localelist"))
|
||||
return new LocaleListField(elt);
|
||||
if (tagname.equals("password"))
|
||||
|
|
57
venice-data/dialogs/comm/community_profile.dlg.xml
Normal file
57
venice-data/dialogs/comm/community_profile.dlg.xml
Normal file
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
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) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
-->
|
||||
<dialog name="community_profile" defaultbutton="update">
|
||||
<title>Edit Community Profile:</title>
|
||||
<action>comm/admin/profile.js.vs</action>
|
||||
<hidden name="cc" value=""/>
|
||||
|
||||
<header name="basic_hdr" caption="Basic Information"/>
|
||||
<text name="name" caption="Community Name" required="true" size="32" maxlength="128"/>
|
||||
<dynamo-id name="alias" caption="Community Alias" required="true" size="32" maxlength="32"/>
|
||||
<text name="synopsis" caption="Synopsis" size="32" maxlength="254"/>
|
||||
<text name="rules" caption="Rules" size="32" maxlength="254"/>
|
||||
<languagelist name="language" caption="Primary Language" required="true"/>
|
||||
<text name="url" caption="Home Page" size="32" maxlength="254"/>
|
||||
<!-- <communitylogo name="logo" caption="Community Logo" link="comm/photo.js.vs" type="servlet"/> -->
|
||||
|
||||
<header name="location_hdr" caption="Location"/>
|
||||
<text name="company" caption="Company" size="32" maxlength="254"/>
|
||||
<text name="addr1" caption="Address" size="32" maxlength="254"/>
|
||||
<text name="addr2" caption="Address" caption2="(line 2)" size="32" maxlength="254"/>
|
||||
<text name="loc" caption="City" size="32" maxlength="64"/>
|
||||
<text name="reg" caption="State/Province" size="32" maxlength="64"/>
|
||||
<text name="pcode" caption="Zip/Postal Code" required="true" size="32" maxlength="64"/>
|
||||
<countrylist name="country" caption="Country" required="true"/>
|
||||
|
||||
<header name="security_hdr" caption="Security"/>
|
||||
<list name="comtype" caption="Community Type" required="true">
|
||||
<choice id="0">Public</choice>
|
||||
<choice id="1">Private</choice>
|
||||
<choice id="2">Invitation-only</choice>
|
||||
</list>
|
||||
<text name="joinkey" caption="Join Key" caption2="(for private communities)" size="32" maxlength="254"/>
|
||||
<list name="visibility" caption="Community Visibility" required="true">
|
||||
<choice id="SEARCHDIR">Show in both directory and search</choice>
|
||||
<choice id="SEARCHONLY">Hide in directory, but not in search</choice>
|
||||
<choice id="NONE">Hide in both directory and search</choice>
|
||||
</list>
|
||||
|
||||
<button name="update"/>
|
||||
<button name="cancel"/>
|
||||
</dialog>
|
|
@ -27,7 +27,7 @@
|
|||
</header>
|
||||
<password name="pass1" caption="Password" size="32" maxlength="128"/>
|
||||
<password name="pass2" caption="Password" caption2="(retype)" size="32" maxlength="128"/>
|
||||
<text name="remind" caption="Password reminder phrase" size="32" maxlength="255"/>
|
||||
<text name="remind" caption="Password reminder phrase" size="32" maxlength="254"/>
|
||||
|
||||
<header name="name_hdr" caption="Name"/>
|
||||
<text name="prefix" caption="Prefix" caption2="(Mr., Ms., etc.)" size="8" maxlength="8"/>
|
||||
|
@ -37,9 +37,9 @@
|
|||
<text name="suffix" caption="Suffix" caption2="(Jr., III, etc.)" size="16" maxlength="16"/>
|
||||
|
||||
<header name="loc_hdr" caption="Location"/>
|
||||
<text name="company" caption="Company" size="32" maxlength="255"/>
|
||||
<text name="addr1" caption="Address" size="32" maxlength="255"/>
|
||||
<text name="addr2" caption="Address" caption2="(line 2)" size="32" maxlength="255"/>
|
||||
<text name="company" caption="Company" size="32" maxlength="254"/>
|
||||
<text name="addr1" caption="Address" size="32" maxlength="254"/>
|
||||
<text name="addr2" caption="Address" caption2="(line 2)" size="32" maxlength="254"/>
|
||||
<checkbox name="pvt_addr" caption="Hide address in profile"/>
|
||||
<text name="loc" caption="City" required="true" size="32" maxlength="64"/>
|
||||
<text name="reg" caption="State/Province" required="true" size="32" maxlength="64"/>
|
||||
|
@ -55,12 +55,12 @@
|
|||
<checkbox name="pvt_fax" caption="Hide fax number in profile"/>
|
||||
|
||||
<header name="email_hdr" caption="Internet"/>
|
||||
<email name="email" caption="E-mail address" required="true" size="32" maxlength="255"/>
|
||||
<email name="email" caption="E-mail address" required="true" size="32" maxlength="254"/>
|
||||
<checkbox name="pvt_email" caption="Hide E-mail address in profile"/>
|
||||
<text name="url" caption="Home Page" caption2="(URL)" size="32" maxlength="255"/>
|
||||
<text name="url" caption="Home Page" caption2="(URL)" size="32" maxlength="254"/>
|
||||
|
||||
<header name="pers_hdr" caption="Personal"/>
|
||||
<text name="descr" caption="Personal description" size="32" maxlength="255"/>
|
||||
<text name="descr" caption="Personal description" size="32" maxlength="254"/>
|
||||
<userphoto name="photo" caption="User Photo" link="profile_photo.js.vs?tgt=${rtgt}" type="servlet"/>
|
||||
|
||||
<header name="prefs_hdr" caption="User Preferences"/>
|
||||
|
|
|
@ -34,5 +34,5 @@ aclids[0] = comm.getAcl().getAclID();
|
|||
aclids[1] = srm.getGlobalAcl().getAclID();
|
||||
menu = mprov.getStandardMenu(user,VeniceNamespaces.COMMUNITY_GLOBALS_NAMESPACE,"admin.menu",aclids);
|
||||
menu.setVariable("name",comm.getName());
|
||||
menu.setVariable("cid",String.valueOf(comm.getCID()));
|
||||
menu.setVariable("cid",comm.getCID() + "");
|
||||
dynamo.scriptOutput(menu);
|
||||
|
|
146
venice-data/scripts/comm/admin/profile.js
Normal file
146
venice-data/scripts/comm/admin/profile.js
Normal file
|
@ -0,0 +1,146 @@
|
|||
// 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) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
//
|
||||
// Contributor(s):
|
||||
|
||||
importPackage(java.lang);
|
||||
importClass(Packages.com.silverwrist.dynamo.Namespaces);
|
||||
importPackage(Packages.com.silverwrist.dynamo.except);
|
||||
importPackage(Packages.com.silverwrist.dynamo.iface);
|
||||
importPackage(Packages.com.silverwrist.dynamo.util);
|
||||
importClass(Packages.com.silverwrist.venice.CommunityVisibility);
|
||||
importClass(Packages.com.silverwrist.venice.VeniceNamespaces);
|
||||
importPackage(Packages.com.silverwrist.venice.frame);
|
||||
importPackage(Packages.com.silverwrist.venice.iface);
|
||||
|
||||
req = bsf.lookupBean("request");
|
||||
req_help = bsf.lookupBean("request_help");
|
||||
user = vlib.getUser(req);
|
||||
comm = vlib.getCommunity(req);
|
||||
|
||||
// Make sure we are permitted to be here.
|
||||
acl = comm.getAcl();
|
||||
if (!( acl.testPermission(user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"set.property")
|
||||
&& acl.testPermission(user,VeniceNamespaces.COMMUNITY_PERMS_NAMESPACE,"grant.revoke.access")
|
||||
&& acl.testPermission(user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"set.visibility")
|
||||
&& acl.testPermission(user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"set.name")
|
||||
&& acl.testPermission(user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"set.alias")))
|
||||
dynamo.scriptReturn(vlib.stdErrorBox(req,"Security Error",
|
||||
"You are not permitted to modify this community's profile."));
|
||||
|
||||
// Create the dialog.
|
||||
loader = cast.queryDialogLoader(req);
|
||||
dlg = loader.loadDialogResource("comm/community_profile.dlg.xml");
|
||||
|
||||
return_URL = "comm/admin/main.js.vs?cc=" + comm.getCID(); // shortcut
|
||||
|
||||
rc = null;
|
||||
if (req_help.isVerb("GET"))
|
||||
{ // Load the dialog with its initial values.
|
||||
dlg.setValue("cc",comm.getCID() + "");
|
||||
|
||||
dlg.setValue("name",comm.getName());
|
||||
dlg.setValue("alias",comm.getAlias());
|
||||
dlg.setValue("synopsis",PropertyUtils.getPropertyNoErr(comm,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,
|
||||
"synopsis"));
|
||||
dlg.setValue("rules",PropertyUtils.getPropertyNoErr(comm,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"rules"));
|
||||
dlg.setValue("language",comm.getObject(VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"language"));
|
||||
dlg.setValue("url",PropertyUtils.getPropertyNoErr(comm,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"url.homepage"));
|
||||
// TODO: set community logo here
|
||||
|
||||
dlg.setValue("company",PropertyUtils.getPropertyNoErr(comm,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,
|
||||
"company.name"));
|
||||
dlg.setValue("addr1",PropertyUtils.getPropertyNoErr(comm,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"address.1"));
|
||||
dlg.setValue("addr2",PropertyUtils.getPropertyNoErr(comm,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"address.2"));
|
||||
dlg.setValue("loc",PropertyUtils.getPropertyNoErr(comm,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"locality"));
|
||||
dlg.setValue("reg",PropertyUtils.getPropertyNoErr(comm,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"region"));
|
||||
dlg.setValue("pcode",comm.getObject(VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"postal.code"));
|
||||
dlg.setValue("country",comm.getObject(VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"country"));
|
||||
|
||||
dlg.setValue("comtype","0"); // TODO: replace with something real
|
||||
dlg.setValue("joinkey",""); // TODO: replace with something real
|
||||
dlg.setValue("visibility",comm.getVisibility().getName());
|
||||
|
||||
} // end if
|
||||
else
|
||||
{ // Load information from the dialog
|
||||
op = dlg.getClickedButton(req) + "";
|
||||
if (op=="cancel") // user cancelled - bounce back to the previous menu
|
||||
rc = new Redirect("SERVLET",return_URL);
|
||||
else
|
||||
{ // load and validate the dialog
|
||||
dlg.load(req);
|
||||
try
|
||||
{ // validate the dialog
|
||||
dlg.validate(req);
|
||||
|
||||
// set the appropriate values into the community properties
|
||||
comm.setName(user,dlg.getValue("name"));
|
||||
comm.setAlias(user,dlg.getValue("alias"));
|
||||
PropertyUtils.setOrRemove(comm,user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"synopsis",
|
||||
dlg.getValue("synopsis"));
|
||||
PropertyUtils.setOrRemove(comm,user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"rules",dlg.getValue("rules"));
|
||||
comm.setObject(user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"language",dlg.getValue("language"));
|
||||
PropertyUtils.setOrRemove(comm,user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"url.homepage",
|
||||
dlg.getValue("url"));
|
||||
// TODO: deal with community logo
|
||||
|
||||
PropertyUtils.setOrRemove(comm,user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"company.name",
|
||||
dlg.getValue("company"));
|
||||
PropertyUtils.setOrRemove(comm,user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"address.1",
|
||||
dlg.getValue("addr1"));
|
||||
PropertyUtils.setOrRemove(comm,user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"address.2",
|
||||
dlg.getValue("addr2"));
|
||||
PropertyUtils.setOrRemove(comm,user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"locality",
|
||||
dlg.getValue("loc"));
|
||||
PropertyUtils.setOrRemove(comm,user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"region",
|
||||
dlg.getValue("reg"));
|
||||
comm.setObject(user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"postal.code",dlg.getValue("pcode"));
|
||||
comm.setObject(user,VeniceNamespaces.COMMUNITY_PROFILE_NAMESPACE,"country",dlg.getValue("country"));
|
||||
|
||||
// TODO: do something with "comtype" and "joinkey"
|
||||
comm.setVisibility(user,CommunityVisibility.getEnum(dlg.getValue("visibility")));
|
||||
|
||||
vlib.forceReloadMenu(req); // the menu might have changed, so reload it
|
||||
|
||||
// All done - bounce back to the main admin menu
|
||||
rc = new Redirect("SERVLET",return_URL);
|
||||
|
||||
} // end try
|
||||
catch (e)
|
||||
{ // get the exception type and check it out
|
||||
etype = dynamo.exceptionType(e) + "";
|
||||
logger.error("Caught exception of type " + etype);
|
||||
if (etype.match(/ValidationException/))
|
||||
dlg.setErrorMessage(dynamo.exceptionMessage(e) + " Please try again.");
|
||||
else if (etype.match(/DatabaseException/))
|
||||
rc = new ErrorBox("Database Error",e,"SERVLET",return_URL);
|
||||
else if (etype.match(/DynamoSecurityException/))
|
||||
rc = new ErrorBox("Security Error",e,"SERVLET",return_URL);
|
||||
else
|
||||
rc = new ErrorBox("Unknown Exception",e,"SERVLET",return_URL);
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end else
|
||||
|
||||
} // end else
|
||||
|
||||
if (rc==null)
|
||||
{ // output dialog if we don't have another value
|
||||
dlg.setSubtitle(comm.getName());
|
||||
rc = new FrameDialog(dlg);
|
||||
|
||||
} // end if
|
||||
dynamo.scriptOutput(rc);
|
Loading…
Reference in New Issue
Block a user