CatalogJspBean.java
/*
* Copyright (c) 2002-2017, Mairie de Paris
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright notice
* and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice
* and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* License 1.0
*/
package fr.paris.lutece.plugins.updatercatalog.web;
import fr.paris.lutece.plugins.updatercatalog.business.Catalog;
import fr.paris.lutece.plugins.updatercatalog.business.CatalogHome;
import fr.paris.lutece.plugins.updatercatalog.business.CatalogPlugin;
import fr.paris.lutece.plugins.updatercatalog.business.CatalogPluginEntry;
import fr.paris.lutece.plugins.updatercatalog.business.CatalogPluginHome;
import fr.paris.lutece.plugins.updatercatalog.business.PluginRelease;
import fr.paris.lutece.plugins.updatercatalog.business.PluginReleaseHome;
import fr.paris.lutece.plugins.updatercatalog.business.ReleaseUpgrade;
import fr.paris.lutece.plugins.updatercatalog.service.CatalogGenerationService;
import fr.paris.lutece.portal.service.message.AdminMessage;
import fr.paris.lutece.portal.service.message.AdminMessageService;
import fr.paris.lutece.portal.service.template.AppTemplateService;
import fr.paris.lutece.portal.web.admin.PluginAdminPageJspBean;
import fr.paris.lutece.portal.web.constants.Messages;
import fr.paris.lutece.util.html.HtmlTemplate;
import fr.paris.lutece.util.url.UrlItem;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
/**
* Catalog Jsp Bean
*/
public class CatalogJspBean extends PluginAdminPageJspBean
{
/**
*
*/
public static final String RIGHT_CATALOG_MANAGEMENT = "UPDATER_CATALOG_MANAGEMENT";
// Templates
private static final String TEMPLATE_MANAGE_CATALOG = "admin/plugins/updatercatalog/manage_catalogs.html";
private static final String TEMPLATE_CREATE_CATALOG = "admin/plugins/updatercatalog/create_catalog.html";
private static final String TEMPLATE_MODIFY_CATALOG = "admin/plugins/updatercatalog/modify_catalog.html";
private static final String TEMPLATE_MANAGE_RELEASES = "admin/plugins/updatercatalog/manage_releases.html";
private static final String TEMPLATE_CREATE_RELEASE = "admin/plugins/updatercatalog/create_release.html";
private static final String TEMPLATE_MODIFY_RELEASE = "admin/plugins/updatercatalog/modify_release.html";
private static final String TEMPLATE_MANAGE_PLUGINS = "admin/plugins/updatercatalog/manage_plugins.html";
private static final String TEMPLATE_CREATE_PLUGIN = "admin/plugins/updatercatalog/create_plugin.html";
private static final String TEMPLATE_MODIFY_PLUGIN = "admin/plugins/updatercatalog/modify_plugin.html";
private static final String TEMPLATE_CREATE_UPGRADE = "admin/plugins/updatercatalog/create_upgrade.html";
// Bookmarks
private static final String MARK_CATALOGS_LIST = "catalogs_list";
private static final String MARK_PLUGINS_LIST = "plugins_list";
private static final String MARK_CATALOG = "catalog";
private static final String MARK_AVAILABLE_PLUGINS = "available_plugins_list";
private static final String MARK_RELEASE = "release";
private static final String MARK_RELEASE_ID = "release_id";
private static final String MARK_PLUGIN = "plugin";
// Parameters
private static final String PARAMETER_CATALOG_ID = "id_catalog";
private static final String PARAMETER_RELEASE_ID = "id_release";
private static final String PARAMETER_NAME = "name";
private static final String PARAMETER_DESCRIPTION = "description";
private static final String PARAMETER_LOCALE = "locale";
private static final String PARAMETER_OUTPUT_FILENAME = "output_filename";
private static final String PARAMETER_URL_REPOSITORY = "url_repository";
private static final String PARAMETER_VERSION = "version";
private static final String PARAMETER_URL_DOWNLOAD = "url_download";
private static final String PARAMETER_CORE_VERSION_MIN = "core_version_min";
private static final String PARAMETER_CORE_VERSION_MAX = "core_version_max";
private static final String PARAMETER_AUTHOR = "author";
private static final String PARAMETER_URL_HOMEPAGE = "url_homepage";
private static final String PARAMETER_CRITICAL = "critical";
// JSP
private static final String JSP_EDIT_CATALOG = "EditCatalog.jsp";
private static final String JSP_DO_DELETE_CATALOG = "jsp/admin/plugins/updatercatalog/DoDeleteCatalog.jsp";
private static final String JSP_DO_DELETE_PLUGIN_RELEASE = "jsp/admin/plugins/updatercatalog/DoDeletePluginRelease.jsp";
private static final String JSP_DO_DELETE_PLUGIN = "jsp/admin/plugins/updatercatalog/DoDeletePlugin.jsp";
private static final String JSP_DO_DELETE_UPGRADE = "jsp/admin/plugins/updatercatalog/DoDeleteUpgrade.jsp";
private static final String JSP_MANAGE_PLUGINS_RELEASES = "ManagePluginsReleases.jsp";
private static final String JSP_MANAGE_PLUGINS = "ManagePlugins.jsp";
private static final String JSP_MODIFY_PLUGIN_RELEASE = "ModifyPluginRelease.jsp";
// Messages
private static final String MESSAGE_CATALOG_GENERATED = "updatercatalog.message.catalogGenerated";
private static final String MESSAGE_CONFIRM_DELETE_CATALOG = "updatercatalog.message.confirmDeleteCatalog";
private static final String MESSAGE_CONFIRM_DELETE_PLUGIN_RELEASE = "updatercatalog.message.confirmDeletePluginRelease";
private static final String MESSAGE_CONFIRM_DELETE_PLUGIN = "updatercatalog.message.confirmDeletePlugin";
private static final String MESSAGE_CONFIRM_DELETE_UPGRADE = "updatercatalog.message.confirmDeleteUpgrade";
/**
* Provides the manage catalog page
* @param request The HTTP request
* @return The page
*/
public String getManageCatalog( HttpServletRequest request )
{
List<Catalog> listCatalogs = CatalogHome.findAll( );
HashMap model = new HashMap( );
model.put( MARK_CATALOGS_LIST, listCatalogs );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MANAGE_CATALOG, getLocale( ), model );
return getAdminPage( template.getHtml( ) );
}
/**
* Returns The Edit page
* @param request The HTTP request
* @return The Edit page
*/
public String getEditCatalog( HttpServletRequest request )
{
String strCatalogId = request.getParameter( PARAMETER_CATALOG_ID );
int nCatalogId = Integer.parseInt( strCatalogId );
Catalog catalog = CatalogHome.findByPrimaryKey( nCatalogId );
List<CatalogPluginEntry> listEntries = CatalogHome.getPluginsEntries( nCatalogId );
List<CatalogPluginEntry> listPlugins = CatalogPluginHome.getAvailablePluginsByLocale( catalog.getLocale( ) );
listPlugins = filterAlreadyInCatalog( listEntries, listPlugins );
HashMap model = new HashMap( );
model.put( MARK_CATALOG, catalog );
model.put( MARK_PLUGINS_LIST, listEntries );
model.put( MARK_AVAILABLE_PLUGINS, listPlugins );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MODIFY_CATALOG, getLocale( ), model );
return getAdminPage( template.getHtml( ) );
}
/**
* Remove from the list all plugin already in the catalog
* @param listInCatalog The catalog's list of plugins
* @param listAll The list of all plugins
* @return The filtered list
*/
private List<CatalogPluginEntry> filterAlreadyInCatalog( List<CatalogPluginEntry> listInCatalog,
List<CatalogPluginEntry> listAll )
{
List<CatalogPluginEntry> list = new ArrayList<CatalogPluginEntry>( );
for ( CatalogPluginEntry entry : listAll )
{
if ( !isInCatalog( entry.getPluginName( ), listInCatalog ) )
{
list.add( entry );
}
}
return list;
}
/**
* Tells weither the plugin is in the catalog or not
* @param strPluginName The plugin name
* @param listInCatalog The catalog's list of plugins
* @return true if the plugin is already in the catalog, otherwise false
*/
private boolean isInCatalog( String strPluginName, List<CatalogPluginEntry> listInCatalog )
{
for ( CatalogPluginEntry entry : listInCatalog )
{
if ( entry.getPluginName( ).equals( strPluginName ) )
{
return true;
}
}
return false;
}
/**
* Add a release of a plugin in the catalog
* @param request The HTTP request
* @return The forward url
*/
public String doCatalogAddRelease( HttpServletRequest request )
{
String strCatalogId = request.getParameter( PARAMETER_CATALOG_ID );
int nCatalogId = Integer.parseInt( strCatalogId );
String[] releases = request.getParameterValues( PARAMETER_RELEASE_ID );
for ( int i = 0; i < releases.length; i++ )
{
int nReleaseId = Integer.parseInt( releases[i] );
CatalogHome.addRelease( nCatalogId, nReleaseId );
}
UrlItem url = new UrlItem( JSP_EDIT_CATALOG );
url.addParameter( PARAMETER_CATALOG_ID, strCatalogId );
return url.getUrl( );
}
/**
* Remove a plugin release from the catalog
* @param request The HTTP request
* @return The forward url
*/
public String doCatalogRemoveRelease( HttpServletRequest request )
{
String strCatalogId = request.getParameter( PARAMETER_CATALOG_ID );
int nCatalogId = Integer.parseInt( strCatalogId );
String strReleaseId = request.getParameter( PARAMETER_RELEASE_ID );
int nReleaseId = Integer.parseInt( strReleaseId );
CatalogHome.removeRelease( nCatalogId, nReleaseId );
UrlItem url = new UrlItem( JSP_EDIT_CATALOG );
url.addParameter( PARAMETER_CATALOG_ID, strCatalogId );
return url.getUrl( );
}
/**
* Generate a catalog file
* @param request The HTTP request
* @return The forward url
*/
public String doGenerateCatalog( HttpServletRequest request )
{
String strCatalogId = request.getParameter( PARAMETER_CATALOG_ID );
int nCatalogId = Integer.parseInt( strCatalogId );
CatalogGenerationService.generateCatalog( nCatalogId );
return AdminMessageService.getMessageUrl( request, MESSAGE_CATALOG_GENERATED, getHomeUrl( request ),
AdminMessage.TYPE_INFO );
}
/**
* Provides the create catalog page
* @param request The HTTP request
* @return The page
*/
public String getCreateCatalog( HttpServletRequest request )
{
HashMap model = new HashMap( );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_CREATE_CATALOG, getLocale( ), model );
return getAdminPage( template.getHtml( ) );
}
/**
* Create a new catalog
* @param request The HTTP request
* @return the forward url
*/
public String doCreateCatalog( HttpServletRequest request )
{
Catalog catalog = new Catalog( );
String strErrorUrl = getData( request, catalog );
if ( strErrorUrl != null )
{
return strErrorUrl;
}
CatalogHome.create( catalog );
return getHomeUrl( request );
}
/**
* Modify catalog's attributes
* @param request The HTTP request
* @return The forward url
*/
public String doModifyCatalog( HttpServletRequest request )
{
String strCatalogId = request.getParameter( PARAMETER_CATALOG_ID );
int nCatalogId = Integer.parseInt( strCatalogId );
Catalog catalog = CatalogHome.findByPrimaryKey( nCatalogId );
String strErrorUrl = getData( request, catalog );
if ( strErrorUrl != null )
{
return strErrorUrl;
}
CatalogHome.update( catalog );
return getHomeUrl( request );
}
/**
* Fills catalog infos from the request
* @param request The HTTP request
* @param catalog The catalog object to fill
* @return An ErrorUrl or null if no error
*/
private String getData( HttpServletRequest request, Catalog catalog )
{
String strName = request.getParameter( PARAMETER_NAME );
String strDescription = request.getParameter( PARAMETER_DESCRIPTION );
String strLocale = request.getParameter( PARAMETER_LOCALE );
String strOutputFilename = request.getParameter( PARAMETER_OUTPUT_FILENAME );
String strUrlRepository = request.getParameter( PARAMETER_URL_REPOSITORY );
if ( ( strName == null ) || ( strName.equals( "" ) ) || ( strDescription == null ) ||
( strDescription.equals( "" ) ) || ( strLocale == null ) || ( strLocale.equals( "" ) ) ||
( strOutputFilename == null ) || ( strOutputFilename.equals( "" ) ) || ( strUrlRepository == null ) ||
( strUrlRepository.equals( "" ) ) )
{
return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
}
catalog.setName( strName );
catalog.setDescription( strDescription );
catalog.setLocale( strLocale );
catalog.setOutputFilename( strOutputFilename );
catalog.setUrlRepository( strUrlRepository );
return null;
}
/**
* Confirm the catalog deletion
* @param request The HTTP request
* @return The forward url
*/
public String deleteCatalog( HttpServletRequest request )
{
String strCatalogId = request.getParameter( PARAMETER_CATALOG_ID );
UrlItem url = new UrlItem( JSP_DO_DELETE_CATALOG );
url.addParameter( PARAMETER_CATALOG_ID, strCatalogId );
return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_DELETE_CATALOG, url.getUrl( ),
AdminMessage.TYPE_CONFIRMATION );
}
/**
* Delete the catalog
* @param request The HTTP request
* @return The forward url
*/
public String doDeleteCatalog( HttpServletRequest request )
{
String strCatalogId = request.getParameter( PARAMETER_CATALOG_ID );
int nCatalogId = Integer.parseInt( strCatalogId );
CatalogHome.remove( nCatalogId );
return getHomeUrl( request );
}
/**
* Provides the manage catalog page
* @param request The HTTP request
* @return The page
*/
public String getManagePluginsReleases( HttpServletRequest request )
{
List<PluginRelease> listPlugins = PluginReleaseHome.findAll( );
Collections.sort( listPlugins );
HashMap model = new HashMap( );
model.put( MARK_PLUGINS_LIST, listPlugins );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MANAGE_RELEASES, getLocale( ), model );
return getAdminPage( template.getHtml( ) );
}
/**
* Provides the create plugin release page
* @param request The HTTP request
* @return The page
*/
public String getCreatePluginRelease( HttpServletRequest request )
{
HashMap model = new HashMap( );
String strPluginName = request.getParameter( PARAMETER_NAME );
strPluginName = ( strPluginName == null ) ? "" : strPluginName;
model.put( MARK_PLUGIN, strPluginName );
model.put( MARK_PLUGINS_LIST, CatalogPluginHome.getPlugins( ) );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_CREATE_RELEASE, getLocale( ), model );
return getAdminPage( template.getHtml( ) );
}
/**
* Create a new plugin release
* @param request The HTTP request
* @return the forward url
*/
public String doCreatePluginRelease( HttpServletRequest request )
{
PluginRelease release = new PluginRelease( );
String strErrorUrl = getPluginReleaseData( request, release );
if ( strErrorUrl != null )
{
return strErrorUrl;
}
PluginReleaseHome.create( release );
return JSP_MANAGE_PLUGINS_RELEASES;
}
/**
* Provides the modify plugin release page
* @param request The HTTP request
* @return The page
*/
public String getModifyPluginRelease( HttpServletRequest request )
{
String strReleaseId = request.getParameter( PARAMETER_RELEASE_ID );
int nReleaseId = Integer.parseInt( strReleaseId );
PluginRelease release = PluginReleaseHome.findByPrimaryKey( nReleaseId );
HashMap model = new HashMap( );
model.put( MARK_RELEASE, release );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MODIFY_RELEASE, getLocale( ), model );
return getAdminPage( template.getHtml( ) );
}
/**
* Create a new plugin release
* @param request The HTTP request
* @return the forward url
*/
public String doModifyPluginRelease( HttpServletRequest request )
{
String strReleaseId = request.getParameter( PARAMETER_RELEASE_ID );
int nReleaseId = Integer.parseInt( strReleaseId );
PluginRelease release = PluginReleaseHome.findByPrimaryKey( nReleaseId );
String strErrorUrl = getPluginReleaseData( request, release );
if ( strErrorUrl != null )
{
return strErrorUrl;
}
PluginReleaseHome.update( release );
return JSP_MANAGE_PLUGINS_RELEASES;
}
/**
* Gets Data from the request
* @param request the HTTP request
* @param release The release object to fill
* @return ErrorUrl or null if no error
*/
private String getPluginReleaseData( HttpServletRequest request, PluginRelease release )
{
String strName = request.getParameter( PARAMETER_NAME );
String strVersion = request.getParameter( PARAMETER_VERSION );
String strUrlDownload = request.getParameter( PARAMETER_URL_DOWNLOAD );
String strCoreVersionMin = request.getParameter( PARAMETER_CORE_VERSION_MIN );
String strCoreVersionMax = request.getParameter( PARAMETER_CORE_VERSION_MAX );
if ( ( strName == null ) || ( strName.equals( "" ) ) || ( strVersion == null ) || ( strVersion.equals( "" ) ) ||
( strUrlDownload == null ) || ( strUrlDownload.equals( "" ) ) || ( strCoreVersionMin == null ) ||
( strCoreVersionMin.equals( "" ) ) )
{
return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
}
release.setPluginName( strName );
release.setPluginVersion( strVersion );
release.setUrlDownload( strUrlDownload );
release.setCoreVersionMin( strCoreVersionMin );
release.setCoreVersionMax( strCoreVersionMax );
return null;
}
/**
* Confirm the release deletion
* @param request The HTTP request
* @return The forward url
*/
public String deletePluginRelease( HttpServletRequest request )
{
String strReleaseId = request.getParameter( PARAMETER_RELEASE_ID );
UrlItem url = new UrlItem( JSP_DO_DELETE_PLUGIN_RELEASE );
url.addParameter( PARAMETER_RELEASE_ID, strReleaseId );
return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_DELETE_PLUGIN_RELEASE, url.getUrl( ),
AdminMessage.TYPE_CONFIRMATION );
}
/**
* Delete the plugin release
* @param request The HTTP request
* @return The forward url
*/
public String doDeletePluginRelease( HttpServletRequest request )
{
String strReleaseId = request.getParameter( PARAMETER_RELEASE_ID );
int nReleaseId = Integer.parseInt( strReleaseId );
PluginReleaseHome.remove( nReleaseId );
return JSP_MANAGE_PLUGINS_RELEASES;
}
/**
* Provides the manage plugins page
* @param request The HTTP request
* @return The page
*/
public String getManagePlugins( HttpServletRequest request )
{
List<CatalogPlugin> listPlugins = CatalogPluginHome.findAll( );
Collections.sort( listPlugins );
HashMap model = new HashMap( );
model.put( MARK_PLUGINS_LIST, listPlugins );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MANAGE_PLUGINS, getLocale( ), model );
return getAdminPage( template.getHtml( ) );
}
/**
* Provides the create plugin page
* @param request The HTTP request
* @return The page
*/
public String getCreatePlugin( HttpServletRequest request )
{
HashMap model = new HashMap( );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_CREATE_PLUGIN, getLocale( ), model );
return getAdminPage( template.getHtml( ) );
}
/**
* Create a new plugin
* @param request The HTTP request
* @return the forward url
*/
public String doCreatePlugin( HttpServletRequest request )
{
CatalogPlugin plugin = new CatalogPlugin( );
String strErrorUrl = getPluginData( request, plugin );
if ( strErrorUrl != null )
{
return strErrorUrl;
}
CatalogPluginHome.create( plugin );
return JSP_MANAGE_PLUGINS;
}
/**
* Provides the modify plugin page
* @param request The HTTP request
* @return The page
*/
public String getModifyPlugin( HttpServletRequest request )
{
String strPluginName = request.getParameter( PARAMETER_NAME );
String strLocale = request.getParameter( PARAMETER_LOCALE );
CatalogPlugin plugin = CatalogPluginHome.findByPrimaryKey( strPluginName, strLocale );
HashMap model = new HashMap( );
model.put( MARK_PLUGIN, plugin );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MODIFY_PLUGIN, getLocale( ), model );
return getAdminPage( template.getHtml( ) );
}
/**
* Create a new plugin
* @param request The HTTP request
* @return the forward url
*/
public String doModifyPlugin( HttpServletRequest request )
{
String strPluginName = request.getParameter( PARAMETER_NAME );
String strLocale = request.getParameter( PARAMETER_LOCALE );
CatalogPlugin plugin = CatalogPluginHome.findByPrimaryKey( strPluginName, strLocale );
String strErrorUrl = getPluginData( request, plugin );
if ( strErrorUrl != null )
{
return strErrorUrl;
}
CatalogPluginHome.update( plugin );
return JSP_MANAGE_PLUGINS;
}
/** Gets Data from the request
* @param request the HTTP request
* @param plugin The plugin object to fill
* @return ErrorUrl or null if no error
*/
private String getPluginData( HttpServletRequest request, CatalogPlugin plugin )
{
String strName = request.getParameter( PARAMETER_NAME );
String strLocale = request.getParameter( PARAMETER_LOCALE );
String strDescription = request.getParameter( PARAMETER_DESCRIPTION );
String strAuthor = request.getParameter( PARAMETER_AUTHOR );
String strUrlHomepage = request.getParameter( PARAMETER_URL_HOMEPAGE );
if ( ( strName == null ) || ( strName.equals( "" ) ) || ( strLocale == null ) || ( strLocale.equals( "" ) ) ||
( strDescription == null ) || ( strDescription.equals( "" ) ) || ( strAuthor == null ) ||
( strAuthor.equals( "" ) ) || ( strUrlHomepage == null ) || ( strUrlHomepage.equals( "" ) ) )
{
return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
}
plugin.setPluginName( strName );
plugin.setPluginLocale( strLocale );
plugin.setPluginDescription( strDescription );
plugin.setPluginAuthor( strAuthor );
plugin.setUrlHomepage( strUrlHomepage );
return null;
}
/**
* Confirm the plugin deletion
* @param request The HTTP request
* @return The forward url
*/
public String deletePlugin( HttpServletRequest request )
{
String strName = request.getParameter( PARAMETER_NAME );
String strLocale = request.getParameter( PARAMETER_LOCALE );
UrlItem url = new UrlItem( JSP_DO_DELETE_PLUGIN );
url.addParameter( PARAMETER_NAME, strName );
url.addParameter( PARAMETER_LOCALE, strLocale );
return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_DELETE_PLUGIN, url.getUrl( ),
AdminMessage.TYPE_CONFIRMATION );
}
/**
* Delete the plugin
* @param request The HTTP request
* @return The forward url
*/
public String doDeletePlugin( HttpServletRequest request )
{
String strName = request.getParameter( PARAMETER_NAME );
String strLocale = request.getParameter( PARAMETER_LOCALE );
CatalogPluginHome.remove( strName, strLocale );
return JSP_MANAGE_PLUGINS;
}
/**
* Provides the create upgrade page
* @param request The HTTP request
* @return The page
*/
public String getCreateUpgrade( HttpServletRequest request )
{
String strReleaseId = request.getParameter( PARAMETER_RELEASE_ID );
HashMap model = new HashMap( );
model.put( MARK_RELEASE_ID, strReleaseId );
HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_CREATE_UPGRADE, getLocale( ), model );
return getAdminPage( template.getHtml( ) );
}
/**
* Create a new upgrade
* @param request The HTTP request
* @return the forward url
*/
public String doCreateUpgrade( HttpServletRequest request )
{
String strReleaseId = request.getParameter( PARAMETER_RELEASE_ID );
int nReleaseId = Integer.parseInt( strReleaseId );
ReleaseUpgrade upgrade = new ReleaseUpgrade( );
String strErrorUrl = getUpgradeData( request, upgrade );
if ( strErrorUrl != null )
{
return strErrorUrl;
}
PluginReleaseHome.addUpgrade( nReleaseId, upgrade );
UrlItem url = new UrlItem( JSP_MODIFY_PLUGIN_RELEASE );
url.addParameter( PARAMETER_RELEASE_ID, strReleaseId );
return url.getUrl( );
}
/** Gets Data from the request
* @param request the HTTP request
* @param upgrade The upgrade object to fill
* @return ErrorUrl or null if no error
*/
private String getUpgradeData( HttpServletRequest request, ReleaseUpgrade upgrade )
{
String strVersion = request.getParameter( PARAMETER_VERSION );
String strCritical = request.getParameter( PARAMETER_CRITICAL );
int nCritical = Integer.parseInt( strCritical );
String strUrlDownload = request.getParameter( PARAMETER_URL_DOWNLOAD );
if ( ( strVersion == null ) || ( strVersion.equals( "" ) ) || ( strUrlDownload == null ) ||
( strUrlDownload.equals( "" ) ) )
{
return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
}
upgrade.setVersionFrom( strVersion );
upgrade.setCritical( nCritical );
upgrade.setUrlDownload( strUrlDownload );
return null;
}
/**
* Confirm the upgrade deletion
* @param request The HTTP request
* @return The forward url
*/
public String deleteUpgrade( HttpServletRequest request )
{
String strReleaseId = request.getParameter( PARAMETER_RELEASE_ID );
String strVersionFrom = request.getParameter( PARAMETER_VERSION );
UrlItem url = new UrlItem( JSP_DO_DELETE_UPGRADE );
url.addParameter( PARAMETER_RELEASE_ID, strReleaseId );
url.addParameter( PARAMETER_VERSION, strVersionFrom );
return AdminMessageService.getMessageUrl( request, MESSAGE_CONFIRM_DELETE_UPGRADE, url.getUrl( ),
AdminMessage.TYPE_CONFIRMATION );
}
/**
* Delete the upgrade release
* @param request The HTTP request
* @return The forward url
*/
public String doDeleteUpgrade( HttpServletRequest request )
{
String strReleaseId = request.getParameter( PARAMETER_RELEASE_ID );
int nReleaseId = Integer.parseInt( strReleaseId );
String strVersionFrom = request.getParameter( PARAMETER_VERSION );
PluginReleaseHome.deleteUpgrade( nReleaseId, strVersionFrom );
UrlItem url = new UrlItem( JSP_MODIFY_PLUGIN_RELEASE );
url.addParameter( PARAMETER_RELEASE_ID, strReleaseId );
return url.getUrl( );
}
}