Approval enable option

This commit is contained in:
Matthew Barbour 2019-10-14 14:40:15 -05:00 committed by Rogue Ralsha
parent 2b46ede098
commit 5f89420fab
2 changed files with 30 additions and 15 deletions

View File

@ -41,6 +41,11 @@ class Approval extends Extension
} }
} }
public function onSetupBuilding(SetupBuildingEvent $event)
{
$this->theme->display_admin_block($event);
}
public function onAdminBuilding(AdminBuildingEvent $event) public function onAdminBuilding(AdminBuildingEvent $event)
{ {
$this->theme->display_admin_form(); $this->theme->display_admin_form();
@ -98,21 +103,23 @@ class Approval extends Extension
const SEARCH_REGEXP = "/^approved:(yes|no)/"; const SEARCH_REGEXP = "/^approved:(yes|no)/";
public function onSearchTermParse(SearchTermParseEvent $event) public function onSearchTermParse(SearchTermParseEvent $event)
{ {
global $user, $database; global $user, $database, $config;
$matches = []; if($config->get_bool(ApprovalConfig::IMAGES)) {
$matches = [];
if (is_null($event->term) && $this->no_approval_query($event->context)) { if (is_null($event->term) && $this->no_approval_query($event->context)) {
$event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_Y ")));
}
if (preg_match(self::SEARCH_REGEXP, strtolower($event->term), $matches)) {
if ($user->can(Permissions::APPROVE_IMAGE)&&$matches[1]=="no") {
$event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_N ")));
} else {
$event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_Y "))); $event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_Y ")));
} }
if (preg_match(self::SEARCH_REGEXP, strtolower($event->term), $matches)) {
if ($user->can(Permissions::APPROVE_IMAGE) && $matches[1] == "no") {
$event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_N ")));
} else {
$event->add_querylet(new Querylet($database->scoreql_to_sql("approved = SCORE_BOOL_Y ")));
}
}
} }
} }
@ -151,17 +158,17 @@ class Approval extends Extension
} }
public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event) public function onImageAdminBlockBuilding(ImageAdminBlockBuildingEvent $event)
{ {
global $user; global $user, $config;
if ($event->image->approved===false && $user->can(Permissions::APPROVE_IMAGE)) { if ($event->image->approved===false && $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->id));
} }
} }
public function onBulkActionBlockBuilding(BulkActionBlockBuildingEvent $event) public function onBulkActionBlockBuilding(BulkActionBlockBuildingEvent $event)
{ {
global $user; global $user, $config;
if ($user->can(Permissions::APPROVE_IMAGE)&&in_array("approved:no", $event->search_terms)) { if ($user->can(Permissions::APPROVE_IMAGE)&&in_array("approved:no", $event->search_terms)&& $config->get_bool(ApprovalConfig::IMAGES)) {
$event->add_action("bulk_approve_image", "Approve", "a"); $event->add_action("bulk_approve_image", "Approve", "a");
} }
} }

View File

@ -29,9 +29,17 @@ class ApprovalTheme extends Themelet
'; ';
} }
public function display_admin_block(SetupBuildingEvent $event)
{
$sb = new SetupBlock("Approval");
$sb->add_bool_option(ApprovalConfig::IMAGES, "Images: ");
$event->panel->add_block($sb);
}
public function display_admin_form() public function display_admin_form()
{ {
global $page; global $page;
$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='de_approve_all'>De-approve All Images</button>";