first commit

This commit is contained in:
2026-10-29 13:34:31 +07:00
commit 45e4595c57
255 changed files with 35457 additions and 0 deletions
+142
View File
@@ -0,0 +1,142 @@
<?php
/*******************************************************************
PHP Class : /Controller/System/AboutController
Description : Informasi Aplikasi
Created By : Siau Pheng ([email protected]).
Created Date : November 23th, 2011.
Last Modified : August 13th, 2026.
(c) 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
declare(strict_types=1);
namespace App\Controller\System;
use flight\Engine;
use flight\Session;
use Webapp\App\Register;
use Webapp\App\Update;
use Webapp\DB\CheckSQL;
use Webapp\Web\Param;
class AboutController {
protected Engine $app;
protected Session $session;
protected Update $update;
protected CheckSQL $check;
public function __construct(Engine $app, Session $session) {
$this->app = $app;
$this->session = $session;
$this->update = new Update($app);
$this->check = new CheckSQL($app);
$this->check->ignore_table("app_auth","app_backup","app_config","app_menu","app_operator");
}
public function update_check() {
$ainfo = $this->update->check();
$ajson['is_update'] = $ainfo['cur_sha1'] === $ainfo['new_sha1'];
$ajson['html'] = '
<div class="row">
<div class="col-sm-4 col-lg-4 col-form-label">Versi Aplikasi</div>
<div class="col col-form-label"><span class="form-control">'.$ainfo['cur_version'].'</span></div>
</div>
<div class="row">
<div class="col-sm-4 col-lg-4 col-form-label">Commit Sekarang</div>
<div class="col col-form-label"><span class="form-control"><strong>'.$ainfo['cur_sha'].'</strong> '.$ainfo['cur_date'].'</span></div>
</div>
<div class="row"><div class="col"><hr class="my-1"></div></div>
<div class="row">
<div class="col-sm-4 col-lg-4 col-form-label">Commit Update</div>
<div class="col col-form-label"><span class="form-control"><strong>'.$ainfo['new_sha'].'</strong> '.$ainfo['new_date'].'</span></div>
</div>
<div class="row">
<div class="col-sm-4 col-lg-4 col-form-label">Informasi Update</div>
<div class="col col-form-label"><span class="form-control">'.$ainfo['new_message'].'</span></div>
</div>
<div class="row">
<div class="col-sm-4 col-lg-4 col-form-label">Status Server</div>
<div class="col">
<span class="form-control text-'.($ainfo['svr_status']===1?'success border-primary':'warning border-danger').'" id="spanStatus">'.$ainfo['svr_message'].'</span>
</div>
</div>';
$this->app->json($ajson);
}
public function update_proses() {
$ajson = $this->update->go();
$this->app->json($ajson);
}
public function db_check() {
$ajson['html'] = '<ul id="db-list"><li>Proses ...</li></ul>';
$ajson['db_count'] = $this->check->count_db();
$this->app->json($ajson);
}
public function db_proses() {
$nomor = Param::Get('Nomor', 0);
$ajson['html'] = $this->check->check_db_step($nomor);
$this->app->json($ajson);
}
public function opti_proses() {
$nomor = Param::Get('Nomor', 0);
$ajson['html'] = $this->check->optimize_db_step($nomor);
$this->app->json($ajson);
}
public function index() {
$ajson = [];
$apps = $this->session->get('WEB_APP');
$ajson['html'] = '<div>
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="about-tab" data-bs-toggle="tab" data-bs-target="#about" type="button" role="tab" aria-controls="about" aria-selected="true">Tentang Aplikasi</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="other-tab" data-bs-toggle="tab" data-bs-target="#other" type="button" role="tab" aria-controls="other" aria-selected="false">Informasi Pendukung</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="tool-tab" data-bs-toggle="tab" data-bs-target="#tool" type="button" role="tab" aria-controls="tool" aria-selected="false">Tools</button>
</li>
</ul>
<div class="tab-content border border-top-0 p-3">
<div class="tab-pane fade active show" id="about" role="tabpanel" aria-labelledby="about-tab">
<div class="text-center text-secondary">
<span class="fs-5">'.$apps['REG_NAME'].'</span><br>'.$apps['REG_ADDRESS'].'<br>'.$apps['REG_CITY'].' '.$apps['REG_POSTCODE'].'</div><br>
<table>
<tr><td>Register ID</td><td class="c pe-1">:</td><td nowrap>'.Register::reg_id($this->session).'</td></tr>
<tr><td>Register Code</td><td class="c">:</td><td>'.Register::reg_code($this->session).'</td></tr>
</table>
<hr class="my-2">
<div class="text-center text-secondary">'.$apps['APP_NAMES'].' Ver. '.$apps['APP_VER'].'<br>Updated : '.$apps['APP_UPDATED'].'<br><br><span style="font-size:.9em;"><i class="bi-c-circle pe-1"></i>'.$apps['CREATOR_YEARS'].', '.$apps['CREATOR_NAME'].'<br>'.$apps['CREATOR_WEBSITE'].'.</span></div>
</div>
<div class="tab-pane fade" id="other" role="tabpanel" aria-labelledby="other-tab">
<div class="row"><div class="col" id="divBuildInfo"></div></div>
</div>
<div class="tab-pane fade" id="tool" role="tabpanel" aria-labelledby="tool-tab">
<div class="row mb-2">
<div class="col-md-8">Proses Cek dan Otomatis Repair Database, jika terjadi masalah dengan database aplikasi.</div>
<div class="col-md-4 d-grid gap-2 my-auto"><button type="button" class="btn btn-info col-12" id="butDBCek">Cek Database</button></div>
</div>
<div class="row mb-2">
<div class="col-md-8">Proses Optimalisasi database, merampingkan kembali database aplikasi.</div>
<div class="col-md-4 d-grid gap-2 my-auto"><button type="button" class="btn btn-warning col-12" id="butDBOpti">Opti Database</button></div>
</div>
<div class="row">
<div class="col-md-8">Cek update aplikasi secara online.</div>
<div class="col-md-4 d-grip gap-2 my-auto"><button type="button" class="btn btn-success col-12" id="butUpdateCek">Cek Update</button></div>
</div>
</div>
</div>
</div>';
$this->app->json($ajson);
}
}