added initial sysadmin menu items and dialogs, fixed a few things about dialog
operation here and there
This commit is contained in:
parent
0c7f518f3e
commit
cbae9cdd8e
|
@ -569,18 +569,28 @@ INSERT INTO imagetype (typecode, nsid, name) VALUES
|
|||
|
||||
#### following this line is initialization of Venice-specific tables ####
|
||||
|
||||
# Create the "global" menu.
|
||||
# Create the "global" menu. (ID #1)
|
||||
INSERT INTO menus (menuid, menu_nsid, menu_name, title, subtitle)
|
||||
VALUES (1, 1, 'fixed.menu', 'About This Site', NULL);
|
||||
INSERT INTO menuitems (menuid, sequence, itemtype, text, linktype, link) VALUES
|
||||
(1, 0, 'TEXT', 'Documentation', 'ABSOLUTE', 'TODO' ),
|
||||
(1, 1, 'TEXT', 'About Venice', 'FRAME', 'about-venice.html'),
|
||||
(1, 2, 'TEXT', 'System Administration', 'ABSOLUTE', 'TODO' );
|
||||
(1, 1, 'TEXT', 'About Venice', 'FRAME', 'about-venice.html' ),
|
||||
(1, 2, 'TEXT', 'System Administration', 'SERVLET', 'sysadmin/main.js.vs');
|
||||
UPDATE menuitems SET enable = 0 WHERE menuid = 1 AND sequence = 0;
|
||||
UPDATE menuitems SET perm_nsid = 13, perm_name = 'show.admin.menu' WHERE menuid = 1 AND sequence = 2;
|
||||
|
||||
# Create the user profile menu.
|
||||
# Create the user profile menu. (ID #2)
|
||||
INSERT INTO menus (menuid, menu_nsid, menu_name, title, subtitle)
|
||||
VALUES (2, 11, 'user.profile.menu', '', NULL);
|
||||
INSERT INTO menuvars (menuid, var_name, default_val)
|
||||
VALUES (2, 'target', 'top.js.vs');
|
||||
INSERT INTO menuitems (menuid, sequence, itemtype, text, linktype, link) VALUES
|
||||
(2, 0, 'TEXT', 'Profile', 'SERVLET', 'profile.js.vs?tgt=${target}');
|
||||
|
||||
# Create the main system administration menu. (ID #3)
|
||||
INSERT INTO menus (menuid, menu_nsid, menu_name, title, subtitle)
|
||||
VALUES (3, 13, 'system.admin', 'System Administration', NULL);
|
||||
INSERT INTO menuitems (menuid, sequence, itemtype, text, linktype, link, perm_nsid, perm_name) VALUES
|
||||
(3, 0, 'TEXT', 'Set Frame Look-And-Feel Parameters', 'SERVLET', 'sysadmin/frame_laf.js.vs', 1, 'set.property'),
|
||||
(3, 1, 'TEXT', 'Set E-Mail Parameters', 'SERVLET', 'sysadmin/email.js.vs', 5, 'set.property'),
|
||||
(3, 2, 'TEXT', 'Set Session Parameters', 'SERVLET', 'sysadmin/session.js.vs', 7, 'set.property');
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
*
|
||||
* 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) 2002 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
* Copyright (C) 2002-03 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
@ -109,7 +109,7 @@ abstract class CommonTextField extends BaseDialogField
|
|||
|
||||
protected boolean isNull(Object value)
|
||||
{
|
||||
return StringUtils.isEmpty((String)value);
|
||||
return ((value==null) || StringUtils.isEmpty(value.toString()));
|
||||
|
||||
} // end isNull
|
||||
|
||||
|
|
|
@ -580,8 +580,20 @@ class DialogImpl implements Dialog
|
|||
while (it.hasNext())
|
||||
{ // call reset on each field
|
||||
DialogField fld = (DialogField)(it.next());
|
||||
try
|
||||
{ // perform validation
|
||||
fld.validate(r);
|
||||
|
||||
} // end try
|
||||
catch (RuntimeException e)
|
||||
{ // safety in case RuntimeException is thrown
|
||||
ValidationException ve = new ValidationException(DialogImpl.class,"DialogMessages","valid.except",e);
|
||||
ve.setParameter(0,fld.getName());
|
||||
ve.setParameter(1,e.getMessage());
|
||||
throw ve;
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end while
|
||||
|
||||
} // end validate
|
||||
|
|
|
@ -174,9 +174,11 @@ 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("linktypelist",fact);
|
||||
m_factory_data.put("localelist",fact);
|
||||
m_factory_data.put("password",fact);
|
||||
m_factory_data.put("text",fact);
|
||||
m_factory_data.put("textbox",fact);
|
||||
m_factory_data.put("tzlist",fact);
|
||||
|
||||
// Get the service provider hooks interface.
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#
|
||||
# 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) 2002 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
# Copyright (C) 2002-03 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# ---------------------------------------------------------------------------------
|
||||
|
@ -29,3 +29,4 @@ bad.email=The value in the "{0}" field is not a valid E-mail address.
|
|||
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}
|
||||
|
|
|
@ -0,0 +1,175 @@
|
|||
/*
|
||||
* 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.io.*;
|
||||
import java.util.*;
|
||||
import org.w3c.dom.*;
|
||||
import com.silverwrist.util.*;
|
||||
import com.silverwrist.util.xml.*;
|
||||
import com.silverwrist.dynamo.except.*;
|
||||
import com.silverwrist.dynamo.iface.*;
|
||||
import com.silverwrist.dynamo.util.*;
|
||||
|
||||
public class MultiLineTextField extends BaseDialogField
|
||||
{
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Static data members
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public static final int DEFAULT_ROWS = 4;
|
||||
public static final int DEFAULT_COLS = 40;
|
||||
public static final int DEFAULT_MAXLENGTH = -1;
|
||||
public static final String DEFAULT_WRAP = "soft";
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Attributes
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private String m_value = null;
|
||||
private int m_rows;
|
||||
private int m_cols;
|
||||
private int m_maxlength;
|
||||
private String m_wraptype;
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructors
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public MultiLineTextField(Element elt) throws DialogException
|
||||
{
|
||||
super(false,elt);
|
||||
XMLLoader loader = XMLLoader.get();
|
||||
try
|
||||
{ // load the attributes specific to a multiline field
|
||||
m_rows = loader.getAttributeInt(elt,"rows",DEFAULT_ROWS);
|
||||
m_cols = loader.getAttributeInt(elt,"cols",DEFAULT_COLS);
|
||||
m_maxlength = loader.getAttributeInt(elt,"maxlength",DEFAULT_MAXLENGTH);
|
||||
m_wraptype = loader.getAttribute(elt,"wrap",DEFAULT_WRAP);
|
||||
|
||||
} // end try
|
||||
catch (XMLLoadException e)
|
||||
{ // translate exception before returning
|
||||
throw new DialogException(e);
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end constructor
|
||||
|
||||
protected MultiLineTextField(MultiLineTextField other)
|
||||
{
|
||||
super(other);
|
||||
m_rows = other.m_rows;
|
||||
m_cols = other.m_cols;
|
||||
m_maxlength = other.m_maxlength;
|
||||
m_wraptype = other.m_wraptype;
|
||||
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Overrides from class BaseDialogField
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
protected boolean isNull(Object value)
|
||||
{
|
||||
return StringUtils.isEmpty((String)value);
|
||||
|
||||
} // end isNull
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Abstract implementations from class BaseDialogField
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
protected void renderField(TextRenderControl control, Map render_params)
|
||||
throws IOException, RenderingException
|
||||
{
|
||||
PrintWriter wr = control.getWriter();
|
||||
wr.write("<textarea class=\"content\" name=\"" + getName() + "\" rows=\"" + m_rows + "\" cols=\"" + m_cols
|
||||
+ "\" wrap = \"" + m_wraptype + "\"");
|
||||
if (!isEnabled())
|
||||
wr.write(" disabled=\"disabled\"");
|
||||
wr.write(">");
|
||||
if (m_value!=null)
|
||||
wr.write(StringUtils.encodeHTML(m_value));
|
||||
wr.write("</textarea>");
|
||||
|
||||
} // end renderField
|
||||
|
||||
protected void validateContents(Request r, Object data) throws ValidationException
|
||||
{
|
||||
if ((data!=null) && (m_maxlength>0) && (data.toString().length()>m_maxlength))
|
||||
{ // this value is too long
|
||||
ValidationException ve = new ValidationException(CommonTextField.class,"DialogMessages","text.tooLong");
|
||||
ve.setParameter(0,getCaption());
|
||||
ve.setParameter(1,String.valueOf(m_maxlength));
|
||||
throw ve;
|
||||
|
||||
} // end if
|
||||
|
||||
} // end validateContents
|
||||
|
||||
public Object getValue()
|
||||
{
|
||||
return m_value;
|
||||
|
||||
} // end getValue
|
||||
|
||||
public boolean containsValue()
|
||||
{
|
||||
return StringUtils.isNotEmpty(m_value);
|
||||
|
||||
} // end containsValue
|
||||
|
||||
public void setValue(Object obj)
|
||||
{
|
||||
if (obj==null)
|
||||
m_value = null;
|
||||
else
|
||||
m_value = obj.toString();
|
||||
if ((m_value!=null) && StringUtils.isEmpty(m_value))
|
||||
m_value = null;
|
||||
|
||||
} // end setValue
|
||||
|
||||
public void setValueFrom(Request r)
|
||||
{
|
||||
RequestHelper rh = new RequestHelper(r);
|
||||
m_value = rh.getParameterString(getName());
|
||||
if ((m_value!=null) && StringUtils.isEmpty(m_value))
|
||||
m_value = null;
|
||||
|
||||
} // end setValueFrom
|
||||
|
||||
public void reset()
|
||||
{
|
||||
m_value = null;
|
||||
|
||||
} // end reset
|
||||
|
||||
public Object clone()
|
||||
{
|
||||
return new MultiLineTextField(this);
|
||||
|
||||
} // end clone
|
||||
|
||||
} // end class MultiLineTextField
|
|
@ -72,6 +72,8 @@ class StdItemFactory implements DialogItemFactory
|
|||
return new PasswordField(elt);
|
||||
if (tagname.equals("text"))
|
||||
return new TextField(elt);
|
||||
if (tagname.equals("textbox"))
|
||||
return new MultiLineTextField(elt);
|
||||
if (tagname.equals("tzlist"))
|
||||
return new TimeZoneListField(elt);
|
||||
|
||||
|
|
|
@ -313,8 +313,6 @@ public class BufferTextRenderControl extends BaseDelegatingServiceProvider imple
|
|||
{
|
||||
if (m_type==null)
|
||||
m_type = type;
|
||||
else
|
||||
throw new RenderingException(BufferTextRenderControl.class,"UtilityMessages","buffer.setMime2X");
|
||||
|
||||
} // end setContentType
|
||||
|
||||
|
@ -322,8 +320,6 @@ public class BufferTextRenderControl extends BaseDelegatingServiceProvider imple
|
|||
{
|
||||
if (m_length<0)
|
||||
m_length = length;
|
||||
else
|
||||
throw new RenderingException(BufferTextRenderControl.class,"UtilityMessages","buffer.setLength2X");
|
||||
|
||||
} // end setContentLength
|
||||
|
||||
|
|
35
venice-data/dialogs/sysadmin/email.dlg.xml
Normal file
35
venice-data/dialogs/sysadmin/email.dlg.xml
Normal file
|
@ -0,0 +1,35 @@
|
|||
<?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="email_props" defaultbutton="update">
|
||||
<title>E-Mail Parameters</title>
|
||||
<action>sysadmin/email.js.vs</action>
|
||||
|
||||
<text name="host" caption="SMTP host" required="true" size="32" maxlength="254"/>
|
||||
<text name="fromaddr" caption="Mail sender address" required="true" size="32" maxlength="254"/>
|
||||
<text name="fromname" caption="Mail sender name" required="true" size="32" maxlength="254"/>
|
||||
<text name="mailer" caption="X-Mailer name" required="true" size="32" maxlength="254"/>
|
||||
<text name="uinfo" caption="Header name for user info" required="true" size="32" maxlength="254"/>
|
||||
<textbox name="disclaimer" caption="User disclaimer header lines" required="true" rows="4" cols="60"
|
||||
maxlength="65535" wrap="soft"/>
|
||||
<textbox name="sig" caption="Automatic E-mail signature" required="true" rows="4" cols="60" maxlength="65535"
|
||||
wrap="soft"/>
|
||||
|
||||
<button name="update"/>
|
||||
<button name="cancel"/>
|
||||
</dialog>
|
|
@ -18,35 +18,46 @@
|
|||
-->
|
||||
<dialog name="frame_laf" defaultbutton="update">
|
||||
<title>Frame Look-And-Feel Parameters</title>
|
||||
<action>TODO</action>
|
||||
<action>sysadmin/frame_laf.js.vs</action>
|
||||
|
||||
<header name="bas_hdr" caption="Basic Information"/>
|
||||
<text name="sitetitle" caption="Site Title" required="true" size="32" maxlength="254"/>
|
||||
<text name="siteurl" caption="Site Base URL" required="true" size="32" maxlength="254"/>
|
||||
<text name="template" caption="Frame Template Resource" required="true" size="32" maxlength="254"
|
||||
caption2="(Do NOT change this unless you know what you are doing!)"/>
|
||||
<text name="fptitle" caption="Front Page Title" required="true" size="32" maxlength="254"/>
|
||||
<text name="sitetitle" caption="Site title" required="true" size="32" maxlength="254"/>
|
||||
<text name="siteurl" caption="Site base URL" required="true" size="32" maxlength="254"/>
|
||||
<text name="template" caption="Frame template resource" required="true" size="32" maxlength="254"
|
||||
caption2="(Do NOT change this unless you know what you're doing!)"/>
|
||||
<text name="fptitle" caption="Front page title" required="true" size="32" maxlength="254"/>
|
||||
|
||||
<header name="lay_hdr" caption="Layout Information"/>
|
||||
<int name="lbarwidth" caption="Left Frame Bar Width" caption2="(in pixels)" required="true" min="1" max="512"/>
|
||||
<int name="lbarwidth" caption="Left frame bar width" caption2="(in pixels)" required="true" min="1" max="512"/>
|
||||
<checkbox name="comments" caption="Display optional HTML comments"/>
|
||||
<checkbox name="smarttags" caption="Allow Microsoft Smart Tags to display on pages" caption2="(not recommended)"/>
|
||||
|
||||
<header name="logo_hdr" caption="Site Logo">
|
||||
This image is displayed in the upper-left portion of the frame.
|
||||
</header>
|
||||
<text name="logourl" caption="Site Logo URL" required="true" size="32" maxlength="254"/>
|
||||
<linktypelist name="logourltype" caption="Site Logo URL Type" required="true"/>
|
||||
<int name="logowidth" caption="Site Logo Width" caption2="(in pixels)" required="true" min="1" max="1024"/>
|
||||
<int name="logoheight" caption="Site Logo Height" caption2="(in pixels)" required="true" min="1" max="1024"/>
|
||||
<text name="logourl" caption="Site logo URL" required="true" size="32" maxlength="254"/>
|
||||
<linktypelist name="logourltype" caption="Site logo URL type" required="true"/>
|
||||
<int name="logowidth" caption="Site logo width" caption2="(in pixels)" required="true" min="1" max="1024"/>
|
||||
<int name="logoheight" caption="Site logo height" caption2="(in pixels)" required="true" min="1" max="1024"/>
|
||||
|
||||
<header name="foot_hdr" caption="Page Footer"/>
|
||||
<textbox name="footer" caption="Page footer text" required="true" rows="4" cols="60" maxlength="65535" wrap="soft"/>
|
||||
<int name="fscale" caption="Footer image scaling" caption2="(in percent)" required="true" min="1" max="100"/>
|
||||
<checkbox name="fbreak" caption="Add linebreaks to footer text"/>
|
||||
|
||||
<header name="icon_hdr" caption="Page Icon">
|
||||
This is a small image file of any format used as a page icon by Mozilla and other browsers.
|
||||
</header>
|
||||
<text name="pgi_url" caption="Page Icon URL" size="32" maxlength="254"/>
|
||||
<linktypelist name="pgi_urltype" caption="Page Icon URL Type"/>
|
||||
<text name="pgi_mime" caption="Page Icon MIME Type" size="32" maxlength="254"/>
|
||||
<text name="pgi_url" caption="Page icon URL" size="32" maxlength="254"/>
|
||||
<linktypelist name="pgi_urltype" caption="Page icon URL type"/>
|
||||
<text name="pgi_mime" caption="Page icon MIME type" size="32" maxlength="254"/>
|
||||
|
||||
<header name="fav_hdr" caption="Page FavIcon">
|
||||
This is a Microsoft-format .ICO file used by Internet Explorer.
|
||||
</header>
|
||||
<text name="fav_url" caption="FavIcon URL" size="32" maxlength="254"/>
|
||||
<linktypelist name="fav_urltype" caption="FavIcon URL Type"/>
|
||||
<linktypelist name="fav_urltype" caption="FavIcon URL type"/>
|
||||
|
||||
<button name="update"/>
|
||||
<button name="cancel"/>
|
||||
</dialog>
|
||||
|
|
32
venice-data/dialogs/sysadmin/session.dlg.xml
Normal file
32
venice-data/dialogs/sysadmin/session.dlg.xml
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?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="session_props" defaultbutton="update">
|
||||
<title>Session Parameters</title>
|
||||
<action>sysadmin/session.js.vs</action>
|
||||
|
||||
<text name="init" caption="Session initialization script resource" required="true" size="64" maxlength="254"
|
||||
caption2="(Do NOT change this unless you know what you're doing!)"/>
|
||||
<text name="cookie" caption="Login cookie name" required="true" size="64" maxlength="254"/>
|
||||
<int name="cookieage" caption="Maximum login cookie age" caption2="(in days)" required="true" min="1" max="1825"/>
|
||||
<int name="recovery" caption="Maximum password recovery time" caption2="(in minutes)" required="true"
|
||||
min="5" max="1440"/>
|
||||
|
||||
<button name="update"/>
|
||||
<button name="cancel"/>
|
||||
</dialog>
|
108
venice-data/scripts/sysadmin/email.js
Normal file
108
venice-data/scripts/sysadmin/email.js
Normal file
|
@ -0,0 +1,108 @@
|
|||
// 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(Packages.com.silverwrist.util);
|
||||
importClass(Packages.com.silverwrist.dynamo.Namespaces);
|
||||
importPackage(Packages.com.silverwrist.dynamo.except);
|
||||
importPackage(Packages.com.silverwrist.dynamo.iface);
|
||||
importPackage(Packages.com.silverwrist.dynamo.security);
|
||||
importPackage(Packages.com.silverwrist.dynamo.util);
|
||||
importClass(Packages.com.silverwrist.venice.VeniceNamespaces);
|
||||
importPackage(Packages.com.silverwrist.venice.content);
|
||||
importPackage(Packages.com.silverwrist.venice.frame);
|
||||
|
||||
req = bsf.lookupBean("request");
|
||||
req_help = bsf.lookupBean("request_help");
|
||||
user = vlib.getUser(req);
|
||||
vlib.setOnError(req,"sysadmin/main.js.vs");
|
||||
vlib.setOnErrorType(req,"SERVLET");
|
||||
|
||||
// Make sure we are permitted to be here.
|
||||
srm = cast.querySecurityReferenceMonitor(req_help.getRequestObject(Namespaces.DYNAMO_OBJECT_NAMESPACE,"srm"));
|
||||
acl = srm.getGlobalAcl();
|
||||
if (!( acl.testPermission(user,VeniceNamespaces.MAIL_PROPS_NAMESPACE,"set.property")
|
||||
&& acl.testPermission(user,VeniceNamespaces.MAIL_PROPS_NAMESPACE,"set.block")))
|
||||
dynamo.scriptReturn(vlib.stdErrorBox(req,"Security Error","You are not permitted to modify E-mail settings."));
|
||||
|
||||
// Get the global properties store.
|
||||
globals = vcast.getGlobalPropertiesStore(req);
|
||||
blocks = vcast.getGlobalBlocksStore(req);
|
||||
|
||||
// Create the dialog.
|
||||
loader = cast.queryDialogLoader(req);
|
||||
dlg = loader.loadDialogResource("sysadmin/email.dlg.xml");
|
||||
|
||||
my_ns = VeniceNamespaces.MAIL_PROPS_NAMESPACE; // shortcut
|
||||
|
||||
rc = null;
|
||||
if (req_help.isVerb("GET"))
|
||||
{ // Load the dialog with its initial values.
|
||||
dlg.setValue("host",globals.getObject(my_ns,"smtp.host"));
|
||||
dlg.setValue("fromaddr",globals.getObject(my_ns,"system.mail.from.addr"));
|
||||
dlg.setValue("fromname",globals.getObject(my_ns,"system.mail.from.name"));
|
||||
dlg.setValue("mailer",globals.getObject(my_ns,"mailer.name"));
|
||||
dlg.setValue("uinfo",globals.getObject(my_ns,"user.info.header"));
|
||||
dlg.setValue("disclaimer",blocks.getObject(my_ns,"user.disclaimer"));
|
||||
dlg.setValue("sig",blocks.getObject(my_ns,"signature"));
|
||||
|
||||
} // 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","sysadmin/main.js.vs");
|
||||
else
|
||||
{ // load and validate the dialog
|
||||
dlg.load(req);
|
||||
try
|
||||
{ // validate the dialog
|
||||
dlg.validate(req);
|
||||
|
||||
// set the appropriate values into the system properties
|
||||
globals.setObject(user,my_ns,"smtp.host",dlg.getValue("host"));
|
||||
globals.setObject(user,my_ns,"system.mail.from.addr",dlg.getValue("fromaddr"));
|
||||
globals.setObject(user,my_ns,"system.mail.from.name",dlg.getValue("fromname"));
|
||||
globals.setObject(user,my_ns,"mailer.name",dlg.getValue("mailer"));
|
||||
globals.setObject(user,my_ns,"user.info.header",dlg.getValue("uinfo"));
|
||||
blocks.setObject(user,my_ns,"user.disclaimer",dlg.getValue("disclaimer"));
|
||||
blocks.setObject(user,my_ns,"signature",dlg.getValue("sig"));
|
||||
|
||||
// All done - bounce back to the menu.
|
||||
rc = new Redirect("SERVLET","sysadmin/main.js.vs");
|
||||
|
||||
} // end try
|
||||
catch (e)
|
||||
{ // thrown an exception from the above process - what sort?
|
||||
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","sysadmin/main.js.vs");
|
||||
else if (etype.match(/DynamoSecurityException/))
|
||||
rc = new ErrorBox("Security Error",e,"SERVLET","sysadmin/main.js.vs");
|
||||
else
|
||||
rc = new ErrorBox("Unknown Exception",e,"SERVLET","sysadmin/main.js.vs");
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end else
|
||||
|
||||
} // end else
|
||||
|
||||
if (rc==null)
|
||||
rc = new FrameDialog(dlg); // output dialog if we don't have another value
|
||||
dynamo.scriptOutput(rc);
|
149
venice-data/scripts/sysadmin/frame_laf.js
Normal file
149
venice-data/scripts/sysadmin/frame_laf.js
Normal file
|
@ -0,0 +1,149 @@
|
|||
// 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(Packages.com.silverwrist.util);
|
||||
importClass(Packages.com.silverwrist.dynamo.Namespaces);
|
||||
importPackage(Packages.com.silverwrist.dynamo.except);
|
||||
importPackage(Packages.com.silverwrist.dynamo.iface);
|
||||
importPackage(Packages.com.silverwrist.dynamo.security);
|
||||
importPackage(Packages.com.silverwrist.dynamo.util);
|
||||
importClass(Packages.com.silverwrist.venice.VeniceNamespaces);
|
||||
importPackage(Packages.com.silverwrist.venice.content);
|
||||
importPackage(Packages.com.silverwrist.venice.frame);
|
||||
|
||||
req = bsf.lookupBean("request");
|
||||
req_help = bsf.lookupBean("request_help");
|
||||
user = vlib.getUser(req);
|
||||
vlib.setOnError(req,"sysadmin/main.js.vs");
|
||||
vlib.setOnErrorType(req,"SERVLET");
|
||||
|
||||
// Make sure we are permitted to be here.
|
||||
srm = cast.querySecurityReferenceMonitor(req_help.getRequestObject(Namespaces.DYNAMO_OBJECT_NAMESPACE,"srm"));
|
||||
acl = srm.getGlobalAcl();
|
||||
if (!( acl.testPermission(user,VeniceNamespaces.FRAME_LAF_NAMESPACE,"set.property")
|
||||
&& acl.testPermission(user,VeniceNamespaces.FRAME_LAF_NAMESPACE,"set.block")))
|
||||
dynamo.scriptReturn(vlib.stdErrorBox(req,"Security Error",
|
||||
"You are not permitted to modify frame look-and-feel settings."));
|
||||
|
||||
// Get the global properties store.
|
||||
globals = vcast.getGlobalPropertiesStore(req);
|
||||
blocks = vcast.getGlobalBlocksStore(req);
|
||||
|
||||
// Create the dialog.
|
||||
loader = cast.queryDialogLoader(req);
|
||||
dlg = loader.loadDialogResource("sysadmin/frame_laf.dlg.xml");
|
||||
|
||||
my_ns = VeniceNamespaces.FRAME_LAF_NAMESPACE; // shortcut
|
||||
|
||||
rc = null;
|
||||
if (req_help.isVerb("GET"))
|
||||
{ // Load the dialog with its initial values.
|
||||
optset = cast.toOptionSet(globals.getObject(my_ns,"optionset"));
|
||||
|
||||
dlg.setValue("sitetitle",globals.getObject(my_ns,"site.title"));
|
||||
dlg.setValue("siteurl",globals.getObject(my_ns,"site.url"));
|
||||
dlg.setValue("template",globals.getObject(my_ns,"frame.template"));
|
||||
dlg.setValue("fptitle",globals.getObject(my_ns,"frontpage.title"));
|
||||
|
||||
dlg.setValue("lbarwidth",globals.getObject(my_ns,"left.bar.width"));
|
||||
dlg.setValue("comments",cast.booleanObject(optset.get(0)));
|
||||
dlg.setValue("smarttags",cast.booleanObject(optset.get(1)));
|
||||
|
||||
dlg.setValue("logourl",globals.getObject(my_ns,"site.logo.url"));
|
||||
dlg.setValue("logourltype",globals.getObject(my_ns,"site.logo.url.type"));
|
||||
dlg.setValue("logowidth",globals.getObject(my_ns,"site.logo.width"));
|
||||
dlg.setValue("logoheight",globals.getObject(my_ns,"site.logo.height"));
|
||||
|
||||
dlg.setValue("footer",blocks.getObject(my_ns,"footer"));
|
||||
dlg.setValue("fscale",globals.getObject(my_ns,"footer.logo.scale"));
|
||||
dlg.setValue("fbreak",cast.booleanObject(optset.get(2)));
|
||||
|
||||
dlg.setValue("pgi_url",globals.getObject(my_ns,"page.icon.url"));
|
||||
dlg.setValue("pgi_urltype",globals.getObject(my_ns,"page.icon.url.type"));
|
||||
dlg.setValue("pgi_mime",globals.getObject(my_ns,"page.icon.type"));
|
||||
|
||||
dlg.setValue("fav_url",globals.getObject(my_ns,"page.favicon.url"));
|
||||
dlg.setValue("fav_urltype",globals.getObject(my_ns,"page.favicon.url.type"));
|
||||
|
||||
} // 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","sysadmin/main.js.vs");
|
||||
else
|
||||
{ // load and validate the dialog
|
||||
dlg.load(req);
|
||||
try
|
||||
{ // validate the dialog
|
||||
dlg.validate(req);
|
||||
|
||||
// set the appropriate values into the system properties
|
||||
optset = cast.toOptionSet(globals.getObject(my_ns,"optionset"));
|
||||
|
||||
globals.setObject(user,my_ns,"site.title",dlg.getValue("sitetitle"));
|
||||
globals.setObject(user,my_ns,"site.url",dlg.getValue("siteurl"));
|
||||
globals.setObject(user,my_ns,"frame.template",dlg.getValue("template"));
|
||||
globals.setObject(user,my_ns,"frontpage.title",dlg.getValue("fptitle"));
|
||||
|
||||
globals.setObject(user,my_ns,"left.bar.width",dlg.getValue("lbarwidth"));
|
||||
optset.set(0,cast.toBoolean(dlg.getValue("comments")));
|
||||
optset.set(1,cast.toBoolean(dlg.getValue("smarttags")));
|
||||
|
||||
globals.setObject(user,my_ns,"site.logo.url",dlg.getValue("logourl"));
|
||||
globals.setObject(user,my_ns,"site.logo.url.type",dlg.getValue("logourltype"));
|
||||
globals.setObject(user,my_ns,"site.logo.width",dlg.getValue("logowidth"));
|
||||
globals.setObject(user,my_ns,"site.logo.height",dlg.getValue("logoheight"));
|
||||
|
||||
blocks.setObject(user,my_ns,"footer",dlg.getValue("footer"));
|
||||
globals.setObject(user,my_ns,"footer.logo.scale",dlg.getValue("fscale"));
|
||||
optset.set(2,cast.toBoolean(dlg.getValue("fbreak")));
|
||||
|
||||
globals.setObject(user,my_ns,"page.icon.url",dlg.getValue("pgi_url"));
|
||||
globals.setObject(user,my_ns,"page.icon.url.type",dlg.getValue("pgi_urltype"));
|
||||
globals.setObject(user,my_ns,"page.icon.type",dlg.getValue("pgi_mime"));
|
||||
|
||||
globals.setObject(user,my_ns,"page.favicon.url",dlg.getValue("fav_url"));
|
||||
globals.setObject(user,my_ns,"page.favicon.url.type",dlg.getValue("fav_urltype"));
|
||||
|
||||
globals.setObject(user,my_ns,"optionset",optset);
|
||||
|
||||
// All done - bounce back to the menu.
|
||||
rc = new Redirect("SERVLET","sysadmin/main.js.vs");
|
||||
|
||||
} // end try
|
||||
catch (e)
|
||||
{ // thrown an exception from the above process - what sort?
|
||||
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","sysadmin/main.js.vs");
|
||||
else if (etype.match(/DynamoSecurityException/))
|
||||
rc = new ErrorBox("Security Error",e,"SERVLET","sysadmin/main.js.vs");
|
||||
else
|
||||
rc = new ErrorBox("Unknown Exception",e,"SERVLET","sysadmin/main.js.vs");
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end else
|
||||
|
||||
} // end else
|
||||
|
||||
if (rc==null)
|
||||
rc = new FrameDialog(dlg); // output dialog if we don't have another value
|
||||
dynamo.scriptOutput(rc);
|
35
venice-data/scripts/sysadmin/main.js
Normal file
35
venice-data/scripts/sysadmin/main.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
// 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):
|
||||
|
||||
importClass(Packages.com.silverwrist.dynamo.Namespaces);
|
||||
importPackage(Packages.com.silverwrist.dynamo.except);
|
||||
importPackage(Packages.com.silverwrist.dynamo.iface);
|
||||
importPackage(Packages.com.silverwrist.dynamo.security);
|
||||
importClass(Packages.com.silverwrist.venice.VeniceNamespaces);
|
||||
importPackage(Packages.com.silverwrist.venice.iface);
|
||||
importPackage(Packages.com.silverwrist.venice.menu);
|
||||
|
||||
req = bsf.lookupBean("request");
|
||||
req_help = bsf.lookupBean("request_help");
|
||||
user = vlib.getUser(req);
|
||||
|
||||
// Get the menu provider and the menu.
|
||||
mprov = vcast.queryMenuProvider(req_help.getRequestObject(Namespaces.DYNAMO_OBJECT_NAMESPACE,"venice-menus"));
|
||||
srm = cast.querySecurityReferenceMonitor(req_help.getRequestObject(Namespaces.DYNAMO_OBJECT_NAMESPACE,"srm"));
|
||||
aclids = cast.newIntArray(1);
|
||||
aclids[0] = srm.getGlobalAcl().getAclID();
|
||||
menu = mprov.getStandardMenu(user,VeniceNamespaces.SYSTEM_PERMS_NAMESPACE,"system.admin",aclids);
|
||||
dynamo.scriptOutput(menu);
|
101
venice-data/scripts/sysadmin/session.js
Normal file
101
venice-data/scripts/sysadmin/session.js
Normal file
|
@ -0,0 +1,101 @@
|
|||
// 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(Packages.com.silverwrist.util);
|
||||
importClass(Packages.com.silverwrist.dynamo.Namespaces);
|
||||
importPackage(Packages.com.silverwrist.dynamo.except);
|
||||
importPackage(Packages.com.silverwrist.dynamo.iface);
|
||||
importPackage(Packages.com.silverwrist.dynamo.security);
|
||||
importPackage(Packages.com.silverwrist.dynamo.util);
|
||||
importClass(Packages.com.silverwrist.venice.VeniceNamespaces);
|
||||
importPackage(Packages.com.silverwrist.venice.content);
|
||||
importPackage(Packages.com.silverwrist.venice.frame);
|
||||
|
||||
req = bsf.lookupBean("request");
|
||||
req_help = bsf.lookupBean("request_help");
|
||||
user = vlib.getUser(req);
|
||||
vlib.setOnError(req,"sysadmin/main.js.vs");
|
||||
vlib.setOnErrorType(req,"SERVLET");
|
||||
|
||||
// Make sure we are permitted to be here.
|
||||
srm = cast.querySecurityReferenceMonitor(req_help.getRequestObject(Namespaces.DYNAMO_OBJECT_NAMESPACE,"srm"));
|
||||
acl = srm.getGlobalAcl();
|
||||
if (!(acl.testPermission(user,VeniceNamespaces.SESSION_CONTROL_NAMESPACE,"set.property")))
|
||||
dynamo.scriptReturn(vlib.stdErrorBox(req,"Security Error","You are not permitted to modify E-mail settings."));
|
||||
|
||||
// Get the global properties store.
|
||||
globals = vcast.getGlobalPropertiesStore(req);
|
||||
blocks = vcast.getGlobalBlocksStore(req);
|
||||
|
||||
// Create the dialog.
|
||||
loader = cast.queryDialogLoader(req);
|
||||
dlg = loader.loadDialogResource("sysadmin/session.dlg.xml");
|
||||
|
||||
my_ns = VeniceNamespaces.SESSION_CONTROL_NAMESPACE; // shortcut
|
||||
|
||||
rc = null;
|
||||
if (req_help.isVerb("GET"))
|
||||
{ // load the default values into the dialog
|
||||
dlg.setValue("init",globals.getObject(my_ns,"session.init.script"));
|
||||
dlg.setValue("cookie",globals.getObject(my_ns,"login.cookie"));
|
||||
dlg.setValue("cookieage",globals.getObject(my_ns,"login.cookie.maxage"));
|
||||
dlg.setValue("recovery",globals.getObject(my_ns,"password.recovery.time"));
|
||||
|
||||
} // 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","sysadmin/main.js.vs");
|
||||
else
|
||||
{ // load and validate the dialog
|
||||
dlg.load(req);
|
||||
try
|
||||
{ // validate the dialog
|
||||
dlg.validate(req);
|
||||
|
||||
// set the appropriate values into the system properties
|
||||
globals.setObject(user,my_ns,"session.init.script",dlg.getValue("init"));
|
||||
globals.setObject(user,my_ns,"login.cookie",dlg.getValue("cookie"));
|
||||
globals.setObject(user,my_ns,"login.cookie.maxage",dlg.getValue("cookieage"));
|
||||
globals.setObject(user,my_ns,"password.recovery.time",dlg.getValue("recovery"));
|
||||
|
||||
// All done - bounce back to the menu.
|
||||
rc = new Redirect("SERVLET","sysadmin/main.js.vs");
|
||||
|
||||
} // end try
|
||||
catch (e)
|
||||
{ // thrown an exception from the above process - what sort?
|
||||
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","sysadmin/main.js.vs");
|
||||
else if (etype.match(/DynamoSecurityException/))
|
||||
rc = new ErrorBox("Security Error",e,"SERVLET","sysadmin/main.js.vs");
|
||||
else
|
||||
rc = new ErrorBox("Unknown Exception",e,"SERVLET","sysadmin/main.js.vs");
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end else
|
||||
|
||||
} // end else
|
||||
|
||||
if (rc==null)
|
||||
rc = new FrameDialog(dlg); // output dialog if we don't have another value
|
||||
dynamo.scriptOutput(rc);
|
|
@ -118,6 +118,7 @@
|
|||
</div>
|
||||
<div> </div>
|
||||
<div class="frameleft">#render( $fixed_menu )</div>
|
||||
<img src="#formatURL( "IMAGE" "spacer.gif" )" width="$lbar_width" height="1" border="0" />
|
||||
#comment( "END LEFT SIDEBAR" )
|
||||
</td>
|
||||
|
||||
|
|
BIN
venice-web/images/spacer.gif
Normal file
BIN
venice-web/images/spacer.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 43 B |
Loading…
Reference in New Issue
Block a user