branding/img/chat.png |binary
branding/templates/c.pxt | 7 +++
java/code/src/com/redhat/rhn/frontend/nav/DialognavRenderer.java | 9 +++--
java/code/src/com/redhat/rhn/frontend/nav/NavDigester.java | 3 +
java/code/src/com/redhat/rhn/frontend/nav/NavNode.java | 18
+++++++++-
java/code/src/com/redhat/rhn/frontend/nav/SidenavRenderer.java | 7 ++-
java/code/src/com/redhat/rhn/frontend/nav/TopnavRenderer.java | 9 +++--
java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml | 7 +++
java/code/webapp/WEB-INF/decorators/layout_c.jsp | 2 +
java/code/webapp/WEB-INF/includes/advertisements.jsp | 8 ++++
java/code/webapp/WEB-INF/includes/advertisements/chat-advertisement.jsp | 4 ++
java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml | 2 +
java/code/webapp/WEB-INF/nav/sitenav.xml | 2 +
web/html/nav/sitenav-authenticated.xml | 2 +
web/html/nav/sitenav.xml | 2 +
web/modules/sniglets/Sniglets/Navi/Node.pm | 14
+++++++
web/modules/sniglets/Sniglets/Navi/Parser.pm | 2 -
web/modules/sniglets/Sniglets/Navi/Style.pm | 4 +-
18 files changed, 90 insertions(+), 12 deletions(-)
New commits:
commit f59b567718c02cbac12dd0f8ab0d8251009dfddf
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Wed Aug 19 20:09:23 2009 -0400
add the Chat graphic as an advertisement to the layouts.
diff --git a/branding/templates/c.pxt b/branding/templates/c.pxt
index 1e254b6..c587ec0 100644
--- a/branding/templates/c.pxt
+++ b/branding/templates/c.pxt
@@ -34,6 +34,13 @@
</grail-canvas>
</rhn-browser-css-compliance>
+ <rhn-require acl="global_config(chat_enabled)">
+ <br/>
+ <a href="http://webchat.freenode.net?channels=#spacewalk"
target="_blank">
+ <img src="/img/chat.png" alt=""/>
+ </a>
+ </rhn-require>
+
</td>
<td class="page-content" width="100%">
<pxt-include-late file="/network/components/message_queues/site.pxi" />
diff --git a/java/code/webapp/WEB-INF/decorators/layout_c.jsp
b/java/code/webapp/WEB-INF/decorators/layout_c.jsp
index e4f8ad2..1187aa3 100644
--- a/java/code/webapp/WEB-INF/decorators/layout_c.jsp
+++ b/java/code/webapp/WEB-INF/decorators/layout_c.jsp
@@ -31,6 +31,8 @@
<jsp:include page="/WEB-INF/includes/legends.jsp" />
+ <jsp:include page="/WEB-INF/includes/advertisements.jsp"
/>
+
</td>
<td class="page-content">
<html:errors/>
diff --git a/java/code/webapp/WEB-INF/includes/advertisements.jsp
b/java/code/webapp/WEB-INF/includes/advertisements.jsp
new file mode 100644
index 0000000..63c337c
--- /dev/null
+++ b/java/code/webapp/WEB-INF/includes/advertisements.jsp
@@ -0,0 +1,8 @@
+<%@ taglib
uri="http://java.sun.com/jsp/jstl/core" prefix="c"
%>
+<%@ taglib
uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+
+<!-- TODO make this more generic -->
+<rhn:require acl="is(web.chat_enabled);">
+ <jsp:include
page="/WEB-INF/includes/advertisements/chat-advertisement.jsp"/>
+</rhn:require>
+
diff --git a/java/code/webapp/WEB-INF/includes/advertisements/chat-advertisement.jsp
b/java/code/webapp/WEB-INF/includes/advertisements/chat-advertisement.jsp
new file mode 100644
index 0000000..7f0b6a5
--- /dev/null
+++ b/java/code/webapp/WEB-INF/includes/advertisements/chat-advertisement.jsp
@@ -0,0 +1,4 @@
+<br/>
+<a href="http://webchat.freenode.net?channels=#spacewalk"
target="_blank">
+ <img src="/img/chat.png" alt=""/>
+</a>
commit a59589b198b7c0a7d921947b80c245f0b21790af
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Tue Aug 18 22:23:57 2009 -0400
allow users to chat with spacewalk members on IRC via the web.
diff --git a/branding/img/chat.png b/branding/img/chat.png
new file mode 100644
index 0000000..969b0d3
Binary files /dev/null and b/branding/img/chat.png differ
diff --git a/java/code/src/com/redhat/rhn/frontend/nav/DialognavRenderer.java
b/java/code/src/com/redhat/rhn/frontend/nav/DialognavRenderer.java
index cd61ec8..95cccd8 100644
--- a/java/code/src/com/redhat/rhn/frontend/nav/DialognavRenderer.java
+++ b/java/code/src/com/redhat/rhn/frontend/nav/DialognavRenderer.java
@@ -141,7 +141,7 @@ public class DialognavRenderer extends Renderable {
href += formVars.toString();
}
- li.addBody(aHref(href, node.getName(), cssLinkClass));
+ li.addBody(aHref(href, node.getName(), cssLinkClass, node.getTarget()));
sb.append(li.render());
sb.append("\n");
}
@@ -179,11 +179,16 @@ public class DialognavRenderer extends Renderable {
return false;
}
- private static String aHref(String url, String text, String style) {
+ private static String aHref(String url, String text, String style, String target) {
HtmlTag a = new HtmlTag("a");
if (style != null && !style.equals("")) {
a.setAttribute("class", style);
}
+
+ if (target != null && !target.equals("")) {
+ a.setAttribute("target", target);
+ }
+
a.setAttribute("href", url);
a.addBody(text);
return a.render();
diff --git a/java/code/src/com/redhat/rhn/frontend/nav/NavDigester.java
b/java/code/src/com/redhat/rhn/frontend/nav/NavDigester.java
index 9081822..26c344f 100644
--- a/java/code/src/com/redhat/rhn/frontend/nav/NavDigester.java
+++ b/java/code/src/com/redhat/rhn/frontend/nav/NavDigester.java
@@ -55,6 +55,9 @@ public class NavDigester {
digester.addSetProperties("*/rhn-tab",
"inactive-image",
"inactiveImage");
+ digester.addSetProperties("*/rhn-tab",
+ "target",
+ "target");
digester.addCallMethod("*/rhn-tab",
"addPrimaryURL",
diff --git a/java/code/src/com/redhat/rhn/frontend/nav/NavNode.java
b/java/code/src/com/redhat/rhn/frontend/nav/NavNode.java
index 70595f2..74c85ca 100644
--- a/java/code/src/com/redhat/rhn/frontend/nav/NavNode.java
+++ b/java/code/src/com/redhat/rhn/frontend/nav/NavNode.java
@@ -34,6 +34,7 @@ public class NavNode {
private String label;
private String name;
private String acl;
+ private String target;
private boolean dominant;
private boolean invisible;
private boolean overrideSidenav;
@@ -374,6 +375,21 @@ public class NavNode {
public boolean isLast() {
return last;
}
-}
+ /**
+ * Sets the target of the url.
+ * @param tgt link target
+ */
+ public void setTarget(String tgt) {
+ target = tgt;
+ }
+
+ /**
+ * returns the target for the url
+ * @return the target for the url
+ */
+ public String getTarget() {
+ return target;
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/nav/SidenavRenderer.java
b/java/code/src/com/redhat/rhn/frontend/nav/SidenavRenderer.java
index 1d1844f..16d8b6e 100644
--- a/java/code/src/com/redhat/rhn/frontend/nav/SidenavRenderer.java
+++ b/java/code/src/com/redhat/rhn/frontend/nav/SidenavRenderer.java
@@ -100,7 +100,7 @@ public class SidenavRenderer extends Renderable {
li.setAttribute("class", cssClass);
}
- li.addBody(aHref(node.getPrimaryURL(), node.getName()));
+ li.addBody(aHref(node.getPrimaryURL(), node.getName(), node.getTarget()));
sb.append(li.render());
sb.append("\n");
}
@@ -126,9 +126,12 @@ public class SidenavRenderer extends Renderable {
return true;
}
- private static String aHref(String url, String text) {
+ private static String aHref(String url, String text, String target) {
HtmlTag a = new HtmlTag("a");
a.setAttribute("href", url);
+ if (target != null && !target.equals("")) {
+ a.setAttribute("target", target);
+ }
a.addBody(text);
return a.render();
}
diff --git a/java/code/src/com/redhat/rhn/frontend/nav/TopnavRenderer.java
b/java/code/src/com/redhat/rhn/frontend/nav/TopnavRenderer.java
index 17e604d..a96173a 100644
--- a/java/code/src/com/redhat/rhn/frontend/nav/TopnavRenderer.java
+++ b/java/code/src/com/redhat/rhn/frontend/nav/TopnavRenderer.java
@@ -81,7 +81,7 @@ public class TopnavRenderer extends Renderable {
// no class
}
liTag.addBody(getLink(node.getPrimaryURL(),
- node.getName(), classStr));
+ node.getName(), classStr, node.getTarget()));
sb.append(liTag.render());
sb.append("\n");
}
@@ -107,7 +107,7 @@ public class TopnavRenderer extends Renderable {
classStr = "mainLastLink";
}
liTag.addBody(getLink(node.getPrimaryURL(),
- node.getName(), classStr));
+ node.getName(), classStr, node.getTarget()));
sb.append(liTag.render());
sb.append("\n");
}
@@ -130,12 +130,15 @@ public class TopnavRenderer extends Renderable {
return true;
}
- private String getLink(String url, String name, String classStr) {
+ private String getLink(String url, String name, String classStr, String target) {
HtmlTag a = new HtmlTag("a");
a.setAttribute("href", url);
if (classStr != null && !"".equals(classStr)) {
a.setAttribute("class", classStr);
}
+ if (target != null && !"".equals(target)) {
+ a.setAttribute("target", target);
+ }
a.addBody(name);
return a.render();
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
b/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
index 78e7dc8..2c06667 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
@@ -1081,6 +1081,13 @@
http://www.oasis-open.org/committees/xliff/documents/xliff-core-1.1.xsd&q...
</context-group>
</trans-unit>
+ <trans-unit id="Chat">
+ <source>Chat</source>
+ <context-group name="ctx">
+ <context
context-type="sourcefile">/rhn/help/about.pxt</context>
+ </context-group>
+ </trans-unit>
+
<trans-unit id="Base Channels">
<source>Base Channels</source>
<context-group name="ctx">
diff --git a/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
b/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
index c40e4a6..f7608ac 100644
--- a/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
+++ b/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
@@ -290,6 +290,8 @@
<rhn-tab name="Sample Scripts"
url="/rhn/apidoc/scripts.jsp" />
</rhn-tab>
<rhn-tab name="Search" url="/rhn/help/Search.do" />
+ <rhn-tab name="Chat"
url="http://webchat.freenode.net/?channels=#spacewalk"
+ target="_blank" />
</rhn-tab>
</rhn-navi-tree>
diff --git a/java/code/webapp/WEB-INF/nav/sitenav.xml
b/java/code/webapp/WEB-INF/nav/sitenav.xml
index a589188..a7ae39f 100644
--- a/java/code/webapp/WEB-INF/nav/sitenav.xml
+++ b/java/code/webapp/WEB-INF/nav/sitenav.xml
@@ -35,6 +35,8 @@
<rhn-tab name="Sample Scripts"
url="/rhn/apidoc/scripts.jsp" />
</rhn-tab>
<rhn-tab name="Search" url="/rhn/help/Search.do" />
+ <rhn-tab name="Chat"
+ url="http://webchat.freenode.net?channels=#spacewalk"
target="_blank" />
</rhn-tab>
diff --git a/web/html/nav/sitenav-authenticated.xml
b/web/html/nav/sitenav-authenticated.xml
index 273fdea..d1ba70e 100644
--- a/web/html/nav/sitenav-authenticated.xml
+++ b/web/html/nav/sitenav-authenticated.xml
@@ -250,6 +250,8 @@
</rhn-tab>
<rhn-tab name="API" url="/rhn/apidoc/index.jsp" />
<rhn-tab name="Search" url="/rhn/help/Search.do" />
+ <rhn-tab name="Chat"
url="http://webchat.freenode.net/?channels=#spacewalk"
+ target="_blank" />
</rhn-tab>
</rhn-navi-tree>
diff --git a/web/html/nav/sitenav.xml b/web/html/nav/sitenav.xml
index 51426f0..6d9e3fa 100644
--- a/web/html/nav/sitenav.xml
+++ b/web/html/nav/sitenav.xml
@@ -35,6 +35,8 @@
<rhn-tab name="Sample Scripts"
url="/rhn/apidoc/scripts.jsp" />
</rhn-tab>
<rhn-tab name="Search" url="/rhn/help/Search.do" />
+ <rhn-tab name="Chat"
+ url="http://webchat.freenode.net?channels=#spacewalk"
target="_blank" />
</rhn-tab>
diff --git a/web/modules/sniglets/Sniglets/Navi/Node.pm
b/web/modules/sniglets/Sniglets/Navi/Node.pm
index f725191..1d422dc 100644
--- a/web/modules/sniglets/Sniglets/Navi/Node.pm
+++ b/web/modules/sniglets/Sniglets/Navi/Node.pm
@@ -23,7 +23,8 @@ use Sniglets::Lists;
my %allowed_params = map { $_ => 1 }
qw/name url acl dominant invisible override_sidenav hide_all_children_unless_active
- perm_fail_redirect active-image inactive-image node-id on-click dynamic-children/;
+ perm_fail_redirect active-image inactive-image node-id on-click dynamic-children
+ target/;
sub new {
my $class = shift;
@@ -39,6 +40,8 @@ sub new {
if ($p eq 'formvar') {
$self->add_formvar($params{$p});
next;
+ } elsif ($p eq 'target') {
+ $self->set_target($params{$p});
}
die "Invalid param to $class->new: '$p'"
@@ -62,6 +65,7 @@ sub active_image { return $_[0]->{'active-image'} }
sub inactive_image { return $_[0]->{'inactive-image'} }
sub acl { return $_[0]->{acl} }
sub perm_fail_redirect { return $_[0]->{perm_fail_redirect} }
+sub target { return $_[0]->{target} }
# any children
sub hide_all_children_unless_active { return $_[0]->{hide_all_children_unless_active}
}
@@ -131,6 +135,14 @@ sub id {
return $self->{id};
}
+sub set_target {
+ my $self = shift;
+
+ confess "node target already defined for node" if defined
$self->{target};
+
+ $self->{target} = shift;
+}
+
sub set_id {
my $self = shift;
diff --git a/web/modules/sniglets/Sniglets/Navi/Parser.pm
b/web/modules/sniglets/Sniglets/Navi/Parser.pm
index 749183c..eb192a2 100644
--- a/web/modules/sniglets/Sniglets/Navi/Parser.pm
+++ b/web/modules/sniglets/Sniglets/Navi/Parser.pm
@@ -46,7 +46,7 @@ sub parse_navfile {
my %tree_attr;
- foreach (qw/label formvar acl_mixins/) {
+ foreach (qw/label formvar acl_mixins target/) {
$tree_attr{$_} = $root->getAttribute($_);
}
diff --git a/web/modules/sniglets/Sniglets/Navi/Style.pm
b/web/modules/sniglets/Sniglets/Navi/Style.pm
index b466e4c..29b5afc 100644
--- a/web/modules/sniglets/Sniglets/Navi/Style.pm
+++ b/web/modules/sniglets/Sniglets/Navi/Style.pm
@@ -146,7 +146,7 @@ sub render_link {
$url .= join("&", map { qq{$_=} .
PXT::Utils->escapeURI($form_params{$_}) } keys %form_params);
}
- return PXT::HTML->link($url, PXT::Utils->escapeHTML($node->name),
$css_style);
+ return PXT::HTML->link($url, PXT::Utils->escapeHTML($node->name), $css_style,
$node->target);
}
@@ -414,7 +414,7 @@ sub render_link {
$url .= join("&", map { qq{$_=} .
PXT::Utils->escapeURI($form_params{$_}) } keys %form_params);
}
- return PXT::HTML->link($url, PXT::Utils->escapeHTML($node->name),
$css_style);
+ return PXT::HTML->link($url, PXT::Utils->escapeHTML($node->name), $css_style,
$node->target);
}