/concrete/single_pages/dashboard/users/groups.php
PHP | 281 lines | 260 code | 21 blank | 0 comment | 10 complexity | 306dc6568ef014a6bf01b11ba9dc55eb MD5 | raw file
Possible License(s): MIT, LGPL-2.1, MPL-2.0-no-copyleft-exception, BSD-3-Clause
- <?php
- defined('C5_EXECUTE') or die("Access Denied.");
- $valt = Loader::helper('validation/token');
- $ih = Loader::helper('concrete/ui');
- $form = Loader::helper('form');
- $date = Loader::helper('form/date_time');
- if (isset($group)) {
- ?>
- <form method="post" id="update-group-form" class="form-stacked" action="<?=$view->url('/dashboard/users/groups/', 'update_group')?>" role="form">
- <?=$valt->output('add_or_update_group')?>
- <?php
- $u = Core::make(Concrete\Core\User\User::class);
- $delConfirmJS = t('Are you sure you want to permanently remove this group?');
- if ($u->isSuperUser() == false) {
- ?>
- <?=t('You must be logged in as %s to remove groups.', USER_SUPER)?>
- <?php
- } else {
- ?>
- <script type="text/javascript">
- deleteGroup = function() {
- if (confirm('<?=$delConfirmJS?>')) {
- location.href = "<?=$view->url('/dashboard/users/groups', 'delete', $group->getGroupID(), $valt->generate('delete_group_' . $group->getGroupID()))?>";
- }
- }
- </script>
- <?php
- }
- ?>
- <fieldset>
- <legend><?=t('Group Details')?></legend>
- <div class="form-group">
- <label for="gName"><?=t('Name')?></label>
- <input type="text" name="gName" id="gName" class="form-control" value="<?=Loader::helper('text')->entities($group->getGroupName())?>" />
- </div>
- <div class="form-group">
- <label for="gDescription"><?=t('Description')?></label>
- <textarea name="gDescription" id="gDescription" rows="6" class="form-control"><?=Loader::helper("text")->entities($group->getGroupDescription())?></textarea>
- </div>
- </fieldset>
- <fieldset>
- <div class="form-group">
- <div class="checkbox">
- <label>
- <?=$form->checkbox('gIsBadge', 1, $group->isGroupBadge())?>
- <span><?=t('This group is a badge.')?> <i class="fa fa-question-circle launch-tooltip" title="<?=t('Badges are publicly viewable in user profiles, and display pictures and a custom description. Badges can be automatically assigned or given out by administrators.')?>"></i> </span>
- </label>
- </div>
- </div>
- <div id="gUserBadgeOptions" style="display: none">
- <div class="form-group">
- <label for="gBadgeFID"><?=t('Image')?></label>
- <?php
- $af = Loader::helper('concrete/asset_library');
- echo $af->image('gBadgeFID', 'gBadgeFID', t('Choose Badge Image'), $group->getGroupBadgeImageObject());
- ?>
- </div>
- <div class="form-group">
- <label for="gBadgeDescription"><?=t('Badge Description')?></label>
- <?=$form->textarea('gBadgeDescription', h($group->getGroupBadgeDescription()), array('rows' => 6, 'class' => 'form-control'))?>
- </div>
- <div class="form-group">
- <label for="gBadgeCommunityPointValue"><?=t('Community Points')?></label>
- <?=$form->text('gBadgeCommunityPointValue', h($group->getGroupBadgeCommunityPointValue()), array('class' => 'form-control'))?>
- </div>
- </div>
- </fieldset>
- <fieldset>
- <legend><?=t('Automation')?></legend>
- <div class="form-group">
- <div class="checkbox">
- <label>
- <?=$form->checkbox('gIsAutomated', 1, $group->isGroupAutomated())?>
- <span><?=t('This group is automatically entered.')?> <i class="fa fa-question-circle launch-tooltip" title="<?=t("Automated Groups aren't assigned by administrators. They are checked against code at certain times that determines whether users should enter them.")?>"></i> </span>
- </label>
- </div>
- </div>
- <div id="gAutomationOptions" style="display: none">
- <div class="form-group">
- <label><?=t('Check Group')?></label>
- <div class="checkbox">
- <label>
- <?=$form->checkbox('gCheckAutomationOnRegister', 1, $group->checkGroupAutomationOnRegister())?>
- <span><?=t('When a user registers.')?></span>
- </label>
- </div>
- <div class="checkbox">
- <label>
- <?=$form->checkbox('gCheckAutomationOnLogin', 1, $group->checkGroupAutomationOnLogin())?>
- <span><?=t('When a user signs in.')?></span>
- </label>
- </div>
- <div class="checkbox">
- <label>
- <?=$form->checkbox('gCheckAutomationOnJobRun', 1, $group->checkGroupAutomationOnJobRun())?>
- <span><?=t('When the "Check Automated Groups" Job runs.')?></span>
- </label>
- </div>
- </div>
- <div class="alert alert-info">
- <?php
- $path = h($group->getGroupAutomationControllerClass());
- echo t('For custom automated group actions, make sure an automation group controller exists at %s', $path);
- ?>
- </div>
- </div>
- <div class="form-group">
- <div class="checkbox">
- <label>
- <?=$form->checkbox('gUserExpirationIsEnabled', 1, $group->isGroupExpirationEnabled())?>
- <span><?=t('Automatically remove users from this group')?></span></label></div>
- </div>
- <div class="form-group">
- <?=$form->select("gUserExpirationMethod", array(
- 'SET_TIME' => t('at a specific date and time'),
- 'INTERVAL' => t('once a certain amount of time has passed'),
- ), $group->getGroupExpirationMethod(), array('disabled' => true, 'class' => 'form-control'));
- ?>
- </div>
- <div id="gUserExpirationSetTimeOptions" style="display: none">
- <div class="form-group">
- <label for="gUserExpirationSetDateTime"><?=t('Expiration Date')?></label>
- <?=$date->datetime('gUserExpirationSetDateTime', $group->getGroupExpirationDateTime())?>
- </div>
- </div>
- <div id="gUserExpirationIntervalOptions" style="display: none">
- <div class="form-group">
- <label for=""><?=t('Accounts expire after')?></label>
- <div>
- <table class="table" style="width: auto">
- <tr>
- <th><?=t('Days')?></th>
- <th><?=t('Hours')?></th>
- <th><?=t('Minutes')?></th>
- </tr>
- <tr>
- <?php
- $days = $group->getGroupExpirationIntervalDays();
- $hours = $group->getGroupExpirationIntervalHours();
- $minutes = $group->getGroupExpirationIntervalMinutes();
- $style = 'width: 60px';
- ?>
- <td valign="top">
- <?=$form->text('gUserExpirationIntervalDays', $days, array('style' => $style))?>
- </td>
- <td valign="top">
- <?=$form->text('gUserExpirationIntervalHours', $hours, array('style' => $style))?>
- </td>
- <td valign="top">
- <?=$form->text('gUserExpirationIntervalMinutes', $minutes, array('style' => $style))?>
- </td>
- </tr>
- </table>
- </div>
- </div>
- </div>
- <div id="gUserExpirationAction" style="display: none">
- <div class="form-group">
- <label for="gUserExpirationAction"><?=t('Expiration Action')?></label>
- <?=$form->select("gUserExpirationAction", array(
- 'REMOVE' => t('Remove the user from this group'),
- 'DEACTIVATE' => t('Deactivate the user account'),
- 'REMOVE_DEACTIVATE' => t('Remove the user from the group and deactivate the account'),
- ), $group->getGroupExpirationAction(),
- array('class' => 'form-control'));
- ?>
- </div>
- </div>
- <input type="hidden" name="gID" value="<?=$group->getGroupID()?>" />
- </fieldset>
- <div class="ccm-dashboard-form-actions-wrapper">
- <div class="ccm-dashboard-form-actions">
- <a href="<?=$view->url('/dashboard/users/groups')?>" class="btn btn-default pull-left"><?=t('Cancel')?></a>
- <button class="btn pull-right btn-primary" style="margin-left: 10px" type="submit"><?=t('Update Group')?></button>
- <?php if ($u->isSuperUser()) {
- ?>
- <?php echo $ih->button_js(t('Delete'), "deleteGroup()", 'right', 'btn-danger');
- ?>
- <?php
- }
- ?>
- </div>
- </div>
- </form>
- <script type="text/javascript">
- ccm_checkGroupExpirationOptions = function() {
- var sel = $("select[name=gUserExpirationMethod]");
- var cb = $("input[name=gUserExpirationIsEnabled]");
- if (cb.prop('checked')) {
- sel.attr('disabled', false);
- switch(sel.val()) {
- case 'SET_TIME':
- $("#gUserExpirationSetTimeOptions").show();
- $("#gUserExpirationIntervalOptions").hide();
- break;
- case 'INTERVAL':
- $("#gUserExpirationSetTimeOptions").hide();
- $("#gUserExpirationIntervalOptions").show();
- break;
- }
- $("#gUserExpirationAction").show();
- } else {
- sel.attr('disabled', true);
- $("#gUserExpirationSetTimeOptions").hide();
- $("#gUserExpirationIntervalOptions").hide();
- $("#gUserExpirationAction").hide();
- }
- }
- $(function() {
- $("input[name=gUserExpirationIsEnabled]").click(ccm_checkGroupExpirationOptions);
- $("select[name=gUserExpirationMethod]").change(ccm_checkGroupExpirationOptions);
- ccm_checkGroupExpirationOptions();
- $('input[name=gIsBadge]').on('click', function() {
- if ($(this).is(':checked')) {
- $('#gUserBadgeOptions').show();
- } else {
- $('#gUserBadgeOptions').hide();
- }
- }).triggerHandler('click');
- $('input[name=gIsAutomated]').on('click', function() {
- if ($(this).is(':checked')) {
- $('#gAutomationOptions').show();
- } else {
- $('#gAutomationOptions').hide();
- }
- }).triggerHandler('click');
- });
- </script>
- <?php
- } else {
- ?>
- <?php if ($canAddGroup) {
- ?>
- <div class="ccm-dashboard-header-buttons">
- <a href="<?php echo View::url('/dashboard/users/add_group')?>" class="btn btn-primary"><?php echo t("Add Group")?></a>
- </div>
- <?php
- }
- ?>
- <?php Loader::element('group/search', array('controller' => $searchController, 'selectMode' => false))?>
- <?php
- } ?>