summaryrefslogtreecommitdiff
path: root/edit_interface.php
diff options
context:
space:
mode:
Diffstat (limited to 'edit_interface.php')
-rw-r--r--edit_interface.php93
1 files changed, 63 insertions, 30 deletions
diff --git a/edit_interface.php b/edit_interface.php
index 1f970aae66..271a2addb5 100644
--- a/edit_interface.php
+++ b/edit_interface.php
@@ -406,25 +406,31 @@ case 'addchild':
$famid = safe_GET('famid', WT_REGEX_XREF);
$family = WT_Family::getInstance($famid);
+ check_record_access($family);
- if ($family) {
- check_record_access($family);
- $controller->setPageTitle($family->getFullName() . ' - ' . WT_I18N::translate('Add a new child'));
- } else {
- $controller->setPageTitle(WT_I18N::translate('Add an unlinked person'));
- }
- $controller->pageHeader();
+ $controller
+ ->setPageTitle($family->getFullName() . ' - ' . WT_I18N::translate('Add a new child'))
+ ->pageHeader();
print_indi_form('addchildaction', null, $family, null, 'CHIL', $gender);
break;
////////////////////////////////////////////////////////////////////////////////
+case 'add_unlinked_indi':
+ $controller
+ ->requireManagerLogin()
+ ->setPageTitle(WT_I18N::translate('Add an unlinked person'))
+ ->pageHeader();
+
+ print_indi_form('add_unlinked_indi_action', null, null, null, null, null);
+ break;
+
+////////////////////////////////////////////////////////////////////////////////
case 'addspouse':
$famtag = safe_GET('famtag', '(HUSB|WIFE)');
$xref = safe_GET('xref', WT_REGEX_XREF);
$family = WT_Family::getInstance($xref);
-
check_record_access($family);
if ($famtag=='WIFE') {
@@ -1064,15 +1070,12 @@ case 'addchildaction':
$gedrec.=addNewFact($match);
}
}
- if ($family) {
- // $family is not set when creating unlinked individuals
- if (isset($_REQUEST['PEDI'])) {
- $PEDI = $_REQUEST['PEDI'];
- } else {
- $PEDI = '';
- }
- $gedrec .= "\n".WT_Gedcom_Code_Pedi::createNewFamcPedi($PEDI, $famid);
+ if (isset($_REQUEST['PEDI'])) {
+ $PEDI = $_REQUEST['PEDI'];
+ } else {
+ $PEDI = '';
}
+ $gedrec .= "\n".WT_Gedcom_Code_Pedi::createNewFamcPedi($PEDI, $famid);
if (safe_POST_bool('SOUR_INDI')) {
$gedrec = handle_updates($gedrec);
} else {
@@ -1082,22 +1085,21 @@ case 'addchildaction':
// Create the new child
$new_child = WT_GedcomRecord::createRecord($gedrec, WT_GED_ID);
- if ($family) {
- // Insert new child at the right place
- foreach ($family->getFacts('CHIL') as $fact) {
- $old_child = $fact->getTarget();
- if ($old_child && WT_Date::Compare($new_child->getEstimatedBirthDate(), $old_child->getEstimatedBirthDate())<0) {
- // Insert before this child
- $family->updateFact($fact->getFactId(), "1 CHIL @" . $new_child->getXref()."@\n" . $fact->getGedcom(), !$keep_chan);
- $done = true;
- break;
- }
- }
- if (!$done) {
- // Append to end
- $family->updateFact(null, "1 CHIL @" . $new_child->getXref()."@\n", !$keep_chan);
+ // Insert new child at the right place
+ $done = false;
+ foreach ($family->getFacts('CHIL') as $fact) {
+ $old_child = $fact->getTarget();
+ if ($old_child && WT_Date::Compare($new_child->getEstimatedBirthDate(), $old_child->getEstimatedBirthDate())<0) {
+ // Insert before this child
+ $family->updateFact($fact->getFactId(), "1 CHIL @" . $new_child->getXref()."@\n" . $fact->getGedcom(), !$keep_chan);
+ $done = true;
+ break;
}
}
+ if (!$done) {
+ // Append child at end
+ $family->updateFact(null, "1 CHIL @" . $new_child->getXref()."@\n", !$keep_chan);
+ }
if (safe_POST('goto')=='new') {
$controller->addInlineJavascript('closePopupAndReloadParent("' . $new_child->getRawUrl() . '");');
@@ -1107,6 +1109,37 @@ case 'addchildaction':
break;
////////////////////////////////////////////////////////////////////////////////
+case 'add_unlinked_indi_action':
+ $controller
+ ->requireManagerLogin()
+ ->setPageTitle(WT_I18N::translate('Add an unlinked person'))
+ ->pageHeader();
+
+ splitSOUR();
+ $gedrec ="0 @REF@ INDI";
+ $gedrec.=addNewName();
+ $gedrec.=addNewSex ();
+ if (preg_match_all('/([A-Z0-9_]+)/', $QUICK_REQUIRED_FACTS, $matches)) {
+ foreach ($matches[1] as $match) {
+ $gedrec.=addNewFact($match);
+ }
+ }
+ if (safe_POST_bool('SOUR_INDI')) {
+ $gedrec = handle_updates($gedrec);
+ } else {
+ $gedrec = updateRest($gedrec);
+ }
+
+ $new_indi = WT_GedcomRecord::createRecord($gedrec, WT_GED_ID);
+
+ if (safe_POST('goto')=='new') {
+ $controller->addInlineJavascript('closePopupAndReloadParent("' . $new_indi->getRawUrl() . '");');
+ } else {
+ $controller->addInlineJavascript('closePopupAndReloadParent();');
+ }
+ break;
+
+////////////////////////////////////////////////////////////////////////////////
case 'addspouseaction':
$famid = safe_POST('famid', WT_REGEX_XREF); // Add a spouse to this family
$sex = safe_POST('SEX', '[MFU]');