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) |