function instantiate_template_task_parameters(TemplateTask $object, ProjectTask $copy, $parameterValues = array()) { $objProp = TemplateObjectProperties::getPropertiesByTemplateObject($object->getTemplateId(), $object->getId()); $manager = $copy->manager(); foreach ($objProp as $property) { $propName = $property->getProperty(); $value = $property->getValue(); if ($manager->getColumnType($propName) == DATA_TYPE_STRING || $manager->getColumnType($propName) == DATA_TYPE_INTEGER) { if (is_array($parameterValues)) { $is_present = false; foreach ($parameterValues as $param => $val) { if (strpos($value, '{' . $param . '}') !== FALSE) { $value = str_replace('{' . $param . '}', $val, $value); $is_present = true; } } // if parameter not present replace the parameter code with empty string if (!$is_present) { $value = preg_replace('/[{].*[}]/U', '', $value); } } } else { if ($manager->getColumnType($propName) == DATA_TYPE_DATE || $manager->getColumnType($propName) == DATA_TYPE_DATETIME) { $operator = '+'; if (strpos($value, '+') === false) { $operator = '-'; } $opPos = strpos($value, $operator); if ($opPos !== false) { // Is parametric $dateParam = substr($value, 1, strpos($value, '}') - 1); if ($dateParam == 'task_creation') { $date = DateTimeValueLib::now(); } else { $date = getDateValue($parameterValues[$dateParam]); if (!$date instanceof DateTimeValue) { $date = DateTimeValueLib::now(); } if ($copy instanceof ProjectTask && config_option('use_time_in_task_dates') && $propName == "due_date") { $copy->setUseDueTime(1); $hour_min = getTimeValue(user_config_option('work_day_end_time')); $hour_min['hours']; $hour_min['mins']; $date->setHour($hour_min['hours']); $date->setMinute($hour_min['mins']); $date = $date->add('s', -logged_user()->getTimezone() * 3600); } if ($copy instanceof ProjectTask && config_option('use_time_in_task_dates') && $propName == "start_date") { $copy->setUseStartTime(1); $hour_min = getTimeValue(user_config_option('work_day_start_time')); $hour_min['hours']; $hour_min['mins']; $date->setHour($hour_min['hours']); $date->setMinute($hour_min['mins']); $date = $date->add('s', -logged_user()->getTimezone() * 3600); } } $dateUnit = substr($value, strlen($value) - 1); // d, w or m (for days, weeks or months) if ($dateUnit == 'm') { $dateUnit = 'M'; // make month unit uppercase to call DateTimeValue::add with correct parameter } $dateNum = (int) substr($value, strpos($value, $operator), strlen($value) - 2); //Hook::fire('template_param_date_calculation', array('op' => $operator, 'date' => $date, 'template_id' => $object->getTemplateId(), 'original' => $object, 'copy' => $copy), $dateNum); $value = $date->add($dateUnit, $dateNum); } else { $value = DateTimeValueLib::dateFromFormatAndString(user_config_option('date_format'), $value); } } } if ($value != '') { if (!$copy->setColumnValue($propName, $value)) { $copy->object->setColumnValue($propName, $value); } if ($propName == 'text' && $copy->getTypeContent() == 'text') { $copy->setText(html_to_text($copy->getText())); } $copy->save(); } } // Ensure that assigned user is subscribed if ($copy instanceof ProjectTask && $copy->getAssignedTo() instanceof Contact) { $copy->subscribeUser($copy->getAssignedTo()); } $ret = null; Hook::fire('after_template_object_param_instantiation', array('template_id' => $object->getTemplateId(), 'original' => $object, 'copy' => $copy, 'parameter_values' => $parameterValues), $ret); }
'); if(render_add_subscribers){ Ext.get('<?php echo $genid; ?> add_subscribers_content').load({ url: og.getUrl('object', 'render_add_subscribers', { context: dimension_members_json, users: uids, genid: '<?php echo $genid; ?> ', otype: '<?php echo $projectTask->manager()->getObjectTypeId(); ?> ' }), scripts: true }); } og.redrawUserLists(dimension_members_json); } Ext.extend(og.TaskPopUp, Ext.Window, { accept: function() { var opt = $("#<?php
$object = $task; $genid = gen_id(); if ($task->isNew()) { $params = array("copyId" => array_var($task_data, 'copyId')); if (isset($modal) && $modal) { $params['ajax'] = 1; } $form_url = get_url('task', 'add_task', $params); } else { $form_url = $task->getEditListUrl(); } // on submit functions if (array_var($_REQUEST, 'modal')) { $on_submit = "og.setDescription(); og.submit_modal_form('" . $genid . "submit-edit-form', ogTasks.drawTaskRowAfterEdit); return false;"; } else { $on_submit = "return App.modules.addTaskForm.checkSubmitAddTask('" . $genid . "','" . $task->manager()->getObjectTypeId() . "') && og.setDescription()" . (array_var($task_data, 'multi_assignment') && Plugins::instance()->isActivePlugin('crpm') ? "&& typeof('og.TaskMultiAssignment')=='function' ? og.TaskMultiAssignment() : true" : "") . ";"; } $co_type = array_var($task_data, 'object_subtype'); if (config_option('use tasks dependencies')) { require_javascript('og/tasks/task_dependencies.js'); } $has_custom_properties = CustomProperties::countAllCustomPropertiesByObjectType($object->getObjectTypeId()) > 0; $categories = array(); Hook::fire('object_edit_categories', $task, $categories); $loc = user_config_option('localization'); if (strlen($loc) > 2) { $loc = substr($loc, 0, 2); } ?> <script> og.genid = '<?php