Added disapproving controls to approval extension
This commit is contained in:
parent
4dfb2761ab
commit
1565b8570b
@ -37,6 +37,21 @@ class Approval extends Extension
|
|||||||
|
|
||||||
self::approve_image($image_id);
|
self::approve_image($image_id);
|
||||||
$page->set_mode(PageMode::REDIRECT);
|
$page->set_mode(PageMode::REDIRECT);
|
||||||
|
$page->set_redirect(make_link("post/view/" . $image_id));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($event->page_matches("disapprove_image") && $user->can(Permissions::APPROVE_IMAGE)) {
|
||||||
|
// Try to get the image ID
|
||||||
|
$image_id = int_escape($event->get_arg(0));
|
||||||
|
if (empty($image_id)) {
|
||||||
|
$image_id = isset($_POST['image_id']) ? $_POST['image_id'] : null;
|
||||||
|
}
|
||||||
|
if (empty($image_id)) {
|
||||||
|
throw new SCoreException("Can not disapprove image: No valid Image ID given.");
|
||||||
|
}
|
||||||
|
|
||||||
|
self::disapprove_image($image_id);
|
||||||
|
$page->set_mode(PageMode::REDIRECT);
|
||||||
$page->set_redirect(make_link("post/view/".$image_id));
|
$page->set_redirect(make_link("post/view/".$image_id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -69,7 +84,7 @@ class Approval extends Extension
|
|||||||
["approved_by_id"=>$user->id]
|
["approved_by_id"=>$user->id]
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case "de_approve_all":
|
case "disapprove_all":
|
||||||
$database->set_timeout(300000); // These updates can take a little bit
|
$database->set_timeout(300000); // These updates can take a little bit
|
||||||
$database->execute($database->scoreql_to_sql(
|
$database->execute($database->scoreql_to_sql(
|
||||||
"UPDATE images SET approved = SCORE_BOOL_N, approved_by_id = NULL WHERE approved = SCORE_BOOL_Y"));
|
"UPDATE images SET approved = SCORE_BOOL_N, approved_by_id = NULL WHERE approved = SCORE_BOOL_Y"));
|
||||||
@ -158,11 +173,22 @@ class Approval extends Extension
|
|||||||
["approved_by_id"=>$user->id, "id"=>$image_id]
|
["approved_by_id"=>$user->id, "id"=>$image_id]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function disapprove_image($image_id)
|
||||||
|
{
|
||||||
|
global $database, $user;
|
||||||
|
|
||||||
|
$database->execute($database->scoreql_to_sql(
|
||||||
|
"UPDATE images SET approved = SCORE_BOOL_N, approved_by_id = NULL WHERE id = :id AND approved = SCORE_BOOL_Y"),
|
||||||
|
["id"=>$image_id]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event)
|
public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event)
|
||||||
{
|
{
|
||||||
global $user, $config;
|
global $user, $config;
|
||||||
if ($event->image->approved===false && $user->can(Permissions::APPROVE_IMAGE) && $config->get_bool(ApprovalConfig::IMAGES)) {
|
if($user->can(Permissions::APPROVE_IMAGE) && $config->get_bool(ApprovalConfig::IMAGES)) {
|
||||||
$event->add_part($this->theme->get_image_admin_html($event->image->id));
|
$event->add_part($this->theme->get_image_admin_html($event->image));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,8 +196,12 @@ class Approval extends Extension
|
|||||||
{
|
{
|
||||||
global $user, $config;
|
global $user, $config;
|
||||||
|
|
||||||
if ($user->can(Permissions::APPROVE_IMAGE)&&in_array("approved:no", $event->search_terms)&& $config->get_bool(ApprovalConfig::IMAGES)) {
|
if ($user->can(Permissions::APPROVE_IMAGE)&& $config->get_bool(ApprovalConfig::IMAGES)) {
|
||||||
$event->add_action("bulk_approve_image", "Approve", "a");
|
if(in_array("approved:no", $event->search_terms)) {
|
||||||
|
$event->add_action("bulk_approve_image", "Approve", "a");
|
||||||
|
} else {
|
||||||
|
$event->add_action("bulk_disapprove_image", "Disapprove");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,6 +220,16 @@ class Approval extends Extension
|
|||||||
flash_message("Approved $total items");
|
flash_message("Approved $total items");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "bulk_disapprove_image":
|
||||||
|
if ($user->can(Permissions::APPROVE_IMAGE)) {
|
||||||
|
$total = 0;
|
||||||
|
foreach ($event->items as $image) {
|
||||||
|
self::disapprove_image($image->id);
|
||||||
|
$total++;
|
||||||
|
}
|
||||||
|
flash_message("Disapproved $total items");
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,14 +2,23 @@
|
|||||||
|
|
||||||
class ApprovalTheme extends Themelet
|
class ApprovalTheme extends Themelet
|
||||||
{
|
{
|
||||||
public function get_image_admin_html(int $image_id)
|
public function get_image_admin_html(Image $image)
|
||||||
{
|
{
|
||||||
$html = "
|
if($image->approved===true) {
|
||||||
".make_form(make_link('approve_image/'.$image_id), 'POST')."
|
$html = "
|
||||||
<input type='hidden' name='image_id' value='$image_id'>
|
".make_form(make_link('disapprove_image/'.$image->id), 'POST')."
|
||||||
|
<input type='hidden' name='image_id' value='$image->id'>
|
||||||
|
<input type='submit' value='Disapprove'>
|
||||||
|
</form>
|
||||||
|
";
|
||||||
|
} else {
|
||||||
|
$html = "
|
||||||
|
".make_form(make_link('approve_image/'.$image->id), 'POST')."
|
||||||
|
<input type='hidden' name='image_id' value='$image->id'>
|
||||||
<input type='submit' value='Approve'>
|
<input type='submit' value='Approve'>
|
||||||
</form>
|
</form>
|
||||||
";
|
";
|
||||||
|
}
|
||||||
|
|
||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
@ -42,7 +51,7 @@ class ApprovalTheme extends Themelet
|
|||||||
|
|
||||||
$html = make_form(make_link("admin/approval"), "POST");
|
$html = make_form(make_link("admin/approval"), "POST");
|
||||||
$html .= "<button name='approval_action' value='approve_all'>Approve All Images</button><br/>";
|
$html .= "<button name='approval_action' value='approve_all'>Approve All Images</button><br/>";
|
||||||
$html .= "<button name='approval_action' value='de_approve_all'>De-approve All Images</button>";
|
$html .= "<button name='approval_action' value='disapprove_all'>Disapprove All Images</button>";
|
||||||
$html .= "</form>\n";
|
$html .= "</form>\n";
|
||||||
$page->add_block(new Block("Approval", $html));
|
$page->add_block(new Block("Approval", $html));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user