Skip to content
Snippets Groups Projects
Commit b03074f9 authored by Guillaume Heurtier's avatar Guillaume Heurtier
Browse files

FEAT #1281 TIME 0:30 fix search on folders

parent 52021ee0
No related branches found
No related tags found
No related merge requests found
......@@ -228,7 +228,7 @@ if (count($_REQUEST['meta']) > 0) {
$arrayPDO = array_merge($arrayPDO, array(":contactType" => $_REQUEST['contact_type']));
} elseif ($tab_id_fields[$j] == 'project' && !empty($_REQUEST['project'])) {
$json_txt .= " 'project' : ['".addslashes(trim($_REQUEST['project']))."'],";
$project = $func->wash($_REQUEST['project'], "no", _MARKET, "no");
$folder = $func->wash($_REQUEST['project'], "no", _MARKET, "no");
$where_request .= " res_id in ( ";
......@@ -237,26 +237,26 @@ from resources_folders
left join folders on resources_folders.folder_id = folders.id
where lower(translate(folders.label , 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ',
'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr')) ilike
lower(translate(:label, 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ',
lower(translate(:label_folders, 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ',
'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'))
and (
folders.id in (
select folders.id
from folders
left join users on folders.user_id = users.id
where users.user_id = :user_id
where users.user_id = :user_id_folders
) or folders.id in (
select entities_folders.folder_id
from entities_folders
left join entities on entities_folders.entity_id = entities.id
left join users_entities on entities.entity_id = users_entities.entity_id
where users_entities.user_id = :user_id
where users_entities.user_id = :user_id_folders
)
)";
$where_request .=" ) and ";
$arrayPDO = array_merge($arrayPDO, array(":label" => "%".$project."%", ":user_id" => $GLOBALS['userId']));
$arrayPDO = array_merge($arrayPDO, array(":label_folders" => "%".$folder."%", ":user_id_folders" => $_SESSION['user']['UserId']));
}
// GED NUM
elseif ($tab_id_fields[$j] == 'numged' && !empty($_REQUEST['numged'])) {
......
......@@ -120,34 +120,25 @@ class request extends dbquery
//$where_string = " where ( ".$_SESSION['user']['security'][$coll]['DOC']['where']." ) ";
} else {
if (array_key_exists(':label', $parameters)) {
$whereFolders = "select res_id
$whereFolders = "select res_id
from resources_folders
left join folders on resources_folders.folder_id = folders.id
where lower(translate(folders.label , 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ',
'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr')) ilike
lower(translate(:label, 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ',
'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'))
and (
folders.id in (
select folders.id
from folders
left join users on folders.user_id = users.id
where users.user_id = :user_id
) or folders.id in (
select entities_folders.folder_id
from entities_folders
left join entities on entities_folders.entity_id = entities.id
left join users_entities on entities.entity_id = users_entities.entity_id
where users_entities.user_id = :user_id
)
left join folders on resources_folders.folder_id = folders.id
where
folders.id in (
select folders.id
from folders
left join users on folders.user_id = users.id
where users.user_id = :user_id_folders
) or folders.id in (
select entities_folders.folder_id
from entities_folders
left join entities on entities_folders.entity_id = entities.id
left join users_entities on entities.entity_id = users_entities.entity_id
where users_entities.user_id = :user_id_folders
)";
$where_string = ''.$where_string." and ( ".$_SESSION['user']['security'][$coll]['DOC']['where']." or res_id in (".$whereFolders.")) ";
$parameters = array_merge($parameters, array(":label" => $parameters[':label'], ":user_id" => $parameters[':user_id']));
} else {
$where_string = '' . $where_string . " and ( " . $_SESSION['user']['security'][$coll]['DOC']['where'] . " ) ";
}
$where_string = ''.$where_string." and ( ".$_SESSION['user']['security'][$coll]['DOC']['where']." or res_id in (".$whereFolders.")) ";
$parameters = array_merge($parameters, array(":user_id_folders" => $_SESSION['user']['UserId']));
}
break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment