From: Julien V. <coo...@us...> - 2003-06-29 18:58:15
|
User: cooperfbi Date: 03/06/29 11:58:14 Modified: news/src/main/org/jboss/nukes/addons/modules/news NewsModule.java Topics.java Log: updated html for topic in news module Revision Changes Path 1.13 +8 -8 nukes/news/src/main/org/jboss/nukes/addons/modules/news/NewsModule.java Index: NewsModule.java =================================================================== RCS file: /cvsroot/jboss/nukes/news/src/main/org/jboss/nukes/addons/modules/news/NewsModule.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- NewsModule.java 28 Jun 2003 15:57:11 -0000 1.12 +++ NewsModule.java 29 Jun 2003 18:58:14 -0000 1.13 @@ -28,7 +28,7 @@ * * This class defines the the core module of this package * - * @version $Revision: 1.12 $ $Date: 2003/06/28 15:57:11 $ + * @version $Revision: 1.13 $ $Date: 2003/06/29 18:58:14 $ * @author <a href="mailto:vi...@ya...">Viet Kévin</a> */ public class NewsModule @@ -88,7 +88,7 @@ */ public void topicsadminpage(Page page) { - Topics.adminPage(this, getApi(), page); + Topics.admin(this, getApi(), page); } /** @@ -97,7 +97,7 @@ */ public void topicseditpage(Page page) { - Topics.topicEditPage(this, getApi(), page); + Topics.edit(this, getApi(), page); } /** @@ -133,7 +133,7 @@ */ public void topicsadminconfpage(Page page) { - //TODO : code me !!!! + // TODO } /** @@ -142,7 +142,7 @@ */ public void topicseditrelatedpage(Page page) { - Topics.editRelatedPage(this, getApi(), page); +// Topics.editRelatedPage(this, getApi(), page); } /** @@ -151,7 +151,7 @@ */ public void topicsrelatedchange(Page page) { - Topics.relatedChange(this, page); +// Topics.relatedChange(this, page); } /** @@ -160,13 +160,13 @@ */ public void topicsdeleterelated(Page page) { - Topics.deleteRelated(this, getApi(), page); +// Topics.deleteRelated(this, getApi(), page); } public void topicsindexpage(Page page) { - Topics.indexPage(this, getApi(), page); + Topics.index(this, getApi(), page); } // Module news related code ------------------------------------------------- 1.6 +297 -352 nukes/news/src/main/org/jboss/nukes/addons/modules/news/Topics.java Index: Topics.java =================================================================== RCS file: /cvsroot/jboss/nukes/news/src/main/org/jboss/nukes/addons/modules/news/Topics.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- Topics.java 28 Jun 2003 15:57:11 -0000 1.5 +++ Topics.java 29 Jun 2003 18:58:14 -0000 1.6 @@ -21,44 +21,39 @@ import javax.ejb.FinderException; import javax.ejb.RemoveException; import javax.ejb.EJBException; +import javax.ejb.CreateException; import java.util.Collection; import java.util.Iterator; /** - * @version $Revision: 1.5 $ $Date: 2003/06/28 15:57:11 $ + * @version $Revision: 1.6 $ $Date: 2003/06/29 18:58:14 $ * @author <a href="mailto:vi...@ya...">Viet Kévin</a> */ public class Topics { - // Constants ---------------------------------------------------------------- private static final Logger log = Logger.getLogger(NewsModule.class); // Public ------------------------------------------------------------------- - public static void topicEditPage(NewsModule module, Api api, Page page) + public static void edit(NewsModule module, Api api, Page page) { // fetch parameters - Integer topicId = page.getParameterAsInteger(ModConstants.TOPIC_ID); + Integer id = page.getParameterAsInteger(ModConstants.TOPIC_ID); // get the topic TopicEJBLocal topic = null; try { - topic = module.topicHome.findByPrimaryKey(topicId); + topic = module.topicHome.findByPrimaryKey(id); } - catch (javax.ejb.FinderException e) + catch (FinderException e) { log.error("", e); page.error(e); return; } - // display header - page.openTable(); - page.print("<center><font class=\"pn-title\"><b>${news._TOPICSMANAGER}</b></font></center>"); - page.closeTable(); - if (!api.secAuthAction("news:topics:topic", Utils.genTopicSecInstance(topic), Constants.SEC_ACCESS_EDIT)) @@ -71,22 +66,20 @@ String text = topic.getText(); String name = topic.getName(); + // display header + page.openTable(); + page.print("<center><font class=\"pn-title\"><b>${news._TOPICSMANAGER}</b></font></center>"); + page.closeTable(); + // page.openTable(); - page.print("<img src=\"" + module.topicImagePath() + image + "\" border=\"0\" align=\"right\" alt=\"" + text + "\">"); - page.print("<font class=\"pn-title\"><b>${news._EDITTOPIC}: " + text + "</b></font>"); - page.print("<br /><br />"); - page.print("<form action=\"index.html\" method=\"post\"><br />"); - page.print("<b>${news._TOPICNAME}:</b><br /><font class=\"pn-sub\">${news._TOPICNAME1}<br />"); - page.print("${news._TOPICNAME2}</font><br />"); - page.print("<input type=\"text\" name=\"" + ModConstants.TOPIC_NAME + "\" size=\"20\" maxlength=\"20\" value=\"" + name + "\"><br /><br />"); - page.print("<b>${news._TOPICTEXT}:</b><br /><font class=\"pn-sub\">${news._TOPICTEXT1}<br />"); - page.print("${news._TOPICTEXT2}</font><br />"); - page.print("<input type=\"text\" name=\"" + ModConstants.TOPIC_TEXT + "\" size=\"40\" maxlength=\"40\" value=\"" + text + "\"><br /><br />"); - page.print("<b>${news._TOPICIMAGE}:</b><br /><font class=\"pn-sub\">(${news._TOPICIMAGE1} " + module.topicImagePath() + ")<br />"); - page.print("${news._TOPICIMAGE2}</font><br />"); - page.print("<input type=\"text\" name=\"" + ModConstants.TOPIC_IMAGE + "\" size=\"20\" maxlength=\"20\" value=\"" + image + "\"><br /><br />"); + page.print("<div align=\"center\"><span class=\"pn-title\"><b>${news._EDITTOPIC}: " + text + "</b></span></div><br/>"); + page.print("<img src=\"" + module.topicImagePath() + image + "\" border=\"0\" align=\"right\" alt=\"" + text + "\"><br/>"); + topicForm(module, api, page, name, text, image, "${core._SAVECHANGES}", id, "topicschange"); + page.print("[ <a href=\"index.html?module=" + module.getName() + "&op=topicsdeletepage&" + ModConstants.TOPIC_ID + "=" + id + "&" + ModConstants.CONFIRM + "=false&authid=" + api.generateAuthKey(module.getName()) + "\">${core._DELETE}</a> ]</font>"); + page.closeTable(); +/* if (api.secAuthAction("news:topics:related", name + "::", Constants.SEC_ACCESS_ADD)) @@ -152,54 +145,35 @@ page.print("[ <a href=\"index.html?module=" + module.getName() + "&op=topicsdeletepage&" + ModConstants.TOPIC_ID + "=" + id + "&" + ModConstants.CONFIRM + "=false&authid=" + api.generateAuthKey(module.getName()) + "\">${core._DELETE}</a> ]</font>"); page.print("</form>"); page.closeTable(); +*/ + } - public static void adminPage(NewsModule module, Api api, Page page) + public static void admin(NewsModule module, Api api, Page page) { // display header page.openTable(); - page.print("<center><font class=\"pn-title\"><b>${news._TOPICSMANAGER}</b></font></center>"); + page.print("<center><divfont class=\"pn-title\"><b>${news._TOPICSMANAGER}</b></div></center>"); page.closeTable(); // display topic list - boolean b = api.secAuthAction("news:topics:", "::", - Constants.SEC_ACCESS_READ); -// System.out.println("b = " + b); - if (b) + if (api.secAuthAction("news:topics:", "::", Constants.SEC_ACCESS_READ)) { - // get all topics - Collection topics = null; - try - { - topics = module.topicHome.findAll(); - } - catch (javax.ejb.FinderException e) - { - log.error("", e); - page.error(e); - return; - } - - int count = 0; page.openTable(); - page.print("<center><font class=\"pn-title\"><b>${news._CURRENTTOPICS}</b></font><br />${news._CLICK2EDIT}</font></center><br />"); + page.print("<div align=\"center\" class=\"pn-title\"><b>${news._CURRENTTOPICS}</b><br/>${news._CLICK2EDIT}</div><br/>"); page.print("<table border=\"0\" width=\"100%\" align=\"center\" cellpadding=\"2\">"); - for (Iterator iterator = topics.iterator(); iterator.hasNext();) + int count = 0; + for (Iterator iterator = module.allTopics().iterator(); iterator.hasNext();) { TopicEJBLocal topic = (TopicEJBLocal) iterator.next(); - Integer id = topic.getId(); String image = topic.getImage(); String text = topic.getText(); - // test instance is like topicName:topicId: page.print("<td align=\"center\">"); - String testInstance = Utils.genTopicSecInstance(topic); - if (api.secAuthAction("news:topics:topic", - testInstance, - Constants.SEC_ACCESS_EDIT)) + if (api.secAuthAction("news:topics:topic", Utils.genTopicSecInstance(topic), Constants.SEC_ACCESS_EDIT)) { page.print("<a href=\"index.html?module=" + module.getName() + "&op=topicseditpage&" + ModConstants.TOPIC_ID + "=" + id + "\"><img src=\"" + module.topicImagePath() + image + "\" border=\"0\" alt=\"\"></a><br />"); page.print("<a href=\"index.html?module=" + module.getName() + "&op=topicseditpage&" + ModConstants.TOPIC_ID + "=" + id + "\"><font class=\"pn-normal\"><b>" + text + "</td></a>"); @@ -218,32 +192,18 @@ } page.print("</table>"); - page.print("<br /><center><font class=\"pn-title\"><b>${news._ROWDEFINE}</b></font>"); + page.print("<br/><div align=\"center\" class=\"pn-title\"><b>${news._ROWDEFINE}</b></div>"); page.closeTable(); } // display add topic - if (api.secAuthAction("news:topics:topic", "::", - Constants.SEC_ACCESS_ADD)) + if (api.secAuthAction("news:topics:", "::", Constants.SEC_ACCESS_ADD)) { - page.print("<a name=\"Add\">"); + // display topic form page.openTable(); - page.print("<center><font class=\"pn-title\"><b>${news._ADDATOPIC}</b></font></center><br />"); - page.print("<form action=\"index.html\" method=\"post\">"); - page.print("<b>${news._TOPICNAME}:</b><br /><font class=\"pn-sub\">${news._TOPICNAME1}<br />"); - page.print("${news._TOPICNAME2}</font><br />"); - page.print("<input type=\"text\" name=\"" + ModConstants.TOPIC_NAME + "\" size=\"20\" maxlength=\"20\" value=\"\"><br /><br />"); - page.print("<b>${news._TOPICTEXT}:</b><br /><font class=\"pn-sub\">${news._TOPICTEXT1}<br />"); - page.print("${news._TOPICTEXT2}</font><br />"); - page.print("<input type=\"text\" name=\"" + ModConstants.TOPIC_TEXT + "\" size=\"40\" maxlength=\"40\" value=\"\"><br /><br />"); - page.print("<b>${news._TOPICIMAGE}:</b><br /><font class=\"pn-sub\">(${news._TOPICIMAGE1} " + module.topicImagePath() + ")<br />"); - page.print("${news._TOPICIMAGE2}</font><br />"); - page.print("<input type=\"text\" name=\"" + ModConstants.TOPIC_IMAGE + "\" size=\"20\" maxlength=\"20\" value=\"\"><br /><br />"); - page.print("<input type=\"hidden\" name=\"op\" value=\"topicsadminaddtopic\">"); - page.print("<input type=\"hidden\" name=\"module\" value=\"" + module.getName() + "\">"); - page.print("<input type=\"hidden\" name=\"authid\" value=\"" + api.generateAuthKey(module.getName()) + "\">"); - page.print("<input type=\"submit\" value=\"${news._ADDTOPIC}\">"); - page.print("</form>"); + page.print("<a name=\"add\">"); + page.print("<div align=\"center\"><span class=\"pn-title\"><b>${news._ADDATOPIC}</b></span></div><br/>"); + topicForm(module, api, page, "", "", "", "${news._ADDTOPIC}", null, "topicsadminaddtopic"); page.closeTable(); } @@ -256,120 +216,38 @@ } /** - * Get the configuration page - * @param module - * @param page - */ - public static void adminConfPage(NewsModule module, Page page) - { - //TODO This method must be implemented when the module/conf are in the database - } - - /** - * Display the edit topic's related page - * @param module - * @param page + * Add a topic to the database. */ - public static void editRelatedPage(NewsModule module, Api api, Page page) - { - // fetch params - Integer relatedId = page.getParameterAsInteger(ModConstants.RELATED_ID); - - // get a hand on related object - RelatedEJBLocal related = null; - try - { - related = module.relatedHome.findByPrimaryKey(relatedId); - } - catch (javax.ejb.FinderException e) - { - log.error("", e); - page.error(e); - return; - } - - page.openTable(); - page.print("<center><font class=\"pn-title\"><b>${news._TOPICSMANAGER}</b></font></center>"); - page.closeTable(); - - // display edit section - if (!api.secAuthAction("news:topics:related", - Utils.genRelatedSecInstance(related), - Constants.SEC_ACCESS_EDIT)) - { - page.error("${news._TOPICSEDITNOAUTH}"); - } - - TopicEJBLocal topic = related.getTopic(); - String topicText = topic.getText(); - - page.openTable(); - page.print("<center>"); - String topicImage = module.topicImagePath() + topic.getImage(); - page.print("<img src=\"" + topicImage + "\" border=\"0\" alt=\"" + topicText + "\" align=\"right\">"); - page.print("<font class=\"pn-title\"><b>${news._EDITRELATED}</b></font><br />"); - page.print("<b>${core._TOPIC}:</b> " + topic.getText() + "</center>"); - page.print("<form action=\"index.html\" method=\"post\">"); - page.print("${core._SITENAME}: <input type=\"text\" name=\"" + ModConstants.RELATED_NAME + "\" value=\"" + related.getName() + "\" size=\"30\" maxlength=\"30\"><br /><br />"); - page.print("${core._URL}: <input type=\"text\" name=\"" + ModConstants.RELATED_URL + "\" value=\"" + related.getURL() + "\" size=\"60\" maxlength=\"200\"><br /><br />"); - page.print("<input type=\"hidden\" name=\"op\" value=\"topicsrelatedchange\">"); - page.print("<input type=\"hidden\" name=\"module\" value=\"" + module.getName() + "\">"); - page.print("<input type=\"hidden\" name=\"" + ModConstants.TOPIC_ID + "\" value=\"" + topic.getId() + "\">"); - page.print("<input type=\"hidden\" name=\"" + ModConstants.RELATED_ID + "\" value=\"" + related.getId() + "\">"); - page.print("<input type=\"hidden\" name=\"authid\" value=\"" + api.generateAuthKey(module.getName()) + "\">"); - page.print("<input type=\"submit\" value=\"${core._SAVECHANGES}\"> ${core._GOBACK}"); - page.print("</form>"); - page.closeTable(); - } - - public static void relatedChange(NewsModule module, Page page) + public static void adminAddTopic(NewsModule module, Page page) { - // fetch params - Integer relatedId = page.getParameterAsInteger(ModConstants.RELATED_ID); - String relatedName = page.getParameter(ModConstants.RELATED_NAME); - String relatedURL = page.getParameter(ModConstants.RELATED_URL); + // fetch parameters + String name = page.getParameter(ModConstants.TOPIC_NAME); + String text = page.getParameter(ModConstants.TOPIC_TEXT); + String image = page.getParameter(ModConstants.TOPIC_IMAGE, ""); - // get a hand on related object - RelatedEJBLocal related = null; + // create a new topic from scratch try { - related = module.relatedHome.findByPrimaryKey(relatedId); + module.topicHome.create(name, text, "".equals(image) ? "blank.gif" : ""); + page.sendRedirectToPreviousUrl(); } - catch (Exception e) + catch (CreateException e) { log.error("", e); page.error(e); - return; - } - - // perform updates - if (!relatedName.equals(related.getName())) - { - related.setName(relatedName); } - if (!relatedURL.equals(related.getURL())) - { - related.setURL(relatedURL); - } - - page.sendRedirect(Utils.getParameteredTopicEditUrl(related.getTopic())); } public static void topicChange(NewsModule module, Page page) { // fetch params - Integer topicId = page.getParameterAsInteger(ModConstants.TOPIC_ID); - String topicName = page.getParameter(ModConstants.TOPIC_NAME); - String topicText = page.getParameter(ModConstants.TOPIC_TEXT); - String topicImage = page.getParameter(ModConstants.TOPIC_IMAGE, ""); - String relatedName = page.getParameter(ModConstants.RELATED_NAME); - String relatedURL = page.getParameter(ModConstants.RELATED_URL); + Integer id = page.getParameterAsInteger(ModConstants.TOPIC_ID); // get a hand on topics TopicEJBLocal topic = null; try { - topic = module.topicHome.findByPrimaryKey(topicId); + topic = module.topicHome.findByPrimaryKey(id); } catch (FinderException e) { @@ -378,42 +256,45 @@ return; } - // a not empty relatedName force us to add this to topic - if (!"".equals(relatedName)) - { - try - { - RelatedEJBLocal related = module.relatedHome.create(topic, - relatedName, - relatedURL); - topic.getRelateds().add(related); - } - catch (javax.ejb.CreateException e) - { - log.error("", e); - page.error(e); - return; - } - } - - if ("".equals(topicImage)) - { - topicImage = "blank.gif"; - } + String name = page.getParameter(ModConstants.TOPIC_NAME); + String text = page.getParameter(ModConstants.TOPIC_TEXT); + String image = page.getParameter(ModConstants.TOPIC_IMAGE, ""); // change settings - topic.setName(topicName); - topic.setText(topicText); - topic.setImage(topicImage); + topic.setName(name); + topic.setText(text); + topic.setImage("".equals(image) ? "blank.gif" : ""); + +// String relatedName = page.getParameter(ModConstants.RELATED_NAME); +// String relatedURL = page.getParameter(ModConstants.RELATED_URL); + + // a not empty relatedName force us to add this to topic +// if (!"".equals(relatedName)) +// { +// try +// { +// RelatedEJBLocal related = module.relatedHome.create(topic, relatedName, relatedURL); +// topic.getRelateds().add(related); +// } +// catch (javax.ejb.CreateException e) +// { +// log.error("", e); +// page.error(e); +// return; +// } +// } page.sendRedirect(ModConstants.TOPICS_ADMIN_PAGE); } + /** + * Delete a topic. + */ public static void deletePage(NewsModule module, Api api, Page page) { // fetch parameters Integer topicId = page.getParameterAsInteger(ModConstants.TOPIC_ID); - boolean delTopic = page.getParameterAsBoolean(ModConstants.CONFIRM); + boolean ok = page.getParameterAsBoolean(ModConstants.CONFIRM); String authid = page.getParameter("authid"); // get the topic @@ -430,16 +311,14 @@ } // check the user can delete a topic - if (!api.secAuthAction("news:topics:topic", - Utils.genTopicSecInstance(topic), - Constants.SEC_ACCESS_DELETE)) + if (!api.secAuthAction("news:topics:topic", Utils.genTopicSecInstance(topic), Constants.SEC_ACCESS_DELETE)) { page.error("${news._TOPICSDELNOAUTH}"); return; } // Delete object or display confirm page - if (delTopic) + if (ok) { // check the authid if (!api.confirmAuthKey(authid, module.getName())) @@ -460,158 +339,45 @@ page.error(e); return; } - catch (EJBException e) - { - log.error("", e); - page.error(e); - return; - } // return topicAdminPage page.sendRedirect(ModConstants.TOPICS_ADMIN_PAGE); } else { - page.openTable(); - page.print("<center><font class=\"pn-title\"><b>${news._TOPICSMANAGER}</b></font></center>"); - page.closeTable(); - String text = topic.getText(); String topicImage = ModConstants.TOPICS_IMAGE_PATH + topic.getImage(); - page.openTable(); - page.print("<center><img src=\"" + topicImage + "\" border=\"0\" alt=\"" + text + "\"><br /><br />"); - page.print("<b>${news._DELETETOPIC} " + text + "</b><br /><br />"); - page.print("${news._TOPICDELSURE} <i>" + text + "</i>?<br />"); - page.print("${news._TOPICDELSURE1}<br /><br />"); + page.print("<center><font class=\"pn-title\"><b>${news._TOPICSMANAGER}</b></font></center>"); + page.closeTable(); + page.openTable(); + page.print("<center><img src=\"" + topicImage + "\" border=\"0\" alt=\"" + text + "\"><br/><br/>"); + page.print("<b>${news._DELETETOPIC} " + text + "</b><br/><br/>"); + page.print("${news._TOPICDELSURE} <i>" + text + "</i>?<br/>"); + page.print("${news._TOPICDELSURE1}<br/><br/>"); page.print("[ <a href=\"index.html?module=" + module.getName() + "&op=topicsadminpage\">${core._NO}"); page.print("</a> | <a href=\"index.html?module=" + module.getName() + "&op=topicsdeletepage&" + ModConstants.TOPIC_ID + "=" + topic.getId() + "&" + ModConstants.CONFIRM + "=true&authid=" + authid + "\">${core._YES}"); - page.print("</a> ]</center><br /><br />"); + page.print("</a> ]</center><br/><br/>"); page.closeTable(); } } /** - * Add a topic to the database - * @param page - */ - public static void adminAddTopic(NewsModule module, Page page) - { - // fetch parameters - String topicName = page.getParameter(ModConstants.TOPIC_NAME); - String topicText = page.getParameter(ModConstants.TOPIC_TEXT); - String topicImage = page.getParameter(ModConstants.TOPIC_IMAGE, ""); - - if ("".equals(topicImage)) - { - topicImage = "blank.gif"; - } - - // create a new topic from scratch - try - { - module.topicHome.create(topicName, topicText, topicImage); - } - catch (javax.ejb.CreateException e) - { - log.error("", e); - page.error(e); - return; - } - - page.sendRedirectToPreviousUrl(); - } - - /** - * Delete one of topic related site - * @param module - * @param page + * Displays all the topics. */ - public static void deleteRelated(NewsModule module, Api api, Page page) + public static void index(NewsModule module, Api api, Page page) { - // fetch parameters - Integer relatedId = page.getParameterAsInteger(ModConstants.RELATED_ID); - Integer topicId = page.getParameterAsInteger(ModConstants.TOPIC_ID); - - // get the topic EJB and related EJB - RelatedEJBLocal related = null; - try - { - related = module.relatedHome.findByPrimaryKey(relatedId); - } - catch (FinderException e) - { - log.error("", e); - page.error(e); - return; - } - - TopicEJBLocal topic = related.getTopic(); - // check the authid - if (!api.confirmAuthKey(page.getParameter("authid"), module.getName())) - { - page.error( "${core._BADAUTHKEY}"); - return; - } - - // check user can delete related - if (!api.secAuthAction("news:topics:related", - Utils.genRelatedSecInstance(related), - Constants.SEC_ACCESS_DELETE)) - { - page.error("${news.__TOPICSDELNOAUTH}"); - return; - } - - // remove the related stuff - try - { - related.remove(); - } - catch (RemoveException e) - { - log.error("", e); - page.error(e); - return; - } - catch (EJBException e) - { - log.error("", e); - page.error(e); - return; - } - - // send the request to the edit page - page.sendRedirect(Utils.getParameteredTopicEditUrl(topic)); - } - - - public static void indexPage(NewsModule module, Api api, Page page) - { - - if ( api.secAuthAction("news:topics", - "::", - Constants.SEC_ACCESS_OVERVIEW ) ) + if (api.secAuthAction("news:topics", "::", Constants.SEC_ACCESS_OVERVIEW)) { page.print("${news.__TOPICSNOAUTH}"); return; } - Collection topics = null; - try - { - topics = module.topicHome.findAll(); - } - catch (FinderException e) - { - log.error("", e); - page.error(e); - return; - } + Collection topics =module.allTopics(); - if ( topics.isEmpty() ) + if (topics.isEmpty()) { page.print("<font class=\"pn-title\">${news._NOACTIVETOPICS}</font>"); return; @@ -619,50 +385,229 @@ else { page.openTable(); - page.print("<center><font class=\"pn-title\">${news._ACTIVETOPICS}</font><br>\n"); - page.print("<font class=\"pn-normal\">${news._CLICK2LIST}</font></center><br>\n"); + page.print("<div align=\"center\" class=\"pn-title\">${news._ACTIVETOPICS}</div><br>\n"); + page.print("<div align=\"center\" class=\"pn-normal\">${news._CLICK2LIST}</div<br>\n"); page.print("<table border=\"0\" width=\"100%\" align=\"center\" cellpadding=\"2\"><tr>\n"); int count = 0; - for ( Iterator iterator = topics.iterator(); iterator.hasNext(); ) + for (Iterator iterator = topics.iterator(); iterator.hasNext();) { TopicEJBLocal topic = (TopicEJBLocal) iterator.next(); - - if ( api.secAuthAction("news:topics:topic", - Utils.genTopicSecInstance(topic), - Constants.SEC_ACCESS_READ) ) + if (api.secAuthAction("news:topics:topic", Utils.genTopicSecInstance(topic), Constants.SEC_ACCESS_READ)) { - if ( count == ModConstants.TOPICS_IN_ROW ) - { - page.print("<tr>\n"); - count = 0; - } - - String fullImagePath = - ModConstants.TOPICS_IMAGE_PATH + topic.getImage(); + String fullImagePath = ModConstants.TOPICS_IMAGE_PATH + topic.getImage(); page.print("<td align=\"center\">\n"); - page.print("<a class=\"pn-normal\" href=\"index.html?module=news&op=newsshownewspertopic&" + - ModConstants.TOPIC_ID + "=" + topic.getId()+ "\"><img src=\"" + fullImagePath + - "\" border=\"0\" alt=\"" + topic.getText() + "\"></a><br>\n"); - page.print("<font class=\"pn-normal\">" + topic.getText() + "</font>\n"); + page.print("<a class=\"pn-normal\" href=\"index.html?module=news&op=newsshownewspertopic&"); + page.print(ModConstants.TOPIC_ID + "=" + topic.getId() + "\"><img src=\"" + fullImagePath); + page.print("\" border=\"0\" alt=\"" + topic.getText() + "\"><br>\n"); + page.print("<span class=\"pn-normal\">" + topic.getText() + "</span></a>\n"); page.print("</td>\n"); - count++; - - if ( count == ModConstants.TOPICS_IN_ROW ) + if (++count == ModConstants.TOPICS_IN_ROW) { page.print("</tr>\n"); + page.print("<tr>\n"); + count = 0; } } } - if ( count == ModConstants.TOPICS_IN_ROW ) - { - page.print("</table>\n"); - } - else - { - page.print("</tr></table>\n"); - } + page.print("</tr></table>\n"); + } + } + + /** + * Displays a topic form. + */ + private static void topicForm(NewsModule module, Api api, Page page, + String name, String text, String image, + String submit, Integer id, String op) + { + page.print("<form action=\"index.html\" method=\"post\">"); + page.print("<input type=\"hidden\" name=\"op\" value=\"" + op + "\">"); + page.print("<input type=\"hidden\" name=\"module\" value=\"" + module.getName() + "\">"); + if (id != null) + { + page.print("<input type=\"hidden\" name=\"" + ModConstants.TOPIC_ID + "\" value=\"" + id + "\">"); } + page.print("<input type=\"hidden\" name=\"authid\" value=\"" + api.generateAuthKey(module.getName()) + "\">"); + page.print("<b>${news._TOPICNAME}:</b><br/>"); + page.print("<div class=\"pn-sub\">${news._TOPICNAME1}<br/>${news._TOPICNAME2}</div><br/>"); + page.print("<input type=\"text\" name=\"" + ModConstants.TOPIC_NAME + "\" size=\"20\" maxlength=\"20\" value=\"" + name + "\">"); + page.print("<br/><br/>"); + page.print("<b>${news._TOPICTEXT}:</b><br/>"); + page.print("<div class=\"pn-sub\">${news._TOPICTEXT1}<br/>${news._TOPICTEXT2}</div><br/>"); + page.print("<input type=\"text\" name=\"" + ModConstants.TOPIC_TEXT + "\" size=\"40\" maxlength=\"40\" value=\"" + text + "\">"); + page.print("<br/><br/>"); + page.print("<b>${news._TOPICIMAGE}:</b><br/>"); + page.print("<div class=\"pn-sub\">(${news._TOPICIMAGE1} " + module.topicImagePath() + ")<br/>${news._TOPICIMAGE2}</div><br/>"); + page.print("<input type=\"text\" name=\"" + ModConstants.TOPIC_IMAGE + "\" size=\"20\" maxlength=\"20\" value=\"" + image + "\">"); + page.print("<br/><br/>"); + page.print("<input type=\"submit\" value=\"" + submit + "\">"); + page.print("</form>"); } + +// /** +// * Get the configuration page +// * @param module +// * @param page +// */ +// public static void adminConfPage(NewsModule module, Page page) +// { +// //TODO This method must be implemented when the module/conf are in the database +// } +// +// /** +// * Display the edit topic's related page +// * @param module +// * @param page +// */ +// public static void editRelatedPage(NewsModule module, Api api, Page page) +// { +// // fetch params +// Integer relatedId = page.getParameterAsInteger(ModConstants.RELATED_ID); +// +// // get a hand on related object +// RelatedEJBLocal related = null; +// try +// { +// related = module.relatedHome.findByPrimaryKey(relatedId); +// } +// catch (javax.ejb.FinderException e) +// { +// log.error("", e); +// page.error(e); +// return; +// } +// +// page.openTable(); +// page.print("<center><font class=\"pn-title\"><b>${news._TOPICSMANAGER}</b></font></center>"); +// page.closeTable(); +// +// // display edit section +// if (!api.secAuthAction("news:topics:related", +// Utils.genRelatedSecInstance(related), +// Constants.SEC_ACCESS_EDIT)) +// { +// page.error("${news._TOPICSEDITNOAUTH}"); +// } +// +// TopicEJBLocal topic = related.getTopic(); +// String topicText = topic.getText(); +// +// page.openTable(); +// page.print("<center>"); +// String topicImage = module.topicImagePath() + topic.getImage(); +// page.print("<img src=\"" + topicImage + "\" border=\"0\" alt=\"" + topicText + "\" align=\"right\">"); +// page.print("<font class=\"pn-title\"><b>${news._EDITRELATED}</b></font><br />"); +// page.print("<b>${core._TOPIC}:</b> " + topic.getText() + "</center>"); +// page.print("<form action=\"index.html\" method=\"post\">"); +// page.print("${core._SITENAME}: <input type=\"text\" name=\"" + ModConstants.RELATED_NAME + "\" value=\"" + related.getName() + "\" size=\"30\" maxlength=\"30\"><br /><br />"); +// page.print("${core._URL}: <input type=\"text\" name=\"" + ModConstants.RELATED_URL + "\" value=\"" + related.getURL() + "\" size=\"60\" maxlength=\"200\"><br /><br />"); +// page.print("<input type=\"hidden\" name=\"op\" value=\"topicsrelatedchange\">"); +// page.print("<input type=\"hidden\" name=\"module\" value=\"" + module.getName() + "\">"); +// page.print("<input type=\"hidden\" name=\"" + ModConstants.TOPIC_ID + "\" value=\"" + topic.getId() + "\">"); +// page.print("<input type=\"hidden\" name=\"" + ModConstants.RELATED_ID + "\" value=\"" + related.getId() + "\">"); +// page.print("<input type=\"hidden\" name=\"authid\" value=\"" + api.generateAuthKey(module.getName()) + "\">"); +// page.print("<input type=\"submit\" value=\"${core._SAVECHANGES}\"> ${core._GOBACK}"); +// page.print("</form>"); +// page.closeTable(); +// } +// +// public static void relatedChange(NewsModule module, Page page) +// { +// // fetch params +// Integer relatedId = page.getParameterAsInteger(ModConstants.RELATED_ID); +// String relatedName = page.getParameter(ModConstants.RELATED_NAME); +// String relatedURL = page.getParameter(ModConstants.RELATED_URL); +// +// // get a hand on related object +// RelatedEJBLocal related = null; +// try +// { +// related = module.relatedHome.findByPrimaryKey(relatedId); +// } +// catch (Exception e) +// { +// log.error("", e); +// page.error(e); +// return; +// } +// +// // perform updates +// if (!relatedName.equals(related.getName())) +// { +// related.setName(relatedName); +// } +// if (!relatedURL.equals(related.getURL())) +// { +// related.setURL(relatedURL); +// } +// +// page.sendRedirect(Utils.getParameteredTopicEditUrl(related.getTopic())); +// } +// +// /** +// * Delete one of topic related site +// * @param module +// * @param page +// */ +// public static void deleteRelated(NewsModule module, Api api, Page page) +// { +// // fetch parameters +// Integer relatedId = page.getParameterAsInteger(ModConstants.RELATED_ID); +// Integer topicId = page.getParameterAsInteger(ModConstants.TOPIC_ID); +// +// // get the topic EJB and related EJB +// RelatedEJBLocal related = null; +// try +// { +// related = module.relatedHome.findByPrimaryKey(relatedId); +// } +// catch (FinderException e) +// { +// log.error("", e); +// page.error(e); +// return; +// } +// +// TopicEJBLocal topic = related.getTopic(); +// +// // check the authid +// if (!api.confirmAuthKey(page.getParameter("authid"), module.getName())) +// { +// page.error("${core._BADAUTHKEY}"); +// return; +// } +// +// // check user can delete related +// if (!api.secAuthAction("news:topics:related", +// Utils.genRelatedSecInstance(related), +// Constants.SEC_ACCESS_DELETE)) +// { +// page.error("${news.__TOPICSDELNOAUTH}"); +// return; +// } +// +// // remove the related stuff +// try +// { +// related.remove(); +// } +// catch (RemoveException e) +// { +// log.error("", e); +// page.error(e); +// return; +// } +// catch (EJBException e) +// { +// log.error("", e); +// page.error(e); +// return; +// } +// +// // send the request to the edit page +// page.sendRedirect(Utils.getParameteredTopicEditUrl(topic)); +// } + } |