<?php require_javascript("og/ObjectPicker.js"); require_javascript("og/modules/addTemplate.js"); require_javascript("og/DateField.js"); $workspaces = active_projects(); $genid = gen_id(); $object = $cotemplate; ?> <form style='height:100%;background-color:white' class="internalForm" action="<?php echo get_url('template', 'instantiate', array('id' => $id))?>" method="post" enctype="multipart/form-data"> <div class="template"> <div class="coInputHeader"> <div class="coInputMainBlock"> <?php if (isset ($workspaces) && count($workspaces) > 0) { ?> <div id="<?php echo $genid ?>add_template_select_workspace_div"> <fieldset> <legend><?php echo lang('template context')?></legend> <?php $listeners = array('on_selection_change' => 'og.reload_subscribers("'.$genid.'",'.$object->manager()->getObjectTypeId().')'); if ($cotemplate->isNew()) { render_member_selectors($cotemplate->manager()->getObjectTypeId(), $genid, null, array('select_current_context' => true, 'listeners' => $listeners)); }else { render_member_selectors($cotemplate->manager()->getObjectTypeId(), $genid, $cotemplate->getMemberIds(), array('listeners' => $listeners)); } ?> </fieldset> </div> <?php } ?>
function assign_to_project() { if (logged_user()->isGuest()) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $contact = Contacts::findById(get_id()); if (!$contact instanceof Contact) { flash_error(lang('contact dnx')); ajx_current("empty"); return; } // if $projects = active_projects(); $contactRoles = ProjectContacts::getRolesByContact($contact); if (!$contact->canEdit(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } // if $contact_data = array_var($_POST, 'contact'); $enterData = true; if (!is_array($contact_data)) { $enterData = false; foreach ($projects as $project) { $contact_data['pid_' . $project->getId()] = false; $contact_data['role_pid_' . $project->getId()] = ''; if ($contactRoles) { foreach ($contactRoles as $cr) { if ($project->getId() == $cr->getProjectId()) { $contact_data['pid_' . $project->getId()] = true; $contact_data['role_pid_' . $project->getId()] = $cr->getRole(); } // if } // foreach } // if } // foreach } // if if ($enterData) { try { DB::beginWork(); $err = 0; $succ = 0; $workspaces = array(); foreach ($projects as $project) { $pc = ProjectContacts::getRole($contact, $project); if (!isset($contact_data['pid_' . $project->getId()])) { if ($pc instanceof ProjectContact) { $pc->delete(); $succ++; } } else { $role = $contact_data['role_pid_' . $project->getId()]; if ($pc instanceof ProjectContact) { if ($pc->getRole() != $role) { $pc->setRole($role); $pc->save(); $succ++; // ApplicationLogs::createLog($contact, $project, ApplicationLogs::ACTION_EDIT); } //if } else { $pc = new ProjectContact(); $pc->setProjectId($project->getId()); $pc->setContactId($contact->getId()); $pc->setRole($role); $pc->save(); $succ++; // ApplicationLogs::createLog($contact, $project, ApplicationLogs::ACTION_EDIT); } //if else } //if else } //foreach if ($err == 0) { flash_success(lang('success edit contact', $contact->getDisplayName())); DB::commit(); ApplicationLogs::createLog($contact, null, ApplicationLogs::ACTION_EDIT); ajx_current("back"); } else { DB::rollback(); flash_error(lang('failed to assign contact due to permissions', implode(", ", $workspaces))); ajx_current("empty"); } } catch (Exception $e) { DB::rollback(); flash_error($e->getMessage()); ajx_current("empty"); } // try } // if tpl_assign('contact', $contact); tpl_assign('contact_data', $contact_data); tpl_assign('projects', $projects); }