added netzgebiet copy button

This commit is contained in:
Luca Haid
2026-01-07 18:08:05 +01:00
parent 9b5144b147
commit e0458ef264
2 changed files with 56 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ class ADBNetzgebietController extends mfBaseController {
Helper::renderVue3($this, $this->mod, "Netzgebietverwaltung", [
"GET_URL" => $this::getUrl("ADBNetzgebiet/getNetzgebiete"),
"SAVE_URL" => $this::getUrl("ADBNetzgebiet/save"),
"COPY_URL" => $this::getUrl("ADBNetzgebiet/copy"),
"HISTORY_URL" => $this::getUrl("ADBNetzgebiet/getHistory"),
"NETWORK_URL" => $this::getUrl("Network/Index"),
"NETWORK_CREATE_URL" => $this::getUrl("Network/add"),
@@ -130,6 +131,41 @@ class ADBNetzgebietController extends mfBaseController {
self::returnJson(['success' => true, 'data' => $history]);
}
protected function copyAction(): void {
$data = $this->postData;
if (empty($data['id'])) {
self::sendError("ID of the Netzgebiet to be copied is missing.");
return;
}
$original = ADBNetzgebiet::get($data['id']);
if (!$original) {
self::sendError("Netzgebiet not found.");
return;
}
$copy = new ADBNetzgebiet();
$copy->name = null;
$copy->extref = null;
$copy->rimo_id = $original->rimo_id;
$copy->source = $original->source;
$copy->source_id = null;
$copy->borderpoly = $original->borderpoly;
$copy->freigabe = $original->freigabe;
$copy->options = $original->options;
if (!$copy->save()) {
self::sendError("Failed to copy Netzgebiet.");
return;
}
self::returnJson([
'success' => true,
'message' => 'Netzgebiet copied.',
'id' => $copy->getId()
]);
}
// TODO: Implement RIMO API check
protected function checkRimoSourceIdAction(): void {
self::returnJson(['success' => false, 'message' => "RIMO API check not available."]);