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"/>
|
<available file="${sourceid.base}/sourceid-sso.jar"/>
|
||||||
</and>
|
</and>
|
||||||
</condition>
|
</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>
|
</target>
|
||||||
|
|
||||||
<!-- ============================================================================
|
<!-- ============================================================================
|
||||||
|
@ -142,13 +145,15 @@
|
||||||
</target>
|
</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"/>
|
<mkdir dir="workingarea/src-dynamo-framework/com/silverwrist/dynamo/index"/>
|
||||||
<!-- This rule doesn't work with JavaCC 3.0
|
<!-- This rule doesn't work with JavaCC 3.0
|
||||||
<javacc target="src/dynamo-framework/com/silverwrist/dynamo/index/Parser.jj"
|
<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"/>
|
outputdirectory="workingarea/src-dynamo-framework/com/silverwrist/dynamo/index"/>
|
||||||
-->
|
-->
|
||||||
<java fork="true" classname="javacc">
|
<java fork="true" classname="javacc">
|
||||||
|
@ -158,6 +163,12 @@
|
||||||
<pathelement location="${javacc.lib}/${javacc.jarfile}"/>
|
<pathelement location="${javacc.lib}/${javacc.jarfile}"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
</java>
|
</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"/>
|
<mkdir dir="workingarea/dynamo-framework"/>
|
||||||
<javac srcdir="src/dynamo-framework:workingarea/src-dynamo-framework" destdir="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">
|
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, 'name', NULL),
|
||||||
(7, 'cid', NULL);
|
(7, 'cid', NULL);
|
||||||
INSERT INTO menuitems (menuid, sequence, itemtype, text, linktype, link, perm_nsid, perm_name) VALUES
|
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.
|
# Create the sideboxes tables.
|
||||||
INSERT INTO sbox_master (sbid, sb_nsid, sb_name, type_nsid, type_name, descr) VALUES
|
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("header",fact);
|
||||||
m_factory_data.put("hidden",fact);
|
m_factory_data.put("hidden",fact);
|
||||||
m_factory_data.put("int",fact);
|
m_factory_data.put("int",fact);
|
||||||
|
m_factory_data.put("languagelist",fact);
|
||||||
m_factory_data.put("linktypelist",fact);
|
m_factory_data.put("linktypelist",fact);
|
||||||
|
m_factory_data.put("list",fact);
|
||||||
m_factory_data.put("localelist",fact);
|
m_factory_data.put("localelist",fact);
|
||||||
m_factory_data.put("password",fact);
|
m_factory_data.put("password",fact);
|
||||||
m_factory_data.put("text",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.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}.
|
int.tooLarge=The value of the "{0}" field must be less than or equal to {1}.
|
||||||
valid.except=Exception generated while validating "{0}": {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);
|
return new HiddenField(elt);
|
||||||
if (tagname.equals("int"))
|
if (tagname.equals("int"))
|
||||||
return new IntegerField(elt);
|
return new IntegerField(elt);
|
||||||
|
if (tagname.equals("languagelist"))
|
||||||
|
return new LanguageListField(elt);
|
||||||
if (tagname.equals("linktypelist"))
|
if (tagname.equals("linktypelist"))
|
||||||
return new LinkTypeField(elt);
|
return new LinkTypeField(elt);
|
||||||
|
if (tagname.equals("list"))
|
||||||
|
return new StaticPickListField(elt);
|
||||||
if (tagname.equals("localelist"))
|
if (tagname.equals("localelist"))
|
||||||
return new LocaleListField(elt);
|
return new LocaleListField(elt);
|
||||||
if (tagname.equals("password"))
|
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>
|
</header>
|
||||||
<password name="pass1" caption="Password" size="32" maxlength="128"/>
|
<password name="pass1" caption="Password" size="32" maxlength="128"/>
|
||||||
<password name="pass2" caption="Password" caption2="(retype)" 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"/>
|
<header name="name_hdr" caption="Name"/>
|
||||||
<text name="prefix" caption="Prefix" caption2="(Mr., Ms., etc.)" size="8" maxlength="8"/>
|
<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"/>
|
<text name="suffix" caption="Suffix" caption2="(Jr., III, etc.)" size="16" maxlength="16"/>
|
||||||
|
|
||||||
<header name="loc_hdr" caption="Location"/>
|
<header name="loc_hdr" caption="Location"/>
|
||||||
<text name="company" caption="Company" size="32" maxlength="255"/>
|
<text name="company" caption="Company" size="32" maxlength="254"/>
|
||||||
<text name="addr1" caption="Address" size="32" maxlength="255"/>
|
<text name="addr1" caption="Address" size="32" maxlength="254"/>
|
||||||
<text name="addr2" caption="Address" caption2="(line 2)" size="32" maxlength="255"/>
|
<text name="addr2" caption="Address" caption2="(line 2)" size="32" maxlength="254"/>
|
||||||
<checkbox name="pvt_addr" caption="Hide address in profile"/>
|
<checkbox name="pvt_addr" caption="Hide address in profile"/>
|
||||||
<text name="loc" caption="City" required="true" size="32" maxlength="64"/>
|
<text name="loc" caption="City" required="true" size="32" maxlength="64"/>
|
||||||
<text name="reg" caption="State/Province" 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"/>
|
<checkbox name="pvt_fax" caption="Hide fax number in profile"/>
|
||||||
|
|
||||||
<header name="email_hdr" caption="Internet"/>
|
<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"/>
|
<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"/>
|
<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"/>
|
<userphoto name="photo" caption="User Photo" link="profile_photo.js.vs?tgt=${rtgt}" type="servlet"/>
|
||||||
|
|
||||||
<header name="prefs_hdr" caption="User Preferences"/>
|
<header name="prefs_hdr" caption="User Preferences"/>
|
||||||
|
|
|
@ -34,5 +34,5 @@ aclids[0] = comm.getAcl().getAclID();
|
||||||
aclids[1] = srm.getGlobalAcl().getAclID();
|
aclids[1] = srm.getGlobalAcl().getAclID();
|
||||||
menu = mprov.getStandardMenu(user,VeniceNamespaces.COMMUNITY_GLOBALS_NAMESPACE,"admin.menu",aclids);
|
menu = mprov.getStandardMenu(user,VeniceNamespaces.COMMUNITY_GLOBALS_NAMESPACE,"admin.menu",aclids);
|
||||||
menu.setVariable("name",comm.getName());
|
menu.setVariable("name",comm.getName());
|
||||||
menu.setVariable("cid",String.valueOf(comm.getCID()));
|
menu.setVariable("cid",comm.getCID() + "");
|
||||||
dynamo.scriptOutput(menu);
|
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