case 'saveDT': /* detailtype:{ colNames:common:[], defs:[dtyID:{},.... ] */ if (!array_key_exists('detailtype', $data) || !array_key_exists('colNames', $data['detailtype']) || !array_key_exists('defs', $data['detailtype'])) { error_exit("Invalid data structure sent with saveDetailType method call to saveStructure.php"); } $commonNames = $data['detailtype']['colNames']['common']; $rv['result'] = array(); //result foreach ($data['detailtype']['defs'] as $dtyID => $dt) { if ($dtyID == -1) { // new detailtypes array_push($rv['result'], createDetailTypes($commonNames, $dt)); } else { array_push($rv['result'], updateDetailType($commonNames, $dtyID, $dt)); //array($dtyID => } } $rv['detailTypes'] = getAllDetailTypeStructures(); break; case 'checkDTusage': //used in editRecStructure to prevent detail type delete $rtyID = @$_REQUEST['rtyID']; $dtyID = @$_REQUEST['dtyID']; $rv = findTitleMaskEntries($rtyID, $dtyID); break; case 'deleteDetailType': case 'deleteDT':
if ($def_field[$idx_type] == "resource" || $def_field[$idx_type] == "relmarker") { //change record ids for pointers $def_field[$idx_constraints] = replaceRecIds(@$def_field[$idx_constraints]); } } //fill original ids if missed if ($def_field[$idx_ccode] && (!$def_field[$idx_origin_dbid] || !$def_field[$idx_origin_id])) { $codes = explode("-", $def_field[$idx_ccode]); if ($codes && count($codes) == 2) { $def_field[$idx_origin_dbid] = $codes[0]; $def_field[$idx_origin_id] = $codes[1]; } } array_shift($def_field); //remove dty_ID $res = createDetailTypes($columnNames, array("common" => $def_field)); if (is_numeric($res)) { $fields_correspondence[$ftId] = abs($res); $trg_fieldtypes['names'][abs($res)] = $def_field[$idx_name - 1]; //new name } else { error_exit("Can't add field type for id#" . $ftId . ". " . $res); } } // ------------------------------------------------------------------------------------------------ // VI. Add record structures $idx_type = $def_rts['dtFieldNamesToIndex']['dty_Type']; $idx_terms_tree = $def_rts['dtFieldNamesToIndex']['rst_FilteredJsonTermIDTree']; //value is the same as $idx_terms_disabled = $def_rts['dtFieldNamesToIndex']['dty_TermIDTreeNonSelectableIDs']; $idx_constraints = $def_rts['dtFieldNamesToIndex']['rst_PtrFilteredIDs'];