aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2010-03-26 13:37:20 +0000
committerplegall <plg@piwigo.org>2010-03-26 13:37:20 +0000
commit6d006303328909b111a9db1ac4199f0a993adb8b (patch)
tree9b8e19f7ef9eb437808e6aabd515480cb17bf721
parent01978993067275d11cf2b6c0507455f0d0da402d (diff)
feature 1538: "select all" (+none, +invert) on user comments validation screen.
git-svn-id: http://piwigo.org/svn/trunk@5381 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--admin/comments.php80
-rw-r--r--admin/themes/default/default-layout.css3
-rw-r--r--admin/themes/default/template/comments.tpl58
-rw-r--r--language/en_UK/admin.lang.php5
-rw-r--r--language/fr_FR/admin.lang.php5
5 files changed, 88 insertions, 63 deletions
diff --git a/admin/comments.php b/admin/comments.php
index 9173107db..394825ec9 100644
--- a/admin/comments.php
+++ b/admin/comments.php
@@ -38,49 +38,26 @@ check_status(ACCESS_ADMINISTRATOR);
// | actions |
// +-----------------------------------------------------------------------+
-if (isset($_POST))
+if (!empty($_POST) and !is_adviser())
{
- $to_validate = array();
- $to_reject = array();
-
- if (isset($_POST['submit']) and !is_adviser())
- {
- foreach (explode(',', $_POST['list']) as $comment_id)
- {
- if (isset($_POST['action-'.$comment_id]))
- {
- switch ($_POST['action-'.$comment_id])
- {
- case 'reject' :
- {
- array_push($to_reject, $comment_id);
- break;
- }
- case 'validate' :
- {
- array_push($to_validate, $comment_id);
- break;
- }
- }
- }
- }
- }
- else if (isset($_POST['validate-all']) and !empty($_POST['list']) and !is_adviser())
- {
- $to_validate = explode(',', $_POST['list']);
- }
- else if (isset($_POST['reject-all']) and !empty($_POST['list']) and !is_adviser())
+ if (empty($_POST['comments']))
{
- $to_reject = explode(',', $_POST['list']);
+ array_push(
+ $page['errors'],
+ l10n('Select at least one comment')
+ );
}
-
- if (count($to_validate) > 0)
+ else
{
- $query = '
+ check_input_parameter('comments', $_POST, true, PATTERN_ID);
+
+ if (isset($_POST['validate']))
+ {
+ $query = '
UPDATE '.COMMENTS_TABLE.'
SET validated = \'true\'
, validation_date = NOW()
- WHERE id IN ('.implode(',', $to_validate).')
+ WHERE id IN ('.implode(',', $_POST['comments']).')
;';
pwg_query($query);
@@ -88,27 +65,28 @@ UPDATE '.COMMENTS_TABLE.'
$page['infos'],
l10n_dec(
'%d user comment validated', '%d user comments validated',
- count($to_validate)
+ count($_POST['comments'])
)
);
- }
+ }
- if (count($to_reject) > 0)
- {
- $query = '
+ if (isset($_POST['reject']))
+ {
+ $query = '
DELETE
FROM '.COMMENTS_TABLE.'
- WHERE id IN ('.implode(',', $to_reject).')
+ WHERE id IN ('.implode(',', $_POST['comments']).')
;';
- pwg_query($query);
-
- array_push(
- $page['infos'],
- l10n_dec(
- '%d user comment rejected', '%d user comments rejected',
- count($to_reject)
- )
- );
+ pwg_query($query);
+
+ array_push(
+ $page['infos'],
+ l10n_dec(
+ '%d user comment rejected', '%d user comments rejected',
+ count($_POST['comments'])
+ )
+ );
+ }
}
}
diff --git a/admin/themes/default/default-layout.css b/admin/themes/default/default-layout.css
index 43ffc2373..518e981d5 100644
--- a/admin/themes/default/default-layout.css
+++ b/admin/themes/default/default-layout.css
@@ -788,3 +788,6 @@ h2:lang(en) { text-transform:capitalize; }
}
.content .infos li, .content .errors li { list-style-type:square; }
+
+.checkActions {text-align:left;padding:0;margin:0;}
+.comment A:hover {border:none;} \ No newline at end of file
diff --git a/admin/themes/default/template/comments.tpl b/admin/themes/default/template/comments.tpl
index b7ac21ba4..6f3f37c95 100644
--- a/admin/themes/default/template/comments.tpl
+++ b/admin/themes/default/template/comments.tpl
@@ -1,3 +1,32 @@
+{literal}
+<script>
+$(document).ready(function(){
+ $(".checkComment").click(function () {
+ var checkbox = $(this).children("input[type=checkbox]");
+ $(checkbox).attr('checked', !$(checkbox).is(':checked'));
+ });
+
+ $("#commentSelectAll").click(function () {
+ $(".checkComment input[type=checkbox]").attr('checked', true);
+ return false;
+ });
+
+ $("#commentSelectNone").click(function () {
+ $(".checkComment input[type=checkbox]").attr('checked', false);
+ return false;
+ });
+
+ $("#commentSelectInvert").click(function () {
+ $(".checkComment input[type=checkbox]").each(function() {
+ $(this).attr('checked', !$(this).is(':checked'));
+ });
+ return false;
+ });
+
+});
+</script>
+{/literal}
+
<div class="titrePage">
<h2>{'Waiting'|@translate} {$TABSHEET_TITLE}</h2>
</div>
@@ -7,24 +36,33 @@
{if !empty($comments) }
<form method="post" action="{$F_ACTION}">
- {foreach from=$comments item=comment}
+<table width="99%">
+ {foreach from=$comments item=comment name=comment}
+ <tr valign="top" class="{if $smarty.foreach.comment.index is odd}row2{else}row1{/if}">
+ <td style="width:50px;" class="checkComment">
+ <input type="checkbox" name="comments[]" value="{$comment.ID}">
+ </td>
+ <td>
<div class="comment">
<a class="illustration" href="{$comment.U_PICTURE}"><img src="{$comment.TN_SRC}"></a>
<p class="commentHeader"><strong>{$comment.AUTHOR}</strong> - <em>{$comment.DATE}</em></p>
<blockquote>{$comment.CONTENT}</blockquote>
</div>
- <ul class="actions">
- <li><label><input type="radio" name="action-{$comment.ID}" value="reject">{'Reject'|@translate}</label></li>
- <li><label><input type="radio" name="action-{$comment.ID}" value="validate">{'Validate'|@translate}</label></li>
- </ul>
+ </td>
+ </tr>
{/foreach}
+</table>
+
+ <p class="checkActions">
+ {'Select:'|@translate}
+ <a href="#" id="commentSelectAll">{'All'|@translate}</a>,
+ <a href="#" id="commentSelectNone">{'None'|@translate}</a>,
+ <a href="#" id="commentSelectInvert">{'Invert'|@translate}</a>
+ </p>
<p class="bottomButtons">
- <input type="hidden" name="list" value="{$LIST}">
- <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
- <input class="submit" type="submit" name="validate-all" value="{'Validate All'|@translate}" {$TAG_INPUT_ENABLED}>
- <input class="submit" type="submit" name="reject-all" value="{'Reject All'|@translate}" {$TAG_INPUT_ENABLED}>
- <input class="submit" type="reset" value="{'Reset'|@translate}">
+ <input class="submit" type="submit" name="validate" value="{'Validate'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="submit" name="reject" value="{'Reject'|@translate}" {$TAG_INPUT_ENABLED}>
</p>
</form>
diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php
index 5253cf604..b62343cc4 100644
--- a/language/en_UK/admin.lang.php
+++ b/language/en_UK/admin.lang.php
@@ -755,4 +755,7 @@ $lang['Languages'] = 'Languages';
$lang['Installed Languages'] = 'Installed Languages';
$lang['Add New Language'] = 'Add New Language';
$lang['Language has been successfully installed'] = 'Language has been successfully installed';
-?> \ No newline at end of file
+$lang['Select:'] = 'Select:';
+$lang['None'] = 'None';
+$lang['Invert'] = 'Invert';
+?>
diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php
index 40122a3bc..3c8f7468d 100644
--- a/language/fr_FR/admin.lang.php
+++ b/language/fr_FR/admin.lang.php
@@ -760,4 +760,7 @@ $lang['Installed Languages'] = 'Langues installées';
$lang['Add New Language'] = 'Ajouter une langue';
$lang['Language has been successfully installed'] = 'La langue a été installée avec succès';
$lang['Allow user customization'] = "Permettre la personnalisation de l'affichage";
-?> \ No newline at end of file
+$lang['Select:'] = 'Sélectionner:';
+$lang['None'] = 'Rien';
+$lang['Invert'] = 'Inverser';
+?>