/** * @param $print_flag */ function calculate_page_content($print_flag) { $specmanagement_database_api = new specmanagement_database_api(); $specmanagement_print_api = new specmanagement_print_api(); $specmanagement_editor_api = new specmanagement_editor_api(); $version_id = $_POST['version_id']; $version_spec_bug_ids = $specmanagement_database_api->get_version_spec_bugs(version_get_field($version_id, 'version')); if (!is_null($version_spec_bug_ids)) { /** get bug and work package data */ $plugin_version_obj = $specmanagement_database_api->get_plugin_version_row_by_version_id($version_id); $p_version_id = $plugin_version_obj[0]; foreach ($version_spec_bug_ids as $version_spec_bug_id) { $p_source_row = $specmanagement_database_api->get_source_row($version_spec_bug_id); if (is_null($p_source_row[2])) { $specmanagement_database_api->update_source_row($version_spec_bug_id, $p_version_id, ''); } } $work_packages = $specmanagement_database_api->get_document_spec_workpackages($p_version_id); asort($work_packages); $no_work_package_bug_ids = $specmanagement_database_api->get_workpackage_spec_bugs($p_version_id, ''); /** get type options */ $type_string = $specmanagement_database_api->get_type_string($specmanagement_database_api->get_type_by_version($version_id)); $type_id = $specmanagement_database_api->get_type_id($type_string); $type_row = $specmanagement_database_api->get_type_row($type_id); $type_options = explode(';', $type_row[2]); /** generate and print page content */ $specmanagement_editor_api->print_document_head($type_string, $version_id, $version_spec_bug_ids, $print_flag); if ($type_options[2] == '1') { $specmanagement_editor_api->print_directory($p_version_id, $work_packages, $no_work_package_bug_ids, $type_options[0], $print_flag); } $specmanagement_editor_api->print_editor_table_head($print_flag); $specmanagement_editor_api->generate_content($p_version_id, $work_packages, $no_work_package_bug_ids, $type_options[0], true, $print_flag); echo '</table>'; if ($type_options[1] == '1') { $specmanagement_editor_api->print_expenses_overview($work_packages, $p_version_id, $print_flag, $no_work_package_bug_ids); } } else { echo '<br/>'; $specmanagement_editor_api->print_editor_table_head($print_flag); echo '<tr><td class="center">'; echo plugin_lang_get('editor_no_issues'); echo '</td></tr>'; $specmanagement_print_api->printTableFoot(); } }
/** * @param $types */ function print_document_selection($types) { $project_id = gpc_get_int('project_id', helper_get_current_project()); $specmanagement_database_api = new specmanagement_database_api(); echo '<select name="version_id">'; foreach ($types as $type) { $type_string = string_html_specialchars($type); $type_id = $specmanagement_database_api->get_type_id($type); $version_id_array = get_version_ids($type_id, $project_id); foreach ($version_id_array as $version_id) { $version_spec_project_id = version_get_field($version_id, 'project_id'); if (project_includes_user($version_spec_project_id, auth_get_current_user_id()) || user_is_administrator(auth_get_current_user_id())) { $version_string = version_full_name($version_id); echo '<option value="' . $version_id . '">'; echo $type_string . " - " . $version_string; echo '</option>'; } } } echo '</select>'; }
/** * Update custom plugin fields * * @param $event * @param BugData $bug */ function bugUpdateData($event, BugData $bug) { require_once SPECMANAGEMENT_CORE_URI . 'specmanagement_database_api.php'; $specmanagement_database_api = new specmanagement_database_api(); $version_id = null; $type_id = null; $p_version_id = null; $bug_id = $bug->id; $project_id = helper_get_current_project(); $ptime = gpc_get_string('ptime', $specmanagement_database_api->get_ptime_row($bug_id)[2]); $type = gpc_get_string('types', ''); if ($bug_id != null) { $target_version = bug_get_field($bug_id, 'target_version'); if (!is_null($target_version)) { $version_id = version_get_id($target_version); $version_obj = $specmanagement_database_api->get_plugin_version_row_by_version_id($version_id); $p_version_id = $version_obj[0]; $type_id = $specmanagement_database_api->get_type_id($type); } } $work_package = preg_replace('/\\/\\/+/', '/', gpc_get_string('work_package', '')); switch ($event) { case 'EVENT_REPORT_BUG': $specmanagement_database_api->insert_version_row($project_id, $version_id, $type_id); $specmanagement_database_api->insert_source_row($bug_id, $p_version_id, $work_package); $specmanagement_database_api->insert_ptime_row($bug_id, $ptime); break; case 'EVENT_UPDATE_BUG': if (strlen($work_package) == 0) { $work_package = $specmanagement_database_api->get_workpackage_by_bug_id($bug_id); } $specmanagement_database_api->update_version_row($project_id, $version_id, $type_id); $specmanagement_database_api->update_source_row($bug_id, $p_version_id, $work_package); $specmanagement_database_api->update_ptime_row($bug_id, $ptime); break; } }
} if (is_null($obsolete)) { $version->obsolete = false; } else { if ($obsolete == 'on') { $version->obsolete = true; } } if (!is_null($date_order)) { $new_date_order = $date_order[$version_index]; $version->date_order = $new_date_order; } if (!is_null($type)) { $new_type = $type[$version_index]; if (strlen($new_type) > 0) { $new_type_id = $specmanagement_database_api->get_type_id($new_type); $specmanagement_database_api->update_version_associated_type($project_id, $version_ids[$version_index], $new_type_id); } else { $specmanagement_database_api->update_version_associated_type($project_id, $version_ids[$version_index], 9999); } } if (!is_null($description)) { $new_description = $description[$version_index]; $version->description = $new_description; } version_update($version); event_signal('EVENT_MANAGE_VERSION_UPDATE', array($version_id)); } } form_security_purge('plugin_SpecManagement_manage_versions_update'); print_successful_redirect(plugin_page('manage_versions', true));
} /** * Add a document type */ if ($option_addtype) { if (isset($_POST['type'])) { $specmanagement_database_api->insert_type_row($_POST['type']); } } /** * Delete a document type */ if ($option_deltype) { if (isset($_POST['types'])) { $type_string = $_POST['types']; $type_id = $specmanagement_database_api->get_type_id($type_string); /* * Just delete a type if it is not used! */ if (!$specmanagement_database_api->check_type_is_used($type_id)) { $specmanagement_database_api->delete_type_row($type_string); } } } /** * Change a document type */ if ($option_changetype) { if (isset($_POST['types']) && isset($_POST['newtype'])) { $type_string = $_POST['types']; $type_id = $specmanagement_database_api->get_type_id($type_string);