implemented most of the Manage Conference functions - set pseud, fixseen,
conference edit, alias management, poster and lurker reports
This commit is contained in:
parent
f706cdaf5f
commit
0070e4fb44
8
TODO
8
TODO
|
@ -29,9 +29,15 @@ Lots!
|
|||
- Slippage during posting is still untested.
|
||||
|
||||
- Functions still to do on conferencing "topics" page:
|
||||
Manage Conference
|
||||
Add Conference To Hotlist
|
||||
|
||||
- Functions still to do on "manage conference" page:
|
||||
Manage members
|
||||
Delete conference
|
||||
|
||||
- We need a "manage" button at conference list level so we can use that to
|
||||
manage the ordering of conferences.
|
||||
|
||||
- Implement conference hotlist for users.
|
||||
|
||||
- Not everybody likes purple. Provide a way to change the default colors.
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
# 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 Community System.
|
||||
# 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
|
||||
|
|
32
src/com/silverwrist/venice/core/ActiveUser.java
Normal file
32
src/com/silverwrist/venice/core/ActiveUser.java
Normal file
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||
* (the "License"); you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||
* language governing rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Venice Web Communities System.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||
* Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
package com.silverwrist.venice.core;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public interface ActiveUser
|
||||
{
|
||||
public abstract int getUID();
|
||||
|
||||
public abstract String getName();
|
||||
|
||||
public abstract Date getLastRead();
|
||||
|
||||
public abstract Date getLastWrite();
|
||||
|
||||
} // end interface ActiveUser
|
|
@ -7,7 +7,7 @@
|
|||
* 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 Community System.
|
||||
* 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
|
||||
|
@ -119,4 +119,16 @@ public interface ConferenceContext
|
|||
|
||||
public abstract void fixSeen() throws DataException;
|
||||
|
||||
public abstract List getActivePosters(int skip, int limit) throws DataException;
|
||||
|
||||
public abstract List getActivePosters(int limit) throws DataException;
|
||||
|
||||
public abstract List getActivePosters() throws DataException;
|
||||
|
||||
public abstract List getActiveReaders(int skip, int limit) throws DataException;
|
||||
|
||||
public abstract List getActiveReaders(int limit) throws DataException;
|
||||
|
||||
public abstract List getActiveReaders() throws DataException;
|
||||
|
||||
} // end interface ConferenceContext
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* 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 Community System.
|
||||
* 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
|
||||
|
|
78
src/com/silverwrist/venice/core/impl/ActiveUserImpl.java
Normal file
78
src/com/silverwrist/venice/core/impl/ActiveUserImpl.java
Normal file
|
@ -0,0 +1,78 @@
|
|||
/*
|
||||
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||
* (the "License"); you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||
* language governing rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Venice Web Communities System.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||
* Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
package com.silverwrist.venice.core.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import com.silverwrist.venice.core.ActiveUser;
|
||||
|
||||
class ActiveUserImpl implements ActiveUser
|
||||
{
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Attributes
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private int uid;
|
||||
private String name;
|
||||
private Date last_read;
|
||||
private Date last_write;
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructor
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
ActiveUserImpl(int uid, String name, Date last_read, Date last_write)
|
||||
{
|
||||
this.uid = uid;
|
||||
this.name = name;
|
||||
this.last_read = last_read;
|
||||
this.last_write = last_write;
|
||||
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface ActiveUser
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public int getUID()
|
||||
{
|
||||
return uid;
|
||||
|
||||
} // end getUID
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return name;
|
||||
|
||||
} // end getName
|
||||
|
||||
public Date getLastRead()
|
||||
{
|
||||
return last_read;
|
||||
|
||||
} // end getLastRead
|
||||
|
||||
public Date getLastWrite()
|
||||
{
|
||||
return last_write;
|
||||
|
||||
} // end getLastWrite
|
||||
|
||||
} // end class ActiveUserImpl
|
|
@ -7,7 +7,7 @@
|
|||
* 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 Community System.
|
||||
* 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
|
||||
|
@ -648,7 +648,7 @@ class ConferenceCoreData implements ConferenceData
|
|||
if (did_it)
|
||||
{ // set the database's update date and generate a new audit record
|
||||
touchUpdate(conn);
|
||||
if (cached_alias.equals(alias))
|
||||
if ((cached_alias!=null) && cached_alias.equals(alias))
|
||||
cached_alias = null; // also release the cached alias and force a re-get
|
||||
ar = new AuditRecord(AuditRecord.CONF_ALIAS,sig.realUID(),sig.userRemoteAddress(),sig.realSIGID(),
|
||||
"conf=" + String.valueOf(confid),"remove=" + alias);
|
||||
|
|
|
@ -738,6 +738,9 @@ class ConferenceUserContextImpl implements ConferenceContext, ConferenceBackend
|
|||
|
||||
public void setDefaultPseud(String val) throws DataException
|
||||
{
|
||||
if (sig.userIsAnonymous())
|
||||
return; // anonymous user can't change pseud
|
||||
|
||||
Connection conn = null; // pooled database connection
|
||||
|
||||
try
|
||||
|
@ -952,6 +955,9 @@ class ConferenceUserContextImpl implements ConferenceContext, ConferenceBackend
|
|||
|
||||
public void fixSeen() throws DataException
|
||||
{
|
||||
if (sig.userIsAnonymous())
|
||||
return; // anonymous user can't fixseen
|
||||
|
||||
Connection conn = null;
|
||||
|
||||
try
|
||||
|
@ -1012,6 +1018,126 @@ class ConferenceUserContextImpl implements ConferenceContext, ConferenceBackend
|
|||
|
||||
} // end fixSeen
|
||||
|
||||
public List getActivePosters(int skip, int limit) throws DataException
|
||||
{
|
||||
Connection conn = null;
|
||||
Vector rc = new Vector();
|
||||
|
||||
try
|
||||
{ // retrieve a connection from the datapool
|
||||
conn = datapool.getConnection();
|
||||
Statement stmt = conn.createStatement();
|
||||
|
||||
// create the SQL statement to retrieve all posters
|
||||
StringBuffer sql =
|
||||
new StringBuffer("SELECT s.uid, u.username, s.last_read, s.last_post FROM confsettings s, "
|
||||
+ "users u WHERE u.uid = s.uid AND s.confid = ");
|
||||
sql.append(confid).append(" AND u.is_anon = 0 AND ISNULL(s.last_post) = 0 ORDER BY s.last_post DESC");
|
||||
if ((skip>=0) && (limit>0))
|
||||
sql.append(" LIMIT ").append(skip).append(", ").append(limit);
|
||||
sql.append(';');
|
||||
|
||||
// execute the statement
|
||||
ResultSet rs = stmt.executeQuery(sql.toString());
|
||||
|
||||
while (rs.next())
|
||||
{ // return all the records as ActiveUser data elements
|
||||
ActiveUser usr = new ActiveUserImpl(rs.getInt(1),rs.getString(2),SQLUtil.getFullDateTime(rs,3),
|
||||
SQLUtil.getFullDateTime(rs,4));
|
||||
rc.add(usr);
|
||||
|
||||
} // end while
|
||||
|
||||
} // end try
|
||||
catch (SQLException e)
|
||||
{ // this becomes a DataException
|
||||
logger.error("DB error getting active poster list: " + e.getMessage(),e);
|
||||
throw new DataException("unable to get active poster listing: " + e.getMessage(),e);
|
||||
|
||||
} // end catch
|
||||
finally
|
||||
{ // make sure we release the connection before we go
|
||||
if (conn!=null)
|
||||
datapool.releaseConnection(conn);
|
||||
|
||||
} // end finally
|
||||
|
||||
return new ReadOnlyVector(rc);
|
||||
|
||||
} // end getActivePosters
|
||||
|
||||
public List getActivePosters(int limit) throws DataException
|
||||
{
|
||||
return getActivePosters(0,limit);
|
||||
|
||||
} // end getActivePosters
|
||||
|
||||
public List getActivePosters() throws DataException
|
||||
{
|
||||
return getActivePosters(-1,-1);
|
||||
|
||||
} // end getActivePosters
|
||||
|
||||
public List getActiveReaders(int skip, int limit) throws DataException
|
||||
{
|
||||
Connection conn = null;
|
||||
Vector rc = new Vector();
|
||||
|
||||
try
|
||||
{ // retrieve a connection from the datapool
|
||||
conn = datapool.getConnection();
|
||||
Statement stmt = conn.createStatement();
|
||||
|
||||
// create the SQL statement to retrieve all readers
|
||||
StringBuffer sql =
|
||||
new StringBuffer("SELECT s.uid, u.username, s.last_read, s.last_post FROM confsettings s, "
|
||||
+ "users u WHERE u.uid = s.uid AND s.confid = ");
|
||||
sql.append(confid).append(" AND u.is_anon = 0 AND ISNULL(s.last_read) = 0 ORDER BY s.last_read DESC");
|
||||
if ((skip>=0) && (limit>0))
|
||||
sql.append(" LIMIT ").append(skip).append(", ").append(limit);
|
||||
sql.append(';');
|
||||
|
||||
// execute the statement
|
||||
ResultSet rs = stmt.executeQuery(sql.toString());
|
||||
|
||||
while (rs.next())
|
||||
{ // return all the records as ActiveUser data elements
|
||||
ActiveUser usr = new ActiveUserImpl(rs.getInt(1),rs.getString(2),SQLUtil.getFullDateTime(rs,3),
|
||||
SQLUtil.getFullDateTime(rs,4));
|
||||
rc.add(usr);
|
||||
|
||||
} // end while
|
||||
|
||||
} // end try
|
||||
catch (SQLException e)
|
||||
{ // this becomes a DataException
|
||||
logger.error("DB error getting active reader list: " + e.getMessage(),e);
|
||||
throw new DataException("unable to get active reader listing: " + e.getMessage(),e);
|
||||
|
||||
} // end catch
|
||||
finally
|
||||
{ // make sure we release the connection before we go
|
||||
if (conn!=null)
|
||||
datapool.releaseConnection(conn);
|
||||
|
||||
} // end finally
|
||||
|
||||
return new ReadOnlyVector(rc);
|
||||
|
||||
} // end getActiveReaders
|
||||
|
||||
public List getActiveReaders(int limit) throws DataException
|
||||
{
|
||||
return getActiveReaders(0,limit);
|
||||
|
||||
} // end getActiveReaders
|
||||
|
||||
public List getActiveReaders() throws DataException
|
||||
{
|
||||
return getActiveReaders(-1,-1);
|
||||
|
||||
} // end getActiveReaders
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface UserBackend
|
||||
*--------------------------------------------------------------------------------
|
||||
|
@ -1041,6 +1167,12 @@ class ConferenceUserContextImpl implements ConferenceContext, ConferenceBackend
|
|||
|
||||
} // end userDefaultPseud
|
||||
|
||||
public boolean userIsAnonymous()
|
||||
{
|
||||
return sig.userIsAnonymous();
|
||||
|
||||
} // end userIsAnonymous
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface SIGBackend
|
||||
*--------------------------------------------------------------------------------
|
||||
|
@ -1104,6 +1236,9 @@ class ConferenceUserContextImpl implements ConferenceContext, ConferenceBackend
|
|||
|
||||
public void touchRead(Connection conn) throws SQLException
|
||||
{
|
||||
if (sig.userIsAnonymous())
|
||||
return; // anonymous user can't update squat
|
||||
|
||||
Statement stmt = conn.createStatement();
|
||||
StringBuffer sql = new StringBuffer();
|
||||
|
||||
|
@ -1133,6 +1268,9 @@ class ConferenceUserContextImpl implements ConferenceContext, ConferenceBackend
|
|||
|
||||
public void touchPost(Connection conn, java.util.Date post_date) throws SQLException
|
||||
{
|
||||
if (sig.userIsAnonymous())
|
||||
return; // anonymous user can't update squat
|
||||
|
||||
Statement stmt = conn.createStatement();
|
||||
StringBuffer sql = new StringBuffer();
|
||||
|
||||
|
|
|
@ -1102,6 +1102,12 @@ class SIGUserContextImpl implements SIGContext, SIGBackend
|
|||
|
||||
} // end userDefaultPseud
|
||||
|
||||
public boolean userIsAnonymous()
|
||||
{
|
||||
return user.userIsAnonymous();
|
||||
|
||||
} // end userIsAnonymous
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface SIGBackend
|
||||
*--------------------------------------------------------------------------------
|
||||
|
|
|
@ -443,13 +443,13 @@ class TopicMessageUserContextImpl implements TopicMessageContext
|
|||
|
||||
public boolean canHide()
|
||||
{
|
||||
return ((creator_uid==conf.realUID()) || conf.userCanHide());
|
||||
return (((creator_uid==conf.realUID()) && (!conf.userIsAnonymous())) || conf.userCanHide());
|
||||
|
||||
} // end canHide
|
||||
|
||||
public boolean canScribble()
|
||||
{
|
||||
return ((creator_uid==conf.realUID()) || conf.userCanScribble());
|
||||
return (((creator_uid==conf.realUID()) && (!conf.userIsAnonymous())) || conf.userCanScribble());
|
||||
|
||||
} // end canScribble
|
||||
|
||||
|
@ -461,6 +461,8 @@ class TopicMessageUserContextImpl implements TopicMessageContext
|
|||
|
||||
public void setHidden(boolean flag) throws DataException, AccessError
|
||||
{
|
||||
if (conf.userIsAnonymous())
|
||||
return; // no-op
|
||||
if ((creator_uid!=conf.realUID()) && !(conf.userCanHide()))
|
||||
{ // we can't change the hidden status!
|
||||
logger.error("trying to set hidden status of post w/o permission!");
|
||||
|
@ -468,7 +470,7 @@ class TopicMessageUserContextImpl implements TopicMessageContext
|
|||
|
||||
} // end if
|
||||
|
||||
if (nuked || (scribble_date!=null))
|
||||
if (nuked || (scribble_date!=null) || (hidden==flag))
|
||||
return; // changing the status of a nuked or scribbled post is futile
|
||||
|
||||
Connection conn = null;
|
||||
|
@ -539,6 +541,8 @@ class TopicMessageUserContextImpl implements TopicMessageContext
|
|||
|
||||
public void scribble() throws DataException, AccessError
|
||||
{
|
||||
if (conf.userIsAnonymous())
|
||||
return; // no-op
|
||||
if ((creator_uid!=conf.realUID()) && !(conf.userCanScribble()))
|
||||
{ // we can't scribble this post
|
||||
logger.error("trying to scribble post w/o permission!");
|
||||
|
|
|
@ -398,7 +398,7 @@ class TopicUserContextImpl implements TopicContext
|
|||
|
||||
public void setHidden(boolean flag) throws DataException
|
||||
{
|
||||
if ((hidden==flag) || deleted)
|
||||
if ((hidden==flag) || deleted || conf.userIsAnonymous())
|
||||
return; // no-op
|
||||
|
||||
Connection conn = null; // pooled database connection
|
||||
|
@ -474,6 +474,8 @@ class TopicUserContextImpl implements TopicContext
|
|||
|
||||
public void setUnreadMessages(int count) throws DataException
|
||||
{
|
||||
if (conf.userIsAnonymous())
|
||||
return; // no-op
|
||||
if (count>(top_message+1)) // constrain count to [0, top_message+1]
|
||||
count = top_message + 1;
|
||||
else if (count<0)
|
||||
|
|
|
@ -29,4 +29,6 @@ public interface UserBackend
|
|||
|
||||
public abstract String userDefaultPseud() throws DataException;
|
||||
|
||||
public abstract boolean userIsAnonymous();
|
||||
|
||||
} // end interface UserBackend
|
||||
|
|
|
@ -924,6 +924,12 @@ class UserContextImpl implements UserContext, UserBackend
|
|||
|
||||
} // end userDefaultPseud
|
||||
|
||||
public boolean userIsAnonymous()
|
||||
{
|
||||
return is_anon;
|
||||
|
||||
} // end userIsAnonymous
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Operations private to implementation package
|
||||
*--------------------------------------------------------------------------------
|
||||
|
|
|
@ -153,7 +153,7 @@ public class Role implements Comparable, SecLevels
|
|||
|
||||
if (conf_high==null)
|
||||
{ // initialize the "conference highband" vector
|
||||
conf_high = new Vector(1);
|
||||
conf_high = new Vector(2);
|
||||
conf_high.addElement(new Role(CONFERENCE_ANYADMIN,"Any Conference Administrator"));
|
||||
conf_high.addElement(new Role(CONFERENCE_HOST,"Conference Host"));
|
||||
conf_high.trimToSize();
|
||||
|
@ -278,4 +278,69 @@ public class Role implements Comparable, SecLevels
|
|||
|
||||
} // end getSIGJoinList
|
||||
|
||||
public static List getConferenceReadList()
|
||||
{
|
||||
initAllSets();
|
||||
Vector rc = new Vector();
|
||||
rc.addAll(global_low);
|
||||
rc.addAll(sig_low);
|
||||
rc.addAll(conf_low);
|
||||
rc.add(unrestricted_user);
|
||||
return new ReadOnlyVector(rc);
|
||||
|
||||
} // end getConferenceReadList
|
||||
|
||||
public static List getConferencePostList()
|
||||
{
|
||||
initAllSets();
|
||||
Vector rc = new Vector();
|
||||
rc.addAll(global_low);
|
||||
rc.addAll(sig_low);
|
||||
rc.addAll(conf_low);
|
||||
rc.add(unrestricted_user);
|
||||
rc.addAll(conf_high);
|
||||
return new ReadOnlyVector(rc);
|
||||
|
||||
} // return getConferencePostList
|
||||
|
||||
public static List getConferenceCreateList()
|
||||
{
|
||||
return getConferencePostList();
|
||||
|
||||
} // end getConferenceChangeList
|
||||
|
||||
public static List getConferenceHideList()
|
||||
{
|
||||
initAllSets();
|
||||
Vector rc = new Vector();
|
||||
rc.addAll(conf_high);
|
||||
rc.addAll(sig_high);
|
||||
rc.add(global_high.firstElement());
|
||||
return new ReadOnlyVector(rc);
|
||||
|
||||
} // end getConferenceHideList
|
||||
|
||||
public static List getConferenceNukeList()
|
||||
{
|
||||
return getConferenceHideList();
|
||||
|
||||
} // end getConferenceNukeList
|
||||
|
||||
public static List getConferenceChangeList()
|
||||
{
|
||||
return getConferenceHideList();
|
||||
|
||||
} // end getConferenceChangeList
|
||||
|
||||
public static List getConferenceDeleteList()
|
||||
{
|
||||
initAllSets();
|
||||
Vector rc = new Vector();
|
||||
rc.addAll(sig_high);
|
||||
rc.addAll(global_high);
|
||||
rc.add(no_access);
|
||||
return new ReadOnlyVector(rc);
|
||||
|
||||
} // end getConferenceDeleteList
|
||||
|
||||
} // end class Role
|
||||
|
|
|
@ -21,6 +21,7 @@ import java.io.*;
|
|||
import javax.servlet.*;
|
||||
import javax.servlet.http.*;
|
||||
import org.apache.log4j.*;
|
||||
import com.silverwrist.util.StringUtil;
|
||||
import com.silverwrist.venice.ValidationException;
|
||||
import com.silverwrist.venice.core.*;
|
||||
import com.silverwrist.venice.servlets.format.*;
|
||||
|
@ -56,6 +57,23 @@ public class ConfOperations extends VeniceServlet
|
|||
|
||||
} // end makeCreateConferenceDialog
|
||||
|
||||
private EditConferenceDialog makeEditConferenceDialog() throws ServletException
|
||||
{
|
||||
final String desired_name = "EditConferenceDialog";
|
||||
DialogCache cache = DialogCache.getDialogCache(getServletContext());
|
||||
|
||||
if (!(cache.isCached(desired_name)))
|
||||
{ // create a template and save it off
|
||||
EditConferenceDialog template = new EditConferenceDialog();
|
||||
cache.saveTemplate(template);
|
||||
|
||||
} // end if
|
||||
|
||||
// return a new copy
|
||||
return (EditConferenceDialog)(cache.getNewDialog(desired_name));
|
||||
|
||||
} // end makeEditConferenceDialog
|
||||
|
||||
private static boolean validateNewTopic(ServletRequest request, String on_error) throws ErrorBox
|
||||
{
|
||||
boolean is_title_null, is_zp_null;
|
||||
|
@ -167,6 +185,106 @@ public class ConfOperations extends VeniceServlet
|
|||
|
||||
} // end if ("FX" command)
|
||||
|
||||
if (cmd.equals("E"))
|
||||
{ // "E" = "Edit Conference Settings" (requires conference parameter)
|
||||
ConferenceContext conf = getConferenceParameter(request,sig,true,on_error);
|
||||
on_error = "confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=Q";
|
||||
|
||||
if (!(conf.canChangeConference()))
|
||||
return new ErrorBox("Access Error","You are not permitted to change this conference's settings.",
|
||||
on_error);
|
||||
|
||||
// create and return the Edit Conference dialog
|
||||
EditConferenceDialog dlg = makeEditConferenceDialog();
|
||||
try
|
||||
{ // set up and return the dialog
|
||||
dlg.setupDialog(sig,conf);
|
||||
setMyLocation(request,"confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=E");
|
||||
return dlg;
|
||||
|
||||
} // end try
|
||||
catch (AccessError ae)
|
||||
{ // some sort of access error - display an error dialog
|
||||
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
||||
|
||||
} // end catch
|
||||
catch (DataException de)
|
||||
{ // database error retrieving the conference information
|
||||
return new ErrorBox("Database Error","Database error getting conference information: "
|
||||
+ de.getMessage(),on_error);
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end if ("E" command)
|
||||
|
||||
if (cmd.equals("A"))
|
||||
{ // "A" = "Manage Aliases" (requires conference parameter)
|
||||
ConferenceContext conf = getConferenceParameter(request,sig,true,on_error);
|
||||
on_error = "confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=Q";
|
||||
|
||||
if (!(conf.canChangeConference()))
|
||||
return new ErrorBox("Access Error","You are not permitted to change this conference's aliases.",
|
||||
on_error);
|
||||
|
||||
// process alias removal link
|
||||
String remove = request.getParameter("rem");
|
||||
if (!(StringUtil.isStringEmpty(remove)))
|
||||
{ // do removal of an alias
|
||||
try
|
||||
{ // go ahead and remove the alias!
|
||||
conf.removeAlias(remove);
|
||||
|
||||
} // end try
|
||||
catch (AccessError ae)
|
||||
{ // some sort of access error - display an error dialog
|
||||
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
||||
|
||||
} // end catch
|
||||
catch (DataException de)
|
||||
{ // database error creating the conference
|
||||
return new ErrorBox("Database Error","Database error removing alias: " + de.getMessage(),
|
||||
on_error);
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end if (removing an alias)
|
||||
|
||||
// display the "Manage Conference Aliases" display
|
||||
try
|
||||
{ // generate the display box
|
||||
setMyLocation(request,"confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=A");
|
||||
return new ManageConferenceAliases(sig,conf);
|
||||
|
||||
} // end try
|
||||
catch (DataException de)
|
||||
{ // error generating the display box
|
||||
return new ErrorBox("Database Error","Database error displaying aliases: " + de.getMessage(),
|
||||
on_error);
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end if ("A" command)
|
||||
|
||||
if (cmd.equals("RP") || cmd.equals("RR"))
|
||||
{ // "RP" = "Report Posters," "RR" = "Report Readers" (requires conference parameter)
|
||||
ConferenceContext conf = getConferenceParameter(request,sig,true,on_error);
|
||||
on_error = "confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=Q";
|
||||
|
||||
try
|
||||
{ // generate the listing on this page
|
||||
setMyLocation(request,"confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=" + cmd);
|
||||
return new ConferenceActivity(sig,conf,cmd.equals("RP"));
|
||||
|
||||
} // end try
|
||||
catch (DataException de)
|
||||
{ // unable to get the data for the list
|
||||
return new ErrorBox("Database Error","Database error displaying conference users: " + de.getMessage(),
|
||||
on_error);
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end if ("RP" and "RR" commands)
|
||||
|
||||
// Any unrecognized command shows us the conference list.
|
||||
on_error = "sigprofile?sig=" + sig.getSIGID();
|
||||
try
|
||||
|
@ -331,12 +449,129 @@ public class ConfOperations extends VeniceServlet
|
|||
ConferenceContext conf = getConferenceParameter(request,sig,true,on_error);
|
||||
on_error = "confdisp?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID();
|
||||
|
||||
// TODO: finish this later
|
||||
try
|
||||
{ // go set the pseud!
|
||||
String pseud = request.getParameter("pseud");
|
||||
if (pseud!=null)
|
||||
conf.setDefaultPseud(pseud);
|
||||
|
||||
return null;
|
||||
} // end try
|
||||
catch (DataException de)
|
||||
{ // oops - there was a problem!
|
||||
return new ErrorBox("Database Error","Database error setting pseud: " + de.getMessage(),on_error);
|
||||
|
||||
} // end catch
|
||||
|
||||
return null; // don't change the view
|
||||
|
||||
} // end if ("P" command)
|
||||
|
||||
if (cmd.equals("E"))
|
||||
{ // "E" = "Edit Conference Settings" (requires conference parameter)
|
||||
ConferenceContext conf = getConferenceParameter(request,sig,true,on_error);
|
||||
on_error = "confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=Q";
|
||||
|
||||
if (!(conf.canChangeConference()))
|
||||
return new ErrorBox("Access Error","You are not permitted to change this conference's settings.",
|
||||
on_error);
|
||||
|
||||
// create the dialog class
|
||||
EditConferenceDialog dlg = makeEditConferenceDialog();
|
||||
|
||||
if (dlg.isButtonClicked(request,"cancel"))
|
||||
throw new RedirectResult(on_error); // they chickened out - go back to the conference list
|
||||
|
||||
if (dlg.isButtonClicked(request,"update"))
|
||||
{ // they're changing the conference - do what you have to
|
||||
dlg.loadValues(request); // load the form data
|
||||
|
||||
try
|
||||
{ // run that baby!
|
||||
dlg.doDialog(conf);
|
||||
|
||||
// success - return back to where we started from
|
||||
throw new RedirectResult(on_error);
|
||||
|
||||
} // end try
|
||||
catch (ValidationException ve)
|
||||
{ // validation error - throw it back to the user
|
||||
dlg.resetOnError(sig,conf,ve.getMessage() + " Please try again.");
|
||||
|
||||
} // end catch
|
||||
catch (AccessError ae)
|
||||
{ // some sort of access error - display an error dialog
|
||||
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
||||
|
||||
} // end catch
|
||||
catch (DataException de)
|
||||
{ // database error creating the conference
|
||||
return new ErrorBox("Database Error","Database error updating conference: " + de.getMessage(),
|
||||
on_error);
|
||||
|
||||
} // end catch
|
||||
|
||||
setMyLocation(request,"confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=E");
|
||||
return dlg; // redisplay the dialog
|
||||
|
||||
} // end if
|
||||
|
||||
} // end if ("E" command)
|
||||
|
||||
if (cmd.equals("A"))
|
||||
{ // "A" = "Add Alias" (requires conference parameter)
|
||||
ConferenceContext conf = getConferenceParameter(request,sig,true,on_error);
|
||||
on_error = "confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=Q";
|
||||
|
||||
if (!(conf.canChangeConference()))
|
||||
return new ErrorBox("Access Error","You are not permitted to change this conference's settings.",
|
||||
on_error);
|
||||
|
||||
String new_alias = request.getParameter("alias");
|
||||
if (StringUtil.isStringEmpty(new_alias))
|
||||
return null; // this is a no-op
|
||||
|
||||
on_error = "confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=A";
|
||||
String error_message = null;
|
||||
|
||||
if (IDUtils.isValidVeniceID(new_alias))
|
||||
{ // the alias we have netered is perfectly valid...
|
||||
try
|
||||
{ // go ahead and add the alias!
|
||||
conf.addAlias(new_alias);
|
||||
|
||||
} // end try
|
||||
catch (AccessError ae)
|
||||
{ // some sort of access error - display an error dialog
|
||||
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
||||
|
||||
} // end catch
|
||||
catch (DataException de)
|
||||
{ // database error creating the conference
|
||||
return new ErrorBox("Database Error","Database error adding alias: " + de.getMessage(),
|
||||
on_error);
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end if
|
||||
else // alias is not valid
|
||||
error_message = "The alias you have entered is not a valid identifier. Please try again.";
|
||||
|
||||
// redisplay the "Manage Conference Aliases" display
|
||||
try
|
||||
{ // generate the display box
|
||||
setMyLocation(request,on_error);
|
||||
return new ManageConferenceAliases(sig,conf);
|
||||
|
||||
} // end try
|
||||
catch (DataException de)
|
||||
{ // error generating the display box
|
||||
return new ErrorBox("Database Error","Database error displaying aliases: " + de.getMessage(),
|
||||
"confops?sig=" + sig.getSIGID() + "&conf=" + conf.getConfID() + "&cmd=Q");
|
||||
|
||||
} // end catch
|
||||
|
||||
} // end if ("A" command)
|
||||
|
||||
// unrecognized command!
|
||||
logger.error("invalid command to ConfOperations.doPost: " + cmd);
|
||||
return new ErrorBox("Internal Error","Invalid command to ConfOperations.doPost",on_error);
|
||||
|
|
|
@ -0,0 +1,139 @@
|
|||
/*
|
||||
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||
* (the "License"); you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||
* language governing rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Venice Web Communities System.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||
* Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
package com.silverwrist.venice.servlets.format;
|
||||
|
||||
import java.util.*;
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.http.*;
|
||||
import com.silverwrist.venice.core.*;
|
||||
|
||||
public class ConferenceActivity implements JSPRender
|
||||
{
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Static data members
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// Attribute name for request attribute
|
||||
protected static final String ATTR_NAME = "com.silverwrist.venice.content.ConferenceActivity";
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Attributes
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private SIGContext sig; // the SIG we're in
|
||||
private ConferenceContext conf; // the conference being listed
|
||||
private boolean posters; // is this a list of posters?
|
||||
private List records; // the actual data records
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructor
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public ConferenceActivity(SIGContext sig, ConferenceContext conf, boolean posters) throws DataException
|
||||
{
|
||||
this.sig = sig;
|
||||
this.conf = conf;
|
||||
this.posters = posters;
|
||||
if (posters)
|
||||
this.records = conf.getActivePosters();
|
||||
else
|
||||
this.records = conf.getActiveReaders();
|
||||
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* External static functions
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public static ConferenceActivity retrieve(ServletRequest request)
|
||||
{
|
||||
return (ConferenceActivity)(request.getAttribute(ATTR_NAME));
|
||||
|
||||
} // end retrieve
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface VeniceContent
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public String getPageTitle(RenderData rdat)
|
||||
{
|
||||
if (posters)
|
||||
return "Users Posting in Conference " + conf.getName();
|
||||
else
|
||||
return "Users Reading Conference " + conf.getName();
|
||||
|
||||
} // end getPageTitle
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface JSPRender
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public void store(ServletRequest request)
|
||||
{
|
||||
request.setAttribute(ATTR_NAME,this);
|
||||
|
||||
} // end store
|
||||
|
||||
public String getTargetJSPName()
|
||||
{
|
||||
return "conf_activity.jsp";
|
||||
|
||||
} // end getTargetJSPName
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* External operations
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public String getConfName()
|
||||
{
|
||||
return conf.getName();
|
||||
|
||||
} // end getConfName
|
||||
|
||||
public String getLocator()
|
||||
{
|
||||
return "sig=" + sig.getSIGID() + "&conf=" + conf.getConfID();
|
||||
|
||||
} // end getLocator
|
||||
|
||||
public boolean isPosterReport()
|
||||
{
|
||||
return posters;
|
||||
|
||||
} // end isPosterReport
|
||||
|
||||
public boolean anyElements()
|
||||
{
|
||||
return (records.size()>0);
|
||||
|
||||
} // end anyElements
|
||||
|
||||
public Iterator getRecordsIterator()
|
||||
{
|
||||
return records.iterator();
|
||||
|
||||
} // end getRecordsIterator
|
||||
|
||||
} // end class ConferenceActivity
|
|
@ -225,6 +225,12 @@ public class ContentDialog implements Cloneable, ContentRender
|
|||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public void setTitle(String title)
|
||||
{
|
||||
this.title = title;
|
||||
|
||||
} // end setTitle
|
||||
|
||||
public void setErrorMessage(String message)
|
||||
{
|
||||
this.error_message = message;
|
||||
|
|
|
@ -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) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
package com.silverwrist.venice.servlets.format;
|
||||
|
||||
import java.util.*;
|
||||
import com.silverwrist.util.StringUtil;
|
||||
import com.silverwrist.venice.ValidationException;
|
||||
import com.silverwrist.venice.security.Role;
|
||||
import com.silverwrist.venice.core.*;
|
||||
|
||||
public class EditConferenceDialog extends ContentDialog
|
||||
{
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructors
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public EditConferenceDialog()
|
||||
{
|
||||
super("Edit Conference:",null,"editconfform","confops");
|
||||
setHiddenField("cmd","E");
|
||||
setHiddenField("sig","");
|
||||
setHiddenField("conf","");
|
||||
|
||||
addFormField(new CDFormCategoryHeader("Basic Information"));
|
||||
addFormField(new CDTextFormField("name","Conference Name",null,true,32,128));
|
||||
addFormField(new CDTextFormField("descr","Description",null,false,32,255));
|
||||
addFormField(new CDCheckBoxFormField("hide","Hide conference in the SIG's conference list",null,"Y"));
|
||||
addFormField(new CDFormCategoryHeader("Security Information"));
|
||||
addFormField(new CDRoleListFormField("read_lvl","Security level required to read conference",null,true,
|
||||
Role.getConferenceReadList()));
|
||||
addFormField(new CDRoleListFormField("post_lvl","Security level required to post to conference",null,true,
|
||||
Role.getConferencePostList()));
|
||||
addFormField(new CDRoleListFormField("create_lvl",
|
||||
"Security level required to create new topics in conference",null,
|
||||
true,Role.getConferenceCreateList()));
|
||||
addFormField(new CDRoleListFormField("hide_lvl",
|
||||
"Security level required to archive or freeze topics",
|
||||
"(or to hide posts of which you are not the owner)",true,
|
||||
Role.getConferenceHideList()));
|
||||
addFormField(new CDRoleListFormField("nuke_lvl",
|
||||
"Security level required to delete topics or nuke posts",
|
||||
"(or to scribble posts of which you are not the owner)",true,
|
||||
Role.getConferenceNukeList()));
|
||||
addFormField(new CDRoleListFormField("change_lvl",
|
||||
"Security level required to change conference attributes",null,true,
|
||||
Role.getConferenceChangeList()));
|
||||
addFormField(new CDRoleListFormField("delete_lvl",
|
||||
"Security level required to delete conference",null,true,
|
||||
Role.getConferenceDeleteList()));
|
||||
addCommandButton(new CDImageButton("update","bn_update.gif","Update",80,24));
|
||||
addCommandButton(new CDImageButton("cancel","bn_cancel.gif","Cancel",80,24));
|
||||
|
||||
} // end constructor
|
||||
|
||||
protected EditConferenceDialog(EditConferenceDialog other)
|
||||
{
|
||||
super(other);
|
||||
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* External operations
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public void setupDialog(SIGContext sig, ConferenceContext conf) throws DataException, AccessError
|
||||
{
|
||||
setHiddenField("sig",String.valueOf(sig.getSIGID()));
|
||||
setHiddenField("conf",String.valueOf(conf.getConfID()));
|
||||
setTitle("Edit Conference: " + conf.getName());
|
||||
setFieldValue("name",conf.getName());
|
||||
setFieldValue("descr",conf.getDescription());
|
||||
if (conf.getHideList())
|
||||
setFieldValue("hide","Y");
|
||||
else
|
||||
setFieldValue("hide","");
|
||||
setFieldValue("read_lvl",String.valueOf(conf.getReadLevel()));
|
||||
setFieldValue("post_lvl",String.valueOf(conf.getPostLevel()));
|
||||
setFieldValue("create_lvl",String.valueOf(conf.getCreateLevel()));
|
||||
setFieldValue("hide_lvl",String.valueOf(conf.getHideLevel()));
|
||||
setFieldValue("nuke_lvl",String.valueOf(conf.getNukeLevel()));
|
||||
setFieldValue("change_lvl",String.valueOf(conf.getChangeLevel()));
|
||||
setFieldValue("delete_lvl",String.valueOf(conf.getDeleteLevel()));
|
||||
|
||||
} // end setupDialog
|
||||
|
||||
public void doDialog(ConferenceContext conf) throws ValidationException, DataException, AccessError
|
||||
{
|
||||
final String yes = "Y"; // the "yes" string
|
||||
validate(); // validate the dialog entries
|
||||
|
||||
int read_lvl, post_lvl, create_lvl, hide_lvl, nuke_lvl, change_lvl, delete_lvl;
|
||||
try
|
||||
{ // get all the security levels out of their form fields
|
||||
read_lvl = Integer.parseInt(getFieldValue("read_lvl"));
|
||||
post_lvl = Integer.parseInt(getFieldValue("post_lvl"));
|
||||
create_lvl = Integer.parseInt(getFieldValue("create_lvl"));
|
||||
hide_lvl = Integer.parseInt(getFieldValue("hide_lvl"));
|
||||
nuke_lvl = Integer.parseInt(getFieldValue("nuke_lvl"));
|
||||
change_lvl = Integer.parseInt(getFieldValue("change_lvl"));
|
||||
delete_lvl = Integer.parseInt(getFieldValue("delete_lvl"));
|
||||
|
||||
} // end try
|
||||
catch (NumberFormatException nfe)
|
||||
{ // how rude!
|
||||
throw new InternalStateError("somehow we got a non-numeric result from a numeric dropdown list!");
|
||||
|
||||
} // end catch
|
||||
|
||||
// sweep through the conference and set the appropriate changes
|
||||
conf.setName(getFieldValue("name"));
|
||||
conf.setDescription(getFieldValue("descr"));
|
||||
conf.setHideList(yes.equals(getFieldValue("hide")));
|
||||
conf.setSecurityLevels(read_lvl,post_lvl,create_lvl,hide_lvl,nuke_lvl,change_lvl,delete_lvl);
|
||||
|
||||
} // end doDialog
|
||||
|
||||
public void resetOnError(SIGContext sig, ConferenceContext conf, String message)
|
||||
{
|
||||
setHiddenField("sig",String.valueOf(sig.getSIGID()));
|
||||
setHiddenField("conf",String.valueOf(conf.getConfID()));
|
||||
setTitle("Edit Conference: " + conf.getName());
|
||||
setErrorMessage(message);
|
||||
|
||||
} // end resetOnError
|
||||
|
||||
public Object clone()
|
||||
{
|
||||
return new EditConferenceDialog(this);
|
||||
|
||||
} // end clone
|
||||
|
||||
} // end class EditConferenceDialog
|
|
@ -120,6 +120,12 @@ public class ManageConference implements JSPRender
|
|||
|
||||
} // end getLocator
|
||||
|
||||
public String getDefaultPseud()
|
||||
{
|
||||
return conf.getDefaultPseud();
|
||||
|
||||
} // end getDefaultPseud
|
||||
|
||||
public boolean displayAdminSection()
|
||||
{
|
||||
return conf.canChangeConference();
|
||||
|
|
|
@ -0,0 +1,154 @@
|
|||
/*
|
||||
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||
* (the "License"); you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||
* language governing rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Venice Web Communities System.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||
* Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
package com.silverwrist.venice.servlets.format;
|
||||
|
||||
import java.util.*;
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.http.*;
|
||||
import com.silverwrist.venice.core.*;
|
||||
|
||||
public class ManageConferenceAliases implements JSPRender
|
||||
{
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Static data members
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// Attribute name for request attribute
|
||||
protected static final String ATTR_NAME = "com.silverwrist.venice.content.ManageConferenceAliases";
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Attributes
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private SIGContext sig; // the SIG we're in
|
||||
private ConferenceContext conf; // the conference being listed
|
||||
private List aliases; // list of aliases generated
|
||||
private String error_message; // error message to display
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructors
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public ManageConferenceAliases(SIGContext sig, ConferenceContext conf) throws DataException
|
||||
{
|
||||
this.sig = sig;
|
||||
this.conf = conf;
|
||||
this.aliases = conf.getAliases();
|
||||
this.error_message = null;
|
||||
|
||||
} // end constructor
|
||||
|
||||
public ManageConferenceAliases(SIGContext sig, ConferenceContext conf, String message) throws DataException
|
||||
{
|
||||
this.sig = sig;
|
||||
this.conf = conf;
|
||||
this.aliases = conf.getAliases();
|
||||
this.error_message = message;
|
||||
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* External static functions
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public static ManageConferenceAliases retrieve(ServletRequest request)
|
||||
{
|
||||
return (ManageConferenceAliases)(request.getAttribute(ATTR_NAME));
|
||||
|
||||
} // end retrieve
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface VeniceContent
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public String getPageTitle(RenderData rdat)
|
||||
{
|
||||
return "Manage Conference Aliases: " + conf.getName();
|
||||
|
||||
} // end getPageTitle
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface JSPRender
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public void store(ServletRequest request)
|
||||
{
|
||||
request.setAttribute(ATTR_NAME,this);
|
||||
|
||||
} // end store
|
||||
|
||||
public String getTargetJSPName()
|
||||
{
|
||||
return "manage_aliases.jsp";
|
||||
|
||||
} // end getTargetJSPName
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* External operations
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public int getSIGID()
|
||||
{
|
||||
return sig.getSIGID();
|
||||
|
||||
} // end getSIGID
|
||||
|
||||
public int getConfID()
|
||||
{
|
||||
return conf.getConfID();
|
||||
|
||||
} // end getConfID
|
||||
|
||||
public String getConfName()
|
||||
{
|
||||
return conf.getName();
|
||||
|
||||
} // end getConfName
|
||||
|
||||
public String getLocator()
|
||||
{
|
||||
return "sig=" + sig.getSIGID() + "&conf=" + conf.getConfID();
|
||||
|
||||
} // end getLocator
|
||||
|
||||
public boolean canRemoveAliases()
|
||||
{
|
||||
return (aliases.size()>1);
|
||||
|
||||
} // end canRemoveAliases
|
||||
|
||||
public Iterator getAliasIterator()
|
||||
{
|
||||
return aliases.iterator();
|
||||
|
||||
} // end getAliasIterator
|
||||
|
||||
public String getErrorMessage()
|
||||
{
|
||||
return error_message;
|
||||
|
||||
} // end getErrorMessage
|
||||
|
||||
} // end class ManageConferenceAliases
|
89
web/format/conf_activity.jsp
Normal file
89
web/format/conf_activity.jsp
Normal file
|
@ -0,0 +1,89 @@
|
|||
<%--
|
||||
The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||
(the "License"); you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||
WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||
language governing rights and limitations under the License.
|
||||
|
||||
The Original Code is the Venice Web Communities System.
|
||||
|
||||
The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||
for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||
Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
--%>
|
||||
<%@ page import = "java.util.*" %>
|
||||
<%@ page import = "com.silverwrist.util.StringUtil" %>
|
||||
<%@ page import = "com.silverwrist.venice.core.*" %>
|
||||
<%@ page import = "com.silverwrist.venice.servlets.Variables" %>
|
||||
<%@ page import = "com.silverwrist.venice.servlets.format.*" %>
|
||||
<%
|
||||
ConferenceActivity data = ConferenceActivity.retrieve(request);
|
||||
Variables.failIfNull(data);
|
||||
RenderData rdat = RenderConfig.createRenderData(application,request,response);
|
||||
%>
|
||||
<% rdat.writeContentHeader(out,(data.isPosterReport() ? "Posters in Conference:"
|
||||
: "Readers in Conference:"),data.getConfName()); %>
|
||||
<%= rdat.getStdFontTag(null,2) %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confops?" + data.getLocator() + "&cmd=Q") %>">Return to
|
||||
Manage Conference Menu</A>
|
||||
</FONT><P>
|
||||
|
||||
<% if (data.anyElements()) { %>
|
||||
<TABLE BORDER=0 ALIGN=CENTER CELLPADDING=0 CELLSPACING=6>
|
||||
<TR VALIGN=TOP>
|
||||
<TH ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %><B><U>User Name</U></B></FONT></TH>
|
||||
<% if (data.isPosterReport()) { %>
|
||||
<TH ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %><B><U>Last Posted</U></B></FONT></TH>
|
||||
<TH ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %><B><U>Last Read</U></B></FONT></TH>
|
||||
<% } else { %>
|
||||
<TH ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %><B><U>Last Read</U></B></FONT></TH>
|
||||
<TH ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %><B><U>Last Posted</U></B></FONT></TH>
|
||||
<% } // end if %>
|
||||
</TR>
|
||||
<% Iterator it = data.getRecordsIterator(); %>
|
||||
<% while (it.hasNext()) { %>
|
||||
<% ActiveUser usr = (ActiveUser)(it.next()); %>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("user/" + usr.getName()) %>" TARGET="_blank"><%= usr.getName() %></A>
|
||||
</FONT></TD>
|
||||
<% if (data.isPosterReport()) { %>
|
||||
<TD ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %>
|
||||
<%= StringUtil.encodeHTML(rdat.formatDateForDisplay(usr.getLastWrite())) %>
|
||||
</FONT></TD>
|
||||
<TD ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %>
|
||||
<% if (usr.getLastRead()==null) { %>
|
||||
Never
|
||||
<% } else { %>
|
||||
<%= StringUtil.encodeHTML(rdat.formatDateForDisplay(usr.getLastRead())) %>
|
||||
<% } // end if %>
|
||||
</FONT></TD>
|
||||
<% } else { %>
|
||||
<TD ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %>
|
||||
<%= StringUtil.encodeHTML(rdat.formatDateForDisplay(usr.getLastRead())) %>
|
||||
</FONT></TD>
|
||||
<TD ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %>
|
||||
<% if (usr.getLastWrite()==null) { %>
|
||||
Never
|
||||
<% } else { %>
|
||||
<%= StringUtil.encodeHTML(rdat.formatDateForDisplay(usr.getLastWrite())) %>
|
||||
<% } // end if %>
|
||||
</FONT></TD>
|
||||
<% } // end if %>
|
||||
</TR>
|
||||
<% } // end while %>
|
||||
</TABLE>
|
||||
<% } else { %>
|
||||
<%= rdat.getStdFontTag(null,2) %><EM>
|
||||
<% if (data.isPosterReport()) { %>
|
||||
No posters to conference "<%= StringUtil.encodeHTML(data.getConfName()) %>" found.
|
||||
<% } else { %>
|
||||
No readers of conference "<%= StringUtil.encodeHTML(data.getConfName()) %>" found.
|
||||
<% } // end if %>
|
||||
</EM></FONT>
|
||||
<% } // end if %>
|
||||
<P><% rdat.writeFooter(out); %>
|
71
web/format/manage_aliases.jsp
Normal file
71
web/format/manage_aliases.jsp
Normal file
|
@ -0,0 +1,71 @@
|
|||
<%--
|
||||
The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||
(the "License"); you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||
WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||
language governing rights and limitations under the License.
|
||||
|
||||
The Original Code is the Venice Web Communities System.
|
||||
|
||||
The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||
for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||
Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
--%>
|
||||
<%@ page import = "java.util.*" %>
|
||||
<%@ page import = "java.net.URLEncoder" %>
|
||||
<%@ page import = "com.silverwrist.util.StringUtil" %>
|
||||
<%@ page import = "com.silverwrist.venice.core.*" %>
|
||||
<%@ page import = "com.silverwrist.venice.servlets.Variables" %>
|
||||
<%@ page import = "com.silverwrist.venice.servlets.format.*" %>
|
||||
<%
|
||||
ManageConferenceAliases data = ManageConferenceAliases.retrieve(request);
|
||||
Variables.failIfNull(data);
|
||||
RenderData rdat = RenderConfig.createRenderData(application,request,response);
|
||||
%>
|
||||
<% if (rdat.useHTMLComments()) { %><!-- Managing aliases for conference #<%= data.getConfID() %> --><% } %>
|
||||
<% rdat.writeContentHeader(out,"Managing Conference Aliases:",data.getConfName()); %>
|
||||
<%= rdat.getStdFontTag(null,2) %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confops?" + data.getLocator() + "&cmd=Q") %>">Return to
|
||||
Manage Conference Menu</A><P>
|
||||
|
||||
<% if (data.getErrorMessage()!=null) { %>
|
||||
<%= rdat.getStdFontTag("red",2) %><B><%= StringUtil.encodeHTML(data.getErrorMessage()) %></B></FONT><P>
|
||||
<% } // end if %>
|
||||
|
||||
<FONT SIZE=+1><B>Current Aliases:</B></FONT><P>
|
||||
<TABLE ALIGN=CENTER BORDER=0 CELLPADDING=0 CELLSPACING=3>
|
||||
<% Iterator it = data.getAliasIterator(); %>
|
||||
<% while (it.hasNext()) { %>
|
||||
<% String name = (String)(it.next()); %>
|
||||
<TR VALIGN=MIDDLE>
|
||||
<TD ALIGN=CENTER><IMG SRC="<%= rdat.getFullImagePath("purple-ball.gif") %>" ALT="*"
|
||||
WIDTH=14 HEIGHT=14 BORDER=0></TD>
|
||||
<TD ALIGN=LEFT><%= rdat.getStdFontTag(null,2) %><%= StringUtil.encodeHTML(name) %></FONT></TD>
|
||||
<TD ALIGN=LEFT> </TD>
|
||||
<TD ALIGN=LEFT>
|
||||
<% if (data.canRemoveAliases()) { %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confops?" + data.getLocator() + "&cmd=A&rem="
|
||||
+ URLEncoder.encode(name)) %>"><IMG SRC="<%= rdat.getFullImagePath("bn_remove.gif") %>"
|
||||
ALT="Remove" WIDTH=80 HEIGHT=24 BORDER=0></A>
|
||||
<% } else { %> <% } %>
|
||||
</TD>
|
||||
</TR>
|
||||
<% } // end while %>
|
||||
</TABLE><P>
|
||||
|
||||
<FONT SIZE=+1><B>Add New Alias:</B></FONT><P>
|
||||
<FORM METHOD="POST" ACTION="<%= rdat.getEncodedServletPath("confops") %>">
|
||||
<INPUT TYPE="HIDDEN" NAME="sig" VALUE="<%= data.getSIGID() %>">
|
||||
<INPUT TYPE="HIDDEN" NAME="conf" VALUE="<%= data.getConfID() %>">
|
||||
<INPUT TYPE="HIDDEN" NAME="cmd" VALUE="A">
|
||||
<INPUT TYPE="TEXT" NAME="alias" SIZE=32 MAXLENGTH=64 VALUE="">
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_add.gif") %>" NAME="add" ALT="Add"
|
||||
WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
</FORM>
|
||||
|
||||
</FONT>
|
||||
<% rdat.writeFooter(out); %>
|
|
@ -39,9 +39,9 @@
|
|||
<INPUT TYPE="HIDDEN" NAME="cmd" VALUE="P">
|
||||
<%= rdat.getStdFontTag(null,2) %>
|
||||
Set default pseud for conference:
|
||||
<INPUT TYPE="TEXT" NAME="pseud" VALUE="" SIZE=37 MAXLENGTH=255>
|
||||
<INPUT TYPE="TEXT" NAME="pseud" VALUE="<%= data.getDefaultPseud() %>" SIZE=37 MAXLENGTH=255>
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_set.gif") %>" NAME="set" ALT="Set"
|
||||
WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
WIDTH=80 ALIGN=BOTTOM HEIGHT=24 BORDER=0>
|
||||
</FONT>
|
||||
</FORM><P>
|
||||
|
||||
|
@ -53,7 +53,19 @@
|
|||
|
||||
<% if (data.displayAdminSection()) { %>
|
||||
<% if (rdat.useHTMLComments()) { %><!-- Host Tools Section --><% } %>
|
||||
<%-- TODO: fill this in --%>
|
||||
<% rdat.writeContentHeader(out,"Host Tools",null); %>
|
||||
<%= rdat.getStdFontTag(null,2) %><B>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confops?" + data.getLocator() + "&cmd=E") %>">Change
|
||||
Conference Information</A><P>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confops?" + data.getLocator() + "&cmd=A") %>">Manage
|
||||
Conference Aliases</A><P>
|
||||
<A HREF="TODO">Manage Conference Members</A><P>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confops?" + data.getLocator() + "&cmd=RP") %>">Conference
|
||||
Posters Report</A><P>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confops?" + data.getLocator() + "&cmd=RR") %>">Conference
|
||||
Readers/Lurkers Report</A><P>
|
||||
<A HREF="TODO">Delete Conference</A><P>
|
||||
</B></FONT>
|
||||
<% } // end if (displaying admin section) %>
|
||||
|
||||
<% rdat.writeFooter(out); %>
|
||||
|
|
|
@ -68,10 +68,10 @@
|
|||
<TR><TD ALIGN=CENTER COLSPAN=2>
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_preview.gif") %>" ALT="Preview" NAME="preview"
|
||||
WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
|
||||
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_post.gif") %>" ALT="Post" NAME="post"
|
||||
WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
|
||||
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_cancel.gif") %>" ALT="Cancel" NAME="cancel"
|
||||
WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
</TD></TR>
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getConfLocator()) %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_topic_list.gif") %>" ALT="Topic List" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
|
||||
|
||||
<% if (data.isTopicHidden()) { %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=HN") %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_show_topic.gif") %>" ALT="Show Topic" WIDTH=80 HEIGHT=24
|
||||
|
@ -55,25 +55,25 @@
|
|||
SRC="<%= rdat.getFullImagePath("bn_hide_topic.gif") %>" ALT="Hide Topic" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
<% } // end if %>
|
||||
|
||||
|
||||
<% if (data.canDoNextTopic()) { %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getNextLocator() + "&rnm=1") %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_next_topic.gif") %>" ALT="Next Topic" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
|
||||
|
||||
<% if (data.getNewMessages()>0) { %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getNextLocator() + "&"
|
||||
+ data.getRestoreLocator() + "&rnm=1") %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_next_keep_new.gif") %>" ALT="Next & Keep New" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
|
||||
|
||||
<% } // end if %>
|
||||
<% } // end if %>
|
||||
</TD>
|
||||
<TD NOWRAP ALIGN=RIGHT>
|
||||
<% if (rdat.useHTMLComments()) { %><!-- Topic admin controls section --><% } %>
|
||||
<% if (data.canFreezeTopic()) { %>
|
||||
|
||||
|
||||
<% if (data.isTopicFrozen()) { %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=FN") %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_unfreeze_topic.gif") %>" ALT="Unfreeze Topic" WIDTH=80 HEIGHT=24
|
||||
|
@ -85,7 +85,7 @@
|
|||
<% } // end if %>
|
||||
<% } // end if %>
|
||||
<% if (data.canArchiveTopic()) { %>
|
||||
|
||||
|
||||
<% if (data.isTopicArchived()) { %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=AN") %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_unarchive_topic.gif") %>" ALT="Unarchive Topic" WIDTH=80
|
||||
|
@ -97,7 +97,7 @@
|
|||
<% } // end if %>
|
||||
<% } // end if %>
|
||||
<% if (data.canDeleteTopic()) { %>
|
||||
|
||||
|
||||
<A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=DEL") %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_delete_topic.gif") %>" ALT="Delete Topic" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
|
@ -112,7 +112,7 @@
|
|||
<INPUT TYPE="HIDDEN" NAME="sig" VALUE="<%= data.getSIGID() %>">
|
||||
<INPUT TYPE="HIDDEN" NAME="conf" VALUE="<%= data.getConfID() %>">
|
||||
<INPUT TYPE="HIDDEN" NAME="top" VALUE="<%= data.getTopicNumber() %>">
|
||||
<INPUT TYPE="TEXT" NAME="pxg" VALUE="" SIZE=6 MAXLENGTH=13>
|
||||
<INPUT TYPE="TEXT" NAME="pxg" VALUE="" SIZE=6 MAXLENGTH=13>
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_go.gif") %>" NAME="Go" ALT="Go"
|
||||
ALIGN=BOTTOM WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
</FORM>
|
||||
|
@ -259,7 +259,7 @@
|
|||
<A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getConfLocator()) %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_topic_list.gif") %>" ALT="Topic List" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
|
||||
|
||||
<% if (data.isTopicHidden()) { %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("topicops?" + data.getLocator() + "&cmd=HN") %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_show_topic.gif") %>" ALT="Show Topic" WIDTH=80 HEIGHT=24
|
||||
|
@ -269,18 +269,18 @@
|
|||
SRC="<%= rdat.getFullImagePath("bn_hide_topic.gif") %>" ALT="Hide Topic" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
<% } // end if %>
|
||||
|
||||
|
||||
<% if (data.canDoNextTopic()) { %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getNextLocator() + "&rnm=1") %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_next_topic.gif") %>" ALT="Next Topic" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
|
||||
|
||||
<% if (data.getNewMessages()>0) { %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getNextLocator() + "&"
|
||||
+ data.getRestoreLocator() + "&rnm=1") %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_next_keep_new.gif") %>" ALT="Next & Keep New" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
|
||||
|
||||
<% } // end if %>
|
||||
<% } // end if %>
|
||||
</TD>
|
||||
|
@ -317,11 +317,11 @@
|
|||
<TR><TD ALIGN=CENTER COLSPAN=2>
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_preview.gif") %>" ALT="Preview" NAME="preview"
|
||||
WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
|
||||
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_post_reload.gif") %>" ALT="Post & Reload"
|
||||
NAME="post" WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
<% if (data.canDoNextTopic()) { %>
|
||||
|
||||
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_post_go_next.gif") %>" ALT="Post & Go Next"
|
||||
NAME="postnext" WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
<% } // end if %>
|
||||
|
|
|
@ -64,15 +64,15 @@
|
|||
<TR><TD ALIGN=CENTER COLSPAN=2>
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_preview.gif") %>" ALT="Preview" NAME="preview"
|
||||
WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
|
||||
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_post_reload.gif") %>" ALT="Post & Reload"
|
||||
NAME="post" WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
<% if (!(StringUtil.isStringEmpty(data.getNextVal()))) { %>
|
||||
|
||||
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_post_go_next.gif") %>" ALT="Post & Go Next"
|
||||
NAME="postnext" WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
<% } // end if %>
|
||||
|
||||
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_cancel.gif") %>" ALT="Cancel"
|
||||
NAME="cancel" WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
</TD></TR>
|
||||
|
|
|
@ -88,15 +88,15 @@
|
|||
<TR><TD ALIGN=CENTER COLSPAN=2>
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_preview.gif") %>" ALT="Preview" NAME="preview"
|
||||
WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
|
||||
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_post_reload.gif") %>" ALT="Post & Reload"
|
||||
NAME="post" WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
<% if (!(StringUtil.isStringEmpty(data.getNextVal()))) { %>
|
||||
|
||||
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_post_go_next.gif") %>" ALT="Post & Go Next"
|
||||
NAME="postnext" WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
<% } // end if %>
|
||||
|
||||
|
||||
<INPUT TYPE="IMAGE" SRC="<%= rdat.getFullImagePath("bn_cancel.gif") %>" ALT="Cancel"
|
||||
NAME="cancel" WIDTH=80 HEIGHT=24 BORDER=0>
|
||||
</TD></TR>
|
||||
|
|
|
@ -33,22 +33,23 @@
|
|||
<DIV ALIGN="LEFT">
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confops?sig=" + data.getSIGID()) %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_conference_list.gif") %>" ALT="Conference List" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
BORDER=0></A>
|
||||
<% if (data.canCreateTopic()) { %>
|
||||
<% tmp = rdat.getEncodedServletPath("confops?" + data.getLocator() + "&cmd=T"); %>
|
||||
<A HREF="<%= tmp %>"><IMG SRC="<%= rdat.getFullImagePath("bn_add_topic.gif") %>" ALT="Add Topic"
|
||||
WIDTH=80 HEIGHT=24 BORDER=0></A>
|
||||
WIDTH=80 HEIGHT=24 BORDER=0></A>
|
||||
<% } // end if %>
|
||||
<% if (data.canDoReadNew()) { %>
|
||||
<A HREF="<%= rdat.getEncodedServletPath("confdisp?" + data.getNextLocator() + "&rnm=1") %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_read_new.gif") %>" ALT="Read New" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
BORDER=0></A>
|
||||
<% } // end if %>
|
||||
<A HREF="TODO"><IMG SRC="<%= rdat.getFullImagePath("bn_manage.gif") %>"
|
||||
ALT="Manage" WIDTH=80 HEIGHT=24 BORDER=0></A>
|
||||
<A HREF="<%= "confops?" + data.getLocator() + "&cmd=Q" %>"><IMG
|
||||
SRC="<%= rdat.getFullImagePath("bn_manage.gif") %>" ALT="Manage" WIDTH=80 HEIGHT=24
|
||||
BORDER=0></A>
|
||||
<% if (data.canAddToHotlist()) { %>
|
||||
<A HREF="TODO"><IMG SRC="<%= rdat.getFullImagePath("bn_add_to_hotlist.gif") %>"
|
||||
ALT="Add to HotList" WIDTH=80 HEIGHT=24 BORDER=0></A>
|
||||
ALT="Add to HotList" WIDTH=80 HEIGHT=24 BORDER=0></A>
|
||||
<% } // end if %>
|
||||
</DIV>
|
||||
<% if (data.anyTopics()) { %>
|
||||
|
|
BIN
web/images/bn_add.gif
Normal file
BIN
web/images/bn_add.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 895 B |
BIN
web/images/bn_remove.gif
Normal file
BIN
web/images/bn_remove.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 939 B |
BIN
web/images/bn_set.gif
Normal file
BIN
web/images/bn_set.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 889 B |
Loading…
Reference in New Issue
Block a user