"> Neuen Rufnummernblock anlegen
@@ -144,9 +145,11 @@
if($('#block-detail-' + id).is(":hidden")) {
$('#block-' + id).removeClass("table-info");
$('#block-' + id).removeClass("text-info");
+ window.location.hash = "";
} else {
$('#block-' + id).addClass("text-info");
$('#block-' + id).addClass("table-info");
+ window.location.hash = "#block=" + id;
}
}
diff --git a/application/Contractconfig/hooks/Voicenumberblock.php b/application/Contractconfig/hooks/Voicenumberblock.php
index ee55f2c0f..c7ae23974 100644
--- a/application/Contractconfig/hooks/Voicenumberblock.php
+++ b/application/Contractconfig/hooks/Voicenumberblock.php
@@ -68,9 +68,12 @@ class Contractconfig_Hook_Voicenumberblock extends Contractconfig_Hook {
foreach($this->create_numbers as $voicenumberblock_id => $numbers) {
foreach($numbers as $number){
$voicenumber = VoicenumberModel::getFirst(['number' => $number]);
-
+
if(!$voicenumber) {
- $this->log->debug("creating voicenumber $number in block ".$voicenumberblock->prefix);
+ if($voicenumberblock_id == "none") {
+ $voicenumberblock_id = null;
+ }
+ $this->log->debug("creating voicenumber $number in block $voicenumberblock_id");
$voicenumber = VoicenumberModel::create([
'voicenumberblock_id' => $voicenumberblock_id,
"contract_id" => $this->contract->id,
@@ -124,42 +127,47 @@ class Contractconfig_Hook_Voicenumberblock extends Contractconfig_Hook {
// check if Voicenumber exists
$voicenumberblock = Voicenumberblock::findBlock($number);
- if(!$voicenumberblock) {
- $this->errors["voicenumberblock_voicenumber"][] = "Ungültige Rufnummer $number: Kein aktiver Rufnummernblock gefunden";
- continue;
- }
+ if(!$voicenumberblock) { // XXX: Create without block!
+ //$this->errors["voicenumberblock_voicenumber"][] = "Ungültige Rufnummer $number: Kein aktiver Rufnummernblock gefunden";
+ //continue;
+ if(!array_key_exists("none", $this->create_numbers)) {
+ $this->create_numbers["none"] = [];
+ }
+ $this->create_numbers["none"][] = $number;
+
+ } else {
+ if(!$voicenumberblock->isNumberInBlock($number)) {
+ $this->errors["voicenumberblock_voicenumber"][] = "Ungültige Rufnummer $number: Bitte Rufnummernlänge kontrollieren! Block erlaubt ".$voicenumberblock->first ." bis ".$voicenumberblock->last;
+ continue;
+ }
- if(!$voicenumberblock->isNumberInBlock($number)) {
- $this->errors["voicenumberblock_voicenumber"][] = "Ungültige Rufnummer $number: Bitte Rufnummernlänge kontrollieren! Block erlaubt ".$voicenumberblock->first ." bis ".$voicenumberblock->last;
- continue;
- }
-
- $voicenumber = VoicenumberModel::getFirst(['number' => $number]);
- if($voicenumber) {
- // check if number belongs to another contract
- if($voicenumber->contract_id) {
- if($voicenumber->contract_id == $this->contract->id) {
- // belongs to our contract already => no changes needed
+ $voicenumber = VoicenumberModel::getFirst(['number' => $number]);
+ if($voicenumber) {
+ // check if number belongs to another contract
+ if($voicenumber->contract_id) {
+ if($voicenumber->contract_id == $this->contract->id) {
+ // belongs to our contract already => no changes needed
+ continue;
+ }
+ $this->errors["voicenumberblock_voicenumber"][] = "Ungültige Rufnummer $number: Rufnummer gehört zu bestehendem contract ".$voicenumber->contract_id;
continue;
}
- $this->errors["voicenumberblock_voicenumber"][] = "Ungültige Rufnummer $number: Rufnummer gehört zu bestehendem contract ".$voicenumber->contract_id;
- continue;
+ // check if number is locked
+ if($voicenumber->disabled) {
+ $this->errors["voicenumberblock_voicenumber"][] = "Ungültige Rufnummer $number: Rufnummer ist gesperrt ".$voicenumber->contract_id;
+ continue;
+ }
+ // check if number was ported out
+ if($voicenumber->ported_out) {
+ $this->errors["voicenumberblock_voicenumber"][] = "Ungültige Rufnummer $number: Rufnummer wurde rausportiert ".$voicenumber->contract_id;
+ continue;
+ }
+ } else {
+ if(!array_key_exists($voicenumberblock->id, $this->create_numbers)) {
+ $this->create_numbers[$voicenumberblock->id] = [];
+ }
+ $this->create_numbers[$voicenumberblock->id][] = $number;
}
- // check if number is locked
- if($voicenumber->disabled) {
- $this->errors["voicenumberblock_voicenumber"][] = "Ungültige Rufnummer $number: Rufnummer ist gesperrt ".$voicenumber->contract_id;
- continue;
- }
- // check if number was ported out
- if($voicenumber->ported_out) {
- $this->errors["voicenumberblock_voicenumber"][] = "Ungültige Rufnummer $number: Rufnummer wurde rausportiert ".$voicenumber->contract_id;
- continue;
- }
- } else {
- if(!array_key_exists($voicenumberblock->id, $this->create_numbers)) {
- $this->create_numbers[$voicenumberblock->id] = [];
- }
- $this->create_numbers[$voicenumberblock->id][] = $number;
}
}
diff --git a/application/Voicenumber/Voicenumber.php b/application/Voicenumber/Voicenumber.php
index 97ee64dab..d5370b09e 100644
--- a/application/Voicenumber/Voicenumber.php
+++ b/application/Voicenumber/Voicenumber.php
@@ -34,6 +34,8 @@ class Voicenumber extends mfBaseModel {
}
public function afterSave() {
+ // XXX Move to some ContractConfig add number function
+
// if contract_id is given, add number to contract
if($this->contract_id) {
if(is_array($this->contract->configvalues) && array_key_exists("voicenumberblock_voicenumber", $this->contract->configvalues)) {
diff --git a/application/Voicenumber/VoicenumberController.php b/application/Voicenumber/VoicenumberController.php
index 29c4e2ba7..1e192288c 100644
--- a/application/Voicenumber/VoicenumberController.php
+++ b/application/Voicenumber/VoicenumberController.php
@@ -58,34 +58,27 @@ class VoicenumberController extends mfBaseController {
$r = $this->request;
//var_dump($r);exit;
$block_id = $r->block_id;
- if(!is_numeric($block_id) || !$block_id) {
- $this->layout()->setFlash("Rufnummer nicht gefunden1", "error");
+
+ $num = (string)$r->number;
+ if(!strlen($num)) {
+ $this->layout()->setFlash("Rufnummer nicht gefunden", "error");
$this->redirect("Voicenumberblock");
}
$block = new Voicenumberblock($block_id);
- if(!$block->id) {
- $this->layout()->setFlash("Rufnummer nicht gefunden2", "error");
- $this->redirect("Voicenumberblock");
- }
- $num = (string)$r->number;
- if(!strlen($num)) {
- $this->layout()->setFlash("Rufnummer nicht gefunden3", "error");
- $this->redirect("Voicenumberblock", "Index", null, ["block" => $block->id]);
- }
-
- if(!$block->isNumberInBlock($num)) {
+ if($block->id && !$block->isNumberInBlock($num)) {
$this->layout()->setFlash("Rufnummer nicht gefunden4", "error");
$this->redirect("Voicenumberblock", "Index", null, ["block" => $block->id]);
}
- $number = VoicenumberModel::getFirst(["block_id" => $block_id, "number" => (string)$num]);
+ $number = VoicenumberModel::getFirst(["number" => (string)$num]);
$mode = "edit";
if(!$number) {
$number = new Voicenumber();
- $number->loadFromBlock($block);
+
+ if($block->id) $number->voicenumberblock_id = $block->id;
$number->number = $num;
$number->create_by = $this->me->id;
$mode = "add";