108 lines
2.5 KiB
PHP
108 lines
2.5 KiB
PHP
<?php
|
|
|
|
class RevisionController {
|
|
|
|
public static function show($id) {
|
|
|
|
$rev = new Revision($id);
|
|
$rev->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);
|
|
}
|
|
|
|
}
|