load("document"); if (!@$rev->info->Pages) { $rev->info = $rev->getPDF()->info(); $rev->save(); } return blade("revision", ["rev" => $rev]); } public static function api_set($id) { $r = new Revision($id); if ($r !== false) { foreach ($_POST as $k=>$v) { $r->$k = trim($v); } $r->save(); } return $r; } public static function delete($id) { $r = new Revision($id); $r->load("document"); $doc = $r->document; $r->delete(); return redirect("/document/" . $doc->id); } public static function redownload($id) { $r = new Revision($id); $j = new RedownloadJob($r->id, $r->origtitle, $r->path() . "/doc.pdf"); $jobid = $j->queue(); flash("success", "Job queued as ID " . $jobid); return redirect("/revision/" . $id); } public static function purge($id) { $r = new Revision($id); $r->purge(); return redirect("/revision/" . $id); } public static function recompress($id) { $r = new Revision($id); $j = new RecompressJob($r->id); $j->queue(); flash("info", "Recompression job queued"); return redirect("/revision/" . $id); } public static function ocr($id) { $j = new OCRJob($id); $j->queue(); return redirect("/revision/" . $id); } public static function rate_revision($id, $rating) { $user = get_user(); if (!$user) { return new Revision($id); } $db = DB::getInstance(); $db->query("INSERT INTO revision_rating (owner,revision,rating) values (:owner,:revision,:rating) ON DUPLICATE KEY UPDATE rating=:rating", [ "owner" => $user->id, "revision" => $id, "rating" => $rating ]); $db->query("UPDATE revision SET rating=(SELECT AVG(rating) FROM revision_rating WHERE revision=:revision) WHERE id=:revision", ["revision" => $id]); return new Revision($id); } public static function split_revision($id) { $r = new Revision($id); $r->load("document"); $doc = new Document(); $doc->title = $r->document->title; $doc->subtitle = $r->document->subtitle; $doc->subsubtitle = $r->document->subsubtitle; $doc->overview = $r->document->overview; $doc->oneliner = $r->document->oneliner; $doc->internal_id = $r->document->internal_id; $doc->save(); foreach ($r->document->products as $prod) { $dp = new DocProduct(); $dp->document = $doc->id; $dp->product = $prod->id; $dp->save(); } $r->document = $doc->id; $r->save(); return redirect("/document/" . $doc->id); } }