public static function edit_parameter_item($item_id) { if (is_numeric($item_id)) { $data_entity_id = DataEntity::get_entry_by_item_id($item_id); $parameter_id = Parameter::get_parameter_id_by_data_entity_id($data_entity_id); $parameter = Parameter::get_instance($parameter_id); if ($parameter->is_read_access()) { self::detail($parameter, http_build_query(Retrace::resolve_retrace_string($_GET['retrace'])), false); } } else { throw new ItemIDMissingException(); } }
/** * Generates an item menu entry with sub-items * @param array $element_array * @param integer $key * @param integer $counter * @param array $link_base * @param string $holder_class * @param string $holder_id * @return array */ public static function get_menu_element($element_array, $key, $counter, $link_base, $holder_class, $holder_id) { $result = array(); $amount = count($element_array['fulfilled']); if ($element_array['display'] == true) { if ($element_array['occurrence'] == "multiple" and $amount > 0) { $result[$counter]['name'] = $element_array['name'] . " (" . $amount . ")"; } else { $result[$counter]['name'] = $element_array['name']; } $result[$counter]['depends'] = false; $item_handling_cass = $element_array['handling_class']; $paramquery = $link_base; $paramquery['run'] = "item_add"; $paramquery['dialog'] = $element_array['type']; $paramquery['key'] = $key; $paramquery['retrace'] = Retrace::create_retrace_string(); $item_add_occurrence_array = $item_handling_cass::get_item_add_occurrence($element_array['type']); if (!is_array($item_add_occurrence_array) or count($item_add_occurrence_array) != 3) { $item_add_occurrence_array = array(true, true, "deny"); } if ($element_array['occurrence'] == "once" and $item_add_occurrence_array[0] == true and $item_add_occurrence_array[2] == "edit" and is_array($element_array['fulfilled']) and $amount >= 1) { $paramquery['run'] = "item_edit"; } $item_add_dialog_array = $item_handling_cass::get_item_add_dialog($element_array['type']); if (is_array($item_add_dialog_array)) { if (in_array($element_array['dialog'], $item_add_dialog_array[0])) { $item_array_type = $element_array['dialog']; } else { $item_array_type = $item_add_dialog_array[1]; } if (trim($item_array_type) == "window") { $result[$counter]['type'] = "ajax"; $ajax_handling_array = $item_handling_cass::get_item_add_script_handling_class($element_array['type']); require_once "core/modules/" . $ajax_handling_array[0]; $ajax_init_array = $ajax_handling_array[1]::$ajax_handling_array[2]($element_array['pos_id'], $paramquery, $element_array['type_id'], $element_array['category_id'], $holder_class, $holder_id); $result[$counter]['script'] = $ajax_init_array['script']; $result[$counter]['window_title'] = $ajax_init_array['window_title']; $result[$counter]['window_id'] = $ajax_init_array['window_id']; $result[$counter]['click_id'] = $ajax_init_array['click_id']; } else { $result[$counter]['type'] = "link"; } } else { $result[$counter]['type'] = "link"; } if (is_array($element_array['fulfilled']) and $amount >= 1) { if ($element_array['occurrence'] == "multiple" and $item_add_occurrence_array[1] == true or $element_array['occurrence'] == "once" and $item_add_occurrence_array[0] == false or $element_array['occurrence'] == "once" and $item_add_occurrence_array[0] == true and $item_add_occurrence_array[2] == "edit") { $result[$counter]['image'] = "add_done"; } else { $result[$counter]['type'] = false; $result[$counter]['image'] = "add_done_na"; } } else { $result[$counter]['image'] = "add"; } if ($element_array['requirement'] == "optional") { $result[$counter]['name'] = $result[$counter]['name'] . " (optional)"; } $params = http_build_query($paramquery, '', '&'); $result[$counter]['params'] = $params; $counter++; } if (is_array($element_array['sub_items']) and count($element_array['sub_items']) >= 1) { $result[$counter]['type'] = "line"; $counter++; $sub_item_irgnore_array = array(); foreach ($element_array['sub_items'] as $sub_item_key => $sub_item_value) { foreach ($sub_item_value as $sub_sub_item_key => $sub_sub_item_value) { if (!in_array($sub_sub_item_key, $sub_item_irgnore_array)) { if ($sub_sub_item_value['element_type'] == "item") { $paramquery = $link_base; $paramquery['run'] = "sub_item_add"; $paramquery['dialog'] = $sub_sub_item_value['type']; $paramquery['key'] = $sub_sub_item_value['pos_id']; $paramquery['parent'] = $element_array['type']; $paramquery['parent_key'] = $element_array['pos_id']; if ($sub_sub_item_value['takeover'] == false) { $paramquery['parent_id'] = $element_array['fulfilled'][$sub_item_key]['id']; } $paramquery['retrace'] = Retrace::create_retrace_string(); $item_handling_cass = $sub_sub_item_value['handling_class']; $item_add_occurrence_array = $item_handling_cass::get_item_add_occurrence($sub_sub_item_value['type']); if (!is_array($item_add_occurrence_array) or count($item_add_occurrence_array) != 3) { $item_add_occurrence_array = array(true, true, "deny"); } if ($sub_sub_item_value['occurrence'] == "once" and $item_add_occurrence_array[0] == true and $item_add_occurrence_array[2] == "edit" and is_array($sub_sub_item_value['fulfilled']) and count($sub_sub_item_value['fulfilled']) >= 1) { $paramquery['run'] = "sub_item_edit"; } $item_add_dialog_array = $item_handling_cass::get_item_add_dialog($sub_sub_item_value['type']); if (is_array($item_add_dialog_array)) { if (in_array($sub_sub_item_value['dialog'], $item_add_dialog_array[0])) { $item_array_type = $sub_sub_item_value['dialog']; } else { $item_array_type = $item_add_dialog_array[1]; } if (trim($item_array_type) == "window") { $result[$counter]['type'] = "ajax"; $ajax_handling_array = $item_handling_cass::get_item_add_script_handling_class($sub_sub_item_value['type']); require_once "core/modules/" . $ajax_handling_array[0]; $item_holder = Item::get_holder_handling_class_by_name($element_array['type']); // Type of the ItemHolder $ajax_init_array = $ajax_handling_array[1]::$ajax_handling_array[2]($sub_sub_item_value['pos_id'], $paramquery, $sub_sub_item_value['type_id'], $sub_sub_item_value['category_id'], $item_holder, $element_array['fulfilled'][$sub_item_key]['id']); $result[$counter]['script'] = $ajax_init_array['script']; $result[$counter]['window_title'] = $ajax_init_array['window_title']; $result[$counter]['window_id'] = $ajax_init_array['window_id']; $result[$counter]['click_id'] = $ajax_init_array['click_id']; } else { $result[$counter]['type'] = "link"; } } else { $result[$counter]['type'] = "link"; } if ($sub_sub_item_value['takeover'] == true) { $result[$counter]['name'] = $sub_sub_item_value['name'] . " (all)"; array_push($sub_item_irgnore_array, $sub_sub_item_key); } else { if ($element_array['fulfilled'][$sub_item_key]['name']) { $result[$counter]['name'] = $sub_sub_item_value['name'] . " (" . $element_array['fulfilled'][$sub_item_key]['name'] . ")"; } else { $result[$counter]['name'] = $sub_sub_item_value['name']; } } if (is_array($sub_sub_item_value['fulfilled'])) { if ($sub_sub_item_value['occurrence'] == "multiple" and $item_add_occurrence_array[1] == true or $sub_sub_item_value['occurrence'] == "once" and $item_add_occurrence_array[0] == false or $sub_sub_item_value['occurrence'] == "once" and $item_add_occurrence_array[0] == true and $item_add_occurrence_array[2] == "edit") { $result[$counter]['image'] = "add_done"; } else { $result[$counter]['type'] = false; $result[$counter]['image'] = "add_done_na"; } } else { $result[$counter]['image'] = "add"; } $params = http_build_query($paramquery, '', '&'); $result[$counter]['depends'] = true; $result[$counter]['params'] = $params; $counter++; } } } if ($result[$counter - 1]['type'] != "line") { $result[$counter]['type'] = "line"; $counter++; } } } return array(0 => $result, 1 => $counter); }
/** * @param string $get_array * @param integer $sample_id * @return string * @throws SampleIDMissingException */ public static function associate($get_array, $sample_id) { global $session; if ($get_array and is_numeric($sample_id)) { $_GET = unserialize($get_array); $post_array = array(); $post_array['keywords'] = $session->read_value("ADD_ITEM_TEMP_KEYWORDS_" . $_GET['idk_unique_id']); $post_array['description'] = $session->read_value("ADD_ITEM_TEMP_DESCRIPTION_" . $_GET['idk_unique_id']); $sample = new Sample($sample_id); $item_add_event = new ItemAddEvent($sample->get_item_id(), $_GET, $post_array, true, "sample"); $event_handler = new EventHandler($item_add_event); if ($event_handler->get_success() == true) { if ($_GET['retrace']) { $params = http_build_query(Retrace::resolve_retrace_string($_GET['retrace']), '', '&'); return "index.php?" . $params; } else { $paramquery['username'] = $username; $paramquery['session_id'] = $session_id; $paramquery['nav'] = "home"; $params = http_build_query($paramquery, '', '&'); return "index.php?" . $params; } } else { return "0"; } } else { throw new SampleIDMissingException(); } }
/** * @throws FileIDMissingException * @throws DataSecurityAccessDeniedException */ public static function detail() { global $regional; if ($_GET['file_id']) { $file = File::get_instance($_GET['file_id']); if ($file->is_read_access()) { $template = new HTMLTemplate("data/file_detail.html"); $folder = Folder::get_instance($file->get_parent_folder_id()); if ($_GET['version'] and is_numeric($_GET['version'])) { $file->open_internal_revision($_GET['version']); $internal_revision = $_GET['version']; } else { $internal_revision = $file->get_internal_revision(); } $template = new HTMLTemplate("data/file_detail.html"); $folder = Folder::get_instance($file->get_parent_folder_id()); $user = new User($file->get_owner_id()); $file_version_array = $file->get_file_internal_revisions(); if (is_array($file_version_array) and count($file_version_array) > 0) { $result = array(); $counter = 1; $result[0]['version'] = 0; $result[0]['text'] = "----------------------------------------------"; $file_version = File::get_instance($_GET['file_id'], true); foreach ($file_version_array as $key => $value) { $file_version->open_internal_revision($value); $version_datetime_handler = new DatetimeHandler($file_version->get_datetime()); $result[$counter]['version'] = $file_version->get_internal_revision(); $result[$counter]['text'] = "Version " . $file_version->get_version() . " - " . $version_datetime_handler->get_datetime(); $counter++; } $template->set_var("version_option", $result); } $result = array(); $counter = 0; foreach ($_GET as $key => $value) { if ($key != "version") { $result[$counter]['value'] = $value; $result[$counter]['key'] = $key; $counter++; } } $template->set_var("get", $result); $template->set_var("version", $file->get_version()); $paramquery = $_GET; $paramquery['action'] = "file_history"; $params = http_build_query($paramquery, '', '&'); $template->set_var("version_list_link", $params); $template->set_var("title", $file->get_name()); $template->set_var("name", $file->get_name()); $template->set_var("path", $folder->get_object_path()); $template->set_var("size", Convert::convert_byte_1024($file->get_size())); $template->set_var("size_in_byte", $regional->format_number($file->get_size())); $create_datetime_handler = new DatetimeHandler($file->get_datetime()); $version_datetime_handler = new DatetimeHandler($file->get_version_datetime()); $template->set_var("creation_datetime", $create_datetime_handler->get_datetime()); $template->set_var("version_datetime", $version_datetime_handler->get_datetime()); $template->set_var("mime_type", $file->get_mime_type()); $template->set_var("owner", $user->get_full_name(false)); $template->set_var("checksum", $file->get_checksum()); $template->set_var("permission", $file->get_permission_string()); $template->set_var("comment", ""); if ($file->is_image() == true) { $template->set_var("thumbnail_image", "<img src='image.php?session_id=" . $_GET['session_id'] . "&file_id=" . $_GET['file_id'] . "&max_width=340&max_height=350' alt='' />"); } else { $template->set_var("thumbnail_image", ""); } $paramquery = array(); $paramquery['username'] = $_GET['username']; $paramquery['session_id'] = $_GET['session_id']; $paramquery['file_id'] = $_GET['file_id']; if ($_GET['version']) { $paramquery['version'] = $_GET['version']; } $params = http_build_query($paramquery, '', '&'); $template->set_var("download_params", $params); $paramquery = $_GET; $paramquery['action'] = "file_update"; $paramquery['version'] = $internal_revision; $paramquery['retrace'] = Retrace::create_retrace_string(); $params = http_build_query($paramquery, '', '&'); $template->set_var("update_params", $params); $paramquery = $_GET; $paramquery['action'] = "file_update_minor"; $paramquery['version'] = $file->get_internal_revision(); $paramquery['retrace'] = Retrace::create_retrace_string(); $params = http_build_query($paramquery, '', '&'); $template->set_var("update_minor_params", $params); $paramquery = $_GET; $paramquery['action'] = "permission"; $params = http_build_query($paramquery, '', '&'); $template->set_var("set_permission_params", $params); $template->set_var("write_access", $file->is_write_access()); if ($file->is_control_access() == true or $file->get_owner_id() == $user->get_user_id()) { $template->set_var("change_permission", true); } else { $template->set_var("change_permission", false); } $template->set_var("delete_access", $file->is_delete_access()); $paramquery = $_GET; $paramquery['action'] = "file_delete"; unset($paramquery['sure']); $params = http_build_query($paramquery, '', '&'); $template->set_var("delete_file_params", $params); $paramquery = $_GET; $paramquery['action'] = "file_delete_version"; $paramquery['version'] = $internal_revision; unset($paramquery['sure']); $params = http_build_query($paramquery, '', '&'); $template->set_var("delete_file_version_params", $params); $paramquery = $_GET; unset($paramquery['file_id']); unset($paramquery['version']); unset($paramquery['action']); $params = http_build_query($paramquery, '', '&'); $template->set_var("back_link", $params); $template->output(); } else { throw new DataSecurityAccessDeniedException(); } } else { throw new FileIDMissingException(); } }
/** * @param string $get_array * @return string * @throws ProjectIDMissingException */ public static function get_project_menu($get_array) { global $project_security; if ($get_array) { $_GET = unserialize($get_array); } if ($_GET['project_id']) { $project = new Project($_GET['project_id']); $folder_id = ProjectStatusFolder::get_folder_by_project_id_and_project_status_id($_GET['project_id'], $project->get_current_status_id()); $template = new HTMLTemplate("project/ajax/detail_menu.html"); switch ($project->is_next_status_available()) { case 0: if ($project->get_current_status_id() == 0) { $template->set_var("proceed", 3); } else { $template->set_var("proceed", 4); } break; case 1: if ($project_security->is_access(3, false) == true) { if ($project->is_current_status_fulfilled()) { $template->set_var("proceed", 1); } else { $template->set_var("proceed", 2); } } break; case 2: if ($project_security->is_access(3, false) == true) { if ($project->is_current_status_fulfilled()) { $template->set_var("proceed", 5); } else { $template->set_var("proceed", 6); } } break; default: $template->set_var("proceed", 7); break; } $template->set_var("next_status_name", $project->get_next_status_name()); if ($project_security->is_access(3, false) == true) { $project_template = new ProjectTemplate($project->get_template_id()); $current_status_requirements = $project->get_current_status_requirements($project->get_current_status_id()); $result = array(); $counter = 0; if (is_array($current_status_requirements) and count($current_status_requirements) >= 1) { foreach ($current_status_requirements as $key => $value) { switch ($value['element_type']) { case "item": $paramquery = array(); $paramquery['username'] = $_GET['username']; $paramquery['session_id'] = $_GET['session_id']; $paramquery['nav'] = "project"; $paramquery['project_id'] = $_GET['project_id']; require_once "core/modules/item/common/item_common.io.php"; $menu_element_array = ItemCommonIO::get_menu_element($value, $key, $counter, $paramquery, "Project", $_GET['project_id']); $result = array_merge($result, $menu_element_array[0]); $counter = $menu_element_array[1]; break; case "extension": $paramquery = array(); $paramquery['username'] = $_GET['username']; $paramquery['session_id'] = $_GET['session_id']; $paramquery['nav'] = "project"; $paramquery['run'] = "extension"; $paramquery['project_id'] = $_GET['project_id']; $paramquery['extension'] = $value['extension']; $paramquery['retrace'] = Retrace::create_retrace_string(); $params = http_build_query($paramquery, '', '&'); $result[$counter]['name'] = "Run " . $value['name']; $result[$counter]['depends'] = false; $result[$counter]['params'] = $params; if ($value['fulfilled'] == 1) { if ($value['occurrence'] == "multiple") { $result[$counter]['type'] = "link"; $result[$counter]['image'] = "add_extension_done"; } else { $result[$counter]['type'] = false; $result[$counter]['image'] = "add_extension_done_na"; } } elseif ($value['fulfilled'] == 0) { if ($value['occurrence'] == "multiple") { $result[$counter]['type'] = "link"; $result[$counter]['image'] = "add_extension_wait"; } else { $result[$counter]['type'] = false; $result[$counter]['image'] = "add_extension_wait_na"; } } else { $result[$counter]['type'] = "link"; $result[$counter]['image'] = "add_extension"; } if ($value['requirement'] == "optional" and $value['fulfilled'] != 0) { $result[$counter]['name'] = $result[$counter]['name'] . " (optional)"; } $counter++; break; } } } if ($counter > 0) { $template->set_var("status_action", $result); } $template->set_var("write", true); } else { $template->set_var("write", false); } $paramquery = array(); $paramquery['username'] = $_GET['username']; $paramquery['session_id'] = $_GET['session_id']; $paramquery['nav'] = "project"; $paramquery['run'] = "common_dialog"; $paramquery['folder_id'] = ProjectFolder::get_supplementary_folder($_GET['project_id']); $paramquery['dialog'] = "file_add"; $paramquery['retrace'] = Retrace::create_retrace_string(); unset($paramquery['nextpage']); $supplementary_params = http_build_query($paramquery, '', '&'); $template->set_var("supplementary_params", $supplementary_params); $log_paramquery = $_GET; $log_paramquery['run'] = "log_add"; unset($log_paramquery['nextpage']); $log_params = http_build_query($log_paramquery, '', '&'); $template->set_var("log_params", $log_params); $add_task_paramquery = $_GET; $add_task_paramquery['run'] = "add_task"; unset($add_task_paramquery['nextpage']); $add_task_params = http_build_query($add_task_paramquery, '', '&'); $template->set_var("add_task_params", $add_task_params); $show_tasks_paramquery = $_GET; $show_tasks_paramquery['run'] = "show_tasks"; unset($show_tasks_paramquery['nextpage']); $show_tasks_params = http_build_query($show_tasks_paramquery, '', '&'); $template->set_var("show_tasks_params", $show_tasks_params); $subproject_paramquery = $_GET; $subproject_paramquery['run'] = "new_subproject"; unset($subproject_paramquery['nextpage']); $subproject_params = http_build_query($subproject_paramquery, '', '&'); $template->set_var("add_subproject_params", $subproject_params); $template->output(); } else { throw new ProjectIDMissingException(); } }
/** * @param integer $user_id * @return array */ public static function get_user_module_detail_setting($user_id) { if ($user_id) { $data_user_data = new DataUserData($user_id); $paramquery = $_GET; $paramquery['run'] = "module_value_change"; $paramquery['dialog'] = "user_quota"; $paramquery['retrace'] = Retrace::create_retrace_string(); $params = http_build_query($paramquery, '', '&'); $return_array = array(); $return_array['value'] = Convert::convert_byte_1024($data_user_data->get_quota()); $return_array['params'] = $params; return $return_array; } else { return null; } }
/** * @param string $username * @param string $session_id * @return string */ public static function run($username, $session_id) { global $session, $user, $transaction; $sample_add_role = $session->read_value("SAMPLE_ADD_ROLE"); $sample_item_retrace = $session->read_value("SAMPLE_ITEM_RETRACE"); $sample_item_get_array = $session->read_value("SAMPLE_ITEM_GET_ARRAY"); $sample_item_keywords = $session->read_value("SAMPLE_ITEM_KEYWORDS"); $sample_item_description = $session->read_value("SAMPLE_ITEM_DESCRIPTION"); $sample_organ_unit = $session->read_value("SAMPLE_ORGANISATION_UNIT"); $sample_template = $session->read_value("SAMPLE_TEMPLATE"); $sample_name = $session->read_value("SAMPLE_NAME"); $sample_manufacturer = $session->read_value("SAMPLE_MANUFACTURER_ID"); $sample_manufacturer_name = $session->read_value("SAMPLE_MANUFACTURER_NAME"); $sample_location = $session->read_value("SAMPLE_LOCATION"); $sample_expiry = $session->read_value("SAMPLE_EXPIRY"); $sample_expiry_warning = $session->read_value("SAMPLE_EXPIRY_WARNING"); $sample_desc = $session->read_value("SAMPLE_DESCRIPTION"); $sample_template_data_type = $session->read_value("SAMPLE_TEMPLATE_DATA_TYPE"); $sample_template_data_type_id = $session->read_value("SAMPLE_TEMPLATE_DATA_TYPE_ID"); $sample_template_data_array = $session->read_value("SAMPLE_TEMPLATE_DATA_ARRAY"); $transaction_id = $transaction->begin(); try { $sample = new Sample(null); $sample->set_template_data($sample_template_data_type, $sample_template_data_type_id, $sample_template_data_array); $sample_id = $sample->create($sample_organ_unit, $sample_template, $sample_name, $sample_manufacturer, $sample_location, $sample_desc, null, $sample_expiry, $sample_expiry_warning); if ($sample_add_role == "item" or $sample_add_role == "item_parent") { // Special Parent Sample Case if ($sample_add_role == "item_parent") { $parent_sample = new Sample($sample_item_get_array['sample_id']); $sample_item_get_array['sample_id'] = $sample_id; $sample_item_get_array['parent_sample'] = "1"; $event_item_id = $parent_sample->get_item_id(); } else { $event_item_id = $sample->get_item_id(); } $post_array = array(); $post_array['keywords'] = $sample_item_keywords; $post_array['description'] = $sample_item_description; $item_add_event = new ItemAddEvent($event_item_id, $sample_item_get_array, $post_array, true, "sample"); $event_handler = new EventHandler($item_add_event); if ($event_handler->get_success() == true) { // Nothing } } } catch (BaseException $e) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } throw $e; } $session->delete_value("SAMPLE_ADD_ROLE"); $session->delete_value("SAMPLE_ADD_ITEM_HOLDER_CLASS"); $session->delete_value("SAMPLE_ADD_ITEM_HOLDER_ID"); $session->delete_value("SAMPLE_ITEM_RETRACE"); $session->delete_value("SAMPLE_ITEM_GET_ARRAY"); $session->delete_value("SAMPLE_ITEM_KEYWORDS"); $session->delete_value("SAMPLE_ITEM_DESCRIPTION"); $session->delete_value("SAMPLE_ITEM_TYPE_ARRAY"); $session->delete_value("SAMPLE_ORGANISATION_UNIT"); $session->delete_value("SAMPLE_TEMPLATE"); $session->delete_value("SAMPLE_NAME"); $session->delete_value("SAMPLE_MANUFACTURER_ID"); $session->delete_value("SAMPLE_MANUFACTURER_NAME"); $session->delete_value("SAMPLE_LOCATION"); $session->delete_value("SAMPLE_EXPIRY"); $session->delete_value("SAMPLE_EXPIRY_WARNING"); $session->delete_value("SAMPLE_DESCRIPTION"); $session->delete_value("SAMPLE_TEMPLATE_DATA_TYPE"); $session->delete_value("SAMPLE_TEMPLATE_DATA_TYPE_ID"); $session->delete_value("SAMPLE_TEMPLATE_DATA_ARRAY"); if ($sample_add_role == "item" or $sample_add_role == "item_parent") { if ($transaction_id != null) { $transaction->commit($transaction_id); } if ($sample_item_retrace) { $params = http_build_query(Retrace::resolve_retrace_string($sample_item_retrace), '', '&'); return "index.php?" . $params; } else { $paramquery['username'] = $username; $paramquery['session_id'] = $session_id; $paramquery['nav'] = "home"; $params = http_build_query($paramquery, '', '&'); return "index.php?" . $params; } } else { if ($transaction_id != null) { $transaction->commit($transaction_id); } $paramquery = array(); $paramquery['username'] = $username; $paramquery['session_id'] = $session_id; $paramquery['nav'] = "sample"; $paramquery['run'] = "detail"; $paramquery['sample_id'] = $sample_id; $params = http_build_query($paramquery, '', '&'); return "index.php?" . $params; } }