Commit 9075564e authored by Frank Bergmann's avatar Frank Bergmann

- Allowing to delete menus

parent 94e07668
......@@ -18,6 +18,7 @@ ad_page_contract {
@author frank.bergmann@project-open.com
} {
{ return_url "/intranet/admin/menus/index" }
}
# ------------------------------------------------------
......@@ -51,12 +52,15 @@ set bgcolor(1) " class=roweven"
set group_list_sql {
select DISTINCT
g.group_name,
g.group_id
g.group_id,
p.profile_gif
from
acs_objects o,
groups g
groups g,
im_profiles p
where
g.group_id = o.object_id
and g.group_id = p.profile_id
and o.object_type = 'im_profile'
order by lower(g.group_name)
}
......@@ -70,16 +74,24 @@ set table_header "
<td width=20></td>
<td width=20></td>
<td width=20></td>
<td class=rowtitle>Package</td>
"
<td class=rowtitle>Package</td>\n"
set main_sql_select ""
set num_profiles 0
db_foreach group_list $group_list_sql {
lappend group_ids $group_id
lappend group_names $group_name
append main_sql_select "\tacs_permission.permission_p(m.menu_id, $group_id, 'read') as p${group_id}_read_p,\n"
append table_header "<td class=rowtitle><A href=$group_url?group_id=$group_id>$group_name</A></td>\n"
append table_header "
<td class=rowtitle><A href=$group_url?group_id=$group_id>
[im_gif $profile_gif $group_name]
</A></td>\n"
incr num_profiles
}
append table_header "</th>\n"
append table_header "
<td class=rowtitle>[im_gif del "Delete Menu"]</td>
</tr>
"
# ------------------------------------------------------
......@@ -106,6 +118,8 @@ connect by
set table "
<form action=menu-action method=post>
[export_form_vars return_url]
<table>
$table_header\n"
......@@ -142,7 +156,20 @@ db_foreach menus $main_sql {
}
append table "
<td>
<input type=checkbox name=menu_id.$menu_id>
</td>
</tr>
"
}
append table "</table>\n"
append table "
<tr>
<td colspan=[expr $num_profiles + 5]>&nbsp;</td>
<td>
<input type=submit value='Del'>
</td>
</tr>
</table>
</form>
"
# /packages/intranet-core/www/admin/menus/menu-action.tcl
#
# Copyright (C) 2003-2004 Project/Open
#
# All rights reserved. Please check
# http://www.project-open.com/license/ for details.
ad_page_contract {
Delete selected menus
@param return_url the url to return to
@param menu_id The list of menus to delete
@author frank.bergmann@project-open.com
} {
menu_id:array,optional
{ submit "delete" }
{return_url "/intranet/admin/menus"}
}
set user_id [ad_maybe_redirect_for_registration]
set user_is_admin_p [im_is_user_site_wide_or_intranet_admin $user_id]
if {!$user_is_admin_p} {
ad_return_complaint 1 "You have insufficient privileges to use this page"
return
}
set menu_list [array names menu_id]
ns_log Notice "menu-action: menu_list=$menu_list"
if {0 == [llength $menu_list]} {
ad_returnredirect $return_url
}
# Convert the list of selected menus into a
# "menu_id in (1,2,3,4...)" clause
#
set menu_in_clause "and menu_id in ("
append menu_in_clause [join $menu_list ", "]
append menu_in_clause ")\n"
ns_log Notice "menu-action: menu_in_clause=$menu_in_clause"
switch $submit {
"delete" {
set sql "
delete from im_menus
where 1=1
$menu_in_clause"
if {[catch {
db_dml del_menus $sql
} err_msg]} {
ad_return_complaint 1 "<li>Error deleting menus. Perhaps you try to delete menus that still have submenus. Here is the error:<br><pre>$err_msg</pre>"
return
}
}
default {
ad_return_complaint 1 "<li>Unknown value for submit: '$submit'"
}
}
ad_returnredirect $return_url
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment