branding/templates/header.pxt | 4
rel-eng/packages/spacewalk-web | 2
web/modules/pxt/PXT/HTML.pm | 24 +++
web/modules/sniglets/Sniglets/ListView/List.pm | 170 ++++++++++++------------
web/modules/sniglets/Sniglets/ListView/Style.pm | 108 +++++++++++----
web/modules/sniglets/Sniglets/Servers.pm | 10 -
web/spacewalk-web.spec | 6
7 files changed, 211 insertions(+), 113 deletions(-)
New commits:
commit c8ee6585a8e17776fc11f85c5989351494ad39f5
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Jan 10 13:38:18 2014 +0100
Automatic commit of package [spacewalk-web] release [2.1.47-1].
diff --git a/rel-eng/packages/spacewalk-web b/rel-eng/packages/spacewalk-web
index 1cfac46e..c53825b 100644
--- a/rel-eng/packages/spacewalk-web
+++ b/rel-eng/packages/spacewalk-web
@@ -1 +1 @@
-2.1.46-1 web/
+2.1.47-1 web/
diff --git a/web/spacewalk-web.spec b/web/spacewalk-web.spec
index 4472789..04f8e02 100644
--- a/web/spacewalk-web.spec
+++ b/web/spacewalk-web.spec
@@ -4,7 +4,7 @@ Name: spacewalk-web
Summary: Spacewalk Web site - Perl modules
Group: Applications/Internet
License: GPLv2
-Version: 2.1.46
+Version: 2.1.47
Release: 1%{?dist}
URL:
https://fedorahosted.org/spacewalk/
Source0:
https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -269,6 +269,10 @@ rm -rf $RPM_BUILD_ROOT
%doc LICENSE
%changelog
+* Fri Jan 10 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.47-1
+- replaced old monitoring images with icons
+- perl List port to new css/markup
+
* Fri Jan 10 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.46-1
- Deleting obsoleted perl pages
- removed dead js file
commit 9a985ace083d87a99469699afe3c19152bdb383d
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Jan 10 13:21:46 2014 +0100
replaced old monitoring images with icons
fixing
unknown icon type: "". at /usr/share/perl5/vendor_perl/PXT/HTML.pm line
596.
diff --git a/web/modules/sniglets/Sniglets/Servers.pm
b/web/modules/sniglets/Sniglets/Servers.pm
index 4dd4186..4176dc0 100644
--- a/web/modules/sniglets/Sniglets/Servers.pm
+++ b/web/modules/sniglets/Sniglets/Servers.pm
@@ -272,27 +272,27 @@ sub system_monitoring_info {
return $ret unless defined $data->{MONITORING_STATUS};
if ($data->{MONITORING_STATUS} eq "CRITICAL") {
- $ret->{image} = '/img/rhn-mon-down.gif';
+ $ret->{icon} = 'monitoring-crit';
$ret->{status_str} = 'Critical probes';
$ret->{system_link} =
"/network/systems/details/probes/index.pxt?sid=${sid}";
}
elsif ($data->{MONITORING_STATUS} eq "WARNING") {
- $ret->{image} = '/img/rhn-mon-warning.gif';
+ $ret->{icon} = 'monitoring-warn';
$ret->{status_str} = 'Warning probes';
$ret->{system_link} =
"/network/systems/details/probes/index.pxt?sid=${sid}";
}
elsif ($data->{MONITORING_STATUS} eq "UNKNOWN") {
- $ret->{image} = '/img/rhn-mon-unknown.gif';
+ $ret->{icon} = 'monitoring-unknown';
$ret->{status_str} = 'Unknown probes';
$ret->{system_link} =
"/network/systems/details/probes/index.pxt?sid=${sid}";
}
elsif ($data->{MONITORING_STATUS} eq "PENDING") {
- $ret->{image} = '/img/rhn-mon-pending.gif';
+ $ret->{icon} = 'monitoring-pending';
$ret->{status_str} = 'Pending probes';
$ret->{system_link} =
"/network/systems/details/probes/index.pxt?sid=${sid}";
}
elsif ($data->{MONITORING_STATUS} eq "OK") {
- $ret->{image} = '/img/rhn-mon-ok.gif';
+ $ret->{icon} = 'monitoring-ok';
$ret->{status_str} = 'OK';
$ret->{system_link} =
"/network/systems/details/probes/index.pxt?sid=${sid}";
}
commit 02a0a6549b97a7851a52e4a262f1704548545a83
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Mon Jan 6 15:42:09 2014 +0100
perl List port to new css/markup
diff --git a/branding/templates/header.pxt b/branding/templates/header.pxt
index d90e605..c567b3a 100644
--- a/branding/templates/header.pxt
+++ b/branding/templates/header.pxt
@@ -21,6 +21,10 @@
<script src="/javascript/bootstrap.js"></script>
<script src="/javascript/spacewalk-essentials.js"></script>
<script src="/javascript/spacewalk-checkall.js"></script>
+
+ <script src="/rhn/dwr/engine.js"></script>
+ <script src="/rhn/dwr/util.js"></script>
+ <script src="/rhn/dwr/interface/DWRItemSelector.js"></script>
</head>
</pxt-passthrough>
diff --git a/web/modules/pxt/PXT/HTML.pm b/web/modules/pxt/PXT/HTML.pm
index 7064042..dde1c7a 100644
--- a/web/modules/pxt/PXT/HTML.pm
+++ b/web/modules/pxt/PXT/HTML.pm
@@ -119,6 +119,7 @@ sub hidden {
#text(
# -name => foo,
# -value => foo,
+# -placeholder => foo,
# -maxlength => 30,
# -size => 15);
sub text{
@@ -129,7 +130,7 @@ sub text{
$class->_spew("->text no name given, defaulting to " . $e{-name});
}
- return $class->_format(\%e,"input type=\"text\"");
+ return $class->_format(\%e,"input class=\"form-control\"
type=\"text\"");
}
#file(
@@ -451,6 +452,26 @@ sub link {
return sprintf qq{<a href="%s"$css_class$target>%s</a>}, $url,
$label;
}
+sub button {
+ my $class = shift;
+ my $text = shift;
+ my %params = @_;
+
+ if (not exists $params{-name}) {
+ die "nameless button";
+ }
+
+ my @inner;
+ for my $attr (qw/value type name class/) {
+ next unless exists $params{"-$attr"};
+ push @inner, sprintf(qq{$attr="$params{-$attr}"});
+ }
+
+ my $inner_str = join(" ", @inner);
+
+ return qq{<button $inner_str>$text</button>};
+}
+
sub link2 {
my $class = shift;
my %params = validate(@_, { url => 1, text => 0, css => 0, target => 0,
params => 0 });
@@ -527,6 +548,7 @@ my %rhn_icons = (
"header-errata-set" => "fa spacewalk-icon-patch-set",
"header-errata-set-add" => "fa
pacewalk-icon-patchset-install",
"header-event-history" => "fa fa-suitcase",
+ "header-filter" => "fa fa-eye",
"header-help" => "fa fa-question-circle",
"header-info" => "fa fa-info-circle text-primary",
"header-package" => "fa spacewalk-icon-packages",
diff --git a/web/modules/sniglets/Sniglets/ListView/List.pm
b/web/modules/sniglets/Sniglets/ListView/List.pm
index 47030ce..f5cada4 100644
--- a/web/modules/sniglets/Sniglets/ListView/List.pm
+++ b/web/modules/sniglets/Sniglets/ListView/List.pm
@@ -492,6 +492,17 @@ sub render_formvars {
sub render_alphabar {
my $self = shift;
+ my $pxt = shift;
+ my $content = shift;
+
+ # if there is no alphabar we still need the div there
+ my $template = $self->style->alphabar();
+ $template =~ s/\{alphabar_content\}/$content/;
+ return $template;
+}
+
+sub render_alphabar_content {
+ my $self = shift;
my $alphabar = shift;
my $pagesize = shift;
my $url = shift;
@@ -511,19 +522,15 @@ sub render_alphabar {
my $varstring = join('&', map { "$_=" .
PXT::Utils->escapeURI($vars->{$_}) } keys %{$vars});
- push @ret, qq{<A HREF="$url?$varstring"
class="list-alphabar-enabled">$alpha</A>};
+ push @ret, qq{<li><a
href="$url?$varstring">$alpha</a></li>\n};
}
else {
- push @ret, qq {<span
class="list-alphabar-disabled">$alpha</span>};
+ push @ret, qq {<li class="disabled"><a
href="#">$alpha</a></li>\n};
}
}
- my $bar = qq(<div align="center"><strong>\n) . join("",
@ret) . qq(\n</strong></div>\n<br />\n);
-
- my $html = $self->style->alphabar;
- $html =~ s/\{alphabar\}/$bar/;
-
- return $html;
+ my $bar = qq(<ul class="spacewalk-alphabar pagination
pagination-sm">\n) . join("", @ret) . qq(\n</ul>\n);
+ return $bar;
}
sub render_filterbox {
@@ -536,10 +543,12 @@ sub render_filterbox {
throw "No 'sort_by' column for mode '" .
$self->mode->{__name__} . "'\n" unless defined $filter_by;
- $ret .= q{<div class="filter-input">};
- $ret .= sprintf('Filter by %s: ', $filter_by->name);
+ $ret .= q{<div class="spacewalk-list-filter">};
+ $ret .= q{<div class="input-group input-group-sm">};
+
if ($self->filter_type eq 'text') {
- $ret .= PXT::HTML->text(-name => 'filter_value', -value =>
PXT::Utils->escapeHTML($self->filter_string || ''), -size => 12);
+ $ret .= PXT::HTML->text(-name => 'filter_value', -value =>
PXT::Utils->escapeHTML($self->filter_string || ''),
+ -placeholder => sprintf('Filter by %s: ',
$filter_by->name));
$ret .= PXT::HTML->hidden(-name => 'prev_filter_value', -value =>
PXT::Utils->escapeHTML($self->filter_string || ''));
}
elsif ($self->filter_type eq 'select') {
@@ -554,8 +563,12 @@ sub render_filterbox {
throw "Unknown filter type: '" . $self->filter_type .
"'";
}
- $ret .= " ";
- $ret .= PXT::HTML->submit_image(-src => '/img/button-go.gif', -alt =>
"Filter", -name => "filter_list");
+ $ret .= q{<div class="input-group-btn">};
+ $ret .= PXT::HTML->button(PXT::HTML->icon(-type => 'header-filter') ,
-type => 'submit', -name => "filter_list",
+ -class => "btn btn-default
spacewalk-button-filter");
+ $ret .= q{</div>};
+
+ $ret .= q{</div>};
$ret .= q{</div>};
return $ret;
@@ -598,26 +611,6 @@ sub render_select_buttons {
return $block;
}
-sub render_set_info {
- my $self = shift;
- my $pxt = shift;
- my $block = shift;
- my $pos = shift;
-
- my $subst = { };
-
- if ($self->allow_selections($pxt) and $self->{__set__}) {
- my $num_contents = scalar $self->{__set__}->contents;
- $subst->{set_string} = sprintf('<span
id="pagination_selcount_%s">(%s selected)</span>', $pos,
$num_contents);
- }
- else {
- $subst->{set_string} = '';
- }
-
- $block = PXT::Utils->perform_substitutions($block, $subst);
- return $block;
-}
-
sub render_page_info {
my $self = shift;
my $pxt = shift;
@@ -674,10 +667,10 @@ sub render_pagination_buttons {
# show buttons
if ($lower != '1' || ($upper != $total)) {
- $back_buttons_str = $self->render_pagination_button("First",
"/img/list-allbackward$back_status_str.gif", " |< ",
$back_status);
- $back_buttons_str .= $self->render_pagination_button("Prev",
"/img/list-backward$back_status_str.gif", " < ",
$back_status);
- $forward_buttons_str = $self->render_pagination_button("Next",
"/img/list-forward$forward_status_str.gif", " > ",
$forward_status);
- $forward_buttons_str .= $self->render_pagination_button("Last",
"/img/list-allforward$forward_status_str.gif", " >| ",
$forward_status);
+ $back_buttons_str = $self->render_pagination_button("First", "fa
fa-fast-backward", " |< ", $back_status);
+ $back_buttons_str .= $self->render_pagination_button("Prev", "fa
fa-backward", " < ", $back_status);
+ $forward_buttons_str = $self->render_pagination_button("Next", "fa
fa-forward", " > ", $forward_status);
+ $forward_buttons_str .= $self->render_pagination_button("Last", "fa
fa-fast-forward", " >| ", $forward_status);
}
my %subst;
@@ -693,23 +686,22 @@ sub render_pagination_buttons {
sub render_pagination_button {
my $self = shift;
my $name = shift;
- my $img_file = shift;
+ my $icon_class = shift;
my $text = shift;
my $is_active = shift;
my $ret = '';
- if ($is_active) {
- $ret = <<EOH
-<input type="image" src="$img_file" border="0"
name="$name" value="$text" class="list-nextprev-active"
/>
-EOH
- }
- else {
- $ret = <<EOH
-<img src="$img_file" border="0" alt="$text"
title="$text" class="list-nextprev-inactive" />
-EOH
+ my $disabled = '';
+ unless ($is_active) {
+ $disabled = ' disabled';
}
+ $ret = <<EOH;
+<button class="btn btn-default btn-xs" type="submit"
name="$name" value="$text"$disabled>
+<i class="$icon_class" title="$text"></i>
+</button>
+EOH
return $ret;
}
@@ -750,7 +742,7 @@ sub render_rows_header {
chomp($col_str);
- my $header = $self->style->header;
+ my $header = $self->style->table_header;
$header =~ s/\{header_row\}/$col_str/g;
@@ -766,7 +758,7 @@ sub render_rows_footer {
$numcols++;
}
- my $footer = $self->style->footer;
+ my $footer = $self->style->table_footer;
$footer =~ s/\{numcols\}/$numcols/g;
return $footer;
@@ -865,6 +857,18 @@ sub render_checkbox {
return $checkbox_template;
}
+sub render_pagination {
+ my $self = shift;
+ my $pxt = shift;
+
+ my $template = $self->style->pagination;
+
+ $template = $self->render_pagination_buttons($pxt, $template);
+ $template = $self->render_pagination_formvars($pxt, $template);
+ $template = $self->render_page_info($pxt, $template);
+ return $template;
+}
+
sub render_empty_list_message {
my $self = shift;
@@ -940,21 +944,43 @@ sub render {
if ($self->filter_string) {
$ret .= PXT::HTML->form_start(-name => 'rhn_list', -method =>
"POST", -action => $pxt->uri) . "\n";
- $ret .= $self->render_filterbox($pxt) . '<br />';
+
+ my $template = $self->style->header();
+ $template =~ s/\{alphabar\}//;
+ $template =~ s/\{pagination\}//;
+ my $filterbox = $self->render_filterbox($pxt);
+ $template =~ s/\{control_area\}/$filterbox/;
+
+ $ret .= $template;
$ret .= $self->render_empty_list_message();
$ret .= $self->render_formvars($pxt);
$ret .= PXT::HTML->hidden(-name => "pxt:trap", -value =>
$self->trap());
$ret .= PXT::HTML->hidden(-name => "list_mode", -value =>
$mode->{__name__});
if ($self->{__set__}) {
- $ret .= PXT::HTML->hidden(-name => "list_set_label", -value =>
$self->{__set__}->label);
+ $ret .= PXT::HTML->hidden(-name => "list_set_label", -value =>
$self->{__set__}->label);
}
+ $ret .= $self->style->footer;
+
+ $ret =~ s/\{alphabar\}//;
+ $ret =~ s/\{pagination\}//;
+ $ret =~ s/\{control_area\}//;
$ret .= PXT::HTML->form_end;
return $ret;
}
else {
- return $self->render_empty_list_message();
+ my $template = $self->style->header();
+
+ $ret .= $template;
+ $ret .= $self->render_empty_list_message();
+ $ret .= $self->style->footer;
+
+ $ret =~ s/\{alphabar\}//g;
+ $ret =~ s/\{pagination\}//g;
+ $ret =~ s/\{control_area\}//g;
+
+ return $ret;
}
}
@@ -964,15 +990,13 @@ sub render {
my $filter = ' ';
-
-
- my $alphabar;
+ my $alphabar_content;
if (exists $results{alphabar} && defined $results{alphabar}) {
- $alphabar = " ";
+ $alphabar_content = " ";
if (scalar @{$results{all_ids}} > $pxt->user->preferred_page_size) {
- $alphabar = $self->render_alphabar($results{alphabar},
+ $alphabar_content = $self->render_alphabar_content($results{alphabar},
$pxt->user->preferred_page_size,
$pxt->uri,
$self->formvars($pxt));
@@ -982,20 +1006,17 @@ sub render {
$filter = $self->render_filterbox($pxt);
}
- $ret .= $alphabar if $alphabar;
-
$ret .= PXT::HTML->form_start(-name => 'rhn_list', -method =>
"POST", -action => $pxt->uri) . "\n";
- my $pagination = $self->style->pagination;
+ my $header .= $self->style->header;
+ my $pagination = $self->render_pagination($pxt);
+ my $alphabar = $self->render_alphabar($pxt, $alphabar_content);
+ $header =~ s/\{alphabar\}/$alphabar/;
- $pagination = $self->render_pagination_buttons($pxt, $pagination);
- $pagination = $self->render_pagination_formvars($pxt, $pagination);
- $pagination = $self->render_set_info($pxt, $pagination, 'top');
- $pagination = $self->render_page_info($pxt, $pagination);
- $pagination =~ s/\{control_area\}/$filter/;
-
- $ret .= $pagination;
+ $header =~ s/\{pagination\}/$pagination/;
+ $header =~ s/\{control_area\}/$filter/;
+ $ret .= $header;
$ret .= $self->render_rows_header(\%acl_failures);
$self->init_row_counter();
@@ -1170,17 +1191,10 @@ sub render {
$ret .= $self->render_rows_footer();
- $pagination = $self->style->pagination;
-
- $pagination = $self->render_pagination_buttons($pxt, $pagination);
- $pagination = $self->render_set_info($pxt, $pagination, 'bottom');
- $pagination = $self->render_page_info($pxt, $pagination);
-
- $pagination = $self->render_select_buttons($pxt, $pagination,
$acl_failures{'Select'});
-
- $pagination =~ s/\{hidden_vars\}//;
-
- $ret .= $pagination;
+ my $footer = $self->style->footer;
+ $footer =~ s/\{pagination\}/$pagination/;
+ $footer = $self->render_select_buttons($pxt, $footer,
$acl_failures{'Select'});
+ $ret .= $footer;
$ret .= PXT::HTML->hidden(-name => "pxt:trap", -value =>
$self->trap());
$ret .= PXT::HTML->hidden(-name => "list_mode", -value =>
$mode->{__name__});
diff --git a/web/modules/sniglets/Sniglets/ListView/Style.pm
b/web/modules/sniglets/Sniglets/ListView/Style.pm
index 288c615..486b1c1 100644
--- a/web/modules/sniglets/Sniglets/ListView/Style.pm
+++ b/web/modules/sniglets/Sniglets/ListView/Style.pm
@@ -35,7 +35,7 @@ sub header_column {
my $self = shift;
my $ret = <<EOQ;
- <th{attr_string}>{column_name}</th>
+ <th>{column_name}</th>
EOQ
return $ret;
@@ -45,16 +45,34 @@ sub header {
my $self = shift;
my $ret =<<EOQ;
-<div class="panel panel-default">
-<table class="table table-striped">
-<!-- Begin Header Row -->
- <thead>
- <tr>
-{header_row}
- </tr>
- </thead>
-<!-- End Header Row -->
+<div class="spacewalk-list">
+ <div class="spacewalk-list-top-addons">
+ {alphabar}
+ {pagination}
+ </div>
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <div class="spacewalk-list-head-addons">
+ {control_area}
+ </div>
+ </div>
+EOQ
+ return $ret;
+}
+
+sub table_header {
+ my $self = shift;
+
+ my $ret =<<EOQ;
+ <table class="table table-striped">
+ <!-- Begin Header Row -->
+ <thead>
+ <tr>
+ {header_row}
+ </tr>
+ </thead>
+ <!-- End Header Row -->
EOQ
return $ret;
@@ -75,11 +93,29 @@ EOQ
return $ret;
}
+sub table_footer {
+ my $self = shift;
+
+ my $ret =<<EOQ;
+ </table>
+EOQ
+ return $ret;
+}
+
sub footer {
my $self = shift;
my $ret =<<EOQ;
-</table>
+ <div class="panel-footer">
+ <div class="spacewalk-list-footer-addons">
+ {control_area}
+ </div>
+ </div>
+ </div>
+ <div class="spacewalk-list-bottom-addons">
+ {pagination}
+ </div>
+
</div>
EOQ
@@ -90,16 +126,14 @@ sub pagination {
my $self = shift;
my $ret =<<EOQ;
+ <div class="spacewalk-list-pagination">
<!-- Begin Pagination Buttons -->
- <table width="100%" class="list-pagination"
align="center">
- <tr>
- <td valign="center"
width="90%">{control_area}</td>
- <td valign="center"
class="list-infotext"><strong>{current_lower}</strong> -
<strong>{current_upper}</strong> of <strong>{total}
{set_string}</strong>  </td>
- <td valign="center"
class="list-navbuttons">{back_buttons_str} {forward_buttons_str}</td>
- </tr>
- </table>
-
+ <span id="list_min">{current_lower}</span> - <span
id="list_max">{current_upper}</span> of <span
id="list_total">{total}</span>
+ <div class="spacewalk-list-pagination-btns btn-group">
+ {back_buttons_str} {forward_buttons_str}
+ </div>
{hidden_vars}
+ </div>
<!-- End Pagination Buttons -->
EOQ
@@ -135,7 +169,7 @@ sub column {
my $self = shift;
my $ret =<<EOQ;
- <td{width_str}{align_str}{nowrap_str}{class_str}>
+ <td>
{col_data}
</td>
EOQ
@@ -159,7 +193,9 @@ sub empty_list_wrapper {
my $self = shift;
my $ret =<<EOQ;
- <div class="list-empty-message">{empty_list_message}</div>
+ <div class="panel-body">
+ <div class="list-empty-message">{empty_list_message}</div>
+ </div>
EOQ
return $ret;
@@ -169,11 +205,9 @@ sub alphabar {
my $self = shift;
my $ret =<<EOQ;
-<table width="100%" cellspacing="0" cellpadding="1">
- <tr valign="top">
- <td class="list-alphabar">{alphabar}</td>
- </tr>
-</table>
+ <div class="spacewalk-list-alphabar">
+ {alphabar_content}
+ </div>
EOQ
return $ret;
@@ -325,11 +359,31 @@ EOQ
return $ret;
}
+sub table_footer {
+ my $self = shift;
+
+ my $ret =<<EOQ;
+ </table>
+EOQ
+ return $ret;
+}
+
sub footer {
my $self = shift;
my $ret =<<EOQ;
-</table>
+ </div>
+ <div class="panel-footer">
+ <div class="spacewalk-list-footer-addons">
+ {control_area}
+ </div>
+ </div>
+
+ <div class="spacewalk-list-bottom-addons">
+ {pagination}
+ </div>
+
+</div>
EOQ
return $ret;