function frs_file_restore_view($group_id, &$idArray, &$nomArray, &$htmlArray) { $fileFactory = new FRSFileFactory(); $files = $fileFactory->listPendingFiles($group_id, 0, 0); $toBeRestoredFiles = $fileFactory->listToBeRestoredFiles($group_id); $deletedFiles = $fileFactory->listStagingCandidates($group_id); $html = ''; $html .= '<div class="contenu_onglet" id="contenu_onglet_frs_file">'; $html .= '<p>Note: there might be some delay (max 30 minutes) between the time the file is deleted and time it become restorable.<br />When a file is deleted by the user, it become restorable after SYSTEM_CHECK <a href="/admin/system_events/">system event</a> is processed</p>' . '<p>Please note that <strong>actual file restoration</strong> will be done by the <strong>next SYSTEM_CHECK</strong> event. This interface only schedule the restoration.</p>'; $i = 1; if ($files->rowCount() > 0) { $titles = array('Filename', 'Release name', 'Package name', 'Delete date', 'Forcast purge date', 'Restore'); $html .= html_build_list_table_top($titles); foreach ($files as $file) { $purgeDate = strtotime('+' . $GLOBALS['sys_file_deletion_delay'] . ' day', $file['delete_date']); $html .= '<tr class="' . html_get_alt_row_color($i++) . '">'; $html .= '<td>' . $file['filename'] . '</td>'; $url = '/file/showfiles.php?group_id=' . $group_id . '#p_' . $file['package_id'] . 'r_' . $file['release_id']; $html .= '<td><a href="' . $url . '">' . $file['release_name'] . '</a></td>'; $url = '/file/showfiles.php?group_id=' . $group_id . '#p_' . $file['package_id']; $html .= '<td><a href="' . $url . '">' . $file['package_name'] . '</a></td>'; $html .= '<td>' . html_time_ago($file['delete_date']) . '</td>'; $html .= '<td>' . format_date($GLOBALS['Language']->getText('system', 'datefmt'), $purgeDate) . '</td>'; $html .= '<td align="center"><a href="?group_id=' . $group_id . '&func=confirm_restore_frs_file&id=' . $file['file_id'] . '"><img src="' . util_get_image_theme("ic/convert.png") . '" onClick="return confirm(\'Confirm restore of this file\')" border="0" height="16" width="16"></a></td>'; $html .= '</tr>'; } } if ($i == 1) { $html .= '<center>No restorable files found</center>'; } if ($toBeRestoredFiles->rowCount() > 0) { if ($i == 1) { $i++; $titles = array('Filename', 'Release name', 'Package name', '', '', ''); $html .= html_build_list_table_top($titles); } foreach ($toBeRestoredFiles as $file) { $html .= '<tr class="boxitemgrey">'; $html .= '<td>' . $file['filename'] . '</td>'; $url = '/file/showfiles.php?group_id=' . $group_id . '#p_' . $file['package_id'] . 'r_' . $file['release_id']; $html .= '<td><a href="' . $url . '">' . $file['release_name'] . '</a></td>'; $url = '/file/showfiles.php?group_id=' . $group_id . '#p_' . $file['package_id']; $html .= '<td><a href="' . $url . '">' . $file['package_name'] . '</a></td>'; if ($file['release_status'] != FRSRelease::STATUS_DELETED && $file['package_status'] != FRSPackage::STATUS_DELETED) { $html .= '<td align="center" colspan="2">File to be restored next SYSTEM_CHECK event</td>'; } else { $html .= '<td align="center" colspan="2">File marked to be restored in a deleted release</td>'; } $html .= '<td align="center"><img src="' . util_get_image_theme("ic/convert-grey.png") . '" border="0" height="16" width="16"></td>'; $html .= '</tr>'; } } if ($deletedFiles->rowCount() > 0) { if ($i == 1) { $i++; $titles = array('Filename', 'Release name', 'Package name', '', '', ''); $html .= html_build_list_table_top($titles); } foreach ($deletedFiles as $file) { $html .= '<tr class="boxitemgrey"">'; $html .= '<td>' . $file['filename'] . '</td>'; $url = '/file/showfiles.php?group_id=' . $group_id . '#p_' . $file['package_id'] . 'r_' . $file['release_id']; $html .= '<td><a href="' . $url . '">' . $file['release_name'] . '</a></td>'; $url = '/file/showfiles.php?group_id=' . $group_id . '#p_' . $file['package_id']; $html .= '<td><a href="' . $url . '">' . $file['package_name'] . '</a></td>'; $html .= '<td align="center" colspan="2">Not yet restorable</td>'; $html .= '<td align="center"><img src="' . util_get_image_theme("ic/convert-grey.png") . '" border="0" height="16" width="16"></td>'; $html .= '</tr>'; } } if ($i > 1) { $html .= '</table>'; } $html .= '</div>'; $idArray[] = 'frs_file'; $nomArray[] = $GLOBALS['Language']->getText('admin_groupedit', 'archived_files'); $htmlArray[] = $html; }