Bug 7259 - Show a count of items pending approval on staff client home and tools pages
This patch adds count indicators on the staff client home page and the tools page for the number of items pending approval. On the home page this includes suggestions, comments, and tags. On the tools page a count of pending comments and tags is shown. Signed-off-by: Liz Rea <wizzyrea@gmail.com> Counts appear for all types of actionable items listed, all are clickable through to the proper place. Nice work!
This commit is contained in:
parent
5d6f770c18
commit
d3c02c6bb6
|
|
@ -91,11 +91,12 @@ sub updatereview {
|
|||
}
|
||||
|
||||
sub numberofreviews {
|
||||
my ($status) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query =
|
||||
"SELECT count(*) FROM reviews WHERE approved=?";
|
||||
my $sth = $dbh->prepare($query);
|
||||
$sth->execute( 1 );
|
||||
$sth->execute( $status );
|
||||
return $sth->fetchrow;
|
||||
}
|
||||
|
||||
|
|
|
|||
19
C4/Tags.pm
19
C4/Tags.pm
|
|
@ -40,6 +40,7 @@ BEGIN {
|
|||
&whitelist
|
||||
&is_approved
|
||||
&approval_counts
|
||||
&get_count_by_tag_status
|
||||
&get_filters
|
||||
);
|
||||
# %EXPORT_TAGS = ();
|
||||
|
|
@ -92,6 +93,24 @@ sub approval_counts () {
|
|||
return $result;
|
||||
}
|
||||
|
||||
=head2 get_count_by_tag_status
|
||||
|
||||
get_count_by_tag_status($status);
|
||||
|
||||
Takes a status and gets a count of tags with that status
|
||||
|
||||
=cut
|
||||
|
||||
sub get_count_by_tag_status {
|
||||
my ($status) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query =
|
||||
"SELECT count(*) FROM tags_approval WHERE approved=?";
|
||||
my $sth = $dbh->prepare($query);
|
||||
$sth->execute( $status );
|
||||
return $sth->fetchrow;
|
||||
}
|
||||
|
||||
sub remove_tag ($;$) {
|
||||
my $tag_id = shift or return undef;
|
||||
my $user_id = (@_) ? shift : undef;
|
||||
|
|
|
|||
|
|
@ -1929,7 +1929,15 @@ ul.budget_hierarchy li:first-child:after {
|
|||
content: "";
|
||||
}
|
||||
.holdcount { font-size : 105%; line-height : 200%; }
|
||||
.holdcount a { border : 1px solid #a4bedd; background-color : #e4ecf5; font-weight : bold; -moz-border-radius: 4px; padding : .1em .4em; text-decoration : none; }
|
||||
.holdcount a {
|
||||
border : 1px solid #a4bedd;
|
||||
background-color : #e4ecf5;
|
||||
font-weight : bold;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
padding : .1em .4em;
|
||||
text-decoration : none;
|
||||
}
|
||||
.holdcount a:hover { background-color : #ebeff7; }
|
||||
.container {
|
||||
border : 1px solid #EEE;
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@
|
|||
[% END %]
|
||||
[% IF ( CAN_user_acquisition ) %]
|
||||
<h3><a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a></h3>
|
||||
[% IF ( pendingsuggestions ) %]<ul><li><a href="/cgi-bin/koha/suggestion/suggestion.pl">Suggestions pending approval</a>: <span class="holdcount"><a href="/cgi-bin/koha/suggestion/suggestion.pl">[% pendingsuggestions %]</a></span></li></ul>[% END %]
|
||||
[% END %]
|
||||
[% IF ( CAN_user_reports ) %]
|
||||
<h3><a href="/cgi-bin/koha/reports/reports-home.pl">Reports</a></h3>
|
||||
|
|
@ -94,6 +95,12 @@
|
|||
[% END %]
|
||||
[% IF ( CAN_user_tools ) %]
|
||||
<h3><a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a></h3>
|
||||
[% IF ( CAN_user_tools_moderate_comments && pendingcomments ) || ( CAN_user_tools_moderate_tags && pendingtags ) %]
|
||||
<ul>
|
||||
[% IF ( pendingcomments ) %]<li><a href="/cgi-bin/koha/reviews/reviewswaiting.pl">Comments pending approval</a>: <span class="holdcount"><a href="/cgi-bin/koha/reviews/reviewswaiting.pl">[% pendingcomments %]</a></span></li>[% END %]
|
||||
[% IF ( pendingtags ) %]<li><a href="/cgi-bin/koha/tags/review.pl">Tags pending approval</a>: <span class="holdcount"><a href="/cgi-bin/koha/tags/review.pl">[% pendingtags %]</a></span></li>[% END %]
|
||||
</ul>
|
||||
[% END %]
|
||||
[% END %]
|
||||
<h3><a href="/cgi-bin/koha/about.pl">About Koha</a></h3>
|
||||
</div>
|
||||
|
|
@ -117,6 +124,7 @@
|
|||
</div><!-- /koha-news -->
|
||||
</div>
|
||||
[% END %]
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
[% INCLUDE 'intranet-bottom.inc' %]
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
<h3>Patrons and circulation</h3>
|
||||
<dl>
|
||||
[% IF ( CAN_user_tools_moderate_comments ) %]
|
||||
<dt><a href="/cgi-bin/koha/reviews/reviewswaiting.pl">Comments</a></dt>
|
||||
<dd>Moderate patron comments</dd>
|
||||
<dt><a href="/cgi-bin/koha/reviews/reviewswaiting.pl">Comments</a> [% IF ( pendingcomments ) %]<span class="holdcount"><a href="/cgi-bin/koha/reviews/reviewswaiting.pl">[% pendingcomments %]</a></span>[% END %]</dt>
|
||||
<dd>Moderate patron comments. </dd>
|
||||
[% END %]
|
||||
|
||||
[% IF ( CAN_user_tools_import_patrons ) %]
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
[% END %]
|
||||
|
||||
[% IF ( CAN_user_tools_moderate_tags ) %]
|
||||
<dt><a href="/cgi-bin/koha/tags/review.pl">Tags</a></dt>
|
||||
<dt><a href="/cgi-bin/koha/tags/review.pl">Tags</a> [% IF ( pendingtags ) %]<span class="holdcount"><a href="/cgi-bin/koha/tags/review.pl">[% pendingtags %]</a></span>[% END %]</dt>
|
||||
<dd>Moderate patron tags</dd>
|
||||
[% END %]
|
||||
|
||||
|
|
|
|||
13
mainpage.pl
13
mainpage.pl
|
|
@ -26,6 +26,9 @@ use C4::Auth;
|
|||
use C4::AuthoritiesMarc;
|
||||
use C4::Koha;
|
||||
use C4::NewsChannels;
|
||||
use C4::Review qw/numberofreviews/;
|
||||
use C4::Suggestions qw/CountSuggestion/;
|
||||
use C4::Tags qw/get_count_by_tag_status/;
|
||||
my $query = new CGI;
|
||||
my $authtypes = getauthtypes;
|
||||
my @authtypesloop;
|
||||
|
|
@ -66,4 +69,14 @@ $template->param(
|
|||
koha_news_count => $koha_news_count
|
||||
);
|
||||
|
||||
my $pendingcomments = numberofreviews(0);
|
||||
my $pendingtags = get_count_by_tag_status(0);
|
||||
my $pendingsuggestions = CountSuggestion("ASKED");
|
||||
|
||||
$template->param(
|
||||
pendingcomments => $pendingcomments,
|
||||
pendingtags => $pendingtags,
|
||||
pendingsuggestions => $pendingsuggestions
|
||||
);
|
||||
|
||||
output_html_with_http_headers $query, $cookie, $template->output;
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowRe
|
|||
|
||||
my $reviews = getallreviews(1,$offset,$results_per_page);
|
||||
my $marcflavour = C4::Context->preference("marcflavour");
|
||||
my $hits = numberofreviews();
|
||||
my $hits = numberofreviews(1);
|
||||
my $i = 0;
|
||||
my $latest_comment_date;
|
||||
for my $result (@$reviews){
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ use warnings;
|
|||
use CGI;
|
||||
use C4::Auth;
|
||||
use C4::Output;
|
||||
use C4::Review qw/numberofreviews/;
|
||||
use C4::Tags qw/get_count_by_tag_status/;
|
||||
|
||||
my $query = new CGI;
|
||||
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
|
||||
|
|
@ -34,4 +36,12 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
|
|||
}
|
||||
);
|
||||
|
||||
my $pendingcomments = numberofreviews(0);
|
||||
my $pendingtags = get_count_by_tag_status(0);
|
||||
|
||||
$template->param(
|
||||
pendingcomments => $pendingcomments,
|
||||
pendingtags => $pendingtags
|
||||
);
|
||||
|
||||
output_html_with_http_headers $query, $cookie, $template->output;
|
||||
|
|
|
|||
Loading…
Reference in New Issue