mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-03-31 16:45:27 +00:00
init auth widget entity
This commit is contained in:
parent
cec95047dd
commit
76bb3c7bc9
2 changed files with 110 additions and 0 deletions
|
|
@ -23,6 +23,7 @@ class Page
|
|||
public Container $container;
|
||||
|
||||
// Requirements
|
||||
public Page\Auth $auth;
|
||||
public Page\Title $title;
|
||||
public Page\Navbar $navbar;
|
||||
public Page\Progressbar $progressbar;
|
||||
|
|
@ -42,6 +43,11 @@ class Page
|
|||
GtkOrientation::VERTICAL
|
||||
);
|
||||
|
||||
// Init auth
|
||||
$this->auth = new Page\Auth(
|
||||
$this
|
||||
);
|
||||
|
||||
// Init title
|
||||
$this->title = new Page\Title(
|
||||
$this
|
||||
|
|
@ -210,6 +216,49 @@ class Page
|
|||
// Request completed
|
||||
if ($this->connection->isCompleted())
|
||||
{
|
||||
// Response form requested
|
||||
if ($this->connection->isAuth())
|
||||
{
|
||||
// Update title
|
||||
$this->title->set(
|
||||
$this->connection->getTitle(),
|
||||
$this->connection->getSubtitle(),
|
||||
$this->connection->getTooltip()
|
||||
);
|
||||
|
||||
// Refresh header by new title if current page is active
|
||||
if ($this === $this->container->tab->get())
|
||||
{
|
||||
$this->container->browser->header->setTitle(
|
||||
$this->title->getValue(),
|
||||
$this->title->getSubtitle()
|
||||
);
|
||||
}
|
||||
|
||||
// Hide progressbar
|
||||
$this->progressbar->hide();
|
||||
|
||||
// Show auth dialog
|
||||
if ($this->auth->dialog())
|
||||
{
|
||||
// Update page
|
||||
$this->update(
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
// Update content
|
||||
$this->content->set(
|
||||
$this->connection->getMime(),
|
||||
$this->connection->getData()
|
||||
);
|
||||
}
|
||||
|
||||
return false; // stop
|
||||
}
|
||||
|
||||
// Response form requested
|
||||
if ($request = $this->connection->getRequest())
|
||||
{
|
||||
|
|
|
|||
61
src/Entity/Browser/Container/Page/Auth.php
Normal file
61
src/Entity/Browser/Container/Page/Auth.php
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Yggverse\Yoda\Entity\Browser\Container\Page;
|
||||
|
||||
use \GtkButtonsType;
|
||||
use \GtkDialogFlags;
|
||||
use \GtkMessageDialog;
|
||||
use \GtkMessageType;
|
||||
use \GtkResponseType;
|
||||
|
||||
use \Yggverse\Yoda\Entity\Browser\Container\Page;
|
||||
|
||||
class Auth
|
||||
{
|
||||
// GTK
|
||||
public GtkMessageDialog $gtk;
|
||||
|
||||
// Dependencies
|
||||
public Page $page;
|
||||
|
||||
// Defaults
|
||||
public const DIALOG_MESSAGE_FORMAT = 'Authorization';
|
||||
public const DIALOG_DEFAULT_RESPONSE = GtkResponseType::CANCEL;
|
||||
|
||||
public function __construct(
|
||||
Page $page,
|
||||
) {
|
||||
// Init dependencies
|
||||
$this->page = $page;
|
||||
}
|
||||
|
||||
public function dialog(): bool
|
||||
{
|
||||
$this->gtk = new GtkMessageDialog(
|
||||
$this->page->container->browser->gtk,
|
||||
GtkDialogFlags::MODAL,
|
||||
GtkMessageType::INFO,
|
||||
GtkButtonsType::OK_CANCEL,
|
||||
_($this::DIALOG_MESSAGE_FORMAT)
|
||||
);
|
||||
|
||||
$this->gtk->set_default_response(
|
||||
$this::DIALOG_DEFAULT_RESPONSE
|
||||
);
|
||||
|
||||
if (GtkResponseType::OK == $this->gtk->run())
|
||||
{
|
||||
// @TODO
|
||||
$this->gtk->destroy();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Dialog canceled
|
||||
$this->gtk->destroy();
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue