diff options
Diffstat (limited to 'mod/uservalidationbyemail/views/default')
5 files changed, 140 insertions, 46 deletions
diff --git a/mod/uservalidationbyemail/views/default/admin/users/unvalidated.php b/mod/uservalidationbyemail/views/default/admin/users/unvalidated.php index 0b94ab039..62a35d0bb 100644 --- a/mod/uservalidationbyemail/views/default/admin/users/unvalidated.php +++ b/mod/uservalidationbyemail/views/default/admin/users/unvalidated.php @@ -1,3 +1,9 @@ <?php +/** + * List of unvalidated users + */ -echo elgg_view_form('uservalidationbyemail/bulk_action'); +echo elgg_view_form('uservalidationbyemail/bulk_action', array( + 'id' => 'uservalidationbyemail-form', + 'action' => 'action/uservalidationbyemail/bulk_action' +)); diff --git a/mod/uservalidationbyemail/views/default/forms/uservalidationbyemail/bulk_action.php b/mod/uservalidationbyemail/views/default/forms/uservalidationbyemail/bulk_action.php index d5060d7e5..9199922d6 100644 --- a/mod/uservalidationbyemail/views/default/forms/uservalidationbyemail/bulk_action.php +++ b/mod/uservalidationbyemail/views/default/forms/uservalidationbyemail/bulk_action.php @@ -16,48 +16,97 @@ access_show_hidden_entities(TRUE); $options = array( 'type' => 'user', - 'metadata_name' => 'validated', - 'metadata_value' => 0, + 'wheres' => uservalidationbyemail_get_unvalidated_users_sql_where(), 'limit' => $limit, - 'offset' => $offset + 'offset' => $offset, + 'count' => TRUE, ); -$users = elgg_get_entities_from_metadata($options); +$count = elgg_get_entities($options); + +if (!$count) { + access_show_hidden_entities($hidden_entities); + elgg_set_ignore_access($ia); + + echo elgg_autop(elgg_echo('uservalidationbyemail:admin:no_unvalidated_users')); + return TRUE; +} + +$options['count'] = FALSE; -$options['count'] = TRUE; -$count = elgg_get_entities_from_metadata($options); +$users = elgg_get_entities($options); access_show_hidden_entities($hidden_entities); elgg_set_ignore_access($ia); // setup pagination -$pagination = elgg_view('navigation/pagination', array( - 'baseurl' => elgg_get_site_url() . 'pg/admin/users/unvalidated', +$pagination = elgg_view('navigation/pagination',array( + 'base_url' => 'admin/users/unvalidated', 'offset' => $offset, 'count' => $count, 'limit' => $limit, )); -echo $pagination; +$bulk_actions_checkbox = '<label><input type="checkbox" id="uservalidationbyemail-checkall" />' + . elgg_echo('uservalidationbyemail:check_all') . '</label>'; + +$validate = elgg_view('output/url', array( + 'href' => 'action/uservalidationbyemail/validate/', + 'text' => elgg_echo('uservalidationbyemail:admin:validate'), + 'title' => elgg_echo('uservalidationbyemail:confirm_validate_checked'), + 'class' => 'uservalidationbyemail-submit', + 'is_action' => true, + 'is_trusted' => true, +)); -if ($users) { +$resend_email = elgg_view('output/url', array( + 'href' => 'action/uservalidationbyemail/resend_validation/', + 'text' => elgg_echo('uservalidationbyemail:admin:resend_validation'), + 'title' => elgg_echo('uservalidationbyemail:confirm_resend_validation_checked'), + 'class' => 'uservalidationbyemail-submit', + 'is_action' => true, + 'is_trusted' => true, +)); + +$delete = elgg_view('output/url', array( + 'href' => 'action/uservalidationbyemail/delete/', + 'text' => elgg_echo('uservalidationbyemail:admin:delete'), + 'title' => elgg_echo('uservalidationbyemail:confirm_delete_checked'), + 'class' => 'uservalidationbyemail-submit', + 'is_action' => true, + 'is_trusted' => true, +)); + +$bulk_actions = <<<___END + <ul class="elgg-menu elgg-menu-general elgg-menu-hz float-alt"> + <li>$resend_email</li><li>$validate</li><li>$delete</li> + </ul> + + $bulk_actions_checkbox +___END; + +if (is_array($users) && count($users) > 0) { + $html = '<ul class="elgg-list elgg-list-distinct">'; foreach ($users as $user) { - $form_body .= elgg_view('uservalidationbyemail/unvalidated_user', array('theuser' => $user)); + $html .= "<li id=\"unvalidated-user-{$user->guid}\" class=\"elgg-item uservalidationbyemail-unvalidated-user-item\">"; + $html .= elgg_view('uservalidationbyemail/unvalidated_user', array('user' => $user)); + $html .= '</li>'; } -} else { - echo elgg_echo('uservalidationbyemail:admin:no_unvalidated_users'); - return; + $html .= '</ul>'; } -$form_body .= elgg_echo('uservalidationbyemail:admin:with_checked') . elgg_view('input/dropdown', array( - 'name' => 'action_type', - 'options_values' => array( - 'validate' => elgg_echo('uservalidationbyemail:admin:validate'), - 'resend_validation' => elgg_echo('uservalidationbyemail:admin:resend_validation'), - 'delete' => elgg_echo('uservalidationbyemail:admin:delete'), - ), - 'value' => 'resend_validation', -)); +echo <<<___END +<div class="elgg-module elgg-module-inline uservalidation-module"> + <div class="elgg-head"> + $bulk_actions + </div> + <div class="elgg-body"> + $html + </div> +</div> +___END; -$form_body .= '<br />' . elgg_view('input/submit', array('value' => elgg_echo('submit'))); +if ($count > 5) { + echo $bulk_actions; +} -echo $form_body;
\ No newline at end of file +echo $pagination; diff --git a/mod/uservalidationbyemail/views/default/uservalidationbyemail/css.php b/mod/uservalidationbyemail/views/default/uservalidationbyemail/css.php new file mode 100644 index 000000000..afe334713 --- /dev/null +++ b/mod/uservalidationbyemail/views/default/uservalidationbyemail/css.php @@ -0,0 +1,12 @@ +<?php +/** + * CSS for user validation by email + */ +?> + +.uservalidation-module > .elgg-head * { + color: white; +} +.uservalidation-module > .elgg-body * { + color: #333; +}
\ No newline at end of file diff --git a/mod/uservalidationbyemail/views/default/uservalidationbyemail/js.php b/mod/uservalidationbyemail/views/default/uservalidationbyemail/js.php new file mode 100644 index 000000000..948a54651 --- /dev/null +++ b/mod/uservalidationbyemail/views/default/uservalidationbyemail/js.php @@ -0,0 +1,28 @@ + +elgg.provide('elgg.uservalidationbyemail'); + +elgg.uservalidationbyemail.init = function() { + $('#uservalidationbyemail-checkall').click(function() { + var checked = $(this).attr('checked') == 'checked'; + $('#uservalidationbyemail-form .elgg-body').find('input[type=checkbox]').attr('checked', checked); + }); + + $('.uservalidationbyemail-submit').click(function(event) { + var $form = $('#uservalidationbyemail-form'); + event.preventDefault(); + + // check if there are selected users + if ($('#uservalidationbyemail-form .elgg-body').find('input[type=checkbox]:checked').length < 1) { + return false; + } + + // confirmation + if (!confirm($(this).attr('title'))) { + return false; + } + + $form.attr('action', $(this).attr('href')).submit(); + }); +}; + +elgg.register_hook_handler('init', 'system', elgg.uservalidationbyemail.init); diff --git a/mod/uservalidationbyemail/views/default/uservalidationbyemail/unvalidated_user.php b/mod/uservalidationbyemail/views/default/uservalidationbyemail/unvalidated_user.php index 295f4170e..5c652a637 100644 --- a/mod/uservalidationbyemail/views/default/uservalidationbyemail/unvalidated_user.php +++ b/mod/uservalidationbyemail/views/default/uservalidationbyemail/unvalidated_user.php @@ -6,15 +6,13 @@ * @subpackage UserValidationByEmail.Administration */ -$user = elgg_extract('theuser', $vars); +$user = elgg_extract('user', $vars); -// doesn't work. -//$checkbox = elgg_view('input/checkboxes', array( -// 'name' => 'user_guids', -// 'options' => array("$user->username - \"$user->name\" <$user->email>" => $user->guid) -//)); -$checkbox = "<label><input type=\"checkbox\" value=\"$user->guid\" class=\"elgg-input-checkboxes\" name=\"user_guids[]\">" - . "$user->username - \"$user->name\" <$user->email></label>"; +$checkbox = elgg_view('input/checkbox', array( + 'name' => 'user_guids[]', + 'value' => $user->guid, + 'default' => false, +)); $created = elgg_echo('uservalidationbyemail:admin:user_created', array(elgg_view_friendly_time($user->time_created))); @@ -35,17 +33,18 @@ $delete = elgg_view('output/confirmlink', array( 'href' => "action/uservalidationbyemail/delete/?user_guids[]=$user->guid", 'text' => elgg_echo('uservalidationbyemail:admin:delete') )); - -?> - -<div class="admin_settings radius8 pas baa"> - <?php echo $checkbox; ?><br /> - - <div class="uservalidationbyemail_unvalidated_controls right"> - <?php echo "$resend_email | $validate | $delete"; ?> +$menu = 'test'; +$block = <<<___END + <label>$user->username: "$user->name" <$user->email></label> + <div class="uservalidationbyemail-unvalidated-user-details"> + $created </div> +___END; - <div class="uservalidationbyemail_unvalidated_user_details mll small"> - <?php echo $created; ?> - </div> -</div> +$menu = <<<__END + <ul class="elgg-menu elgg-menu-general elgg-menu-hz float-alt"> + <li>$resend_email</li><li>$validate</li><li>$delete</li> + </ul> +__END; + +echo elgg_view_image_block($checkbox, $block, array('image_alt' => $menu)); |
