Skip to content
Snippets Groups Projects
Commit 62fe9038 authored by Jared Hancock's avatar Jared Hancock
Browse files

Add form management for users

parent 29c40789
No related branches found
No related tags found
No related merge requests found
......@@ -383,5 +383,48 @@ class UsersAjaxAPI extends AjaxController {
return $ajax->createNote('U'.$id);
}
function manageForms($user_id) {
$forms = DynamicFormEntry::forUser($user_id);
$info = array('action' => '#users/'.Format::htmlchars($user_id).'/forms/manage');
include(STAFFINC_DIR . 'templates/form-manage.tmpl.php');
}
function updateForms($user_id) {
global $thisstaff;
if (!$thisstaff)
Http::response(403, "Login required");
elseif (!($user = User::lookup($user_id)))
Http::response(404, "No such user");
elseif (!isset($_POST['forms']))
Http::response(422, "Send updated forms list");
// Add new forms
$forms = DynamicFormEntry::forUser($user_id);
foreach ($_POST['forms'] as $sort => $id) {
$found = false;
foreach ($forms as $e) {
if ($e->get('form_id') == $id) {
$e->set('sort', $sort);
$e->save();
$found = true;
break;
}
}
// New form added
if (!$found && ($new = DynamicForm::lookup($id))) {
$user->addForm($new, $sort);
}
}
// Deleted forms
foreach ($forms as $idx => $e) {
if (!in_array($e->get('form_id'), $_POST['forms']))
$e->delete();
}
Http::response(201, 'Successfully managed');
}
}
?>
......@@ -615,6 +615,11 @@ class DynamicFormEntry extends VerySimpleModel {
$this->object_id = $object_id;
}
function forUser($user_id) {
return DynamicFormEntry::objects()
->filter(array('object_id'=>$user_id, 'object_type'=>'U'));
}
function forOrganization($org_id) {
return DynamicFormEntry::objects()
->filter(array('object_id'=>$org_id, 'object_type'=>'O'));
......
......@@ -230,6 +230,14 @@ class User extends UserModel {
return $this->created;
}
function addForm($form, $sort=1) {
$form = $form->instanciate();
$form->set('sort', $sort);
$form->set('object_type', 'U');
$form->set('object_id', $this->getId());
$form->save();
}
function to_json() {
$info = array(
......
......@@ -13,14 +13,10 @@ $org = $user->getOrganization();
title="Reload"><i class="icon-refresh"></i> <?php echo $user->getName(); ?></a></h2>
</td>
<td width="50%" class="right_align has_bottom_border">
<?php
if ($account) { ?>
<span class="action-button" data-dropdown="#action-dropdown-more">
<span ><i class="icon-cog"></i> More</span>
<i class="icon-caret-down"></i>
</span>
<?php
} ?>
<a id="user-delete" class="action-button user-action"
href="#users/<?php echo $user->getId(); ?>/delete"><i class="icon-trash"></i> Delete User</a>
<?php
......@@ -53,6 +49,12 @@ $org = $user->getOrganization();
<?php
} ?>
<li><a href="#ajax.php/users/<?php echo $user->getId();
?>/forms/manage" onclick="javascript:
$.dialog($(this).attr('href').substr(1), 201);
return false"
><i class="icon-paste"></i> Manage Forms</a></li>
</ul>
</div>
</td>
......
......@@ -91,7 +91,9 @@ $dispatcher = patterns('',
url_get('^/(?P<id>\d+)/org(?:/(?P<orgid>\d+))?$', 'updateOrg'),
url_post('^/(?P<id>\d+)/org$', 'updateOrg'),
url_get('^/staff$', 'searchStaff'),
url_post('^/(?P<id>\d+)/note$', 'createNote')
url_post('^/(?P<id>\d+)/note$', 'createNote'),
url_get('^/(?P<id>\d+)/forms/manage$', 'manageForms'),
url_post('^/(?P<id>\d+)/forms/manage$', 'updateForms')
)),
url('^/orgs', patterns('ajax.orgs.php:OrgsAjaxAPI',
url_get('^$', 'search'),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment