Commit a71409d3 authored by Gaston Dombiak's avatar Gaston Dombiak Committed by gato

Added RSS feed. JM-1128

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@9199 b35dd754-fafc-0310-a699-88a17e54d16e
parent 995b1446
......@@ -226,6 +226,13 @@
## Added key: 'plugin.admin.uploaded_failure'
## Added key: 'plugin.admin.upload_plugin'
## Added key: 'plugin.admin.upload_plugin.info'
## Added key: 'index.cs_blog'
## Added key: 'index.cs_blog.unavilable'
## Added key: 'ports.edit'
## Updated key: 'sidebar.server-settings'
## Updated key: 'sidebar.server-settings.descr'
## Updated key: 'index.title'
## Updated key: 'index.title.info'
......@@ -239,8 +246,8 @@ title = Openfire
tab.server=Server
tab.server.descr=Click to manage server settings
sidebar.server-manager=Server Manager
sidebar.server-settings=Server Settings
sidebar.server-settings.descr=Click to manage system settings
sidebar.server-settings=Server Information
sidebar.server-settings.descr=Click to view system information
sidebar.system-props=System Properties
sidebar.system-props.descr=Click to manage server properties
sidebar.server-locale=Language and Time
......@@ -738,9 +745,8 @@ header.admin=Admin
# Index Page
index.title=Server Settings
index.title.info=Below are properties for this server. Click the "Edit Properties" button below to \
change some of the server settings. Some settings can not be changed.
index.title=Server Information
index.title.info=Below you will find server information, ports being used and latest news about Openfire.
index.properties=Server Properties
index.uptime=Server Uptime:
index.version=Version:
......@@ -761,6 +767,8 @@ index.memory=Java Memory
index.update.alert=Update information
index.update.info=Server version {0} is now available. Click {1}here{2} to download or read the \
{3}change log{4} for more information.
index.cs_blog=Ignite Realtime News
index.cs_blog.unavilable=The Ignite Realtime feed is currently unavailable.
# Locale Page
......@@ -2350,6 +2358,7 @@ ports.media_proxy.desc=The port used for the proxy service that allows Jingle co
the XMPP network.
ports.stun=STUN Service
ports.stun.desc=The port used for the service that ensures connectivity between entities when behind a NAT.
ports.edit=Edit Ports
# Media Proxy
......
......@@ -2123,3 +2123,77 @@ stun.settings.secondaryport = Puerto Secundario
stun.settings.enabled = Habilitado
stun.settings.change = Cambiar
index.certificate-warning=Se ha encontrado un certificado RSA que no es v\u00e1lido para el dominio del servidor.
user.roster.nickname=Apodo
user.roster.none_found=No se han encontrado contactos.
user.roster.shared_groups=Grupo compartido
user.roster.sorted=Ordenado por JID
user.roster.subscription=Suscripc\u00f3n
user.roster.title=Lista de Contactos
user.roster.total_items=Total de Contactos
user.roster.jid=JID
user.roster.items_per_page=Contactos por p\u00e1gina
user.roster.item.settings=Configuraci\u00f3n del Contacto
user.roster.info=A continuaci\u00f3n puede ver la lista de contactos del usuario {0}. Haga clic en grupos compartidos en la columna Grupos para ver el detalle del grupo. Recuerde que no contactos pertenecientes a grupos compartidos no puede ser editados.
user.roster.groups=Grupos
user.roster.edited=Contacto editado exitosamente.
user.roster.edit.title=Editar Contacto
user.roster.edit.info=Complete el siguiente formulatio para editar el contacto del usuario {0}.
user.roster.edit=Editar
user.roster.deleted=Contacto borrado exitosamente.
user.roster.delete.title=Borrar Contacto
user.roster.delete.info=\u00bfDesea borrar el contacto {0} de la lista de contacto de {1}?
user.roster.delete.delete=Borrar Contacto
user.roster.click_view=Haga clic para ver...
user.roster.cant_delete=Este contacto pertenece a un grupo compartido por lo que no puede ser borrado desde aqui.
user.roster.added=Contacto agregado exitosamente.
user.roster.add.uneditable_group=Se ha intentado borrar un contacto de un grupo no editable (probablemente un grupo compartido)
user.roster.add.title=Agregar Contacto
user.roster.add.success=Contacto agregado exitosamente.
user.roster.add.required=Campos obligatorios
user.roster.add.new_item=Agregar Nuevo Contacto
user.roster.add.item_exists=Contacto con el mismo JID ya existe.
user.roster.add.info=Complete el siguiente formulario para agregar nuevos contactos al usuario {0}.
user.roster.add.illegal_jid=Se ha ingresado un JID con formato incorrecto.
user.roster.add.error_adding_item=Error al agregar nuevo contacto. Verifique los logs del servidor para m\u00e1s detalle
user.roster.add.add_another=Agregar & Agregar Nuevo
user.roster.add.add=Agregar Contacto
user.roster.add=Agregar Contacto
stun.settings.localenabled=Servidor Local Habilitado
stun.external.title=Servidores STUN Externos
stun.external.server=Servidor
stun.external.port=Puerto
stun.external.error=Servidor o puerto incorrecto.
ssl.import.certificate.boxtitle=Importar Clave Privada y Certificado
ssl.import.certificate.certificate=Contenido del Archivo del Certificado:
ssl.import.certificate.error.certificate=Especifique el contenido del certificado a importar.
ssl.import.certificate.error.import=Un error ha ocurrido al intentar importar una clave privada o certificado firmado.
ssl.import.certificate.error.private-key=Ingrese el contenido de la clave privada.
ssl.import.certificate.private-key=Contenido del archivo conteniendo la clave privada:
ssl.import.certificate.title=Importar Certificado Firmado
ssl.import.certificate.info=Complete el siguiente formulario para importar una clave privada y el certificado que \
fue provisto por una CA. Actualmente claves privadas que utilizan el algoritmo AES no \
pueden ser importadas. Para importarlas primero debera desencriptarlas. Claves encriptadas \
con el algoritmo DES pueden ser importadas. Para desencriptar un archivo con clave privadas \
ejecute el siguiente comando: "openssl rsa -in ssl.key -out decryptedssl.key".
sidebar.user-roster=Lista de Contactos
sidebar.user-roster.descr=Haga clic para ver la lista de contactos de usuarios
sidebar.stun=Seteos de STUN
sidebar.stun.descr=Haga clic para ver seteos de STUN.
sidebar.sidebar-media-services=Servicios de Multimedios
sidebar.media-proxy=Proxy de Multimedios
sidebar.media-proxy.descr=Haga clic para ver la configuraci\u00f3n del proxy de multimedios.
ports.edit=Editar Puertos
plugin.admin.upload_plugin=Subir Plugin
plugin.admin.upload_plugin.info=Complete el siguiente formulario para subir archivos de plugins (.jar).
plugin.admin.uploaded_failure=No se ha podido subir el plugin. Ver log de errores del servidor.
plugin.admin.uploaded_success=Plugin subido exitosamente. Espere unos instantes para que el plugin \
aparezca en la lista de plugins instalados.
muc.room.occupants.affiliation=Afiliaci\u00f3n
muc.room.occupants.detail.info=Personas en el cuarto son listadas en la siguiente tabla:
muc.room.occupants.info=Resumen del cuarto es mostrado en la siguiente tabla:
muc.room.occupants.nickname=Apodo
muc.room.occupants.role=Rol
muc.room.occupants.title=Ocupantes en el cuarto
muc.room.occupants.user=Usuario
index.cs_blog=Novedades de Ignite Realtime
index.cs_blog.unavilable=No se ha podido leer novedades de Ignite Realtime
\ No newline at end of file
......@@ -25,13 +25,18 @@
<%@ page import="org.jivesoftware.openfire.stun.STUNService" %>
<%@ page import="org.jivesoftware.openfire.update.Update" %>
<%@ page import="org.jivesoftware.openfire.update.UpdateManager" %>
<%@ page import="org.jivesoftware.util.CertificateManager" %>
<%@ page import="org.jivesoftware.util.JiveGlobals" %>
<%@ page import="org.jivesoftware.util.LocaleUtils" %>
<%@ page import="org.jivesoftware.util.StringUtils" %>
<%@ page import="java.net.InetSocketAddress" %>
<%@ page import="java.net.SocketAddress" %>
<%@ page import="java.text.DecimalFormat" %>
<%@ page import="java.net.URL" %>
<%@ page import="java.util.List" %>
<%@ page import="org.jivesoftware.util.*" %>
<%@ page import="com.sun.syndication.fetcher.FeedFetcher" %>
<%@ page import="com.sun.syndication.fetcher.impl.FeedFetcherCache" %>
<%@ page import="com.sun.syndication.fetcher.impl.HashMapFeedInfoCache" %>
<%@ page import="com.sun.syndication.io.FeedException" %>
<%@ page import="com.sun.syndication.feed.synd.SyndEntry" %>
<%@ page import="com.sun.syndication.feed.synd.SyndFeed" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
......@@ -51,12 +56,18 @@
<jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager" />
<% webManager.init(request, response, session, application, out); %>
<%! long lastRRSFecth = 0;
SyndFeed lastBlogFeed = null;
SyndFeed lastReleaseFeed = null;
String blogFeedRSS = "http://www.igniterealtime.org/community/blogs/ignite/feeds/posts";
String releaseFeedRSS = "http://www.igniterealtime.org/community/community/feeds/messages?communityID=2017";
%>
<% // Get parameters //
boolean serverOn = (webManager.getXMPPServer() != null);
String interfaceName = JiveGlobals.getXMLProperty("network.interface");
ConnectionManagerImpl connectionManager = ((ConnectionManagerImpl) XMPPServer.getInstance().getConnectionManager());
SocketAcceptor socketAcceptor = connectionManager.getSocketAcceptor();
SocketAcceptor sslSocketAcceptor = connectionManager.getSSLSocketAcceptor();
......@@ -119,28 +130,64 @@
<%
}
%>
<p>
<fmt:message key="index.title.info" />
</p>
<style type="text/css">
.bar TD {
padding : 0px;
}
#jive-latest-activity .jive-bottom-line {
padding-top: 10px;
border-bottom : 1px #e8a400 solid;
}
#jive-latest-activity {
border: 1px #E8A400 solid;
background-color: #FFF4D8;
font-family: Lucida Grande, Arial, Helvetica, sans-serif;
font-size: 9pt;
padding: 0 10px 10px 10px;
margin-bottom: 10px;
min-height: 280px;
-moz-border-radius: 4px;
width: 350px;
}
#jive-latest-activity h4 {
font-size: 13pt;
margin: 15px 0 4px 0;
}
#jive-latest-activity h5 {
font-size: 9pt;
font-weight: normal;
margin: 15px 0 5px 5px;
padding: 0;
}
#jive-latest-activity .jive-blog-date {
font-size: 8pt;
white-space: nowrap;
}
#jive-latest-activity .jive-feed-icon {
float: right;
padding-top: 10px;
}
</style>
<div class="jive-table">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<thead>
<p>
<fmt:message key="index.title.info" />
</p>
<table border="0" width="100%">
<td valign="top">
<!-- <div class="jive-table"> -->
<table cellpadding="2" cellspacing="2" border="0" width="100%">
<thead>
<tr>
<th colspan="2"><fmt:message key="index.properties" /></th>
<th align="left" colspan="3"><fmt:message key="index.properties" /></th>
</tr>
</thead>
<tbody>
</thead>
<tbody>
<% if (serverOn) { %>
<tr>
<td width="5%">&nbsp;</td>
<td class="c1"><fmt:message key="index.uptime" /></td>
<td>
<%
......@@ -161,6 +208,7 @@
<% } %>
<tr>
<td>&nbsp;</td>
<td class="c1"><fmt:message key="index.version" /></td>
<td class="c2">
<%= AdminConsole.getAppName() %>
......@@ -168,12 +216,14 @@
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="c1"><fmt:message key="index.home" /></td>
<td class="c2">
<%= JiveGlobals.getHomeDirectory() %>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="c1">
<fmt:message key="index.server_name" />
</td>
......@@ -184,14 +234,16 @@
${webManager.serverInfo.name}
</td>
</tr>
</tbody>
<thead>
<tr><td>&nbsp;</td></tr>
</tbody>
<thead>
<tr>
<th colspan="2"><fmt:message key="index.environment" /></th>
<th align="left" colspan="3"><fmt:message key="index.environment" /></th>
</tr>
</thead>
<tbody>
</thead>
<tbody>
<tr>
<td>&nbsp;</td>
<td class="c1"><fmt:message key="index.jvm" /></td>
<td class="c2">
<%
......@@ -207,18 +259,21 @@
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="c1"><fmt:message key="index.app" /></td>
<td class="c2">
<%= application.getServerInfo() %>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="c1"><fmt:message key="index.os" /></td>
<td class="c2">
<%= System.getProperty("os.name") %> / <%= System.getProperty("os.arch") %>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="c1"><fmt:message key="index.local" /></td>
<td class="c2">
<%= JiveGlobals.getLocale() %> / <%= JiveGlobals.getTimeZone().getDisplayName(JiveGlobals.getLocale()) %>
......@@ -226,6 +281,7 @@
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><fmt:message key="index.memory" /></td>
<td>
<% // The java runtime
......@@ -282,9 +338,64 @@
</table>
</td>
</tr>
</tbody>
</tbody>
</table>
<!-- </div> -->
</td>
<td valign="top">
<div id="jive-latest-activity">
<a href="<%= blogFeedRSS %>" class="jive-feed-icon"><img src="images/feed-icon-16x16.gif" alt="" style="border:0;" /></a>
<h4><fmt:message key="index.cs_blog" /></h4>
<% long nowTime = System.currentTimeMillis();
if (lastBlogFeed == null || lastReleaseFeed == null || nowTime - lastRRSFecth > 21600000) {
FeedFetcherCache feedInfoCache = HashMapFeedInfoCache.getInstance();
FeedFetcher feedFetcher = new HttpClientWithTimeoutFeedFetcher(feedInfoCache);
try {
lastBlogFeed = feedFetcher.retrieveFeed(new URL(blogFeedRSS));
lastReleaseFeed = feedFetcher.retrieveFeed(new URL(releaseFeedRSS));
lastRRSFecth = nowTime;
}
catch (Exception ioe) {
// ignore
}
}
%><div class="jive-bottom-line"></div><%
if (lastBlogFeed != null && !lastBlogFeed.getEntries().isEmpty()) {
List entries = lastBlogFeed.getEntries();
for (int i = 0; i < entries.size() && i < 3; i++) {
SyndEntry entry = (SyndEntry) entries.get(i); %>
<h5><a href="<%= entry.getLink() %>"><%= entry.getTitle()%></a>,
<span class="jive-blog-date"><%= JiveGlobals.formatDateTime(entry.getPublishedDate())%></span></h5>
<% }
} else { %>
<fmt:message key="index.cs_blog.unavilable" />
<% }
%><div class="jive-bottom-line"></div><%
if (lastReleaseFeed != null && !lastReleaseFeed.getEntries().isEmpty()) {
List entries = lastReleaseFeed.getEntries();
for (int i = 0; i < entries.size() && i < 3; i++) {
SyndEntry entry = (SyndEntry) entries.get(i); %>
<h5><a href="<%= entry.getLink() %>"><%= entry.getTitle()%></a>,
<span class="jive-blog-date"><%= JiveGlobals.formatDateTime(entry.getPublishedDate())%></span></h5>
<% }
} else { %>
<fmt:message key="index.cs_blog.unavilable" />
<% }
%>
</div>
</td>
</table>
</div>
<br>
......@@ -441,7 +552,6 @@
<td><img src="images/lock.gif" width="16" height="16" border="0"/></td>
<td><fmt:message key="ports.http_bind" /></td>
<td><fmt:message key="ports.http_bind.desc_secured" /></td>
<td></td>
</tr>
<% } %>
<% } %>
......@@ -473,7 +583,7 @@
<br>
<form action="server-props.jsp">
<input type="submit" value="<fmt:message key="global.edit_properties" />">
<input type="submit" value="<fmt:message key="ports.edit" />">
</form>
</body>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment