diff options
author | plegall <plg@piwigo.org> | 2010-03-26 13:37:20 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2010-03-26 13:37:20 +0000 |
commit | 6d006303328909b111a9db1ac4199f0a993adb8b (patch) | |
tree | 9b8e19f7ef9eb437808e6aabd515480cb17bf721 | |
parent | 01978993067275d11cf2b6c0507455f0d0da402d (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.php | 80 | ||||
-rw-r--r-- | admin/themes/default/default-layout.css | 3 | ||||
-rw-r--r-- | admin/themes/default/template/comments.tpl | 58 | ||||
-rw-r--r-- | language/en_UK/admin.lang.php | 5 | ||||
-rw-r--r-- | language/fr_FR/admin.lang.php | 5 |
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'; +?> |