'KEEP'" . " ORDER BY b.displayname ASC, v.createtime ASC"); $NOW = time(); $rows = array(); while ($row = $res->fetch(PDO::FETCH_ASSOC)) { if ($row['latexptime'] > $NOW && $row['latdelstate'] === 'KEEP') { $row['hasNewerClass'] = 'glyphicon-ok green'; $row['checked'] = 'checked'; } else { $row['hasNewerClass'] = 'glyphicon-remove red'; } if ($row['deletestate'] === 'WANT_DELETE') { $row['name_extra_class'] = 'slx-strike'; } $row['version'] = date('d.m.Y H:i:s', $row['createtime']); $row['rawfilesize'] = $row['filesize']; $row['filesize'] = Util::readableFileSize($row['filesize']); $rows[] = $row; } return $rows; } public static function doRender() { $expiredImages = self::loadExpiredImages(); if (empty($expiredImages)) { Message::addSuccess('no-expired-images'); } else { $data = ['images' => $expiredImages]; Permission::addGlobalTags($data['perm'], null, ['expiredimages.delete', 'orphaned.scan']); Render::addTemplate('images-delete', $data); } } public static function doAjax() { $action = Request::post('action'); if ($action === 'delimages') { self::handleDeleteImages(); } elseif ($action === 'orphaned') { self::handleOrphaned(); } else { echo 'Huh?'; } } private static function handleDeleteImages() { User::assertPermission("expiredimages.delete"); $images = Request::post('images', false); $result = false; if (is_array($images)) { foreach ($images as $image => $val) { if (strtolower($val) !== 'on') continue; Database::exec("UPDATE sat.imageversion SET deletestate = 'WANT_DELETE'" . " WHERE deletestate = 'SHOULD_DELETE' AND imageversionid = :imageversionid", array( 'imageversionid' => $image )); } if (!empty($images)) { $result = Download::asStringPost('http://127.0.0.1:9080/do/delete-images', false, 10, $code); if ($code == 999) { $result .= "\nConnection to DMSD failed."; } } } if (!empty($result)) { echo $result; } } private static function handleOrphaned() { if (Request::post('delete', 0, 'int') !== 0) { User::assertPermission("orphaned.delete"); $action = 'delete'; } else { User::assertPermission("orphaned.scan"); $action = 'scan'; } // Talk to dmsd $result = Download::asStringPost('http://127.0.0.1:9080/do/scan-orphaned-files', ['action' => $action], 10, $code); if ($code == 999) { $result = '
' . $result . ' - Connection to DMSD failed.
'; } else { $json = json_decode($result, true); if (is_array($json)) { $result = []; $showDelete = false; foreach ($json as $k => $v) { $result[] = ['file' => $k, 'status' => $v]; if ($v === 'EXISTS') { $showDelete = true; } } $data = ['files' => $result, 'show_delete' => $showDelete]; Permission::addGlobalTags($data['perm'], null, ['orphaned.delete']); $result = Render::parse('images-orphaned', $data); } } echo $result; } }