diff --git a/core/trunk/core/class/StatusControler.php b/core/trunk/core/class/StatusControler.php index 0e59b3b6d6f370b7b6a697d633978921a3bfd91d..e21269e8d8babc1eebefd8ea5861f42f6f8dda4f 100644 --- a/core/trunk/core/class/StatusControler.php +++ b/core/trunk/core/class/StatusControler.php @@ -257,6 +257,12 @@ class Maarch_Core_Class_StatusControler && $status->can_be_modified != 'N')) { $status->can_be_modified = 'Y'; } + + if (!isset($status->is_folder_status) + || ($status->is_folder_status != 'N' + && $status->is_folder_status != 'Y')) { + $status->is_folder_status = 'N'; + } $_SESSION['service_tag'] = 'status_check'; $core = new core_tools(); diff --git a/core/trunk/core/class/class_security.php b/core/trunk/core/class/class_security.php index 97177d5a94bb4e84591d15dbb1aaab3e5623a845..ffc192bfaac55839039e161a241e85f21b641c8b 100644 --- a/core/trunk/core/class/class_security.php +++ b/core/trunk/core/class/class_security.php @@ -761,7 +761,9 @@ class security extends dbquery if( isset($_SESSION['user']['baskets'][$ind_bask]['clause']) && trim($_SESSION['user']['baskets'][$ind_bask]['clause'] - ) <> '') { + ) <> '' + && $_SESSION['user']['baskets'][$ind_bask]['is_folder_basket'] == 'N' + ) { $basketQuery .= ' or (' . $_SESSION['user']['baskets'][$ind_bask]['clause'] . ')'; diff --git a/core/trunk/core/manage_action.php b/core/trunk/core/manage_action.php index cdce605b1c161fe54b440398ebbfb33807f556f4..dcfc42e9321938d453c373e4b9222aa364a779db 100644 --- a/core/trunk/core/manage_action.php +++ b/core/trunk/core/manage_action.php @@ -140,7 +140,10 @@ elseif(trim($_POST['req']) == 'change_status' && !empty($_POST['values']) && !em $arr_id[$i] = str_replace('#', '', $arr_id[$i]); $result .= $arr_id[$i].'#'; if (trim($_POST['new_status']) <> '') { - if ($_POST['table'] == 'rm_ios') { + if ($_POST['table'] == 'folders') { + $query_str = "update " . $_POST['table'] . " set status = '" + . $_POST['new_status'] . "' where folders_system_id = " . $arr_id[$i]; + } else if ($_POST['table'] == 'rm_ios') { $query_str = "update " . $_POST['table'] . " set status = '" . $_POST['new_status'] . "' where io_id = " . $arr_id[$i]; } else { @@ -216,7 +219,10 @@ else $arr_id[$i] = str_replace('#', '', $arr_id[$i]); $result .= $arr_id[$i].'#'; if (trim($status) <> '') { - if ($_POST['table'] == 'rm_ios') { + if ($_POST['table'] == 'folders') { + $query_str = "update " . $_POST['table'] . " set status = '" + . $status . "' where folders_system_id = " . $arr_id[$i]; + } else if ($_POST['table'] == 'rm_ios') { $query_str = "update " . $_POST['table'] . " set status = '" . $status . "' where io_id = " . $arr_id[$i]; } else { diff --git a/core/trunk/core/xml/actions_pages.xml b/core/trunk/core/xml/actions_pages.xml index 6dafa1605e914723d0a5b71c2b2fd911e8a0ad16..8e1a0bfb178693f1628e411c7b31c858a6b2d825 100644 --- a/core/trunk/core/xml/actions_pages.xml +++ b/core/trunk/core/xml/actions_pages.xml @@ -159,4 +159,20 @@ An action page is described in a ACTIONPAGE tag : <MODULE>records_management</MODULE> <FLAG_CREATE>false</FLAG_CREATE> </ACTIONPAGE> + <ACTIONPAGE> + <ID>confirm_folder_status</ID> + <LABEL>_CONFIRM_FOLDER_STATUS</LABEL> + <NAME>confirm_folder_status</NAME> + <ORIGIN>module</ORIGIN> + <MODULE>folder</MODULE> + <FLAG_CREATE>false</FLAG_CREATE> + </ACTIONPAGE> + <ACTIONPAGE> + <ID>redirect_folder</ID> + <LABEL>_REDIRECT_FOLDER</LABEL> + <NAME>redirect_folder</NAME> + <ORIGIN>module</ORIGIN> + <MODULE>folder</MODULE> + <FLAG_CREATE>false</FLAG_CREATE> + </ACTIONPAGE> </ROOT> diff --git a/core/trunk/data_en.sql b/core/trunk/data_en.sql index 27cd5bbee4d0b8821375e2a5b8525e8aa895da1f..2cb77f5471138ec38fb66cd77f3dc4ef460e9251 100644 --- a/core/trunk/data_en.sql +++ b/core/trunk/data_en.sql @@ -141,7 +141,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', 'ph INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', 'physical_archive_batch_manage'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', '_print_sep'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'adv_search_mlb'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'my_alerts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'use_alerts_on_doc'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'use_alerts_on_folder'); @@ -156,7 +156,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'clo INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'print_details'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'view_technical_infos'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'adv_search_mlb'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'my_alerts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'use_alerts_on_doc'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'use_alerts_on_folder'); diff --git a/core/trunk/data_fr.sql b/core/trunk/data_fr.sql index 1b0665320e88494c7417b20f92fbd739809f507c..d871f8e6b6e57d2b7a804a06753117b5f8d1d276 100644 --- a/core/trunk/data_fr.sql +++ b/core/trunk/data_fr.sql @@ -141,7 +141,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', 'ph INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', 'physical_archive_batch_manage'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', '_print_sep'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'adv_search_mlb'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'my_alerts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'use_alerts_on_doc'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'use_alerts_on_folder'); @@ -156,7 +156,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'clo INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'print_details'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'view_technical_infos'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'adv_search_mlb'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'my_alerts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'use_alerts_on_doc'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'use_alerts_on_folder'); diff --git a/core/trunk/data_mlb_fr.sql b/core/trunk/data_mlb_fr.sql index 7d021cf78707aacff416aeec4ad0de99672bb6a3..7896ecbd0e0346cec8639f09d70fa95a3211a682 100644 --- a/core/trunk/data_mlb_fr.sql +++ b/core/trunk/data_mlb_fr.sql @@ -90,7 +90,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'c INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'add_copy_in_process'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'admin_templates'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'view_versions'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'view_technical_infos'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'add_links'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'update_case'); @@ -113,7 +113,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'add_cas INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'update_list_diff_in_details'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'create_folder'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'add_new_version'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'view_technical_infos'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'add_links'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'update_case'); @@ -136,7 +136,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'upda INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'reports'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'add_new_version'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'admin'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'admin_architecture'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'my_contacts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'put_in_validation'); @@ -171,7 +171,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('ELU', 'tag_view' INSERT INTO usergroups_services (group_id, service_id) VALUES ('ELU', 'add_tag_to_res'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'adv_search_mlb'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'view_technical_infos'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'add_links'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'view_baskets'); @@ -203,7 +203,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'update_list_diff_in_details'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'reports'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'admin'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'my_contacts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'view_baskets'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'join_res_case'); diff --git a/core/trunk/structure.sql b/core/trunk/structure.sql index 2d6483d24497a139135e3faef597dcc20e0f0111..ba2c163062ab9eee0eaf8243d2c8ab8bd951c0f8 100644 --- a/core/trunk/structure.sql +++ b/core/trunk/structure.sql @@ -27,6 +27,7 @@ CREATE TABLE actions label_action character varying(255), id_status character varying(10), is_system character(1) NOT NULL DEFAULT 'N'::bpchar, + is_folder_action character(1) NOT NULL DEFAULT 'N'::bpchar, enabled character(1) NOT NULL DEFAULT 'Y'::bpchar, action_page character varying(255), history character(1) NOT NULL DEFAULT 'N'::bpchar, @@ -235,6 +236,7 @@ CREATE TABLE status id character varying(10) NOT NULL, label_status character varying(50) NOT NULL, is_system character(1) NOT NULL DEFAULT 'Y'::bpchar, + is_folder_status character(1) NOT NULL default 'N'::bpchar, img_filename character varying(255), maarch_module character varying(255) NOT NULL DEFAULT 'apps'::character varying, can_be_searched character(1) NOT NULL DEFAULT 'Y'::bpchar, @@ -683,6 +685,7 @@ CREATE TABLE baskets basket_clause text NOT NULL, is_generic character varying(6) NOT NULL DEFAULT 'N'::character varying, is_visible character(1) NOT NULL DEFAULT 'Y'::bpchar, + is_folder_basket character (1) NOT NULL default 'N'::bpchar, enabled character(1) NOT NULL DEFAULT 'Y'::bpchar, CONSTRAINT baskets_pkey PRIMARY KEY (coll_id, basket_id) ) @@ -709,6 +712,8 @@ CREATE TABLE groupbasket can_redirect character(1) NOT NULL DEFAULT 'N'::bpchar, can_delete character(1) NOT NULL DEFAULT 'N'::bpchar, can_insert character(1) NOT NULL DEFAULT 'N'::bpchar, + list_lock_clause text, + sublist_lock_clause text, CONSTRAINT groupbasket_pkey PRIMARY KEY (group_id, basket_id) ) WITH (OIDS=FALSE); @@ -894,9 +899,11 @@ CREATE TABLE folders description character varying(255) DEFAULT NULL::character varying, author character varying(255) DEFAULT NULL::character varying, typist character varying(255) DEFAULT NULL::character varying, - status character varying(50) NOT NULL DEFAULT 'NEW'::character varying, + status character varying(50) NOT NULL DEFAULT 'FOLDNEW'::character varying, folder_level smallint DEFAULT (1)::smallint, creation_date timestamp without time zone NOT NULL, + destination character varying(50) DEFAULT NULL, + dest_user character varying(128) DEFAULT NULL, folder_out_id bigint, video_status character varying(10) DEFAULT NULL, video_user character varying(128) DEFAULT NULL,