You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(233) |
Sep
(199) |
Oct
(206) |
Nov
(185) |
Dec
(270) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(232) |
Feb
(426) |
Mar
(623) |
Apr
(592) |
May
(506) |
Jun
(389) |
Jul
(160) |
Aug
(3) |
Sep
(1) |
Oct
(1) |
Nov
(2) |
Dec
(5) |
| 2007 |
Jan
(1) |
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
(4) |
Jun
(2) |
Jul
|
Aug
(3) |
Sep
(5) |
Oct
(9) |
Nov
(6) |
Dec
(6) |
| 2008 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
(3) |
May
(3) |
Jun
(5) |
Jul
(10) |
Aug
(2) |
Sep
(12) |
Oct
(10) |
Nov
(54) |
Dec
(49) |
| 2009 |
Jan
(19) |
Feb
(13) |
Mar
(20) |
Apr
(24) |
May
(44) |
Jun
(29) |
Jul
(32) |
Aug
(10) |
Sep
(7) |
Oct
(10) |
Nov
(4) |
Dec
(17) |
| 2010 |
Jan
(14) |
Feb
(5) |
Mar
(23) |
Apr
(50) |
May
(31) |
Jun
(9) |
Jul
(5) |
Aug
(4) |
Sep
(7) |
Oct
(5) |
Nov
(2) |
Dec
(3) |
| 2011 |
Jan
(12) |
Feb
(5) |
Mar
(5) |
Apr
(3) |
May
(4) |
Jun
(3) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2012 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2015 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <jbo...@li...> - 2006-06-11 03:35:45
|
Author: mla...@jb... Date: 2006-06-10 23:35:38 -0400 (Sat, 10 Jun 2006) New Revision: 4723 Modified: labs/jbossweb/trunk/src/share/resources/ROOT.war/images/jbosslogo.gif Log: Update JBoss logo. Modified: labs/jbossweb/trunk/src/share/resources/ROOT.war/images/jbosslogo.gif =================================================================== (Binary files differ) |
|
From: <jbo...@li...> - 2006-06-11 02:35:28
|
Author: conkan Date: 2006-06-10 22:35:09 -0400 (Sat, 10 Jun 2006) New Revision: 4722 Added: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/file.gif labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/no_picture_image.jpg labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/no_picture_thumbnail.jpg labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/upload.gif labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/helper/ labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/helper/CMSHelper.java labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/helper/DataHelper.java labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/helper/ErrorHelper.java labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/helper/HarvestHelper.java labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/resources/portal-imagegallery-war/WEB-INF/jsp/fileUpload.jsp Removed: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/DataHelper.java Modified: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/.classpath labs/portletswap/imagegalleryportlet/trunk/ig_2.2/portal-imagegallery.ear labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/Thumbs.db labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/Const.java labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/ImageGalleryModule.java labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/ImageGalleryPortlet.java labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/impl/ImageGalleryModuleImpl.java labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/resources/portal-imagegallery-war/WEB-INF/classes/Resource.properties labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/resources/portal-imagegallery-war/WEB-INF/classes/Resource_en.properties labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/resources/portal-imagegallery-war/WEB-INF/jsp/collectionAdd.jsp labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/resources/portal-imagegallery-war/WEB-INF/jsp/collectionEdit.jsp labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/resources/portal-imagegallery-war/WEB-INF/jsp/detailAdd.jsp labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/resources/portal-imagegallery-war/WEB-INF/jsp/detailEdit.jsp labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/resources/portal-imagegallery-war/WEB-INF/jsp/detailView.jsp labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/resources/portal-imagegallery-war/WEB-INF/jsp/details.jsp labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/resources/portal-imagegallery-war/WEB-INF/jsp/imagedetail.jsp Log: Modified: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/.classpath =================================================================== --- labs/portletswap/imagegalleryportlet/trunk/ig_2.2/.classpath 2006-06-10 22:28:06 UTC (rev 4721) +++ labs/portletswap/imagegalleryportlet/trunk/ig_2.2/.classpath 2006-06-11 02:35:09 UTC (rev 4722) @@ -20,5 +20,6 @@ <classpathentry exported="true" kind="lib" path="/portal-thirdparty/jakarta-lucene/lib/lucene.jar"/> <classpathentry exported="true" kind="lib" path="/portal-thirdparty/oswego-concurrent/lib/concurrent.jar"/> <classpathentry exported="true" kind="lib" path="/portal-thirdparty/jboss-hibernate/lib/jboss-hibernate.jar"/> + <classpathentry kind="con" path="org.jboss.ide.eclipse.jdt.core.classpath.j2ee-1.4"/> <classpathentry kind="output" path="output"/> </classpath> Modified: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/portal-imagegallery.ear =================================================================== (Binary files differ) Modified: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/Thumbs.db =================================================================== (Binary files differ) Added: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/file.gif =================================================================== (Binary files differ) Property changes on: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/file.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/no_picture_image.jpg =================================================================== (Binary files differ) Property changes on: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/no_picture_image.jpg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/no_picture_thumbnail.jpg =================================================================== (Binary files differ) Property changes on: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/no_picture_thumbnail.jpg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/upload.gif =================================================================== (Binary files differ) Property changes on: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/bin/portal-imagegallery-war/images/upload.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/Const.java =================================================================== --- labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/Const.java 2006-06-10 22:28:06 UTC (rev 4721) +++ labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/Const.java 2006-06-11 02:35:09 UTC (rev 4722) @@ -1,3 +1,11 @@ +/***************************************** + * * + * The Image Gallery Portlet * + * * + * Distributable under LGPL license. * + * See terms of license at gnu.org. * + * * + *****************************************/ package org.jboss.portlet.imagegallery; @@ -2,4 +10,3 @@ /** - * This is a file of constants that are used for the image gallery - * portlet. These are parameters that will be passed within the portlet. + * These are constants that are used for the image gallery portlet. * @@ -14,6 +21,7 @@ public static final String OP = "op"; public static final String OP_ADD = "add"; public static final String OP_EDIT = "edit"; + public static final String OP_UPLOAD = "upload"; public static final String OP_DELETE = "delete"; public static final String OP_CANCEL = "cancel"; public static final String OP_VIEW = "view"; @@ -21,6 +29,8 @@ public static final String OP_REDIRECT = "redirect"; public static final String OP_CMS_ACTION = "cmsAction"; public static final String OP_BROWSE_CMS = "browseCMSSystem"; + public static final String OP_LOCAL_UPLOAD = "localFileSystem"; + public static final String OP_HARVEST = "harvest"; // Operations for image collection public static final String OP_COLLECTIONVIEW = "collectionView"; @@ -49,12 +59,14 @@ public static final String ACTION_DELETEDETAIL = "deleteDetail"; public static final String ACTION_ADDDETAIL = "addDetail"; - // Action for returning to a file + // Actions for returning a CMS file public static final String ACTION_CAPTURE_CMS = "captureCMS"; + public static final String ACTION_GET_LOCAL = "getLocalFile"; // Special operations public static final String OP_CMS_VIEW = "viewCMS"; - + public static final String OP_LOCAL_TO_CMS = "uploadFromLocalToCMS"; + // Image width constants public static final Integer THUMBNAIL_WIDTH = new Integer(100); public static final Integer IMAGE_WIDTH = new Integer(500); @@ -74,7 +86,7 @@ public static final String SHOW_THUMBNAIL = "showThumbnail"; public static final String SHOW_IMAGE = "showImage"; public static final String PHOTOGRAPHER = "photographer"; - public static final String REDIRECT = "redirectToLocation"; + public static final String RETURN_LOCATION = "returnLocation"; // Constants for browsing individual images public static final String ID_INDEX = "IDindex"; @@ -84,7 +96,8 @@ // Constants for browsing the CMS File System public static final String CMS_THUMBNAIL = "thumbnails"; - public static final String CMS_IMAGE = "images"; + public static final String CMS_IMAGE = "images"; + public static final String CMS_FILE = "cmsFile"; public static final String CMS_FOLDER = "cmsFolder"; public static final String CMS_ACTION = "cmsAction"; public static final String CMS_FILE_NAME = "cmsFileName"; @@ -92,6 +105,9 @@ public static final String CMS_FILE_LAST_MODIFIED = "cmsFileLastModified"; public static final String CMS_FILE_CREATION_DATE = "cmsFileCreationDate"; + // Local file + public static final String LOCAL_FILE = "localFile"; + // Change this when the CMS Root Path changes in the JBoss Portal. public static final String CMS_ROOT = "/portal/content"; Deleted: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/DataHelper.java =================================================================== --- labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/DataHelper.java 2006-06-10 22:28:06 UTC (rev 4721) +++ labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/DataHelper.java 2006-06-11 02:35:09 UTC (rev 4722) @@ -1,337 +0,0 @@ - -package org.jboss.portlet.imagegallery; - -import org.jboss.portal.common.context.DelegateContext; -import org.jboss.portlet.imagegallery.model.*; -import org.jboss.portlet.imagegallery.ImageGalleryPortlet; -import org.jboss.portlet.JBossActionRequest; -import org.jboss.portlet.JBossPortlet; -import org.jboss.portlet.JBossRenderRequest; - -import org.jboss.portal.cms.model.Folder; -import org.jboss.portal.cms.impl.FolderImpl; -import org.jboss.portal.cms.model.File; -import org.jboss.portal.cms.impl.FileImpl; -import org.jboss.portal.cms.util.FileUtil; - -/** - * @author <a href="im...@ho...">Ron & Conrad Kanengieter</a> - * $Revision: 1.5.6.1 $ - */ -public class DataHelper -{ - public DataHelper() - { - } - - /** - * Load the ctx with key-values from the imagecollection. - * @param imageCollection is the imagecollection object. - * @param ctx is the ctx object to be loaded. - */ - public void getCtxCollection(ImageCollection imageCollection, DelegateContext ctx) - { - ctx.put(Const.COLLECTION_ID, imageCollection.getID()); - ctx.put(Const.NAME, imageCollection.getName()); - ctx.put(Const.DESCRIPTION, imageCollection.getDescription()); - ctx.put(Const.BASE_PATH, imageCollection.getBasePath()); - ctx.put(Const.THUMBNAIL_PATH, imageCollection.getThumbnailPath()); - String sThumbnail = FileUtil.cleanDoubleSlashes(imageCollection.getBasePath() - + "/" + imageCollection.getThumbnailPath()); - ctx.put(Const.SHOW_THUMBNAIL, sThumbnail); - - if (imageCollection.getFeaturedFlag().booleanValue() == true) - { - ctx.put(Const.FEATURED_FLAG, "True"); - ctx.put(Const.FEATURED_CHECKED, "checked"); - } - else - { - ctx.put(Const.FEATURED_FLAG, "False"); - ctx.put(Const.FEATURED_CHECKED, ""); - } - } - - - /** - * Load the ctx with key-values from the imagecollection and imagedetail. - * @param imageCollection is the imagecollection object. - * @param imageDetail is the imagedetail object. - * @param ctx is the ctx object to be loaded. - */ - public void getCtxDetail(ImageCollection imageCollection, - ImageDetail imageDetail, - DelegateContext ctx) - { - ctx.put(Const.COLLECTION_ID, imageCollection.getID()); - ctx.put(Const.DETAIL_ID, imageDetail.getID()); - ctx.put(Const.NAME, imageDetail.getName()); - ctx.put(Const.DESCRIPTION, imageDetail.getDescription()); - ctx.put(Const.THUMBNAIL_PATH, imageDetail.getThumbnailPath()); - String sThumbnail = FileUtil.cleanDoubleSlashes(imageCollection.getBasePath() - + "/" + imageDetail.getThumbnailPath()); - ctx.put(Const.SHOW_THUMBNAIL, sThumbnail); - String sImage = FileUtil.cleanDoubleSlashes(imageCollection.getBasePath() - + "/" + imageDetail.getImagePath()); - ctx.put(Const.SHOW_IMAGE, sImage); - ctx.put(Const.IMAGE_PATH, imageDetail.getImagePath()); - ctx.put(Const.PHOTOGRAPHER, imageDetail.getPhotographer()); - } - - - /** - * Load the ctx with blank key-values for forms. - * @param ctx is the ctx object to be loaded. - */ - public void getFormCtxInit(DelegateContext ctx) - { - String imageGalleryRoot = FileUtil.cleanDoubleSlashes(Const.CMS_ROOT + "/gallery"); - ctx.put(Const.MSG, ""); - ctx.put(Const.DETAIL_ID, ""); - ctx.put(Const.COLLECTION_ID, ""); - ctx.put(Const.NAME, ""); - ctx.put(Const.DESCRIPTION, ""); - ctx.put(Const.FEATURED_FLAG, ""); - ctx.put(Const.BASE_PATH, imageGalleryRoot); - ctx.put(Const.THUMBNAIL_PATH, ""); - ctx.put(Const.IMAGE_PATH, ""); - ctx.put(Const.SHOW_THUMBNAIL, ""); - ctx.put(Const.SHOW_IMAGE, ""); - ctx.put(Const.PHOTOGRAPHER, ""); - ctx.put(Const.REDIRECT, ""); - ctx.put(Const.OP_SUB, ""); - - } - - - /** - * Load the ctx with key-values from the collection form. - * @param req is the object containing the collection form parameters. - * @param ctx is the ctx object to be loaded. - */ - public void getFormCtxCollection(JBossActionRequest req, DelegateContext ctx) - { - Integer id = req.getParameters().getIntObject(Const.COLLECTION_ID); - String name = req.getParameter(Const.NAME); - String description = req.getParameter(Const.DESCRIPTION); - String basePath = req.getParameter(Const.BASE_PATH); - String thumbnailPath = req.getParameter(Const.THUMBNAIL_PATH); - String featuredFlag = req.getParameter(Const.FEATURED_FLAG); - String opSub = req.getParameter(Const.OP_SUB); - String opRedirect = req.getParameter(Const.OP_REDIRECT); - String opCmsAction = req.getParameter(Const.OP_CMS_ACTION); - String checkPath = null; - - if (name != null) - ctx.put(Const.NAME, name); - else - ctx.put(Const.NAME, ""); - - if (description != null) - ctx.put(Const.DESCRIPTION, description); - else - ctx.put(Const.DESCRIPTION, ""); - - if (basePath != null) - { - // Trim off the CMS root path if present for CMS path. - if (basePath.startsWith(Const.CMS_ROOT)) - { - checkPath = basePath.substring(Const.CMS_ROOT.length()); - } - else - { - checkPath = FileUtil.cleanDoubleSlashes("/" + basePath); - basePath = FileUtil.cleanDoubleSlashes(Const.CMS_ROOT + "/" + basePath); - } - checkPath = FileUtil.cleanDoubleSlashes(checkPath + "/"); - - // Remove ending slash from base path if present. - if (basePath.endsWith("/")) - { - basePath = basePath.substring(0, basePath.length() - 1); - } - ctx.put(Const.BASE_PATH, basePath); - ctx.put(Const.CMS_FOLDER, checkPath); - } - else - { - ctx.put(Const.BASE_PATH, ""); - ctx.put(Const.CMS_FOLDER, ""); - } - - if (thumbnailPath != null) - ctx.put(Const.THUMBNAIL_PATH, thumbnailPath); - else - ctx.put(Const.THUMBNAIL_PATH, ""); - - ctx.put(Const.FEATURED_CHECKED, ""); - if (featuredFlag != null) - { - ctx.put(Const.FEATURED_FLAG, featuredFlag); - if (featuredFlag.equals("true")) - ctx.put(Const.FEATURED_CHECKED, "checked"); - } - else - ctx.put(Const.FEATURED_FLAG, ""); - - if (opSub != null) - ctx.put(Const.OP_SUB, opSub); - else - ctx.put(Const.OP_SUB, ""); - - if (opRedirect != null) - ctx.put(Const.OP_REDIRECT, opRedirect); - else - ctx.put(Const.OP_REDIRECT, ""); - - if (opCmsAction != null) - ctx.put(Const.OP_CMS_ACTION, opCmsAction); - else - ctx.put(Const.OP_CMS_ACTION, ""); - - if (id != null) - ctx.put(Const.COLLECTION_ID, id.toString()); - } - - - /** - * Load the ctx with key-values from the detail form. - * @param imageCollection is the imagecollection object containing the image base path. - * @param req is the object containing the detail form parameters. - * @param ctx is the ctx object to be loaded. - */ - public void getFormCtxDetail(ImageCollection imageCollection, JBossActionRequest req, DelegateContext ctx) - { - Integer collectionID = req.getParameters().getIntObject(Const.COLLECTION_ID); - Integer detailID = req.getParameters().getIntObject(Const.DETAIL_ID); - String name = req.getParameter(Const.NAME); - String description = req.getParameter(Const.DESCRIPTION); - String thumbnailPath = req.getParameter(Const.THUMBNAIL_PATH); - String imagePath = req.getParameter(Const.IMAGE_PATH); - String photographer = req.getParameter(Const.PHOTOGRAPHER); - String opSub = req.getParameter(Const.OP_SUB); - String redirect = req.getParameter(Const.REDIRECT); - String opCmsAction = req.getParameter(Const.OP_CMS_ACTION); - String opRedirect = req.getParameter(Const.OP_REDIRECT); - String basePath = imageCollection.getBasePath(); - String checkPath = basePath.substring(Const.CMS_ROOT.length()); - ctx.put(Const.CMS_FOLDER, checkPath); - - if (name != null) - ctx.put(Const.NAME, name); - else - ctx.put(Const.NAME, ""); - - if (description != null) - ctx.put(Const.DESCRIPTION, description); - else - ctx.put(Const.DESCRIPTION, ""); - - if (thumbnailPath != null) - ctx.put(Const.THUMBNAIL_PATH, thumbnailPath); - else - ctx.put(Const.THUMBNAIL_PATH, ""); - - if (imagePath != null) - ctx.put(Const.IMAGE_PATH, imagePath); - else - ctx.put(Const.IMAGE_PATH, ""); - - if (photographer != null) - ctx.put(Const.PHOTOGRAPHER, photographer); - else - ctx.put(Const.PHOTOGRAPHER, ""); - - if (opSub != null) - ctx.put(Const.OP_SUB, opSub); - else - ctx.put(Const.OP_SUB, ""); - - if (redirect != null) - ctx.put(Const.REDIRECT, redirect); - else - ctx.put(Const.REDIRECT, ""); - - ctx.put(Const.COLLECTION_ID, collectionID.toString()); - - if (detailID != null) - ctx.put(Const.DETAIL_ID, detailID.toString()); - - if (opCmsAction != null) - ctx.put(Const.OP_CMS_ACTION, opCmsAction); - else - ctx.put(Const.OP_CMS_ACTION, ""); - - if (opRedirect != null) - ctx.put(Const.OP_REDIRECT, opRedirect); - else - ctx.put(Const.OP_REDIRECT, ""); - - } - - - /** - * Load the ctx with key-values from the CMS view form. - * @param imageCollection is the imagecollection object containing the image base path. - * @param req is the object containing the CMS view form parameters. - * @param ctx is the ctx object to be loaded. - */ - public void getFormCtxCaptureCMS (ImageCollection imageCollection, JBossActionRequest req, DelegateContext ctx) - { - String submit = req.getParameter(Const.OP_SUB); - String sPath = null; - - // Image Collection Add does not have a imagecollection object so use the base path. - if (imageCollection != null) - { - sPath = FileUtil.cleanDoubleSlashes(imageCollection.getBasePath() - + "/" + ctx.get(Const.THUMBNAIL_PATH)); - } - - ctx.put(Const.SHOW_THUMBNAIL, sPath); - - if (submit.equals(Const.OP_CANCEL)) - { - req.getPortletSession().setAttribute(Const.CTX, ctx); - return; - } - - String cleanedPath = submit.substring(ctx.get(Const.CMS_FOLDER).length()); - - if (ctx.get(Const.OP_CMS_ACTION).equals(Const.CMS_THUMBNAIL)) - { - String sThumbnail = null; - ctx.put(Const.THUMBNAIL_PATH, cleanedPath); - - // Image Collection Add does not have a imagecollection object so use the base path. - if (imageCollection != null) - { - sThumbnail = FileUtil.cleanDoubleSlashes(imageCollection.getBasePath() - + "/" + cleanedPath); - } - - ctx.put(Const.SHOW_THUMBNAIL, sThumbnail); - } - else - if (ctx.get(Const.OP_CMS_ACTION).equals(Const.CMS_IMAGE)) - ctx.put(Const.IMAGE_PATH, cleanedPath); - - } - - - /** - * Load the ctx with key-values from the CMS file object. - * @param file is the object containing the CMS file information. - * @param ctx is the ctx object to be loaded. - */ - public void getCtxFile(File file, DelegateContext ctx) - { - String fileName = file.getBasePath().substring(file.getBasePath(). - lastIndexOf("/") + 1, file.getBasePath().length()); - ctx.put(Const.CMS_FILE_NAME, fileName); - ctx.put(Const.CMS_FILE_PATH, file.getBasePath()); - ctx.put(Const.CMS_FILE_LAST_MODIFIED, file.getLastModified().toString()); - ctx.put(Const.CMS_FILE_CREATION_DATE, file.getCreationDate().toString()); - } -} Modified: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/ImageGalleryModule.java =================================================================== --- labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/ImageGalleryModule.java 2006-06-10 22:28:06 UTC (rev 4721) +++ labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/ImageGalleryModule.java 2006-06-11 02:35:09 UTC (rev 4722) @@ -103,4 +103,17 @@ ImageDetail createImageDetail(ImageCollection imagecollection, DelegateContext ctx) throws ModuleException; + /** + * Create the image detail from harvest information. + * @param imagecollection is the image collection parent. + * @param name is the image detail record name. + * @param thumbnailPath is the image detail record thumbnail path. + * @param imagePath is the image detail record image path. + * @return the image detail that is created from this method. + */ + ImageDetail harvestCreateImageDetail(ImageCollection imagecollection, + String name, + String thumbnailPath, + String imagePath) + throws ModuleException; } \ No newline at end of file Modified: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/ImageGalleryPortlet.java =================================================================== --- labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/ImageGalleryPortlet.java 2006-06-10 22:28:06 UTC (rev 4721) +++ labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/ImageGalleryPortlet.java 2006-06-11 02:35:09 UTC (rev 4722) @@ -11,6 +11,7 @@ import org.jboss.logging.Logger; import org.jboss.portal.common.context.DelegateContext; import org.jboss.portlet.imagegallery.model.*; +import org.jboss.portlet.imagegallery.helper.*; import org.jboss.portlet.imagegallery.impl.ImageGalleryModuleImpl; import org.jboss.portal.core.modules.ModuleException; import org.jboss.portal.core.servlet.jsp.PortalJsp; @@ -21,6 +22,10 @@ import org.jboss.portlet.JBossRenderRequest; import org.jboss.portlet.JBossRenderResponse; +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.apache.commons.fileupload.portlet.PortletFileUpload; + import org.jboss.portal.cms.model.Content; import org.jboss.portal.cms.impl.ContentImpl; import org.jboss.portal.cms.CMS; @@ -44,6 +49,7 @@ import javax.portlet.WindowState; import javax.portlet.WindowStateException; import java.io.IOException; +import java.io.InputStream; import java.io.PrintWriter; import java.util.Date; import java.util.Iterator; @@ -55,7 +61,9 @@ /** * This portlet provides an imagegallery on the web using the JBoss portal CMS. - * + * This contains methods to capture local files and CMS files as well as methods + * for modifying and viewing content. + * * @author <a href="mailto:im...@ho...">Ron & Conrad Kanengieter</a> * @version $Revision: 2.0 $ */ @@ -72,8 +80,11 @@ // private helper and service classes private ImageGalleryModule imagegalleryModule; + private CMSHelper fileHelper; private CMS CMSService; private DataHelper dataHelper = new DataHelper(); + private ErrorHelper errorHelper = new ErrorHelper(); + private HarvestHelper harvestHelper = new HarvestHelper(); public void init() throws PortletException @@ -95,6 +106,10 @@ { throw new PortletException("Cannot start CMS service due to unavailability"); } + else + { + fileHelper = new CMSHelper(CMSService); + } } @@ -149,6 +164,7 @@ // Collections if(Const.OP_COLLECTIONS.equals(op)) { + try { List imagecollections = imagegalleryModule.findImageCollections(); @@ -159,7 +175,7 @@ ImageCollection imagecollection = (ImageCollection) i.next(); rowCtx = ctx.next("imagecollections"); - dataHelper.getCtxCollection(imagecollection, rowCtx); + dataHelper.getCtxCollection(req, imagecollection, rowCtx); } req.setAttribute(PortalJsp.CTX_REQUEST, ctx); } @@ -177,11 +193,11 @@ { try { - Integer id = req.getParameters().getIntObject(Const.COLLECTION_ID); // Get the collection ID so one could see the + Integer id = req.getParameters().getIntObject(Const.COLLECTION_ID); - ImageCollection imageCollection = imagegalleryModule.findImageCollectionByID(id); // collection ID. - List imagedetails = imagegalleryModule.findDetailsByCollectionID(id); // Get a list of images in the directory - LinkedList idList = new LinkedList(); // New list for collection IDs to get. + ImageCollection imageCollection = imagegalleryModule.findImageCollectionByID(id); + List imagedetails = imagegalleryModule.findDetailsByCollectionID(id); + LinkedList idList = new LinkedList(); DelegateContext rowCtx = null; ctx.put(Const.COLLECTION_ID, (id.toString())); @@ -191,7 +207,7 @@ { ImageDetail imageDetail = (ImageDetail) i.next(); rowCtx = ctx.next("imagedetails"); - dataHelper.getCtxDetail(imageCollection, imageDetail, rowCtx); + dataHelper.getCtxDetail(req, imageCollection, imageDetail, rowCtx); idList.addLast(imageDetail.getID()); } req.getPortletSession().setAttribute("idList", idList); @@ -213,10 +229,9 @@ { Integer collectionID = req.getParameters().getIntObject(Const.COLLECTION_ID); Integer detailID = req.getParameters().getIntObject(Const.DETAIL_ID); - LinkedList idList = (LinkedList)req.getPortletSession().getAttribute("idList"); // List of IDs in a - // collection. - ListIterator iterateIdList = null; // Used to iterate the list of IDs in the - // details of a collection. + LinkedList idList = (LinkedList)req.getPortletSession().getAttribute("idList"); + ListIterator iterateIdList = null; + if (idList != null) { iterateIdList = idList.listIterator(); @@ -226,8 +241,8 @@ throw new PortletException("The ID list cannot be null"); } - int imageCount = 0; // The total count of images for the iterator. - int saveCount = 0; // The current count of images. + int imageCount = 0; + int saveCount = 0; Integer currentID = new Integer(0); Integer nextID = new Integer(0); @@ -259,7 +274,7 @@ ImageDetail imageDetail = imagegalleryModule.findImageDetailByID(detailID); ImageCollection imageCollection = imagegalleryModule.findImageCollectionByID(collectionID); - dataHelper.getCtxDetail(imageCollection, imageDetail, ctx); + dataHelper.getCtxDetail(req, imageCollection, imageDetail, ctx); if (previousID.intValue() > 0) { @@ -323,7 +338,7 @@ try { imagecollection = imagegalleryModule.findImageCollectionByID(id); - dataHelper.getCtxCollection(imagecollection, ctx); + dataHelper.getCtxCollection(req, imagecollection, ctx); } catch(ModuleException e) { @@ -384,7 +399,7 @@ Integer collectionID = req.getParameters().getIntObject(Const.COLLECTION_ID); Integer detailID = req.getParameters().getIntObject(Const.DETAIL_ID); - String redirect = req.getParameter(Const.REDIRECT); + String redirect = req.getParameter(Const.RETURN_LOCATION); ImageCollection imageCollection = null; ImageDetail imageDetail = null; @@ -401,8 +416,8 @@ imageCollection = imagegalleryModule.findImageCollectionByID(collectionID); imageDetail = imagegalleryModule.findImageDetailByID(detailID); - ctx.put(Const.REDIRECT, redirect); - dataHelper.getCtxDetail(imageCollection, imageDetail, ctx); + ctx.put(Const.RETURN_LOCATION, redirect); + dataHelper.getCtxDetail(req, imageCollection, imageDetail, ctx); } catch(ModuleException e) { @@ -437,8 +452,8 @@ DelegateContext rowCtx = null; - Folder mainFolder; // main folder of the content management system. - List files; // list of files in the content management system. + Folder mainFolder; + List files; String fullPath = FileUtil.cleanDoubleSlashes(jspCtx.get(Const.CMS_FOLDER) + "/" + jspCtx.get(Const.OP_CMS_ACTION)); @@ -467,7 +482,16 @@ PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/browseCMS.jsp"); rd.include(req, resp); } - + + // UPLOAD from local to CMS system + else if (Const.OP_LOCAL_TO_CMS.equals(op)) + { + req.setAttribute(PortalJsp.CTX_REQUEST, ctx); + + PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/fileUpload.jsp"); + rd.include(req, resp); + } + // Error else log.error("This operation does not exist: " + op); @@ -475,12 +499,75 @@ writer.close(); } + /* + * Action to get a local file with an image on a multipart form + * and upload it to the CMS + * + * @param req contains the parameters from the form + * @param resp contains the parameters needed to move to a new form + */ + public void getLocalFile(JBossActionRequest req, JBossActionResponse resp) + { + String submit = ""; + // Path from local file system + String localPath = ""; + DelegateContext ctx = (DelegateContext) req.getPortletSession().getAttribute(Const.CTX); + Locale locale = req.getLocale(); + List fileItems = new LinkedList(); + Iterator itr = fileItems.iterator(); + try + { + if (req.isUserInRole("Admin")) + { + + DiskFileItemFactory factory = new DiskFileItemFactory(); + PortletFileUpload upload = new PortletFileUpload(factory); + if (upload.isMultipartContent(req)) + { + fileItems = upload.parseRequest(req); + itr = fileItems.iterator(); + } + + while(itr.hasNext()) + { + FileItem item = (FileItem) itr.next(); + // check if the current item is a form field or an uploaded file + + + if(!item.isFormField()) + { + InputStream is = item.getInputStream(); + localPath = item.getName(); + + if(submit.equals(Const.OP_UPLOAD) && localPath != null && !localPath.equals("")) + { + fileHelper.cleanPath(localPath, ctx); + fileHelper.uploadToCMS(ctx, locale, item.get()); + } + } + else + { + String fieldName = item.getFieldName(); + if(Const.OP_SUB.equals(fieldName)) + { + submit = item.getString(); + } + } + } + } + resp.setRenderParameter(Const.OP, ctx.get(Const.OP_REDIRECT)); + } + catch(Exception e) + { + e.printStackTrace(); + } + } /** * Action to capture the image file selected from the CMS view * * @param req is the request of the action form that holds parameters - * @param resp is the response for the next action form + * @param resp contains the parameters needed to move to a new form */ public void captureCMS(JBossActionRequest req, JBossActionResponse resp) { @@ -505,7 +592,7 @@ dataHelper.getFormCtxCaptureCMS(imageCollection, req, ctx); resp.setRenderParameter(Const.OP, ctx.get(Const.OP_REDIRECT)); - } + } /** @@ -518,58 +605,44 @@ { DelegateContext formCtx = new DelegateContext(); dataHelper.getFormCtxCollection(req, formCtx); - // The path should have thumbnails or images. - String folderPath = FileUtil.cleanDoubleSlashes(formCtx.get(Const.CMS_FOLDER) + formCtx.get(Const.OP_CMS_ACTION)); - // Check also to see the user's file - String filePath = FileUtil.cleanDoubleSlashes(formCtx.get(Const.CMS_FOLDER) + formCtx.get(Const.THUMBNAIL_PATH)); - Command folderExistsCMD = CMSService.getCommandFactory().createItemExistsCommand(folderPath); - Command fileExistsCMD = CMSService.getCommandFactory().createItemExistsCommand(filePath); - Boolean folderExists = (Boolean) CMSService.execute(folderExistsCMD); - Boolean fileExists = (Boolean) CMSService.execute(fileExistsCMD); - - if(!formCtx.get(Const.OP_SUB).equals(Const.OP_CANCEL)) + + if(formCtx.get(Const.OP_SUB).equals(Const.OP_CANCEL)) { - if(!folderExists.booleanValue()) - { - formCtx.put(Const.MSG, "'" + formCtx.get(Const.OP_CMS_ACTION) + "' does not exist under '" + formCtx.get(Const.BASE_PATH) + "'."); - req.getPortletSession().setAttribute(Const.CTX, formCtx); - resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONADD); - return; - } + resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONS); + req.getPortletSession().removeAttribute(Const.CTX); } - - if(formCtx.get(Const.OP_SUB).equals(Const.OP_ADD)) + else + if (errorHelper.collectionErrors(req, formCtx, fileHelper)) { - if(!fileExists.booleanValue()) - { - formCtx.put(Const.MSG, "'" + formCtx.get(Const.THUMBNAIL_PATH) + "' does not exist under '" + formCtx.get(Const.BASE_PATH) + "'."); - req.getPortletSession().setAttribute(Const.CTX, formCtx); - resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONADD); - return; - } + req.getPortletSession().setAttribute(Const.CTX, formCtx); + resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONADD); } - - if (formCtx.get(Const.OP_SUB).equals(Const.OP_BROWSE_CMS) && req.isUserInRole("Admin")) + else + if (formCtx.get(Const.OP_SUB).equals(Const.OP_BROWSE_CMS)) { req.getPortletSession().setAttribute(Const.CTX, formCtx); resp.setRenderParameter(Const.OP, Const.OP_CMS_VIEW); } else + if (formCtx.get(Const.OP_SUB).equals(Const.OP_LOCAL_UPLOAD)) { - if(formCtx.get(Const.OP_SUB).equals(Const.OP_ADD) && req.isUserInRole("Admin")) - { - try - { - imagegalleryModule.createImageCollection(formCtx); - } - catch(ModuleException e) - { - e.printStackTrace(); - } - } - resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONS); - req.getPortletSession().removeAttribute(Const.CTX); + req.getPortletSession().setAttribute(Const.CTX, formCtx); + resp.setRenderParameter(Const.OP, Const.OP_LOCAL_TO_CMS); } + else + if(formCtx.get(Const.OP_SUB).equals(Const.OP_ADD)) + { + try + { + imagegalleryModule.createImageCollection(formCtx); + } + catch(ModuleException e) + { + e.printStackTrace(); + } + resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONS); + req.getPortletSession().removeAttribute(Const.CTX); + } } @@ -586,75 +659,65 @@ DelegateContext formCtx = new DelegateContext(); dataHelper.getFormCtxCollection(req, formCtx); - - // The path should have thumbnails or images. - String folderPath = FileUtil.cleanDoubleSlashes(formCtx.get(Const.CMS_FOLDER) + formCtx.get(Const.OP_CMS_ACTION)); - // Check also to see the user's file - String filePath = FileUtil.cleanDoubleSlashes(formCtx.get(Const.CMS_FOLDER) + formCtx.get(Const.THUMBNAIL_PATH)); - Command folderExistsCMD = CMSService.getCommandFactory().createItemExistsCommand(folderPath); - Command fileExistsCMD = CMSService.getCommandFactory().createItemExistsCommand(filePath); - Boolean folderExists = (Boolean) CMSService.execute(folderExistsCMD); - Boolean fileExists = (Boolean) CMSService.execute(fileExistsCMD); - - boolean checked = false; // The featured flag needs to be set to - // "checked" if true. - if (formCtx.get(Const.FEATURED_FLAG).equals("true")) - checked = true; - Boolean featuredFlag = new Boolean(checked); - if(!formCtx.get(Const.OP_SUB).equals(Const.OP_CANCEL)) + if(formCtx.get(Const.OP_SUB).equals(Const.OP_CANCEL)) { - if(!folderExists.booleanValue()) - { - formCtx.put(Const.MSG, "'" + formCtx.get(Const.OP_CMS_ACTION) + "' does not exist under '" + formCtx.get(Const.BASE_PATH) + "'."); - req.getPortletSession().setAttribute(Const.CTX, formCtx); - resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONEDIT); - return; - } + resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONS); + req.getPortletSession().removeAttribute(Const.CTX); } - - if(formCtx.get(Const.OP_SUB).equals(Const.OP_EDIT)) + else + if (errorHelper.collectionErrors(req, formCtx, fileHelper)) { - - if(!fileExists.booleanValue()) - { - formCtx.put(Const.MSG, "'" + formCtx.get(Const.THUMBNAIL_PATH) + "' does not exist under '" + formCtx.get(Const.BASE_PATH) + "'."); - req.getPortletSession().setAttribute(Const.CTX, formCtx); - resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONEDIT); - return; - } + req.getPortletSession().setAttribute(Const.CTX, formCtx); + resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONADD); } - - if (formCtx.get(Const.OP_SUB).equals(Const.OP_BROWSE_CMS) && req.isUserInRole("Admin")) + else + if (formCtx.get(Const.OP_SUB).equals(Const.OP_BROWSE_CMS)) { req.getPortletSession().setAttribute(Const.CTX, formCtx); resp.setRenderParameter(Const.OP, Const.OP_CMS_VIEW); } else + if (formCtx.get(Const.OP_SUB).equals(Const.OP_HARVEST)) { - if(formCtx.get(Const.OP_SUB).equals(Const.OP_EDIT) && req.isUserInRole("Admin")) - { - try - { - // If the collection ID is null, try getting from the context. - if (id == null) - id = Integer.decode(formCtx.get(Const.COLLECTION_ID)); - ImageCollection imagecollection = imagegalleryModule.findImageCollectionByID(id); + req.getPortletSession().setAttribute(Const.CTX, formCtx); + harvestHelper.harvest(fileHelper, req, imagegalleryModule, formCtx); + resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONEDIT); + } + else + if (formCtx.get(Const.OP_SUB).equals(Const.OP_LOCAL_UPLOAD)) + { + req.getPortletSession().setAttribute(Const.CTX, formCtx); + resp.setRenderParameter(Const.OP, Const.OP_LOCAL_TO_CMS); + } + else + if(formCtx.get(Const.OP_SUB).equals(Const.OP_EDIT)) + { + try + { + boolean checked = false; + if (formCtx.get(Const.FEATURED_FLAG).equals("true")) + checked = true; + Boolean featuredFlag = new Boolean(checked); - imagecollection.setName(formCtx.get(Const.NAME)); - imagecollection.setDescription(formCtx.get(Const.DESCRIPTION)); - imagecollection.setBasePath(formCtx.get(Const.BASE_PATH)); - imagecollection.setThumbnailPath(formCtx.get(Const.THUMBNAIL_PATH)); - imagecollection.setFeaturedFlag(featuredFlag); - } - catch(ModuleException e) - { - e.printStackTrace(); - } - } + // If the collection ID is null, browse CMS puts it in the context. + if (id == null) + id = Integer.decode(formCtx.get(Const.COLLECTION_ID)); + ImageCollection imagecollection = imagegalleryModule.findImageCollectionByID(id); - resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONS); - req.getPortletSession().removeAttribute(Const.CTX); + imagecollection.setName(formCtx.get(Const.NAME)); + imagecollection.setDescription(formCtx.get(Const.DESCRIPTION)); + imagecollection.setBasePath(formCtx.get(Const.BASE_PATH)); + imagecollection.setThumbnailPath(formCtx.get(Const.THUMBNAIL_PATH)); + imagecollection.setFeaturedFlag(featuredFlag); + } + catch(ModuleException e) + { + e.printStackTrace(); + } + + resp.setRenderParameter(Const.OP, Const.OP_COLLECTIONS); + req.getPortletSession().removeAttribute(Const.CTX); } } @@ -712,50 +775,40 @@ dataHelper.getFormCtxDetail(imageCollection, req, formCtx); - if(formCtx.get(Const.OP_SUB).equals(Const.OP_ADD)) + if(errorHelper.detailErrors(req, formCtx, fileHelper)) { - // Check also to see the user's files exist. - String thumbnailPath = FileUtil.cleanDoubleSlashes(formCtx.get(Const.CMS_FOLDER) + formCtx.get(Const.THUMBNAIL_PATH)); - String imagePath = FileUtil.cleanDoubleSlashes(formCtx.get(Const.CMS_FOLDER) + formCtx.get(Const.IMAGE_PATH)); - System.out.println(thumbnailPath); - System.out.println(imagePath); - Command thumbnailExistsCMD = CMSService.getCommandFactory().createItemExistsCommand(thumbnailPath); - Command imageExistsCMD = CMSService.getCommandFactory().createItemExistsCommand(imagePath); - Boolean thumbnailExists = (Boolean) CMSService.execute(thumbnailExistsCMD); - Boolean imageExists = (Boolean) CMSService.execute(imageExistsCMD); - if(!thumbnailExists.booleanValue() || !imageExists.booleanValue()) - { - formCtx.put(Const.MSG, "The thumbnail or image does not exist under '" + imageCollection.getBasePath() + "'."); - req.getPortletSession().setAttribute(Const.CTX, formCtx); - resp.setRenderParameter(Const.OP, Const.OP_DETAILADD); - return; - } + req.getPortletSession().setAttribute(Const.CTX, formCtx); + resp.setRenderParameter(Const.OP, Const.OP_DETAILADD); } - + else if (formCtx.get(Const.OP_SUB).equals(Const.OP_BROWSE_CMS)) { req.getPortletSession().setAttribute(Const.CTX, formCtx); resp.setRenderParameter(Const.OP, Const.OP_CMS_VIEW); } else + if (formCtx.get(Const.OP_SUB).equals(Const.OP_LOCAL_UPLOAD) && req.isUserInRole("Admin")) { + req.getPortletSession().setAttribute(Const.CTX, formCtx); + resp.setRenderParameter(Const.OP, Const.OP_LOCAL_TO_CMS); + } + else + { if (formCtx.get(Const.OP_SUB).equals(Const.OP_ADD) && req.isUserInRole("Admin")) { try { - imagegalleryModule.createImageDetail(imageCollection, formCtx); - } + imagegalleryModule.createImageDetail(imageCollection, formCtx); + } catch (ModuleException e) { - e.printStackTrace(); + e.printStackTrace(); } } - resp.setRenderParameter(Const.OP, Const.OP_DETAILS); resp.setRenderParameter(Const.COLLECTION_ID, (id.toString())); req.getPortletSession().removeAttribute(Const.CTX); } - } @@ -784,59 +837,49 @@ dataHelper.getFormCtxDetail(imageCollection, req, formCtx); - if(formCtx.get(Const.OP_SUB).equals(Const.OP_EDIT)) + if(errorHelper.detailErrors(req, formCtx, fileHelper)) { - // Check also to see the user's files exist. - String thumbnailPath = FileUtil.cleanDoubleSlashes(formCtx.get(Const.CMS_FOLDER) + formCtx.get(Const.THUMBNAIL_PATH)); - String imagePath = FileUtil.cleanDoubleSlashes(formCtx.get(Const.CMS_FOLDER) + formCtx.get(Const.IMAGE_PATH)); - System.out.println(thumbnailPath); - System.out.println(imagePath); - Command thumbnailExistsCMD = CMSService.getCommandFactory().createItemExistsCommand(thumbnailPath); - Command imageExistsCMD = CMSService.getCommandFactory().createItemExistsCommand(imagePath); - Boolean thumbnailExists = (Boolean) CMSService.execute(thumbnailExistsCMD); - Boolean imageExists = (Boolean) CMSService.execute(imageExistsCMD); - System.out.println(thumbnailPath + " " + thumbnailExists.booleanValue()); - System.out.println(imagePath + " " + imageExists.booleanValue()); - if(!thumbnailExists.booleanValue() || !imageExists.booleanValue()) - { - formCtx.put(Const.MSG, " The thumbnail or the image does not exist under '" + imageCollection.getBasePath() + "'."); - req.getPortletSession().setAttribute(Const.CTX, formCtx); - resp.setRenderParameter(Const.OP, Const.OP_DETAILEDIT); - return; - } + req.getPortletSession().setAttribute(Const.CTX, formCtx); + resp.setRenderParameter(Const.OP, Const.OP_DETAILEDIT); } - + else if (formCtx.get(Const.OP_SUB).equals(Const.OP_BROWSE_CMS) && req.isUserInRole("Admin")) { req.getPortletSession().setAttribute(Const.CTX, formCtx); resp.setRenderParameter(Const.OP, Const.OP_CMS_VIEW); } else + if (formCtx.get(Const.OP_SUB).equals(Const.OP_LOCAL_UPLOAD) && req.isUserInRole("Admin")) { - if(formCtx.get(Const.OP_SUB).equals(Const.OP_EDIT) && req.isUserInRole("Admin")) - { - try - { - ImageDetail imagedetail = imagegalleryModule.findImageDetailByID(detailID); - - imagedetail.setName(formCtx.get(Const.NAME)); - imagedetail.setDescription(formCtx.get(Const.DESCRIPTION)); - imagedetail.setThumbnailPath(formCtx.get(Const.THUMBNAIL_PATH)); - imagedetail.setImagePath(formCtx.get(Const.IMAGE_PATH)); - imagedetail.setPhotographer(formCtx.get(Const.PHOTOGRAPHER)); - } - catch(ModuleException e) - { - e.printStackTrace(); - } - } - - resp.setRenderParameter(Const.OP, formCtx.get(Const.REDIRECT)); - resp.setRenderParameter(Const.COLLECTION_ID, (collectionID.toString())); - resp.setRenderParameter(Const.DETAIL_ID, (detailID.toString())); - req.getPortletSession().removeAttribute(Const.CTX); + req.getPortletSession().setAttribute(Const.CTX, formCtx); + resp.setRenderParameter(Const.OP, Const.OP_LOCAL_TO_CMS); } + else + { + if(formCtx.get(Const.OP_SUB).equals(Const.OP_EDIT) && req.isUserInRole("Admin")) + { + try + { + ImageDetail imagedetail = imagegalleryModule.findImageDetailByID(detailID); + + imagedetail.setName(formCtx.get(Const.NAME)); + imagedetail.setDescription(formCtx.get(Const.DESCRIPTION)); + imagedetail.setThumbnailPath(formCtx.get(Const.THUMBNAIL_PATH)); + imagedetail.setImagePath(formCtx.get(Const.IMAGE_PATH)); + imagedetail.setPhotographer(formCtx.get(Const.PHOTOGRAPHER)); + } + catch(ModuleException e) + { + e.printStackTrace(); + } + } + resp.setRenderParameter(Const.OP, formCtx.get(Const.RETURN_LOCATION)); + resp.setRenderParameter(Const.COLLECTION_ID, (collectionID.toString())); + resp.setRenderParameter(Const.DETAIL_ID, (detailID.toString())); + req.getPortletSession().removeAttribute(Const.CTX); + } } + /** Added: labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/helper/CMSHelper.java =================================================================== --- labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/helper/CMSHelper.java 2006-06-10 22:28:06 UTC (rev 4721) +++ labs/portletswap/imagegalleryportlet/trunk/ig_2.2/src/main/org/jboss/portlet/imagegallery/helper/CMSHelper.java 2006-06-11 02:35:09 UTC (rev 4722) @@ -0,0 +1,244 @@ +/***************************************** + * * + * The Image Gallery Portlet * + * * + * Distributable under LGPL license. * + * See terms of license at gnu.org. * + * * + *****************************************/ + +package org.jboss.portlet.imagegallery.helper; + +import org.jboss.portlet.imagegallery.Const; +import org.jboss.portal.common.context.DelegateContext; + +import org.jboss.portal.cms.model.Content; +import org.jboss.portal.cms.impl.ContentImpl; +import org.jboss.portal.cms.CMS; +import org.jboss.portal.cms.Command; +import org.jboss.portal.cms.model.Folder; +import org.jboss.portal.cms.impl.FolderImpl; +import org.jboss.portal.cms.model.File; +import org.jboss.portal.cms.impl.FileImpl; +import org.jboss.portal.cms.CMSMimeMappings; +import org.jboss.portal.cms.util.FileUtil; +import org.jboss.portal.cms.util.NodeUtil; + +import java.util.Date; +import java.util.List; +import java.util.LinkedList; +import java.util.Locale; +/** + * CMSHelper is a class to manage CMS transactions in the image gallery portlet. + * This is able to check the paths. It is also able to create files and folders. + * + * @author <a href="mailto:im...@ho...">Ron & Conrad Kanengieter</a> + * @version $Revision: 2.2 $ + */ + +public class CMSHelper +{ + private CMS service; + + public CMSHelper() + { + } + + public CMSHelper(CMS newService) + { + service = newService; + } + + /** + * A routine to check if a folder exists in the CMS + * + * @param path is the place in the CMS to be checked + * @return a value stating whether a folder exists + */ + public boolean folderExists(String path) + { + Command folderExistsCMD = service.getCommandFactory().createItemExistsCommand(path); + Boolean folderExists = null; + if (folderExistsCMD != null) + { + folderExists = (Boolean) service.execute(folderExistsCMD); + } + + if (folderExists == null) + { + folderExists = new Boolean(false); + } + return folderExists.booleanValue(); + } + + /** + * A routine to check if a file exists in the CMS + * + * @param path is the place in the CMS to be checked + * @return a value stating whether a file exists + */ + public boolean fileExists(String path) + { + Command fileExistsCMD = service.getCommandFactory().createItemExistsCommand(path); + Boolean fileExists = null; + + if (fileExistsCMD != null) + { + fileExists = (Boolean) service.execute(fileExistsCMD); + } + + if (fileExists == null) + { + fileExists = new Boolean(false); + } + return fileExists.booleanValue(); + } + + /** + * Trims the local path in order to get the base file name and + * makes a CMS path. + * + * @param localPath is the path from which to create the CMS Path + * @param ctx is the thumbnail path + */ + public void cleanPath(String localPath, DelegateContext ctx) + { + // The path to the base file name if the browser has the + // full path. + int backslashIndex = localPath.lastIndexOf("\\"); + if(backslashIndex > -1) // getWindows + { + localPath = localPath.substring(backslashIndex + 1); + } + else // unix + { + backslashIndex = localPath.lastIndexOf("/"); + localPath = localPath.substring(backslashIndex + 1); + } + String CMSPath = FileUtil.cleanDoubleSlashes(ctx.get(Const.CMS_FOLDER) + ctx.get(Const.OP_CMS_ACTION) + "/" + localPath); + String relativePath = FileUtil.cleanDoubleSlashes(ctx.get(Const.OP_CMS_ACTION) + "/" + localPath); + String pathToShow = FileUtil.cleanDoubleSlashes(ctx.get(Const.BASE_PATH) + "/" + ctx.get(Const.CMS_ACTION) + "/" + localPath); + + + if (ctx.get(Const.OP_CMS_ACTION).equals(Const.CMS_THUMBNAIL)) + ctx.put (Const.THUMBNAIL_PATH, relativePath); + else + if (ctx.get(Const.OP_CMS_ACTION).equals(Const.CMS_IMAGE)) + ctx.put (Const.IMAGE_PATH, relativePath); + + ctx.put(Const.SHOW_THUMBNAIL, pathToShow); + ctx.put (Const.LOCAL_FILE, localPath); + ctx.put (Const.CMS_FILE, CMSPath); + } + + /** + * See if any images exist in the CMS Folder path of the context + * + * @param ctx is the context that contains the CMS image folder + * @return list of the files that are found in the CMS folder + */ + public List checkCMSPath(DelegateContext ctx) + { + Command checkCMD = service.getCommandFactory().createFolderGetListCommand(ctx.get(Const.CMS_FOLDER)); + Folder folderToCheck = null; + List folderContents = null; + + if (checkCMD != null) + { + folderToCheck = (Folder) service.execute(checkCMD); + } + + if (folderToCheck != null) + { + folderContents = folderToCheck.getFiles(); + } + else + { + folderContents = new LinkedList(); + } + + return folderContents; + } + + /* + * Create the file using the path to the CMS file, bytes, and locale. + * + * @param ctx contains the file name and path to CMS file + * @param locale is the locale in which the file is created + * @param fileBytes is the file bytes. + */ + public void uploadToCMS (DelegateContext ctx, Locale locale, byte[] fileBytes) + { + // This is the file object that will be on the CMS. + File imageGalleryUpload = new FileImpl(); + + // This is the content that will be on on the file in the CMS. + Content content = new ContentImpl(); + + String fileExt = ctx.get(Const.LOCAL_FILE).substring(ctx.get(Const.LOCAL_FILE).lastIndexOf(".") + 1, ctx.get(Const.LOCAL_FILE).length()); + // This is the name to go into the CMS system + String fileName = ctx.get(Const.LOCAL_FILE).substring(0, ctx.get(Const.LOCAL_FILE).lastIndexOf(".")); + CMSMimeMappings mapper = new CMSMimeMappings(); + if(mapper.getMimeType(fileExt) != null) + { + content.setMimeType(mapper.getMimeType(fileExt)); + } + else + { + content.setMimeType(""); + } + + imageGalleryUpload.setBasePath(ctx.get(Const.CMS_FILE)); + + content.setTitle(fileName + " file"); + content.setDescription("Created by IG upload"); + content.setBasePath(ctx.get(Const.CMS_FILE) + "/" + locale.getLanguage()); + content.setBytes(fileBytes); + + imageGalleryUpload.setContent(locale, content); + if (fileBytes.length > 0) + { + Command existsCMD = service.getCommandFactory().createItemExistsCommand(content.getBasePath()); + Boolean bExists = (Boolean) service.execute(existsCMD); + if(bExists.booleanValue()) // if file exists, update contentNode + { + // force "make live" + Command cmdUpdate = service.getCommandFactory().createFileUpdateCommand(imageGalleryUpload); + service.execute(cmdUpdate); + + Command cmdVersion = service.getCommandFactory().createContentCreateNewVersionCommand(content, true); + service.execute(cmdVersion); + } + else // if file doesnt exist, create the file and the contentNode. + { + Command saveFileCMD = service.getCommandFactory().createFileSaveCo... [truncated message content] |
|
From: <jbo...@li...> - 2006-06-10 22:28:12
|
Author: mla...@jb...
Date: 2006-06-10 18:28:06 -0400 (Sat, 10 Jun 2006)
New Revision: 4721
Modified:
labs/jbossweb/trunk/src/share/classes/org/apache/catalina/servlets/php/Handler.java
labs/jbossweb/trunk/src/share/native/php5servlet/php5servlet.c
Log:
Comment the log method. It is unused for now.
Modified: labs/jbossweb/trunk/src/share/classes/org/apache/catalina/servlets/php/Handler.java
===================================================================
--- labs/jbossweb/trunk/src/share/classes/org/apache/catalina/servlets/php/Handler.java 2006-06-10 19:37:45 UTC (rev 4720)
+++ labs/jbossweb/trunk/src/share/classes/org/apache/catalina/servlets/php/Handler.java 2006-06-10 22:28:06 UTC (rev 4721)
@@ -211,5 +211,9 @@
res.setStatus(HttpServletResponse.SC_NOT_FOUND);
}
}
-
+
+ public static void log(Handler handler, String msg)
+ {
+ // TODO: Log the message
+ }
}
Modified: labs/jbossweb/trunk/src/share/native/php5servlet/php5servlet.c
===================================================================
--- labs/jbossweb/trunk/src/share/native/php5servlet/php5servlet.c 2006-06-10 19:37:45 UTC (rev 4720)
+++ labs/jbossweb/trunk/src/share/native/php5servlet/php5servlet.c 2006-06-10 22:28:06 UTC (rev 4721)
@@ -522,10 +522,12 @@
(*e)->CallStaticVoidMethod(e, jni_SAPI_class,
jni_SAPI_methods[5].m,
+ r->res,
SG(sapi_headers).http_response_code);
SG(headers_sent) = 1;
if ((*e)->CallStaticIntMethod(e, jni_SAPI_class,
- jni_SAPI_methods[3].m) < 0) {
+ jni_SAPI_methods[3].m,
+ r->res) < 0) {
php_handle_aborted_connection();
}
}
@@ -544,11 +546,13 @@
return;
}
e = r->e;
-
+ /*
+ * TODO: Log the message
(*e)->CallStaticVoidMethod(e, jni_SAPI_class,
jni_SAPI_methods[2].m,
r->handler,
STR_TO_JSTRING(msg));
+ */
}
|
|
From: <jbo...@li...> - 2006-06-10 19:37:56
|
Author: wrzep
Date: 2006-06-10 15:37:45 -0400 (Sat, 10 Jun 2006)
New Revision: 4720
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/IssueTracker.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Repository.java
Log:
JBLAB-603
Fixed bug: NPE when repo or issue tracker type was not specified.
Pawel
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/IssueTracker.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/IssueTracker.java 2006-06-10 14:25:28 UTC (rev 4719)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/IssueTracker.java 2006-06-10 19:37:45 UTC (rev 4720)
@@ -51,8 +51,11 @@
String typeString = XmlTools.getAttributeValue(root, TYPE_ATTRIBUTE);
type = JIRA_ISSUE_TRACKER;
- if (typeString.equalsIgnoreCase(OTHER_ISSUE_TRACKER_STRING)) {
- type = OTHER_ISSUE_TRACKER;
+
+ if (typeString != null ) {
+ if (typeString.equalsIgnoreCase(OTHER_ISSUE_TRACKER_STRING)) {
+ type = OTHER_ISSUE_TRACKER;
+ }
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Repository.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Repository.java 2006-06-10 14:25:28 UTC (rev 4719)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Repository.java 2006-06-10 19:37:45 UTC (rev 4720)
@@ -60,12 +60,15 @@
type = SVN_REPOSITORY; // default type is SVN
- if (typeString.equalsIgnoreCase(CVS_REPOSITORY_STRING)) {
- type = SVN_REPOSITORY;
+ if (typeString != null) {
+
+ if (typeString.equalsIgnoreCase(CVS_REPOSITORY_STRING)) {
+ type = SVN_REPOSITORY;
+ }
+ if (typeString.equalsIgnoreCase(OTHER_REPOSITORY_STRING)) {
+ type = OTHER_REPOSITORY;
+ }
}
- if (typeString.equalsIgnoreCase(OTHER_REPOSITORY_STRING)) {
- type = OTHER_REPOSITORY;
- }
}
public short getType() {
|
|
From: <jbo...@li...> - 2006-06-10 14:25:32
|
Author: szimano
Date: 2006-06-10 10:25:28 -0400 (Sat, 10 Jun 2006)
New Revision: 4719
Modified:
labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/AbstractTag.java
labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java
Log:
getRelatedTags() + AbstractTag equals() methos
Modified: labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/AbstractTag.java
===================================================================
--- labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/AbstractTag.java 2006-06-10 04:18:23 UTC (rev 4718)
+++ labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/AbstractTag.java 2006-06-10 14:25:28 UTC (rev 4719)
@@ -8,43 +8,64 @@
* @author Adam Warski (ad...@as...)
*/
public abstract class AbstractTag implements Tag {
- private String name;
- private String author;
- private String resourceId;
- private String data;
+ private String name;
- private Date dateCreated;
+ private String author;
- public AbstractTag(String name, String author, String resourceId,
- String data, Date dateCreated) {
- this.name = name;
- this.author = author;
- this.resourceId = resourceId;
- this.data = data;
- this.dateCreated = dateCreated;
- }
+ private String resourceId;
- /*
- * TAG implementation.
- */
+ private String data;
- public String getName() {
- return name;
- }
+ private Date dateCreated;
- public String getAuthor() {
- return author;
- }
+ public AbstractTag(String name, String author, String resourceId,
+ String data, Date dateCreated) {
+ this.name = name;
+ this.author = author;
+ this.resourceId = resourceId;
+ this.data = data;
+ this.dateCreated = dateCreated;
+ }
- public String getResourceId() {
- return resourceId;
- }
+ /*
+ * TAG implementation.
+ */
- public String getData() {
- return data;
- }
+ public String getName() {
+ return name;
+ }
- public Date getDateCreated() {
- return dateCreated;
- }
-}
+ public String getAuthor() {
+ return author;
+ }
+
+ public String getResourceId() {
+ return resourceId;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public Date getDateCreated() {
+ return dateCreated;
+ }
+
+public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+
+ if (obj.getClass().equals(this.getClass())) {
+ AbstractTag otherTag = (AbstractTag) obj;
+
+ if (name.equals(otherTag.getName())
+ && ((data == null && otherTag.getData() == null) || (data != null && data.equals(otherTag.getData())))
+ && resourceId.equals(otherTag.getResourceId())
+ && author.equals(otherTag.getAuthor())) {
+ return true;
+ }
+ }
+
+ return false;
+ }}
Modified: labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java
===================================================================
--- labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java 2006-06-10 04:18:23 UTC (rev 4718)
+++ labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java 2006-06-10 14:25:28 UTC (rev 4719)
@@ -22,9 +22,11 @@
package org.jboss.shotoku.tags.service;
import java.util.Calendar;
+import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.Map;
import java.net.URLEncoder;
import java.io.UnsupportedEncodingException;
@@ -54,246 +56,310 @@
* @author Adam Warski (ad...@as...)
* @author Damon Sicore (da...@si...)
*/
-@Service(objectName=org.jboss.shotoku.tags.tools.Constants.TAG_SERVICE_NAME)
+@Service(objectName = org.jboss.shotoku.tags.tools.Constants.TAG_SERVICE_NAME)
@Local(TagServiceLocal.class)
@Management(TagService.class)
@Depends(Constants.SHOTOKU_SERVICE_NAME)
-public class TagServiceImpl extends AdministratedServiceImpl
- implements TagService, TagServiceLocal {
- private static final Logger log = Logger.getLogger(TagService.class);
+public class TagServiceImpl extends AdministratedServiceImpl implements
+ TagService, TagServiceLocal {
+ private static final Logger log = Logger.getLogger(TagService.class);
- /*
- * Service lifecycle management.
- */
+ /*
+ * Service lifecycle management.
+ */
- public void create() throws Exception {
- super.create();
+ public void create() throws Exception {
+ super.create();
- // Enabling administration for this service.
- Tools.getService().addAdministratedService(new AdministratedServiceGetter() {
- public AdministratedService getService() {
- return TagTools.getService();
- }
- });
+ // Enabling administration for this service.
+ Tools.getService().addAdministratedService(
+ new AdministratedServiceGetter() {
+ public AdministratedService getService() {
+ return TagTools.getService();
+ }
+ });
- setTimerInterval(10000);
+ setTimerInterval(10000);
- log.info("Tag service created.");
- }
+ log.info("Tag service created.");
+ }
- public void start() throws Exception {
- super.start();
+ public void start() throws Exception {
+ super.start();
- // Starting the updater thread.
- new Thread() {
- {
- setDaemon(true);
- }
+ // Starting the updater thread.
+ new Thread() {
+ {
+ setDaemon(true);
+ }
- public void run() {
- while (getServiceRunnable()) {
- try {
- sleep(getTimerInterval());
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
+ public void run() {
+ while (getServiceRunnable()) {
+ try {
+ sleep(getTimerInterval());
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
- try {
- update();
- } catch (Throwable t) {
- // Making sure that an exception won't stop the thread.
- }
+ try {
+ update();
+ } catch (Throwable t) {
+ // Making sure that an exception won't stop the thread.
+ }
- setLastUpdate(Calendar.getInstance().getTimeInMillis());
- }
+ setLastUpdate(Calendar.getInstance().getTimeInMillis());
+ }
- log.info("Tag service deaemon thread terminated.");
- }
- }.start();
+ log.info("Tag service deaemon thread terminated.");
+ }
+ }.start();
- log.info("Tag service started with update interval: "+ getTimerInterval());
- }
+ log.info("Tag service started with update interval: "
+ + getTimerInterval());
+ }
- public void stop() {
- super.stop();
- log.info("Tag service signaled to stop.");
- }
+ public void stop() {
+ super.stop();
+ log.info("Tag service signaled to stop.");
+ }
- public void destroy() {
- }
+ public void destroy() {
+ }
- /*
- * Timer-handling functions.
- */
+ /*
+ * Timer-handling functions.
+ */
- public void update() {
+ public void update() {
- }
+ }
- public String getServiceId() {
- return "ShotokuTagService";
- }
+ public String getServiceId() {
+ return "ShotokuTagService";
+ }
- public String getServiceName() {
- return "Tag service";
- }
+ public String getServiceName() {
+ return "Tag service";
+ }
- public String getServiceDescription() {
- return "Shotoku tag service";
- }
+ public String getServiceDescription() {
+ return "Shotoku tag service";
+ }
- /*
- * TagService implementation.
- */
+ /*
+ * TagService implementation.
+ */
- @PersistenceContext
- private EntityManager manager;
+ @PersistenceContext
+ private EntityManager manager;
- private TagEntity getTagEntity(Tag t) {
- TagEntity te = new TagEntity();
+ /**
+ * MIN_SIMILARITY - minimal similarity for checking relatedTags needed
+ */
+ private double MIN_SIMILARITY = 0.7d;
- te.setAuthor(t.getAuthor());
- te.setData(t.getData());
- te.setDateCreated(t.getDateCreated());
- te.setName(t.getName());
- te.setResourceId(t.getResourceId());
- te.setType(t.getType());
+ private TagEntity getTagEntity(Tag t) {
+ TagEntity te = new TagEntity();
- return te;
- }
+ te.setAuthor(t.getAuthor());
+ te.setData(t.getData());
+ te.setDateCreated(t.getDateCreated());
+ te.setName(t.getName());
+ te.setResourceId(t.getResourceId());
+ te.setType(t.getType());
- public void addTag(Tag t) throws TagAddException {
- try {
- manager.persist(getTagEntity(t));
- } catch (Throwable e) {
- throw new TagAddException(e);
- }
- }
+ return te;
+ }
- public void deleteTag(Tag t) throws TagDeleteException {
- try {
- manager.remove(getTagEntity(t));
- } catch (Throwable e) {
- throw new TagDeleteException(e);
- }
- }
+ public void addTag(Tag t) throws TagAddException {
+ try {
+ manager.persist(getTagEntity(t));
+ } catch (Throwable e) {
+ throw new TagAddException(e);
+ }
+ }
- public List<Tag> getTags(String resourceId) throws TagGetException {
- try {
- //noinspection unchecked
- List<TagEntity> result = manager.createQuery(
- "from TagEntity where resourceId = :resourceId order by dateCreated desc").
- setParameter("resourceId", resourceId).getResultList();
+ public void deleteTag(Tag t) throws TagDeleteException {
+ try {
+ manager.remove(getTagEntity(t));
+ } catch (Throwable e) {
+ throw new TagDeleteException(e);
+ }
+ }
- List<Tag> ret = new ArrayList<Tag>();
- for (TagEntity te : result) {
- ret.add(te.getTag());
- }
+ public List<Tag> getTags(String resourceId) throws TagGetException {
+ try {
+ // noinspection unchecked
+ List<TagEntity> result = manager
+ .createQuery(
+ "from TagEntity where resourceId = :resourceId order by dateCreated desc")
+ .setParameter("resourceId", resourceId).getResultList();
- return ret;
- } catch (Throwable e) {
- throw new TagGetException(e);
- }
- }
+ List<Tag> ret = new ArrayList<Tag>();
+ for (TagEntity te : result) {
+ ret.add(te.getTag());
+ }
- public Tag getTag(String tagName) throws TagGetException {
- try {
- //noinspection unchecked
- TagEntity result = (TagEntity) manager.createQuery("from TagEntity where name = :name").
- setParameter("name", tagName).getSingleResult();
+ return ret;
+ } catch (Throwable e) {
+ throw new TagGetException(e);
+ }
+ }
- if (result == null) {
- return null;
- }
+ public Tag getTag(String tagName) throws TagGetException {
+ try {
+ // noinspection unchecked
+ TagEntity result = (TagEntity) manager.createQuery(
+ "from TagEntity where name = :name").setParameter("name",
+ tagName).getSingleResult();
- return result.getTag();
- } catch (Throwable e) {
- throw new TagGetException(e);
- }
- }
+ if (result == null) {
+ return null;
+ }
- public List<Tag> getTags(List<String> tagNames) throws TagGetException {
- try {
- StringBuffer querySb = new StringBuffer("from TagEntity where ");
- int i = 0;
- for (Iterator iter = tagNames.iterator(); iter.hasNext();) {
- querySb.append("name").append(" = :name").append(i);
+ return result.getTag();
+ } catch (Throwable e) {
+ throw new TagGetException(e);
+ }
+ }
- iter.next();
+ public List<Tag> getTags(List<String> tagNames) throws TagGetException {
+ try {
+ StringBuffer querySb = new StringBuffer("from TagEntity where ");
+ int i = 0;
+ for (Iterator iter = tagNames.iterator(); iter.hasNext();) {
+ querySb.append("name").append(" = :name").append(i);
- if (iter.hasNext()) {
- querySb.append(" and ");
- }
+ iter.next();
- i++;
- }
+ if (iter.hasNext()) {
+ querySb.append(" and ");
+ }
- Query query = manager.createQuery(querySb.toString());
- i = 0;
- for (String tagName : tagNames) {
- query.setParameter("name" + i++, tagName);
- }
+ i++;
+ }
- //noinspection unchecked
- List<TagEntity> result = query.getResultList();
+ Query query = manager.createQuery(querySb.toString());
+ i = 0;
+ for (String tagName : tagNames) {
+ query.setParameter("name" + i++, tagName);
+ }
- List<Tag> ret = new ArrayList<Tag>();
- for (TagEntity te : result) {
- ret.add(te.getTag());
- }
+ // noinspection unchecked
+ List<TagEntity> result = query.getResultList();
- return ret;
- } catch (Throwable e) {
- throw new TagGetException(e);
- }
- }
+ List<Tag> ret = new ArrayList<Tag>();
+ for (TagEntity te : result) {
+ ret.add(te.getTag());
+ }
- public List<Tag> getRelatedTags(List<Tag> relateTo) throws TagGetException {
- return null;
- }
+ return ret;
+ } catch (Throwable e) {
+ throw new TagGetException(e);
+ }
+ }
- public List<Tag> getTagsByAuthor(String author) throws TagGetException {
- try {
- //noinspection unchecked
- List<TagEntity> result = manager.createQuery(
- "from TagEntity where author = :author order by dateCreated desc").
- setParameter("author", author).getResultList();
+ public List<Tag> getRelatedTags(List<Tag> relateTo) throws TagGetException {
+ List<Tag> ret = new ArrayList<Tag>();
- List<Tag> ret = new ArrayList<Tag>();
- for (TagEntity te : result) {
- ret.add(te.getTag());
- }
+ Map<String, List<Tag>> otherResources = new HashMap<String, List<Tag>>();
- return ret;
- } catch (Throwable e) {
- throw new TagGetException(e);
- }
- }
+ for (Tag relatedTag : relateTo) {
+ List<TagEntity> result = manager.createQuery(
+ "from TagEntity where name = :name").setParameter("name",
+ relatedTag.getName()).getResultList();
- public String getFeedLink(FeedType feedType, String data, String type) {
- try {
- return "/feeds/tag/" + feedType.toString() + "/" +
- URLEncoder.encode(data, "UTF-8") + "/" + type;
- } catch (UnsupportedEncodingException e) {
- return "";
- }
- }
+ for (TagEntity otherTag : result) {
+ if (!otherResources.containsKey(otherTag.getResourceId())) {
+ otherResources.put(otherTag.getResourceId(),
+ getTags(otherTag.getResourceId()));
+ }
+ }
+ }
- public String getFeedLink(FeedType feedType, List<String> dataList, String type) {
- StringBuffer sb = new StringBuffer();
+ for (List<Tag> tagList : otherResources.values()) {
+ if (checkSimilarity(relateTo, tagList) >= MIN_SIMILARITY) {
+ ret.addAll(tagList);
+ }
+ }
- for (Iterator<String> iter = dataList.iterator(); iter.hasNext();) {
- sb.append(iter.next());
- if (iter.hasNext()) {
- sb.append("+");
- }
- }
+ // don't return "relateTo" members
+ List<Tag> endRet = new ArrayList<Tag>(ret);
+ for (Tag tag : ret) {
+ if (tagListContainsTag(tag, relateTo)) {
+ endRet.remove(tag);
+ }
+ }
+
+ return endRet;
+ }
+
+ private boolean tagListContainsTag(Tag tag, List<Tag> listToCheck) {
+ for (Tag tag2 : listToCheck) {
+ if (tag.getName().equals(tag2.getName())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
- try {
- return "/feeds/tag/" + feedType.toString() + "/" +
- URLEncoder.encode(sb.toString(), "UTF-8") + "/" + type;
- } catch (UnsupportedEncodingException e) {
- return "";
- }
- }
+ private double checkSimilarity(List<Tag> givenTags, List<Tag> listToCheck) {
+ double ret = 0;
+
+ for (Tag tag : givenTags) {
+ if (tagListContainsTag(tag,listToCheck)) {
+ ret++;
+ }
+ }
+
+ return ret / (double) givenTags.size();
+ }
+
+ public List<Tag> getTagsByAuthor(String author) throws TagGetException {
+ try {
+ // noinspection unchecked
+ List<TagEntity> result = manager
+ .createQuery(
+ "from TagEntity where author = :author order by dateCreated desc")
+ .setParameter("author", author).getResultList();
+
+ List<Tag> ret = new ArrayList<Tag>();
+ for (TagEntity te : result) {
+ ret.add(te.getTag());
+ }
+
+ return ret;
+ } catch (Throwable e) {
+ throw new TagGetException(e);
+ }
+ }
+
+ public String getFeedLink(FeedType feedType, String data, String type) {
+ try {
+ return "/feeds/tag/" + feedType.toString() + "/"
+ + URLEncoder.encode(data, "UTF-8") + "/" + type;
+ } catch (UnsupportedEncodingException e) {
+ return "";
+ }
+ }
+
+ public String getFeedLink(FeedType feedType, List<String> dataList,
+ String type) {
+ StringBuffer sb = new StringBuffer();
+
+ for (Iterator<String> iter = dataList.iterator(); iter.hasNext();) {
+ sb.append(iter.next());
+ if (iter.hasNext()) {
+ sb.append("+");
+ }
+ }
+
+ try {
+ return "/feeds/tag/" + feedType.toString() + "/"
+ + URLEncoder.encode(sb.toString(), "UTF-8") + "/" + type;
+ } catch (UnsupportedEncodingException e) {
+ return "";
+ }
+ }
}
|
|
From: <jbo...@li...> - 2006-06-10 04:18:30
|
Author: dam...@jb... Date: 2006-06-10 00:18:23 -0400 (Sat, 10 Jun 2006) New Revision: 4718 Added: labs/jbosslabs/branches/damon/jbosslabs-prod-merge/ Log: Merge test branch. Copied: labs/jbosslabs/branches/damon/jbosslabs-prod-merge (from rev 4717, labs/jbosslabs/branches/prod/jbosslabs) |
|
From: <jbo...@li...> - 2006-06-09 23:40:29
|
Author: adamw
Date: 2006-06-09 19:40:25 -0400 (Fri, 09 Jun 2006)
New Revision: 4717
Modified:
labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/web.xml
Log:
Security update
Modified: labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/web.xml
===================================================================
--- labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/web.xml 2006-06-09 23:01:13 UTC (rev 4716)
+++ labs/shotoku/trunk/shotoku-admin/src/web/WEB-INF/web.xml 2006-06-09 23:40:25 UTC (rev 4717)
@@ -47,7 +47,7 @@
<security-constraint>
<web-resource-collection>
<web-resource-name>All resources</web-resource-name>
- <url-pattern>/admin/*</url-pattern>
+ <url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>ShotokuAdmin</role-name>
|
|
From: <jbo...@li...> - 2006-06-09 23:01:19
|
Author: szimano
Date: 2006-06-09 19:01:13 -0400 (Fri, 09 Jun 2006)
New Revision: 4716
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java
Log:
suggestions JBLAB-674
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java 2006-06-09 22:56:58 UTC (rev 4715)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java 2006-06-09 23:01:13 UTC (rev 4716)
@@ -30,20 +30,23 @@
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
-public class TagMeServlet extends RemoteServiceServlet implements TaggingService {
+public class TagMeServlet extends RemoteServiceServlet implements
+ TaggingService {
private final static Logger log = Logger.getLogger(TagMeServlet.class);
+
/**
*
*/
private static final long serialVersionUID = 1L;
-
+
public Vector getTags(String path, String clas) {
Vector vect = null;
-
+
try {
- TagMeTagger tagger = (TagMeTagger)Class.forName(clas).newInstance();
-
+ TagMeTagger tagger = (TagMeTagger) Class.forName(clas)
+ .newInstance();
+
vect = tagger.getTags(path);
} catch (InstantiationException e) {
// TODO Auto-generated catch block
@@ -55,21 +58,23 @@
// TODO Auto-generated catch block
e.printStackTrace();
}
-
+
return vect;
}
-
+
public boolean addTag(String user, String path, String clas, String tags) {
try {
- TagMeTagger tagger = (TagMeTagger)Class.forName(clas).newInstance();
-
- log.info("tags: "+ tags + "\nspliter: "+TagMeClickListener.TAG_SEP);
+ TagMeTagger tagger = (TagMeTagger) Class.forName(clas)
+ .newInstance();
+
+ log.info("tags: " + tags + "\nspliter: "
+ + TagMeClickListener.TAG_SEP);
String[] tagsTable = tags.split(TagMeClickListener.TAG_SEP);
-
+
for (int i = 0; i < tagsTable.length; i++) {
tagger.addTag(user, path, tagsTable[i]);
}
-
+
return true;
} catch (InstantiationException e) {
// TODO Auto-generated catch block
@@ -88,25 +93,48 @@
public boolean deleteTag(String user, String path, String clas, String tag) {
- try {
- TagMeTagger tagger = (TagMeTagger)Class.forName(clas).newInstance();
-
- tagger.deleteTag(user, path, tag);
-
- return true;
- } catch (InstantiationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- return false;
+ try {
+ TagMeTagger tagger = (TagMeTagger) Class.forName(clas)
+ .newInstance();
+ tagger.deleteTag(user, path, tag);
+
+ return true;
+ } catch (InstantiationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ClassNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return false;
+
}
+ public Vector getSugestions(String path, String clas) {
+ Vector vect = null;
+
+ try {
+ TagMeTagger tagger = (TagMeTagger) Class.forName(clas)
+ .newInstance();
+
+ vect = tagger.getSuggestions(path);
+ } catch (InstantiationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ClassNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return vect;
+ }
+
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java 2006-06-09 22:56:58 UTC (rev 4715)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java 2006-06-09 23:01:13 UTC (rev 4716)
@@ -29,6 +29,7 @@
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;
@@ -51,15 +52,18 @@
private Button button;
private TagMeShowPopupListener parent;
+
+ private Vector suggestionCheckboxes;
public TagMeClickListener(String path, String user, String clas,
- Vector textBoxes, Label info, TagMeShowPopupListener parent) {
+ Vector textBoxes, Label info, Vector suggestionCheckboxes, TagMeShowPopupListener parent) {
this.path = path;
this.user = user;
this.textBoxes = textBoxes;
this.clas = clas;
this.info = info;
this.parent = parent;
+ this.suggestionCheckboxes = suggestionCheckboxes;
}
public void onClick(Widget sender) {
@@ -100,6 +104,18 @@
}
}
}
+
+ for (int i = 0; i < suggestionCheckboxes.size(); i++) {
+ CheckBox chBox = (CheckBox)suggestionCheckboxes.get(i);
+
+ if (chBox.isChecked()) {
+ if (tags.length() == 0) {
+ tags = chBox.getText();
+ } else {
+ tags += TAG_SEP + chBox.getText();
+ }
+ }
+ }
tagging.addTag(user, path, clas, tags, callback);
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java 2006-06-09 22:56:58 UTC (rev 4715)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java 2006-06-09 23:01:13 UTC (rev 4716)
@@ -30,6 +30,7 @@
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FlexTable;
@@ -59,6 +60,10 @@
private Button saveBtn;
+ private FlexTable suggTable;
+
+ private Vector suggestionCheckboxes;
+
public TagMeShowPopupListener(String path, String user, String clas) {
this.path = path;
this.currentUser = user;
@@ -69,6 +74,42 @@
return this;
}
+ public void refreshSugestions() {
+ suggestionCheckboxes = new Vector();
+
+ while (suggTable.getRowCount() > 0) {
+ table.removeRow(0);
+ }
+
+ TaggingServiceAsync tagging = (TaggingServiceAsync) GWT
+ .create(TaggingService.class);
+
+ ServiceDefTarget endpoint = (ServiceDefTarget) tagging;
+ endpoint.setServiceEntryPoint("/tagme-servlet/tag/");
+
+ AsyncCallback callback = new AsyncCallback() {
+ public void onSuccess(Object result) {
+ Vector vect = (Vector)result;
+
+ int rowLen = (int)Math.sqrt(vect.size());
+
+ for (int i = 0; i < vect.size(); i++) {
+ CheckBox chBox = new CheckBox((String)vect.get(i));
+ suggTable.setWidget(i / rowLen, i % rowLen, chBox);
+ suggestionCheckboxes.add(chBox);
+ }
+ }
+
+ public void onFailure(Throwable caught) {
+ Window.alert("Error ! " + caught.getMessage() + " Throwable: "
+ + caught);
+ }
+ };
+
+ // call AJAX methos, after that callback is going to be executed
+ tagging.getSugestions(path, clas, callback);
+ }
+
public void refreshTags() {
while (table.getRowCount() > 0) {
@@ -98,10 +139,14 @@
String user = to[1];
String fullName = to[2];
String feed = to[3];
+ String authorFeed = to[4];
if (!rows.keySet().contains(user)) {
rows.put(user, new Integer(rowsNum));
- table.setHTML(rowsNum++, 0, "<b>" + fullName + "</b>");
+ table
+ .setHTML(rowsNum++, 0, "<b><a href='"
+ + authorFeed + "' target='_blank' >"
+ + fullName + "</a></b>");
}
int curRow = ((Integer) rows.get(user)).intValue();
@@ -111,8 +156,8 @@
Image im = new Image("/tagme-servlet/images/delete.gif");
HorizontalPanel hpanel = new HorizontalPanel();
- hpanel.add(new HTML("<a href='" + feed + "' target='_blank' >" + tag
- + "</a>"));
+ hpanel.add(new HTML("<a href='" + feed
+ + "' target='_blank' >" + tag + "</a>"));
hpanel.add(im);
im.addClickListener(new DeleteTagClickListener(
@@ -123,7 +168,8 @@
} else {
// just show tag
table.setHTML(curRow, table.getCellCount(curRow),
- "<a href='" + feed + "' target='_blank' >" + tag + "</a>");
+ "<a href='" + feed + "' target='_blank' >"
+ + tag + "</a>");
}
}
}
@@ -136,6 +182,9 @@
// call AJAX methos, after that callback is going to be executed
tagging.getTags(path, clas, callback);
+
+ // refresh tags also
+ refreshSugestions();
}
public void onClick(Widget sender) {
@@ -149,21 +198,36 @@
panel.add(table);
+ HorizontalPanel hPanel = new HorizontalPanel();
+ VerticalPanel input = new VerticalPanel();
+ input.add(new Label("Add a Tag:"));
+
+ hPanel.add(input);
+
+ VerticalPanel suggestions = new VerticalPanel();
+ suggTable = new FlexTable();
+ suggestions.add(new Label("Suggestions:"));
+ suggestions.add(suggTable);
+
+ hPanel.add(suggestions);
+
Vector textBoxes = new Vector();
for (int i = 0; i < 3; i++) {
TextBox box = new TextBox();
textBoxes.add(box);
- panel.add(box);
+ input.add(box);
}
+ panel.add(hPanel);
+
refreshTags();
final DialogBox dialog = new DialogBox();
HorizontalPanel btnPanel = new HorizontalPanel();
this.saveBtn = new Button("Save", new TagMeClickListener(path,
- currentUser, clas, textBoxes, info, this));
+ currentUser, clas, textBoxes, info, suggestionCheckboxes, this));
btnPanel.add(saveBtn);
btnPanel.add(new Button("Close", new ClickListener() {
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java 2006-06-09 22:56:58 UTC (rev 4715)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java 2006-06-09 23:01:13 UTC (rev 4716)
@@ -44,4 +44,6 @@
public boolean addTag(String user, String path, String clas, String tags);
public boolean deleteTag(String user, String path, String clas, String tag);
+
+ public Vector getSugestions(String path, String clas);
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java 2006-06-09 22:56:58 UTC (rev 4715)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java 2006-06-09 23:01:13 UTC (rev 4716)
@@ -38,4 +38,6 @@
public void deleteTag(String user, String path, String clas, String tag,
AsyncCallback callback);
+
+ public void getSugestions(String path, String clas, AsyncCallback callback);
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 22:56:58 UTC (rev 4715)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 23:01:13 UTC (rev 4716)
@@ -45,8 +45,40 @@
private TagService service = TagTools.getService();
- public String getFeedForTag(String tag, String type) {
- return service.getFeedLink(FeedType.TAGS, tag, type);
+ public Vector getSuggestions(String path) {
+ Vector<String> sugg = new Vector<String>();
+
+ try {
+ List<Tag> tags = service.getRelatedTags(service.getTags(path));
+
+ if (tags != null) {
+ for (Tag tag : tags) {
+ sugg.add(tag.getName());
+ }
+ }
+ else {
+ //test data
+ sugg.add("Tag");
+ sugg.add("Number");
+ sugg.add("One");
+ sugg.add("Poland");
+ sugg.add("Rocks");
+ sugg.add("Elephant");
+ sugg.add("Bimbom");
+ sugg.add("Tag1");
+ sugg.add("Number2");
+ sugg.add("One3");
+ sugg.add("Poland4");
+ sugg.add("Rocks5");
+ sugg.add("Elephant6");
+ sugg.add("Bimbom7");
+ }
+ } catch (TagGetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return sugg;
}
public Vector getTags(String path) {
@@ -65,6 +97,9 @@
+ tag.getAuthor()
+ TagMeClickListener.TAG_SEP
+ service.getFeedLink(FeedType.TAGS, tag.getName(),
+ "rss2")
+ + TagMeClickListener.TAG_SEP
+ + service.getFeedLink(FeedType.AUTHOR, tag.getAuthor(),
"rss2"));
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java 2006-06-09 22:56:58 UTC (rev 4715)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java 2006-06-09 23:01:13 UTC (rev 4716)
@@ -30,5 +30,5 @@
public void deleteTag(String user, String path, String tag);
- public String getFeedForTag(String tag, String type);
+ public Vector getSuggestions(String path);
}
|
|
From: <jbo...@li...> - 2006-06-09 22:57:01
|
Author: dam...@jb... Date: 2006-06-09 18:56:58 -0400 (Fri, 09 Jun 2006) New Revision: 4715 Modified: labs/shotoku/branches/qa/shotoku-feeds/project.xml Log: MERGED: -r 4711:4714 https://svn.labs.jboss.com/labs/shotoku/trunk into qa for Labs 1.1 testing. Modified: labs/shotoku/branches/qa/shotoku-feeds/project.xml =================================================================== --- labs/shotoku/branches/qa/shotoku-feeds/project.xml 2006-06-09 22:45:14 UTC (rev 4714) +++ labs/shotoku/branches/qa/shotoku-feeds/project.xml 2006-06-09 22:56:58 UTC (rev 4715) @@ -53,7 +53,7 @@ <dependency> <groupId>rome</groupId> <artifactId>rome</artifactId> - <version>0.5</version> + <version>0.7</version> <properties> <war.bundle>true</war.bundle> </properties> |
|
From: <jbo...@li...> - 2006-06-09 22:45:20
|
Author: adamw
Date: 2006-06-09 18:45:14 -0400 (Fri, 09 Jun 2006)
New Revision: 4714
Modified:
labs/shotoku/trunk/shotoku-feeds/project.xml
Log:
Modified: labs/shotoku/trunk/shotoku-feeds/project.xml
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/project.xml 2006-06-09 22:28:00 UTC (rev 4713)
+++ labs/shotoku/trunk/shotoku-feeds/project.xml 2006-06-09 22:45:14 UTC (rev 4714)
@@ -53,7 +53,7 @@
<dependency>
<groupId>rome</groupId>
<artifactId>rome</artifactId>
- <version>0.5</version>
+ <version>0.7</version>
<properties>
<war.bundle>true</war.bundle>
</properties>
|
|
From: <jbo...@li...> - 2006-06-09 22:28:07
|
Author: dam...@jb... Date: 2006-06-09 18:28:00 -0400 (Fri, 09 Jun 2006) New Revision: 4713 Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Menu.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/maven.xml Log: MERGED: -r 4703:4711 https://svn.labs.jboss.com/labs/jbosslabs/trunk into qa for Labs 1.1 testing. Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java 2006-06-09 22:23:33 UTC (rev 4712) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java 2006-06-09 22:28:00 UTC (rev 4713) @@ -179,9 +179,10 @@ User user = request.getUser(); if ((user == null) || - (!user.getRoleNames().contains(permission))) + (!user.getRoleNames().contains(permission))) { // The user doesn't have the given role. return; + } } innerFillContext(request, context, currentLink, projectId, levelId); Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Menu.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Menu.java 2006-06-09 22:23:33 UTC (rev 4712) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Menu.java 2006-06-09 22:28:00 UTC (rev 4713) @@ -104,7 +104,7 @@ public void fillContext(JBossRenderRequest request, DelegateContext context, String currentLink, String projectId, String levelId) { for (Entry e : entries) { - e.innerFillContext(request, context, currentLink, projectId, levelId); + e.fillContext(request, context, currentLink, projectId, levelId); } } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2006-06-09 22:23:33 UTC (rev 4712) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2006-06-09 22:28:00 UTC (rev 4713) @@ -32,6 +32,6 @@ } public boolean isUserLogged() { - return ConTools.getRemoteUser() != null; + return ConTools.getRemoteUser() != null; } } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java 2006-06-09 22:23:33 UTC (rev 4712) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java 2006-06-09 22:28:00 UTC (rev 4713) @@ -33,6 +33,7 @@ import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.FlexTable; +import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; @@ -96,6 +97,7 @@ String tag = to[0]; String user = to[1]; String fullName = to[2]; + String feed = to[3]; if (!rows.keySet().contains(user)) { rows.put(user, new Integer(rowsNum)); @@ -109,7 +111,8 @@ Image im = new Image("/tagme-servlet/images/delete.gif"); HorizontalPanel hpanel = new HorizontalPanel(); - hpanel.add(new Label(tag)); + hpanel.add(new HTML("<a href='" + feed + "' target='_blank' >" + tag + + "</a>")); hpanel.add(im); im.addClickListener(new DeleteTagClickListener( @@ -119,7 +122,8 @@ hpanel); } else { // just show tag - table.setText(curRow, table.getCellCount(curRow), tag); + table.setHTML(curRow, table.getCellCount(curRow), + "<a href='" + feed + "' target='_blank' >" + tag + "</a>"); } } } @@ -197,15 +201,15 @@ public void startProgressAnim(String text) { info.setText(text); - + timer = new Timer() { - + public void run() { info.setText(info.getText() + "."); } - + }; - + timer.scheduleRepeating(1000); } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 22:23:33 UTC (rev 4712) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 22:28:00 UTC (rev 4713) @@ -22,25 +22,19 @@ package org.jboss.labs.tagme.services; import java.util.Date; -import java.util.Iterator; import java.util.List; -import java.util.Map; import java.util.Vector; import org.jboss.labs.tagme.gwt.client.TagMeClickListener; import org.jboss.logging.Logger; -import org.jboss.shotoku.ContentManager; -import org.jboss.shotoku.Node; -import org.jboss.shotoku.exceptions.RepositoryException; -import org.jboss.shotoku.exceptions.ResourceDoesNotExist; -import org.jboss.shotoku.exceptions.SaveException; import org.jboss.shotoku.tags.ShotokuTag; import org.jboss.shotoku.tags.Tag; import org.jboss.shotoku.tags.TagService; -import org.jboss.shotoku.tags.tools.TagTools; import org.jboss.shotoku.tags.exceptions.TagAddException; import org.jboss.shotoku.tags.exceptions.TagDeleteException; import org.jboss.shotoku.tags.exceptions.TagGetException; +import org.jboss.shotoku.tags.tools.FeedType; +import org.jboss.shotoku.tags.tools.TagTools; public class ShotokuTaggingService implements TagMeTagger { @@ -51,6 +45,10 @@ private TagService service = TagTools.getService(); + public String getFeedForTag(String tag, String type) { + return service.getFeedLink(FeedType.TAGS, tag, type); + } + public Vector getTags(String path) { log.info("Getting tags for: " + path); @@ -60,9 +58,14 @@ List<Tag> allTags = service.getTags(path); for (Tag tag : allTags) { - tags.add(tag.getName() + TagMeClickListener.TAG_SEP - + tag.getAuthor() + TagMeClickListener.TAG_SEP - + tag.getAuthor()); + tags.add(tag.getName() + + TagMeClickListener.TAG_SEP + + tag.getAuthor() + + TagMeClickListener.TAG_SEP + + tag.getAuthor() + + TagMeClickListener.TAG_SEP + + service.getFeedLink(FeedType.TAGS, tag.getName(), + "rss2")); } } catch (TagGetException e) { Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java 2006-06-09 22:23:33 UTC (rev 4712) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java 2006-06-09 22:28:00 UTC (rev 4713) @@ -29,4 +29,6 @@ public void addTag(String user, String path, String tag); public void deleteTag(String user, String path, String tag); + + public String getFeedForTag(String tag, String type); } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp 2006-06-09 22:23:33 UTC (rev 4712) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp 2006-06-09 22:28:00 UTC (rev 4713) @@ -1,4 +1,68 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ taglib uri="/WEB-INF/theme/portal-layout.tld" prefix="p" %> <html xmlns="http://www.w3.org/1999/xhtml"> <!-- JBoss, the OpenSource J2EE webOS Distributable under LGPL license. See terms of license at gnu.org. --> <head><title>JBoss.ORG</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="gwt:module" content="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/org.jboss.labs.tagme.gwt.TagMe" /> <link rel="stylesheet" href="/file-access/default/theme/css/print.css" type="text/css" media="print" /> <link rel="stylesheet" href="/file-access/default/theme/css/common.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge-forums.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/portlet.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/podcasts.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/primates.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/blog.css" type="text/css" media="all" /> <!-- insert the dynamically determined theme elements here, or use the 'simple-sample' theme by default --> <!-- <p:theme themeName='jboss-forge' /> --> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqCfg.js'></script> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqImg.js'></script> <!-- speller script --> <script type='text/javascript' language='JavaScript' src="/speller/pages/spellChecker.js"></script> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/speller.js'></script> <!-- end speller script --> <!-- Hide/Show Script for main marketing area --> <script type="text/javascript" language="javascript"> function hideShow(id) { var navpoint = document.getElementById(id); if (navpoint.className == 'hidden') { navpoint.className = 'shown'; } else { navpoint.className = 'hidden'; } } </script> <!-- end Hide/Show script --> </head> <body> <!-- HEADER START --> <!-- this image creates IE problems --> <!-- <img src="/jbossForge/images/svrGP.gif" border="0" height="1" width="1"> --> <!-- GWT script --> <script language="javascript" src="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/gwt.js"></script> <div class="brand_FED" id="container"> <div id="TopLogo"> <img src="http://jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" /> </div> +<!DOCTYPE html +PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<%@ taglib uri="/WEB-INF/theme/portal-layout.tld" prefix="p" %> +<html xmlns="http://www.w3.org/1999/xhtml"> +<!-- + JBoss, the OpenSource J2EE webOS + Distributable under LGPL license. + See terms of license at gnu.org. + --> +<head><title>JBoss.ORG</title> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> +<meta name="gwt:module" content="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/org.jboss.labs.tagme.gwt.TagMe" /> +<link rel="stylesheet" href="/file-access/default/theme/css/print.css" type="text/css" media="print" /> +<link rel="stylesheet" href="/file-access/default/theme/css/common.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge-forums.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/portlet.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/podcasts.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/primates.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/blog.css" type="text/css" media="all" /> +<!-- insert the dynamically determined theme elements here, or use the 'simple-sample' theme by default --> + <!-- <p:theme themeName='jboss-forge' /> --> + +<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqCfg.js'></script> +<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqImg.js'></script> + +<!-- speller script --> +<script type='text/javascript' language='JavaScript' src="/speller/pages/spellChecker.js"></script> + +<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/speller.js'></script> +<!-- end speller script --> +<!-- Hide/Show Script for main marketing area --> +<script type="text/javascript" language="javascript"> +function hideShow(id) +{ +var navpoint = document.getElementById(id); +if (navpoint.className == 'hidden') { +navpoint.className = 'shown'; +} else { +navpoint.className = 'hidden'; +} +} +</script> +<!-- end Hide/Show script --> + +</head> + + +<body> +<!-- HEADER START --> +<!-- this image creates IE problems --> +<!-- <img src="/jbossForge/images/svrGP.gif" border="0" height="1" width="1"> --> + +<!-- GWT script --> +<script language="javascript" src="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/gwt.js"></script> + + +<div class="brand_FED" id="container"> + +<div id="TopLogo"> + <img src="http://jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" /> +</div> + <div id="TopMenu"> <table cellpadding="0" cellspacing="0"> <tr> @@ -10,5 +74,68 @@ </tr> </table> </div> - <div id="ControlMenu"> <form id="TopSearch" action="http://www.google.com/search" onsubmit="document.forms[0].q.value = document.forms[0].q.value + ' site:jboss.org';"> <ul> <li><a href="<% String url = request.getRequestURL().append((request.getQueryString() != null && request.getQueryString().length() > 0) ? "?" + request.getQueryString() : "").toString(); if (url.contains("/authsec") || url.contains("/auth")) { out.print(url); } else { out.print(url.replace("/portal","/portal/authsec")); }%>">Login</a></li> <li><a href="http://www.jboss.com/index.html?op=checkage&module=user">Register</a></li> <li><a href="http://www.jboss.com/careers">Careers</a></li> <li><a href="http://www.jboss.com/company/contact">Contact Us</a></li> <li> <input style="border: 1px solid #6e6e6e; font: 10px Verdana, Helvetica, Arial, sans-serif; padding-left: 2px; margin-left: 10px;" name="q" onfocus="SearchFocus(this)" onblur="SearchBlur(this)" value="Search..." /> <input class="searchbutton" type="image" src="/file-access/default/theme/images/spacer.gif" value="go" align="middle" /> </li> </ul> </form> </div> <!-- HEADER END --> <!-- main page table --> <table id="BodyTable" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td colspan="4" class="topheader"></td> </tr> <tr> <td class="leftside" rowspan="2"><p:region regionName='left'/></td> <td class="bodycell" colspan="3"><p:region regionName='center'/></td> </tr> <tr> <td class="innerleft"><p:region regionName='innerleft'/></td> <td class="innerright"><p:region regionName='innerright'/></td> - <td class="rightside"><p:region regionName='right'/></td> </tr> </tbody> </table> <div id="jbfPageFooter"> <div id="Copyright"> JBoss is a registered trademark and servicemark of JBoss Inc. 2002-2005 JBoss Inc. All rights reserved.<br /> Theme made by <a href="http://mamut.net.pl">Szimano</a> </div> </div> </body> </html> \ No newline at end of file + +<div id="ControlMenu"> + <form id="TopSearch" action="http://www.google.com/search" onsubmit="document.forms[0].q.value = document.forms[0].q.value + ' site:jboss.org';"> + <ul> + <li><a href="<% + + String url = request.getRequestURL().append((request.getQueryString() != null && request.getQueryString().length() > 0) ? "?" + request.getQueryString() : "").toString(); + + if (url.contains("/authsec") || url.contains("/auth")) { + out.print(url); + } + else { + out.print(url.replace("/portal","/portal/authsec")); + }%>">Login</a></li> + + <li><a href="http://www.jboss.com/index.html?op=checkage&module=user">Register</a></li> + <li><a href="http://www.jboss.com/careers">Careers</a></li> + <li><a href="http://www.jboss.com/company/contact">Contact Us</a></li> + <li> + <input style="border: 1px solid #6e6e6e; font: 10px Verdana, Helvetica, Arial, sans-serif; padding-left: 2px; margin-left: 10px;" name="q" onfocus="SearchFocus(this)" onblur="SearchBlur(this)" value="Search..." /> + <input class="searchbutton" type="image" src="/file-access/default/theme/images/spacer.gif" value="go" align="middle" /> + </li> + </ul> + </form> + +</div> +<!-- HEADER END --> + +<!-- main page table --> +<table id="BodyTable" border="0" cellpadding="0" cellspacing="0"> +<tbody> + <tr> + <td colspan="4" class="topheader"></td> + </tr> + <tr> + <td class="leftside" rowspan="2"><p:region regionName='left'/></td> + <td class="bodycell" colspan="3"><p:region regionName='center'/> + <table> + <tr> + <td class="innerleft"><p:region regionName='innerleft'/></td> + <td class="innerright"><p:region regionName='innerright'/></td> + <td class="rightside"><p:region regionName='right'/></td> + </tr> + </table></td> + + </tr> +</tbody> +</table> + +<div id="jbfPageFooter"> + <div id="Copyright"> + JBoss is a registered trademark and servicemark of JBoss Inc. 2002-2005 JBoss Inc. All rights reserved.<br /> +Theme made by <a href="http://mamut.net.pl">Szimano</a> + </div> +</div> + + + +</body> +</html> + + + + + Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/maven.xml =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/maven.xml 2006-06-09 22:23:33 UTC (rev 4712) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/maven.xml 2006-06-09 22:28:00 UTC (rev 4713) @@ -157,6 +157,7 @@ 3. jbosswiki/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties 4. shotoku/shotoku-base/src/etc/shotoku.properties 5. shotoku/build.properties +6. configuration/to-copy/JBLabs-ds.xml Available goals: - help - prints this info |
Author: dam...@jb... Date: 2006-06-09 18:23:33 -0400 (Fri, 09 Jun 2006) New Revision: 4712 Modified: labs/shotoku/branches/qa/shotoku-base/src/java/org/jboss/shotoku/search/DateSortParameter.java labs/shotoku/branches/qa/shotoku-feeds/project.xml labs/shotoku/branches/qa/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java Log: MERGED: -r 4704:4711 https://svn.labs.jboss.com/labs/shotoku/trunk into qa for Labs 1.1 testing. Modified: labs/shotoku/branches/qa/shotoku-base/src/java/org/jboss/shotoku/search/DateSortParameter.java =================================================================== --- labs/shotoku/branches/qa/shotoku-base/src/java/org/jboss/shotoku/search/DateSortParameter.java 2006-06-09 22:17:59 UTC (rev 4711) +++ labs/shotoku/branches/qa/shotoku-base/src/java/org/jboss/shotoku/search/DateSortParameter.java 2006-06-09 22:23:33 UTC (rev 4712) @@ -32,8 +32,8 @@ public DateSortParameter() { super (new Comparator<Node>() { public int compare(Node o1, Node o2) { - long lastMod1 = o1.getLastModification(); - long lastMod2 = o2.getLastModification(); + long lastMod1 = o1.getCreated(); + long lastMod2 = o2.getCreated(); if (lastMod1 == lastMod2) return 0; Modified: labs/shotoku/branches/qa/shotoku-feeds/project.xml =================================================================== --- labs/shotoku/branches/qa/shotoku-feeds/project.xml 2006-06-09 22:17:59 UTC (rev 4711) +++ labs/shotoku/branches/qa/shotoku-feeds/project.xml 2006-06-09 22:23:33 UTC (rev 4712) @@ -53,7 +53,7 @@ <dependency> <groupId>rome</groupId> <artifactId>rome</artifactId> - <version>0.8</version> + <version>0.5</version> <properties> <war.bundle>true</war.bundle> </properties> Modified: labs/shotoku/branches/qa/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java =================================================================== --- labs/shotoku/branches/qa/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java 2006-06-09 22:17:59 UTC (rev 4711) +++ labs/shotoku/branches/qa/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java 2006-06-09 22:23:33 UTC (rev 4712) @@ -148,11 +148,8 @@ // Calculating the age of the youngest node and putting it into the context. long youngestNode = 0; - for (org.jboss.shotoku.Node n : list) { - long nodeCreated = n.getCreated(); - if (nodeCreated > youngestNode) { - youngestNode = nodeCreated; - } + if (list.size() > 0) { + youngestNode = list.iterator().next().getCreated(); } vc.put(searchNameAttr + "Youngest", new Date(youngestNode)); |
|
From: <jbo...@li...> - 2006-06-09 22:18:03
|
Author: dam...@jb... Date: 2006-06-09 18:17:59 -0400 (Fri, 09 Jun 2006) New Revision: 4711 Modified: labs/jbosslabs/trunk/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp Log: Fixing layout spacing. Modified: labs/jbosslabs/trunk/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp 2006-06-09 22:14:41 UTC (rev 4710) +++ labs/jbosslabs/trunk/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp 2006-06-09 22:17:59 UTC (rev 4711) @@ -1,4 +1,68 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ taglib uri="/WEB-INF/theme/portal-layout.tld" prefix="p" %> <html xmlns="http://www.w3.org/1999/xhtml"> <!-- JBoss, the OpenSource J2EE webOS Distributable under LGPL license. See terms of license at gnu.org. --> <head><title>JBoss.ORG</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="gwt:module" content="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/org.jboss.labs.tagme.gwt.TagMe" /> <link rel="stylesheet" href="/file-access/default/theme/css/print.css" type="text/css" media="print" /> <link rel="stylesheet" href="/file-access/default/theme/css/common.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge-forums.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/portlet.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/podcasts.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/primates.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/blog.css" type="text/css" media="all" /> <!-- insert the dynamically determined theme elements here, or use the 'simple-sample' theme by default --> <!-- <p:theme themeName='jboss-forge' /> --> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqCfg.js'></script> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqImg.js'></script> <!-- speller script --> <script type='text/javascript' language='JavaScript' src="/speller/pages/spellChecker.js"></script> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/speller.js'></script> <!-- end speller script --> <!-- Hide/Show Script for main marketing area --> <script type="text/javascript" language="javascript"> function hideShow(id) { var navpoint = document.getElementById(id); if (navpoint.className == 'hidden') { navpoint.className = 'shown'; } else { navpoint.className = 'hidden'; } } </script> <!-- end Hide/Show script --> </head> <body> <!-- HEADER START --> <!-- this image creates IE problems --> <!-- <img src="/jbossForge/images/svrGP.gif" border="0" height="1" width="1"> --> <!-- GWT script --> <script language="javascript" src="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/gwt.js"></script> <div class="brand_FED" id="container"> <div id="TopLogo"> <img src="http://jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" /> </div> +<!DOCTYPE html +PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<%@ taglib uri="/WEB-INF/theme/portal-layout.tld" prefix="p" %> +<html xmlns="http://www.w3.org/1999/xhtml"> +<!-- + JBoss, the OpenSource J2EE webOS + Distributable under LGPL license. + See terms of license at gnu.org. + --> +<head><title>JBoss.ORG</title> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> +<meta name="gwt:module" content="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/org.jboss.labs.tagme.gwt.TagMe" /> +<link rel="stylesheet" href="/file-access/default/theme/css/print.css" type="text/css" media="print" /> +<link rel="stylesheet" href="/file-access/default/theme/css/common.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge-forums.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/portlet.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/podcasts.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/primates.css" type="text/css" media="all" /> +<link rel="stylesheet" href="/file-access/default/theme/css/blog.css" type="text/css" media="all" /> +<!-- insert the dynamically determined theme elements here, or use the 'simple-sample' theme by default --> + <!-- <p:theme themeName='jboss-forge' /> --> + +<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqCfg.js'></script> +<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqImg.js'></script> + +<!-- speller script --> +<script type='text/javascript' language='JavaScript' src="/speller/pages/spellChecker.js"></script> + +<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/speller.js'></script> +<!-- end speller script --> +<!-- Hide/Show Script for main marketing area --> +<script type="text/javascript" language="javascript"> +function hideShow(id) +{ +var navpoint = document.getElementById(id); +if (navpoint.className == 'hidden') { +navpoint.className = 'shown'; +} else { +navpoint.className = 'hidden'; +} +} +</script> +<!-- end Hide/Show script --> + +</head> + + +<body> +<!-- HEADER START --> +<!-- this image creates IE problems --> +<!-- <img src="/jbossForge/images/svrGP.gif" border="0" height="1" width="1"> --> + +<!-- GWT script --> +<script language="javascript" src="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/gwt.js"></script> + + +<div class="brand_FED" id="container"> + +<div id="TopLogo"> + <img src="http://jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" /> +</div> + <div id="TopMenu"> <table cellpadding="0" cellspacing="0"> <tr> @@ -10,5 +74,68 @@ </tr> </table> </div> - <div id="ControlMenu"> <form id="TopSearch" action="http://www.google.com/search" onsubmit="document.forms[0].q.value = document.forms[0].q.value + ' site:jboss.org';"> <ul> <li><a href="<% String url = request.getRequestURL().append((request.getQueryString() != null && request.getQueryString().length() > 0) ? "?" + request.getQueryString() : "").toString(); if (url.contains("/authsec") || url.contains("/auth")) { out.print(url); } else { out.print(url.replace("/portal","/portal/authsec")); }%>">Login</a></li> <li><a href="http://www.jboss.com/index.html?op=checkage&module=user">Register</a></li> <li><a href="http://www.jboss.com/careers">Careers</a></li> <li><a href="http://www.jboss.com/company/contact">Contact Us</a></li> <li> <input style="border: 1px solid #6e6e6e; font: 10px Verdana, Helvetica, Arial, sans-serif; padding-left: 2px; margin-left: 10px;" name="q" onfocus="SearchFocus(this)" onblur="SearchBlur(this)" value="Search..." /> <input class="searchbutton" type="image" src="/file-access/default/theme/images/spacer.gif" value="go" align="middle" /> </li> </ul> </form> </div> <!-- HEADER END --> <!-- main page table --> <table id="BodyTable" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td colspan="4" class="topheader"></td> </tr> <tr> <td class="leftside" rowspan="2"><p:region regionName='left'/></td> <td class="bodycell" colspan="3"><p:region regionName='center'/></td> </tr> <tr> <td class="innerleft"><p:region regionName='innerleft'/></td> <td class="innerright"><p:region regionName='innerright'/></td> - <td class="rightside"><p:region regionName='right'/></td> </tr> </tbody> </table> <div id="jbfPageFooter"> <div id="Copyright"> JBoss is a registered trademark and servicemark of JBoss Inc. 2002-2005 JBoss Inc. All rights reserved.<br /> Theme made by <a href="http://mamut.net.pl">Szimano</a> </div> </div> </body> </html> \ No newline at end of file + +<div id="ControlMenu"> + <form id="TopSearch" action="http://www.google.com/search" onsubmit="document.forms[0].q.value = document.forms[0].q.value + ' site:jboss.org';"> + <ul> + <li><a href="<% + + String url = request.getRequestURL().append((request.getQueryString() != null && request.getQueryString().length() > 0) ? "?" + request.getQueryString() : "").toString(); + + if (url.contains("/authsec") || url.contains("/auth")) { + out.print(url); + } + else { + out.print(url.replace("/portal","/portal/authsec")); + }%>">Login</a></li> + + <li><a href="http://www.jboss.com/index.html?op=checkage&module=user">Register</a></li> + <li><a href="http://www.jboss.com/careers">Careers</a></li> + <li><a href="http://www.jboss.com/company/contact">Contact Us</a></li> + <li> + <input style="border: 1px solid #6e6e6e; font: 10px Verdana, Helvetica, Arial, sans-serif; padding-left: 2px; margin-left: 10px;" name="q" onfocus="SearchFocus(this)" onblur="SearchBlur(this)" value="Search..." /> + <input class="searchbutton" type="image" src="/file-access/default/theme/images/spacer.gif" value="go" align="middle" /> + </li> + </ul> + </form> + +</div> +<!-- HEADER END --> + +<!-- main page table --> +<table id="BodyTable" border="0" cellpadding="0" cellspacing="0"> +<tbody> + <tr> + <td colspan="4" class="topheader"></td> + </tr> + <tr> + <td class="leftside" rowspan="2"><p:region regionName='left'/></td> + <td class="bodycell" colspan="3"><p:region regionName='center'/> + <table> + <tr> + <td class="innerleft"><p:region regionName='innerleft'/></td> + <td class="innerright"><p:region regionName='innerright'/></td> + <td class="rightside"><p:region regionName='right'/></td> + </tr> + </table></td> + + </tr> +</tbody> +</table> + +<div id="jbfPageFooter"> + <div id="Copyright"> + JBoss is a registered trademark and servicemark of JBoss Inc. 2002-2005 JBoss Inc. All rights reserved.<br /> +Theme made by <a href="http://mamut.net.pl">Szimano</a> + </div> +</div> + + + +</body> +</html> + + + + + |
|
From: <jbo...@li...> - 2006-06-09 22:14:47
|
Author: unibrew Date: 2006-06-09 18:14:41 -0400 (Fri, 09 Jun 2006) New Revision: 4710 Modified: labs/jbosslabs/trunk/portal-extensions/maven.xml Log: Adding Datasource information to maven help Modified: labs/jbosslabs/trunk/portal-extensions/maven.xml =================================================================== --- labs/jbosslabs/trunk/portal-extensions/maven.xml 2006-06-09 22:14:34 UTC (rev 4709) +++ labs/jbosslabs/trunk/portal-extensions/maven.xml 2006-06-09 22:14:41 UTC (rev 4710) @@ -157,6 +157,7 @@ 3. jbosswiki/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties 4. shotoku/shotoku-base/src/etc/shotoku.properties 5. shotoku/build.properties +6. configuration/to-copy/JBLabs-ds.xml Available goals: - help - prints this info |
Author: adamw
Date: 2006-06-09 18:14:34 -0400 (Fri, 09 Jun 2006)
New Revision: 4709
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Menu.java
labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java
Log:
Nav admin fix
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java 2006-06-09 20:32:46 UTC (rev 4708)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java 2006-06-09 22:14:34 UTC (rev 4709)
@@ -179,9 +179,10 @@
User user = request.getUser();
if ((user == null) ||
- (!user.getRoleNames().contains(permission)))
+ (!user.getRoleNames().contains(permission))) {
// The user doesn't have the given role.
return;
+ }
}
innerFillContext(request, context, currentLink, projectId, levelId);
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Menu.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Menu.java 2006-06-09 20:32:46 UTC (rev 4708)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Menu.java 2006-06-09 22:14:34 UTC (rev 4709)
@@ -104,7 +104,7 @@
public void fillContext(JBossRenderRequest request, DelegateContext context,
String currentLink, String projectId, String levelId) {
for (Entry e : entries) {
- e.innerFillContext(request, context, currentLink, projectId, levelId);
+ e.fillContext(request, context, currentLink, projectId, levelId);
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2006-06-09 20:32:46 UTC (rev 4708)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2006-06-09 22:14:34 UTC (rev 4709)
@@ -32,6 +32,6 @@
}
public boolean isUserLogged() {
- return ConTools.getRemoteUser() != null;
+ return ConTools.getRemoteUser() != null;
}
}
|
|
From: <jbo...@li...> - 2006-06-09 20:32:54
|
Author: adamw
Date: 2006-06-09 16:32:46 -0400 (Fri, 09 Jun 2006)
New Revision: 4708
Modified:
labs/shotoku/trunk/shotoku-feeds/project.xml
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java
Log:
Blog fixes
Modified: labs/shotoku/trunk/shotoku-feeds/project.xml
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/project.xml 2006-06-09 20:12:55 UTC (rev 4707)
+++ labs/shotoku/trunk/shotoku-feeds/project.xml 2006-06-09 20:32:46 UTC (rev 4708)
@@ -53,7 +53,7 @@
<dependency>
<groupId>rome</groupId>
<artifactId>rome</artifactId>
- <version>0.8</version>
+ <version>0.5</version>
<properties>
<war.bundle>true</war.bundle>
</properties>
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java 2006-06-09 20:12:55 UTC (rev 4707)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java 2006-06-09 20:32:46 UTC (rev 4708)
@@ -148,11 +148,8 @@
// Calculating the age of the youngest node and putting it into the context.
long youngestNode = 0;
- for (org.jboss.shotoku.Node n : list) {
- long nodeCreated = n.getCreated();
- if (nodeCreated > youngestNode) {
- youngestNode = nodeCreated;
- }
+ if (list.size() > 0) {
+ youngestNode = list.iterator().next().getCreated();
}
vc.put(searchNameAttr + "Youngest", new Date(youngestNode));
|
|
From: <jbo...@li...> - 2006-06-09 20:13:00
|
Author: adamw
Date: 2006-06-09 16:12:55 -0400 (Fri, 09 Jun 2006)
New Revision: 4707
Modified:
labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/search/DateSortParameter.java
Log:
Date sorting fix
Modified: labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/search/DateSortParameter.java
===================================================================
--- labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/search/DateSortParameter.java 2006-06-09 18:20:20 UTC (rev 4706)
+++ labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/search/DateSortParameter.java 2006-06-09 20:12:55 UTC (rev 4707)
@@ -32,8 +32,8 @@
public DateSortParameter() {
super (new Comparator<Node>() {
public int compare(Node o1, Node o2) {
- long lastMod1 = o1.getLastModification();
- long lastMod2 = o2.getLastModification();
+ long lastMod1 = o1.getCreated();
+ long lastMod2 = o2.getCreated();
if (lastMod1 == lastMod2) return 0;
|
|
From: <jbo...@li...> - 2006-06-09 18:20:26
|
Author: szimano
Date: 2006-06-09 14:20:20 -0400 (Fri, 09 Jun 2006)
New Revision: 4706
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java
Log:
tagme feed hrefs - JBLAB-674
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java 2006-06-09 18:17:36 UTC (rev 4705)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java 2006-06-09 18:20:20 UTC (rev 4706)
@@ -33,6 +33,7 @@
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
@@ -96,6 +97,7 @@
String tag = to[0];
String user = to[1];
String fullName = to[2];
+ String feed = to[3];
if (!rows.keySet().contains(user)) {
rows.put(user, new Integer(rowsNum));
@@ -109,7 +111,8 @@
Image im = new Image("/tagme-servlet/images/delete.gif");
HorizontalPanel hpanel = new HorizontalPanel();
- hpanel.add(new Label(tag));
+ hpanel.add(new HTML("<a href='" + feed + "' target='_blank' >" + tag
+ + "</a>"));
hpanel.add(im);
im.addClickListener(new DeleteTagClickListener(
@@ -119,7 +122,8 @@
hpanel);
} else {
// just show tag
- table.setText(curRow, table.getCellCount(curRow), tag);
+ table.setHTML(curRow, table.getCellCount(curRow),
+ "<a href='" + feed + "' target='_blank' >" + tag + "</a>");
}
}
}
@@ -197,15 +201,15 @@
public void startProgressAnim(String text) {
info.setText(text);
-
+
timer = new Timer() {
-
+
public void run() {
info.setText(info.getText() + ".");
}
-
+
};
-
+
timer.scheduleRepeating(1000);
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 18:17:36 UTC (rev 4705)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 18:20:20 UTC (rev 4706)
@@ -22,25 +22,19 @@
package org.jboss.labs.tagme.services;
import java.util.Date;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Vector;
import org.jboss.labs.tagme.gwt.client.TagMeClickListener;
import org.jboss.logging.Logger;
-import org.jboss.shotoku.ContentManager;
-import org.jboss.shotoku.Node;
-import org.jboss.shotoku.exceptions.RepositoryException;
-import org.jboss.shotoku.exceptions.ResourceDoesNotExist;
-import org.jboss.shotoku.exceptions.SaveException;
import org.jboss.shotoku.tags.ShotokuTag;
import org.jboss.shotoku.tags.Tag;
import org.jboss.shotoku.tags.TagService;
-import org.jboss.shotoku.tags.tools.TagTools;
import org.jboss.shotoku.tags.exceptions.TagAddException;
import org.jboss.shotoku.tags.exceptions.TagDeleteException;
import org.jboss.shotoku.tags.exceptions.TagGetException;
+import org.jboss.shotoku.tags.tools.FeedType;
+import org.jboss.shotoku.tags.tools.TagTools;
public class ShotokuTaggingService implements TagMeTagger {
@@ -51,6 +45,10 @@
private TagService service = TagTools.getService();
+ public String getFeedForTag(String tag, String type) {
+ return service.getFeedLink(FeedType.TAGS, tag, type);
+ }
+
public Vector getTags(String path) {
log.info("Getting tags for: " + path);
@@ -60,9 +58,14 @@
List<Tag> allTags = service.getTags(path);
for (Tag tag : allTags) {
- tags.add(tag.getName() + TagMeClickListener.TAG_SEP
- + tag.getAuthor() + TagMeClickListener.TAG_SEP
- + tag.getAuthor());
+ tags.add(tag.getName()
+ + TagMeClickListener.TAG_SEP
+ + tag.getAuthor()
+ + TagMeClickListener.TAG_SEP
+ + tag.getAuthor()
+ + TagMeClickListener.TAG_SEP
+ + service.getFeedLink(FeedType.TAGS, tag.getName(),
+ "rss2"));
}
} catch (TagGetException e) {
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java 2006-06-09 18:17:36 UTC (rev 4705)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java 2006-06-09 18:20:20 UTC (rev 4706)
@@ -29,4 +29,6 @@
public void addTag(String user, String path, String tag);
public void deleteTag(String user, String path, String tag);
+
+ public String getFeedForTag(String tag, String type);
}
|
Author: dam...@jb... Date: 2006-06-09 14:17:36 -0400 (Fri, 09 Jun 2006) New Revision: 4705 Modified: labs/shotoku/branches/qa/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java labs/shotoku/branches/qa/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java labs/shotoku/branches/qa/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java Log: MERGED: -r 4699:4704 https://svn.labs.jboss.com/labs/shotoku/trunk into qa for Labs 1.1 testing. Modified: labs/shotoku/branches/qa/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java =================================================================== --- labs/shotoku/branches/qa/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java 2006-06-09 18:15:48 UTC (rev 4704) +++ labs/shotoku/branches/qa/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java 2006-06-09 18:17:36 UTC (rev 4705) @@ -5,6 +5,7 @@ import org.jboss.shotoku.tags.Tag; import org.jboss.shotoku.tags.tools.TagTools; import org.jboss.shotoku.tags.tools.Constants; +import org.jboss.shotoku.tags.tools.FeedType; import org.jboss.shotoku.tags.exceptions.TagGetException; import javax.servlet.http.HttpServletResponse; @@ -52,16 +53,11 @@ public abstract String getContentType(); public Date getYoungestTagDate(List<Tag> tags) { - long youngest = 0; - - for (Tag tag : tags) { - long dateCreated = tag.getDateCreated().getTime(); - if (dateCreated > youngest) { - youngest = dateCreated; - } + if (tags.size() == 0) { + return new Date(); } - return new Date(youngest); + return tags.get(0).getDateCreated(); } public void write(OutputStream os, String fullName) throws IOException { @@ -84,39 +80,55 @@ List<Tag> tags; - if (Constants.TAG_FEED_TYPE_RESOURCE.equals(infoTokens[0])) { - vc.put(Constants.TAG_FEED_TYPE_RESOURCE, infoDataDecoded); + if (FeedType.RESOURCE.toString().equals(infoTokens[0])) { + vc.put(FeedType.RESOURCE.toString(), infoDataDecoded); // Getting the list of tags. try { - tags = TagTools.getService().getTags(infoDataDecoded).getList(); + tags = TagTools.getService().getTags(infoDataDecoded); } catch (TagGetException e) { throw new IOException(e.getMessage()); } template = template.replace(Constants.TAG_FEED_TYPE_VARIABLE, - Constants.TAG_FEED_TYPE_RESOURCE); + FeedType.RESOURCE.toString()); - } else if (Constants.TAG_FEED_TYPE_AUTHOR.equals(infoTokens[0])) { + } else if (FeedType.AUTHOR.toString().equals(infoTokens[0])) { + vc.put(FeedType.AUTHOR.toString(), infoDataDecoded); + + // Getting the list of tags. try { - tags = TagTools.getService().getTagsByAuthor(infoDataDecoded).getList(); + tags = TagTools.getService().getTagsByAuthor(infoDataDecoded); } catch (TagGetException e) { throw new IOException(e.getMessage()); } template = template.replace(Constants.TAG_FEED_TYPE_VARIABLE, - Constants.TAG_FEED_TYPE_AUTHOR); + FeedType.AUTHOR.toString()); - } else if (Constants.TAG_FEED_TYPE_TAGS.equals(infoTokens[0])) { + } else if (FeedType.TAGS.toString().equals(infoTokens[0])) { + String[] tagNames = infoDataDecoded.split("[+]"); + + StringBuffer tagsAsString = new StringBuffer(); + for (int i=0; i < tagNames.length; i++) { + tagsAsString.append(tagNames[i]); + if (i < tagNames.length - 1) { + tagsAsString.append(", "); + } + } + vc.put("tagsAsString", tagsAsString.toString()); + + // Getting the tags with the given names. try { tags = TagTools.getService().getTags( - Arrays.asList(infoDataDecoded.split("[+]"))).getList(); + Arrays.asList(tagNames)); } catch (TagGetException e) { + e.printStackTrace(); throw new IOException(e.getMessage()); } template = template.replace(Constants.TAG_FEED_TYPE_VARIABLE, - Constants.TAG_FEED_TYPE_TAGS); + FeedType.TAGS.toString()); } else { throw new IOException("Invalid tag feed request."); @@ -124,7 +136,7 @@ // Computing the date of the youngest tag. vc.put("youngest", getYoungestTagDate(tags)); - vc.put("tags", tags.subList(0, limit)); + vc.put("tags", tags.size() > limit ? tags.subList(0, limit) : tags); try { OutputStreamWriter osw = new OutputStreamWriter(os); Modified: labs/shotoku/branches/qa/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java =================================================================== --- labs/shotoku/branches/qa/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java 2006-06-09 18:15:48 UTC (rev 4704) +++ labs/shotoku/branches/qa/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java 2006-06-09 18:17:36 UTC (rev 4705) @@ -30,4 +30,13 @@ * @return A relative link to a feed with the given parameters. */ public String getFeedLink(FeedType feedType, String data, String type); + + /** + * Gets a link to a tag feed. + * @param feedType Type of the tag feed - resource feed, author feed etc. + * @param dataList Additinal multiple data. This will be encoded into a single string. + * @param type Type of the feed - rss2, atom or rdf. + * @return A relative link to a feed with the given parameters. + */ + public String getFeedLink(FeedType feedType, List<String> dataList, String type); } Modified: labs/shotoku/branches/qa/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java =================================================================== --- labs/shotoku/branches/qa/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java 2006-06-09 18:15:48 UTC (rev 4704) +++ labs/shotoku/branches/qa/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java 2006-06-09 18:17:36 UTC (rev 4705) @@ -24,12 +24,14 @@ import java.util.Calendar; import java.util.List; import java.util.ArrayList; +import java.util.Iterator; import java.net.URLEncoder; import java.io.UnsupportedEncodingException; import javax.ejb.Local; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import javax.persistence.Query; import org.apache.log4j.Logger; import org.jboss.annotation.ejb.Management; @@ -211,7 +213,39 @@ } public List<Tag> getTags(List<String> tagNames) throws TagGetException { - return null; + try { + StringBuffer querySb = new StringBuffer("from TagEntity where "); + int i = 0; + for (Iterator iter = tagNames.iterator(); iter.hasNext();) { + querySb.append("name").append(" = :name").append(i); + + iter.next(); + + if (iter.hasNext()) { + querySb.append(" and "); + } + + i++; + } + + Query query = manager.createQuery(querySb.toString()); + i = 0; + for (String tagName : tagNames) { + query.setParameter("name" + i++, tagName); + } + + //noinspection unchecked + List<TagEntity> result = query.getResultList(); + + List<Tag> ret = new ArrayList<Tag>(); + for (TagEntity te : result) { + ret.add(te.getTag()); + } + + return ret; + } catch (Throwable e) { + throw new TagGetException(e); + } } public List<Tag> getRelatedTags(List<Tag> relateTo) throws TagGetException { @@ -219,7 +253,21 @@ } public List<Tag> getTagsByAuthor(String author) throws TagGetException { - return null; + try { + //noinspection unchecked + List<TagEntity> result = manager.createQuery( + "from TagEntity where author = :author order by dateCreated desc"). + setParameter("author", author).getResultList(); + + List<Tag> ret = new ArrayList<Tag>(); + for (TagEntity te : result) { + ret.add(te.getTag()); + } + + return ret; + } catch (Throwable e) { + throw new TagGetException(e); + } } public String getFeedLink(FeedType feedType, String data, String type) { @@ -230,4 +278,22 @@ return ""; } } + + public String getFeedLink(FeedType feedType, List<String> dataList, String type) { + StringBuffer sb = new StringBuffer(); + + for (Iterator<String> iter = dataList.iterator(); iter.hasNext();) { + sb.append(iter.next()); + if (iter.hasNext()) { + sb.append("+"); + } + } + + try { + return "/feeds/tag/" + feedType.toString() + "/" + + URLEncoder.encode(sb.toString(), "UTF-8") + "/" + type; + } catch (UnsupportedEncodingException e) { + return ""; + } + } } |
|
From: <jbo...@li...> - 2006-06-09 18:15:57
|
Author: dam...@jb... Date: 2006-06-09 14:15:48 -0400 (Fri, 09 Jun 2006) New Revision: 4704 Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp Log: MERGED: -r 4692:4703 https://svn.labs.jboss.com/labs/jbosslabs/trunk into qa for Labs 1.1 testing. Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java 2006-06-09 18:11:44 UTC (rev 4703) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java 2006-06-09 18:15:48 UTC (rev 4704) @@ -40,6 +40,7 @@ private final static String DISPLAY_ATTRIBUTE = "display"; private final static String FOLDABLE_ATTRIBUTE = "foldable"; + private final static String JS_FOLDABLE_ATTRIBUTE = "jsFoldable"; private final static String PERMISSION_ATTRIBUTE = "permission"; /** @@ -63,6 +64,10 @@ */ private boolean foldable; /** + * True if sub-menu of this entry are javascript-foldable. + */ + private boolean jsFoldable; + /** * Role that the user is required to have to display * this entry, or null if */ @@ -85,6 +90,8 @@ display = XmlTools.getAttributeValue(root, DISPLAY_ATTRIBUTE); foldable = Constants.TRUE_VALUE.equals( XmlTools.getAttributeValue(root, FOLDABLE_ATTRIBUTE)); + jsFoldable = Constants.TRUE_VALUE.equals( + XmlTools.getAttributeValue(root, JS_FOLDABLE_ATTRIBUTE)); NodeList nodes = root.getChildNodes(); @@ -147,6 +154,10 @@ context.put("selected", "true"); } + if (jsFoldable) { + context.put("jsFoldable", "true"); + } + if (foldable) { context.put("foldable", "true"); } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2006-06-09 18:11:44 UTC (rev 4703) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2006-06-09 18:15:48 UTC (rev 4704) @@ -27,22 +27,11 @@ * the portlet. */ public class ConAccessBean { - private boolean userLogged; - private boolean adminLogged; - - public ConAccessBean() { - userLogged = ConTools.getRemoteUser() != null; - adminLogged = ConTools.hasPermission("con-admin"); - - //userLogged = true; - //adminLogged = true; - } - public boolean isAdminLogged() { - return adminLogged; + return isUserLogged() && ConTools.hasPermission("con-admin"); } public boolean isUserLogged() { - return userLogged; + return ConTools.getRemoteUser() != null; } } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java 2006-06-09 18:11:44 UTC (rev 4703) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java 2006-06-09 18:15:48 UTC (rev 4704) @@ -46,12 +46,12 @@ Object request = getExternalContext().getRequest(); if (request instanceof JBossActionRequest) { return (String) - ((JBossActionRequest) request).getPortalContext(). - getProperty(propertyName); + ((JBossActionRequest) request).getPortalContext(). + getProperty(propertyName); } else if (request instanceof JBossRenderRequest) { return (String) - ((JBossRenderRequest) request).getPortalContext(). - getProperty(propertyName); + ((JBossRenderRequest) request).getPortalContext(). + getProperty(propertyName); } else return null; } @@ -59,8 +59,8 @@ Object response = getExternalContext().getResponse(); if (response instanceof JBossActionResponse) { System.out.println("ACTION RESPONSE " + - ((JBossActionResponse) response).createRenderURL( - ((JBossActionRequest) getExternalContext().getRequest()).getPortalNode())); + ((JBossActionResponse) response).createRenderURL( + ((JBossActionRequest) getExternalContext().getRequest()).getPortalNode())); //TODO //New "feature" of portal 2.2 ... return ((JBossActionResponse) response).createRenderURL( @@ -91,11 +91,19 @@ static boolean hasPermission(String permission) { Object request = getExternalContext().getRequest(); if (request instanceof JBossActionRequest) { - return - ((JBossActionRequest) request).hasPermission(permission); + org.jboss.portal.core.model.User u = ((JBossActionRequest) request).getUser(); + if (u == null) { + return false; + } + + return u.getRoleNames().contains(permission); } else if (request instanceof JBossRenderRequest) { - return - ((JBossRenderRequest) request).hasPermission(permission); + org.jboss.portal.core.model.User u = ((JBossRenderRequest) request).getUser(); + if (u == null) { + return false; + } + + return u.getRoleNames().contains(permission); } else return false; } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 18:11:44 UTC (rev 4703) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 18:15:48 UTC (rev 4704) @@ -36,7 +36,6 @@ import org.jboss.shotoku.exceptions.SaveException; import org.jboss.shotoku.tags.ShotokuTag; import org.jboss.shotoku.tags.Tag; -import org.jboss.shotoku.tags.TagList; import org.jboss.shotoku.tags.TagService; import org.jboss.shotoku.tags.tools.TagTools; import org.jboss.shotoku.tags.exceptions.TagAddException; @@ -58,17 +57,14 @@ Vector<String> tags = new Vector<String>(); try { - TagList tagList = service.getTags(path); + List<Tag> allTags = service.getTags(path); - if (tagList != null) { - List<Tag> allTags = tagList.getList(); - - for (Tag tag : allTags) { - tags.add(tag.getName() + TagMeClickListener.TAG_SEP - + tag.getAuthor() + TagMeClickListener.TAG_SEP - + tag.getAuthor()); - } + for (Tag tag : allTags) { + tags.add(tag.getName() + TagMeClickListener.TAG_SEP + + tag.getAuthor() + TagMeClickListener.TAG_SEP + + tag.getAuthor()); } + } catch (TagGetException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -126,7 +122,7 @@ log.info("Deleting tag " + tag + " " + path + "..."); try { - List<Tag> tags = service.getTags(path).getList(); + List<Tag> tags = service.getTags(path); for (Tag tagObj : tags) { if (tagObj.getName().equals(tag) Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp 2006-06-09 18:11:44 UTC (rev 4703) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp 2006-06-09 18:15:48 UTC (rev 4704) @@ -1,2 +1,14 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ taglib uri="/WEB-INF/theme/portal-layout.tld" prefix="p" %> <html xmlns="http://www.w3.org/1999/xhtml"> <!-- JBoss, the OpenSource J2EE webOS Distributable under LGPL license. See terms of license at gnu.org. --> <head><title>JBoss.ORG</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="gwt:module" content="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/org.jboss.labs.tagme.gwt.TagMe" /> <link rel="stylesheet" href="/file-access/default/theme/css/print.css" type="text/css" media="print" /> <link rel="stylesheet" href="/file-access/default/theme/css/common.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge-forums.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/portlet.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/podcasts.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/primates.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/blog.css" type="text/css" media="all" /> <!-- insert the dynamically determined theme elements here, or use the 'simple-sample' theme by default --> <!-- <p:theme themeName='jboss-forge' /> --> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqCfg.js'></script> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqImg.js'></script> <!-- speller script --> <script type='text/javascript' language='JavaScript' src="/speller/pages/spellChecker.js"></script> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/speller.js'></script> <!-- end speller script --> <!-- Hide/Show Script for main marketing area --> <script type="text/javascript" language="javascript"> function hideShow(id) { var navpoint = document.getElementById(id); if (navpoint.className == 'hidden') { navpoint.className = 'shown'; } else { navpoint.className = 'hidden'; } } </script> <!-- end Hide/Show script --> </head> <body> <!-- HEADER START --> <!-- this image creates IE problems --> <!-- <img src="/jbossForge/images/svrGP.gif" border="0" height="1" width="1"> --> <!-- GWT script --> <script language="javascript" src="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/gwt.js"></script> <div class="brand_FED" id="container"> <div id="TopLogo"> <img src="http://jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" /> </div> <div id="TopMenu"> <table cellpadding="0" cellspacing="0"> <tbody><tr> <td class="menu_JBnetwork"><a href="http://network.jboss.com/">Support</a></td> <td class="menu_JBjems"><a href="http://www.jboss.com/products/index">Products</a></td> <td class="menu_JBcom"><a href="http://www.jboss.com/partners/index">Partners</a></td> <td class="menu_JBfed"><a href="http://labs.jboss.com">JBoss Labs</a></td> </tr> </tbody></table> </div> <div id="ControlMenu"> <form id="TopSearch" action="http://www.google.com/search" onsubmit="document.forms[0].q.value = document.forms[0].q.value + ' site:jboss.org';"> <ul> <li><a href="<% String url = request.getRequestURL().append((request.getQueryString() != null && request.getQueryString().length() > 0) ? "?" + request.getQueryString() : "").toString(); if (url.contains("/authsec") || url.contains("/auth")) { out.print(url); } else { out.print(url.replace("/portal","/portal/authsec")); }%>">Login</a></li> <li><a href="http://www.jboss.com/index.html?op=checkage&module=user">Register</a></li> <li><a href="http://www.jboss.com/careers">Careers</a></li> <li><a href="http://www.jboss.com/company/contact">Contact Us</a></li> <li> <input style="border: 1px solid #6e6e6e; font: 10px Verdana, Helvetica, Arial, sans-serif; padding-left: 2px; margin-left: 10px;" name="q" onfocus="SearchFocus(this)" onblur="SearchBlur(this)" value="Search..." /> <input class="searchbutton" type="image" src="/file-access/default/theme/images/spacer.gif" value="go" align="middle" /> </li> </ul> </form> </div> <!-- HEADER END --> <!-- main page table --> <table id="BodyTable" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td colspan="4" class="topheader"></td> </tr> <tr> <td class="leftside" rowspan="2"><p:region regionName='left'/></td> <td class="bodycell" colspan="3"><p:region regionName='center'/></td> </tr> <tr> <td class="innerleft"><p:region regionName='innerleft'/></td> <td class="innerright"><p:region regionName='innerright'/></td> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ taglib uri="/WEB-INF/theme/portal-layout.tld" prefix="p" %> <html xmlns="http://www.w3.org/1999/xhtml"> <!-- JBoss, the OpenSource J2EE webOS Distributable under LGPL license. See terms of license at gnu.org. --> <head><title>JBoss.ORG</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="gwt:module" content="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/org.jboss.labs.tagme.gwt.TagMe" /> <link rel="stylesheet" href="/file-access/default/theme/css/print.css" type="text/css" media="print" /> <link rel="stylesheet" href="/file-access/default/theme/css/common.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge-forums.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/portlet.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/podcasts.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/primates.css" type="text/css" media="all" /> <link rel="stylesheet" href="/file-access/default/theme/css/blog.css" type="text/css" media="all" /> <!-- insert the dynamically determined theme elements here, or use the 'simple-sample' theme by default --> <!-- <p:theme themeName='jboss-forge' /> --> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqCfg.js'></script> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqImg.js'></script> <!-- speller script --> <script type='text/javascript' language='JavaScript' src="/speller/pages/spellChecker.js"></script> <script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/speller.js'></script> <!-- end speller script --> <!-- Hide/Show Script for main marketing area --> <script type="text/javascript" language="javascript"> function hideShow(id) { var navpoint = document.getElementById(id); if (navpoint.className == 'hidden') { navpoint.className = 'shown'; } else { navpoint.className = 'hidden'; } } </script> <!-- end Hide/Show script --> </head> <body> <!-- HEADER START --> <!-- this image creates IE problems --> <!-- <img src="/jbossForge/images/svrGP.gif" border="0" height="1" width="1"> --> <!-- GWT script --> <script language="javascript" src="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/gwt.js"></script> <div class="brand_FED" id="container"> <div id="TopLogo"> <img src="http://jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" /> </div> +<div id="TopMenu"> + <table cellpadding="0" cellspacing="0"> + <tr> + <td class="menu_JBnetwork"><a href="http://network.jboss.com/">subscription</a></td> + <td class="menu_JBcom"><a href="http://www.jboss.com/">jboss.com</a></td> + + <td class="menu_JBorg"><a href="http://labs.jboss.com">jboss.org</a></td> + <td class="menu_RH"><a href="http://www.redhat.com">redhat.com</a></td> + </tr> + </table> +</div> + <div id="ControlMenu"> <form id="TopSearch" action="http://www.google.com/search" onsubmit="document.forms[0].q.value = document.forms[0].q.value + ' site:jboss.org';"> <ul> <li><a href="<% String url = request.getRequestURL().append((request.getQueryString() != null && request.getQueryString().length() > 0) ? "?" + request.getQueryString() : "").toString(); if (url.contains("/authsec") || url.contains("/auth")) { out.print(url); } else { out.print(url.replace("/portal","/portal/authsec")); }%>">Login</a></li> <li><a href="http://www.jboss.com/index.html?op=checkage&module=user">Register</a></li> <li><a href="http://www.jboss.com/careers">Careers</a></li> <li><a href="http://www.jboss.com/company/contact">Contact Us</a></li> <li> <input style="border: 1px solid #6e6e6e; font: 10px Verdana, Helvetica, Arial, sans-serif; padding-left: 2px; margin-left: 10px;" name="q" onfocus="SearchFocus(this)" onblur="SearchBlur(this)" value="Search..." /> <input class="searchbutton" type="image" src="/file-access/default/theme/images/spacer.gif" value="go" align="middle" /> </li> </ul> </form> </div> <!-- HEADER END --> <!-- main page table --> <table id="BodyTable" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td colspan="4" class="topheader"></td> </tr> <tr> <td class="leftside" rowspan="2"><p:region regionName='left'/></td> <td class="bodycell" colspan="3"><p:region regionName='center'/></td> </tr> <tr> <td class="innerleft"><p:region regionName='innerleft'/></td> <td class="innerright"><p:region regionName='innerright'/></td> <td class="rightside"><p:region regionName='right'/></td> </tr> </tbody> </table> <div id="jbfPageFooter"> <div id="Copyright"> JBoss is a registered trademark and servicemark of JBoss Inc. 2002-2005 JBoss Inc. All rights reserved.<br /> Theme made by <a href="http://mamut.net.pl">Szimano</a> </div> </div> </body> </html> \ No newline at end of file |
|
From: <jbo...@li...> - 2006-06-09 18:11:49
|
Author: adamw
Date: 2006-06-09 14:11:44 -0400 (Fri, 09 Jun 2006)
New Revision: 4703
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java
Log:
JS Foldable fix
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java 2006-06-09 18:10:50 UTC (rev 4702)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/Entry.java 2006-06-09 18:11:44 UTC (rev 4703)
@@ -40,6 +40,7 @@
private final static String DISPLAY_ATTRIBUTE = "display";
private final static String FOLDABLE_ATTRIBUTE = "foldable";
+ private final static String JS_FOLDABLE_ATTRIBUTE = "jsFoldable";
private final static String PERMISSION_ATTRIBUTE = "permission";
/**
@@ -63,6 +64,10 @@
*/
private boolean foldable;
/**
+ * True if sub-menu of this entry are javascript-foldable.
+ */
+ private boolean jsFoldable;
+ /**
* Role that the user is required to have to display
* this entry, or null if
*/
@@ -85,6 +90,8 @@
display = XmlTools.getAttributeValue(root, DISPLAY_ATTRIBUTE);
foldable = Constants.TRUE_VALUE.equals(
XmlTools.getAttributeValue(root, FOLDABLE_ATTRIBUTE));
+ jsFoldable = Constants.TRUE_VALUE.equals(
+ XmlTools.getAttributeValue(root, JS_FOLDABLE_ATTRIBUTE));
NodeList nodes = root.getChildNodes();
@@ -147,6 +154,10 @@
context.put("selected", "true");
}
+ if (jsFoldable) {
+ context.put("jsFoldable", "true");
+ }
+
if (foldable) {
context.put("foldable", "true");
}
|
|
From: <jbo...@li...> - 2006-06-09 18:10:57
|
Author: adamw
Date: 2006-06-09 14:10:50 -0400 (Fri, 09 Jun 2006)
New Revision: 4702
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java
labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java
Log:
Roles fix
Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2006-06-09 17:46:22 UTC (rev 4701)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConAccessBean.java 2006-06-09 18:10:50 UTC (rev 4702)
@@ -27,22 +27,11 @@
* the portlet.
*/
public class ConAccessBean {
- private boolean userLogged;
- private boolean adminLogged;
-
- public ConAccessBean() {
- userLogged = ConTools.getRemoteUser() != null;
- adminLogged = ConTools.hasPermission("con-admin");
-
- //userLogged = true;
- //adminLogged = true;
- }
-
public boolean isAdminLogged() {
- return adminLogged;
+ return isUserLogged() && ConTools.hasPermission("con-admin");
}
public boolean isUserLogged() {
- return userLogged;
+ return ConTools.getRemoteUser() != null;
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java 2006-06-09 17:46:22 UTC (rev 4701)
+++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java 2006-06-09 18:10:50 UTC (rev 4702)
@@ -46,12 +46,12 @@
Object request = getExternalContext().getRequest();
if (request instanceof JBossActionRequest) {
return (String)
- ((JBossActionRequest) request).getPortalContext().
- getProperty(propertyName);
+ ((JBossActionRequest) request).getPortalContext().
+ getProperty(propertyName);
} else if (request instanceof JBossRenderRequest) {
return (String)
- ((JBossRenderRequest) request).getPortalContext().
- getProperty(propertyName);
+ ((JBossRenderRequest) request).getPortalContext().
+ getProperty(propertyName);
} else return null;
}
@@ -59,8 +59,8 @@
Object response = getExternalContext().getResponse();
if (response instanceof JBossActionResponse) {
System.out.println("ACTION RESPONSE " +
- ((JBossActionResponse) response).createRenderURL(
- ((JBossActionRequest) getExternalContext().getRequest()).getPortalNode()));
+ ((JBossActionResponse) response).createRenderURL(
+ ((JBossActionRequest) getExternalContext().getRequest()).getPortalNode()));
//TODO
//New "feature" of portal 2.2 ...
return ((JBossActionResponse) response).createRenderURL(
@@ -91,11 +91,19 @@
static boolean hasPermission(String permission) {
Object request = getExternalContext().getRequest();
if (request instanceof JBossActionRequest) {
- return
- ((JBossActionRequest) request).hasPermission(permission);
+ org.jboss.portal.core.model.User u = ((JBossActionRequest) request).getUser();
+ if (u == null) {
+ return false;
+ }
+
+ return u.getRoleNames().contains(permission);
} else if (request instanceof JBossRenderRequest) {
- return
- ((JBossRenderRequest) request).hasPermission(permission);
+ org.jboss.portal.core.model.User u = ((JBossRenderRequest) request).getUser();
+ if (u == null) {
+ return false;
+ }
+
+ return u.getRoleNames().contains(permission);
} else return false;
}
|
Author: szimano
Date: 2006-06-09 13:46:22 -0400 (Fri, 09 Jun 2006)
New Revision: 4701
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java
labs/jbosslabs/trunk/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp
Log:
fixed tagging service
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 17:28:14 UTC (rev 4700)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 17:46:22 UTC (rev 4701)
@@ -36,7 +36,6 @@
import org.jboss.shotoku.exceptions.SaveException;
import org.jboss.shotoku.tags.ShotokuTag;
import org.jboss.shotoku.tags.Tag;
-import org.jboss.shotoku.tags.TagList;
import org.jboss.shotoku.tags.TagService;
import org.jboss.shotoku.tags.tools.TagTools;
import org.jboss.shotoku.tags.exceptions.TagAddException;
@@ -58,17 +57,14 @@
Vector<String> tags = new Vector<String>();
try {
- TagList tagList = service.getTags(path);
+ List<Tag> allTags = service.getTags(path);
- if (tagList != null) {
- List<Tag> allTags = tagList.getList();
-
- for (Tag tag : allTags) {
- tags.add(tag.getName() + TagMeClickListener.TAG_SEP
- + tag.getAuthor() + TagMeClickListener.TAG_SEP
- + tag.getAuthor());
- }
+ for (Tag tag : allTags) {
+ tags.add(tag.getName() + TagMeClickListener.TAG_SEP
+ + tag.getAuthor() + TagMeClickListener.TAG_SEP
+ + tag.getAuthor());
}
+
} catch (TagGetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -126,7 +122,7 @@
log.info("Deleting tag " + tag + " " + path + "...");
try {
- List<Tag> tags = service.getTags(path).getList();
+ List<Tag> tags = service.getTags(path);
for (Tag tagObj : tags) {
if (tagObj.getName().equals(tag)
Modified: labs/jbosslabs/trunk/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp 2006-06-09 17:28:14 UTC (rev 4700)
+++ labs/jbosslabs/trunk/portal-extensions/forge-theme/jbossForgeLayout.war/layouts/jbossForge.jsp 2006-06-09 17:46:22 UTC (rev 4701)
@@ -1,2 +1,14 @@
-<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ taglib uri="/WEB-INF/theme/portal-layout.tld" prefix="p" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
JBoss, the OpenSource J2EE webOS
Distributable under LGPL license.
See terms of license at gnu.org.
-->
<head><title>JBoss.ORG</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="gwt:module" content="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/org.jboss.labs.tagme.gwt.TagMe" />
<link rel="stylesheet" href="/file-access/default/theme/css/print.css" type="text/css" media="print" />
<link rel="stylesheet" href="/file-access/default/theme/css/common.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge-forums.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/portlet.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/podcasts.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/primates.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/blog.css" type="text/css" media="all" />
<!-- insert the dynamically determined theme elements here, or use the 'simple-sample' theme by default -->
<!-- <p:theme themeName='jboss-forge' /> -->
<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqCfg.js'></script>
<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqImg.js'></script>
<!-- speller script -->
<script type='text/javascript' language='JavaScript' src="/speller/pages/spellChecker.js"></script>
<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/speller.js'></script>
<!-- end speller script -->
<!-- Hide/Show Script for main marketing area -->
<script type="text/javascript" language="javascript">
function hideShow(id)
{
var navpoint = document.getElementById(id);
if (navpoint.className == 'hidden') {
navpoint.className = 'shown';
} else {
navpoint.className = 'hidden';
}
}
</script>
<!-- end Hide/Show script -->
</head>
<body>
<!-- HEADER START -->
<!-- this image creates IE problems -->
<!-- <img src="/jbossForge/images/svrGP.gif" border="0" height="1" width="1"> -->
<!-- GWT script -->
<script language="javascript" src="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/gwt.js"></script>
<div class="brand_FED" id="container">
<div id="TopLogo">
<img src="http://jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" />
</div>
<div id="TopMenu">
<table cellpadding="0" cellspacing="0">
<tbody><tr>
<td class="menu_JBnetwork"><a href="http://network.jboss.com/">Support</a></td>
<td class="menu_JBjems"><a href="http://www.jboss.com/products/index">Products</a></td>
<td class="menu_JBcom"><a href="http://www.jboss.com/partners/index">Partners</a></td>
<td class="menu_JBfed"><a href="http://labs.jboss.com">JBoss Labs</a></td>
</tr>
</tbody></table>
</div>
<div id="ControlMenu">
<form id="TopSearch" action="http://www.google.com/search" onsubmit="document.forms[0].q.value = document.forms[0].q.value + ' site:jboss.org';">
<ul>
<li><a href="<%
String url = request.getRequestURL().append((request.getQueryString() != null && request.getQueryString().length() > 0) ? "?" + request.getQueryString() : "").toString();
if (url.contains("/authsec") || url.contains("/auth")) {
out.print(url);
}
else {
out.print(url.replace("/portal","/portal/authsec"));
}%>">Login</a></li>
<li><a href="http://www.jboss.com/index.html?op=checkage&module=user">Register</a></li>
<li><a href="http://www.jboss.com/careers">Careers</a></li>
<li><a href="http://www.jboss.com/company/contact">Contact Us</a></li>
<li>
<input style="border: 1px solid #6e6e6e; font: 10px Verdana, Helvetica, Arial, sans-serif; padding-left: 2px; margin-left: 10px;" name="q" onfocus="SearchFocus(this)" onblur="SearchBlur(this)" value="Search..." />
<input class="searchbutton" type="image" src="/file-access/default/theme/images/spacer.gif" value="go" align="middle" />
</li>
</ul>
</form>
</div>
<!-- HEADER END -->
<!-- main page table -->
<table id="BodyTable" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td colspan="4" class="topheader"></td>
</tr>
<tr>
<td class="leftside" rowspan="2"><p:region regionName='left'/></td>
<td class="bodycell" colspan="3"><p:region regionName='center'/></td>
</tr>
<tr>
<td class="innerleft"><p:region regionName='innerleft'/></td>
<td class="innerright"><p:region regionName='innerright'/></td>
+<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ taglib uri="/WEB-INF/theme/portal-layout.tld" prefix="p" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
JBoss, the OpenSource J2EE webOS
Distributable under LGPL license.
See terms of license at gnu.org.
-->
<head><title>JBoss.ORG</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="gwt:module" content="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/org.jboss.labs.tagme.gwt.TagMe" />
<link rel="stylesheet" href="/file-access/default/theme/css/print.css" type="text/css" media="print" />
<link rel="stylesheet" href="/file-access/default/theme/css/common.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/jboss-forge-forums.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/portlet.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/podcasts.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/primates.css" type="text/css" media="all" />
<link rel="stylesheet" href="/file-access/default/theme/css/blog.css" type="text/css" media="all" />
<!-- insert the dynamically determined theme elements here, or use the 'simple-sample' theme by default -->
<!-- <p:theme themeName='jboss-forge' /> -->
<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqCfg.js'></script>
<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/elqNow/elqImg.js'></script>
<!-- speller script -->
<script type='text/javascript' language='JavaScript' src="/speller/pages/spellChecker.js"></script>
<script type='text/javascript' language='JavaScript' src='/file-access/default/theme/js/speller.js'></script>
<!-- end speller script -->
<!-- Hide/Show Script for main marketing area -->
<script type="text/javascript" language="javascript">
function hideShow(id)
{
var navpoint = document.getElementById(id);
if (navpoint.className == 'hidden') {
navpoint.className = 'shown';
} else {
navpoint.className = 'hidden';
}
}
</script>
<!-- end Hide/Show script -->
</head>
<body>
<!-- HEADER START -->
<!-- this image creates IE problems -->
<!-- <img src="/jbossForge/images/svrGP.gif" border="0" height="1" width="1"> -->
<!-- GWT script -->
<script language="javascript" src="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/gwt.js"></script>
<div class="brand_FED" id="container">
<div id="TopLogo">
<img src="http://jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" />
</div>
+<div id="TopMenu">
+ <table cellpadding="0" cellspacing="0">
+ <tr>
+ <td class="menu_JBnetwork"><a href="http://network.jboss.com/">subscription</a></td>
+ <td class="menu_JBcom"><a href="http://www.jboss.com/">jboss.com</a></td>
+
+ <td class="menu_JBorg"><a href="http://labs.jboss.com">jboss.org</a></td>
+ <td class="menu_RH"><a href="http://www.redhat.com">redhat.com</a></td>
+ </tr>
+ </table>
+</div>
+
<div id="ControlMenu">
<form id="TopSearch" action="http://www.google.com/search" onsubmit="document.forms[0].q.value = document.forms[0].q.value + ' site:jboss.org';">
<ul>
<li><a href="<%
String url = request.getRequestURL().append((request.getQueryString() != null && request.getQueryString().length() > 0) ? "?" + request.getQueryString() : "").toString();
if (url.contains("/authsec") || url.contains("/auth")) {
out.print(url);
}
else {
out.print(url.replace("/portal","/portal/authsec"));
}%>">Login</a></li>
<li><a href="http://www.jboss.com/index.html?op=checkage&module=user">Register</a></li>
<li><a href="http://www.jboss.com/careers">Careers</a></li>
<li><a href="http://www.jboss.com/company/contact">Contact Us</a></li>
<li>
<input style="border: 1px solid #6e6e6e; font: 10px Verdana, Helvetica, Arial, sans-serif; padding-left: 2px; margin-left: 10px;" name="q" onfocus="SearchFocus(this)" onblur="SearchBlur(this)" value="Search..." />
<input class="searchbutton" type="image" src="/file-access/default/theme/images/spacer.gif" value="go" align="middle" />
</li>
</ul>
</form>
</div>
<!-- HEADER END -->
<!-- main page table -->
<table id="BodyTable" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td colspan="4" class="topheader"></td>
</tr>
<tr>
<td class="leftside" rowspan="2"><p:region regionName='left'/></td>
<td class="bodycell" colspan="3"><p:region regionName='center'/></td>
</tr>
<tr>
<td class="innerleft"><p:region regionName='innerleft'/></td>
<td class="innerright"><p:region regionName='innerright'/></td>
<td class="rightside"><p:region regionName='right'/></td>
</tr>
</tbody>
</table>
<div id="jbfPageFooter">
<div id="Copyright">
JBoss is a registered trademark and servicemark of JBoss Inc. 2002-2005 JBoss Inc. All rights reserved.<br />
Theme made by <a href="http://mamut.net.pl">Szimano</a>
</div>
</div>
</body>
</html>
\ No newline at end of file
|
Author: adamw Date: 2006-06-09 13:28:14 -0400 (Fri, 09 Jun 2006) New Revision: 4700 Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java Log: http://jira.jboss.com/jira/browse/JBSHOTOKU-86 Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java =================================================================== --- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java 2006-06-09 17:06:08 UTC (rev 4699) +++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java 2006-06-09 17:28:14 UTC (rev 4700) @@ -5,6 +5,7 @@ import org.jboss.shotoku.tags.Tag; import org.jboss.shotoku.tags.tools.TagTools; import org.jboss.shotoku.tags.tools.Constants; +import org.jboss.shotoku.tags.tools.FeedType; import org.jboss.shotoku.tags.exceptions.TagGetException; import javax.servlet.http.HttpServletResponse; @@ -52,16 +53,11 @@ public abstract String getContentType(); public Date getYoungestTagDate(List<Tag> tags) { - long youngest = 0; - - for (Tag tag : tags) { - long dateCreated = tag.getDateCreated().getTime(); - if (dateCreated > youngest) { - youngest = dateCreated; - } + if (tags.size() == 0) { + return new Date(); } - return new Date(youngest); + return tags.get(0).getDateCreated(); } public void write(OutputStream os, String fullName) throws IOException { @@ -84,39 +80,55 @@ List<Tag> tags; - if (Constants.TAG_FEED_TYPE_RESOURCE.equals(infoTokens[0])) { - vc.put(Constants.TAG_FEED_TYPE_RESOURCE, infoDataDecoded); + if (FeedType.RESOURCE.toString().equals(infoTokens[0])) { + vc.put(FeedType.RESOURCE.toString(), infoDataDecoded); // Getting the list of tags. try { - tags = TagTools.getService().getTags(infoDataDecoded).getList(); + tags = TagTools.getService().getTags(infoDataDecoded); } catch (TagGetException e) { throw new IOException(e.getMessage()); } template = template.replace(Constants.TAG_FEED_TYPE_VARIABLE, - Constants.TAG_FEED_TYPE_RESOURCE); + FeedType.RESOURCE.toString()); - } else if (Constants.TAG_FEED_TYPE_AUTHOR.equals(infoTokens[0])) { + } else if (FeedType.AUTHOR.toString().equals(infoTokens[0])) { + vc.put(FeedType.AUTHOR.toString(), infoDataDecoded); + + // Getting the list of tags. try { - tags = TagTools.getService().getTagsByAuthor(infoDataDecoded).getList(); + tags = TagTools.getService().getTagsByAuthor(infoDataDecoded); } catch (TagGetException e) { throw new IOException(e.getMessage()); } template = template.replace(Constants.TAG_FEED_TYPE_VARIABLE, - Constants.TAG_FEED_TYPE_AUTHOR); + FeedType.AUTHOR.toString()); - } else if (Constants.TAG_FEED_TYPE_TAGS.equals(infoTokens[0])) { + } else if (FeedType.TAGS.toString().equals(infoTokens[0])) { + String[] tagNames = infoDataDecoded.split("[+]"); + + StringBuffer tagsAsString = new StringBuffer(); + for (int i=0; i < tagNames.length; i++) { + tagsAsString.append(tagNames[i]); + if (i < tagNames.length - 1) { + tagsAsString.append(", "); + } + } + vc.put("tagsAsString", tagsAsString.toString()); + + // Getting the tags with the given names. try { tags = TagTools.getService().getTags( - Arrays.asList(infoDataDecoded.split("[+]"))).getList(); + Arrays.asList(tagNames)); } catch (TagGetException e) { + e.printStackTrace(); throw new IOException(e.getMessage()); } template = template.replace(Constants.TAG_FEED_TYPE_VARIABLE, - Constants.TAG_FEED_TYPE_TAGS); + FeedType.TAGS.toString()); } else { throw new IOException("Invalid tag feed request."); @@ -124,7 +136,7 @@ // Computing the date of the youngest tag. vc.put("youngest", getYoungestTagDate(tags)); - vc.put("tags", tags.subList(0, limit)); + vc.put("tags", tags.size() > limit ? tags.subList(0, limit) : tags); try { OutputStreamWriter osw = new OutputStreamWriter(os); Modified: labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java =================================================================== --- labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java 2006-06-09 17:06:08 UTC (rev 4699) +++ labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java 2006-06-09 17:28:14 UTC (rev 4700) @@ -30,4 +30,13 @@ * @return A relative link to a feed with the given parameters. */ public String getFeedLink(FeedType feedType, String data, String type); + + /** + * Gets a link to a tag feed. + * @param feedType Type of the tag feed - resource feed, author feed etc. + * @param dataList Additinal multiple data. This will be encoded into a single string. + * @param type Type of the feed - rss2, atom or rdf. + * @return A relative link to a feed with the given parameters. + */ + public String getFeedLink(FeedType feedType, List<String> dataList, String type); } Modified: labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java =================================================================== --- labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java 2006-06-09 17:06:08 UTC (rev 4699) +++ labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java 2006-06-09 17:28:14 UTC (rev 4700) @@ -24,12 +24,14 @@ import java.util.Calendar; import java.util.List; import java.util.ArrayList; +import java.util.Iterator; import java.net.URLEncoder; import java.io.UnsupportedEncodingException; import javax.ejb.Local; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import javax.persistence.Query; import org.apache.log4j.Logger; import org.jboss.annotation.ejb.Management; @@ -211,7 +213,39 @@ } public List<Tag> getTags(List<String> tagNames) throws TagGetException { - return null; + try { + StringBuffer querySb = new StringBuffer("from TagEntity where "); + int i = 0; + for (Iterator iter = tagNames.iterator(); iter.hasNext();) { + querySb.append("name").append(" = :name").append(i); + + iter.next(); + + if (iter.hasNext()) { + querySb.append(" and "); + } + + i++; + } + + Query query = manager.createQuery(querySb.toString()); + i = 0; + for (String tagName : tagNames) { + query.setParameter("name" + i++, tagName); + } + + //noinspection unchecked + List<TagEntity> result = query.getResultList(); + + List<Tag> ret = new ArrayList<Tag>(); + for (TagEntity te : result) { + ret.add(te.getTag()); + } + + return ret; + } catch (Throwable e) { + throw new TagGetException(e); + } } public List<Tag> getRelatedTags(List<Tag> relateTo) throws TagGetException { @@ -219,7 +253,21 @@ } public List<Tag> getTagsByAuthor(String author) throws TagGetException { - return null; + try { + //noinspection unchecked + List<TagEntity> result = manager.createQuery( + "from TagEntity where author = :author order by dateCreated desc"). + setParameter("author", author).getResultList(); + + List<Tag> ret = new ArrayList<Tag>(); + for (TagEntity te : result) { + ret.add(te.getTag()); + } + + return ret; + } catch (Throwable e) { + throw new TagGetException(e); + } } public String getFeedLink(FeedType feedType, String data, String type) { @@ -230,4 +278,22 @@ return ""; } } + + public String getFeedLink(FeedType feedType, List<String> dataList, String type) { + StringBuffer sb = new StringBuffer(); + + for (Iterator<String> iter = dataList.iterator(); iter.hasNext();) { + sb.append(iter.next()); + if (iter.hasNext()) { + sb.append("+"); + } + } + + try { + return "/feeds/tag/" + feedType.toString() + "/" + + URLEncoder.encode(sb.toString(), "UTF-8") + "/" + type; + } catch (UnsupportedEncodingException e) { + return ""; + } + } } |
|
From: <jbo...@li...> - 2006-06-09 17:06:11
|
Author: dam...@jb... Date: 2006-06-09 13:06:08 -0400 (Fri, 09 Jun 2006) New Revision: 4699 Added: labs/shotoku/branches/qa/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/ Log: Adding data dir back from trunk. Copied: labs/shotoku/branches/qa/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data (from rev 4698, labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data) |