Ext Admin Page Save Problem

Hi, when i change the checkbox and save it its dont save this is my code: admin/controller.php
<?php

namespace Pterodactyl\Http\Controllers\Admin\Extensions\{identifier};

use Illuminate\View\View;
use Illuminate\View\Factory as ViewFactory;
use Pterodactyl\Http\Controllers\Controller;
use Illuminate\Contracts\Config\Repository as ConfigRepository;
use Pterodactyl\Contracts\Repository\SettingsRepositoryInterface;
use Pterodactyl\Http\Requests\Admin\AdminFormRequest;
use Illuminate\Http\RedirectResponse;

use Pterodactyl\BlueprintFramework\Libraries\ExtensionLibrary\Admin\BlueprintAdminLibrary as BlueprintExtensionLibrary;

class {identifier}ExtensionController extends Controller
{
public function __construct(
private ViewFactory $view,
private BlueprintExtensionLibrary $blueprint,
private ConfigRepository $config,
private SettingsRepositoryInterface $settings,
) {}

public function index(): View
{

// GET DATABASE VALUES
$adm_servers_server_name = $this->blueprint->dbGet('{identifier}', 'adm_servers_server_name');

// SET DEFAULT DATABASE VALUES
$default_adm_servers_server_name = 0;


// APPLY DEFAULT DATABASE VALUES
if($adm_servers_server_name == "") { $this->blueprint->dbSet('{identifier}', 'adm_servers_server_name', "$default_adm_servers_server_name"); $adm_servers_server_name = $default_adm_servers_server_name; };

return $this->view->make(
'admin.extensions.{identifier}.index', [
'adm_servers_server_name' => $adm_servers_server_name,

'root' => "/admin/extensions/{identifier}",
'blueprint' => $this->blueprint,
]
);
}
/**
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/
public function update({identifier}SettingsFormRequest $request): RedirectResponse
{
foreach ($request->normalize() as $key => $value) {
$this->settings->set('{identifier}::' . $key, $value);
}

return redirect()->route('admin.extensions.{identifier}.index');
}
}
class {identifier}SettingsFormRequest extends AdminFormRequest
{
public function rules(): array
{
return [
'adm_servers_server_name' => 'boolean',
];
}

public function attributes(): array
{
return [
'adm_servers_server_name' => 'Server Name',
];
}
}
<?php

namespace Pterodactyl\Http\Controllers\Admin\Extensions\{identifier};

use Illuminate\View\View;
use Illuminate\View\Factory as ViewFactory;
use Pterodactyl\Http\Controllers\Controller;
use Illuminate\Contracts\Config\Repository as ConfigRepository;
use Pterodactyl\Contracts\Repository\SettingsRepositoryInterface;
use Pterodactyl\Http\Requests\Admin\AdminFormRequest;
use Illuminate\Http\RedirectResponse;

use Pterodactyl\BlueprintFramework\Libraries\ExtensionLibrary\Admin\BlueprintAdminLibrary as BlueprintExtensionLibrary;

class {identifier}ExtensionController extends Controller
{
public function __construct(
private ViewFactory $view,
private BlueprintExtensionLibrary $blueprint,
private ConfigRepository $config,
private SettingsRepositoryInterface $settings,
) {}

public function index(): View
{

// GET DATABASE VALUES
$adm_servers_server_name = $this->blueprint->dbGet('{identifier}', 'adm_servers_server_name');

// SET DEFAULT DATABASE VALUES
$default_adm_servers_server_name = 0;


// APPLY DEFAULT DATABASE VALUES
if($adm_servers_server_name == "") { $this->blueprint->dbSet('{identifier}', 'adm_servers_server_name', "$default_adm_servers_server_name"); $adm_servers_server_name = $default_adm_servers_server_name; };

return $this->view->make(
'admin.extensions.{identifier}.index', [
'adm_servers_server_name' => $adm_servers_server_name,

'root' => "/admin/extensions/{identifier}",
'blueprint' => $this->blueprint,
]
);
}
/**
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/
public function update({identifier}SettingsFormRequest $request): RedirectResponse
{
foreach ($request->normalize() as $key => $value) {
$this->settings->set('{identifier}::' . $key, $value);
}

return redirect()->route('admin.extensions.{identifier}.index');
}
}
class {identifier}SettingsFormRequest extends AdminFormRequest
{
public function rules(): array
{
return [
'adm_servers_server_name' => 'boolean',
];
}

public function attributes(): array
{
return [
'adm_servers_server_name' => 'Server Name',
];
}
}
Solution:
MDN Web Docs
<input type="checkbox"> - HTML | MDN
<input> elements of type checkbox are rendered by default as boxes that are checked (ticked) when activated, like you might see in an official government paper form. The exact appearance depends upon the operating system configuration under which the browser is running. Generally this is a square but it may have rounded corners. A checkbox allow...
Jump to solution
3 Replies
Partymann2000
Partymann2000OP16h ago
admin/view.blade.php
<form id="config-form" action="" method="POST">
<script>
// Show save button upon form input changes.
document.addEventListener("DOMContentLoaded", function () {showSaveButton()});
function showSaveButton() {
const {identifier}configForm = document.getElementById("config-form");
const {identifier}saveOverlay = document.getElementById("save-overlay");

{identifier}configForm.addEventListener("change", function () {
{identifier}saveOverlay.style.display = "inline";
setTimeout(() => {
{identifier}saveOverlay.style.bottom = "10px";
}, 100)
});
}
</script>

<!-- Save button overlay. (appears when form content is changed) -->
<div id="save-overlay">{{ csrf_field() }}<button type="submit" name="_method" value="PATCH" style="transition: background-color .3s;" class="btn btn-primary btn-sm">Apply Changes</button></div>
<style>#save-overlay {display: none;position: fixed;transition: bottom 1s;bottom: -200px;z-index: 500;}</style>

<div class="row">

<div class="col-xs-12 col-md-4 col-lg-3">
<div class="box box-warning">
<div class="box-header with-border">

<h3 class="box-title">
Admin Settings
</h3>
</div>
<div class="box-body">
<h4> Servers Section </h4>

<!-- 5 Togles with Server Name, UUID, Owner, Node and Connection -->
<! -- Server Name Toggle Variable: $adm_servers_server_name-->
<div class="form-group">
<label for="adm_servers_server_name">Show Server Name</label>
<input type="checkbox" id="adm_servers_server_name" name="adm_servers_server_name" value="1" @if($adm_servers_server_name == 1) checked @endif>
</div>

</div>
</div>
</div>

</div>
</form>
<form id="config-form" action="" method="POST">
<script>
// Show save button upon form input changes.
document.addEventListener("DOMContentLoaded", function () {showSaveButton()});
function showSaveButton() {
const {identifier}configForm = document.getElementById("config-form");
const {identifier}saveOverlay = document.getElementById("save-overlay");

{identifier}configForm.addEventListener("change", function () {
{identifier}saveOverlay.style.display = "inline";
setTimeout(() => {
{identifier}saveOverlay.style.bottom = "10px";
}, 100)
});
}
</script>

<!-- Save button overlay. (appears when form content is changed) -->
<div id="save-overlay">{{ csrf_field() }}<button type="submit" name="_method" value="PATCH" style="transition: background-color .3s;" class="btn btn-primary btn-sm">Apply Changes</button></div>
<style>#save-overlay {display: none;position: fixed;transition: bottom 1s;bottom: -200px;z-index: 500;}</style>

<div class="row">

<div class="col-xs-12 col-md-4 col-lg-3">
<div class="box box-warning">
<div class="box-header with-border">

<h3 class="box-title">
Admin Settings
</h3>
</div>
<div class="box-body">
<h4> Servers Section </h4>

<!-- 5 Togles with Server Name, UUID, Owner, Node and Connection -->
<! -- Server Name Toggle Variable: $adm_servers_server_name-->
<div class="form-group">
<label for="adm_servers_server_name">Show Server Name</label>
<input type="checkbox" id="adm_servers_server_name" name="adm_servers_server_name" value="1" @if($adm_servers_server_name == 1) checked @endif>
</div>

</div>
</div>
</div>

</div>
</form>
Solution
Emma
Emma15h ago
MDN Web Docs
<input type="checkbox"> - HTML | MDN
<input> elements of type checkbox are rendered by default as boxes that are checked (ticked) when activated, like you might see in an official government paper form. The exact appearance depends upon the operating system configuration under which the browser is running. Generally this is a square but it may have rounded corners. A checkbox allow...
Partymann2000
Partymann2000OP15h ago
oh ** i see

Did you find this page helpful?