lars
committed
on 06 Jan 04
Show case status and number of assigned tasks in the cases
/admin/component-ae.tcl (+37 -31)
1 1 ad_page_contract {
2 2     @author Lars Pind (lars@pinds.com)
3       @date 2002-03-26
  3     @creation-date 2002-03-26
4 4     @cvs-id $Id$
5 5 } {
6 6     cancel:optional
7 7     component_id:integer,optional
8       name:optional
9       description:optional
10       maintainer:integer,optional
11 8     {return_url ""}
12 9 }
13 10
14 11 if { [exists_and_not_null cancel] } {
15 12     ad_returnredirect $return_url
16       return
  13     ad_script_abort
17 14 }
18 15
19   set project_name [bt_conn project_name]
  16 set project_name [bug_tracker::conn project_name]
20 17 set package_id [ad_conn package_id]
21 18 set package_key [ad_conn package_key]
22 19
23 20 if { [info exists component_id] } {
24 21     set page_title "Edit Component"
25 22 } else {
26 23     set page_title "Add Component"
27 24 }
28 25 set context_bar [ad_context_bar $page_title]
29 26
30   template::form create component
  27 form create component
31 28
32   template::element create component return_url -datatype text -widget hidden -value $return_url
  29 element create component return_url -datatype text -widget hidden -value $return_url
33 30
34   template::element create component name \
  31 element create component name \
35 32         -datatype text \
36 33         -html { size 50 } \
37 34         -label "Component Name"
38 35
39   template::element create component description \
  36 element create component description \
40 37         -datatype text \
41 38         -widget textarea \
42 39         -label "Description" \
43 40         -optional \
44 41         -html { cols 50 rows 8 }
45 42
46   template::element create component maintainer \
  43 element create component url_name \
  44         -datatype text \
  45         -html { size 50 } \
  46         -label "Name in shortcut URL" \
  47         -optional
  48
  49 element create component maintainer \
47 50         -datatype integer \
48 51         -widget select \
49 52         -label "Maintainer" \
50           -options [concat {{ "--None--" "" }} [db_list_of_lists users { select first_names || ' ' || last_name, user_id from cc_users }]]         -optional
  53         -options [concat {{ "--None--" "" }} [db_list_of_lists users { select first_names || ' ' || last_name, user_id from cc_users order by last_name, first_names}]]         -optional
51 54
52   template::element create component component_id \
  55 element create component component_id \
53 56         -datatype integer \
54 57         -widget hidden
55 58
56   if { [template::form is_request component] } {
  59 if { [form is_request component] } {
57 60     if { ![info exists component_id] } {
58           template::element set_properties component component_id -value [db_nextval "acs_object_id_seq"]
  61         element set_properties component component_id -value [db_nextval "acs_object_id_seq"]
59 62     } else {
60 63         db_1row component_info {
61               select component_name as name, description, maintainer
  64             select component_id,
  65                    component_name as name,
  66                    description,
  67                    maintainer,
  68                    url_name
62 69             from   bt_components
63 70             where  component_id = :component_id
  71         } -column_array component_info
  72         form set_values component component_info
64 73     }
65           template::element set_properties component component_id -value $component_id
66           template::element set_properties component name -value $name
67           template::element set_properties component description -value $description
68           template::element set_properties component maintainer -value $maintainer
69          
70 74 }
71   }
72 75
73   if { [template::form is_valid component] } {
  76 if { [form is_valid component] } {
  77     form get_values component name description maintainer url_name
  78
74 79     set count [db_0or1row num_components { select 1 from bt_components where component_id = :component_id }]
75 80    
76 81     if { $count == 0 } {
77 82         db_dml component_create {
78 83             insert into bt_components
79               (component_id, project_id, component_name, description, maintainer)
  84             (component_id, project_id, component_name, description, url_name, maintainer)
80 85             values
81               (:component_id, :package_id, :name, :description, :maintainer)
  86             (:component_id, :package_id, :name, :description, :url_name, :maintainer)
82 87         }
83 88     } else {
84 89         db_dml component_update {
85 90             update bt_components
86 91             set    component_name = :name,
87 92                    description = :description,
88               maintainer = :maintainer
  93                    maintainer = :maintainer,
  94                    url_name = :url_name
89 95             where component_id = :component_id
90 96         }
91 97     }
92 98
93 99     ad_returnredirect $return_url
94       return
  100     ad_script_abort
95 101 }
96 102
97 103 ad_return_template