* This script is distributed under the GNU General Public License 2 or later.
 *
 * Checks if inside a container (parent_id) exists a node with specified name.
 * Used to warn user if non-unique name is entered.
 * 
 * Importante NOTICE:
 * no check on user rights is done (IMHO is ok because is a READ ONLY Operation).
 *
 * @package 	TestLink
 * @author 		Francisco Mancardi
 * @copyright 	2010,2014 TestLink community
 * @filesource  checkNodeDuplicateName.php
 *
 * @internal revisions
 *
 **/
require_once '../../config.inc.php';
require_once 'common.php';
testlinkInitPage($db);
$data = array('success' => true, 'message' => '');
$iParams = array("node_name" => array(tlInputParameter::STRING_N, 0, 100), "node_id" => array(tlInputParameter::INT), "parent_id" => array(tlInputParameter::INT), "node_type" => array(tlInputParameter::STRING_N, 0, 20));
$args = G_PARAMS($iParams);
$tree_manager = new tree($db);
$node_types_descr_id = $tree_manager->get_available_node_types();
// To allow name check when creating a NEW NODE => we do not have node id
$args['node_id'] = $args['node_id'] > 0 ? $args['node_id'] : null;
$args['parent_id'] = $args['parent_id'] > 0 ? $args['parent_id'] : null;
$check = $tree_manager->nodeNameExists($args['node_name'], $node_types_descr_id[$args['node_type']], $args['node_id'], $args['parent_id']);
$data['success'] = !$check['status'];
$data['message'] = $check['msg'];
echo json_encode($data);
 *
 * @internal Revisions:
 * 20101010 - franciscom - added testsuite_id as parameter, needed to do checks when creating test case
 * 20100225 - eloff - initial commit
 *
 **/
require_once '../../config.inc.php';
require_once 'common.php';
testlinkInitPage($db);
$data = array('success' => true, 'message' => '');
$iParams = array("name" => array(tlInputParameter::STRING_N, 0, 100), "testcase_id" => array(tlInputParameter::INT), "testsuite_id" => array(tlInputParameter::INT));
$args = G_PARAMS($iParams);
if (has_rights($db, 'mgt_view_tc')) {
    $tree_manager = new tree($db);
    $node_types_descr_id = $tree_manager->get_available_node_types();
    // To allow name check when creating a NEW test case => we do not have test case id
    $args['testcase_id'] = $args['testcase_id'] > 0 ? $args['testcase_id'] : null;
    $args['testsuite_id'] = $args['testsuite_id'] > 0 ? $args['testsuite_id'] : null;
    // for debug -
    // $xx = "\$args['testcase_id']:{$args['testcase_id']} - \$args['name']:{$args['name']}" .
    //       " - \$args['testsuite_id']:{$args['testsuite_id']}";
    // file_put_contents('c:\checkTCaseDuplicateName.php.ajax', $xx);
    $check = $tree_manager->nodeNameExists($args['name'], $node_types_descr_id['testcase'], $args['testcase_id'], $args['testsuite_id']);
    $data['success'] = !$check['status'];
    $data['message'] = $check['msg'];
} else {
    tLog('User has not right needed to do requested action - checkTCaseDuplicateName.php', 'ERROR');
    $data['success'] = false;
    $data['message'] = lang_get('user_has_no_right_for_action');
}
echo json_encode($data);
 *
 * @package 	TestLink
 * @author 		Erik Eloff
 * @copyright 	2010, TestLink community
 * @version    	CVS: $Id: checkDuplicateName.php,v 1.1 2010/03/06 16:43:14 erikeloff Exp $
 *
 * @internal Revisions:
 * 20100225 - eloff - initial commit
 *
 **/
require_once '../../config.inc.php';
require_once 'common.php';
testlinkInitPage($db);
$data = array('success' => true, 'message' => '');
$iParams = array("name" => array(tlInputParameter::STRING_N, 0, 100), "testcase_id" => array(tlInputParameter::INT));
$args = G_PARAMS($iParams);
if (has_rights($db, 'mgt_view_tc')) {
    $tree_manager = new tree($db);
    $node_types_descr_id = $tree_manager->get_available_node_types();
    $my_node_type = $node_types_descr_id['testcase'];
    $name = $args['name'];
    $tc_id = $args['testcase_id'];
    $check = $tree_manager->nodeNameExists($name, $my_node_type, $tc_id);
    $data['success'] = !$check['status'];
    $data['message'] = $check['msg'];
} else {
    tLog('Invalid right for the user: '******'right'], 'ERROR');
    $data['success'] = false;
    $data['message'] = lang_get('Invalid right');
}
echo json_encode($data);