Some more functionalities
This commit is contained in:
70
core/Documents/Admin.class.php
Normal file
70
core/Documents/Admin.class.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
namespace Documents {
|
||||
class Admin extends \Elements\Document {
|
||||
public function __construct($user) {
|
||||
parent::__construct($user, Admin\Head::class, Admin\Body::class);
|
||||
$this->databseRequired = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace Documents\Admin {
|
||||
|
||||
class Head extends \Elements\Head {
|
||||
|
||||
public function __construct($document) {
|
||||
parent::__construct($document);
|
||||
}
|
||||
|
||||
protected function initSources() {
|
||||
$this->loadJQuery();
|
||||
$this->loadBootstrap();
|
||||
$this->loadFontawesome();
|
||||
$this->addJS(\Elements\Script::CORE);
|
||||
$this->addCSS(\Elements\Link::CORE);
|
||||
$this->addJS(\Elements\Script::ADMIN);
|
||||
$this->addCSS(\Elements\Link::ADMIN);
|
||||
}
|
||||
|
||||
protected function initMetas() {
|
||||
return array(
|
||||
array('name' => 'viewport', 'content' => 'width=device-width, initial-scale=1.0'),
|
||||
array('name' => 'format-detection', 'content' => 'telephone=yes'),
|
||||
array('charset' => 'utf-8'),
|
||||
array("http-equiv" => 'expires', 'content' => '0'),
|
||||
array("name" => 'robots', 'content' => 'noarchive'),
|
||||
);
|
||||
}
|
||||
|
||||
protected function initRawFields() {
|
||||
return array();
|
||||
}
|
||||
|
||||
protected function initTitle() {
|
||||
return "WebBase - Administration";
|
||||
}
|
||||
}
|
||||
|
||||
class Body extends \Elements\Body {
|
||||
|
||||
public function __construct($document) {
|
||||
parent::__construct($document);
|
||||
}
|
||||
|
||||
public function getCode() {
|
||||
$html = parent::getCode();
|
||||
|
||||
$document = $this->getDocument();
|
||||
if(!$document->getUser()->isLoggedIn()) {
|
||||
$html .= new \Views\Login($document);
|
||||
} else {
|
||||
$html .= "You are logged in :]";
|
||||
}
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -97,24 +97,23 @@ namespace Documents\Install {
|
||||
return self::DATABASE_CONFIGURATION;
|
||||
}
|
||||
|
||||
$query = "SELECT * FROM User";
|
||||
$sql = $user->getSQL();
|
||||
if(!is_null($sql) && $sql->isConnected()) {
|
||||
$res = $sql->query($query);
|
||||
if($res) {
|
||||
if($res->num_rows === 0) {
|
||||
$step = self::CREATE_USER;
|
||||
} else {
|
||||
$step = self::ADD_MAIL_SERVICE;
|
||||
}
|
||||
$request = new \Api\ExecuteSelect($user);
|
||||
$success = $request->execute(array("query" => "SELECT COUNT(*) AS count FROM User"));
|
||||
$this->errorString = $request->getLastError();
|
||||
|
||||
if($success) {
|
||||
if($request->getResult()['rows'][0]["count"] > 0) {
|
||||
$step = self::ADD_MAIL_SERVICE;
|
||||
} else {
|
||||
return self::CREATE_USER;
|
||||
}
|
||||
} else {
|
||||
$step = self::DATABASE_CONFIGURATION;
|
||||
return self::DATABASE_CONFIGURATION;
|
||||
}
|
||||
|
||||
if($step == self::ADD_MAIL_SERVICE && $config->isFilePresent("Mail")) {
|
||||
if($step === self::ADD_MAIL_SERVICE && $config->isFilePresent("Mail")) {
|
||||
$step = self::FINISH_INSTALLATION;
|
||||
if(!$config->isFilePresent("JWT") && $config->create("JWT", generateRandomString(32))) {
|
||||
if(!$config->isFilePresent("JWT") && !$config->create("JWT", generateRandomString(32))) {
|
||||
$this->errorString = "Unable to create jwt file";
|
||||
}
|
||||
}
|
||||
@@ -532,7 +531,8 @@ namespace Documents\Install {
|
||||
array("title" => "Username", "name" => "username", "type" => "text", "required" => true),
|
||||
array("title" => "Password", "name" => "password", "type" => "password", "required" => true),
|
||||
array("title" => "Confirm Password", "name" => "confirmPassword", "type" => "password", "required" => true),
|
||||
)
|
||||
),
|
||||
"previousButton" => true
|
||||
),
|
||||
self::ADD_MAIL_SERVICE => array(
|
||||
"title" => "Optional: Add Mail Service",
|
||||
@@ -550,7 +550,8 @@ namespace Documents\Install {
|
||||
)
|
||||
)),
|
||||
),
|
||||
"skip" => true
|
||||
"skip" => true,
|
||||
"previousButton" => true
|
||||
),
|
||||
self::FINISH_INSTALLATION => array(
|
||||
"title" => "Finish Installation",
|
||||
@@ -562,8 +563,8 @@ namespace Documents\Install {
|
||||
return "";
|
||||
}
|
||||
|
||||
$prevDisabled = ($this->currentStep <= self::DATABASE_CONFIGURATION);
|
||||
$currentView = $views[$this->currentStep];
|
||||
$prevDisabled = !isset($currentView["previousButton"]) || !$currentView["previousButton"];
|
||||
$spinnerIcon = $this->createIcon("spinner");
|
||||
$title = $currentView["title"];
|
||||
|
||||
@@ -695,6 +696,7 @@ namespace Documents\Install {
|
||||
$progressSidebar = $this->createProgressSidebar();
|
||||
$progressMainview = $this->createProgessMainview();
|
||||
$errorStyle = ($this->errorString ? '' : ' style="display:none"');
|
||||
$errorClass = ($this->errorString ? ' alert-danger' : '');
|
||||
|
||||
$html .= "
|
||||
<body class=\"bg-light\">
|
||||
@@ -718,7 +720,7 @@ namespace Documents\Install {
|
||||
</div>
|
||||
<div class=\"col-md-8 order-md-1\">
|
||||
$progressMainview
|
||||
<div class=\"alert margin-top-m\" id=\"status\"$errorStyle>$this->errorString</div>
|
||||
<div class=\"alert$errorClass margin-top-m\" id=\"status\"$errorStyle>$this->errorString</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user