8 logme("widget_selector called for table $tableid");
11 tableid = INCLUDE find_table_id id=tableid;
15 # if we got some columns, use them. if not, get all non-primary columns
20 '/reporter/tables/table[@id="' _ tableid _
21 '"]/fields/field[not(@primary) or @primary!="true"]';
22 FOR c = config.findnodes(columns_xpath);
23 link_text_xpath = "../../links/link[@field='" _ c.findvalue('@name') _ "']";
24 NEXT IF c.findnodes(link_text_xpath);
27 logme("widget_selector had to grab columns for table $tableid linked from $linkid");
30 column_input_type="checkbox";
31 IF force && ! choose_base_cols;
32 column_input_type="hidden";
36 column_name=column.findvalue('@name');
39 WRAPPER html/cell valign='top' align='right';
40 # checkbox for column filter here ...
41 INCLUDE $column_input_type
45 column.findvalue('label');
49 col_widget_fams_xpath =
50 '/reporter/widgets/widget-family[@datatype="' _
51 column.findvalue('@datatype') _ '"]';
53 IF column.findnodes('@widget-family');
54 col_widget_fams_xpath =
55 '/reporter/widgets/widget-family[@name="' _
56 column.findvalue('@widget-family') _ '"]';
59 logme("finding widget families using $col_widget_fams_xpath");
61 widget_fams = config.findnodes(col_widget_fams_xpath);
64 FOR fam = widget_fams;
76 fam_name = fam.findvalue('@name');
77 # radio for widget family here ...
80 name="filter:$linkid:$column_name"
82 fam.findvalue('label');
85 FOR widget = fam.findnodes('widget');
97 widget_name = widget.findvalue('@name');
98 # radio for widget here ...
101 name="filter:$linkid:$column_name:$fam_name"
103 widget.findvalue('label');